HNHacker News
TopNewBestAskShowJobs

shanemhansen

2,558 karma · joined December 10, 2011

submissionscomments
shanemhansen··on When bills pile up, young people turn to strangers on Venmo
> Community has always supported people in times of need

Sure, if you are the right gender, race, and religion.

shanemhansen··on Why Lisp Failed (2010)
> looks to me like a "2nd system design" for C programmers

That seems fairly accurate.

> I'm hoping that the concurrency model is where it shines

I'd say that channels aren't quite the magic thing they are made out to be and goroutines aren't that amazing. The real win of go for me is three things:

1. Evented runtime with a synchronous interface. "Go is my favorite epoll library"

2. A standard lib that has great http support (things like keepalive and connection pooling and http2)

3. A build and test toolchain that makes coverage and race detection and memory and CPU and lock contention profiling trivial.

shanemhansen··on Why we're ending support for MySQL
MySQL is a decent nosql option with mature replication. If you care about your data, expect MySQL to be your foe rather than your friend.

Do you expect your triggers to fire? You are SOL https://bugs.mysql.com/bug.php?id=11472

Do you expect to be able to insert utf8 into utf8 columns? Don't be naive. Read the docs and you'll discover utf8mb4 or as I like to refer to it: mysql_real_utf8.

How about transactions? Surely a real SQL database supports transactions right? Or at the very least if it doesn't it would complain loudly when you use a transaction where not supported right? Once again this behavior is helpfully documented https://dev.mysql.com/doc/refman/8.0/en/commit.html

Do you expect to be able to put a value into MySQL and get that same value back out? You are SOL. But it's documented.

I can honestly say that the only appropriate time to use MySQL is when you can't use postgres and you are willing to move from a RDBMS to something that requires significantly more work to prevent data corruption.

I respect the hell out of MySQL engineers in terms of raw performance and the engineering of Innodb. I'm sure they aren't happy there's a million broken applications relying on defaults they can't change. I'm sure they aren't happy that fundamental limits in how pluggable storage engines work make ACID transactions not possible in the general case.

Postgres, for all of it's issues, feels like a database that has your back.

shanemhansen··on Green threads explained in 200 lines of Rust
There was some work to give linux this functionality via a switchto* family of syscalls. https://youtu.be/KXuZi9aeGTw
shanemhansen··on No Kings: How Do You Make Good Decisions Efficiently in a Flat Organization?
To me flat orgs default to lord of the flies leadership.
shanemhansen··on Nuclear power is the fastest way to slash greenhouse gas emissions, decarbonize
I feel like it's bad to talk about safety of nuclear without comparing it to another option. What's the safety of fossil fuels? What bar would have to be met for nuclear to save lives when compared to alternatives?

For the most part nuclear falls victim to the same human reasoning flaws that make us more worried about flying on a plane than driving even though driving is way riskier.

For more info: https://en.wikipedia.org/wiki/Energy_accidents

shanemhansen··on Post-mortem of March 12 Google outage
> On Monday 11 March 2019, Google SREs were alerted to a significant increase in storage resources for metadata used by the internal blob service. On Tuesday 12 March, to reduce resource usage, SREs made a configuration change which had a side effect of overloading a key part of the system for looking up the location of blob data. The increased load eventually lead to a cascading failure.

Just some guesses (not affiliated):

I wonder if there was something related to Tombstones and deletion of extra data? That can often be a failure of replicated sharded big data systems using sstables and tombstones for deletion.

Another guess might be that some sort of internal shard count was increased resulting in some lookup process needing to check n more shards per call.

shanemhansen··on Andrew Yang qualifies for first DNC debate with 65k unique donors
Or maybe the new #learntoread meme?
shanemhansen··on EditorConfig: Consistent coding styles across various editors and IDEs
This is why I love gofmt. Because I don't care about formats and finally there's a tool to remove the tabs vs spaces debate and allow people to focus on issues of substance.
shanemhansen··on Red Hat Satellite to standardize on PostgreSQL backend
Unlogged jsonb tables in postgres have generally made nosql systems look pretty bad. I'm really happy the industry finally came up with vitesse so we could have a middle option between "My ACID database needs to scale writes so I'll roll my own fragile sharding layer" and "give up all attempts at schema and consistency and transactions".

Vitess is a really comfortable middle ground of fairly familiar database semantics within a partition.

shanemhansen··on Microsoft Azure data deleted because of DNS outage
Azure's ILBs are still just bizarre to me. It's the first load balancer I've ever worked with where sometimes a member of the pool can't reach the load balancer. At the packet level given their implementation, this makes sense but tell me how many times you've ever had to write a stats endpoint where the stats nodes had to do workarounds to send their own stats?

Source: https://docs.microsoft.com/en-us/azure/load-balancer/load-ba...

shanemhansen··on Finding Kafka’s throughput limit in Dropbox infrastructure
I regularly do 200MB/s per node with NSQ (I know, I know, apples to oranges but people should be aware there are choices other than apples depending on your use case).
shanemhansen··on Ending our Medium integration
I don't understand this mindset. In my worldview people deserve investment. VC funded corporations don't deserve any of my time to "make it as a better platform".

Companies should live or die by the market and if they piss customers off and lose marketshare, that's the market working for once.

shanemhansen··on The potential risk to ZFS created by the shift in its userbase
I had the same experience with btrfs. It killed my machine multiple times.

ZFS on my laptop took me an evening to setup, but it's been completely hassle free. ZFS is really easy to use.

shanemhansen··on On Go, Portability, and System Interfaces (2015)
I think the key to the rationale is in the name. libc is a library for C. Go doesn't use the same calling conventions as platform C and does a number of things that make it not really play well with C code.

The authors want a world where you can just make a read syscall without using FFI.

It's possible this is a unrealistic expectation. Linux kernel interfaces are generally quite stable. On OSX and windows the kernel interface seems to be an undocumented unsupported API which is sad.

shanemhansen··on Net Promoter Score Considered Harmful
There seems to be a silly meme, often directed at "reductionist" engineer types that taking a measurement makes you understand less.

Nope. Feynman phrased it well:

"Poets say science takes away from the beauty of the stars - mere globs of gas atoms. I too can see the stars on a desert night, and feel them. But do I see less or more? The vastness of the heavens stretches my imagination - stuck on this carousel my little eye can catch one - million - year - old light. A vast pattern - of which I am a part... What is the pattern, or the meaning, or the why? It does not do harm to the mystery to know a little about it. For far more marvelous is the truth than any artists of the past imagined it. Why do the poets of the present not speak of it? What men are poets who can speak of Jupiter if he were a man, but if he is an immense spinning sphere of methane and ammonia must be silent?"

shanemhansen··on How I went from programming to consulting (2012)
They usually reach out to me or are referred to me via a friend. One time I had a friend doing some work for Vodafone Australia, and he just asked me to come out for a month long engagement to help them get ready for the iPhone 5 (which turned out to be the 4s iirc). Another time I co-founded a Meetup group in a relatively new technology and a startup wanted to leverage that so they wanted some help getting started and having some good patterns to follow.

So I guess I would counter what you said with experience/network rather than a brand.

shanemhansen··on How I went from programming to consulting (2012)
It's not hard in my experience. Not as easy as convincing CEO to do two redesigns per year, but not hard.

I work with companies operating at a large scale. Downtime costs $xxx,000/minute.

Developers cost lots of money, improving their productivity by a little bit pays huge dividends.

If the company has big events like Black Friday or Superbowl commercials, keeping the site up during those events is worth paying for.

Many not so big companies spend 6 figures per month in AWS bills.

Lots of work for a backend consultant.

shanemhansen··on How I went from programming to consulting (2012)
People on my linkedin talk to each other that way. It's bizarre how wannabe "coaches" talk.
shanemhansen··on IPv6 as a metadata store
So it sounds like there are really 2 use cases here.

Use case 1: I give you an IP, can you find any useful information in that IP such as rack, datacenter, etc?

Use case 2: I'm less certain of this: I assign a big subnet to a smaller number of nodes and that subnet is essentially your "ring" size for something that shards. Allowing you to always send data for shard #1 to the same ip.

I'm definitely not a fan of the latter. I'd rather most app developers treat an IP as an opaque piece of data. 128 bits is alot of addresses but it's really not that much space for metadata.

shanemhansen··on Just Say No
Is your name Javert?
shanemhansen··on Just Say No
The only scam I've ever been asked about was at an SEO conference. I was talking about how awesome selenium and browser automation was. Someone asked if I could make selenium log into gmail and click "not spam".
shanemhansen··on Understand Go pointers
> In Go, pointers are actually (type, address) tuples, so a nil pointer to a custom struct is actually (pointer CustomStruct [1], nil)

I could be wrong but I think that's not right. The key difference is dynamic vs static dispatch. What you're describing (type, address) is how go represents interfaces. So go can resolve a.Read() on an io.Reader if the value is (os.File, nil). A go empty interface is not like a c void pointer for that reason. Type info is preserved and can be safely recovered.

But go also has non-virtual method calls unlike Java (afaik), it doesn't implicitly dynamic dispatch. This is a consequence of the fact that it doesn't have inheritance. If you write var foo os.File; foo.Close(); there's no runtime (type,address) tuple. That .Close() call is essentially compiled directly to something like CALL os.File.Close(nil). This can potentially be inlined even. If your method treats nil specially that's up to you.

shanemhansen··on Linkerd 1.0
I'm curious. You have a dozen+ services running in a container platform. How many people/teams run software on this platform? How many customers use this platform? How much money does this platform make?
shanemhansen··on Vanlife, the Bohemian Social Media Movement
There's some interesting theories that the popularity of vans and tiny houses aren't just a hipster trend, but an actual reaction to diminishing opportunities. I don't know if they are true.

When life gives you lemons and you can't afford a home, you make lemonade out of the fact that you're living in your car or in an illegal shed.

shanemhansen··on Vanlife, the Bohemian Social Media Movement
This is more inline with my dream. I have a van, I work remote. My wife doesn't ; ). So for now we're weekend warriors.

We've done road trips through New Zealand and Iceland and it's a great way to experience a country inbetween hikes.

I see you're in Colorado. If you make it into Utah we should meet up!

shanemhansen··on Vanlife, the Bohemian Social Media Movement
I think I must not have been very clear. I'm not surprised that living in a van can be tough. I'm not surprised that documenting things or creating videos is hard work too.

My dissonance is that if you watch these videos most of them are full of rhetoric like "my generation doesn't like to settle" "I did what I was told went to college, found myself at a soulless marketing company and realized that I needed more" "I dare to think different" "I've never been a conformist". But if you read the article they are right in the middle of the world they hate. There life's work is product placement, brand repping, and promoting the superficial. Their youtube and instagram channels aren't documentaries of their lifestyle, they are just outlets for corporate attempts at growth hacking via sponsored photoshoots.

shanemhansen··on Vanlife, the Bohemian Social Media Movement
Kind of depressing. These people cash in on our desire to escape from the grind. The irony is that they now live a life of product placement and "brand alliances". The post ends with a casual admission that they make sure all pictures include the girl in a bikini. For maximum likes. The glamerous world of repping products and "creating authentic brand experiences" doesn't seem so glamerous to me.
shanemhansen··on Ubuntu 17.04 Released
I just had a random thought. If ubuntu really wanted to push the desktop forward they would focus on web developers and some first class tooling around react (preloaded extensions or editor support).
shanemhansen··on Ubuntu 17.04 Released
I tried using i3 for a while and loved it, but there were various, for lack of a better word, "desktop integration magic" things that I could only get to work reliably running in gnome or unity.

Thinks like hot plugging thunderbolt and having audio work perfectly, monitors readjust automatically, and variable dpi support. Actually so far ubuntu's been the only distro that makes it work well. This is the only reason I use unity.

← PreviousPage 6 of 19Next →