HNHacker News
TopNewBestAskShowJobs

johnb

897 karma · joined May 31, 2007

Founder/CEO https://hecate.co/ Former VP Eng 99designs & Eng Manager Envato
submissionscomments
johnb··on Show HN: All films for rental on iTunes (in 61 stores) by price/popularity/genre
Using the search box? That will search goodfilms globally, not just within the itunes area of the site... but that does give me an idea.
johnb··on Show HN: All films for rental on iTunes (in 61 stores) by price/popularity/genre
Thanks so much. It's amazing what hiring a genuinely talented designer can do.
johnb··on The Minimum Viable Rails Stack, Now Reddit Frontpage Approved
The key thing I got a bit wrong was high-traffic mostly static "content", vs high-traffic "very custom" which is a) what I was used to at envato and b) what I thought we had on our hands at goodfilms.

I think in a growing site with a lot of custom per-user content (like a social network) the extra complexity of a cache layer and managing expiry is more pain than it's worth while iterating the product quickly. If you're mostly a content site, it's definitely the #1 thing you should be doing.

Realising that we're both at the same time, depending on the user or page, means that sometimes the cache stuff is the right thing to do, and sometimes not. I was leaning too far towards not, and happy now with the balance we've picked.

johnb··on Goodfilms Goes Mobile
Sorry - we haven't tested on a windows phone, so didn't include it in our user agent matching.
johnb··on Goodfilms Goes Mobile
can you email your phone details to help@goodfil.ms and we'll see what we can do. Glen has an iPhone, I have an android, so that's been our testing to date.
johnb··on Goodfilms Goes Mobile
My co-founder Glen who did all the UI work for it is going to write a much more detailed post when the dust settles after launch.

I find it interesting that you prefer the broader "aggregate of the internet" ratings, rather than ratings based on your friends. The longer we run the site, the more we find it's a bit polarising. Some people like the average of the internet, some people like what's essentially a systematic word of mouth setup.

johnb··on Netflix Quietly Smothers 3rd Party App Ecosystem
That's definitely what got us going. We wouldn't have even done the diff on the legals if the blog post wasn't put up with such vague language so late on a friday afternoon.
johnb··on Netflix Quietly Smothers 3rd Party App Ecosystem
Fixing now.
johnb··on Comparing quality of films in the iTunes & Netflix libraries
We're going to add it soon. We just wanted to ship what we've got now.

Sometimes it's a little tricky for us to gauge what's popular with streaming, as we don't get many of the options down in Australia.

johnb··on Comparing taste in films using pairwise vector comparisons
I wouldn't be surprised if there were. If anyone knows of any, please share here.

Glen is bringing a lot of what he learned doing transport modeling and advertising analysis to the project - but we don't have any reference material specific to what we're doing now.

johnb··on Show HN: I built an easier way to browse ThemeForest
We built the referral system long before we had buy it now, and a higher minimum deposit. The last serious re-visit it got was close to four years ago. It's one of those made sense at the times things that continue to work OK.

Keeping on top of referral fraud is a bit tricky too, and gets worse the more complex you make the referral system.

edit I also remember that way back then when the code was redone there was no themeforest, just flashden and audiojungle. We were heavily focused on finding new customers more than directing people to specific files. So that might give you a bit of context.

johnb··on Rails 3 Performance - Not Good Enough
That's a fair call - I don't know you and I am speaking about character traits.

I don't feel your original comment reflected a position on knowing where to (or not) compromise, you made a strong assertion to take one option off the table in all situations.

In my experience, developers who are make blanket rules up front about what can and can't be changed in the future development of a system don't end up making much of value.

That's just my perspective, and I apologise if I've misread your character.

johnb··on Rails 3 Performance - Not Good Enough
That position of "no compromises" is probably why you're not writing a framework on which others depend. Complex software always involves compromises, especially general purpose frameworks used by a large population.

Even if you're saying that only in performance there can be no compromises (but generally people who say things like no compromises don't bound those statements) it will cause large compromises in other areas, such a future feature development or long term maintainability and readability.

johnb··on Rails 3.1 beta 1 released
I know this isn't reddit, and I know it isn't welcome on news.yc... but

... that's what she said.

johnb··on Magical Block Store: Why EBS Can't Work
As we were using EngineYard for hosting at the time, everything was set up for us and we never thought to look it up.

We now pay a lot more attention to underlying stack. Just because you've outsourced hosting (either cloud or managed physical servers), you really need to know every component yourself.

johnb··on Magical Block Store: Why EBS Can't Work
It's funny how disk abstractions get you every time.

We used to store and process all of our uploads from our rails app on a GFS partition. GFS behaved like a normal disk most of the time, but we started having trouble processing concurrent uploads and couldn't replicate in dev.

It turned out so GFS could work at all, it had different locking than regular disks. Every time you created a new file it had to lock the containing folder. We solved it by splitting our upload folder in 1000 sequential buckets and wrote each upload to the next folder along... but it took us a long time to stop assuming it was a regular disk.

johnb··on Why I stopped travelling to the US and largely stopped doing business in the US
We've got one of the most isolated agricultural systems in the world. To even ship grain to or from Australia you need specially accredited ships (I have a friend in Maritime law and it causes her no end in hassles trying to find these ships).

Because of the isolation, we don't have too many pestilence problems (gross oversimplification) and we want/need to keep it that way.

johnb··on Why I stopped travelling to the US and largely stopped doing business in the US
Part of it is the motivation to return home. I'm Australian, and we've got a fairly intensive customs procedure, but I could care less, I'm an hour or less away from home now.

Visting America was a different story though: I'm getting fingerprinted, and people are jumping queues, and the security is crazy... and all I'm thinking is "Why did I bother?"

Waiting for americans to care enough about the discomfort of vistors (relative to motivation to be there) might take a while.

johnb··on Rebasing Merge Commits in Git (a cautionary tale for software teams)
The problem with the default git pull is that it treats every "give me what's up on the server" as a first class merge commit.

It adds a lot of noise to the commit history if you're trying to differentiate between "oh, this bug fix or feature was added into master/trunk/whatever" and "oh, that was just bob getting the lastest code from upstream"

johnb··on You can help it get better
I definitely see where Patton is coming from. I was heavily bullied early in school, then honed my "too cool for school" smart ass streak and said a lot of mean shit to a lot of people.

Once you get in the habit of finding smart ass comment for every situation, it's really, really hard to stop. It wasn't such a big deal as a plain old dev, but I'm managing other devs now and it's too easy to be an accidental asshole.

It would have been much easier if I never started. Now I've just got to try and watch my mouth and break the habit.

johnb··on Bootstrapped, Profitable, & Proud: Envato
Yeah, I work there... and sometimes the level of trust you're given is mindblowing. It's incredibly motivating, though sometimes a little scary :)
johnb··on Rails Best Practices
I always make the call on inline callbacks versus observers based based on whether they're critical for the model's state. If your representation of whatever domain concept your model is doing relies on the behaviour in a callback - it belongs to the model. If not, in an observer.

The often suggested use for observers is for caching (which is a good example). In our big app, if the cache expiry doesn't happen the site will look a bit funny but the underlying transactional data is fine. Mixing those together wouldn't communicate the difference in how important they are.

johnb··on The Duct Tape Programmer (Response from Uncle Bob Martin)
"insecurity driven development" is probably a good alternate title for TDD, but instead of taking it at it's trollish face value it can generate a good analogy.

If you start walking down a dark alley - you start feeling insecure. You've got a few options from that point.

You can back out of the alley and hey, no more insecurity. A little embarrassing but you're feeling OK, you just have to go the long way round the block.

You can push on through the alley in the dark - something bad could happen or you could get through fine. You don't really know until you've popped out the other side.

Or you could carry a god-damned torch. Obviously when carrying a torch, you don't have it turned on all the time, just when you wander into darker areas where you're less sure of the environment. It lets you walk at full pace without stubbing your toe or getting mugged or whatever.

In more concrete terms: I'm a bit of a poor-weather TDDer (same with pair programming) If i start working on something that could be algorithmically challenging, cuts across multiple layers of our app, touches something scary (like our accounting code, because i don't want to lose any of our $$$), or am just plain stumped - I write a test. It fails. I make it pass. I write the next. I make it pass. I realise my code looks like ass, I refactor. The tests still pass.

I can give an actual example from this week. Our app is a large RoR app that serves multiple sites from the one codebase based on an internal DSL we have. We're in the final week of a must launch redesign (date was set because of a bunch of marketing, etc) and I get an urgent and large last minute change dropped on my desk (i'm sure you all know that feeling). I'll admit my first move wasn't to go TDD, I just went for the quick and hopeful move of quickly adding some code that looks like it should work to our DSL.

It didn't. So my very next move, knowing that I have a deadline I must hit with a risky technical change, was to start writing tests. If i hadn't, I'd have to be verifying my code works by checking around 3 different pages after a server restart which is both slow and 4 layers away from the changes. So it was faster in real time.

I'm not a big fan of TDD zealots, TDD is just another tool in the box. But TDD haters really get my goat. You're willfully shutting yourself out of a tool that can make your life easier, and help deliver code faster.

johnb··on Ask HN: Are one-page résumés passé? How long is your résumé?
I'm surprised no one has put a link to http://www.randsinrepose.com/archives/2007/02/25/a_glimpse_a... in yet.

I've been the technical reviewer on a lot of hires and found Rand's process fairly similar to mine. I think it's good that he views the document as having 2 purposes: the first being to get through all the recruiters/HR to get it into the tech reviewer's hands, the second being grabbing the reviewer's attention enough that you get an interview.

johnb··on Ask HN: I am delivering mediocre work and feel awful about it. Should I commit seppuku?
Yeah - I have a bucketload of problems trying to convince my old man I'm a professional because I don't wear a tie to work.

I haven't worn a tie since I worked in a supermarket, and I sure as hell wasn't a professional there.

johnb··on Horrible
Maybe think of it as uniquely good within your sphere of influence. I'm bottom of the bell curve in generic small talk when you dump me in the middle of a sales conference, but in the context of the IT department I work in, I'm usually put forward first to chat with customers.
johnb··on Pmarca: If Microsoft goes fully hostile on Yahoo
we cringe at ASP.NET too :)
johnb··on Philip Greenspun: It's not just programmers who can inflate their LOC counts
Reminds me of that old Joel on Software article on incentive pay http://www.joelonsoftware.com/articles/fog0000000070.html
johnb··on Ask YC: What do you scrape? How do you scrape?
I'm a big fan of using Hpricot + Ruby. I'd say the sites I had been scraping but I doubt my old client wants it to come out :|

To get the most bang for my buck (developer time wise) I would visit each site with firebug in inspect mode, hover the data I want to extract. From there I figure out how I would style that element, and because Hpricot supports CSS selectors I've straight away got a method for pulling that data out of the page.

johnb··on Ask YC: is SOAP vs. Rest the new Emacs vs. Vi?
It's because no one uses REST and then choose to go back to spending days making java axis web services and .net clients play well together with ugly hackish custom soap extensions.

Or maybe I'm just venting about my shitty week at work :)

← PreviousPage 2 of 3Next →