2,470 reputation
11123
bio website ybrikman.com
location Stanford, CA
age
visits member for 4 years
seen yesterday

Software engineer, Crossfiter, traveler.


Feb
9
comment Why do dynamic languages make it more difficult to maintain large codebases?
I'm the author of the Play Framework talk mentioned in the question. I was going to write a reply, but Eric Lippert's answer says it better than I could have, so I upvoted it instead and recommend everyone reads it. Also, remember that a "large codebase" can be "large" across multiple dimensions, including lines of code, how many people work on it simultaneously, and how long it has been around. All of these factors increase "code rot"; static typing is not a magic bullet, but rather one tool to decrease code rot.
Feb
9
comment Why do dynamic languages make it more difficult to maintain large codebases?
I'm the author of the Play Framework talk mentioned in the question. I was going to write a reply, but Eric Lippert's answer below says it better than I could have, so I upvoted it instead and recommend everyone reads it.
Apr
26
comment Why do programmers still use mailing lists?
There are certainly some workarounds you can do - RSS, subscribe to threads, etc - but they take noticeably more effort and don't address issue #1. Each time you reduce friction, the process is adopted by 10x more people, so I'm not surprised mailing lists are so common, despite their many many flaws.
Feb
6
comment What is a resonable workflow for designing webapps?
Also, as far as I know, Capistrano doesn't do much copying. Each time you deploy, it checks out the latest code and just swaps folder names. The advantage is that you can always roll back to an earlier version by just swapping folder names again.
Feb
6
comment What is a resonable workflow for designing webapps?
You don't "deploy" the Compass framework with PHP. You just run it while you code, it compiles your CSS files every time you hit save, and the CSS files are what actually get deployed. To "run" compass, you first need to generate your config file (compass.rb) - use this to generate the command line options: jsfiddle.net/chriseppstein/PG46q/3 . Once you have the config file setup with all your paths, just run "compass watch" in the same folder as the config file, and compass will start recompiling your SASS every time you hit save. Try it on some side project: it's VERY easy & fast.
Jan
31
comment How to be a zero-bug programmer?
@Elaine Facebook's philosophy is "go fast and break things" (geek.com/articles/news/…) and they've had countless bugs (facebook.com/board.php?uid=74769995908), including many I've run into myself. Twitter is no different, known for frequently being down (engineering.twitter.com/2010/02/anatomy-of-whale.html) and bugs such as the "follow bug" (status.twitter.com/post/587210796/…).
Jan
8
comment Thoughts on my new template language/HTML generator?
Check out HAML: haml-lang.com
Nov
20
comment Is Java (still) the cross platform language of choice?
@Tim: +1. Getting a webapp app to work the same across all the major browsers is just as hard as getting a Java app to work the same across multiple OS's.
Nov
1
comment Choosing the right programmer among a class of undergrads
I plenty of those in my masters program, but not too many in undergrad. And the ones I did have in undergrad were typically not worth showing to a potential employer. Right or wrong, undergrad is typically all about solving a problem: for input X get output Y. Design, coding standards, maintainability, performance, testing, etc are all secondary. It's not that I didn't think about those - I had to know them in internships - it's just that they rarely factor into class work. Discrete math problem sets, mergesort implementations, and SML snippets are not enough to pick out good job candidates.
Nov
1
comment Choosing the right programmer among a class of undergrads
As an undergrad, most of the code I had written was either (a) for class and not terribly discussion-worthy or (b) for a job/internship and therefore not legal to show others. I suppose some undergrads have side projects they could showcase - and I agree this is often a sign of a quality candidate - but just because you don't, doesn't mean you should be ignored.
Nov
1
comment Choosing the right programmer among a class of undergrads
Uh, why the down vote?
Oct
30
comment Should I use switch statements or long if…else chains?
This sort of thing has been discussed a lot on stackoverflow: - stackoverflow.com/questions/449273/… - stackoverflow.com/questions/767821/… - stackoverflow.com/questions/97987/switch-vs-if-else
Oct
29
comment Should curly braces appear on their own line?
Came here to post exactly this. Tons of people that keep the opening brace on the same line follow it up with a blank line (especially at the start of classes and methods) because otherwise, it's hard to separate the class/method header from the body. Well, if you're going to use an extra line anyway, you may as well put the brace there and get the added benefit of indentation being easier to see.
Oct
27
comment At which point do you “know” a technology enough to list it on a resume
I do agree to some extent that the "years of experience" isn't the ideal metric - I prefer the skill ratings myself - but it's still useful as a guide. If I list 5 years of experience at Java, I better be able to nail any Java-relevant interview questions. If I list 1 year of SQL, that is probably an indication I'm not expert in it. Having said that, you are definitely right that it's possible to still suck at Java after 5 years or become a SQL wizz after 1, so skill ratings are more useful.
Oct
25
comment What's the most absurd myth about programming issues?
This times 10,000. Computer science != tech support. I need to get this shirt: thinkgeek.com/tshirts-apparel/unisex/frustrations/388b
Oct
25
comment Biggest mistake you've ever made
The DB hit was actually hidden behind a method that looked like a simple getter: I added a myObj.getFoo() call in the compareTo method. The JavaDoc on the relevant subclass did note the possibility of a DB hit, but the JavaDoc on the myObj interface (which is what I looked at when writing the code) mentioned nothing of the sort. In either case, I think it's a clear demonstration of (a) inadequate testing on my behalf and (b) what can happen if you don't follow good naming conventions.
Oct
25
comment My coworker created a 96 columns SQL table
Care to elaborate?
Oct
25
comment Biggest mistake you've ever made
Or set autocommit to false so you can see how many rows would be affected.
Oct
25
comment Biggest mistake you've ever made
Holy crap, I had this exact same problem - a semicolon after an if statement - and spent hours figuring it out. Really tough to spot, as you get used to reading code a certain way, and I think the mind just blocks out anything after the last parenthesis.
Oct
22
comment Will large screen increase develop productivity?
Many monitors let you turn them on their side. This creates a really tall viewing surface that's great for reading code.