< Back to the archive

Like what you see? Subscribe here and get it every week in your inbox!

Issue #268 - April 28, 2024

Here are the top threads of the week, happy reading!

Top comment by silisili

Put them on Apple gear, seriously.

Lifelong Android user, and I know nothing about Apple, but when it came time for them to upgrade from their OG Razr's last year, I was at a crossroads. These people are tech illiterate. I ended up telling them to buy IPhone.

Believe it or not, they mostly figured it all out pretty easily. They still get confused and scared by FB video calls coming in, but otherwise are able to talk, text, use social media, etc. So much so they even bought an iPad.

It seems the reason I like Android - tons of options and customizability, are the exact opposite of what an older user wants from their device.

Top comment by jl6

So, I decided to install Linux on my formerly-Windows-only laptop, and thought it was cool enough to go full time and ditch Windows completely. The downside was the lack of access to top tier games. No problem though, my plan was to take a break from gaming, figuring that by the time Linux had caught up with compatibility, computers would also be much more powerful and I'd be able to resume gaming at some point in the future on better kit, and not have to worry about janky framerates on struggling hardware.

Linux proved interesting enough that I kept finding all sorts of cool new rabbit holes to go down - shell scripting, filesystems, Python, databases. It was side-quests within side-quests! Plus, having kicked my gaming habit, I had plenty of time to explore these.

Anyway, to cut a long story short, that was 23 years ago. I ended up getting a career in tech, relocated, got married, had kids, lived the American Dream... The "life" rabbit hole kind of got in the way of my plans, so I can't wait to finally get back on track and play GTA III on a decent box.

Top comment by jstrieb

Not specific to LLVM or JIT, but if you want a visceral intuition for the basics of ARM assembly, I made a free, online game at work (for mobile and desktop) that may help you:

https://ofrak.com/tetris/

I didn't do much ARM before working on the game, but since playing a lot, I'm very quick at reading disassembly, even for instructions not present in the game. It might help you to do the same – the timed game aspect forces you to learn to read the instructions quickly.

The game is like Tetris, but the blocks are ARM assembly instructions. As instructions fall, you can change the operand registers. Locking instructions into the .text section executes them in a CPU emulator running client-side in the browser, so you can immediately see the effects of every action. Your score is stored in memory at the address pointed to by one of the registers, so even though you earn points for each instruction executed without segfaulting, the true goal is to execute instructions that directly change the memory containing the score value.

When I released it a bit less than a year ago, I posted it to Hacker News as a Show HN:

https://news.ycombinator.com/item?id=37083309

Top comment by geerlingguy

It sure looks like it; every front page post has a dozen or so comments from unique bot accounts.

Hopefully we don't see a 'Show HN: I created a spam bot service to advertise on every HN post' soon.

Top comment by mtts

Once a year I do some tests to see if the wife and I, with only our grocery list shared between us, can switch. And once a year I find out the answer is “no - and it isn’t any better than last year”.

iCloud is extremely slow. Updates in files can take 10 minutes or more to propagate, especially if two or more people have been editing them. If you’re the only one editing a file, on multiple devices, it’s still slow but much less so.

It also tries to be clever about what it syncs and when, with no options (that I’m aware of) to force it to simply fetch local copies of everything. This makes it unusable for files that you want to access in a terminal as the terminal is, for some reason, not part of the clever sync on demand system.

However, if you want to get fancy with sharing stuff with applications on iOS, such as, for example, an Obsidian file directory or some other set of markdown files to view and edit on the go, you’re pretty much forced to do it in iCloud as the Dropbox file provider on iOS is extremely unreliable and prone to locking up, even if you’re the only one editing the files. For this use case you’re pretty much condemned to iCloud.

Top comment by cuuupid

There are a lot of places e.g. Replicate where you can finetune and deploy language models. You’ll need GPUs, but you can simply select a hardware class and pay per second of usage, similar to AWS Lambda or similar serverless infrastructure.

Serverless AI is quickly becoming popular precisely because of the scenario you’re describing — it’s currently still pretty hard to deploy your own GPU stack, not to mention crazy expensive to run eg an A100 24/7, plus orchestration for scale up/down. It’s why so many model authors don’t host their own demos anymore and simply toss it on HuggingFace or Replicate directly.

Serverless providers will basically do the infra for you, as well as make necessary GPU reservations, then charge you a slight premium on the reserved price — so you’d pay less than on-demand on GCP/AWS, while they benefit from economies of scale.

I do imagine at some point soon GPUs will become cheap and more commercially available so you could away with hosting your own VPS in the distant (or near?) future.

Top comment by deivid

I've built a bunch of things:

A snapcast client, which can play audio synchronized on multiple rooms

https://github.com/DavidVentura/esp-snapcast

An stratum-1 NTP _server_ (read: gets its time from GPS), and displays time with unreasonable precision (not necessarily accuracy!)

https://github.com/DavidVentura/esp-ntp

A few HUB75 signs which display public transport status (the public transport bits are not published anywhere yet)

https://github.com/DavidVentura/hub75-esp

An "on-air" sign that turns on/off if my wife or I join a meeting (based on camera/mic usage, for Linux and Mac)

https://github.com/DavidVentura/on-air

A purely decorative sign that looks like a pixelated fire

https://github.com/DavidVentura/matrix-fire

A kindle-controlled bedside lamp (just mqtt, but functionality is priceless - blogpost is unrelated but it's the only video I've got)

https://blog.davidv.dev/building-an-mqtt-client-for-the-kind...

An HDMI switcher (just a GPIO toggle) & a full-house blinds controller (just a relay hooked to the central, manual system)

https://blog.davidv.dev/extending-the-capabilities-of-dumb-d...

Top comment by sph

> What's the secret?

I am not an Outstanding Programmer, but I like the advice on productivity from Jonathan Blow, paraphrased: "you don't need time management or productivity tips. If you want to complete a project, maximise the time you spend sat on your chair, with the editor open." That's all there is to it.

The best way to build a cathedral is one brick at a time. Effort and consistency trumps all. Being a 10x developer has no effect whatsoever on what you can accomplish in work or in life.

Top comment by paulgerhardt

Most of the comments strongly advise against moving to Shenzhen.

Having prototyped in both places I’ll make some arguments for. I’ll preface it’s only worth it if you’re beyond the limits of what American facilities can do and it's a step function in workflow and getting setup. There is an acceptable cultural tunnel vision in our field that developed in the 1980s for "how to do things" and hasn't changed much beyond "4 layer pcb on FR4 with surface mount components" - going against that grain requires an interdisciplinary mindset - as in "make a functioning circuit on a piece of toast" level of creativity[1].

If you’re building wearable tech there’s a strong chance you’ll need to make flex pcbs sooner or later. Those are comically cheap in China and stupid expensive stateside.

Especially when you start pushing the boundaries - there’s so much low hanging fruit for experimenting with your PCBs when you’re in the factory making them. Most US manufacturers will only let you use one color for a solder mask. In Shenzhen we pioneered using full RGB to print any graphic on your pcb back in 2017. Even on top of the chips themselves. It’s now pretty easy to source. This is literally just by being on the factory floor and saying “hey can you do step 5 before you do step 4? - we want to take the boards to this other factory across town first” And they say “sure”. Likewise if you want to mount your parts sideways or upside down to save space. Or say, take a literal sea shell through a copper PVD machine and mill away some traces and mount some chips. They do not care and will gladly take your money and make it happen.

One time we couldn’t find a single vendor in the US or Europe who would embed chips in the middle of pcb layers[2]. This was a weekend project for one of our Chinese vendors - who also had never done this but it sounded like fun so she said “no problem”.

Can get turnaround on prototype boards with assembly for free once you have a cm or just $50 if you don’t. One American vendor comically insisted one couldn’t mix flex and rigid boards for one of our designs for less than $10k. In China it cost me $80. Likewise we mounted chips to non-traditional media like credit cards with no sweat.

Any chip we wanted was available through HQB or TaoBao when Digikey was still backed up on Covid.

Test fixtures (the laser cut jigs that you program and test pcbs) are $100. Stateside they were half as useful and $2000.

You’re one blue Buick minivan ride from Guanzhou where all the garments in the world are made. Being at the intersection of these two cities is a strategic advantage.

Cost of living is cheap.

It will make you a better engineer by exposing you to the dirty business of manufacturing first hand. I'll go so bombastically hyperbolic and say not moving to Shenzhen as an EE is like not moving to Nashville as an aspiring country musician.

In China the saying goes “anything is possible, nothing is easy.” I’d mostly agree with this but also point out that price is completely-orthogonal-to-possible in China, absolutely not in the US, and straight up forbidden in Germany.

[1] https://talk.dallasmakerspace.org/t/breadboard-electronics/1...

[2] https://twitter.com/pmg/status/1248148053795540992/photo/1

p.s. If you enjoyed this comment, you may also enjoy my "So you want to start a factory?" reply on a post from a few days ago [3]

[3] https://news.ycombinator.com/item?id=40001222

Top comment by spit2wind

The thing about Emacs isn't it's key bindings. It's the extensibility and integration of the overall system.

As others say, begin with the built in tutorial. It should be as simple opening Emacs and pressing enter. If for some reason it's not that simple, open Emacs and press Control+h followed by 't'. The tutorial walks you through the basics. The tutorial mentions C-h v. There is also C-h f for functions.

Next, when you're ready, learn Emacs Lisp. You can read An Introduction to Emacs Lisp online or within Emacs (using C-h i eintr).

Otherwise, hack and extend it. The joy of Emacs is that it presents you with programming problems at the threshold of your understanding. You decide whether to dip in. It provides you amazing resources to do it.

I hope you find a speedy recovery to your injury and have fun with Emacs.