HNHacker News
TopNewBestAskShowJobs

shanemhansen

2,558 karma · joined December 10, 2011

submissionscomments
shanemhansen··on Show HN: Molecule – Streaming, zero-allocation protobuf decoding in Go
Realistically if you're able to serve 10k requests/s and you want to get to 20k and you have the option of:

a) rewriting in C++

b) pooling some objects

Which one is the right call?

shanemhansen··on GraphQL Mesh
Well a regular http API is going to be better for caching. Right now I'm only aware of one product that supports caching in graphql but there are hundreds of thousands of CDN nodes around the world that will cache the result of 'GET /product/5'

HTTP2 is great if you have independent requests and want to avoid head of line blocking. I'm not aware of any sort of streaming/partial result capabilities for graphql.

Graphql is great if you want to give a trusted client a richer API and/or if your infrastructure has good ways of handling abusive API users.

shanemhansen··on Little Snitch and the deprecation of kernel extensions
It's interesting to compare and contrast community reactions to apple vs google policies, as well as how the companies interface with popular software.

Google changes extension model for Chrome, breaking ad blockers, reaction seems to be that it's an obvious power grab.

Apple changes extension model, breaking network blocker, reaction seems to be favorable.

shanemhansen··on Across furtive videocons, junior VCs wait for the layoffs to begin
Fond memories. My first pure software development job was using that stack at USU circa 2005.
shanemhansen··on The Original Sin of Software Metrics (2014)
I worked on a project where this came up. We had some product features that weren't really used. We continued to talk about all the benefits of those features and when the business had renewed interest in that area we jumped to turning those features on.

Only to find out they barely worked. FWIW the unit tests were pretty solid but the integrations weren't and the graceful degradation story was a little too good.

So we went from no complaints to having an entire department breathing down our next because all of the sudden people started giving a shit about our product (web performance improvements).

shanemhansen··on Quibble – Custom Windows Bootloader
That's super cool. I would be much more likely to keep windows around if it could boot from a btrfs volume.
shanemhansen··on Dogs poop in alignment with Earth’s magnetic field, study finds (2014)
xkcd explains it better than I can. Basically if you pick p values that give 95% certainty 20 times you're probably going to "discover" at least one falsehood.

https://xkcd.com/882/

shanemhansen··on OpenSnitch is a GNU/Linux port of the Little Snitch application firewall
To me it smells of "we are running some random app server as a non-profit user and need to bind to a high numbered port"
shanemhansen··on Who Says Tcl Rules?
I learned web development using openacs around 2005. I got alot of value out of the experience.

ad_proc and online documentation was awesome.

I also had to figure many things out from first principles because documentation was all for PHP and Apache, not aolserver and tcl.

shanemhansen··on Five Years of Btrfs
I ran btrfs on a laptop. 2 things.

Once I ended up with a bunch of zero length files (presumably metadata was written before content?).

I also, multiple times ended up with errors related to full drives despite by drive not being full. Deleting snapshots seemed to help.

Then I went to a zfs fs on root and never had another problem.

shanemhansen··on I Was Wrong About Speed Reading (2015)
That's what Reader's Digest did: summarize.
shanemhansen··on Using Python and OCaml in the same Jupyter notebook
That's pretty cool. Reminds me of mixing blocks from different languages in org mode.
shanemhansen··on C++ 20: The Core Language
Honestly I think it's a silly word to use for features. In math orthogonal means roughly "at right angles" or "dot product equals zero". When two things are orthogonal it means that they are unrelated so you can deal with them independently which makes things simpler.

In describing features orthogonal is basically jargon for unrelated and adds no additional clarity imo.

shanemhansen··on Ask HN: What are weird and/or novel ways to do web UIs?
I had to do something similar once with FRRs (firewall rule requests) as a F50. There is one official way of requesting a FRR. What that way is a matter of some debate. Theoretically you file a JIRA ticket with fqdn, ip/mask, port, protocol info. Anyways cutting a long rant short I eventually had to write a script to generate 100 SRC X 10 DST X 2 ports rules as csv pulled into a spreadsheet.

After a couple days it was assigned to an engineer for implementation and of course the first thing he did was unflatten it.

shanemhansen··on Why It’s Hard for Startups to Create Wealth in Europe
Walmart owns ASDA, or at least they did until recently.
shanemhansen··on The HTMLRewriter API Beta in Cloudflare Workers
So few people are probably aware of this, but Walmart has this tech internally to power a bunch of things like:

  1. URL shortening
  2. CDN load balancing
  3. Emergency content removal
  4. Emergency content rewriting (removing a dynamically generated cache buster)
  5. A bunch of other things.
We had a few transforms which couldn't be done in a streaming way, like inserting content in the head based on content seen in the body, so we opted to do none of them streaming. Which does hurt TTFB if your content isn't cacheable.
shanemhansen··on Chrome UI for Deprecating Legacy TLS Versions
There's a more in-depth discussion of why these are being deprecated here: https://security.googleblog.com/2018/10/modernizing-transpor...

TLS 1.0 relies on MD5 and SHA1 and is no longer PCI-DSS compliant.

In case anyone is curious: TLS1.1 was released in 2006 and TLS1.0 was released in 1999. Fun fact: TLS 1.0 re-uses the SSLV3 version sequence for interoperability. 0x0300 is the 2 byte sequence for SSLV3 and TLS1.0 got 0x0301. Lack of knowledge of the above once led a less experienced me to use SSLv3 for an app in 2011 because "the number was higher".

shanemhansen··on Announcing your plans makes you less motivated to accomplish them (2009)
I don't disagree with the study results. I guess talking about a thing can be a substitute for doing it.

But as others have mentioned, publicly committing to a specific measurable goal can help others hold you accountable.

shanemhansen··on V8 adds support for top-level await
In javascript anywhere you see await, you've introduced an explicit scheduling point. There are cases where even in a single threaded env you want to "wait" until some other async process is complete. To use one of the old school examples:

    function transfer(amount, acct1, acct2) {
        var current_balance = await acc1.balance()
        if current_balance > amount {
            await acct1.sub(amount)
            await acct2.add(amount)
        }
    }
Now what happens if you get multiple calls to transfer? What you want is probably something like:

    function transfer(amount, acct1, acct2) {
         await acct1.Lock()
         ....
         await acct1.UnLock()
    }
shanemhansen··on The Cult of Kubernetes
The best way I can desct K8s is language agnostic J2EE.
shanemhansen··on Google’s GDPR Workaround
Is there any meaningful difference between what google knows about your modules and what npm knows about js modules? Or what a Debian mirror operator knows about your packages?

I get that Google changed the way go packages work, but I don't understand the difference between that and literally every package manager in existence.

shanemhansen··on Windows X86-64 System Call Table
Because developers aren't supposed to to use them. The documented interface is ntdll or whatever.
shanemhansen··on Rabbit Holes: The Secret to Technical Expertise
This aligns precisely with a memorable interview I gave to a PhD student who wanted to do an internship at a startup.

"The thing I love about Haskell is that even the simplest things become research projects"

However I understand where you are coming from. There's something to be said for environments that encourage learning.

shanemhansen··on Show HN: Bild – A collection of parallel image processing algorithms in Go
I can give you a real answer. If you use go's image and color interfaces then boxing can stress the allocator if you process pixel by pixel.

But assuming you represent and process your image as a packed slice of rgba or something, the gc wont be in your way at all.

Source: led team that built production go image resizing and conversion services at walmartlabs.

shanemhansen··on When Mesmerism Came to America
As someone who used meditation to reduce opioid usage post surgery, I agree.

If the effect is all in my head but it works, then who cares if it's all in my head?

shanemhansen··on ZFS on Linux still has annoying issues with ARC size
What about http2?
shanemhansen··on Declined Proposal: A built-in Go error check function, “try”
Do I like verbose errors? No. Do I like explicit errors? Yes. This is why generics and a Result<T> type will be nice because we will be able to factor out that explicit error handling.
shanemhansen··on Your nines are not my nines
I think the fundamental problem, in engineering terms, is that most cloud deployments effectively wire together cloud components serially.

Your LB may have some nines, your individual vms (or set of vms in a region) may have some nines, your data store may have some nines, but if all of them aren't working together it's unlikely your business will be up.

This is inherently customer-dependent and yet it's super predictable (nobody only uses a lb).

shanemhansen··on JEP 357: Migrate the JDK from Mercurial to Git
This seems like a disruptive way to save 1GB of space. It's not like we're talking about an upgrade from RC or something, mercurial is a perfectly serviceable DVCS used by everyone from facebook to google.
shanemhansen··on Ask HN: Why do companies interview using Google Docs as a coding environment?
Worse is better. It's an easy place to do collaborative editing. For google specifically, I think they leverage some google docs automation for capturing artifacts for hiring committee in their interview workflow.
← PreviousPage 5 of 19Next →