Your SlideShare is downloading. ×
0
Software composition by @steveklabnik
Software composition by @steveklabnik
Software composition by @steveklabnik
Software composition by @steveklabnik
Software composition by @steveklabnik
Software composition by @steveklabnik
Software composition by @steveklabnik
Software composition by @steveklabnik
Software composition by @steveklabnik
Software composition by @steveklabnik
Software composition by @steveklabnik
Software composition by @steveklabnik
Software composition by @steveklabnik
Software composition by @steveklabnik
Software composition by @steveklabnik
Software composition by @steveklabnik
Software composition by @steveklabnik
Software composition by @steveklabnik
Software composition by @steveklabnik
Software composition by @steveklabnik
Software composition by @steveklabnik
Software composition by @steveklabnik
Software composition by @steveklabnik
Software composition by @steveklabnik
Software composition by @steveklabnik
Software composition by @steveklabnik
Software composition by @steveklabnik
Software composition by @steveklabnik
Software composition by @steveklabnik
Software composition by @steveklabnik
Software composition by @steveklabnik
Software composition by @steveklabnik
Software composition by @steveklabnik
Software composition by @steveklabnik
Software composition by @steveklabnik
Software composition by @steveklabnik
Software composition by @steveklabnik
Software composition by @steveklabnik
Software composition by @steveklabnik
Software composition by @steveklabnik
Software composition by @steveklabnik
Software composition by @steveklabnik
Software composition by @steveklabnik
Software composition by @steveklabnik
Software composition by @steveklabnik
Software composition by @steveklabnik
Software composition by @steveklabnik
Software composition by @steveklabnik
Software composition by @steveklabnik
Software composition by @steveklabnik
Software composition by @steveklabnik
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Software composition by @steveklabnik

1,450

Published on

Published in: Technology, Education
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,450
On Slideshare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
7
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. <ul><li>by @steveklabnik </li></ul>Software Composition
  • 2. Who?
  • 3. Who?
  • 4. Who?
  • 5. Who?
  • 6.  
  • 7.  
  • 8.  
  • 9. “Best Practices” <ul><li>Use descriptive variable names </li></ul><ul><li>Add whitespace for clarity </li></ul><ul><li>Use object orientation properly </li></ul><ul><li>Write comments </li></ul>
  • 10.  
  • 11.  
  • 12. Alas, poor Yorick! I knew him, Horatio, a fellow of infinite jest, of most excellent fancy. He has bore me on his back a thousand times, and now how abhorr'd in my imagination it is!
  • 13. Software Composition:
  • 14. Software Composition: The Multitude of Audiences
  • 15. Software Composition: The Multitude of Audiences The Multiplicity of Forms
  • 16. Software Composition: The Multitude of Audiences The Multiplicity of Forms An Aside: Literacy Crisis
  • 17. The Multitude of Audiences
  • 18. The Default Audience: The Computer <ul><li>Science is what we understand well enough to explain to a computer. Art is everything else we do. </li></ul><ul><li>Don Knuth </li></ul>
  • 19. The Reflexive Audience: The programmer <ul><li>Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it. </li></ul><ul><li>Brian Kernighan </li></ul>
  • 20. The ‘Other’ Audience: Colleagues and Coworkers <ul><li>Always code as if the guy who ends up maintaining your code is a violent psychopath who knows where you live. </li></ul><ul><li>Martin Golding </li></ul>
  • 21. The forgotten audience: end-users <ul><li>If I asked my customers what they wanted, they'd have told me, &quot;A faster horse.&quot; </li></ul><ul><li>Henry Ford </li></ul>
  • 22. The Multiplicity of Forms
  • 23. Source `Twas brillig, and the slithy toves   Did gyre and gimble in the wabe: All mimsy were the borogoves,   And the mome raths outgrabe. - Jabberwocky
  • 24. puts <<2*2,2 puts <<2*2,2 2
  • 25. v=0000;eval$s=%q~d=%!^Lcf<LK8, _@7gj*LJ=c5nM)Tp1g0%Xv.,S[<>YoP 4ZojjV)O>qIH1/n[|2yE[>:ieC &quot;%.#% :::##&quot; 97N-A&Kj_K_><wS5rtWk@*a+Y5 yH?b[F^e7C/56j|pmRe+:)B &quot;##% ::##########&quot; O98(Zh)'Iof*nm.,$C5Nyt= PPu01Avw^<IiQ=5$'D-y? &quot;##: ###############&quot; g6`YT+qLw9k^ch|K'),tc 6ygIL8xI#LNz3v}T=4W &quot;# #. .####:#######&quot; lL27FZ0ij)7TQCI)P7u }RT5-iJbbG5P-DHB<. &quot; ##### # :############&quot; R,YvZ_rnv6ky-G+4U' $*are@b4U351Q-ug5 &quot; #######################&quot; 00x8RR%`Om7VDp4M5 PFixrPvl&<p[]1IJ &quot; ############:#### %#####&quot; EGgDt8Lm#;bc4zS^ y]0`_PstfUxOC(q &quot; .#############:##% .## .&quot; /,}.YOIFj(k&q_V zcaAi?]^lCVYp!; &quot; %% .################. #. &quot; ;s=&quot;v=%04o;ev&quot;% (;v=(v-($*+[45, &quot;:####: :##############% : &quot; ])[n=0].to_i;)% 360)+&quot;al$s=%q#{ &quot;%######. ######### &quot; ;;&quot;%c&quot;%126+$s<< 126}&quot;;d.gsub!(/ &quot;##########. #######% &quot; |s|&quot;.*&quot;/,&quot;&quot;);; require&quot;zlib&quot;|| &quot;########### :######. &quot; ;d=d.unpack&quot;C*&quot; d.map{|c|n=(n|| &quot;:#########: .######: . &quot; )*90+(c-2)%91}; e=[&quot;%x&quot;%n].pack &quot; :#######% :###### #: &quot; &&&quot;H*&quot;;e=Zlib:: Inflate.inflate( &quot; ######% .####% :: &quot; &&e).unpack(&quot;b*&quot; )[0];22.times{|y| &quot; ####% %### &quot; ;w=(Math.sqrt(1-( (y*2.0-21)/22)**(; &quot; .###: .#% &quot; ;2))*23).floor;(w* 2-1).times{|x|u=(e+ &quot; %## &quot; )[y*z=360,z]*2;u=u[ 90*x/w+v+90,90/w];s[( &quot; #. &quot; ;y*80)+120-w+x]=(&quot;&quot;<< 32<<&quot;.:%#&quot;)[4*u.count(( &quot; . &quot; ;&quot;0&quot;))/u.size]}};;puts s+&quot;;_ The Qlobe#{&quot; &quot;*18+ ( &quot;# :#######&quot; ;&quot;Copyright(C).Yusuke End oh, 2010&quot;)}&quot;;exit~;_ The Qlobe Copyright(C).Yusuke Endoh, 2010
  • 26. v=0416;eval$s=%q~d=%!^Lcf<LK8, _@7gj*LJ=c5nM)Tp1g0%Xv.,S[<>YoP 4ZojjV)O>qIH1/n[|2yE[>:ieC &quot;.#####%.#% &quot; 97N-A&Kj_K_><wS5rtWk@*a+Y5 yH?b[F^e7C/56j|pmRe+:)B &quot; .#####%##% :&quot; O98(Zh)'Iof*nm.,$C5Nyt= PPu01Avw^<IiQ=5$'D-y? &quot; #####%###: #&quot; g6`YT+qLw9k^ch|K'),tc 6ygIL8xI#LNz3v}T=4W &quot; %######## #.&quot; lL27FZ0ij)7TQCI)P7u }RT5-iJbbG5P-DHB<. &quot; :####### ###&quot; R,YvZ_rnv6ky-G+4U' $*are@b4U351Q-ug5 &quot; ###: : ####&quot; 00x8RR%`Om7VDp4M5 PFixrPvl&<p[]1IJ &quot; %#... #####&quot; EGgDt8Lm#;bc4zS^ y]0`_PstfUxOC(q &quot; %### .#####&quot; /,}.YOIFj(k&q_V zcaAi?]^lCVYp!; &quot; :. %% .#####&quot; ;s=&quot;v=%04o;ev&quot;% (;v=(v-($*+[45, &quot; :####: :####&quot; ])[n=0].to_i;)% 360)+&quot;al$s=%q#{ &quot; %######. &quot; ;;&quot;%c&quot;%126+$s<< 126}&quot;;d.gsub!(/ &quot; ##########. &quot; |s|&quot;.*&quot;/,&quot;&quot;);; require&quot;zlib&quot;|| &quot; ########### &quot; ;d=d.unpack&quot;C*&quot; d.map{|c|n=(n|| &quot; :#########: &quot; )*90+(c-2)%91}; e=[&quot;%x&quot;%n].pack &quot; :#######% &quot; &&&quot;H*&quot;;e=Zlib:: Inflate.inflate( &quot; ######% &quot; &&e).unpack(&quot;b*&quot; )[0];22.times{|y| &quot; ####% &quot; ;w=(Math.sqrt(1-( (y*2.0-21)/22)**(; &quot; .###: &quot; ;2))*23).floor;(w* 2-1).times{|x|u=(e+ &quot; %## &quot; )[y*z=360,z]*2;u=u[ 90*x/w+v+90,90/w];s[( &quot; #. &quot; ;y*80)+120-w+x]=(&quot;&quot;<< 32<<&quot;.:%#&quot;)[4*u.count(( &quot; . &quot; ;&quot;0&quot;))/u.size]}};;puts s+&quot;;_ The Qlobe#{&quot; &quot;*18+ ( &quot; .##### :#&quot; ;&quot;Copyright(C).Yusuke End oh, 2010&quot;)}&quot;;exit~;_ The Qlobe Copyright(C).Yusuke Endoh, 2010
  • 27. v=0341;eval$s=%q~d=%!^Lcf<LK8, _@7gj*LJ=c5nM)Tp1g0%Xv.,S[<>YoP 4ZojjV)O>qIH1/n[|2yE[>:ieC &quot;#% .#####%.&quot; 97N-A&Kj_K_><wS5rtWk@*a+Y5 yH?b[F^e7C/56j|pmRe+:)B &quot; : %#####%##. &quot; O98(Zh)'Iof*nm.,$C5Nyt= PPu01Avw^<IiQ=5$'D-y? &quot; #####%###: &quot; g6`YT+qLw9k^ch|K'),tc 6ygIL8xI#LNz3v}T=4W &quot; %######## &quot; lL27FZ0ij)7TQCI)P7u }RT5-iJbbG5P-DHB<. &quot; :####### &quot; R,YvZ_rnv6ky-G+4U' $*are@b4U351Q-ug5 &quot; :### : &quot; 00x8RR%`Om7VDp4M5 PFixrPvl&<p[]1IJ &quot; %#... &quot; EGgDt8Lm#;bc4zS^ y]0`_PstfUxOC(q &quot; .###: &quot; /,}.YOIFj(k&q_V zcaAi?]^lCVYp!; &quot; :. %% &quot; ;s=&quot;v=%04o;ev&quot;% (;v=(v-($*+[45, &quot; :####: &quot; ])[n=0].to_i;)% 360)+&quot;al$s=%q#{ &quot; %######. &quot; ;;&quot;%c&quot;%126+$s<< 126}&quot;;d.gsub!(/ &quot; ##########&quot; |s|&quot;.*&quot;/,&quot;&quot;);; require&quot;zlib&quot;|| &quot;% ##########&quot; ;d=d.unpack&quot;C*&quot; d.map{|c|n=(n|| &quot; :#########&quot; )*90+(c-2)%91}; e=[&quot;%x&quot;%n].pack &quot; ########&quot; &&&quot;H*&quot;;e=Zlib:: Inflate.inflate( &quot;#. ######%&quot; &&e).unpack(&quot;b*&quot; )[0];22.times{|y| &quot;## :####. &quot; ;w=(Math.sqrt(1-( (y*2.0-21)/22)**(; &quot;#. .###: &quot; ;2))*23).floor;(w* 2-1).times{|x|u=(e+ &quot;% . %## &quot; )[y*z=360,z]*2;u=u[ 90*x/w+v+90,90/w];s[( &quot; . #. &quot; ;y*80)+120-w+x]=(&quot;&quot;<< 32<<&quot;.:%#&quot;)[4*u.count(( &quot; : &quot; ;&quot;0&quot;))/u.size]}};;puts s+&quot;;_ The Qlobe#{&quot; &quot;*18+ ( &quot;#. .##### &quot; ;&quot;Copyright(C).Yusuke End oh, 2010&quot;)}&quot;;exit~;_ The Qlobe Copyright(C).Yusuke Endoh, 2010
  • 28. v=0264;eval$s=%q~d=%!^Lcf<LK8, _@7gj*LJ=c5nM)Tp1g0%Xv.,S[<>YoP 4ZojjV)O>qIH1/n[|2yE[>:ieC &quot;####% .####&quot; 97N-A&Kj_K_><wS5rtWk@*a+Y5 yH?b[F^e7C/56j|pmRe+:)B &quot;##### : .#####&quot; O98(Zh)'Iof*nm.,$C5Nyt= PPu01Avw^<IiQ=5$'D-y? &quot;######. #####%&quot; g6`YT+qLw9k^ch|K'),tc 6ygIL8xI#LNz3v}T=4W &quot;####: . %######&quot; lL27FZ0ij)7TQCI)P7u }RT5-iJbbG5P-DHB<. &quot;#### . :######&quot; R,YvZ_rnv6ky-G+4U' $*are@b4U351Q-ug5 &quot;####% ###: &quot; 00x8RR%`Om7VDp4M5 PFixrPvl&<p[]1IJ &quot;### %#...&quot; EGgDt8Lm#;bc4zS^ y]0`_PstfUxOC(q &quot;## .. %###&quot; /,}.YOIFj(k&q_V zcaAi?]^lCVYp!; &quot;:#. . :&quot; ;s=&quot;v=%04o;ev&quot;% (;v=(v-($*+[45, &quot;: : : &quot; ])[n=0].to_i;)% 360)+&quot;al$s=%q#{ &quot;% %#: &quot; ;;&quot;%c&quot;%126+$s<< 126}&quot;;d.gsub!(/ &quot;#::#.: %#% &quot; |s|&quot;.*&quot;/,&quot;&quot;);; require&quot;zlib&quot;|| &quot; : :#% &quot; ;d=d.unpack&quot;C*&quot; d.map{|c|n=(n|| &quot; :% : &quot; )*90+(c-2)%91}; e=[&quot;%x&quot;%n].pack &quot; %###%% &quot; &&&quot;H*&quot;;e=Zlib:: Inflate.inflate( &quot; ########. &quot; &&e).unpack(&quot;b*&quot; )[0];22.times{|y| &quot; ########. &quot; ;w=(Math.sqrt(1-( (y*2.0-21)/22)**(; &quot; ##:%###. &quot; ;2))*23).floor;(w* 2-1).times{|x|u=(e+ &quot; %% . &quot; )[y*z=360,z]*2;u=u[ 90*x/w+v+90,90/w];s[( &quot; . &quot; ;y*80)+120-w+x]=(&quot;&quot;<< 32<<&quot;.:%#&quot;)[4*u.count(( &quot; &quot; ;&quot;0&quot;))/u.size]}};;puts s+&quot;;_ The Qlobe#{&quot; &quot;*18+ ( &quot;####. .###&quot; ;&quot;Copyright(C).Yusuke End oh, 2010&quot;)}&quot;;exit~;_ The Qlobe Copyright(C).Yusuke Endoh, 2010
  • 29. v=0207;eval$s=%q~d=%!^Lcf<LK8, _@7gj*LJ=c5nM)Tp1g0%Xv.,S[<>YoP 4ZojjV)O>qIH1/n[|2yE[>:ieC &quot;#######% .#&quot; 97N-A&Kj_K_><wS5rtWk@*a+Y5 yH?b[F^e7C/56j|pmRe+:)B &quot;##########: : &quot; O98(Zh)'Iof*nm.,$C5Nyt= PPu01Avw^<IiQ=5$'D-y? &quot;#############. &quot; g6`YT+qLw9k^ch|K'),tc 6ygIL8xI#LNz3v}T=4W &quot;############: . &quot; lL27FZ0ij)7TQCI)P7u }RT5-iJbbG5P-DHB<. &quot;############# . &quot; R,YvZ_rnv6ky-G+4U' $*are@b4U351Q-ug5 &quot;############## &quot; 00x8RR%`Om7VDp4M5 PFixrPvl&<p[]1IJ &quot;# %######### &quot; EGgDt8Lm#;bc4zS^ y]0`_PstfUxOC(q &quot; %#: %##: : &quot; /,}.YOIFj(k&q_V zcaAi?]^lCVYp!; &quot; #. .:#. . &quot; ;s=&quot;v=%04o;ev&quot;% (;v=(v-($*+[45, &quot; : : : : &quot; ])[n=0].to_i;)% 360)+&quot;al$s=%q#{ &quot; :% %#: &quot; ;;&quot;%c&quot;%126+$s<< 126}&quot;;d.gsub!(/ &quot; #::#.: %#% &quot; |s|&quot;.*&quot;/,&quot;&quot;);; require&quot;zlib&quot;|| &quot; : :#% &quot; ;d=d.unpack&quot;C*&quot; d.map{|c|n=(n|| &quot; :% : &quot; )*90+(c-2)%91}; e=[&quot;%x&quot;%n].pack &quot; .###%# &quot; &&&quot;H*&quot;;e=Zlib:: Inflate.inflate( &quot; ########. &quot; &&e).unpack(&quot;b*&quot; )[0];22.times{|y| &quot; :######## &quot; ;w=(Math.sqrt(1-( (y*2.0-21)/22)**(; &quot; ##:%###. &quot; ;2))*23).floor;(w* 2-1).times{|x|u=(e+ &quot; %% . &quot; )[y*z=360,z]*2;u=u[ 90*x/w+v+90,90/w];s[( &quot; . &quot; ;y*80)+120-w+x]=(&quot;&quot;<< 32<<&quot;.:%#&quot;)[4*u.count(( &quot; &quot; ;&quot;0&quot;))/u.size]}};;puts s+&quot;;_ The Qlobe#{&quot; &quot;*18+ ( &quot;#######. .&quot; ;&quot;Copyright(C).Yusuke End oh, 2010&quot;)}&quot;;exit~;_ The Qlobe Copyright(C).Yusuke Endoh, 2010
  • 30. v=0132;eval$s=%q~d=%!^Lcf<LK8, _@7gj*LJ=c5nM)Tp1g0%Xv.,S[<>YoP 4ZojjV)O>qIH1/n[|2yE[>:ieC &quot;:::#######%&quot; 97N-A&Kj_K_><wS5rtWk@*a+Y5 yH?b[F^e7C/56j|pmRe+:)B &quot;################ : &quot; O98(Zh)'Iof*nm.,$C5Nyt= PPu01Avw^<IiQ=5$'D-y? &quot;####################. &quot; g6`YT+qLw9k^ch|K'),tc 6ygIL8xI#LNz3v}T=4W &quot; .####:############: . &quot; lL27FZ0ij)7TQCI)P7u }RT5-iJbbG5P-DHB<. &quot;# # :################# . &quot; R,YvZ_rnv6ky-G+4U' $*are@b4U351Q-ug5 &quot;#######################% &quot; 00x8RR%`Om7VDp4M5 PFixrPvl&<p[]1IJ &quot;######:#### %######### &quot; EGgDt8Lm#;bc4zS^ y]0`_PstfUxOC(q &quot;#######:##% .## .### .. &quot; /,}.YOIFj(k&q_V zcaAi?]^lCVYp!; &quot;##########. #. .:#. . &quot; ;s=&quot;v=%04o;ev&quot;% (;v=(v-($*+[45, &quot;#########% : : : : &quot; ])[n=0].to_i;)% 360)+&quot;al$s=%q#{ &quot;######### :% %#: &quot; ;;&quot;%c&quot;%126+$s<< 126}&quot;;d.gsub!(/ &quot;#######% #::#.: %#% &quot; |s|&quot;.*&quot;/,&quot;&quot;);; require&quot;zlib&quot;|| &quot;:######. : :#% &quot; ;d=d.unpack&quot;C*&quot; d.map{|c|n=(n|| &quot;.######: . :% : &quot; )*90+(c-2)%91}; e=[&quot;%x&quot;%n].pack &quot;:###### #: %###%% &quot; &&&quot;H*&quot;;e=Zlib:: Inflate.inflate( &quot;.####% :: ########. &quot; &&e).unpack(&quot;b*&quot; )[0];22.times{|y| &quot; %### ########. &quot; ;w=(Math.sqrt(1-( (y*2.0-21)/22)**(; &quot; .#% ##:%###. &quot; ;2))*23).floor;(w* 2-1).times{|x|u=(e+ &quot; %% . &quot; )[y*z=360,z]*2;u=u[ 90*x/w+v+90,90/w];s[( &quot; . &quot; ;y*80)+120-w+x]=(&quot;&quot;<< 32<<&quot;.:%#&quot;)[4*u.count(( &quot; &quot; ;&quot;0&quot;))/u.size]}};;puts s+&quot;;_ The Qlobe#{&quot; &quot;*18+ ( &quot;##########.&quot; ;&quot;Copyright(C).Yusuke End oh, 2010&quot;)}&quot;;exit~;_ The Qlobe Copyright(C).Yusuke Endoh, 2010
  • 31. v=0055;eval$s=%q~d=%!^Lcf<LK8, _@7gj*LJ=c5nM)Tp1g0%Xv.,S[<>YoP 4ZojjV)O>qIH1/n[|2yE[>:ieC &quot;% :::#####&quot; 97N-A&Kj_K_><wS5rtWk@*a+Y5 yH?b[F^e7C/56j|pmRe+:)B &quot; .:################&quot; O98(Zh)'Iof*nm.,$C5Nyt= PPu01Avw^<IiQ=5$'D-y? &quot; ######################&quot; g6`YT+qLw9k^ch|K'),tc 6ygIL8xI#LNz3v}T=4W &quot; #. .####:############: &quot; lL27FZ0ij)7TQCI)P7u }RT5-iJbbG5P-DHB<. &quot; ##### # :################# . &quot; R,YvZ_rnv6ky-G+4U' $*are@b4U351Q-ug5 &quot; :############################ &quot; 00x8RR%`Om7VDp4M5 PFixrPvl&<p[]1IJ &quot; ############:#### %######### &quot; EGgDt8Lm#;bc4zS^ y]0`_PstfUxOC(q &quot; %############:### %#: %##: : &quot; /,}.YOIFj(k&q_V zcaAi?]^lCVYp!; &quot; .################. #. .:#. . &quot; ;s=&quot;v=%04o;ev&quot;% (;v=(v-($*+[45, &quot; :##############% : : : : &quot; ])[n=0].to_i;)% 360)+&quot;al$s=%q#{ &quot; ######### :% %#: &quot; ;;&quot;%c&quot;%126+$s<< 126}&quot;;d.gsub!(/ &quot; #######% #::#.: %#&quot; |s|&quot;.*&quot;/,&quot;&quot;);; require&quot;zlib&quot;|| &quot; :######. : :&quot; ;d=d.unpack&quot;C*&quot; d.map{|c|n=(n|| &quot; .######: . :% &quot; )*90+(c-2)%91}; e=[&quot;%x&quot;%n].pack &quot; ######%:# .###%&quot; &&&quot;H*&quot;;e=Zlib:: Inflate.inflate( &quot; .####% :: ######&quot; &&e).unpack(&quot;b*&quot; )[0];22.times{|y| &quot; .###: :#####&quot; ;w=(Math.sqrt(1-( (y*2.0-21)/22)**(; &quot; .#% ##:%#&quot; ;2))*23).floor;(w* 2-1).times{|x|u=(e+ &quot; &quot; )[y*z=360,z]*2;u=u[ 90*x/w+v+90,90/w];s[( &quot; &quot; ;y*80)+120-w+x]=(&quot;&quot;<< 32<<&quot;.:%#&quot;)[4*u.count(( &quot; &quot; ;&quot;0&quot;))/u.size]}};;puts s+&quot;;_ The Qlobe#{&quot; &quot;*18+ ( &quot;:##########&quot; ;&quot;Copyright(C).Yusuke End oh, 2010&quot;)}&quot;;exit~;_ The Qlobe Copyright(C).Yusuke Endoh, 2010
  • 32. v=0000;eval$s=%q~d=%!^Lcf<LK8, _@7gj*LJ=c5nM)Tp1g0%Xv.,S[<>YoP 4ZojjV)O>qIH1/n[|2yE[>:ieC &quot;%.#% :::##&quot; 97N-A&Kj_K_><wS5rtWk@*a+Y5 yH?b[F^e7C/56j|pmRe+:)B &quot;##% ::##########&quot; O98(Zh)'Iof*nm.,$C5Nyt= PPu01Avw^<IiQ=5$'D-y? &quot;##: ###############&quot; g6`YT+qLw9k^ch|K'),tc 6ygIL8xI#LNz3v}T=4W &quot;# #. .####:#######&quot; lL27FZ0ij)7TQCI)P7u }RT5-iJbbG5P-DHB<. &quot; ##### # :############&quot; R,YvZ_rnv6ky-G+4U' $*are@b4U351Q-ug5 &quot; #######################&quot; 00x8RR%`Om7VDp4M5 PFixrPvl&<p[]1IJ &quot; ############:#### %#####&quot; EGgDt8Lm#;bc4zS^ y]0`_PstfUxOC(q &quot; .#############:##% .## .&quot; /,}.YOIFj(k&q_V zcaAi?]^lCVYp!; &quot; %% .################. #. &quot; ;s=&quot;v=%04o;ev&quot;% (;v=(v-($*+[45, &quot;:####: :##############% : &quot; ])[n=0].to_i;)% 360)+&quot;al$s=%q#{ &quot;%######. ######### &quot; ;;&quot;%c&quot;%126+$s<< 126}&quot;;d.gsub!(/ &quot;##########. #######% &quot; |s|&quot;.*&quot;/,&quot;&quot;);; require&quot;zlib&quot;|| &quot;########### :######. &quot; ;d=d.unpack&quot;C*&quot; d.map{|c|n=(n|| &quot;:#########: .######: . &quot; )*90+(c-2)%91}; e=[&quot;%x&quot;%n].pack &quot; :#######% :###### #: &quot; &&&quot;H*&quot;;e=Zlib:: Inflate.inflate( &quot; ######% .####% :: &quot; &&e).unpack(&quot;b*&quot; )[0];22.times{|y| &quot; ####% %### &quot; ;w=(Math.sqrt(1-( (y*2.0-21)/22)**(; &quot; .###: .#% &quot; ;2))*23).floor;(w* 2-1).times{|x|u=(e+ &quot; %## &quot; )[y*z=360,z]*2;u=u[ 90*x/w+v+90,90/w];s[( &quot; #. &quot; ;y*80)+120-w+x]=(&quot;&quot;<< 32<<&quot;.:%#&quot;)[4*u.count(( &quot; . &quot; ;&quot;0&quot;))/u.size]}};;puts s+&quot;;_ The Qlobe#{&quot; &quot;*18+ ( &quot;# :#######&quot; ;&quot;Copyright(C).Yusuke End oh, 2010&quot;)}&quot;;exit~;_ The Qlobe Copyright(C).Yusuke Endoh, 2010
  • 33. BEFOREHAND: close door, each window & exit; wait until time. open spellbook, study, read (scan, select, tell us); write it, print the hex while each watches, reverse its length, write again; kill spiders, pop them, chop, split, kill them. unlink arms, shift, wait & listen (listening, wait), sort the flock (then, warn the &quot;goats&quot; & kill the &quot;sheep&quot;);
  • 34. &quot;eyes&quot; . scan /the_darkness/ catch ( :in_the_wind ) { ?a. round ; &quot;breath&quot; or &quot;a&quot; . slice / of_moon / }
  • 35. Source vs. Binary Unity can only be manifested by the Binary. Unity itself and the idea of Unity are already two.- Buddha
  • 36.  
  • 37. Code vs. Data The progression of the Lisp programmer: the newbie realizes that the difference between code and data is trivial. The expert realizes that all code is data. And the true master realizes that all data is code.- Unknown
  • 38. Polyglot The Tao gave birth to machine language. Machine language gave birth to the assembler. The assembler gave birth to the compiler. Now there are ten thousand languages.Each language has its purpose, however humble. Each language expresses the Yin and Yang of software. Each language has its place within the Tao. But do not program in COBOL if you can avoid it.- The Tao of Programming
  • 39. The Temporal Dimension The authenticity of a thing is the essence of all that is transmissible from its beginning, ranging from its substative duration to its testimony to the history which it has experienced. - Walter Benjamin, &quot;The Work of Art in the Age of Mechanical Reproduction&quot;
  • 40. Integrating Copies Even the most perfect reproduction of a work of art is lacking in one element: its presence in time and space, its unique existence at the place where it happens to be.- Walter Benjamin, &quot;The Work of Art in the Age of Mechanical Reproduction&quot;
  • 41. Multiple Representations Q: If only you and dead people understand hexidecimal, how many people understand hexidecimal?A: 57006.
  • 42. Backporting Software is like sex; make one mistake, and you'll be supporting it for the next 18 years.- Unknown
  • 43. Levels of Abstraction William James, father of American psychology, tells of meeting an old lady who told him the Earth rested on the back of a huge turtle. &quot;But, my dear lady&quot;, Professor James asked, as politely as possible, &quot;what holds up the turtle?&quot; &quot;Ah&quot;, she said, &quot;that's easy. He is standing on the back of another turtle.&quot; &quot;Oh, I see&quot;, said Professor James, still being polite. &quot;But would you be so good as to tell me what holds up the second turtle?&quot; &quot;It's no use, Professor&quot;, said the old lady, realizing he was trying to lead her into a logical trap. &quot;It's turtles-turtles-turtles, all the way!&quot;- Prometheus Rising
  • 44. an aside:
  • 45. Software as a crisis of literacy
  • 46. an aside to the aside:
  • 47. terminology problems
  • 48. Crisis - A point of great tension in a narrative that determines how the action will come out.
  • 49.  
  • 50.  
  • 51. Thanks! @steveklabnik http://steveklabnik.com

×