HNHacker News
TopNewBestAskShowJobs

alexhornbake

79 karma · joined March 13, 2012

submissionscomments
alexhornbake··on The Ribbon Microphone
As you’ve pointed out High SPL isn’t what breaks ribbons, it’s high SPL at low frequencies (ie wind/air moving frequencies, like those produced from a slamming wooden case lid.

Kick drums and bass guitar amps might not be a good match for a ribbon, but speech (with a pop filter) is fine.

Modern mics like those from Royer Labs can handle high SPL (cranked 100w guitar amp).

There are a few reasons why professionals still like ribbons for certain tasks: unlike condensers and dynamics, the resonant frequency of the ribbon is typically very low (20Hz), so you don’t get any peaks or artifacts when the source audio vibrates at the resonant frequency of the mic. Also, if you like the sound of your expensive mic preamplifier, the low output ribbon mics let you add gain/dirt/harmonic distortion which to some is pleasing to the ear.

Love that the op built his own, that’s really awesome.

alexhornbake··on Curl native support for –aws-sigv4 (2023)
^ this.

The AWS v4 signing method is a spec for how to do HMAC request signing. It is not limited to use only with AWS services.

You can use it to sign requests on any service, and there are many implementations. Here is an example of one I’ve used in the past: https://github.com/auroratechnologies/vangoh

Or as mentioned above: https://github.com/minio/minio/blob/master/cmd/signature-v4....

alexhornbake··on Tapping Morse code on a wall
This is article is a pedantic waste of time.

Tapping out SOS is a thing… https://www.smithsonianmag.com/history/the-civilian-worker-w...

alexhornbake··on Cockroachdb/copyist: Mocking an SQL database in Go tests
This is cool, and I applaud the author’s effort. For certain projects this is likely the right way to go.

However, another way to solve this which is safe to use when testing packages in parallel, and let’s you work against your exact database (driver/protocol/version etc)

Each package under test copies the database schema to a new database with the name “{package}_{uuid}”.

TestMain in each package is responsible for: -cleanup of old databases with the same prefix -create a new test database to work against.

Tests within a package are run sequentially, and are responsible for wiping the package’s test DB at the start of each test.

The pattern of “defer cleanup” is avoided in favor of deleting at the start to avoid the edge cases of crashing in the middle of a test run.

alexhornbake··on Shrinking my static site
It depends what you’re optimizing for.

One of the beautiful things about a static site is it’s ability to be served by object stores like S3 as your origin, and cached by a CDN.

From an operations standpoint, you are not responsible for maintaining much of anything, the performance is super fast, highly available, and relatively cheap (no dedicated servers, just paying for bandwidth and storage costs)

Contrast that with a docker container as your origin... it must be running (and that is your problem to ensure it is).

If you’re optimizing for developer convenience, your traffic is low or not mission critical, or maybe you have a globally distributed highly available k8s cluster and that is “the way” your company does all the things... sure why not

alexhornbake··on Curryfinger – Find the Server Behind the CDN
Someone wants to lower their cdn bill, so they serve static things on cdn, and dynamic things from origin.
alexhornbake··on The Thing
Common mistake. Good vibrations did not actually use a theremin. It was a ribbon controller type instrument that was designed to mimic the sound. Theremins are hard. https://en.m.wikipedia.org/wiki/Electro-Theremin
alexhornbake··on Show HN: Red pepper chef – distinguish parts of a red pepper to keep vs. discard
https://youtu.be/hZGqtmwboHU I defer to an expert.
alexhornbake··on A solar-powered, self-hosted version of Low-Tech Magazine
It’s a static site, so perhaps S3 (or any static cloud storage origin) and any CDN are a better comparison. What is the total power consumption of 1/nth of a large pool of cloud resources compared to the power draw of the router they are using in the office that is powered by the grid?

Regardless, I must say I love the “offline is ok”, “slow computing” (ala slow food), “get off my lawn”, “sustainable beats schfnacy” attitude. Nice one!

alexhornbake··on Ask HN: Who is hiring? (October 2017)
Beme (CNN) | Platform Engineer (Golang) | NYC | ONSITE | https://beme.com

Beme is looking for a software engineer to join us in creating the next generation of apps for newshounds. We're building a new, independent, and wildly ambitious technology+media company bringing a wider range of perspectives to the news. We want to change who informs the world, and how. Our team is small and we are in our earliest stages, so your impact will be massive.

You will be developing product features and infrastructure at scale. If building a better, scalable foundation for the future of video and mobile technology is a challenge you want take on, we’d love to hear from you.

This position is based at Beme’s office in Tribeca, NYC.

What you'll do: - Architect application’s backend, creating scalable services, frameworks, and storage solutions using GoLang. - Have a voice in the entire product, but focus on the performant, server-side implementation of features. - Collaborate with the rest of our small, talented team of designers and engineers on a mobile-first application. Specifically Beme’s API and workers written in Golang, and hosted on AWS.

What we're looking for: - Prior experience with Go and AWS is not a prerequisite for a seasoned coder, but mastery of at least one statically typed language (C++, Java, Golang, etc), understanding of back-end scalability, performance, and/or automation is important. - The ability to comfortably straddle the line between back-end dev and dev/ops. - A practical view towards technology selection, striking the right balance between cutting-edge tools and more stable, rock-solid, traditional choices. - Eagerness to learn as well as teach. Our engineering team come from large scale platforms like Livestream, Google Search, and Tumblr; there are many learning opportunities in this role, but we also expect you can show us a new thing or two!

We have all the perks you might expect: catered lunches, unlimited snacks, relaxed time off and work from home policy, subsidized health, vision, and dental care, 401k program, and fun team outings. We also have a homemade arcade. Interested? Get in touch with us at jobs@beme.com.

alexhornbake··on Cloudflare Stream – Combines video encoding, global delivery, and player
The right to be a customer of cloudflare (edit: cloudfront typo) is not really a "free internet" either. Personally, I value the right to not do business with nazis over the right to have hate speech backed by a CDN. No one is stopping you from starting your conservative YouTube on your own servers.
alexhornbake··on Fingerprints are usernames, not passwords (2013)
I think it's a common argument for people who think biometrics are a bad idea for security.

IE. You can change your password, you can't change your thumb/face/biometric (easily).

At best, a fingerprint establishes identity, therefore it has more in common with a username, drivers license, social security number, etc. than it has in common with a password.

alexhornbake··on Toyota Research Institute head says full autonomous driving is “not even close”
This is a migration problem. A network of only self driving cars is effectively a more complex train without tracks. This does not require an AI, just a very reliable and coordinated state machine. A mixed set of AI and human drivers is much more complex. There is a possible future where towns, countries , certain highways, etc adapt to the needs/demands of humans such that the vehicles and rules of the road combined create the desired environment for autonomous vehicles to thrive. Everyone assumes technology will adapt to us, but history shows that humans do just as much if not more adapting (see: suburbs/highways, industrial revolution, tech addiction, tinder, uber, etc). In many cases this is powerful humans leveraging tech to bend the will and change lives of the masses. Not saying this or good or bad. Just saying... Futurists are generally wrong and overly optimistic (and/or just really good marketers).
alexhornbake··on Apollo – An open autonomous driving platform
Ahhh... Found it... The project has it's own Kernel. I stand corrected. This is super cool. https://github.com/ApolloAuto/apollo-kernel
alexhornbake··on Apollo – An open autonomous driving platform
Hmmm, thanks for the additional info. Still seems like a bad idea. Based on your assertion, what happens when the RTOS/microcontroller does not receive a "decision" before the scheduling deadline? Many things can hang a Linux box... the reason why RTOS exists is because nothing can stop the scheduler. I would be very curious to hear from the Apollo developers. What is the intended platform and developer audience? Is this intended to actually run in a vehicle?
alexhornbake··on Apollo – An open autonomous driving platform
Maybe I'm missing something, is this is a platform strictly for developing ML techniques? Or is it intended to actual run in a vehicle... on ubuntu, in a docker container?

I'm no expert, but I would think you'd want a realtime OS for this. Right?

alexhornbake··on Benefits of named return values in Go
Naming the return value in the function signature will both allocate the named variable, as well as make it the default variable to return.

Returning a new unnamed variable for every return will cause all of the unnamed variables to be allocated.

It's interesting, I don't use this feature of the language... my default way to write this would have been:

  func NoNamedReturnParams(i int) (*objectInfo) {
        obj := &objectInfo{}
	if i == 1 {
		// Do one thing
		return obj
	}

	if i == 2 {
		// Do another thing
		return obj
	}

	if i == 3 {
		// Do one more thing still
		return obj
	}

	// Normal return
	return obj
  }
alexhornbake··on Debian 9 Stretch released
I'm running 4.6 kernel "testing" on a MacBook Air 7,2 as my daily driver. It is rock solid. Wifi, Backlight brightness control and FaceTime camera will not work out of the box, however they can be made to work.

Expected to spend a weekend getting it all working. It's not for everyone, but if you want to better understand Linux, running it everyday is a great way to be fully immersed. It's also nice to have a desktop environment (openbox/lxde) that only uses 263MB ram on startup instead of a massive OS full of features I do not need or use. So yea, let's say the machine rarely swaps.

This is by no means exhaustive, but some things that I'm running and work well for me:

How to setup rEFInd for dual boot http://www.rodsbooks.com/refind/

Wifi driver (using non-free Broadcom-sta driver) https://wiki.debian.org/wl

Backlight driver https://github.com/patjak/mba6x_bl

FaceTime driver https://github.com/patjak/bcwc_pcie

Happy hacking!!

alexhornbake··on EpiPen Price Rise Sparks Concern for Allergy Sufferers
Thank you for mentioning adrenaclick. Generics have been completely missing from the public debate. While epipen price gouging is very real, and a problem, there is one short term solution for allergy sufferers: demand an Rx for the generic. They are under $200 (source: checkyourmeds.com). Vote with your wallet!!

Looks like the differences are: extra safety cap and Epipen brand has an auto-retracting needle.

https://m.youtube.com/watch?v=LRgqwgCh4Fs

alexhornbake··on “It's The Future”
One of the big advantages of microservices is scaling/migrating the databases behind each service independently. If you need transactions across multiple services then one could argue that either your API endpoint is doing too much, or your services are doing too little. It's not perfect, and certainly not always convenient, but it's a balance. Microservices with a common DB is asking for trouble. The monolith is a better option in that case IMO.
alexhornbake··on Building fast.com
Not that odd if you are trying to represent a chunk of a file with a single url, which would be desirable if you were serving video manifest/playlist files like m3u8 (HLS) or f4m (HDS). IIRC Netflix is using HDS.

Edit: not sure what format they are using, probably several depending on the client... But one url per chunk makes sense for multiple delivery formats as well.

alexhornbake··on Ask HN: What do you do when your entire being opposes the task at hand?
This advice was given to me by a friend when I was dealing with less than ideal employment situations.

1) Change the way you feel about the situation. Is this a me issue?

2) Change the situation externally. Talk to management, etc.

3) Leave

It sounds like you've tried #1 and #2 to some extent. I was in a similar situation. I left the company, and found a much healthier environment where I can actually use #1 and #2.