HNHacker News
TopNewBestAskShowJobs

andrewvc

5,756 karma · joined April 27, 2009

I'm a programmer living in Minneapolis, MN.

https://github.com/andrewvc http://blog.andrewvc.com andrew [at] andrewvc.com

submissionscomments
andrewvc··on The rise of passive investors
Why should GM invest in new cars as opposed to returning capital to investors who can perhaps allocate it more efficiently? Why should I believe they can do a better job than anyone else?

This is a long-standing debate over who should allocate capital. I don't think there's one exact answer. Clearly some companies, like AOL were terrible at reinvesting money, they tried and tried but wound up blowing tons of cash on worthless companies.

Other companies, like say Facebook were able to make smart investments like buying Instagram.

Clearly investors price stock based on whether the company can make smart investments in its own future, which is why AOL nosedived and Facebook rose. The market isn't always right but I'm not convinced that an alternative would be better

andrewvc··on The rise of passive investors
The whole reason companies go public is to raise capital. Without buybacks and dividends as at least potential future possibilities this would be hampered.

Additionally, companies guarding mountains of cash is problematic. Sometimes companies can invest cash more wisely than the market. Often times however this is not the case.

I agree short termism is a problem, but I'm not convinced of any particular solution here.

I'll also point out that sometimes when the market is too short termist private equity can come in and revalue the company to free it from those constraints as in the case of Dell.

andrewvc··on The Man Who Got Americans to Eat Pollock
Nearly all wild fish have worms https://munchies.vice.com/en_us/article/d755kx/almost-every-...

Not really a surprise. Before sanitation massive quantities of people had them too. Parasites are still a problem in much of the world for humans and animals alike.

andrewvc··on Postgres Job Queues and Failure by MVCC
Yes but then you need to support a whole additional piece of infrastructure and you have to write and support more code. For a lot of use cases that's a waste of time and money. This is a case of YAGNI for the use cases I mentioned.
andrewvc··on Postgres Job Queues and Failure by MVCC
I would argue that is not a pragmatic approach. The article makes a good point about the huge benefits of this approach for relatively small workloads. Transactional guarantees are hugely useful! Being able to rollback something like a user create including a queued job to send out a welcome email is incredibly nice.

IMHO HN conversations tend too much toward solving problems at google scale. We often forget here that there are tons of high-value business critical systems that generate mere 10s, hundreds, or a few thousand background jobs a day. Given the numbers quoted in the article, DB backed queue systems scale quite far. I've successfully used them to handle tens of thousands of events per day with no problem over a timespan of years. It's clear that this is a great approach for some situations, and that one size fits all doesn't make sense here.

andrewvc··on Still locked out of my AWS account
The UPS store will notarize stuff for like $10-20 bucks FYI.
andrewvc··on New studies of ancient concrete could teach us to do as the Romans did
These were called insulae[1]. Part of the reason the lower floors were higher prestige was due to the constant risk of fire. In the event of a fire those on the upper floors were in a far worse position in terms of survival.

1. https://en.wikipedia.org/wiki/Insula_(building)

andrewvc··on Things to know before using AWS’s Elasticsearch Service
Elastic cloud doesn't require any more management than AWS. You just need to click some buttons to add capacity https://www.elastic.co/cloud
andrewvc··on Software Companies Tech Competency Matrix
Oh, this old chestnut. It keeps coming around again and again and again.

Instead of complaining about this thing point by point I'll just ask a question. Has anyone taken this self-serious pseudo-quantified thing and tried to actually put it into practice? Have you found any quantifiable results?

This, TBH, seems like an arbitrary yardstick for insecure people to measure themselves by IMHO.

andrewvc··on Travis CI Security Advisory: Secured Environment Variables
While I love travis for what it is, this is a foreseeable result here.

At the very least they need to add a failsafe that checks all outgoing logs for any secure tokens and replaces them with '*' or something.

If you sign up to play a game of whack-a-mole you will lose eventually.

andrewvc··on IBM says remote working is great after forcing employees to work from office
Well, I work full remotely at a good size company (Elastic) and it works great for us.Our entire company is fully remote.

The secret is that you need to be fully committed to remote. If you do this you force yourself to actually find workflows that work remotely. If you just work two days a week remote you wind up isolated for two days and don't collaborate during that time.

A lot of companies that fail at remote work also fail because they have a mix of office and remote workers. This only works if you force every conversation to happen online. Otherwise you have the inner circle in the office and the outer circle that is remote.

The point is that a lot of remote work failures are simply companies that had remote workers but didn't have a workflow that was amenable to remote work.

andrewvc··on Thieves drain 2FA-protected bank accounts by abusing SS7 routing protocol
I think there are plenty more people who would lose all their u2f keys than be attacked via the phone company. Sure, that's easy for you to manage, but not for most people.
andrewvc··on Thieves drain 2FA-protected bank accounts by abusing SS7 routing protocol
The big problem that SMS solves that nothing else does is that you can be completely irresponsible/unlucky and it still works. You can lose your u2f key , lose any one time backup codes on paper, and so long as you can convince your phone company that you are you you're fine.

I don't think most people are responsible enough to deal with more secure MFA. Most people don't know how to keep custody of stuff like that.

andrewvc··on Ask HN: Who is hiring? (May 2017)
We are hiring across a wide number of roles here at Elastic, makers of Elasticsearch, Logstash (what I work on), Beats, and more: http://grnh.se/v38rcs1 . We are a 100% remote company, with a lot of flexibility, and a very happy team.

I'll just say that I love working with smart, motivated OSS developers from across the world in a culture where we implicitly trust people to do the right thing. That lets us avoid a lot of stifling process that I've seen in other jobs.

andrewvc··on Award-Winning Nautilus Enters Rough Waters
I just signed up for Nautilus prime after reading this. http://shop.nautil.us
andrewvc··on I was wrong, reflecting on the .NET design choices
You never really learn a language, and you never really are an expert in using it.

While you may know a lot about what the language is, how it works, and accepted ways of using it, your opinions on how to do things will always be evolving (hopefully).

Sometimes all the experts who use a language will be behind the times. For a long time experts championed strong OO design. Now all the experts champion hybrid OO/FP style things (witness Java 8!).

This too shall pass, and we should have the humility to realize that no-one knows for certain what will be the next evolution of software development.

andrewvc··on How many jobs really require college?
Well it's not as if people who don't go to college sit about twiddling their thumbs.

Additionally there's an argument to be made that people who don't spend those years having their life structured and defined by a university learn other important lessons.

There's particular irony to making the point that college is where you learn to think on HN. Many founders, like Bill gates dropped out of college to be hyper focused on their mission.

Rather than thinking of college as a blanket solution for everybody I wish people viewed it as a tool. Some people need it, some people flat out don't.

andrewvc··on How many jobs really require college?
Well it's not as if people who don't go to college sit about twiddling their thumbs.

There's an argument to be made that people who don't spend those years having their life structured and defined by a university learn other important lessons.

There's particular irony to making the point that college is where you learn to think on HN. Many founders, like Bill Gates, dropped out of college to be hyper focused on their mission.

Rather than thinking of college as a blanket solution for everybody I wish people viewed it as a tool. Some people need it, some people flat out don't.

andrewvc··on How many jobs really require college?
That's totally confirmation bias. Smart people are more likely to go to college. Almost everyone becomes wiser between the ages of 18 to 22.

Why are you so sure that college is causative here?

I don't doubt that college is where many people grow up more intellectually, but I have yet to see proof that it is the cause of that growth.

andrewvc··on How We Built r/Place
Well, in your article you mentioned that you tried to use Cassandra for one task and had to jettison it because of unexpected performance problems. You had to re-approach the problem with a whole other DB. I would say contradicts the point you're making.

I'm not arguing that most problems need a custom database, only a minority do. I'd say that this problem is borderline on which direction to go.

Databases are very leaky abstractions as you all discovered. The nice thing about custom code is that you don't have leaky abstractions. The bad thing about custom code is that you have a large new untested surface area.

In the case of your application the requirements are so minimal, a bitfield plus a log, I'd say its a wash.

Programmers today forget that things like flat files exist and are useful. It's a shame, because you wind up with situations where people just assume they need a giant distributed datastore for everything.

What you're doing in that case is trading architectural complexity for code complexity. Now, if its the case that all data in your org goes in one data store to keep things consistent, great, that makes sense. But for a one off app I just don't buy it.

andrewvc··on How We Built r/Place
I agree that machines go down, but there are sane (and safe!) ways to build this sort of thing without adding in cassandra and Redis. Additionally, the max placement rate of 333/s is reaaaaally slow! Maybe that's due to the websocket frontends, not the DB, but, that doesn't mean that's the most obvious way to build it.

The crux of the problem is that they need to mutate a relatively tiny amount of memory and have a rolling log of events for which only the last 5 minutes needs fast access. Also, if you can put all your state on one machine its far less likely that the one machine will die, than it is that at least one will die in a cluster of machines. Given the nature of the problem keeping all state on one machine seems pretty rational to me, so long as you have the ability to switch to a hot spare within a few minutes or so.

If I were to architect this for speed I would have two tiers: a websocket tier, and secondly a 'database' tier. The database would be a custom program that would:

0. Provide a simple Websocket API that would receive a write request and return either success if the user's write timer allowed it to write or failure if it didn't. This would also broadcast the state + deltas. 1. Keep the image in memory as a bitmap 2. Use rocksdb for tracking last user writes to enforce the 5m constraint. You could use an in memory map, but the nice thing about rocksdb is that it shouldn't blow up your heap. 3. Periodically flush the bitmap out to disk to timestamped files for snapshots 4. Keep the hashmap size small by evicting any keys past their time limit 5. Write rotating log files rotated every 5m or so to record the history of events for DR and also later analysis

Backing this sort of thing up is very simple. You just replicate the files using rsync or something like it. You may have some corruption on files that are partially written, but since we're opening and closing new files often you can choose how much data-loss you want to tolerate.

Restoration is as simple as re-reading the bitmap and reading the log files in reverse up to 5 minutes ago to see who still isn't allowed to write yet (thus reconstituting the hashmap). Let's remember, redis replication is async, so this has the same tradeoffs.

andrewvc··on Uber Taps Eric Holder to Investigate Discrimination Claims
Holder may do a great job but even the appearance of impropriety must be avoided in these cases. Holder should have declined; Uber should have found someone else.
andrewvc··on The JVM is not that heavy
These sorts of comments are (no offense) worse than useless. Benchmarking is one of the most difficult things to do in software, and anecdotes like this just make things confusing for new engineers and feed the perpetual hype train around newer languages.

Please refrain from making statements like this unless you have a reproducible quantifiable analysis.

If you really wanted to demonstrate the effect you describe you'd need to have the same team rewrite the application twice, once Java->Java, once Java->go, making sure to align the program structure as much as possible (making exceptions to take advantage of lang specific features of course).

If you were to do that, then that would be interesting! No one does that of course because it's expensive and wasteful from a business perspective, but it's the only way to determine anything useful.

andrewvc··on Toxic fluorinated compounds found in drinking water of 33 states
Why weren't the risks better known before?

I'm sorry, but the truth here is that DuPont knew for decades and hid those results from the public. https://www.bloomberg.com/news/articles/2016-07-06/dupont-lo...

andrewvc··on Time to Take a Stand
And the EO has an exception for 'religious minorities', which are (surprise) never muslim in majority muslim countries.
andrewvc··on Reading Uber’s Internal Emails: Bug Bounty report worth $10K
As a former customer (it has admittedly been a few years) I'm not surprised. Sendgrid's entire business is based on price. Emails are one of the few costs that don't really scale that well. They cost a lot more than people think they should. When I list did a cost analysis they beat out a lot of other providers.

I haven't used them in years, so I'm not sure if they are still the low cost leader, but they are definitely the kind of thing where you get what you pay for. Their lack of investment in product and infrastructure showed for the years I used them, and their slowness in delivering updates was incredibly frustrating.

andrewvc··on The Home Office Is Dying
This may be true, but it's really a bad thing for ergonomics. While changing your position is vital, you still need a real work area. Having a proper adjustable height desk + large monitor + ergonomic seating is a good idea. Whether that goes in a corner or in a special home office, working a full day from the couch on a laptop is terrible for your health.
andrewvc··on AWS X-Ray – Distributed Tracing System
I haven't used many of the new AWS services. Someone tell me, what's the quality level? I'll be surprised if all the new AWS stuff works that well given how divided their focus must be now.
andrewvc··on How I stopped the RSI pain that almost destroyed my programming career
FWIW I found biking terribly aggravating for RSI. It really is not an ergonomic position. I'd recommend nearly anything other than biking. Swimming, weight lifting, basketball, etc. Anything where you aren't still sitting.
andrewvc··on The smug style in American liberalism
Read this: http://observer.com/2016/09/colin-powell-is-right-birtherism...
← PreviousPage 4 of 30Next →