HNHacker News
TopNewBestAskShowJobs

cfallin

1,502 karma · joined August 27, 2012

Compiler nerd, computer scientist, software engineer. Living and working in Sunnyvale, California.

Currently: Senior Architect at F5, working on Cranelift/Wasmtime in the Office of the CTO.

Previously: Principal software engineer at Fastly, working on Cranelift/Wasmtime for the Wasm-based Compute@Edge project, 2020-2024. Mozilla, working on the SpiderMonkey and Cranelift JIT compilers in Firefox, 2019-2020; PhD student (ECE) and then postdoc (CS) at Carnegie Mellon working on compilers, static and dynamic analysis (2009-2013, 2015-2019).

More previously: Google (2014-2015), and Intel (2013-2014).

Web: https://cfallin.org/

[ my public key: https://keybase.io/cfallin; my proof: https://keybase.io/cfallin/sigs/ZJj2pg69eB6Hs0cl9j_babYkyADojbWrfe4uZp11LMo ]

submissionscomments
cfallin··on Async-await on stable Rust
The problem is that the async model is a form of cooperative multithreading, so if one computation runs for a long time without returning to the main event loop, it can increase the latency for responses to other events. E.g., if one HTTP request takes a long time to process, and many of the worker-pool OS threads are handling such a request, response time goes up for all the other requests. OS-level concurrency is preemptive (timesliced), so one busy thread doesn't block other requests, but of course with much higher overhead in other ways. Best practice is usually to keep event handlers on event-loop threads short and push heavy computations to other OS-level worker threads.
cfallin··on TSMC 5-Nanometer Update
That means "same power", in the context of a comparison of some other metric. So (from the article) "15% higher performance at iso-power" means that for the same power draw, a chip made with the new process has 15% better performance (clock speed) than one made with the old process. Likewise for iso-performance: new chip can get the same perf with less power.
cfallin··on Restic – Backups Done Right
Yes, indeed; Restic just happened to be an easy-to-use deduplicating backup program that supports various cloud storage backends, including the one I happen to use (Backblaze). Not needing to patch together some sort of pipeline of dedup --> upload to remote storage is a nice selling point.
cfallin··on Restic – Backups Done Right
I've been using Restic recently for backups online (to Backblaze, which it natively supports) after using Duplicity for a while. I'm really, really impressed so far; the hash-based deduplication means:

- I don't have to think about deduplicating my own data, which works well with my packrat tendencies (e.g., multiple copies of music library on snapshots of old laptops);

- Full-disk backups of multiple machines will share a lot of storage (all system files from my desktop and laptop, both running the same Linux distro);

- Restarting a long upload doesn't depend on some finicky state regarding an interrupted previous backup; it can just rescan the whole disk and skip uploading blobs that are already there, which feels much more robust to me.

cfallin··on Getting Started with Security Keys
Yes, an interesting exercise I did once was to actually draw the dependency graph of auth material (both passwords and 2FA tokens/devices) and accounts, with edges where one thing can bootstrap another. E.g., with my password database and master passphrase, I have a password; with that and my OTP backup, I can recover my email account; with that, I can reset other account X; etc.

I now make sure I have sufficient backups of the roots in that graph so that losing hardware doesn't lock me out. It's easy to lose track of!

cfallin··on Let's discuss the source for the GPLed parts of Tesla cars
That's the difference between GPL and AGPL. GPL only requires source distribution if you distribute binaries, not if you run your binaries on your own server responding to requests from users. AGPL requires source distribution for any network-accessible service.

(Unsurprisingly, there was a very very strict rule against using, coming within 100 meters of, looking funnily at, or even thinking in a passing way of any AGPL source internally when I was at a particular large internet company that was otherwise pretty open-source-friendly...)

cfallin··on SiFive Announces First RISC-V OoO CPU Core
"IP core" can mean "soft IP", which is just RTL, or "hard IP", which is a full layout (set of mask layers), ready to put on silicon. I haven't read the SiFive announcement closely, but if they're quoting area/frequency/power numbers, it would most likely be the latter.
cfallin··on Ripe NIC: 'In Five Weeks We'll Run Out of IPv4 Internet Addresses'
The RIPE guidelines at [0] line up with what I've heard as justification before: basically, /64 is the smallest you can go without lots of manual configuration (the way that SLAAC auto-assigns addresses from Ethernet MACs or random bytes only works when the host part of the address is 64 bits). There may be valid technical reasons to want > 1 subnet at a customer site.

And finally, the space is huge -- an ISP would typically get a /32 at least (Whois says that Comcast is using a /26 just for the Bay area), so if every customer gets a /60, that's 2^28, or 256M, delegations. (With the /26, Comcast could hand out 16 billion /60 delegations to their SFBA subscribers.)

[0] https://www.ripe.net/publications/docs/ripe-690#4--size-of-e...

cfallin··on Ripe NIC: 'In Five Weeks We'll Run Out of IPv4 Internet Addresses'
Yes, I have native IPv4 too, with the usual NAT. I think the default router that Comcast will rent to you actually is dualstack in this way too -- IPv4 NAT, and IPv6 prefix advertised for devices that want it.

I actually played with NAT64 for a bit (IPv6-only internally, all IPv4 space is mapped to a special /96 in IPv6-space and NAT'd at the router, and local DNS server on the router returns translated AAAA records for IPv4-only hosts), but dropped that when I simplified my router config. It works, it just takes a bit of config :-)

cfallin··on Ripe NIC: 'In Five Weeks We'll Run Out of IPv4 Internet Addresses'
Sure! The keyword to look for is "DHCP-PD" (DHCP prefix delegation).

I run a little OpenBSD router and my dhcpcd.conf is here [1], but I've done this before on a Linux router box too -- here are some instructions from Arch's wiki [2]. IIRC, the stock firmware on my old consumer router was also able to request a prefix and advertise it on the network.

[1] https://gist.github.com/cfallin/e5865a6a93c75ace8d26d6a85287... [2] https://wiki.archlinux.org/index.php/IPv6#Prefix_delegation_...

cfallin··on Ripe NIC: 'In Five Weeks We'll Run Out of IPv4 Internet Addresses'
This is my favorite bit about native IPv6 at home [0]. No more port forwarding to expose particular services -- I can just `ssh desktop.home.net` or `ssh other.home.net`, and they both get to run on default ports! (Of course, one probably wants a firewall -- I block inbound IPv6 by default except ssh.)

[0] Comcast is surprisingly good here -- they'll give you a /60 (16 /64 networks) if you ask for it with the right DHCP option!

cfallin··on Amish Counter Top Kitchen Appliances Run Off Compressed Air (2012)
> DC/DC step-up/down voltage regulators

Interestingly, there is actually a hydraulic mechanism that's the equivalent of a boost converter with inductor, diode, and switching element:

https://en.wikipedia.org/wiki/Hydraulic_ram

It translates a low-pressure fluid with continuous flow into periodic high-pressure impulses. The inertia of the fluid is the hydraulic equivalent of the inductor, and a switching element (valve) closing suddenly causes a spike in pressure as the water decelerates suddenly, equivalent to a voltage spike as an inductor "wants to keep the current flowing".

But it usually operates with water, which has much higher density (hence inertia) than air, so it might not be very efficient (or might require much higher flow rate) in a pneumatic version.

cfallin··on Grise Fiord, Canada's most northerly community
Yeah, the way that the border juts upward around the Great Lakes makes for interesting equi-latitude pairs. I grew up near Portland, OR, which is at essentially the same latitude as Montreal or Ottowa, though the climates are nowhere near similar. Seattle is north of Quebec City! And, of course, going east across the pond, Toronto is at around the same latitude as the south coast of France, on the Mediterranean. Very counter-intuitive.
cfallin··on Firefox 70
> what happens is you pay and become the product

I remember the first time I saw an ad on the in-flight entertainment system on a plane. (I think it might have been United, but they all do it now...) This and the shilling for their special miles-reward credit card, while you're literally captive (in a tube in the air), having paid to be there, is pretty much the epitome of hypercapitalism-gone-wrong today.

cfallin··on Ivan Sutherland: 6 Legged Walker: CMU 1982 and 1983 [video]
Yeah, the old parking lot around Hamerschlag became the new fab / nanotech lab when Scott Hall was built (finished 2016) -- they connected HH C-level to Wean 4, a major boon to winter-time indoor connectivity. Google Streetview has a pretty good view of it:

https://www.google.com/maps/@40.4420983,-79.9460873,3a,75y,3...

cfallin··on Costco gained a cult following by breaking every rule of retail
Wow -- the engineering cleverness is actually really incredible (using heat expansion of the nichrome wire to automatically lower the bread! fully mechanical closed-loop monitoring of bread surface temperature!). Tempting.
cfallin··on Costco gained a cult following by breaking every rule of retail
Yes, the electronics/appliance selection, when one needs it, can be slightly lacking. Costco appears to reduce costs by often stocking exactly one option for a given thing. E.g., I'm in the market for a toaster as my old one died (a 2012 basic 2-slot model, $20 at Costco). My local Costco now seems to only have an upscale 4-slot model for $50. I'm considering my options and living a toaster-free life at the moment, but even two options would be nice.

It's hard to beat the prices on bulk foods, though, which keeps me going back (and I like voting-with-dollars for well-run, customer-friendly stores). Perhaps it's just the bulk-commodities mindset from the food aisles leaking over into electronics that causes the above.

cfallin··on Broken
I'd just like to second the used-Thinkpad route. I picked up an X250 (Skylake i5) on eBay last spring for $160, and after maxing out RAM (8GB), a decent SSD and a new battery I'm out ~$350 for something that is both indestructible and quite zippy. Yes, it's not shiny, but IMHO it's a far more practical Unix-y workstation. (I mainly run Linux but I've tested OpenBSD too and everything Just Works.)
cfallin··on Show HN: Managed UniFi Controller Hosting
The provisioning was a PITA and I only use the WiFi access point, not their router, but at least for me the WiFi reliability and signal quality is night-and-day compared to my "old" (2015/6-era) TP-Link Archer C7 router/WAP. I'm not sure what design details lead to this -- poking around via SSH, they're just running Linux with hostapd controlling Atheros interfaces (perhaps just solid engineering on antennas plus choosing a well-supported WiFi chipset?) -- but qualitatively there is definitely a difference in my experience!
cfallin··on Attorney General will ask Zuckerberg to halt plans for end-to-end encryption
This "never before seen" argument cuts both ways, though. There has also never been a full, verbatim record of all of one's communications, personal notes, searches of the equivalent of the world's largest encyclopedia, precise location over time, and myriad other details, carried in one's pocket and/or magically copied to a central location at which someone can perform instantaneous bulk keyword searches. The raw data and processing power over that data that governments have, now, is completely unprecedented in the history of the world.

We used to be protected by the ephemeral nature of 99% of life and by the inability for anyone to centrally view or mechanically process the other 1% (letters, diaries, etc). This is just as much argument for strong protection as your argument goes against strong protection.

cfallin··on Google contractors in Pittsburgh vote to unionize
I lived in Pittsburgh for 8 years. It was eminently livable as a single grad student on a ~$30k stipend, but I wouldn't want to raise a family on that or thereabouts. Also, apartments may be cheaper but COL is an average over the whole metro area, and decent apartments or houses in a neighborhood you'd want to live in are a bit more. (Say $1000/mo for a nice 1-bed, or $300k for a decent house.) Keep in mind that cars, electronics, health insurance, and myriad other consumer goods aren't cheaper just because the city COL is cheaper. I'd probably want to make $60k or so to actually be comfortable and put some money away (edit: as a single person, and more than that with a family). (Fortunately, software engineers in Pittsburgh generally make quite a bit more than this, from what I've heard.)
cfallin··on Seven Insights into Queueing Theory [pdf]
Yes, absolutely, seconded! I was fortunate enough to take her class (which she taught using this book) and I left the class feeling like I really understood things, having proved everything starting from basic probability. The rigor is admirable.
cfallin··on On Ocracoke Island, the only American dialect that is not identified as American
> by the way the say "bag" though (sounds like "beg")

The infamous "northwest vowel shift"! I do this too (grew up in the suburbs of Portland) and it's common from Oregon up into BC. Didn't realize it was different until I moved to the midwest for undergrad.

cfallin··on Buying an IBM Mainframe
Even the kinetic energy (fan motors, HDD motors) eventually becomes heat. E.g., the moving air from fans dissipates its energy in turbulence in the room's air, and in a closed system (airtight room), the resistance to airflow (resulting in heat) must equal the pressure differential created by the fans, unless the air builds up unbounded speed. Likewise, torque to keep the HDD platters spinning will be exactly equal to frictional losses once the disks are spun up, so all power into the spindle motors becomes heat.

Even noise that leaves the system either becomes heat as the pressure waves dissipate through the atmosphere, or else do work on eardrums (mechanical energy) which eventually becomes heat as the inner ear resists the motion of the ear bones :-)

cfallin··on I.M. Pei has died
> Second, this place was targeted at middle income families

There's a random apartment building near downtown Pittsburgh that was designed by I.M. Pei [0] -- a little nicer than others in the area, but by no means a luxury building. It's indeed refreshing to see "normal" buildings for "normal" people designed by famous architects, even if the building itself isn't flashy by any means.

[0] https://en.wikipedia.org/wiki/City_View_(Pittsburgh)

cfallin··on Why is a Rust executable large? (2016)
Yes, in both directions (using a .so, and building a .so in Rust), but IIRC linking to a .so is a bit hairy -- requiring a build.rs (build script) that passes special options to Cargo. Generating a .so is just a different target type to Cargo (cdylib).
cfallin··on Free Dropbox Accounts Now Only Sync to Three Devices
I use GCE (Google) for this purely because they had the lowest per-byte cost for block storage, at least when I looked. The instance itself has the smallest CPU/memory config. IIRC my bill is about $7/mo for the instance with separate 200GB volume.
cfallin··on Being a PhD student shouldn’t be bad for your health
IME, hard to say better or worse, but definitely different: less day-to-day stress (work on your own schedule, drive your own project, usually no one directly dependent on your day-to-day output) but much more existential-threat-type pressure (if this doesn't work, I won't graduate). Couple that with a culture that looks down on quitting, and the fact that one can't just "quit and find another job" while staying on the academic track (one can switch advisors but it's difficult and often costs years of progress), and PhD students are often under a tremendous amount of stress. Personally I'm happy I finished but I've seen it take a lot out of others.
cfallin··on Free Dropbox Accounts Now Only Sync to Three Devices
For anyone looking for an open-source self-hosted alternative: I've been really happy with Syncthing [0]. It's as invisible as Dropbox once set up.

It supports arbitrary topologies (two peer machines syncing, one central always-on machine and lots of clients, etc.); with a VM in the cloud it can closely emulate Dropbox (sans web-based file browser), but it will also support e.g. just a desktop at home and a laptop that syncs when it's on the LAN. Pretty useful!

[0] https://syncthing.net/

cfallin··on ZombieLoad: Cross Privilege-Boundary Data Leakage on Intel CPUs
Yup, I worked for a bit at Intel, but I don't speak for them, I wasn't involved in any of the designs under discussion, and everything I'm saying here is public knowledge in the computer architecture community. I figured that the perspective from the academic comparch world might be interesting.
← PreviousPage 3 of 10Next →