-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
966 lines (675 loc) · 40.2 KB
/
index.html
File metadata and controls
966 lines (675 loc) · 40.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>(λ) Practical Elegance</title>
<meta name="description" content="code, ire, and song
">
<link rel="stylesheet" href="/css/main.css">
<link rel="icon" type="image/png" href="/favicon.png">
<link rel="canonical" href="http://decomplecting.org/">
<link rel="alternate" type="application/rss+xml" title="(λ) Practical Elegance" href="http://decomplecting.org/feed.xml" />
<script type="text/javascript" src="https://www.blackoutcongress.org/detect.js"></script>
<link href='/stylesheets/all-19d72be95c52446ae8f9582e2b7bf3fc.css' media='all' rel='stylesheet' type='text/css'>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-22978638-1', 'auto');
ga('send', 'pageview');
</script>
</head>
<body>
<header class="site-header">
<div class="wrapper">
<a class="site-title" href="/">(λ) Practical Elegance</a>
<nav class="site-nav">
<a href="#" class="menu-icon">
<svg viewBox="0 0 18 15">
<path fill="#424242" d="M18,1.484c0,0.82-0.665,1.484-1.484,1.484H1.484C0.665,2.969,0,2.304,0,1.484l0,0C0,0.665,0.665,0,1.484,0 h15.031C17.335,0,18,0.665,18,1.484L18,1.484z"/>
<path fill="#424242" d="M18,7.516C18,8.335,17.335,9,16.516,9H1.484C0.665,9,0,8.335,0,7.516l0,0c0-0.82,0.665-1.484,1.484-1.484 h15.031C17.335,6.031,18,6.696,18,7.516L18,7.516z"/>
<path fill="#424242" d="M18,13.516C18,14.335,17.335,15,16.516,15H1.484C0.665,15,0,14.335,0,13.516l0,0 c0-0.82,0.665-1.484,1.484-1.484h15.031C17.335,12.031,18,12.696,18,13.516L18,13.516z"/>
</svg>
</a>
<div class="trigger">
<a class="page-link" href="/">Posts</a>
<a class="page-link" href="/archive/">Archive</a>
<a class="page-link" href="/about/">About</a>
<a class="page-link" href="/feed/">Subscribe</a>
</div>
</nav>
</div>
</header>
<div class="page-content">
<div class="wrapper">
<div class="home">
<h1 class="page-heading">
<em>Elegance is not a dispensable luxury</em>
</h1>
<ul class="post-list">
<li>
<span class="post-meta">Dec 8, 2015</span>
<h2>
<a class="post-link" href="/blog/2015/12/08/on-hiring-programmers/">On Hiring Programmers</a>
</h2>
<p>
<p>Lately I’ve been focusing on the management aspects of my role at
<a href="http://www.yetanalytics.com">Yet Analytics</a> because I’m the first to admit I’m generally better
at dealing with machines than people. But I’ve found some sound guidance along
the way, whether it’s Chad Fowler’s personal career advice in
<em><a href="https://pragprog.com/book/cfcar2/the-passionate-programmer">The Passionate Programmer</a>,</em> or the managerial advice on building
software teams in <em><a href="http://www.managingtheunmanageable.net/">Managing The Unmanageable</a>.</em></p>
</p>
</li>
<li>
<span class="post-meta">Oct 2, 2015</span>
<h2>
<a class="post-link" href="/blog/2015/10/02/time-and-concurrency/">Time and Concurrency</a>
</h2>
<p>
<p>Last Wednesday, I gave a short talk at <a href="http://2015.baltimoreinnovationweek.com/">Baltimore Innovation Week</a>
<a href="http://2015.baltimoreinnovationweek.com/events/dev_day_talks">DevDay</a>, entitled “Time and Concurrency”. The slides are hosted
<a href="http://decomplecting.org/time-and-concurrency">here</a>, but I’ll try embedding them:</p>
</p>
</li>
<li>
<span class="post-meta">Sep 12, 2015</span>
<h2>
<a class="post-link" href="/blog/2015/09/12/thought-leadership-delenda-est/">"Thought Leadership" Delenda Est</a>
</h2>
<p>
<p>There is a short list of terms that have entered the vernacular, in the tech
world and <em>a fortiori</em> in the startup world, which I detest. I can think of
no better term to express my emotion at these terms, for I consider them
beneath contempt and an assault on dignity. One, as I have mentioned, is
<em>“human capital”</em> - a term so offensive I can’t even.</p>
</p>
</li>
<li>
<span class="post-meta">May 16, 2015</span>
<h2>
<a class="post-link" href="/blog/2015/05/16/hello-octopress-3-0/">Hello, Octopress 3.0!</a>
</h2>
<p>
<p>If you’ve been here before, my blog probably either looks much cleaner
and less busy, or it looks like git decided to lose all of my layout and
CSS files in some industrial accident. Well, it’s no accident, and it’s
not (exactly) a redesign.</p>
</p>
</li>
<li>
<span class="post-meta">Dec 22, 2014</span>
<h2>
<a class="post-link" href="/blog/2014/12/22/in-memoriam-wolfgang-walter-fuchs/">In Memoriam: Wolfgang Walter Fuchs</a>
</h2>
<p>
<p>I was recently corresponding with a professor of mine about Wittgenstein, planning to set up a meeting to have a chat and catch up. Oh, and talk about Wittgenstein, as I found another place where philosophy is relevant to programming. In my last email to him, I happened to ask after one of his colleagues, who was my advisor, mentor, and one of the most influential people in my life.</p>
</p>
</li>
<li>
<span class="post-meta">Dec 11, 2014</span>
<h2>
<a class="post-link" href="/blog/2014/12/11/the-polyglots-dilemma/">The Polyglot's Dilemma</a>
</h2>
<p>
<p>If it hasn’t been clear up to now, I love <a href="http://clojure.org">Clojure</a>. I wish I could write Clojure all day, every day. But Clojure isn’t my first language, and possibly not even the language I grok most completely.</p>
</p>
</li>
<li>
<span class="post-meta">Nov 30, 2014</span>
<h2>
<a class="post-link" href="/blog/2014/11/30/the-angel-of-history/">The Angel of History</a>
</h2>
<p>
<p>It all started with a Paul Klee print, or perhaps that’s where it ended:</p>
</p>
</li>
<li>
<span class="post-meta">Nov 22, 2014</span>
<h2>
<a class="post-link" href="/blog/2014/11/22/recovering-from-clojure-slash-conj/">Recovering From Clojure/conj</a>
</h2>
<p>
<p>Whew. I just got back from <a href="http://clojure-conj.org">Clojure/conj</a> and boy, is my brain tired.</p>
</p>
</li>
<li>
<span class="post-meta">Oct 30, 2014</span>
<h2>
<a class="post-link" href="/blog/2014/10/30/emacs-down-the-rabbit-hole/">Emacs: Down the Rabbit Hole</a>
</h2>
<p>
<p>So I wrote <a href="http://decomplecting.org/blog/2014/10/23/welcome-to-the-dark-side-switching-to-emacs/">Welcome to The Dark Side: Switching to Emacs</a> in response to a tweet, but as any of my co-workers will attest, it doesn’t take much to get me started on my Emacs workflow.</p>
</p>
</li>
<li>
<span class="post-meta">Oct 29, 2014</span>
<h2>
<a class="post-link" href="/blog/2014/10/29/reify-this/">Reify This!</a>
</h2>
<p>
<p>On the way home this afternoon I was asked to explain Clojure’s <code>reify</code> macro, and apparently I did quite well, as an “Aha!” moment resulted. So I shall endeavour to explain <code>reify</code> here in the hope that such a moment might be available to others.</p>
</p>
</li>
<li>
<span class="post-meta">Oct 23, 2014</span>
<h2>
<a class="post-link" href="/blog/2014/10/23/welcome-to-the-dark-side-switching-to-emacs/">Welcome to the Dark Side: Switching to Emacs</a>
</h2>
<p>
<p>I have to start this post by saying I’ve been a dogmatic <a href="http://www.vim.org/">Vim</a> partisan since the 1990’s, when I started using vi on the Solaris and Irix boxen I had access to, and then on my own machines when I got started with Linux in 1994.</p>
</p>
</li>
<li>
<span class="post-meta">Aug 22, 2014</span>
<h2>
<a class="post-link" href="/blog/2014/08/22/fear-and-coding-in-las-vegas/">Fear and Coding in Las Vegas</a>
</h2>
<p>
<p>I’m sitting in the first session of the <a href="http://code.org">Code.org</a> K-5 PD
training workshop.</p>
</p>
</li>
<li>
<span class="post-meta">Aug 19, 2014</span>
<h2>
<a class="post-link" href="/blog/2014/08/19/have-a-happy-why-day-with-whynot/">Have a Happy #Whyday With Whynot</a>
</h2>
<p>
<p>It’s August 19th, the day we remember why the lucky stiff’s poignant departure
from the internet. <a href="https://github.com/ruby-jokes">ruby-jokes</a> would hate to
part with the <a href="http://whyday.org/">Whyday</a> tradition of hacking on something just for fun and releasing
it into the wild.</p>
</p>
</li>
<li>
<span class="post-meta">Jun 10, 2014</span>
<h2>
<a class="post-link" href="/blog/2014/06/10/on-comments-and-moderation/">On Comments and Moderation</a>
</h2>
<p>
<p>I’ve always taken a hands-off approach to moderating comments, feeling that it was a form of censorship to restrict discussion even on my own blog. It’s worked pretty well; I feel like prior to yesterday, I’ve deleted less than three comments in the three years I’ve maintained this blog.</p>
</p>
</li>
<li>
<span class="post-meta">Jun 9, 2014</span>
<h2>
<a class="post-link" href="/blog/2014/06/09/im-telling/">I'm Telling :: Employer-Tattling and the Decline of Agency</a>
</h2>
<p>
<p>The other night Twitter was abuzz with controversy and drama, as per usual. One of those threads (which I’ll get to momentarily) invovled what I’ll refer to as “employer-tattling,” and <a href="https://twitter.com/soederpop">Jon Soeder</a> (laudably without drawing attention to the ongoing echo chamber), tweeted this:</p>
</p>
</li>
<li>
<span class="post-meta">Mar 11, 2014</span>
<h2>
<a class="post-link" href="/blog/2014/03/11/scream-when-you-learn/">Scream When You Learn</a>
</h2>
<p>
<p><em>Apologies to Charles Bukowski</em></p>
</p>
</li>
<li>
<span class="post-meta">Jan 27, 2014</span>
<h2>
<a class="post-link" href="/blog/2014/01/27/discussing-privilege-educon-reflections-number-1/">Discussing Privilege: EduCon Reflections #1</a>
</h2>
<p>
<p>While I’m planning a full “overview” reflection on <a href="http://educonphilly.org">EduCon 2.6</a>, I was (pardon the pun) privileged to participate in a conversation entitled <a href="http://educonphilly.org/conversations/The_Privileged_Voices_in_Education">“The Privileged Voices in Education”</a>, facilitated by <a href="https://twitter.com/audreywatters">Audrey Watters</a> and <a href="https://twitter.com/TheJLV">Jose Vilson</a>. Audrey has written about the session on <a href="http://www.hackeducation.com/2014/01/26/the-privileged-voices-in-education-educon/?utm_content=buffer01abf&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer">her blog</a>, and Jose has written about it on <a href="http://thejosevilson.com/educon-addressing-privilege-developing-learners-race/">his blog</a>, so you can refer to those for context. But I want to talk about my takeaways from that wonderful session and what came after while it’s fresh in my mind, and then work on a more general EduCon post.</p>
</p>
</li>
<li>
<span class="post-meta">Jan 23, 2014</span>
<h2>
<a class="post-link" href="/blog/2014/01/23/new-from-ruby-jokes-taint-aliases/">New From Ruby Jokes: Taint_aliases</a>
</h2>
<p>
<p>The <a href="https://github.com/ruby-jokes">Ruby Jokes</a> team has a new gem for you that was designed, tested, and released in about an hour this afternoon: <a href="http://ruby-jokes.github.io/taint_aliases">taint_aliases</a>. You can get the full details <a href="https://github.com/ruby-jokes/taint_aliases">on GitHub</a>, but I thought a friendly introduction might make for an enlightening blog post.</p>
</p>
</li>
<li>
<span class="post-meta">Dec 23, 2013</span>
<h2>
<a class="post-link" href="/blog/2013/12/23/goodbye-at-and-t/">Goodbye AT&T, Hello T-Mobile?</a>
</h2>
<p>
<p>So I’m curious about this <a href="http://guardianlv.com/2013/12/t-mobile-uncarrier-4-0-reportedly-will-buyout-contracts-when-switching/">Uncarrier 4.0</a> thing rumoured to be rolled out by <a href="http://www.t-mobile.com/">T-Mobile</a> in the near future… I’ve considered ditching <a href="http://www.att.com/shop/wireless.html">AT&T Wireless</a> many times, but keep getting dragged back in by upgrades, which seem to take longer and longer to happen.</p>
</p>
</li>
<li>
<span class="post-meta">Dec 11, 2013</span>
<h2>
<a class="post-link" href="/blog/2013/12/11/hour-of-code-voight-kampff-for-hackers/">Hour of Code: Voight-Kampff for Hackers?</a>
</h2>
<p>
<p>So, <a href="http://gizmodo.com">Gizmodo</a> has a great post on the new series of <a href="http://code.org">Code.org</a> PSAs, <a href="http://gizmodo.com/people-who-did-not-get-rich-and-or-famous-coding-want-y-1479863703">“People Who Did Not Get Rich and/or Famous Coding Want You to Code”</a>. I think <a href="http://csedweek.org/">Computer Science Education Week</a> is a fantastic idea (although IMHO every week should be CSEdWeek), but the whole “hour of code” thing seemed slightly silly, until now.</p>
</p>
</li>
<li>
<span class="post-meta">Dec 9, 2013</span>
<h2>
<a class="post-link" href="/blog/2013/12/09/apple-the-obstacle-to-americas-future/">Apple: The Obstacle to America's Future?</a>
</h2>
<p>
<p>In a brief address to kick off Computer Science Education Week (In conjunction with <a href="http://code.org">Code.org</a>), President Obama called on the nation’s youth to give coding a chance:</p>
</p>
</li>
<li>
<span class="post-meta">Nov 20, 2013</span>
<h2>
<a class="post-link" href="/blog/2013/11/20/github-matters-followup/">Github Matters - Followup</a>
</h2>
<p>
<h4 id="mea-culpa">Mea Culpa</h4>
</p>
</li>
<li>
<span class="post-meta">Nov 19, 2013</span>
<h2>
<a class="post-link" href="/blog/2013/11/19/so-github-is-not-your-cv-it-still-matters/">So Github Is Not Your CV. It Still Matters</a>
</h2>
<p>
<p>It’s funny, a few days before the OSS-as-hiring-criteria debate emerged on Twitter and HN — mostly stemming from <a href="http://david.heinemeierhansson.com/2013/the-perils-of-mixing-open-source-and-money.html">this post</a> by <a href="https://twitter.com/dhh">DHH</a> and <a href="http://ashedryden.com/blog/the-ethics-of-unpaid-labor-and-the-oss-community">this post</a> by <a href="https://twitter.com/ashedryden">Ashe Dryden</a> — I had just posted <a href="/blog/2013/11/13/just-get-hacking-part-2/">Just Get Hacking (Part 2)</a>, encouraging prospective developers lacking a CS background who wanted to get hired to <strong>put lots of code on Github.</strong></p>
</p>
</li>
<li>
<span class="post-meta">Nov 13, 2013</span>
<h2>
<a class="post-link" href="/blog/2013/11/13/just-get-hacking-part-2/">Just Get Hacking (Part 2)</a>
</h2>
<p>
<h3 id="the-important-stuff">The Important Stuff</h3>
</p>
</li>
<li>
<span class="post-meta">Nov 12, 2013</span>
<h2>
<a class="post-link" href="/blog/2013/11/12/just-get-hacking/">Just Get Hacking</a>
</h2>
<p>
<p><em>This post is a follow up to a previous entry, <a href="/blog/2013/09/29/letter-to-a-young-or-new-programmer/">“Letter to a Young (Or New) Programmer”</a>.</em></p>
</p>
</li>
<li>
<span class="post-meta">Sep 30, 2013</span>
<h2>
<a class="post-link" href="/blog/2013/09/30/maybe-edtech-is-another-leaky-abstraction/">Maybe EdTech Is Another Leaky Abstraction</a>
</h2>
<p>
<p>Working in the EdTech sector, I’m perpetually vexed as I try to determine what exactly “EdTech” is and, <em>a fortiori,</em> what <em>effective</em> EdTech should look like. Perhaps a little background might be in order.</p>
</p>
</li>
<li>
<span class="post-meta">Sep 29, 2013</span>
<h2>
<a class="post-link" href="/blog/2013/09/29/letter-to-a-young-or-new-programmer/">Letter to a Young (or New) Programmer</a>
</h2>
<p>
<p>I get it. You went to college, graduated, got a job, and it’s not what you wanted, hoped for, or whatever. Or maybe you’ve been in the same job for years, and it’s just no fun anymore. And you look at your friends who are hackers. Yeah, we’re anti-social, maybe kinda jerks, but we have <em>so much fun</em> at work, and get pretty well compensated for <em>playing.</em></p>
</p>
</li>
<li>
<span class="post-meta">Sep 2, 2013</span>
<h2>
<a class="post-link" href="/blog/2013/09/02/return-of-the-job-destroyer/">Return of the Job Destroyer</a>
</h2>
<p>
<h3 id="or-human-contact-as-a-premium-service"><em>Or, “Human Contact as a Premium Service”</em></h3>
</p>
</li>
<li>
<span class="post-meta">Jun 21, 2013</span>
<h2>
<a class="post-link" href="/blog/2013/06/21/the-importance-of-aarons-law/">The Importance of "Aaron's Law"</a>
</h2>
<p>
<p>Yesterday, Rep. Zoe Lofgren and Rep. Ron Wyden introduced a bill, known as “Aaron’s Law”, which amends the <a href="http://en.wikipedia.org/wiki/Computer_Fraud_and_Abuse_Act">Computer Fraud and Abuse Act (CFAA)</a>, a 1986 bil which set most of the “cybercrime” statutes on the books today. This law, affectionately known as <a href="http://www.gpo.gov/fdsys/pkg/USCODE-2010-title18/html/USCODE-2010-title18-partI-chap47-sec1030.htm">U.S. Code Title 18, Part I, Chapter 47, §1030</a>, has been added to many times over the years (via the PATRIOT Act, and various bills related to issues of identity theft, etc.), but the substantial core of the bill has remained the same since 1986: vague, ominous, overly broad, and a rampant playground for prosecutorial misconduct.</p>
</p>
</li>
<li>
<span class="post-meta">Jun 2, 2013</span>
<h2>
<a class="post-link" href="/blog/2013/06/02/were-not-ready-to-teach-kids-to-code/">We're Not Ready to Teach Kids to Code</a>
</h2>
<p>
<h2 id="think-kids-should-learn-to-code-teach-the-teachers-first">Think Kids Should Learn To Code? Teach The Teachers First</h2>
</p>
</li>
<li>
<span class="post-meta">May 14, 2013</span>
<h2>
<a class="post-link" href="/blog/2013/05/14/im-an-estuarian/">I'm an Estuarian!</a>
</h2>
<p>
<p>It’s been a while since my last post, because the last few weeks have been just a little crazy.</p>
</p>
</li>
<li>
<span class="post-meta">Apr 5, 2013</span>
<h2>
<a class="post-link" href="/blog/2013/04/05/be-willing-to-let-go/">Be Willing to Let Go; or, "the Big Rewrite"</a>
</h2>
<p>
<blockquote><p>Is it possible that software is not like anything else, that it is meant to be discarded: that the whole point is to always see it as a soap bubble?</p></blockquote>
</p>
</li>
<li>
<span class="post-meta">Apr 2, 2013</span>
<h2>
<a class="post-link" href="/blog/2013/04/02/the-difficulty-of-chaotic-good/">The Difficulty of Chaotic Good</a>
</h2>
<p>
<p>So in a delightful twist, Michael O. Church has brought in the concept of D&D <a href="http://michaelochurch.wordpress.com/2013/03/18/gervais-macleod-11-alignment-and-careers/">ethical alignments</a> to the corporate hierarchy/career discussion.</p>
</p>
</li>
<li>
<span class="post-meta">Mar 23, 2013</span>
<h2>
<a class="post-link" href="/blog/2013/03/23/donglegate/">Donglegate, Inclusionary Culture, Nerd Culture</a>
</h2>
<p>
<p>I’ve taken my time in writing about this. I had some debates (for better or worse) on Twitter, and some rather thoughtful meatspace conversations with friends and coworkers. I have strong feelings about what happened at PyCon (re: the donglegate scenario), and many of them are conflicting. So I’ve waited to write about it until now.</p>
</p>
</li>
<li>
<span class="post-meta">Mar 16, 2013</span>
<h2>
<a class="post-link" href="/blog/2013/03/16/farewell/">Farewell, Reader; or, the Problem With "Free as in Beer"</a>
</h2>
<p>
<p>I’m <a href="http://support.google.com/reader/answer/3028851">going to miss Google Reader</a>.
I know a lot of people are going to. Hell, in a crazy inversion of Godwin’s Law,
even <a href="http://www.youtube.com/watch?v=A25VgNZDQ08">Hitler is upset</a>.
There’s a <a href="https://www.change.org/en-GB/petitions/google-do-not-remove-google-reader-on-july-1-2013">petition on Change.org</a>,
and Bender is pissed:</p>
</p>
</li>
<li>
<span class="post-meta">Mar 15, 2013</span>
<h2>
<a class="post-link" href="/blog/2013/03/15/the-myth-of-the-it-department/">The Myth of the "IT Department"</a>
</h2>
<p>
<p>So in the comments on my <a href="/blog/2013/03/11/confessions-of-a-job-destroyer/">last post</a> I mentioned my fandom
for what is, in my opinion, the most insightful and important blog currently
published, that of <a href="http://michaelochurch.wordpress.com/">Michael O. Church</a>.
His recent series of posts have been reviewing and analyzing the MacLeod theory
of <a href="http://michaelochurch.wordpress.com/2013/03/14/gervais-macleod-9-convexity/">organizational structure</a>
(link is to the latest post in the series, but if you haven’t been following it,
therein are links to the previous eight).</p>
</p>
</li>
<li>
<span class="post-meta">Mar 11, 2013</span>
<h2>
<a class="post-link" href="/blog/2013/03/11/confessions-of-a-job-destroyer/">Confessions of a Job Destroyer</a>
</h2>
<p>
<p>One of the most unfunny ironies of the rhetoric surrounding “job creators” in
contemporary American politics is that most of the jobs being created (or at
least, those with the greatest demand) are in the tech sector. Jobs like mine.
Jobs that automate processes that used to be performed by people.</p>
</p>
</li>
<li>
<span class="post-meta">Mar 10, 2013</span>
<h2>
<a class="post-link" href="/blog/2013/03/10/the-social-university-that-could-have-been/">The Social University That Could Have Been</a>
</h2>
<p>
<p>This is a post I’ve wanted to write for a while, but I’ve needed time and distance to do it justice. This is a post about (from my perspective) the greatest failure of my professional career.</p>
</p>
</li>
<li>
<span class="post-meta">Mar 8, 2013</span>
<h2>
<a class="post-link" href="/blog/2013/03/08/pam-authentication-beyond-the-desktop/">PAM Authentication Beyond the Desktop</a>
</h2>
<p>
<p>The Linux <a href="http://www.linux-pam.org/">PAM</a> (Pluggable Authentication Modules) architecture is one of the most wonderful (and most overlooked) features of the OS. Typically we only consider PAM as handling our console (or xdm/gdm etc. logins) on Linux, but it’s useful for so much more.</p>
</p>
</li>
<li>
<span class="post-meta">Mar 1, 2013</span>
<h2>
<a class="post-link" href="/blog/2013/03/01/code-typos-got-you-down-stop-worrying-with-close-enough/">Code Typos Got You Down? Stop Worrying With Close_enough</a>
</h2>
<p>
<p>From the crack team (<a href="https://twitter.com/micahjgates">Micah Gates</a> and <a href="https://twitter.com/canweriotnow">myself</a>) that brought you <a href="https://github.com/ruby-jokes/job_interview">job_interview</a>, I’m proud to announce the availability of <a href="https://github.com/ruby-jokes/close_enough">close_enough</a>, a gem that will save you from all of those niggling <code>NoMethodError</code>s that occur when you mis-type a method name.</p>
</p>
</li>
<li>
<span class="post-meta">Feb 3, 2013</span>
<h2>
<a class="post-link" href="/blog/2013/02/03/datetime-conversions-in-clojure/">DateTime Conversions in Clojure</a>
</h2>
<p>
<p>In dealing with integrating data from disparate incomaptible systems (which I do to a degree that would drive some men mad), one of the most frequent irritations is dealing with datetime conversions.</p>
</p>
</li>
<li>
<span class="post-meta">Jan 22, 2013</span>
<h2>
<a class="post-link" href="/blog/2013/01/22/ingress-crowdsourcing-solutions-to-np-hard-problems/">Ingress - Crowdsourcing Solutions to NP-Hard Problems?</a>
</h2>
<p>
<p>So I don’t blog much about my gaming habit, but I recently got my invite to <a href="http://www.ingress.com">Ingress</a>, Google’s new location-based MMORPG. Much has been written about the extensive (one might even say brilliant) <a href="http://www.nianticproject.com">viral marketing campaign</a> that launched the game, and there has been some interesting speculation as to Google’s motivation in producing such a game, ranging from the <a href="http://www.reddit.com/r/Android/comments/138res/google_launches_ingress_a_worldwide_mobile/c71v7yv?context=2">begrudgingly admiring</a> to the <a href="http://pandodaily.com/2012/11/19/googles-ingress-is-more-than-a-game-its-a-potential-data-exploitation-disaster/">borderline paranoid</a>.</p>
</p>
</li>
<li>
<span class="post-meta">Jan 3, 2013</span>
<h2>
<a class="post-link" href="/blog/2013/01/03/dci-the-right-idea-for-the-wrong-paradigm/">DCI: The Right Idea for the Wrong Paradigm</a>
</h2>
<p>
<p>I’ve been following with great interest the recent debate over DCI vs. Concerns vs. Whatever in Ruby. The best take I’ve seen, however, is Tony Arcieri’s recent post, <a href="http://tonyarcieri.com/dci-in-ruby-is-completely-broken">“DCI” in Ruby Is Compeltely Broken</a>.</p>
</p>
</li>
<li>
<span class="post-meta">Nov 2, 2012</span>
<h2>
<a class="post-link" href="/blog/2012/11/02/legacy-systems-on-rails-part-3/">Legacy Systems on Rails (Part 3)</a>
</h2>
<p>
<p>It’s been a while since my last post in this series (if you missed them, here are parts <a href="http://decomplecting.org/blog/2012/08/02/legacy-systems-on-rails-part-1/">one</a> and <a href="http://decomplecting.org/blog/2012/08/03/legacy-systems-on-rails-part-2/">two</a>) but I wanted to return to the topic of building out Rails applications on top of legacy systems.</p>
</p>
</li>
<li>
<span class="post-meta">Oct 31, 2012</span>
<h2>
<a class="post-link" href="/blog/2012/10/31/feedback-loops/">Feedback Loops</a>
</h2>
<p>
<p>Sadly, I haven’t added a blog post in roughly 2.5 months. I’ve had ideas for posts, but when it came time to set pen to page (or fingers to keyboard, as teh case may be) I just haven’t had it in me. I really enjoy writing this blog, too. I wasn’t quite sure what was going on, until I read one of the most insightful blog posts I’ve ever seen: <a href="http://edu.mkrecny.com/thoughts/be-nice-to-programmers">Be Nice To Programmers</a>.</p>
</p>
</li>
<li>
<span class="post-meta">Aug 13, 2012</span>
<h2>
<a class="post-link" href="/blog/2012/08/13/ladycoders/">LadyCoders, Twitroversy, and You</a>
</h2>
<p>
<p>So, I had intended my next post to address some of the (valid) criticism of Github that’s been making the rounds lately, but a much more disturbing Twitroversy has emerged today.</p>
</p>
</li>
<li>
<span class="post-meta">Aug 3, 2012</span>
<h2>
<a class="post-link" href="/blog/2012/08/03/generational-impedance-mismatch/">Generational Impedance Mismatch</a>
</h2>
<p>
<p>One thing I’ve come to observe working in higher ed is that you can run into a lot of issues with what I want to term “generational impedance mismatch.” It’s what happens when your ostensible customers are about 40 years older than your target demographic.</p>
</p>
</li>
<li>
<span class="post-meta">Aug 3, 2012</span>
<h2>
<a class="post-link" href="/blog/2012/08/03/legacy-systems-on-rails-part-2/">Legacy Systems on Rails (Part 2)</a>
</h2>
<p>
<p>This will be a quick one. I just wanted to give an example of how Ruby’s open classes can be a lifesaver when a vendor makes bizarre choices, which you then have to deal with.</p>
</p>
</li>
<li>
<span class="post-meta">Aug 2, 2012</span>
<h2>
<a class="post-link" href="/blog/2012/08/02/legacy-systems-on-rails-part-1/">Legacy Systems on Rails (Part 1)</a>
</h2>
<p>
<p>Much of my job consists of providing customized or novel interfaces for a complex legacy system which, although still maintained by the vendor (who shall remain nameless), does not currently (nor do I ever expect it to) meet many of our institutional needs.</p>
</p>
</li>
<li>
<span class="post-meta">Jul 18, 2012</span>
<h2>
<a class="post-link" href="/blog/2012/07/18/higher-education-needs-a-revolution/">Higher Education Needs a Revolution</a>
</h2>
<p>
<p>Yesterday, <a href="http://coursera.com">Coursera</a> announced that 12 more universities had joined their program of creating massive open online courses, or MOOCs (one of them was <a href="http://www.jhu.edu">Johns Hopkins University</a>, where I work, so I was especially excited… we’re not always “early adopters”).</p>
</p>
</li>
<li>
<span class="post-meta">Jul 4, 2012</span>
<h2>
<a class="post-link" href="/blog/2012/07/04/static-is-beautiful/">Static Is Beautiful</a>
</h2>
<p>
<p>I want to return to the core sfocus of this blog, elegance and simplicity in technology, but in kind of a meta way.</p>
</p>
</li>
<li>
<span class="post-meta">Jun 6, 2012</span>
<h2>
<a class="post-link" href="/blog/2012/06/06/hackers-need-our-own-everything/">Hackers Need Our Own Everything</a>
</h2>
<p>
<p>When I conceived of this post, it was going to be about how damn awesome <a href="http://octopress.org">Octopress</a> is. And it certainly is awesome; it powers this blog, and makes writing it a joy, whereas trying to use <a href="http://wordpress.com">Wordpress</a>, <a href="http://blogger.com">Blogger</a>, or even newer alternatives like <a href="http://tumblr.com">Tumblr</a> or <a href="http://postero.us">Posterous</a> was downright painful. But what I’m more interested in is the growing trend among apps, services, and even operating systems that has made projects like Octopress necessary.</p>
</p>
</li>
<li>
<span class="post-meta">Jun 1, 2012</span>
<h2>
<a class="post-link" href="/blog/2012/06/01/try-ruby-seriously/">Try Ruby... Seriously.</a>
</h2>
<p>
<p>Every now and then someone comes to me for advice because they (or someone they know) wants to learn to code and has no idea where to start. Usually, the first thing I do is send them to <a href="http://tryruby.org">tryruby.org</a>, the awesome web-based REPL and tutorial the <a href="http://codeschool.com">Code School</a> folks put together, based on <a href="http://mislav.uniqpath.com/poignant-guide/">_why’s (poignant) guide to ruby</a>.</p>
</p>
</li>
<li>
<span class="post-meta">May 30, 2012</span>
<h2>
<a class="post-link" href="/blog/2012/05/30/hypermedia-apis-the-new-wild-west/">Hypermedia APIs: The New Wild West?</a>
</h2>
<p>
<p>Two of the best presentations at RailsConf this year, <strong>Designing Hypermedia APIs</strong> by <a href="http://steveklabnik.com/">Steve Klabnik</a> and <strong>Rails: The Next Five Years</strong> by <a href="http://yehudakatz.com/">Yehuda Katz</a> were related to the topic of hypermedia APIs. The video of Steve’s talk isn’t up on Confreaks yet, but the slides are <a href="http://steveklabnik.github.com/hypermedia-presentation/#1">here</a>. I’ll embed Yehuda’s talk right here:</p>
</p>
</li>
<li>
<span class="post-meta">May 29, 2012</span>
<h2>
<a class="post-link" href="/blog/2012/05/29/elegant-organizations/">Elegant Organizations</a>
</h2>
<p>
<p>For a long time, Jason Fried’s article <a href="http://www.inc.com/magazine/20110401/jason-fried-why-i-run-a-flat-company.html">Why I Run a Flat Company</a> has seemed like an unrealistic dream that only works in rarified pockets of hacker utopia.</p>
</p>
</li>
<li>
<span class="post-meta">May 22, 2012</span>
<h2>
<a class="post-link" href="/blog/2012/05/22/passion/">Passion, the Ultimate Virtue</a>
</h2>
<p>
<p>I’m finally reading <a href="http://www.chadfowler.com">Chad Fowler</a>’s excellent book, <a href="http://pragprog.com/book/cfcar2/the-passionate-programmer">The Passionate Programmer</a>, and in it he recounts an experience that was chillingly familiar.</p>
</p>
</li>
<li>
<span class="post-meta">May 18, 2012</span>
<h2>
<a class="post-link" href="/blog/2012/05/18/un-pythonic-for-fun-and-profit/">Un-Pythonic for Fun and Profit</a>
</h2>
<p>
<p>This post isn’t meant to play into some hacker holy war, nor is it intended to denigrate the usefulness of Python for various tasks. Steve Yegge has done <a href="https://sites.google.com/site/steveyegge2/tour-de-babel">a much better job than I can</a> of explicating some of the issues other programmers have with Python, both the language and the community around it; I still agree with his remarks there.</p>
</p>
</li>
<li>
<span class="post-meta">May 9, 2012</span>
<h2>
<a class="post-link" href="/blog/2012/05/09/job-interview/">Job_interview</a>
</h2>
<p>
<p>So, I wanted to plug a little project that
<a href="https://twitter.com/#!/micahjgates">Micah Gates</a> and I hacked together at
<a href="http://railsconf.austinonrails.org/bohconf">BohConf</a>, the awesome un-conference
and hackfest that runs parallel to <a href="http://railsconf2012.com">RailsConf</a> each year.</p>
</p>
</li>
<li>
<span class="post-meta">May 8, 2012</span>
<h2>
<a class="post-link" href="/blog/2012/05/08/simplicity/">Simplicity</a>
</h2>
<p>
<h3 id="machine-beauty">Machine Beauty</h3>
</p>
</li>
<li>
<span class="post-meta">May 8, 2012</span>
<h2>
<a class="post-link" href="/blog/2012/05/08/starting-over/">Starting Over</a>
</h2>
<p>
<p>I decided to retire my old blog, which had devolved into a platform for rants rather than anything truly worthwhile… to me, anyhow. Sure, my rants were amusing at times, and people seemed to enjoy them, but that’s not the point of blogging for me.</p>
</p>
</li>
</ul>
<p class="rss-subscribe">subscribe <a href="/feed.xml">via RSS</a></p>
</div>
</div>
</div>
<footer class="site-footer">
<div class="wrapper">
<h2 class="footer-heading">(λ) Practical Elegance</h2>
<div class="footer-col-wrapper">
<div class="footer-col footer-col-1">
<ul class="contact-list">
<li>(λ) Practical Elegance</li>
<li><a href="mailto:jason@decomplecting.org">jason@decomplecting.org</a></li>
</ul>
</div>
<div class="footer-col footer-col-2">
<ul class="social-media-list">
<li>
<a href="https://github.com/canweriotnow">
<span class="icon icon--github">
<svg viewBox="0 0 16 16">
<path fill="#828282" d="M7.999,0.431c-4.285,0-7.76,3.474-7.76,7.761 c0,3.428,2.223,6.337,5.307,7.363c0.388,0.071,0.53-0.168,0.53-0.374c0-0.184-0.007-0.672-0.01-1.32 c-2.159,0.469-2.614-1.04-2.614-1.04c-0.353-0.896-0.862-1.135-0.862-1.135c-0.705-0.481,0.053-0.472,0.053-0.472 c0.779,0.055,1.189,0.8,1.189,0.8c0.692,1.186,1.816,0.843,2.258,0.645c0.071-0.502,0.271-0.843,0.493-1.037 C4.86,11.425,3.049,10.76,3.049,7.786c0-0.847,0.302-1.54,0.799-2.082C3.768,5.507,3.501,4.718,3.924,3.65 c0,0,0.652-0.209,2.134,0.796C6.677,4.273,7.34,4.187,8,4.184c0.659,0.003,1.323,0.089,1.943,0.261 c1.482-1.004,2.132-0.796,2.132-0.796c0.423,1.068,0.157,1.857,0.077,2.054c0.497,0.542,0.798,1.235,0.798,2.082 c0,2.981-1.814,3.637-3.543,3.829c0.279,0.24,0.527,0.713,0.527,1.437c0,1.037-0.01,1.874-0.01,2.129 c0,0.208,0.14,0.449,0.534,0.373c3.081-1.028,5.302-3.935,5.302-7.362C15.76,3.906,12.285,0.431,7.999,0.431z"/>
</svg>
</span>
<span class="username">canweriotnow</span>
</a>
</li>
<li>
<a href="https://twitter.com/canweriotnow">
<span class="icon icon--twitter">
<svg viewBox="0 0 16 16">
<path fill="#828282" d="M15.969,3.058c-0.586,0.26-1.217,0.436-1.878,0.515c0.675-0.405,1.194-1.045,1.438-1.809
c-0.632,0.375-1.332,0.647-2.076,0.793c-0.596-0.636-1.446-1.033-2.387-1.033c-1.806,0-3.27,1.464-3.27,3.27 c0,0.256,0.029,0.506,0.085,0.745C5.163,5.404,2.753,4.102,1.14,2.124C0.859,2.607,0.698,3.168,0.698,3.767 c0,1.134,0.577,2.135,1.455,2.722C1.616,6.472,1.112,6.325,0.671,6.08c0,0.014,0,0.027,0,0.041c0,1.584,1.127,2.906,2.623,3.206 C3.02,9.402,2.731,9.442,2.433,9.442c-0.211,0-0.416-0.021-0.615-0.059c0.416,1.299,1.624,2.245,3.055,2.271 c-1.119,0.877-2.529,1.4-4.061,1.4c-0.264,0-0.524-0.015-0.78-0.046c1.447,0.928,3.166,1.469,5.013,1.469 c6.015,0,9.304-4.983,9.304-9.304c0-0.142-0.003-0.283-0.009-0.423C14.976,4.29,15.531,3.714,15.969,3.058z"/>
</svg>
</span>
<span class="username">canweriotnow</span>
</a>
</li>
</ul>
</div>
<div class="footer-col footer-col-3">
<p class="text">code, ire, and song
</p>
</div>
</div>
</div>
</footer>
</body>
</html>