HNHacker News
TopNewBestAskShowJobs

BMorearty

594 karma · joined April 6, 2010

Software engineer, ex-Airbnb. Old-timer in the industry. Fan of TypeScript, JavaScript, Ruby, Rails, Rust. @BMorearty on X.
submissionscomments
BMorearty··on Firefox 94
Yeah, search the preferences for the word “Sponsored” and uncheck anything you don’t want to see.
BMorearty··on Firefox 94
Why is there so much argument among power users about a default setting that you can easily change?
BMorearty··on Firefox 94
I recommend having “Startup: Restore previous session” checked in your settings.
BMorearty··on Firefox 94
Click the gear icon on the New Tab page and turn off Sponsored Shortcuts.
BMorearty··on Firefox 94
I just tried it. It worked. Are we doing different things?

1. Clicked in the URL bar. 2. Started typing something. 3. Arrow-keyed down to one of the entries under “Firefox suggest.” 4. Tapped Shift+Del.

The entry was gone and didn’t come back next time I typed the same thing in the URL bar.

BMorearty··on Firefox 94
I recently switched from Chrome back to Firefox after the news about Google forcing people to stay logged-in to Chrome for tracking purposes. I’ve switched in the past but always ended up switching back for one reason or another. This time I’ve actually been very happy with it and don’t think I’ll switch back soon.

Better in Firefox:

* Ctrl+Tab cycles through tabs in recently-used order. Just like Cmd+Tab. This feature is wonderful and is easier to access than Chrome’s Shift+Cmd+A.

* In Firefox the two-finger swipe forward/back works much better. Three-finger swipe works well in both.

* Built-in reader mode that’s instantaneous and works well. In Chrome you need an add-on.

Better in Chrome:

* Has tab groups. There doesn’t seem to be a tab group add-on for Firefox that works like Chrome’s tab groups.

* Google Docs dictation works. But I never use that.

* Printing lets you scale up past the page size (useful for printing my AYSO team’s lineup).

BMorearty··on Async Ruby
The Airbnb service’s API is implemented over HTTPS. Falcon is built on top of Async. As its README says, “Each request is executed within a lightweight fiber and can block on up-stream requests without stalling the entire server process.” So whenever an API request comes into Airbnb’s service, Falcon creates a fiber to handle it in-process. If that fiber makes an API call to Genesys, control returns immediately to Falcon in the main fiber’s event loop to be able to handle more requests while the request fiber is awaiting Genesys’ response.

I don’t know the details of where this service sits in the service diagram. I think it may actually be something Genesys calls, and it in turn sometimes calls back to Genesys. No, the point of this service is not to get consistent latency on Genesys API calls.

BMorearty··on Async Ruby
Yes, Ruby’s HTTP client supports timeout. As I mentioned, we weren’t using Ruby’s HTTP client, we were using Airbnb’s HTTP client with some additional capabilities. But it also supports timeout. The issue here was that I don’t think it would help to time out with cancellation and then try again (if that’s what you’re suggesting). Genesys API calls weren’t failing, they were just returning very slowly. A retry wasn’t necessarily likely to return any faster since the slow responses tended to happen in bursts, presumably based on something weird happening on their side. Meanwhile, phone calls continued coming in to Airbnb’s support center (this gem handles incoming calls) and we needed to continue routing those to Genesys as well.

You mentioned “The only useful case where I believe Async Ruby can help is the parallel requests cases.” That’s what was happening here: because of the tail latency, we sometimes needed to have a lot more parallel requests.

Does that clear it up?

BMorearty··on Async Ruby
This gem had a huge impact in May of this year on one of Airbnb’s Ruby services. Last year when I was still at Airbnb I did the research and foundational work to make Airbnb’s HTTP client gem compatible with the Async gem and Falcon server. I’m no longer there but this year, one of my friends who’s still at Airbnb put that work to use on Airbnb’s Ruby service that talks to a Genesys API.

Most Genesys API calls have reasonable response times but there are these occasional, weird, unpredictable 30-second response times. The slow responses can come in bursts, where you can a bunch of them at once. This makes it extremely hard to predictably scale the Ruby service that calls it, because in normal synchronous mode, every thread that calls Genesys is blocked and on longer available to take more client requests. You could scale up the service to assume these 30-second response times will happen all the time, but then you’ve got huge server costs just for the 1% case.

But using Async and Falcon (an Async-compatible HTTP server), Airbnb was able to safely scale down the service by around 85% and turn on autoscaling, and it’s working beautifully.

BMorearty··on New language features since Java 8 to 17
Excellent counterpoint about Java requiring an IDE because it’s so verbose. In fact when I complain about Java’s verboseness, Java fans tell me “who cares, just use your IDE’s ability to auto-generate code!” But of course that doesn’t help with the _reading_ of verbose code.
BMorearty··on New language features since Java 8 to 17
It definitely does not take “no” additional time to read verbose boilerplate code.

As for prior knowledge, that argument doesn’t fly. A lot of the verboseness of Java could be addressed VERY easily with clear syntax that doesn’t require a lot more prior knowledge. An example is getters and setters, which are very easy to understand in languages that have built-in support for concise syntax but Java has somehow ignored the advantage of concise syntax for 25 years.

Besides, if your argument is that Java doesn’t require “prior knowledge,” I beg to differ. E.g., correct usage of arrays vs. ArrayList.

BMorearty··on New language features since Java 8 to 17
Being verbose is one of the biggest negatives a programming language can have. When you’re working on a team with other programmers and reading someone else’s code, verbose code takes much longer to read and grok because you have more boilerplate code to read.
BMorearty··on New language features since Java 8 to 17
“It’s extremely busy and verbose” were the reasons.

I agree with those reasons and I’ve always felt Java sucks because of them. When Java first came out I was a C/C++ programmer and was excited to learn it. Very quickly became disillusioned because it was incredibly verbose. I hoped the language would evolve quickly but it took FOREVER. Meanwhile Microsoft introduced C#, whose v1 looked like a copy of Java, and very quickly evolved the language to make it much better. They did what I hoped Sun Micro would do. But Sun just sat there and twiddled their thumbs.

BMorearty··on Lost world revealed by human, Neanderthal relics washed up on North Sea beaches
I had never seen that episode of Star Trek TNG. Thanks so much for mentioning it. I watched it just now and loved it.
BMorearty··on Ohio sues Google, seeks to declare the internet company a public utility
I’m disappointed to hear Firefox is deteriorating daily.

I disagree about DDG’s search quality. I tried it for six months and that was not my experience. Eventually went back to Google.

BMorearty··on Ask HN: Are you satisfied with Elixir or do you regret choosing Elixir?
Clarification on my last sentence: it’s not that managers code in languages like Java. It’s that managers have different priorities, such as hiring. In my experience those priorities lead to different technology decisions.
BMorearty··on Ask HN: Are you satisfied with Elixir or do you regret choosing Elixir?
This question reminds me of a story about Yahoo! Stores, which came out of Yahoo!’s acquisition of Viaweb, cofounded by PG. As he has frequently mentioned, Viaweb was written in Lisp and he felt they got an inherent advantage by using Lisp [0].

Several years after Yahoo! acquired Viaweb I was having lunch with the then-VP in charge of Stores and other business products, who was not from the original Viaweb team. The Yahoo! team was rewriting Stores in C++ (and Perl, apparently from a current Google search, although I only remember him mentioning C++). He kind of rolled his eyes when he said for some reason the original team wrote it in Lisp. He said it was hard to hire Lisp programmers to join the team.

PG was not well-known yet, so even if we could just search the web to find his reasoning for using Lisp (the article was written in 2001), we wouldn’t have thought of searching. But even if we had found it, I don’t think it would have mattered. There’s a different set of advantages and tradeoffs for a small team building a new product, when they are focused on fast development and growth and they come from a similar background, vs. a team in a larger company that has people coming and going and wants the ability to hire from the general developer pool without having to train everyone on a less-common language.

Disclaimers: this is a generalization, of course. You might be able to point to counterexamples. Some larger companies are more willing to hire language specialists and experts.

I’m just relaying what I was told. Please don’t angrily debate me on the benefits of languages like Elixir and Lisp. Your anger would be misplaced. Personally I absolutely love those kinds of languages and would much, much rather use them than something like Java [1]. That’s why I stayed a hacker my whole career and never became a manager.

[0] http://www.paulgraham.com/avg.html

[1] http://www.paulgraham.com/javacover.html

BMorearty··on Show HN: I made a platform to publish my Google Docs files as blogs
Very nice. Recently I was thinking about doing this myself. Now I don’t have to! Yay procrastination.
BMorearty··on CP/M for OS X
> Wikipedia says Callan was founded by Dave Callan. That’s only partially correct.

I think we know just the guy to edit the page.

BMorearty··on How Basecamp Blew Up
> it’s clear that the five books Fried and Hansson wrote lecturing other people about good management made them a lot of enemies…

That’s a bad take. Everyone I’ve ever heard mention those books has talked about them in a very positive light. I’ve never heard anyone describe them as lecturing.

The books aren’t what earned them enemies. Their behavior in the last week did. I’ve seen a lot of people on Twitter badmouth Fried and Hansson who admired them deeply until now.

BMorearty··on How Basecamp Blew Up
Even in hindsight I think Rails was a good choice for Airbnb. It got the company to where it needed to be. If they had chosen something else, there would have been different trade offs. The early team really benefited from the productivity benefits of Rails.

Source: I worked at Airbnb for five years and a very early team member told me this.

BMorearty··on Why Working from Home Will Stick
I always liked going to the office. Get to hang out and chat with some fun people and make friendships in ways that I can’t do remotely.
BMorearty··on Hosting SQLite databases on GitHub Pages or any static file hoster
This is fantastically creative. And the author does a great job of starting out by describing why this is useful.

And then using SQLite to insert and update DOM elements? Holy cow, icing on the cake. Unlike the first part, there’s no explanation of why you’d want to do that. But by that point I was so drawn in that I didn’t care and was just enjoying the ride.

BMorearty··on Google can ban your Android app if they think you’ve clicked on your own ads
Good to know. But he’s in California.
BMorearty··on Google can ban your Android app if they think you’ve clicked on your own ads
What did they do with double quotes?

(I googled it but couldn’t find it, haha)

BMorearty··on Google can ban your Android app if they think you’ve clicked on your own ads
Seriously!
BMorearty··on Google can ban your Android app if they think you’ve clicked on your own ads
Four months ago a friend of mine had his Google account suspended with a vague message about a terms of service violation. He escalated and appealed it with my help. It was no use. He lost everything. Files. Photos. Email. Calendar. Even his business domain registrations. He was paying for Google services like YouTube and storage. He couldn’t even get a download of his data.

This is why I never used Google Cloud. I’ve heard these stories for years. You can lose everything and have no recourse. It’s not worth it.

BMorearty··on Pollution from fossil fuel combustion deadlier than previously thought
> When I was a kid it was essentially unheard of to own a second property for rent.

Sorry but that’s flat-out wrong. Owning a second property for rent has always been a thing. How would you have known, you were a kid!

Case in point: my family was middle class. My parents were a college professor (new grad from graduate school, not a big deal) and a stay-at-home mom, living in suburban America. They owned a second property for rent. I didn’t even know until 20 years later that they had owned it!

Lest you think I’m some kid who grew up in the 00’s: no, I grew up in the 60s and 70s.

BMorearty··on Fuck Domainparkers
What workers did the UK say Airbnb is exploiting?
BMorearty··on Please don't say just hello in chat (2013)
Drives me nuts too.

When someone does that to me, I ignore them.

← PreviousPage 3 of 6Next →