HNHacker News
TopNewBestAskShowJobs

davidbanham

1,765 karma · joined May 9, 2011

[ my public key: https://keybase.io/davidbanham; my proof: https://keybase.io/davidbanham/sigs/Nty1Hj7kfVQZzstJlwdXPqhFTlKg4OpOXTqhbrKvNvo ]

https://notbad.software

submissionscomments
davidbanham··on Papers finding that lockdowns had little or no efficacy
That certainly helped, but we had infections cross the border and community transmission. We still have people entering the country through a 14 day hotel quarantine so we're still allowing infected people across the border into the country. The island nation part of it isn't the whole story.

Restricting the rate at which it can spread through the community coupled with active and aggressive contact tracing certainly seems like it played a significant role. I'd be looking cockeyed at any study that chooses not to include the Australian and NZ datasets without a very robust case about why it's necessary.

davidbanham··on Papers finding that lockdowns had little or no efficacy
Interesting that New Zealand and Australia were excluded from the study. Both had hard lockdowns and both eliminated the virus and are largely back to normal life. Makes me suspect the data was cherry picked to fit a desired outcome.
davidbanham··on Ask HN: What is your favorite daily-use object?
My Snow Peak H450 titanium cup. It’s light and well insulated. It feels wonderful to hold and drink out of. I drink water and tea from it all day, every day. It’s entirely unnecessary but sparks a little joy every time I use it.
davidbanham··on Unsettling capital letters
This. This is what the web is for. It harkens back to the web of my childhood before real name policies dampened the wacky fun.
davidbanham··on Don’t we all just want to use SQL on the front end?
CouchDB was a really elegant implementation of this strategy without the SQL bit. Local database in all clients, synced back to a server whenever there’s connectivity.
davidbanham··on Ask HN: Why is the Linux community struggling to implement hibernation?
Both. I suspend my desktop (refurbed ex-corpo ThinkCentre small form factor thing running Arch) but I always go straight to hibernation on my laptops.

With suspend, I hate that nagging feeling that the battery is still running down, even if only slightly, while it's in my bag.

davidbanham··on Ask HN: Why is the Linux community struggling to implement hibernation?
I run Arch Linux on Thinkpads. I’ve never had an issue with hibernation.

If you stick to “common” hardware and a high quality distribution you should be fine.

davidbanham··on Would you prefer working from home after the pandemic?
I’m not trying to make a statement about the relative subjective value of each activity. I’m trying to make the point that in order to build resilience and capacity into your social life it’s important to have a diversity of connections.

If your entire social world would be brought undone by losing a job, that’s a problem.

davidbanham··on Would you prefer working from home after the pandemic?
Yeah but you can do something better than playing table tennis with the people who happen to work for the same company as you.

Take a dance class. Become a volunteer firefighter. Deliver meals to the elderly. Join a choir. Play darts down the pub. Join an ultimate frisbee team.

Lots of people like offices for the social connection. That’s cool, but if you can’t get that social connection outside an office it’s a problem you should do some work on.

davidbanham··on Ask HN: Are you using Go for web development?
Yep. I write code in vim, run tests and orchestrate things with Make and I deploy to Google Cloud Run. I used to use k8s.

I write monoliths and render mostly HTML back to the client. I have a few json endpoints around for m2m APIs or to power search boxes here and there.

The main thing I’m hacking on at the moment is https://clubman.app other things are listed at https://notbad.software

A relatively up to date skeleton of my apps is at https://github.com/davidbanham/doubleboiler

davidbanham··on High IQs are associated with mental and physical disorders
My contention would be that many (not all) people are drawn to Mensa because they have difficulty forming relationships in mainstream society. I’d suggest it’s this trait that correlates with mental and physical disorders.
davidbanham··on Intel NUC as a back end for development
I do this with a Linode machine. My development is done in vim through mosh and the latency surprisingly isn’t an issue.

It’s amazing how many problems just vanish with this setup. Backups are totally automated and a restore is a single click. No fussing with network tunnels for webhooks from Stripe. Downloading dependencies or uploading artefacts is super fast because I’m on a data center connection to the internet. When I’m accessing my dev environment it’s from a browser on my thin client so I never hit those weird CORS differences between localhost and a real domain.

davidbanham··on Building a high-scale chat server on Cloud Run
I use Cloud Run for all my server rendered web apps and I _love_ it. That’s where the pricing model makes sense since as soon as the request is served I stop paying. The actual cash price is less than what I was paying to run on GKE and the total cost of ownership is far lower.

Web sockets are a handy thing to have access to but the app described is a pretty pathological case for the Cloud Run pricing model. I think people knocking the article on pricing alone are missing the point.

davidbanham··on ISO 8601: a better date format
I did try rewriting dates into a user's locale as specified by the browser. The trouble there is that a lot of people seem to have that set to en-US rather than en-AU. So I still got a bunch of people unhappy that the dates were American!
davidbanham··on ISO 8601: a better date format
A note from the front line. I actually use 8601 dates in a date-heavy consumer product ( https://clubman.app ) and it’s hands down the feature I most consistently get user feedback on.

It’s always “Why are the dates all American format? Can you change them to English?” And then I try to patiently explain that they’re actually international format.

People seem to have internalised that any date format they find slightly unfamiliar is “the bad American one”

I’m in the process of cutting everything I can over to “24th Jan 2020” style.

davidbanham··on Intermittent fasting for the prevention of cardiovascular disease
“Skip breakfast and eat an early dinner. Don’t snack.”
davidbanham··on Ask HN: How do solo SaaS founders handle monitoring/PagerDuty?
I put a lot of effort into making sure things don’t explode. I write tests. I think about the failure modes.

I use a simple tech stack. Golang monolith, Postgres database.

I pay a little extra for God managed services that auto-recover. I run my database on Cloud SQL and my web servers on Cloud Run on GCP.

As a last line of defence, I have a remote development environment I can access from my phone. I can make fixes and deploy from there. I also have a Garmin InReach satellite communicator that I can be contacted on if I’m out of phone range.

davidbanham··on Ask HN: What is a product you wish was sold in your country but isnt?
The Gladiator has a bizarrely small payload capacity making it a bit of a white elephant.

The new Bronco looks _nice_. It’s built on the Australian developed Ford Ranger platform. The Ranger is so popular here it’s unseating the Hilux as the top selling vehicle. We don’t get the Bronco locally, though. A lot of people would love one.

The Toyota FJ Cruiser would also fit your bill but it seems like they stopped selling it in the states.

davidbanham··on Wildfire smoke is loaded with microbes
Respiratory protection for bush fire fighters is something we only just started getting serious about in Australia last summer. I started wearing a reusable P3 respirator on the fireground about this time last year and found it made a massive difference to my recovery in the few days after a fire.

From what I understand about the way things are done in the US most people don’t even wear a disposable P2. Hopefully articles like this start generating a conversation both within the fire services and amongst the people they protect.

davidbanham··on New for AWS Lambda – Container Image Support
Cloud Run on GCP is the “run any container” solution that this isn’t. It scales to zero, responds immediately to an incoming http request and can handle up to 50 concurrent requests out of the one invocation for no additional cost.
davidbanham··on Tasmania declares itself 100 per cent powered by renewable electricity
I don’t know any Tasmanians who don’t regularly use a wood burning stove heater in the cooler months.
davidbanham··on Greg LeMond’s New 26 LB. Carbon Fiber Ebike
> Absolute nonsense. The number of pedestrians injured each year by cyclists is tiny, likely zero most years.

No. Here are some statistics from the UK in 2018 because they’re the first Google result. Cycling is wonderful and is a net benefit to communities. Trying to claim there are no injuries caused to pedestrians by cyclists is just silly.

——————

Figures published by the Department for Transport (DfT) show that 531 people were involved in collisions with cyclists in 2017, up by 15 per cent in 12 months. The accident rate was higher than at any time since at least 2013 when the statistics were first published. More than 120 pedestrians were seriously hurt in collisions with bikes last year and three were killed, the figures show.

https://www.thetimes.co.uk/article/calls-for-new-law-as-cycl...

davidbanham··on VSCode memory leak issue marked “out-of-scope”
Years ago I was shipping a language learning app for high school students. It was aggressively cross-platform across iOS, OSX, Android and Windows. We made a big effort to make as much of the code platform-agnostic as we could.

The app had a lot of big video and audio assets split up across various modules. Each language had a bunch of different proficiency levels which each had their own content pack. All the packs together totalled something north of 5 gig so we allowed users to download and install the packs on an as-needed basis.

This fetching code was implemented using the HTML5 FileSystem API (which incidentally was deprecated by W3 halfway through the development cycle, but that's another story). This was great as it allowed us to have this code be completely platform-agnostic!

The only problem was that it had horrendous memory leaks. I was sure we had a bug in our JavaScript code somewhere. We spent A Million Years combing through heap dumps and reviewing our code trying to get to the bottom of it. We tapped contacts at both Adobe and Apple to try and help us figure it out and nobody could.

Until... Until we hit on exactly the correct google-fu to find a a bug report about memory leaks relating to file handles in the WebKit project. We updated our version of Electron and the newer version had a version of WebKit that contained the fix. No matter what strings we pulled, though, we couldn't get Apple to give us any information about what version they shipped on iOS or whether they were likely to incorporate the patch any time soon.

In the end it was moot because the global head office based in the UK got wind of the project and axed it because it might threaten _their_ cross-platform educational content packaging strategy. Which they'd been working on for something like 3 years. Which still hadn't borne any fruit. Nor did it look likely to any time soon. (But that's another story).

Memory leaks can be maddening. The problem is always with your code, it's never in the platform. Except when it isn't and it is.

davidbanham··on The Tech Stack of a One-Man SaaS
I run three different SaaS products by myself, spend a couple of days per week consulting and lead a pretty full life with young kids, volunteer firefighting, hobbies, etc. Each of my products probably equates to around a 1/4-Man SaaS.

They're all server-rendered HTML with a little ajax sprinkled around the place where required for interactivity. I use Materialize CSS to give me a leg-up on the design side but the next thing I release will be on Tailwind UI.

They're all written in Go using a simple MVC-ish pattern. I write a lot of integration tests and a few unit tests.

I use Google's hosted PostgreSQL database. It's not cheap but it's not expensive either and it's been rock solid. The frontends are all on Cloud Run as of a few months ago which has been wonderful. Super reliable and fuss-free. Takes care of all the application logging, etc.

Task queue stuff is handled by a library on top of Postgres. It won't scale to a billion jobs per second or anything but it handles load just fine. If I ever start pushing it's boundaries it's all pluggable so I can switch it back to SQS or PubSub or whatever else.

The task workers run on a single-node k8s cluster hosted on GKE. A lot of people grump about Kubernetes being "overkill" but it doesn't have to be complicated. A single YAML manifest defines your service and your environment variables, you tell GKE to make it happen, you go play in the sunshine. It takes care of restarts, logging, full disks, etc etc etc all for you.

I use Amazon SES for emails. I had some real problems with deliverability until I ponied up for a dedicated IP address and now it's fine.

I use Freshdesk for ticketing. I don't love it at all but I don't yet hate it enough to replace it with something else.

davidbanham··on Laser-Guided Lightning May Help Prevent Wildfires
I assume you're located in the US? I don't know how your system works over there but here in Australia it's a bit of a hybrid. Most of the fire service's funding is taken from the private insurance industry then the rest is taken from governments. [1]

1. https://www.fire.nsw.gov.au/page.php?id=48#funding

davidbanham··on Laser-Guided Lightning May Help Prevent Wildfires
Yes, preventing a wildfire from starting on a 40 degree (celsius) day with no rain forecast for weeks and several others burning simultaneously is a desirable thing.

We try and manage the bushland with hazard reduction burns in the cooler months when weather patterns allow. These reduce the available fuel loads so that an uncontrolled fire in the area will be less intense.

There will always be fire in our landscape. Our job is to manage it as best we can to protect the trees, the wildlife and the homes that have been built near them.

davidbanham··on Mutt 2.0 Release Notes
Mutt and Gmail work fine together. I always find myself opening up the web UI when I need to search, though. I’ve taken a a few steps down the notmuch path a few times but it feels like such a big Thing to have to set up a whole local mail system just for search.
davidbanham··on Go in Production – Lessons Learned
And when intermediate proxies happily retry your small “delete the most recent record” request because it was a GET which is, in the rest of reality, guaranteed not to alter state on the receiving server except in the corner of the internet you’ve defined as your own it’s destructive?
davidbanham··on Go in Production – Lessons Learned
I can’t imagine any way a reverse proxy would generate a 404 or indeed any 4xx error within itself. Any such error would be coming from the upstream application server.

If the API itself was not found that’s one of 502, 503 or 504.

200 responses with an error property is an antipattern precisely because of things like reverse proxies. They have no way to unpack and interpret every developers pet error format. They _do_ understand http status codes and can act accordingly, like retrying requests, not caching responses, etc as appropriate.

davidbanham··on No new locally-acquired coronavirus cases in Australia yesterday
When we say 0 cases we usually mean 0 locally acquired cases. We’re worried about community transmission rather than international travellers.

If someone enters the country they’re quarantined in a hotel room for 14 days. If someone tests positive during that quarantine period we report it, but count it separately.

← PreviousPage 6 of 17Next →