HNHacker News
TopNewBestAskShowJobs

kaffeinecoma

1,474 karma · joined May 11, 2009

Find me at http://armhold.com, or visit my github: http://github.com/armhold.

To contact me: my email is armhold at gmail com. Please mention HN if you do (too much recruiter spam, but HN contacts always welcome.)

submissionscomments
kaffeinecoma··on Recruit this
Well I was with him up until:

   Three days later (on a Monday), she calls me, and tells me
   that she has organised an interview for me for Tuesday afternoon.

   What?  I went to the interview [...]
Why would you go on an interview under these circumstances? You're just giving positive reinforcement to their bad behavior.
kaffeinecoma··on RTFC is the New RTFM
So you'd be unwilling to discuss a major library that you've used in your career (say Spring, or Rails) with a potential employer?

The "filter" I'm looking for is to weed out people who cannot crack open the source to something that is standing between them solving a problem. I'm not asking them to be an expert on the internals of everything they use. Apologies if my comment was unclear.

kaffeinecoma··on RTFC is the New RTFM

  unless I have a problem the documentation or google doesn't answer
Documentation/googling is definitely the right thing to do off the bat. But if they've never had a moment where they had to peek under the hood (or never thought to try, or didn't know how to) then yes, that's my FizzBuzz. I would perhaps not apply this to someone fresh out of school, but I would expect an experienced candidate to know how to "use the source".
kaffeinecoma··on RTFC is the New RTFM
If you use Intellij + Maven this becomes magically seamless. I assume there is something similar for Eclipse as well. Really worth your time to make this work.
kaffeinecoma··on RTFC is the New RTFM
I agree, and sadly it's way harder to locate relevant bits of code in dynamic languages. (Hey Steve Yegge- can we have Grok now, please?) But even in static languages it's a must for me. I find that Javadoc becomes largely irrelevant if I can just click through to the actual source.
kaffeinecoma··on RTFC is the New RTFM

  I nonchalantly told him to look at the source code of the library
  we were using. He looked at me like I had asked him to help me dig up a grave.
I can't imagine not examining the source code of the various frameworks I use on a daily basis.

I think the next time I interview a candidate I will ask them what major open-source libraries they use. Then I will ask them what they think of the quality of the source code, how it's implemented, what they find difficult to reason about, etc. Getting a blank stare at this point will be a kind of FizzBuzz moment.

Edit: I'm not suggesting that candidates should be an expert on the internals of the libraries they use (I'm certainly not). What I'm looking for is the ability to crack them open when you hit a wall.

kaffeinecoma··on My Interview Questions for Potential Employers
I like to ask "What's the worst thing about working here at Potential Co?" In addition to (potentially) learning what the group's pain points are, it also allows the interviewer to blow off steam a bit (being on the other side of the table can be stressful too!) And if they dissemble or try to say that there are no downsides, well that's useful knowledge too.
kaffeinecoma··on Hello. I'm a compiler
I never noticed that the Stackoverflow js pulls updates for vote tallies in real-time. Browsing this answer while HN is sending lots of traffic there is almost like watching a car odometer.
kaffeinecoma··on Rails has Two Default Stacks
Same here. In aggregate, I must have spent at least a two full days getting therubyracer and libv8 working in various environments.

As a recent Java refugee, one of the things I find most painful about Rails is its dependence on native code libs. It's really a lot of work to get the dependencies sorted out, especially if you have several platforms to support (say OSX for dev, and multiple Linux flavors for staging/prod).

One thing I learned (the hard way) is to heed the advice that "rvm requirements" offers. If you install the libs that it recommends before trying to install your gems, things will go more smoothly. This may sound obvious, but when you're installing Ruby, RVM, Rails, Apache, etc, it's easy to overlook the instructions.

kaffeinecoma··on How our users exploited concurrency and how we fixed it
Use Optimistic Locking:

http://railscasts.com/episodes/59-optimistic-locking-revised...

kaffeinecoma··on Ask HN: What set your hair on fire in 2012?
This year I switched to Ruby on Rails after years of doing mostly Java. I'm quite happy with it, but by far the biggest pain point has been Ruby's dependence on native code libraries. Dealing with CLASSPATHs and Maven was never fun, but it sure beats trying to maintain a working set of Ruby gems, many of which have cascading dependencies on C++ compilers, Python interpreters, SSL libraries, Javascript runtimes, etc.
kaffeinecoma··on I Don’t Need No Stinking API: Web Scraping For Fun and Profit
From the article:

   Since the third party service conducted rate-limiting based on IP
   address (stated in their docs), my solution was to put the code that
   hit their service into some client-side Javascript, and then send
   the results back to my server from each of the clients.

   This way, the requests would appear to come from thousands of
   different places, since each client would presumably have their own
   unique IP address, and none of them would individually be going over
   the rate limit.
Pretty sure the browser Same Original Policy forbids this. Think about it- if this worked, you'd be able to scrape inside corporate firewalls simply by having users visit your website from behind the firewall.
kaffeinecoma··on Share your weekend/part-time startup (December 2012)
Two related projects:

1. https://github.com/armhold/ocarina - a Ruby gem for doing simple OCR.

2. http://wordhelper.net/contact - helps you win at Letterpress. Uses my OCR library to find playable words on the board. Have only tested it on an gameboards generated on an iPhone 5.

I created the first project just to see if I could write a simple OCR library (yay, I can!) I created Wordhelper mostly to find a practical use for Ocarina.

kaffeinecoma··on Share your weekend/part-time startup (December 2012)
No way. Ad-supported.
kaffeinecoma··on Share your weekend/part-time startup (December 2012)
In pursuit of a casual passive income generator, I've been working on a meme creator. It uses HTML5 canvas rather than Flash. I'm only a weekend or so into it, but would appreciate any constructive feedback.

http://mememachin.es

kaffeinecoma··on Am I (Un)Hireable As A Coder?
"Why should I use version control?"

http://stackoverflow.com/a/1408464/93995

kaffeinecoma··on I built an OCR library in Ruby to help you win at Letterpress
I'd also like to point out mauricesvay's take on this: https://github.com/mauricesvay/CheaterPress. His implementation runs in the browser and is both simpler and faster than mine.
kaffeinecoma··on Show HN: I built an app to find words in Letterpress
That is really impressive. My OCR solution (see comment above) uses a neural net on the server. Your code is both simpler and faster. Nice job.
kaffeinecoma··on Show HN: I built an app to find words in Letterpress
Interesting. I'm working on a similar app, mostly to show off an OCR library I'm working on for fun: http://wordhelper.net/contact.
kaffeinecoma··on Juliane Koepcke - survived a 10K foot freefall from an airliner
You can listen to her tell the story in this American Public Media podcast: http://thestory.org/archive/20121012_The_Story.mp3/view
kaffeinecoma··on Am I An Outlier, Or Are Apple Products No Longer Easy To Use?
Are you serious? I double click pretty much every photo I find interesting in my collection. Is that not the natural way to view a photo full-size? Editing requires you to click "edit". Why would they needlessly allow this to bloat if no edits are made?

I currently have:

    1.2G Previews
    7.8G Masters
(BTW in my version at least, Modified/Originals are symlinks to Previews/Masters.)
kaffeinecoma··on Mac OS X 10.8.1 is out.
Yup, tried it, did not help. The minute I'd hit a site needing flash (Google Voice was a frequent one) it'd go bonkers again.
kaffeinecoma··on Mac OS X 10.8.1 is out.
That's interesting. I just moved back to Safari because ever since Lion, Chrome has been totally unusable for me.

The Flash/Shockwave that they bundle in consistently pegged my CPU after a few minutes of use. The whole desktop would get laggy and sluggish, to the point that I could barely operate the Finder enough to do a Force Quit. After a year of trying all kinds of things to fix/mitigate it, I just gave up and went back to Safari. Weird, since I rarely hear complaints from others about Chrome, but for me it was unusable. Even tried a fresh OS install to no effect.

kaffeinecoma··on Rootbeer GPU Compiler Lets Almost Any Java Code Run On the GPU
It's nothing compared to the pain of debugging in a language that doesn't have/encourage proper namespaces.

Ruby has Modules, but many, many common libraries do not use them. I had fun recently debugging a project that (through transitive dependencies) relied on two different "progress bar" libraries, both with a class called "Progress", and neither of which was namespaced. Namespaces solve a real problem.

kaffeinecoma··on The weakest link by far is Apple
Does "remote wipe" also wipe attached drives, or just the system disk? It would really suck to also lose your Time Machine backups that way. I alternate my TM backups between several disks, leaving one of them off-site in case of catastrophe, but I'd still lose a good chunk of data if remote wipe targets attached volumes.
kaffeinecoma··on Just pay me.
I've found that I get dramatically better clients by requiring 50% payment up-front, and then invoicing weekly. People who balk at the 50% terms are likely to be problem customers, and are best avoided anyway. The weekly invoicing helps new clients understand how much software costs, and prevents sticker shock weeks after the project has begun. Once I have an established relationship with a client that I trust, I'm happy to relax the terms for everyone's benefit.
kaffeinecoma··on Old school developers - achieving a lot with little
On Ken Thompson:

  Regarding his programming style ... hardly ever uses unit tests, 
  starts his projects by designing the data structures and then works bottom up,
  with throwaway test stubs.
Sounds to me like he does use unit tests, but then throws them away after he's content that the code is working. I think this is what most people did for non-trivial code before unit testing became a culture.
kaffeinecoma··on The Crazy World of Code
I jump into the Rails (or other Ruby libraries) source for understanding quite often. This is good advice, but for folks coming from static languages it's really a challenge to figure out how to find stuff. I've resorted to running it all under a debugger and setting breakpoints, just so I can find out which monkey-patch (or non-namespaced, duplicate class) is being called.
kaffeinecoma··on PHP: The Right Way

    user:	kaolinite
    20 year old Python/PHP/C developer
That font will be just perfect for you in about 15-20 years.
kaffeinecoma··on Judge Posner: U.S. patent system out of sync
John Siracusa recently covered patents on his Hypercritical podcast: http://5by5.tv/hypercritical/68. Nice dissection of the idea of drug patents as being "special" (vs other kinds of patentable IP) in there as well.
← PreviousPage 3 of 9Next →