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 I tried starting a manufacturing unit in India (2020)
Also the father in law of the new UK prime minister...
mprovost··on An app that tells you the best time to run and pee during a movie
"The length of a film should be directly related to the endurance of the human bladder." - Alfred Hitchcock
mprovost··on Peep: The Network Auralizer
You can calculate the temperature by listening to cricket chirps! They chirp faster (more often) as it gets warmer.

https://en.wikipedia.org/wiki/Dolbear%27s_law

mprovost··on Peep: The Network Auralizer
The Solaris `snoop` command for capturing network packets has supported a -a option for at least 20 years which listens to packets on /dev/audio and comes with a warning that it "may be noisy". It used to be fun to run on a Sparcstation!
mprovost··on Learn Rust by implementing a SHA-1 hash cracker
This is a good intro and really highlights how Rust doesn't have a learning curve, it has a cliff. I'm tackling this in my own book [0] because I think the docs really throw you in the deep end (mixing metaphors). As this article shows, to implement a "hello world" you have to use a macro, so you can't even look for a function signature in the standard library docs to help. So you can either just say "don't worry about this for now, just trust me" or spend a whole chapter diving into macro syntax. And then it goes into errors, which in this example need to be boxed, so then you can spend a bunch of time explaining unsized types and boxing and memory allocation... or just say that it has to be boxed to keep the compiler happy.

Teaching Rust is basically a giant topological sorting exercise [1] where you're finding the optimal order to introduce syntax so that you steer clear of all of these rabbit holes. Or you just end up drawing the owl.

[0] https://rftgu.rs/ [1] https://en.wikipedia.org/wiki/Topological_sorting

mprovost··on Downturn career decisions
Senior level positions in Europe often come with a 6 month notice period, so it's not even really possible to job hob that often. There is a strong preference for stability and continuity of leadership.
mprovost··on The search for the most useless office perk
I wish... we've had these at my current and previous job, and they're busy all day with people joining remote meetings. This was true even pre-pandemic. The last time I went in to the office I was stuck in one for 4 hours of back to back calls. Wondering why I made the commute...
mprovost··on The last person standing in the floppy disk business
I worked for a network storage company that originally wanted to call themselves "Arraid" but discovered a small company already using that name, making replacement flash-based disk/floppy/tape drives for old mainframes and minis. Looks like they're still around in case you need something for your PDP-11!

https://www.arraid.com/

mprovost··on The end of the manual transmission is near?
"The old Model A had a spark advance you could manipulate. I don't know why they got rid of it. Well, that's your Detroit smarties. The hand choke too. That's gone. Been gone." - Charles Portis, The Dog of the South, 1979
mprovost··on What's the big deal about embedded key-value databases?
I feel like this is missing any mention of the history of KV stores. Unix came with an embedded database (dbm) from the early days (1979) [0] which was rewritten at Berkeley into the more popular bdb in the 80s. [1] Sendmail was one of the more common programs that used it. And then when djb built his replacement for sendmail, qmail, he invented cdb. [2]

[0] https://en.wikipedia.org/wiki/DBM_(computing)

[1] https://en.wikipedia.org/wiki/Berkeley_DB

[2] https://cr.yp.to/cdb.html

mprovost··on I spent a year designing a low profile, minimal mechanical keyboard
Can't you use the knob for volume control?
mprovost··on The fine art of Italian hand gestures: A vintage visual dictionary (2012)
This made the rounds last summer during the Euros with the Italian sports journalist Tancredi Palmeri tweeting "Stop with this stereotype about Italians doing hand gestures. It's not t":

https://twitter.com/bettinghub/status/1415779102460715009

(the original video has been deleted)

mprovost··on Why I built a dictionary app
> So I created a script to download the definitions of the most 300.000 common words in English and insert them into an SQLite database.

It seems like if you're limiting yourself to 300k words starting with the most common ones isn't the best heuristic for filtering. Surely people are going to look up less common words more often? Or maybe even the most likely words to be misspelled.

mprovost··on I don’t have notifications enabled, nowhere and never
In IOS even if you disable notifications from unknown senders, when a TFA code arrives it still shows up for you to paste when you're in an app.
mprovost··on I don’t have notifications enabled, nowhere and never
iPhones have a "Silence Unknown Callers" feature now which sends anyone not in contacts straight to voicemail. It's also a bit smarter so if you call someone it will allow them to call back even if they aren't in your contacts list.

https://support.apple.com/en-us/HT207099

mprovost··on Average new car transaction price hits a record $48,043
I can't tell if you live in Germany and are visiting India, or if you're in Delaware and visiting Indiana. Or some combination of these...
mprovost··on DwarFS: A fast high compression read-only file system
I remember learning about filesystem design from the classic "demon" book (The Design and Implementation of the 4.4 BSD Operating System by Marshall Kirk McKusick) which has a lot of details about the original Fast File System.
mprovost··on Leaked documents reveal Amazon’s process to review employees’ worth to Amazon
The biggest issue I've seen with new engineers is a mismatch between what behaviours they think the company should reward them for, vs the actual things the company judges performance on. Pay attention to some senior people who are doing well and see what it is that they're doing to be successful. Hint: it's usually not writing the best/most code.
mprovost··on How I went about learning Rust
Yes! I use the (final) 4.4 release from 1993. Some were written by Bill Joy! But if you look at the modern OpenBSD or FreeBSD (or MacOS) versions they’re still about 90% unchanged. The older versions are a bit shorter which makes it easier to explain.
mprovost··on How I went about learning Rust
Yes I saw that... I released mine first but I'm publishing it a chapter at a time and mine is about half done. I haven't read the O'Reilly one because I don't want to inadvertently copy anything or be influenced by it. I think the main difference between my book and this one is that I go through the original BSD source and translate it into idiomatic Rust. I also teach how to work with the borrow checker without resorting to copy/clone or reference counting which I think is unique. And I don't use lifetimes anywhere in the book - they're an advanced topic that really puts off new Rust programmers and aren't needed in most cases.
mprovost··on How I went about learning Rust
I'm self-publishing "Rust From the Ground Up" which takes this approach: each chapter rewrites a classic Unix utility (head, cat, wc, ...) from the original BSD C source into Rust. I find for systems programming it's easier to understand how things work in C, and then teach the idiomatic way of doing it in Rust. C is pretty easy to follow along in "read-only" mode with some explanations.

https://rftgu.rs/

mprovost··on Unity is acquiring a company who made a malware installer
Interesting! PJ and his partner still own 60%. And Sean Parker is a director of the company?

https://app.companiesoffice.govt.nz/companies/app/ui/pages/c...

mprovost··on Unity is acquiring a company who made a malware installer
It's not an acronym but yes. It's hard to believe that an ad company is worth 3x a multiple Academy Award winning VFX studio.
mprovost··on Bay Area Vintage Base Ball
Cool the rules from 1886 allowed the batsman to ask the pitcher for a high or low ball! And the bat could be flat on one side like a cricket bat! And spitballs were still legal!
mprovost··on Heathrow tells airlines to stop selling additional flights until September
Aside from the issues that others have mentioned (Brexit, security clearances), the UK is in the middle of a huge BA.5 Covid wave. Estimates are something around 1 in 25 people had it last week, and it's getting worse. That's driving a lot of staff absences.
mprovost··on 7-zip 22.00 – APFS, Posix TAR, high precision timestamps
zsh too https://zsh.sourceforge.io/
mprovost··on NFS: The Early Years
One of the reasons that NFS was so popular is that Sun gave away the protocol implementation. It's really interesting to see the technology behind that though. The whole protocol (both versions 2 and 3) is defined in a single file.[0] You run that file through the rpcgen program which spits out some .c and .h files which you can just link into your program. Of course on the server side you actually need to implement the code to handle those procedures, but on the client side it's all there, ready to use.

[0] https://github.com/freebsd/freebsd-src/blob/main/include/rpc...

mprovost··on NFS: The Early Years
Yes, Legato's first product was the Prestoserve NFS accelerator card (in 1989!).[0] NetApp's implementation mirrored the cache across two servers in a cluster with an interconnect.

NFSv3 "fixed" the write issue by adding a separate COMMIT RPC:

"The write throughput bottleneck caused by the synchronous definition of write in the NFS version 2 protocol has been addressed by adding support so that the NFS server can do unsafe writes. Unsafe writes are writes which have not been committed to stable storage before the operation returns. This specification defines a method for committing these unsafe writes to stable storage in a reliable way."[1]

[0] https://twitter.com/aka_pugs/status/1225665691472166912 [1] https://datatracker.ietf.org/doc/html/rfc1813#section-1.1

mprovost··on Continuous Unix commit history from 1970 until today
This repo has been super useful as I've been writing a book that teaches Rust by rewriting classic Unix utilities. I settled on using the 4.4 BSD source as a base but having the whole history available has been really interesting. Recently I came across a bug in the 4.4 version of cat that wasn't fixed until a few years later (in FreeBSD).
mprovost··on Show HN: Tuc – When cut doesn’t cut it
I mean, ignoring the fact that the configure script is often a larger program than the one you're trying to install, it (and make) can do anything to your system and unless you read the contents of each you're just taking it on faith that it isn't downloading and installing hundreds of things.
← PreviousPage 7 of 26Next →