HNHacker News
TopNewBestAskShowJobs

mprovost

3,269 karma · joined May 26, 2007

Self-publishing "Rust From the Ground Up" on Leanpub.

https://rftgu.rs.

Contact me at m@termcap.net.

submissionscomments
mprovost··on Fastest and Minimalist Note Taking App
The OG drill book (Unix Power Tools) had a tip for quick note taking - redirect to /dev/null. For the past 25 years I pretty much always have a terminal window open with a shell redirecting to /dev/null so I can copy and paste or type quickly. I suppose if you wanted to save it you could redirect to a file instead of /dev/null but I always treat it as a buffer that will eventually go away.
mprovost··on Better Shell History Search
History substitution with "!" goes back to Bill Joy's csh, 1979.
mprovost··on Is Robert Frost Even a Good Poet?
I really recommend his novel-in-verse "The Golden Gate". Such a literary accomplishment, and a real page-turner. Maybe it's hard to follow up when you have such an early success? Actually, I was introduced to it by Douglas Hofstadter, who in the same way has never been able to top GEB, which he wrote in his early 30s.
mprovost··on Show HN: Facad – A colorful directory listing tool for the command line
In an alternative universe where someone other than Americans invented the popular character set, would emoticons have existed at all if computers had the capability to display Unicode glyphs from the start? It feels like still insisting on using Morse code after keyboards were invented.
mprovost··on Show HN: Facad – A colorful directory listing tool for the command line
Another comment was arguing that anything since POSIX is a "waste of time", presumably including the GNU extensions. (The BSD utilities were the first "user-friendly" alternatives to the original AT&T versions...)
mprovost··on Boeing workers vote to strike
Unions aren't a monopoly they're a democracy. After a democratic vote, the minority has to accept what the majority wants. Yes, sometimes voters make poor choices. New workers know about the union before they join. You don't move to a new state and refuse to pay taxes because you didn't vote for them. Once you're there you get to vote in the next election. America is a democracy and you don't have to revert to feudalism when you step onto the factory floor.
mprovost··on How to avoid losing items? Holding pens
The TikTok ADHD community commonly refers to these as "doom boxes" (or "piles") which reflects both the sense of dread that they instill, while also being an acronym for "didn’t organize, only moved".
mprovost··on A gang of harmonica geeks saved the soul of the blues harp (2013)
There are photos of Bob Dylan dipping his harmonica in a glass of (supposedly) whiskey before playing. I've always heard that it would make the wooden comb in the old Marine Band swell which made it airtight and produced a better sound.
mprovost··on Eza: A modern, maintained replacement for ls
The GNU project didn't invent ls. The GNU coreutils (including ls) were originally new versions of either proprietary (AT&T) or BSD licensed utilities.
mprovost··on Battery-swap networks are preventing emergency blackouts
You don't need internet for everything... by definition these systems are connected to the grid by wires which can transmit a limited signal. Utilities in countries such as NZ have managed load for decades by turning hot water heaters in customers' homes off and on remotely with ripple control units which transmit a signal over the power line itself. [0]

[0] https://en.wikipedia.org/wiki/Zellweger_off-peak

mprovost··on Reclaiming IPv4 Class E's 240.0.0.0/4
It's not the case that there were no alternative designs at the time that v6 was proposed. RFC 1385 described a backwards compatible Extended Internet Protocol which used IP Option headers to stuff in extra addressing space.

https://datatracker.ietf.org/doc/html/rfc1385

mprovost··on 'Right to roam' movement fights to give the commons back to the public
There was a big high wall there that tried to stop me;

Sign was painted, it said private property;

But on the back side it didn't say nothing;

This land was made for you and me.

-- Woody Guthrie

mprovost··on Add Depth of Field to Screenshots
Looks like Screenstab [0] which was a previous Show HN [1].

[0] https://www.screenstab.com/editor/ [1] https://news.ycombinator.com/item?id=34729849

mprovost··on CFEngine's Star Trek and AI Origins (2023)
The original distributed configuration system from the 1980s, Sun's NIS (aka yp) was also driven by makefiles.
mprovost··on The Atlantic's great American novels of the last 100 years
So glad to see that "The Dog of the South" made the list. Someone on HN recommended it years ago which is how I discovered it so I'll pass it along. Certainly meets the definition of a "Great American Novel" with the way Portis captured how people speak. He hasn't written many novels but I recommend them all. (I only just learned now that he died in 2020.)
mprovost··on Winning a hackathon, losing my sanity
The ligature on "www" was making me doubt my sanity. I had to doublecheck that it's for real but it comes from the Berkeley Mono font.
mprovost··on Lie-to-children
This puts a name to the approach that I've been using to write my Rust book. Leaping directly to a final, idiomatic solution without explaining all of the fundamentals first doesn't actually teach anything (except memorisation). It's often more effective to show a more straightforward, but possibly less idiomatic or performant, solution first. Then later introduce more complexity.

But I realise that if you stop reading after a few chapters you might go off into the world and write suboptimal code. In my mind this highlights the difference between a reference and a textbook designed to teach. If you just want the final answer, check the reference. (Or have an AI autocomplete for you.) But to teach you have to bring people on a journey and show some "mistakes" along the way.

My premise is that people learn better that way and retain the knowledge because you are giving them the chance to "discover" it themselves.

mprovost··on The Berkeley Software Distribution
Cool! It might be worth getting in touch with Diomidis Spinellis who runs the Unix History Repository and see if they're interested in adding them.

https://github.com/dspinellis/unix-history-repo

mprovost··on U.S. to invest billions to replace China-made cranes at nation's ports
If only there was a branch of the US military with lots of ships, and bases around the world.
mprovost··on Rotating house goes up for sale in New Zealand
Reminds me of this classic Reddit story (the zombie bagel): https://www.reddit.com/r/AskReddit/comments/1rgpdf/comment/c...
mprovost··on Useful Uses of cat
I'm a bit surprised `rev` isn't in coreutils, it's ancient. Originally written because `cut` doesn't allow selecting fields from the end of a line. So to get the last field in each line, you reverse each line (right to left) with `rev`, select the first field with `cut`, and then reverse it again with `rev`.
mprovost··on Pakistan cuts off phone and internet services on election day
Famously the BBC shows pictures of dogs at polling stations on election day so it's not political.

https://www.bbc.co.uk/news/in-pictures-61333251

mprovost··on Finance worker pays out $25M after video call call with deepfake CFO
CFOs of public companies typically do quarterly earnings conference calls with Wall St. So there's potentially plenty of recordings of their voices using the same kinds of language that it would take to fake something like this.
mprovost··on He spent his life building a $1M stereo
I'm sure there are many more examples but famously Groove Armada recorded the trombone parts of "Superstylin'" and "At the River" through a speaker because they didn't have a microphone in the studio.
mprovost··on Let the terminal bells ring out
‘Wuff, Wuff!!’
mprovost··on Advent of Technical Writing: Style
One of the hardest things with my Rust book has been finding my own technical voice. Initially I tried a more casual/funny style, but it didn't feel authentic. Eventually I came up with a more technical style where I avoid the passive voice altogether, which can be really difficult but I think ends up with a better result. Some days it feels like my editing process is just going through a chapter rewriting any passive voice which crept in when I wrote the first draft. It feels much more exact: "The ch variable is updated to the next character in the string" vs "The for expression updates the ch variable to the next character in the string".
mprovost··on Losing Metaphors: Zip and Paste
The original Unix systems were really memory-constrained, and the standard utilities for processing text files often couldn't handle "long" lines (usually over 2048 bytes, sometimes less). So the `cut` utility divided an input file up into separate files each containing a section of each line. To put the file back together, the `paste` utility would merge the sections of each line from those files back together.
mprovost··on A very subtle bug (2010)
That's a cool trick. There are crates for signal handling, and the libc crate exports raise(), they just aren't part of the standard library which attempts to be cross-platform. But if you're already going to unset the signal handler you might as well do that from the start (in this particular case).
mprovost··on A very subtle bug (2010)
I'll have to rewrite some chapters once it's stable and released but I'm not holding my breath... It will be a nice problem to have anyway.
mprovost··on A very subtle bug (2010)
Well, that's the source of the bug in Python as well so it's not exactly a unique choice or default. It's tricky to manage this in a cross-platform way.
← PreviousPage 3 of 26Next →