shadowmatter

Joined 16 years ago

Karma
532
Submissions
74
Member since
Sep 23
https://github.com/mgp https://twitter.com/omgitsmgp http://omgitsmgp.com/

Currently: Movin' money at Square

Previously: Backend developer at Airbnb, mobile developer at Khan Academy, lead developer on Burner, SWE at Google

View on Hacker News

Recent submissions

Comment · 11 months ago
Even in lowly Java, they later added to Optional the orElseThrow() method since the name of the get() method did not connote the impact of unwrapping an empty Optional.
Comment · 3 years ago
When I worked at Khan Academy, Charlie was an intern, and for a few months we worked together on building the KA app for Android. I can vouch that he was a damn good developer then, and I'm sure he's a much better one now.
Comment · 4 years ago
Yeah, but it's the rank and file employees who will now think "I'm not there to defend myself against being fired if I take maternity/paternity leave" who will suffer most. The ones who won't be getting a severance larger than you can ever imagine.
Comment · 4 years ago
Every other theory listed here is far more likely, but I would try changing your loop from using System.currentTimeMillis() to using System.nanoTime(). It's a higher-resolution time source that has no relation to wall clock time but is more appropriate for timings. Classes like Stopwatch from Google's Guava use it.
Comment · 6 years ago
Comment · 7 years ago
Comment · 7 years ago
Oops! My mistake – you are absolutely correct. Lombok was just so pervasively used in our services, I assumed it came included as part of the Dropwizard toolbox.
Comment · 7 years ago
I used it extensively while writing Java code at Airbnb. (It came included with Dropwizard, which we used for writing services.)

Some people are uncomfortable with the extensive bytecode manipulation that it does. While Lombok provides annotations, it is not your normal annotation processor. From http://notatube.blogspot.com/2010/11/project-lombok-trick-ex...:

> Project Lombok hooks itself into the compilation process as an annotation processor. But Lombok is not your normal annotation processor... The trick is that Lombok modifies the AST. It turns out that changes made to the AST in the Annotation Processing phase will be visible to the Analyse and Generate phase. Thus, changing the AST will change the generated class file.

That said, we never encountered any Lombok-related problems when running services in the cloud or locally. And the Lombok plugin for IntelliJ is good enough in that the auto-complete will "see" the Lombok-modified version of the file. For example, using the @Value annotation creates an immutable value type, which among other things a) makes every field private and final, and b) generates a getter method for each now-private field. With the Lombok plugin, IntelliJ auto-complete will a) not auto-complete the composed fields which are now private, and b) auto-complete the generated getter methods.

I highly recommend looking past the voodoo bytecode manipulation and using Lombok. The @Value annotation alone is worth the price of admission and made me a more productive programmer.

Comment · 8 years ago
I appreciate how the characters in the example are named Bart and Lisa.
Comment · 9 years ago
Comment · 13 years ago
But explicitly spelling out to your wealthy competitor all the ways in which you kick its ass likely improves your chances of being acquired.
Comment · 13 years ago
I'm not going to lie, I didn't like this post as much as I wanted to.

The author says that Google is making the same mistakes that LiveNinja made over a year ago. And that LiveNinja has learned a lot and iterated since then. At this point, I'm ready to believe that LiveNinja is the more mature product. That if I have a need, I should probably go to LiveNinja. I'm ready to be sold... But then the author does nothing. He don't actually tell me WHY LiveNinja is better. Instead, he mentions Google Answers, Buzz, and Wave.

Why not drop the ad hominem, and sell to your potential customers instead?

Comment · 13 years ago
From http://docs.oracle.com/javase/7/docs/api/java/nio/charset/Ch...: "The native character encoding of the Java programming language is UTF-16."

That said, at least they adopted a Unicode encoding, and helped it establish mindshare.

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton