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 I bought 1000 meters of wire to settle a physics debate [video]
I don't think this is possible. If it were true, then you could add a transistor and an LED on the other side of the 1000M wire, and light up the LED instantly as soon as you press the switch. (Transistors and LEDs only take a few nanoseconds to turn on.) It's not possible to send any kind of signal or information faster than the speed of light.
nathan_f77··on I bought 1000 meters of wire to settle a physics debate [video]
I don't think it's possible to detect a 200uA current across the resistor immediately after the switch is turned on. If I understand it correctly, then this would mean that information is being sent faster than the speed of light. Surely this small instant current must be caused by some kind of capacitance or interference.
nathan_f77··on HashiCorp – S1
Awesome, I'm excited for this. Does anyone know of any services where I could add HashiCorp to a watchlist and get an email notification before/after their IPO? (I'm sure I'll see it on HN or other sites but I want to make sure I don't miss it.)
nathan_f77··on HashiCorp – S1
You could probably get an account with Interactive Brokers. Here's their list of available countries: https://www.interactivebrokers.com/en/index.php?f=7021

In New Zealand we also have https://www.hatchinvest.nz and https://www.sharesies.nz. You might have some similar services in your country.

nathan_f77··on Ask HN: Best way to host a website for 500 years?
How expensive do you think this would be? It would be fun to estimate the potential costs over 500 years.

I would never run this kind of website on free hosting (e.g. GitHub pages.) I think it's dangerous to assume that this business model will continue to exist for the next 500 years. It would be much safer to pay the ~$0.02/mo to store and serve your files from an AWS S3 bucket. A $5/mo DigitalOcean VPS would be safer, but probably overkill. I really like the idea of paying $0.24 per year to cover the exact costs of electricity, storage, servers, and bandwidth. These costs might continue to decrease over time, but they can never be 0 (e.g. Landauer's principle [1].)

I don't know how to estimate the cost of a domain name over the next 500 years. It's definitely not going to stay $10 / year forever. Maybe registrars will start charging higher prices or taxes based on the market value of your domain. Or some company will really want to take over your domain. Like Nissan [2] for example.

Ethereum name service (ENS) [3] could be interesting. Pricing [4]:

* 5+ character .eth names: $5 in ETH per year * 4 character .eth names: $160 in ETH per year * 3 character .eth names $640 in ETH per year

The world seems to have decided that names are worth roughly $10/year, for a single planet with a population of 7.9 billion humans. We'll probably be a multi-planet species at some point during the next 500 years. It's hard to imagine what the universe will look like 5,000 or 50,000 years from now. Imagine there's trillions of sentient beings living throughout the universe, and a "universal internet" (even if information still takes many years to propagate throughout the universe.) Maybe names will become far more expensive.

I think the safest option would be to choose a random string of letters and numbers: 2g39pz6jygjd.com + 2g39pz6jygjd.eth. It would still point to a page that includes your name and all of your content, so you'd still be indexed by search engines. And it's very unlikely that someone will start a company called "2g39pz6jygjd" and try to file a trademark.

This kind of random name would probably continue to be worth around $10/year, or perhaps up to $100 / year. It might continue to cost around $0.20 per year to host your static website on AWS S3 (or similar). Bandwidth would be interesting to think about.

Let's say you're trying to keep a blog running forever. Probably a good idea to keep it very simple and use a very basic CSS them, so each page could be around 20 kb. Serving your page to 50,000 visitors would require 1 GB of bandwidth. But let's prepare for a worst case scenario: Everyone on earth visits your website once a day for a month.

7,900,000,000 * 29.53 days (average number of days in a month) * 20 kB = 57709.5 TB. (That's actually way more than I expected! I find it really hard to understand just how many people there are in the world.)

I used this AWS calculator [6]:

* 0.25 GB monthly storage

* 7,900,000,000 * 29.53 days = 233,287,000,000 requests (let's say we serve a single HTML page that includes inline CSS.)

* 57709.5 TB transfered

S3 Standard cost (monthly): $134,680.98 USD. Or $1,616,171.76 per year.

That was just an exercise to figure out the maximum possible cost of hosting a simple web page. It was a fun tangent but we can ignore all of that.

Let's just say it could cost up to $100 per year. Assuming an extremely safe withdrawal rate of 0.5%, you'll need to ask your trust to invest $20,000 (100 / 0.005) in a mix of ETFs, bonds, cryptocurrencies, gold, etc. That should guarantee that you can continue paying for web hosting through the next 1,000 recessions, nuclear wars, ice ages, etc.

[1] https://www.wikiwand.com/en/Landauer%27s_principle

[2] https://nissan.com

[3] https://ens.domains

[4] https://docs.ens.domains/frequently-asked-questions

[5] https://aws.amazon.com/s3/pricing

[6] https://calculator.aws/#/createCalculator/S3

nathan_f77··on E-Ink Magic Calendar that runs off a battery powered Raspberry Pi
This is awesome! I'd love to build one. But I would probably like to have it plugged in, so I could update it more regularly with Spotify and some info from Home Assistant. The only problem is that I can't find Raspberry Pi Zeros anywhere. I tried ordering one yesterday to make a little Spotify Now Playing screen, and they're out of stock everywhere I looked.
nathan_f77··on Mosquitto: An open-source MQTT broker
I started with ZHA but had problems with some devices (e.g. a 4-way switch panel that would only show as a single button.) I've had a much better experience with zigbee2mqtt, and it seems a bit more powerful
nathan_f77··on Mosquitto: An open-source MQTT broker
I've learned a lot about MQTT while setting up Home Assistant, and Mosquitto is a pretty important part of my Home Assistant installation. I use it to control all of my Zigbee devices via "zigbee2mqtt" (buttons, switch modules, etc.), and also a smart kettle running Tasmota [1]. I also added a little patch to Tasmota [2] so that my kettle responds with `418 I'm a teapot` [3]

[1] https://tasmota.github.io/docs

[2] https://github.com/ndbroadbent/Tasmota/commit/bbcf57faffbf5b...

[3] https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/418

nathan_f77··on A VGA monitor may be easier to repair than you think
I'm working on a project where I may need to open and repair an old device that probably contains some high-voltage capacitors. Would it be relatively safe to do this if I was wearing rubber gloves + shoes, and used a multimeter to check for voltages, and a large resistor to discharge any capacitors? What kind of bleed resistor is typically used, e.g. for old TVs?
nathan_f77··on RIP Flynn.io
Yes, I'm a huge fan of Convox [1]. One thing that don't make very clear is that the paid "Convox Pro" hosted console is optional, and convox/rack [2] is completely free and open source. You can set everything up with a single command, and then interact with your rack and app directly through the CLI. I really like how simple and opinionated it is, even though their new v3 version uses Kubernetes behind the scenes.

[1] https://convox.com

[2] https://github.com/convox/rack

nathan_f77··on Why do they still make car alarms? (2015)
Thanks for your comment! I just bought an old 2001 VW Beetle that was imported from Europe, and I thought there might be something wrong with it because it didn't make any sound when I used the remote. Nice to know that this is by design.
nathan_f77··on Show HN: Show last Git push on an e-paper device
I've been using a first-generation iPad a digital photo frame. I use the LiveFrame [1] app, which still supports very old versions of iOS (9.5).

The iPad had just been sitting in my closet for a few years, since I couldn't update it to the latest version of iOS, and most apps stopped supporting it. I was about to throw it away before I had one last attempt at doing something useful with it. I'm really glad I found the LiveFrame app and was able to get it working.

It also has a web browser that can display almost any webpage (although it would probably struggle with the latest CSS features.) So you could show a dashboard web page to display some information.

I would recommend looking on eBay to see if there are any cheap iPads or Android tablets.

[1] https://apps.apple.com/us/app/liveframe/id860372559

nathan_f77··on My Beef with RuboCop
Ah yes, that's right. I actually turn off all of the cyclomatic complexity rules or set very high limits because I find those to be really annoying. So I mainly use RuboCop as a code formatter, plus some minor linting and style rules that aren't too obtrusive. I actually disagree with the parent article, and I've grown to really appreciate guard clauses. I find them much easier to read now.

VS Code will still highlight those cyclomatic complexity errors in the editor, so at least you will be able to fix them (or turn them off) without needing to wait for a CI build to finish.

nathan_f77··on My Beef with RuboCop
Yes, RuboCop would be awful if you're only running it as part of the CI build.

I've been using RuboCop very heavily for the last few years. I've found it very useful as a solo developer, but it also makes it much easier to work with other developers since we never have to waste time talking about style issues.

Here's all the ways I've integrated RuboCop and made it an amazing experience:

I use VS Code with the ruby-rubocop extension, and I've enabled the "Format On Save" option. (This uses Prettier for most other file formats.) This would be unbearably slow with vanilla RuboCop, but I get a huge speed boost with rubocop-daemon. (Especially with the bash wrapper script that I wrote [2].) So now every time I save a Ruby file, the file is auto-formatted instantly to correct any warnings. In case it can't automatically fix a warning, I'll still the warning right in my editor, so I can immediately fix it before moving on.

The second step is a git hook script in `.git/hooks/commit-msg`. I set this up to run RuboCop for Ruby, plus prettier and eslint for JavaScript. If RuboCop fails with a warning, the script retries with `rubocop -A` to automatically correct any errors. Then I run `git diff` to make sure everything looks good before committing the changes.

The final step is to run `rubocop` as part of my CI build, to make sure I didn't miss any warnings (or for any developers who haven't set this up on their machines.) This almost always passes, because the previous two steps usually catch everything first.

I disagree with a lot of the default cops, so I just disable lots of them. But I'm pretty happy with my current setup and RuboCop configuration.

I totally agree that linters would be awful when you have a very slow feedback loop, and you have to wait anywhere from 10 - 60 minutes before you get a notification for a failed build. But they can be really pleasant experience when the feedback loops are under 100ms and most of the warnings are automatically fixed for you. I now lean on it really heavily, and I've even started to take some shortcuts and save keystrokes, because I know how the auto-formatter will tidy up the code.

[1] https://github.com/fohte/rubocop-daemon

[2] https://github.com/fohte/rubocop-daemon#more-speed

nathan_f77··on Apple Silicon M1 chip in MacBook Air outperforms high-end 16-inch MacBook Pro
This is amazing! My wife just got a new MacBook Air delivered a few days. The courier is coming to pick it up tomorrow morning and we'll be getting a full refund, and looking forward to ordering the M1 version.
nathan_f77··on I am seriously considering going back to desktop computers
I'm using a MacBook Pro with an external monitor, so I thought I would share my response. I'm pretty happy with my home office [1].

> 1. I like big, big monitors.

I've realized that I find it uncomfortable to use more than one screen, so I just use one 27″ 4K screen. But occasionally I open my laptop and put it on a stand to show some extra windows.

> 2. I prefer a full size keyboard.

My favorite keyboard is the older version of the Apple Wireless Keyboard powered by AA batteries. It feels really nice to type on it (maybe because I'm used to it.) I recently bought a brand new Apple keyboard because I thought it would be better (and I could recharge it over USB), but it's much worse.

> 3. I prefer a separate mouse.

I use an Apple trackpad, and I love it. I only go back to a mouse if I'm playing a game.

> 4. I prefer big freaking disk drives installed.

I have a 2 TB SSD, which is more than enough for me.

> 5. I put the desktop under my desk, and with a wireless keyboard and wireless mouse, there is much less of a snarl on my desk.

I like to put my laptop on the desk, and I only plug in a single Thunderbolt 3 cable for charging, gigabit ethernet, and my monitor. I really love my CalDigit TS3 Plus dock [2].

It's really nice that I can unplug a single cable and take my laptop to any cafe or co-working space. (Before/after the pandemic.)

> 6. The desktop has an optical drive I still use.

I haven't used an optical drive for about 5 years, and I don't own any optical disks.

> 7. The desktop has lots of USB ports and they're all in use.

My dock has a lot of USB-A and USB-C ports, and it's in a very convenient location.

> 8. I can replace/alter parts of the machine without buying a new one.

That's a great point, and it's one of the major downsides of using an Apple laptop. I do have AppleCare, and Apple's support is really amazing.

> 9. Desktops are cheap.

That's very true! But I was using a 2012 MacBook for 8 years before I upgraded it, and I think I'll probably continue using my current laptop for another 8-10 years. It's expensive, but it's a very high quality machine and I think it will last for a very long time.

> 10. I can build what I want with parts from newegg. Premade powerful computers are always "gaming machines" and I don't want a gaming machine that comes with a graphics adapter that sounds like a 747 taking off.

I certainly can't do that for any kind of laptop (either Apple or other brands.)

> 11. I want an all-metal case because a machine caught fire once.

Nothing to worry about there

> Edit: 12. My desktop doesn't have a microphone or camera, so they cannot be surreptitiously turned on remotely.

MacBooks have a hardware light that turns on when the camera is active, and I haven't heard any reports about hackers being able to disable it. Although one disadvantage with the newest MacBook is that you can't attach a sliding camera cover anymore, because it will crack the screen when you close it.

The microphone can be surreptitiously turned on, but it's not something I'm too worried about.

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

[2] https://www.caldigit.com/ts3-plus/

nathan_f77··on A one-line change decreased our build times by 99%
Thanks so much for this tip! I just made this change and some of my tests are now much faster. Here's the result for one of the affected tests (averaged across 5 runs):

Before: 1.39 seconds

After: 0.62 seconds

I have this default line in config/initializers/devise.rb:

    config.stretches = Rails.env.test? ? 1 : 11
So hashing user passwords was already very fast. But I'm also manually calling BCrypt in some other places, so these calls are now much faster as well.
nathan_f77··on A one-line change decreased our build times by 99%
Is there any way to do this for GitLab CI [1]? I'm using GIT_DEPTH=1, but I'm not sure how to set refspecs. It's not too important right now since it only takes about 11 seconds to clone the git repo, but maybe it's a quick win as well.

[1] https://docs.gitlab.com/ee/ci/large_repositories/

nathan_f77··on The Rome Toolchain: A linter, compiler, bundler, and more
Thanks for your comment, and I'm glad to see that you are excited about it! I personally won't be an early adopter and I don't want to do any of the work, but it would be great if lots of people get on board. I'm personally really happy with the current state of JS tooling, and I think node_modules are generally great and work fine. So I'm not too convinced about Rome or deno.

I'm personally looking forward to building a new toy project with Svelte, Sapper, Tailwind CSS, and Snowpack (with TypeScript, Node.JS, and NPM.) This still feels like the future to me.

nathan_f77··on Pandoc – A universal document converter
I would like to start using Pandoc in my commercial software [1] to help convert documents into different formats, but the GPL license makes that difficult (or at least confusing.) I think it's generally fine to call a GPL program from a SaaS application. I believe it's fine as long as it is providing an optional or tangential feature, and your application can continue to perform the core functions when that GPL tool is not present. AGPL licenses go a step further and prevent access to any AGPL commands over the network, so that's when a commercial license is always required.

Am I allowed to distribute GPL programs contained inside a Docker image for on-premise installations? Do I just need to provide proper credit and a link to the source code?

Or is there a commercial license available for Pandoc? (I couldn't find anything.)

[1] https://docspring.com

UPDATE: I've decided to evaluate pandoc and see if it might be useful for supporting Markdown and Word formats, etc. If it is, then I'll reach out to John McFarlane and ask about a commercial license (or just something in writing), perhaps in exchange for sponsorship on GitHub.

nathan_f77··on The Rome Toolchain: A linter, compiler, bundler, and more
Is anyone taking Deno seriously? I try to follow the latest trends in front-end development, and I haven't heard anything about Deno for a while. It didn't sound very attractive when I read about it, and I'm not excited about switching. I'll begrudgingly start using it if the community decides that it's better. Their dependency management idea also seems pretty bad to me, and it would be difficult to maintain. NPM + Snowpack [1] feels like a much better system.

I think Node.js is probably going to stay the winner for now, but that might just be me.

[1] https://www.snowpack.dev

nathan_f77··on Ask HN: How are Digital Nomads coping with travel restrictions?
I've been living in Malaysia since the 12th of March. My wife is studying here, so she has a 1 year student visa. I'm on a 90 day tourist visa, and the Malaysian government has kindly extended this until the 31st of December due to lockdowns and border closures. (It might be more accurate to say that there will be no penalties for overstaying.) I'm also working on an entrepreneurship visa that will hopefully allow me to stay in Malaysia a bit longer.

We're thinking about a trip to my home country of New Zealand, but it's a big decision. Our quality of life is very good in Malaysia, even though we spend most of our time in an apartment, and even though there's recently been a spike in coronavirus cases. It's nice to go back to New Zealand for a visit and a short holiday, but I don't really want to get stuck there until the end of 2021 (or even the middle of 2021.)

nathan_f77··on How we built a $1M ARR SaaS startup
Yes, I'm also feeling the same mix of inspiration and depression. Especially since I did actually take some funding (from Earnest Capital), I launched around the same time as them, and I'm still nowhere close to $1M ARR.

The Canny founders are absolutely phenomenal startup founders, with a world-class background in product design and engineering background. They executed extremely well, chose an excellent target market, built an incredible product, and marketed it extremely well by sharing their story and progress.

This is like comparing yourself to a star basketball player in the NBA. (Especially considering that the founders came from careers at Facebook.) Meanwhile, most of us are just regular software engineers who are trying to make things work as a solo founder. I don't have a strong background in design and UX, and I've made a lot of mistakes. I'm still proud of my achievements and I think I'm building a great company at a sustainable pace, but it can still be a bit depressing when you see people executing perfectly and growing at an incredible rate.

"Marathons" are an over-used metaphor, but it's a good metaphor. You're almost certainly not going to finish first, even if you're a world-class athlete. But even if you finish last, I think that's still something to be proud of. (Where "finish" could mean achieving profitability, or having an exit.)

nathan_f77··on It was more efficient to blow up a real 747 than to use miniatures or CGI
Oh yeah! I remember seeing that on The World's Most Extraordinary Homes. You can watch that episode here: https://www.netflix.com/watch/80213105?trackId=200257859
nathan_f77··on It was more efficient to blow up a real 747 than to use miniatures or CGI
Haha yes, I just watched 3 videos on YouTube, and so far they have been all been single men. My wife says she's interested though, as long as it's a comfortable place to live and looks decent. (Some of the ones I found on YouTube sort of looked like someone was squatting in an abandoned plane.)

One of the people also talked about turning a second one into an AirBnb, so I think that's a great idea. It would be a very unique place to stay, so I think it would be fully booked if you're in a decent location.

nathan_f77··on It was more efficient to blow up a real 747 than to use miniatures or CGI
Wow, I would have never guessed that! That makes me think that it might be fun to buy a piece of land and live inside an old 747. I found this video where someone is living inside a Boeing 727: https://www.youtube.com/watch?v=iat-WgSvGME

Here's another person living in a 727: https://www.youtube.com/watch/?v=rKm5oF2p-II

This one has a much nicer interior: https://www.youtube.com/watch?v=bdwLlI9abgU

According to one of the comments on the first video, they spent 120k on the plane, and another 100k to move it to the forest. I would probably want to spend another ~300k for renovations and everything else (proper foundation, shower, kitchen, water and sewer lines, etc. etc.)

It's not cheap, but that's a lot cheaper than I was expecting. Especially compared to the average house in an expensive city. I think it might also be a lot more fun than living in a "tiny house".

I recently read this "Why We Don't Like Our Underground House" article that was posted on HN: https://dengarden.com/misc/The-Pitfalls-of-an-Underground-Ho... That was a reminder that doing something unconventional can be risky and cause lots of unexpected problems. So it would probably be a good idea to also spend a lot of money on architects and engineers to make sure that everything is done properly and there's no surprises.

nathan_f77··on Ask HN: Where do you draw the line between a co-founder and early employee?
I think co-founders should have at least 10% equity, but you might give up to 5-10% to a first employee (depending on a lot of factors.) I guess the line could be somewhere around 10%. I would say that equity is the most important thing to get right, but titles are also very important and can change a lot of the interpersonal dynamics in a startup.

[1] https://www.cnet.com/news/tesla-motors-founders-now-there-ar...

nathan_f77··on Faze4: Open-source 3D Printed 6-Axis Robotic Arm
I was really impressed by this project, and I really love the design! I think it looks really professional.

Original post on Reddit: https://www.reddit.com/r/3Dprinting/comments/i1apwl/3d_print...

Demo video: https://www.youtube.com/watch?v=ye37Mpj5qCQ

I've always wanted to explore robotics and 3D printing, so now I'm planning to order a Prusa i3 MK3S and build one of these.

---

The Niryo One is another open source robotic arm: https://github.com/NiryoRobotics/niryo_one

You can buy a kit or assembled arm, or 3D print all the plastic parts yourself.

nathan_f77··on Tampa teen accused of being ‘mastermind’ behind Twitter hack
I hope they will provide some more details about how they got caught. If this person can hack Twitter and they know about Bitcoin, then I'd be very surprised if they didn't take some basic steps to hide their tracks. E.g. Tor, VPN, cafe wifi, etc. I heard that some social engineering was involved, so maybe they called someone and their phone number was traced.

I would be interested to know if they forgot about one small detail. I think the FBI / NSA probably has full visibility into the Tor network and can easily deanonymise any users. Or it could be like the Harvard bomb hoax in 2013 [1]. (They used Tor, but they were also the only person using Tor at the time.)

[1] https://www.theverge.com/2013/12/18/5224130/fbi-agents-track...

nathan_f77··on Ask HN: What's the worst piece of software you use everyday?
The main reason I use Dropbox is to just have a cloud backup of all my files so I don't lose anything. It doesn't look like Syncthing serves the same purpose, and syncing files to AWS S3 is also a lot more expensive than Dropbox. (2TB costs $46.99 on AWS S3, vs $11.99/mo for Dropbox.)
← PreviousPage 4 of 34Next →