HNHacker News
TopNewBestAskShowJobs

kevinconaway

876 karma · joined August 1, 2016

[ my public key: https://keybase.io/kevinconaway; my proof: https://keybase.io/kevinconaway/sigs/5RIAFrQwmuMtu-IH6gRMOAPM0cbYiD3-EEtPJZS2wZA ]
submissionscomments
kevinconaway··on Guidelines for writing readable code
> Personally, I follow a rule I read in a blog some time ago and don't try to de-duplicate code until I've copy and pasted it three times

Known as "Three Strikes and You Refactor"[0]:

- The first time you do something, you just do it.

- The second time you do something similar, you wince at the duplication, but you do the duplicate thing anyway.

- The third time you do something similar, you refactor.

[0] http://wiki.c2.com/?ThreeStrikesAndYouRefactor

kevinconaway··on Ending PHP Support, and the Future of Hack
From the outside looking in, the most interesting part of the post is the note about their new release cadence:

> As we expect the language to evolve rapidly, we strongly recommend using the regular releases instead of the LTS releases for large projects; while this does mean you need to upgrade more often, both us and our users have found that it is generally easier to catch up on 2 months worth of changes 3 times as often than 6 months of changes in one go. We will also be re-evaluating the length of our release cycle; one possibility is that we will move to releases every 4 weeks, with these releases being supported for 6-8 weeks.

That cycle will work for FB where they are constantly iterating and also have early insight as to where the language is going before they get there but for anyone on the outside or for slower moving projects, that cadence seems fairly punishing.

Is that a big change from how they release now?

kevinconaway··on Preventing Muscle Loss as We Age
Do you have children?

I used to run or cycle at least 5 days a week but since my daughter was born (and stopped being an infant) it is a struggle to keep a regular exercise regimen.

I try to run with her in a jogging stroller when I can but this is much more susceptible to foul weather than when I could just adjust my own clothing.

kevinconaway··on Hackers Breached Virginia Bank Twice in Eight Months, Stole $2.4M
What’s interesting to me about this is it seems like the hack still required physical presence to pull it off. The criminals had to actually visit hundreds of ATMs over the span of a holiday weekend to withdraw the cash

I suspect it had to have been people in on the scam because I don’t see how you could conceivably convince strangers to withdraw cash for you at that scale without raising eyebrows

kevinconaway··on Why Japanese Whisky Is So Good and So Hard to Find
It looks like they are charring the barrel

https://www.angelsenvy.com/guide/whiskey-history/why-charrin...

> People have suggested that the inside of barrels were originally burnt to remove the leftover flavors of goods previously stored within, which sounds reasonable enough ... So why do barrel coopers still char the interior? ... Charring the wood actually primes the wood, which impacts the spirit’s flavor in several important ways that have nothing to do with smokiness ... charring essentially opens the wood up, making it easier for bourbon to extract flavors.

kevinconaway··on Why Japanese Whisky Is So Good and So Hard to Find
>It was a very good wine for cheap and wine hipsters loved it.

> Because it is now popular, and relatively expensive, wine hipsters turn their nose up at it.

Could it be that the so-called hipsters enjoyed the wine priced at $9.99 but not when the price nearly doubled?

kevinconaway··on Why Japanese Whisky Is So Good and So Hard to Find
Much like Pappy Van Winkle, its popular now because its popular. People want what they can't have.

Good whiskey takes a while to mature (the lowest PVW ages for 15 years) so if there is a spike in demand, producers cannot react quickly.

kevinconaway··on Verifying Global Consistency with Jepsen
It would be nice if you posted the correctness report as is, without requiring me to be added to your marketing funnel.
kevinconaway··on Unfortunately.tech – a collection of rejection letters
> We should be praising the companies that take the time (or implement the automated process) to send the rejection letters and not leave us hanging.

Its interesting that there is an article on the front page [0] right now singing the praises of Ghost (ironically named in this case) which does exactly the opposite.

From their careers page [1]:

> Unfortunately due to the volume of submissions that come in whenever we open a position we aren't able to respond to every single application, but if yours is successful - you'll hear back from us within around a week.

[0] https://news.ycombinator.com/item?id=17082228

[1] https://blog.ghost.org/infrastructure-engineer/

kevinconaway··on How a Special Diet Kept the Knights Templar Fighting Fit
> On a more serious note: "even though it was “understood that the custom of eating flesh corrupts the body.”

The source material [0] that the quote is taken from has a footnote that says "The Cistercians held that rich food increases sexual appetite"

It would seem that the "corruption" here is related to keeping ones libido in check.

[0] https://books.google.com/books?id=cBqgOXfMxAoC&pg=PA26&lpg=P...

kevinconaway··on Java’s Mysterious Interrupt
> calling isInterrupted() actually clears the interrupted bit.

Thats incorrect. Calling Thread#interrupted[0] clears the interrupt status and returns true if the current thread was interrupted. Thread#isInterrupted()[1] only returns the value of the interrupt status on the thread receiving the method call. The interrupt status is unaffected by that method call.

[0] https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.h...

[1] https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.h...

kevinconaway··on The Hobo Ethical Code of 1889
The linked article[0] contains more narrative around the hobo lifestyle and the rules listed in the submitted article

Wikipedia[1] also offers some definitions of the hobo slang used in the code:

Boil Up - specifically, to boil one's clothes to kill lice and their eggs; generally, to get oneself as clean as possible

Jungle - an area off a railroad where hobos camp and congregate

[0] http://brktrail.com/hobo_ethics/

[1] https://en.m.wikipedia.org/wiki/Hobo

kevinconaway··on 90-minute ‘super commutes’ more common as Bay Area housing shortage intensifies
Videoconferencing introduces friction in to the process. Those meetings must be planned and scheduled. There are no serendipitous hallway or kitchen conversations that flow easily when people are colocated

There is also the friction of the software itself. Whiteboarding and freewheeling discussion is possible but it doesn’t have the same feel to it

kevinconaway··on Flight Recorder becomes part of OpenJDK
While I still think YourKit is a better profiler and has a better UX, the ability to start/stop/dump metrics collection on a running system without enabling an agent or adding JVM args is a killer addition to JFR, one that I don't think YourKit will be able to complete with.
kevinconaway··on A Career Cold Start Algorithm
The article is clearly targeted at managers and leaders, not your average individual contributor.

Often new leaders & managers start in an established team and want to change something to "make their mark" or have an impact as soon as possible, often with disastrous results (because they don't yet have the context to make informed decisions).

The advice is to spend time with your team to learn the ropes, figure out the internal politics, hear the common pain points and _then_ start addressing things, hopefully with some quick wins (like canceling a wasteful meeting or appropriating a larger conference room) that due to organizational inertia, went unaddressed.

kevinconaway··on February 28th DDoS Incident Report
> From what I gather, the attack here was possible because Github engineers accidentally left the memcached port open.

That is incorrect.

The attackers made requests that were forged to have the sender IP address of Github to multiple public memcached instances. Memcached then responds back to Github instead of the attacker.

This is documented in more detail in the Cloudflare vulnerability report[0]

https://blog.cloudflare.com/memcrashed-major-amplification-a...

kevinconaway··on Failed intercept at Dhahran caused by a software error in handling of timestamps
Per the GAO report[0]

> According to Army officials, the delay in distributing the software from the United States to all Patriot locations was due to the time it took to arrange for air and ground transportation in a wartime environment.

I'm not knowledgeable at all on how software for missile batteries was distributed in 1991 from the US to the Persian Gulf but 11 days doesn't seem unreasonable to me.

[0] https://www.gao.gov/assets/220/215614.pdf

kevinconaway··on How America Fell in Love with Vodka
You can even use it to make a great pie crust

https://www.cooksillustrated.com/articles/37-foolproof-pie-d...

kevinconaway··on LinkedIn is ignoring user settings
The issue at hand is how LinkedIn defines “public”. From the public profile settings page the author linked:

> Select what shows via searches on Bing, Google, etc. as well as on public profile badges and permitted services like Outlook, when the viewers are not logged-in members or did not bind their LinkedIn account to their account on such services.

Its not anyone who isn’t logged in but rather a subset of unauthenticated users who discover your profile through a specific set of avenues

Clicking on the informational icon next to “public” reinforces what they mean:

>All LinkedIn members as well as others who find you through search engines (e.g. Google, Bing) or other servies.

kevinconaway··on Spaniards face ham shortage as Chinese market gets taste for jamón ibérico
> We have a saying here in Spain: from swine, even the gait.

The American version is “everything but the oink”

kevinconaway··on Why we used Pony to write Wallaroo
Thanks for the writeup Sean. I've been interested in pony since I read about here on HN a while back.

I have a question on this quote

> The standard JVM garbage collection strategy is “stop the world.” That is, when the JVM needs to reclaim unused memory, it needs to pause all other processing so it can safely garbage collect. These pauses are sometimes measured in seconds. That is going to destroy your tail latencies.

Thats why applications rarely use the default serial collector.

Does your comparison still hold against the CMS and G1 collectors, which do a much a better job at eliminating "stop the world pauses"?

kevinconaway··on Why ProtonMail is more secure than Gmail
> see e.g. Stuxnet taking out Iran's nuclear program using a previously unknown method of generating SHA-1 collisions, that looked kind of like how the academic community knew to generate collisions but with a different fingerprint)

To my knowledge, it was Flame that did this not Stuxnet, and it was an attack on MD-5, not SHA-1 [1]

[1] https://en.wikipedia.org/wiki/Flame_(malware)

kevinconaway··on Why we switched from Python to Go
Two large projects that I know of are CockroachDB and Influxdb

A quick glance seems to indicate that cockroachdb takes about 9 minutes [1] and infuxdb about 15 minutes [2]

[1] https://teamcity.cockroachdb.com/viewLog.html?buildId=380603...

[2] https://circleci.com/gh/influxdata/influxdb/tree/master

kevinconaway··on Consul 1.0 Released
Although its not part of Zookeeper core, there is an Apache Curator module[1] for doing service discovery on Zookeeper

[1] https://curator.apache.org/curator-x-discovery/

kevinconaway··on Coding Interview Cheatsheet
After an initial phone screen, we give candidates a short programming exercise that they can complete on their own time. We feel that engineers work best when they have time to think about a problem and work on it at their own pace with their own tools.

If the solution passes some objective criteria that we have, it then forms a significant component of the on site interview where we discuss their solution in depth and have them talk about the decisions they made and opportunities for improvement. Not only does this allow us to ensure that they actually wrote the submitted solution but it gives the candidate the chance to speak from a position of authority on their own code.

kevinconaway··on Toward Go 2
> asking for monotonic time

His anecdote about Google/Amazon using leap smears to solve the problem is telling. I suspect that they were unable to see outside their own bubble to think about how others may be impacted.

> We did what we always do when there's a problem without a clear solution: we waited

The original problem described the issue and the potential consequences very well and the problem didn't change between the initial report and when cloudflare hit it. It was only until a Serious Industrial User (to borrow a term from Xavier @ OCaml) got bit in a very public way that they actually began thinking about what a clear solution would look like.

← PreviousPage 2 of 2