HNHacker News
TopNewBestAskShowJobs

dmwilcox

283 karma · joined January 18, 2020

submissionscomments
dmwilcox··on The paper passport's days are numbered
I feel like this was my last week. Welcome to the UK as an American tech worker. You use a custom Android ROM, too bad, you can't setup your visa. Want to book something on Ryan Air too bad, "computer says no" (really I should never do this again for many reasons).

The level of expectation that your phone is a set of handcuffs that you do not own is high. If you own your device and not vice versa, things just don't work in this world. And honestly why would I want a computer that I didn't control anyway?

dmwilcox··on Why are UK electricity bills so expensive?
California is not the Bay Area and LA metro. There are lots of places in California you won't get "California salaries" either.

Having grown up in rural California I have will return the favor I get for confusing the UK with London ;)

dmwilcox··on Frood, an Alpine Initramfs NAS
Love it. Very similar to mine which I embarrassingly have not written about (other than a readme) for the going on 3 years I've been using it daily.

But I think the point of these type of systems (small, immutable, simple) is that they are so simple that aside from introducing people to the concept there isn't much else needed. Anyway, go forth and build, these type of systems are fast, fun, and teach you a lot (even for a grump using Linux for 20 years like me)

dmwilcox··on Converting untrusted PDFs into trusted ones: The Qubes Way (2013)
I haven't used this in a few years since switching off of Qubes but something no one mentioned is that output PDFs are *huge*. They're practically PNGs with a .PDF extension in terms of size.

I love the idea of making PDFs dumber and safer but maybe ePub would fit the bill? I'm just thinking out loud, I would like to do this again, but the Qubes way of spinning up a disposable VM to produce a monster PDF file is unsatisfying. More general Qubes being slow was a big reason I switched off of it

dmwilcox··on Australia proposes ban on social media for those under 16
It seems like we don't need a technical solution for this and making one would be dystopian as you point out.

Why not just (a) make it illegal so the parents and tech companies see it that way and (b) put some fines on the responsible adult parties if violations are found?

Sure enforcement would be spotty and loose, but tickets for parents and fines for tech companies would go a long way to establish the cultural change without the need for "verification"

dmwilcox··on Python PGP proposal poses packaging puzzles
I'm not an openbsd person, though maybe one day!, but why change to complicated failure-prone tech when you could have something simpler and more secure?

https://man.openbsd.org/signify https://github.com/aperezdc/signify

I used to use PGP yubikey for everything but the subkey renewal process was so onerous I switched to PIV keys with age and haven't looked back. Never mind all those legacy ciphers in GPG are just attack vectors that haven't happened yet.

dmwilcox··on Uxn
I love this stuff. Thinking about how our software and its supply chain break down so dramatically given small adversaries like 'intermittent internet access' or 'old crappy machines' has definitely changed the way I think about software as a developer.

I appreciate the care 100r has put into working with their doors open and sharing their lives, circumstances and worldview.

I'm not using Uxn but am I following a bit of a quest to try my hand at personal shaped computing. I didn't really want to write an emulator (I don't have a game-preservation shaped problem) and I like to be able to just "takeover" computers around me with bootable USB sticks. Fittingly, my project is in x86 assembly, real-mode with BIOS routines for IO and as a stand-in for drivers. (Tldr; not amazing but serviceable, and Devine is right that 64kb is a lot)

As a long time python programmer, I've found it fun to play in the land of understanding memory layouts, segmentation, and writing assembler. I highly recommend it for educational purposes. I don't need a hobby project that looks like work in my off time so real-mode programming fits nicely. As a plus I rediscovered MSDOS .COM files and it's shockingly fast and will give you 64kb of memory setup and a filesystem which is handy. Again here I don't have to write an emulator and my little Forth-like project could bootstrap from DOS assemblers and tool chains.

My take away from Uxn project is "go ahead and try to do something fun with a computer". Uxn very much isn't about making the most efficient p-machine or best language, but something that fits 100r. And that more of us with the background in computers ought to try something off the beaten path because we might learn something and we might have fun doing it.

dmwilcox··on GnuCash 5.9
Ran a business with it, payroll, administered the 401k accounts, etc. Solid. Expense tracking good enough for a business with limited expenses, or background as a bookkeeper (my teenage job). But being able to generate balance sheet and profit&loss reports for my accountant, golden.
dmwilcox··on Porting systemd to musl Libc-powered Linux
Networkd is fine if you don't need vlans, bonding, and a bunch of semi-esoteric stuff. /e/n/i does fine there.

Journald is too monolithic IMO. Direct access to the files in a text format is standard Unix stuff. Forcing everyone through the journalctl tool is rough, performance being just one issue. The binary format has a habit of changing too, having written a journald log tailer.

Overall, like I said, systemd is work software for me. It's fine for the complexity in a company (where you have to balance time and business value), but for my own use I wouldn't choose it.

Hence, please don't touch Alpine ;). I was on KISS previously but got tired of compiling my own packages (and Firefox is nigh impossible to compile in a 'ragged' version package system)

dmwilcox··on Porting systemd to musl Libc-powered Linux
it's funny that many people mention boot time as a metric when for most servers, VMs and laptops the devices are either always on or sleeping. startup times do nothing in those cases.

personally I use a custom alpine live-usb that is immutable and I fully shutdown and start-up all the time. openrc doesn't give me any grief, the bulk of my startup time is copying my 500mb rootfs into a tmpfs

systemd for me is solidly "at work" software, and not stuff I'm a big fan of either (journald, networkd and the silly dns resolver all have serious issues). so please, keep away from my alpine or I'll have to fork -again- :)

dmwilcox··on SCIM: Ncurses based, Vim-like spreadsheet
Let me tell you the story of how i came to love and use sc-im instead of my own solution.

Multi-country taxes are too much fun. Every dollar/GBP amount needs to be converted to the other currency for taxes in that country.

I originally did this in libre office but I got annoyed at it and wrote a markdown pipeline to produce PDFs for my accountants.

I would do data entry in CSV and wrote a CSV to markdown converter. Along the way I wrote a simple CSV formula language with just a couple of functions that would do column level operations e.g. =MUL(C, E) to multiply columns C and E.

This worked pretty well, and I could make a small directory of sorted markdown files to assemble, and a Makefile to transform the CSV+formula files to flat CSVs.

But CSV input was kind of annoying and my formula language wasn't easy to extend, or very nice. So I jumped at sc-im which can directly output markdown tables.

Anyway, I highly recommend sc-im, the .sc files are a fine replacement for my custom solution and I haven't looked back (and taxes are coming again soon!)

dmwilcox··on The Architecture Behind a One-Person Tech Startup (2021)
Context: I write mostly write Python for a living and run a Django app as a major responsibility

I always wonder if python, auto scaling, and cloud change the kinds of businesses (and margins) required. Running 60+ pods of gunicorn for an app incurs lots of overhead, especially if one is using small VMs.

I can't count the number of war stories I've heard from SRE friends who joined some company and realized they were taking over a Django stack for the core of a business that was blowing gaskets left and right.

This sort of thing just leaves me wondering if margins have to be high to support a slower language, slower framework, and complicated deployment model to work around the Python GIL.

Call me jaded but I just wonder if it's worth the time to market to do Python these days versus say Go and be able to deploy a static binary and use all your CPU cores simply. K8s is way less tempting for a "one-process-architecture " (minus database and maybe nginx) until the system is much larger (instead a couple of systemd units would sort you)

dmwilcox··on Hidden dependencies in Linux binaries
I'm impatiently waiting for the systemd shell and editor /jk (and to be clear I hope this is a joke but I worry sometimes)
dmwilcox··on How web bloat impacts users with slow devices
I would imagine for phones and laptops the extraction of materials (rare earth metals to make fancy new chips, lithium for batteries,etc) is probably the bigger issue.

Having gotten away from 500+ watt desktops as the standard for light non-gaming computing has been a win in the energy consumption court.

I think there are lots of good reasons to avoid the upgrade cycle but energy consumption of the end device itself probably isn't it. (Embodied energy of the devices, environmental impacts of mining, no good EOL story for ewaste, etc)

dmwilcox··on Quality is a hard sell in big tech
@dang spam alert, sorry not sure how else to flag
dmwilcox··on Lisp Programming with Vim (2019)
I was going to say, in 2023 I looked around and for Clojure at least Conjure seemed like the best option.

https://github.com/Olical/conjure/wiki/Client-features

Unfortunately, in the table linked above the CL support in Conjure is so-so. I'm curious what people use for CL or if it's still slimv/vlime.

I did a write up configuring Conjure with neovim here if that's something that's appealing: http://danielwilcox.uk/computers-log-0/

dmwilcox··on Recording and visualising the 20k system calls it takes to "import seaborn"
I've been writing python for going on 20 years now and while it was a good language to cut my teeth on thus sort of analysis brings only horror. Many thanks to the author for dropping into plain view.

I'm going to go back to learning more C and Forth... And shake my fist at passing clouds :)

dmwilcox··on Damn Small Linux 2024
I've run musk based distro for a couple of years with no trouble (KISS Linux and now some hacked up Alpine monster I put together). I don't do streaming video that requires DRM -- which will be a non-starter due to the widevine/whatever plugins being compiled against glibc.

But yeah, full Wayland desktop (well, sway) and Firefox -- no problem. I occasionally use a debian chroot to pull up gnucash (accounting program) which works as a backup but it's rare. My debian chroot is mostly to run a 10 year old printer driver from Epson that's compiled against glibc, but doing a little trickery with a small C program works just fine with CUPS still running in alpine (print filters operate on stdin and stdout, so you can launch them in a chroot by themselves no problem).

dmwilcox··on Sxmo: Linux tiling window manager for phones
Love it. Everything is tied together with shell scripts which isn't everyone's taste but I appreciate being able to hack up something quickly for a phone UI.

I wrote an alarm clock script (on the pine phone itself during my commute) which I need to publish it (wakes up right before _the alarm_ from deep sleep to sound an alarm).

There's lots of missing functionality (like an alarm clock that sets an RTC wakeup) but overall it is a cool system that I intend on using and hacking on again in the near future

Edit: added missing key words in a sentence :/

dmwilcox··on Computer Engineering for Babies (2021)
I had a niggling feeling they were different (realized after I posted) and I would get some reading. I haven't taken an EE course in a long time and miss it. Thank you!
dmwilcox··on Use Plaintext Email (2019)
Nit: Mblaze is lovely but it is not a TUI. It's a maildir-enabled copy of the "mh" command suite so you can manage and read your email from the command line and use your default editor.

Other than that, yes please plaintext. I don't need a shopping mall in my inbox, get off my lawn ;)

dmwilcox··on Computer Engineering for Babies (2021)
This book taught me that a flip-flop is sometimes called a latch ;). Not just for babies apparently
dmwilcox··on Systemd through the eyes of a musl distribution maintainer
What I heard and I'm not sure how much truth is in it -- but it's fun gossip so enjoy -- is that upstart needed some work done, and Poettering went off for 6 months and came back with a replacement (instead of a fixed upstart). If anyone knows the full/real story of systemd origin I'd be curious
dmwilcox··on The Stroad
Re: expensive. Hard disagree. To put things in technology terms roads don't scale to meet commuters needs. And as others have pointed out it is a unit cost problem with your reasoning (total cost per commute).

At some scale we aggregate processing and trade latency for bandwidth (busy poll versus hardware interrupts). We trade the ability for everyone to start their journey _right now_ for the ability for lots more of us to get to our destination via a common carriage (be this packets or people the pattern is the same).

Where land is cheap and commuter traffic isn't an issue maybe roads make sense but that doesn't mean sprawl is cheap in time-spent.

dmwilcox··on Untyped Python: The Python That Was
I feel obligated to mention that large projects occurred in Python before types (and were not spaghetti). But I cut my teeth in the 2.4 era with google docstrings which obligated the author to put the types in the docstring.

Sorry for another hot take. I definitely have sympathies toward the author's position, we are giving up flexibility which is Python's main strength for what exactly? (Might as well write Go/etc if you want static types)

- the good: as a reader I love not having to go to call site after call site figuring out _what type_ of thing was passed in and how that happened (google docstring projects don't have this problem but open source often does)

- the bad: as a writer the types are complicated and obtuse, and the more fancy first order stuff you do the uglier the types get (and just forget type annotating your unit tests). Also mypy is slow

- the ugly: the sadness of putting in all of the typing and it _not_ but used to improve runtime performance. Commonlisp gets something like a 30x speed improvement for type annotations because native code can be used in place of lisp objects, why can't we have _that_? I would feel much better about Python types if we did that

dmwilcox··on The Stroad
If new neighborhoods had to pay for their own pipes, roads, electrical hookups and couldn't put that on existing tax payers it'd help municipal finances a lot. Sprawl is expensive from an infrastructure perspective. And the spending to benefit a few at the expense of many is not unlike some sweet heart tax deal "bringing in good jobs" at the cost of several million dollars a pop
dmwilcox··on The Stroad
Roads are all fine, I just want them to be gravel or dirt ;). While we're dreaming that is.

I grew up in rural California and dirt roads were quite common not far out of town, it's a different way of driving and one that'll make you wonder why you aren't using a mountain bike, if you aren't hauling a bunch of kids or gear.

This all said I am beyond biased, I escaped the bay area to London at least partially because I don't want driving to be a part of my daily life. But I understand opinions vary and people back home love their cars and TV ;)

dmwilcox··on Luiz André Barroso has died
I loved Luiz, I worked for him in platforms (his datacenter development department). He was truly one of the kindest people I have ever met. I deeply miss our banter around the coffee machine and am saddened the last time is past.

We've lost another great pioneer and human in our tribe. Pour out a beautiful coffee for Luiz

dmwilcox··on The science of road ecology, or how roadways affect plants and animal life
Love it. Except the whole driverless cars fantasy dream though which I would doubt they would help in any fashion.

Unfortunately if we care about our ecosystems, communities divided by roads, and the constant noise and air pollution I think we only have harder solutions to negotiate: Speed limits, suburbs, and supporting useful public transit and bicycle infrastructure (to reduce road speed and the need to build road capacity linearly with rising incomes as the world develops)

dmwilcox··on The Meaning of Liberalism (1938)
I had to keep reminding myself this was written in the 1930s (because of already mentioned confusion around the word "liberal" in the US). But it's a sort of sweet story tracing the liberal ideals of Jefferson and company through to Old Hickery (Jackson) and his rural populism and why the progressive movements can be seen as an outgrowth of that original liberalism. Would read again.
← PreviousPage 2 of 3Next →