HNHacker News
TopNewBestAskShowJobs

_harry

318 karma · joined August 11, 2010

Javascript @airbnb

@hshoff

submissionscomments
_harry··on Show HN: Open source library for building visualizations with react and d3
vx author here. Happy to answer any questions folks might have. This is a project I've been working on for the past 5 months at my job at Airbnb.

The goal of vx is to make d3 feel at home in any react codebase.

github: https://github.com/hshoff/vx/

gallery: https://vx-demo.now.sh/gallery

tutorials: https://github.com/hshoff/viewsource

_harry··on Prettier 1.0
One of the Airbnb style guide authors here.

The point about quotes comes up often. The important part for us is consistency at Airbnb. We use eslint to enforce and maintain the consistency. Would it be more consistent to treat strings the same everywhere? For some projects sure. We diverge from the community a bit in the sense that we treat JSX as not JS and we aim to be consistent about that. If your project treats JSX and JS the same then yes, we've certainly seen folks do this. As always, please do what works best for your team or project [1]. Forks encouraged.

I will say an added benefit of including a style guide in a project for large teams that may get lost jumping straight into prettier, has been helping our engineers become stronger javascript programmers in the process of learning our style guide. That's largely anecdotal evidence from my time at Airbnb and of course your mileage my vary.

Personally, I support the Prettier mission 100%. Easier consistency is huge. Removing barriers to contributing to open source projects is huge. PR reviews focused on what the code is doing vs painful style nits is huge. It's been great to see this come from the community and I look forward to seeing where the community takes it. Congrats to all of the contributors on the 1.0!

[1] https://github.com/airbnb/javascript/issues/102

_harry··on Ask HN: How would you turn Twitter around?
- fix abuse & troll problem

- clarify community guidelines

- threaded replies

- upvotes

- groups public/private

- add channels

- follow anything, focus on live

- then I'd buy Reddit & Imgur.

_harry··on How to: code JavaScript using Twitter bootstrap best practices
Yup! We only recommend !function(){}(); for a module where you just need your function to run. If you rely on the return value use (function(){})(); or (function(){}()); (more on this: https://github.com/airbnb/javascript/issues/21)
_harry··on GitHub's Explore Email
I deleted my comment because I realized it was tangential to your point and don't want to sidetrack discussion. Carry on!
_harry··on Introducing Chronos: A Replacement for Cron
Wired had a great article on Mesos that mentions Conviva also uses Mesos: http://www.wired.com/wiredenterprise/2013/03/google-borg-twi...
_harry··on Tech Talk: Organization, reuse, and big Backbone.js apps at Airbnb -Harry Shoff
We love Europe!

I'm told the talk will be live streaming here: http://replay.vidyo.airbnb.com/replay/webcastShow.html?key=y... and a recording will be posted here: http://www.airbnb.com/tech_talks at some point in the future.

_harry··on Tech Talk: Organization, reuse, and big Backbone.js apps at Airbnb -Harry Shoff
That was our first project that used Backbone. Since then, Backbone has made its way to the web site all over the place.
_harry··on Tech Talk: Organization, reuse, and big Backbone.js apps at Airbnb -Harry Shoff
Haha, good digging.

That's the gross/first-draft/would-this-work version.

I'll be talking about why I think that approach is undesirable and some ideas for making it better.

_harry··on Whiskey - A new node.js test framework from Rackspace
npm provides a common interface for running package scripts: http://npmjs.org/doc/scripts.html

So if you open the package.json (https://github.com/cloudkick/whiskey/blob/master/package.jso...) you'll see that `test` runs `make test`.

Check out the Makefile (https://github.com/cloudkick/whiskey/blob/master/Makefile) to see what `npm test` is doing. This abstracts out the test command, because you could be running `cake test`, `make test`, `node whiskey test`, etc. and if you're just using the node package, you probably don't care what the command is, you just want to run the tests. `npm test` is the way to do it.

_harry··on Airbnb Tech Talk - Wednesday, March 14th - Sign Up Here
- From the event page -

Tech Talk: Eric Tschetter on Druid - Distributed Exploration of High Dimensional Data

Druid is a distributed system in use at Metamarkets (http://www.metamarkets.com) to facilitate rapid exploration of high dimensional data. They use Druid to expose impression monetization data to internet publishers along any arbitrary combination of demographic, content and sales-based dimensions. One Druid cluster currently exposes a data set of >15 billion rows of data representing >500 billion impressions in hypercubes of varying dimensionality (largest is 28 dimensions) while allowing for exploration using top lists and timeseries in sub-second latencies. The tech talk will be a discussion of the design considerations and architecture of the system.

http://metamarkets.com/2011/druid-part-i-real-time-analytics...

About Eric Tschetter

Eric Tschetter is the lead architect of Druid, Metamarkets' distributed, in-memory database. He held senior engineering positions at Ning and LinkedIn before joining Metamarkets. At LinkedIn, Eric productized LinkedIn's PYMK with Hadoop. He holds bachelors degrees in Computer Science and Japanese from the University of Texas at Austin, and a M.S. from the University of Tokyo in Computer Science.

_harry··on CoffeeScript and Progress
All of the http://m.airbnb.com functionality is in CoffeeScript.
_harry··on CoffeeScript and Progress
Anecdotally, Airbnb's mobile website (http://m.airbnb.com) was written entirely in CoffeeScript.

We had never used CoffeeScript before the project and we finished what you see today in about 6 weeks with a team of 3.

The project codebase looks like it was written with consistent style all the way through, which can be harder to do with JavaScript when it's 3am and all you want to do is make it work (when you start to get lazy). It was nice knowing that the for loops I was writing would compile to the same for loops that the other guys were writing.

CoffeeScript currently makes up just over 1% of Airbnb's codebase. I expect that number to grow quite a bit over the next year. Here's the breakdown according to github: http://cl.ly/2A241Z2d2I2m2R211Q1t

_harry··on JavaScript Jabber: Backbone.js
@jashkenas: Could you expand a bit about your thoughts on the growing ecosystem of community made patterns and modules on top of Backbone and how it might help direct [edit: 'help direct' is the wrong phrase, can I change this to shape?] the future of Backbone?

(referring to your thoughts around 38:00-42:00)

_harry··on Big Data: principles and best practices (new book)
Thanks for the comment Suyash.

We needed a meetup tool for all of the awesome Community Meetups that we throw around the world, so two of our engineers (Raph: https://github.com/Raphomet & Horace: https://github.com/warpdude) built an Airbnb Meetup tool. We like to dogfood, so we use it for our nerd meetups as well.

As for the meetup being on a busy Thursday, it just happened to be a time that worked for everybody.

_harry··on Firefox 5 is now officially released
While on the subject of about:flags --

Enable 'Tab Overview' if you have a Mac with a trackpad.

Three finger swipe down shows all of your tabs like expose.

_harry··on Loren wants to work at Airbnb
That's awesome Loren!

There are only four of us on the frontend team right now. We need more!

We like engineers with passion. People who get excited talking about the new frontend development frontier. Conversations like this happen all the time:

- Think Node.js would be cool for a realtime dashboard? Yes, do it.

- Maybe we could try using backbone.js and a fat client for this feature? Fork it and let's go.

- What's SASS? Install the gem. We're using it.

Our fourth frontend engineer just started last week. We sat him down, showed him how we were doing things and we asked him, "What do you think?" and he says, "Have you guys heard of Jammit? It's used for asset packaging. It's pretty cool" -- A couple hours later he was showing us the page load speed increase and how to use it.

If you're a frontend engineer wondering what it's like to work at Airbnb, feel free to email me: harry@airbnb.com or if you prefer character limits I'm on Twitter: @hshoff.

_harry··on Examples of the logo design process
Pepsi paid over $1 million dollars for it's latest logo redesign. http://adage.com/article/agency-news/breathtaking-word-purpo...

Check out the 27-page report about the logo: http://adage.com/images/random/0209/pepsi-arnell021109.pdf

_harry··on Airbnb
Captain McCains were/are Captain Crunch.
_harry··on Review my startup: Tastebuds - dating for last.fm users
Awesome name. Great look.

The only thing that caught my eye was a vertical scrollbar that only scrolls about 20 pixels worth shows up on the homepage on a 13-inch macbook running chrome.

_harry··on 6,953 reasons why I still let Google host jQuery for me
You can also speed up load time using LAB.js http://www.labjs.com

It loads and executes all scripts in parallel. Just be careful and hide any elements that rely on javascript before the scripts finish loading.

_harry··on Implementing Shazam with Java in a weekend
I will call it "Shamu"
_harry··on Implementing Shazam with Java in a weekend
I never realized how similar Shazam was to the first Matlab assignment we had to do for an EE class in discrete time linear processing. The only difference is we had to match whale calls to a type of whale. Spectrum analysis and everything. Never thought to identify music.

Sometimes, it's way to easy to overlook the obvious.

_harry··on Ask HN: Fastest way to make $1000 a month online?
My roommate from my freshman year tried the online poker thing. Made $100 the first day. $1k the first month. $5k the second. Then he won some $30,000 tourney. Then he dropped out.

He's been pursuing it full time for the last 4 years. He'll go into casinos and play for 50 hours straight without even realizing it. For awhile, he was dating a 35 year old women during one of his 3-month stints in Vegas. Then her husband showed up and punched him the face. He says he made around 110k last year.

The first day we met, he said he wanted to be either a zookeeper or a weatherman. Funny how quickly your life can change.

_harry··on A chat with Microsoft Principal Researcher Bill Buxton, Part I
Thanks for this. I first came across Bill Buxton's writings on UX back in April while doing research on multitouch technology for my senior project, and his collection of thoughts ended up having a huge influence on the outcome of the project. (http://www.billbuxton.com/multitouchOverview.html)

My two other lab partners and I ended up hacking together an interactive game cube of sorts. You can read about the project here, if you're interested: http://bit.ly/9Zm7ds

_harry··on Meet the new Twitter
Twitter's YouTube account credits Jeremy Briggs(@briggletweets) and Maggie Utgoff(@mutgoff) for making the Twitter recruitment video (http://www.youtube.com/watch?v=wU6epAkC9wg), so I would assume they are probably responsible for this video as well.
_harry··on Ask HN: What sites for content do you love as much as HN?
I come from an embedded systems background, so http://hackaday.com/ holds a special place in my bookmarks bar.
_harry··on Major breakthrough in tractor beam technology
In this situation, am I supposed to delete my submission or is it alright to leave it since it's a different source?

I don't know the etiquette.

_harry··on The Fridge (YC S10) Takes The Privacy Headaches Out Of Sharing
There was also another post by a similar social grouping startup earlier today: http://news.ycombinator.com/item?id=1625859
_harry··on Ask HN: Anyone know of a real-time message board or one in development?
Facebook and Twitter and others are doing it, so the technology must be out there.
Page 1 of 2Next →