HNHacker News
TopNewBestAskShowJobs

nathan_f77

3,063 karma · joined October 11, 2010

Founder of DocSpring: fill PDF forms, generate PDFs and Word documents, and collect e-signatures with one API. https://docspring.com

Blog: https://madebynathan.com

Email: hn@ndbroadbent.com

submissionscomments
nathan_f77··on Show HN: I made an app that uses AI to change your interior
I'm building a PDF generation service (DocSpring), so it's probably time to look into using AI to detect fields on uploaded PDFs so that it's easy to create PDF templates. That's been in my backlog for years. It was probably easy to build this many years ago, but maybe it's even easier now with the latest AI libraries and services.

I should really start to get familiar with AI and learn how to use things like PyTorch. I'm a bit nervous though, because it feels very different to all the programming that I've been doing for over a decade. I'm using to building CRUD web apps and mobile apps, writing SQL queries, setting up servers on AWS, etc. I'm not very good at math and I don't really understand how neural networks work or which kind of algorithm I should choose, so it feels like learning a whole set of new skills from scratch. But I can probably figure out how to use some off-the-shelf libraries and frameworks and string something together. Maybe this will be my next weekend project.

nathan_f77··on Show HN: I made an app that uses AI to change your interior
That's a really cool idea. Maybe it's possible to use this tool to build a two-step process:

1. Remove all furniture from the room. 2. Add furniture to the empty room.

It sounds like img2img might make it possible to preserve the existing floorplan so that it doesn't change any walls or doors.

I don't have a good enough GPU to play around with this stuff (2019 Macbook Pro), but I should probably spin up an instance on AWS or find an API I can use. This new generation of AI tools is really exciting.

nathan_f77··on Show HN: I made an app that uses AI to change your interior
This is really cool! My #1 feature request would be to try to preserve the floorplan and not change any of the walls, windows, or doors. That sounds like a very difficult challenge though. I've seen some new AI tools recently that can render 3d objects. It would also be awesome if I could upload a 2D floorplan to get some ideas from a top-down view.

I actually tried this myself with DALLE-2 recently, but it had very poor results. I'm atrocious at interior design and constantly make mistakes and bad choices, so I regularly look at subreddits like /r/designmyroom and /r/malelivingspace. I'm looking forward to seeing some good tools in this space. I can imagine a polished product that is actually of the room layout. Imagine if it could even scrape second-hand furniture photos from ebay and TradeMe (in New Zealand) and automatically figure out the size and generate 3D models that you could place in your room (e.g. using SweetHome3D.) That would be extremely useful.

nathan_f77··on Soldering Wires – Here's a different way
I actually did set up a smart plug for my soldering iron in Home Assistant [1]. I set it up with a timer and presence detection (using my phone and watch) so that I don't leave it on by accident.

After reading this thread, it sounds like I need to get myself a better soldering iron and install IronOS

[1] https://imgur.com/a/asZbVP7

nathan_f77··on Dear Chess World
So now they just need to set up a match that takes place in a Faraday cage, and check each player using a full-body scanner. I'd watch that!
nathan_f77··on Outdated vs. Complete: In defense of apps that don’t need updates
I've been thinking about this topic for a while. If I ever build any kind of language or framework, I would prioritize backwards compatibility and make sure I don't waste anyone's time with unnecessary changes or deprecations.

I've also had to archive a few of my mobile apps and remove them from the App Store because it just wasn't feasible to get them running again.

I've adopted this practice with my SaaS startup (docspring.com) out of necessity, since I never want to change anything that might break a customer's templates or API integration. I also never remove or rename any database columns. It's been totally fine! I have a handful of feature flags sprinkled through the code, and a solid test suite that makes sure I keep supporting legacy behaviours. It has never bothered me. I don't understand companies or maintainers who are constantly changing things and breaking stuff.

I had a look at a Ember.js project recently and wanted to update everything to the latest version. I couldn't believe how many dependencies were broken, and how painful it was to even migrate to the next minor Ember version. Why??!?! What are all these extremely important changes people are making? The same goes for Rails, React, and every popular library. It's just a treadmill of things constantly breaking for no good reason.

But if you ignore upgrades for a while and fall behind, then suddenly a security vulnerability is announced and you've gotta spend the next 1-2 weeks upgrading libraries just so you can fix the vulnerability.

I had the idea to start a "upgrades as a service" development agency. We would monitor all your Dependabot PRs and fix any broken CI builds, and make sure you stay up to date. I wanted to build an automated code-mod tool that would know how to upgrade libraries between versions. Especially for simple things like a method or class being renamed.

I'd really love to be a customer of that service if it already exists. I waste so much time on this when I should be building new features and fixing bugs.

Maybe GitHub Copilot will be able to handle it one day.

nathan_f77··on Ask HN: What interesting problems are you working on?
Thanks for sharing, I've signed up for the waitlist. I never knew there was a name for this concept, but I realized that I've been doing this for a long time. I've set up some pair programming sessions just so I could get the motivation to work through a boring or difficult task. I'm a solo founder who works from home, so it would be good to spend some more time with people as well (even if it's online.) I'm not sure if I'm ready to go back to a coworking space though. Maybe after I get my next booster shot.

I've also noticed that weekly accountability meetings don't seem to work well for me. I joined a group where we would meet once a week to share our progress and discuss goals for the next week. I realized that this didn't seem to help with procrastination or focus, and I was just feeling additional pressure and guilt when I wasn't able to achieve my goals. Working with (or next to) someone in real time is a very different experience.

nathan_f77··on I figured out how to get GitHub Copilot to run in the terminal
That's funny, right before I opened HN I had just figured out how to get GitHub Copilot running in VS Code on a remote SSH server. I'm really impressed with how easy it is to install the VS Code agent and run extensions on a remote server, it feels very seamless.
nathan_f77··on Purring is a love language no human can speak
We adopted two kittens late last year, and thought it would be nice to let them outside to run around and explore nature. We used to have an indoor cat that lived in apartments his whole life, and I always felt a bit guilty since he wasn't very happy and would always try to get outside.

Our kittens learned to hunt very quickly and would bring animals into the house. Lots of lizards, mice, and birds. We got tired of burying dead animals and vacuuming up feathers. Then one of our cats got into a fight and got bitten. The vets think that the bite must have punctured a vein or artery in their shoulder, which caused a huge hematoma that swelled up their chest. They had severe anemia and almost died from internal bleeding, so they had to give them a blood transfusion. They didn't have any cat blood available, so they used dog blood instead. (Apparently that's quite common!) He's almost fully recovered now, but still has a limp that is slowly getting better. The vet bills ended up being over $6,000. Fortunately we had pet insurance, so we only had to pay $1,300.

So we don't let them outside anymore. We were surprised to see that they don't seem to mind too much. They're not begging to go outside and they still seem perfectly happy. We've put a little bit of grass on an internal balcony, and we might try to build a catio enclosure so they can still have a little area to go outside. Maybe some netting like this: https://catnets.co.nz

EDIT: Cat tax: https://imgur.com/a/umQpcvK

nathan_f77··on How to Start Dictation on macOS with a Microsoft Surface Ergonomic Keyboard
I was using my friend's Microsoft Surface Ergonomic Keyboard when I was staying at their house for a few days. I really liked the keyboard so I bought one for myself. It's been great so far, and my only issue with it is the function key (Fn). Pressing Fn just toggles a light on the key, and it doesn't actually send any keypress event, so I couldn't figure out how to start dictation. It took me quite a while to figure out how to solve this problem, but I had a lot of fun and really enjoyed figuring it out. I thought I write up a detailed answer on StackExchange and post on HN.

I'm really impressed with Karabiner-Elements. They have a documentation site [1] with some really interesting examples for complex rules.

I like the idea of setting up keyboard shortcuts to launch apps [2]. There's also a safeguard for command-q, so you always have to press it twice. (Google Chrome already does this, so you could even set up a condition to ignore the rule if Google Chrome is the active application.)

I'm looking forward to coming up with more ideas for shortcuts and workflows. This is like having bash aliases for your entire operating system.

[1] https://ke-complex-modifications.pqrs.org

[2] https://ke-complex-modifications.pqrs.org/#apps_launch_any_l...

[3] https://ke-complex-modifications.pqrs.org/#command_q

nathan_f77··on I tracked everything I read on the internet for a year
That sounds like an interesting idea. I like the idea of capturing all the text content I view on the internet and building a full-text search index. Would also be fun to play with NLP and machine learning. I run Tailscale on all my devices, so it would still be easy to use it when I'm away from home. I already have a Linux server that I use for Home Assistant, so I could set it up on there.

I'm just not sure how this would work with SSL. I might have to install a self-signed SSL certificate on my devices, but it wouldn't work if a site uses certificate pinning. Is there an easy way around that? Maybe run Chromium with some CLI flags, or use a fork?

nathan_f77··on I tracked everything I read on the internet for a year
I used to use a browser extension that would track every page I visited and index everything. This was a few years ago, and I can't remember what it was called or why I stopped using it. I think I was paying something like $5/mo. I'd like to find something like that again, it was really useful. I think it would be even more powerful with an AI agent that could organize all the information into categories, and answer questions like "What was the article I was reading last week about <x>?"

Is anyone building something like this? (It would be great if I could run something on my own server.)

nathan_f77··on Use TouchID to Authenticate Sudo on macOS
I set this up a few years ago and it's been very handy. I can also use my Apple Watch to authenticate certain things on my Mac, so I should try to set this up for sudo. Maybe my Yubikey as well.

I use external monitors now and leave my MacBook closed in a dock, so it would be nice if I could use an external fingerprint reader that I plug in via USB. I guess the Yubikey is sort of like this, but it's probably not as secure as using a fingerprint.

nathan_f77··on $8600 MRR business on Airtable
I'd be interested in the IPO alerts newsletter he mentioned at the beginning. I was recently thinking about building an IPO prediction website and newsletter, where users could vote on the probability that startups will have an IPO during a given year. (e.g. Q1 2023, Q2, Q3)

It could be interesting to integrate a prediction market like PredictIt [1] (although I heard they got into some trouble recently.) I also started to worry about getting in trouble with the SEC, in case people start to win bets by using insider information.

Anyway, does anyone have any predictions about the next IPO window? E.g. When do you think Stripe might have an IPO?

[1] https://www.predictit.org

nathan_f77··on Requiring MFA on popular gem maintainers
I use the OTP Auth iOS app. I store encrypted backups of my 2FA code secrets in iCloud, and also in Dropbox. I save recovery / backup codes in LastPass (whenever a service provides them.) When possible, I will set up two or more 2FA options. I always have a small Yubikey plugged in to my laptop, and some services allow me to set up a Yubikey as well as OTP codes. I also have a backup Yubikey that I set up for all the services that support it, and keep this off-site in a safe deposit box. I also store some printed copies of critical 2FA code recovery codes, mainly for my Google and Apple accounts.
nathan_f77··on Helium has revenues of $6.5k/month after $365M investment from A16Z
I've had a Linxdot hotspot running in my house for the last few days. Apparently it's earned me 0.08 HNT so far (about $0.70 USD.)

I've been thinking about building an IoT device for my mailbox, so I can get a notification when we get a letter. It could be fun to build something that uses the Helium network. Maybe solar powered, and using a weight sensor or something. (I probably don't need Helium for this but it would be fun to try it out.)

nathan_f77··on Italian watchdog bans use of Google Analytics
I use Ahoy too, but I don't have very good visibility into the data. I should spend more time building queries and creating charts. I should probably set up blazer as well: https://github.com/ankane/blazer It would be really nice if Ahoy came with a web UI that covered all the basics.
nathan_f77··on Italian watchdog bans use of Google Analytics
I'm actually just about to get rid of Google Analytics on DocSpring.com. I set up a self-hosted instance of Plausible Analytics on Render.com yesterday. I really like it so far. I set it up on a custom subdomain so it's not blocked by any ad blockers, so it's really nice to see analytics data that's almost 100% accurate (unless visitors disable JavaScript.) Especially since DocSpring is a developer tool, so most visitors are using an ad blocker extension. Also it doesn't use any cookies, so I don't need to show a cookie banner. It really feels like a breath of fresh air.
nathan_f77··on Pedal Me bans staff riders from wearing helmets for safety reasons
> Do you wear a helmet when you drive inside your car? If not, why not? It might make you much safer in case of a crash, according to your reasoning.

Would it? I've never heard anyone recommend this, but if this did actually reduce the likelihood of a serious head injury in the event of a car crash, then I would seriously consider wearing a helmet while I drive a car. I have no problem wearing one while I ride a bicycle or motorbike.

nathan_f77··on Duck Chess
I just received my copy of Iro today [1], which I backed on Kickstarter. It's similar to checkers and I'm enjoying it so far. I think I might need to try it with a little rubber duck.

[1] https://www.kickstarter.com/projects/khanat/iro

nathan_f77··on Ask HN: Freelancer? Seeking freelancer? (May 2022)
SEEKING FREELANCER | Remote

Hello, DocSpring [1] is looking for a front-end developer who can help us fix a few issues in our React application. This would be a short-term contract to fix some specific issues, so it may take a few weeks, or perhaps a few months. The backend is written with Ruby on Rails, so some Ruby experience could be helpful, but this is not a requirement. You must have great problem-solving skills, and a lot of experience with JavaScript and React. Please send us an email if you are interested: jobs at docspring.com

[1] DocSpring.com

nathan_f77··on The Kia Instrument
I made a short track that only uses sounds from this Kia instrument. Was fun to play around with it. https://soundcloud.com/ndbroadbent/kia-instrument-demo

I might use this again just for the background sounds (rain, forest, etc.)

nathan_f77··on My website is one binary
> hugo, the binary ... (it must not break your website between releases)

I wrote a little blog post about my experience with Hugo - https://madebynathan.com/posts/2021-12-05-how-docker-saved-m...

I struggled with this issue when I realized that it was too much work to update my blog to use the latest version of Hugo. I wasn't able to run the old hugo binary on my new version of MacOS (segfault). And I couldn't even compile the old code from source, because I couldn't get older versions of Go to work. Some of the old Go dependencies had even been renamed or deleted.

Eventually I realized that I could continue using my old version of Hugo forever (0.21) if I run it in a Linux Docker container. The output is still static HTML and CSS, and all the static files are cached and served with a CDN (CloudFlare), so I'm not particularly worried about security updates.

I'm not sure how long this will last though. It would be very nice if new versions of Docker would always provide backwards-compatibility for older Docker images, even in 20-30 years.

nathan_f77··on Apple's whitelist of the 250k auto-completable domains in iOS
I wrote a script: https://github.com/ndbroadbent/autofill_tld_whitelist_url_ag...

This attempts to scan WHOIS records for random domains in the list and try to find the most recent "registered at" date for a domain.

It's very unreliable. The whois-parser Ruby gem thought that giants.it was created on 2020-11-03 09:00:01, but I checked the record and it looks like it was actually created on 2009-09-28 11:00:43.

It looks like nature-in-art.org.uk was first registered on 21-Jul-2019

I don't know if this would provide any useful information. It would take at least a year for a brand new domain to make it into this list. And I don't know if the "created at" date can be trusted, maybe it gets reset whenever a domain is transferred, or lapses and then gets renewed.

In conclusion, I don't think this idea works at all.

nathan_f77··on Apple's whitelist of the 250k auto-completable domains in iOS
I noticed that tiktok.com is missing, so this list might have been compiled sometime before 2019. I wonder if you could write a script that pinpoints the exact month or even day.
nathan_f77··on Ask HN: What book changed your life?
Thanks for the recommendation. I've just used one of my Audible credits on this and will give it a go.
nathan_f77··on My smart home 2021: A Home Assistant love story
I highly recommend buying some Zigbee switch modules [1] and wiring them up behind your regular light switches. They convert any light switch into a smart switch that can be controlled through your Zigbee network. (This can be dangerous, but just make sure you turn off the power first, wear gloves, and learn all about line, neutral, ground. Get a good multimeter and triple check everything.)

[1] https://www.aliexpress.com/item/1005002164359835.html?spm=a2...

nathan_f77··on My smart home 2021: A Home Assistant love story
I had a similar problem with my Zigbee network when I first started, but I was able to dig in and fix all of the issues. I changed the Zigbee channel and moved everything away from my WiFi router. @NathanCu was really helpful [1] on the Home Assistant community forums.

[1] https://community.home-assistant.io/t/zigbee-problems-how-to...

nathan_f77··on My smart home 2021: A Home Assistant love story
I had a very similar setup in my previous apartment. I used a lot of battery-powered Zigbee devices for motion sensors, contact sensors, etc. and attached them using 3M command strips. I also wired up some Zigbee switch modules behind the light switches, so I could control all of the lights in our house. (This was way nicer and cheaper than using Hue bulbs everywhere.) I also had curtain motors, and a SwitchBot Hub to control air conditioners, etc.

Everything was pretty easy to remove and take with me to our next house.

nathan_f77··on Filling in some gaps in the story of Space Cadet Pinball on 64-bit Windows
I've been wondering how I might be able to get a license so that I can make a physical Space Cadet pinball machine. I was thinking about building a single one as a hobby, but it would be a ton of work, so I'd prefer to do it as a business. I would want to make quite a few and sell them or set them up in arcades. I'm sure a lot of people who grew up with Windows XP would see them and put in a few dollars to play it.
← PreviousPage 3 of 34Next →