711 reputation
37
bio website thehappypath.net
location Seattle, WA
age 33
visits member for 4 years, 1 month
seen Nov 21 at 7:49

256th Generalist badge. It really should be gold :)


I love AI, psychology, spirituality, philosophy, mathematics, food, art, brain teasers, board games, and telling people they're doing it wrong.

I love music - Bjork, Patrick Wolf, Radiohead, The Knife, The Decemberists, Squarepusher, Dalek, The Smashing Pumpkins, Lemon Demon, MF Doom, Blonde Redhead, David Bowie, Stone Temple Pilots, Battles - I love music. Grooveshark is my friend :)

I am a Strange Loop.
Wound like there's no tomorrow.
I forget there is.


I have written a whole bunch of automation for all sorts of programming tasks (CI, deployment infrastructure, code generation, test case generation, test lab/deployment automation infrastructure, and a whole boat load of automated E2E, integration, and unit tests).

I've programmed mostly in C# for the last 7 years, though occasionally in a myriad of other tongues (C++, C, JavaScript, VB.Net, Java, batch scripts, Lua, Lisp, various DSLs and Python).

I've done a bunch of web programming lately, though I also like API design, and I like programming desktop applications and Windows daemons even better. As boring as desktop apps and services may sound, they're easy to write, and have a nice robust feel to them, much like crunchy peanut butter.

I dig Open Source Software.


Oct
27
comment Application / Code reviews for lone programmers?
Be careful with this approach. "Consulting" could easily become a paid sales pitch for contracting. The company I work for does both, but is completely up front about the facts. Other companies may not be as transparent.
Oct
12
comment I can't remember programming 5 mins after learning?
Don't just book learn. Programming requires projects and specific problems to solve to stick in your brain.
Sep
8
comment Difference between Idiom and Design Pattern?
Another interesting example: Fluent syntax APIs. They make up for the fact that you don't have direct DSL support in your language, and it steps across language boundaries. I am not sure it has graduated to a "Design Pattern" status yet, and it rings like a syntactic idiom...
Sep
8
comment Difference between Idiom and Design Pattern?
I like where you're going with the definition of idiom being different than a "poor man's design pattern", which is sort of how my model treats it (see my answer). It is less "here is how to implement this" and more "here is the right way to implement this". For example, I can't imagine "Big Three" evolving to a design pattern. And there is the syntactic component, too, e.g. do_something() or die "..."; (stolen from another comment on here). It is based on specific language features, but it is a common way to use those features. It is not cross-language, and probably won't be.
Sep
8
comment Difference between Idiom and Design Pattern?
That's the point. Users of that language would consider the "design pattern" an idiom, because their language is cooler :)
Sep
8
comment Difference between Idiom and Design Pattern?
@Nawaz: Okay I gave it a shot anyway :)
Sep
8
comment Difference between Idiom and Design Pattern?
+1; Good answer. Tho I'm inclined to believe everything here except the last bit. There are languages that have direct support for multiple-dispatch, so the Visitor pattern wouldn't need to exist there. From their perspective, the "pattern" might be more of an idiom. From the ultimate high-level language, all patterns might become idioms...
Sep
8
comment Difference between Idiom and Design Pattern?
@Nawaz: The comment was about the other answers. This one is already nearly perfect. I'd ideally like samples in an answer, but it seems no one is getting them right. I probably couldn't either, otherwise I'd happily oblige :)
Sep
8
comment Difference between Idiom and Design Pattern?
+1 for drawing a distinction with few words and few inaccuracies.
Sep
8
comment Difference between Idiom and Design Pattern?
I think "where's the beef" is more a meme than an idiom. Might have another continuum there ;) There might be more to an idiom than simply the implementation in the language, since things might be partial or failed implementations of that idiom - C++'s "Big Three", for example. In that case, the idiom is the name and description of "Big Three".
Sep
8
comment Difference between Idiom and Design Pattern?
event listener is a language feature that implements signal/slots (pattern?) or the Observer pattern. There are also things in C++ called idioms that simply don't matter or don't fit in other languages (as far as I know) - e.g. the copy-and-swap idiom.
Sep
8
comment Difference between Idiom and Design Pattern?
In practical terms the distinction may be difficult to determine (and there may be some continuum between an idiom and a design pattern). But it probably derives from the term "idiom" in natural language: en.wikipedia.org/wiki/Idiom (which doesn't really fit the usage).
Feb
25
comment Harmful temptations in programming
If a test is hard to write, you might not be programming it right :)
Dec
22
comment Is anything in programming truly evil?
Maybe they should have conducted business in such a way that they understood that before they took on the project...
Nov
6
comment How do you use blank lines in your code?
if (i % 3 != 0) { <newline here> array[i] += 2; <newline here> }, but I see your point :)
Oct
28
comment What are the drawbacks of Python?
@dsimcha: "Nested functions kind of suck in that you can't modify variables in the outer scope". Do you mean that it doesn't have closures?
Oct
28
comment Application / Code reviews for lone programmers?
@Cam: If it comforts you, for the presentation example, replace "10-year-old" with "brick wall", and see if the answer takes on a new context. As for the testing side, I think he's trying to invoke "Hallway Usability Testing" - joelonsoftware.com/articles/fog0000000043.html
Oct
28
comment Application / Code reviews for lone programmers?
@Cam: I agree with you, because I am a long time test developer ;) I think the toddler idea is just a cheap solution to a single quality gate, though - not around the entire quality process. Code reviews, not ship certification. If you write an answer that advocates writing at test suites (in any capacity), I'll up-vote it.
Oct
28
comment When/why is it easier to beg forgiveness than ask permission?
@David: I tried to edit it to better match the scenario. I agree that truly green programmers are bound to shoot themselves in the foot if they go in too loud, too early.
Oct
28
comment When/why is it easier to beg forgiveness than ask permission?
@David: Good point. I guess it's difficult to properly use this advice unless you're already a rock star. I've run across at least a few people who gave the perception of being greenies (but in reality, weren't), specifically because they weren't heeding this advice.