Elektrine
Log in Register
Paige Chat Timeline Gallery Friends Email Drive DNS Private DNS Domains VPN Kairo Nerve
Remote

cliffle

@cliffle@hachyderm.io
mastodon 4.7.3
  • Open on hachyderm.io

Chaotic good artificer/ranger, sending you drive-by bugfix pull requests while sitting in a tree in the middle of nowhere.

My psych degree hasn't stopped me from regularly getting nerd-sniped into writing operating systems.

Making reliable things from unreliable parts, currently at Oxide Computer, previously Loon/GoogleX, NativeClient, etc

bad at (but occasionally posting in): español, (简体)中文, nederlands

he/him - Berkeley, CA

2149 Followers
87 Following
50 Posts
Joined November 15, 2022
Webbywebs:
https://cliffle.com/
Codes:
https://github.com/cbiffle
Embedded widgets for sale:
https://www.lectronz.com/stores/owl-lol
Heading photo alt text:
A photo of me as a 10-year-old leaning against a sign that reads Dangerous Cliff
Open post
cliffle @cliffle@hachyderm.io
· 1mo ago
Boosted by @trending@homestead.social
Physical therapist: "Do you have any resistance bands at home?" Me: "Are you thinking more Rage Against The Machine, or, like, Woody Guthrie?" Physical therapist: 😑
973
22
419
3
Open post
cliffle @cliffle@hachyderm.io
· 2mo ago
Replying to
@mxshift@social.treehouse.systems @wez@social.treehouse.systems and it doesn't help, IMO, that code review has never been the fun part. It's way more cognitively draining, at least for me, to pick over code with a fine toothed comb looking for issues, instead of creating something. This is why I like review systems that emphasize trust and accountability -- like, "oh, Rick wrote this, I'm going to check that it reads well and make sure I don't see a much simpler option, but I don't need to go full Reflections On Trusting Trust." But without a person, I don't know how to achieve trust and accountability, so every review has to be on max settings.
56
3
17
0
Open post
cliffle @cliffle@hachyderm.io
· 2mo ago

I am bewildered and disappointed to report that Android's onboard emoji search stops working if you have a flaky Internet connection.

Meaning, it is not local.

Meaning, they're going out to the goddamn Internet to see if any of O(1000) records match the word "fish."

I can't even.

25
4
3
0
Open post
cliffle @cliffle@hachyderm.io
· 3w ago
Replying to
@ekuber@hachyderm.io ideally OCaml over Haskell -- Haskell experience tends to make people want to aggressively overgeneralize things, like defining algorithms in terms of very abstract Monad/Monoid typeclasess that are hard to express well in Rust.
3
3
0
0
Open post
cliffle @cliffle@hachyderm.io
· 2mo ago

Kinda want to write a bot that just replies to any really long, unsolicited, probably-LLM-generated pull request with this picture of me at, like, five

19
1
0
0
Open post
cliffle @cliffle@hachyderm.io
· 2mo ago
My partner's been running a D&D campaign for our friend group for ~4 years now. A plot point had us moving 38 years forward in time (fae stuff). So obviously she's worked out the inflation rate and redone the equipment cost lists.
15
0
8
0
Open post
cliffle @cliffle@hachyderm.io
· 1mo ago

In the early 90s, PKWare offered their Data Compression Library as a way to put basic compression into other applications. It uses a different algorithm from PKZIP. I encountered it because it's used by the proprietary recipe program that my mom used, and I've been recovering her database.

Turns out it's had an input-controlled buffer overrun since, well, forever! The library itself won't produce streams with the property required to trigger it, but it also doesn't defend against them.

But, because of the specifics of how its structs are laid out, it's probably not usefully exploitable. (The overrun stomps on a section of the input buffer that isn't likely to be used again.)

9
1
1
0
Open post
cliffle @cliffle@hachyderm.io
· 5mo ago
Me: "By ensuring that illegal states can't be represented and expressing the logic as a total function, we can easily reason about what the computer can and cannot do when it hits this point." The rest of my industry, sometimes: "Please. I beg you. Stop producing output about goblins. You are supposed to produce code. Why are there goblins." https://arstechnica.com/ai/2026/04/openai-codex-system-prompt-includes-explicit-directive-to-never-talk-about-goblins/
arstechnica.com
41
5
17
0
Open post
cliffle @cliffle@hachyderm.io
· 2mo ago

RE: @mjk@hachyderm.io

"Why do they need to keep raising money?" ask the commenters.

Ah, I see you're from software!

hachyderm.io
7
2
0
0
Open post
cliffle @cliffle@hachyderm.io
· 2mo ago
Replying to
@soatok@furry.engineer so I guess the question becomes: Is Alan Turing fan fiction... Turing-complete?
11
0
3
0
Open post
cliffle @cliffle@hachyderm.io
· 2mo ago
Since Rust still doesn't implement Default for [u8; 2048], I find myself pulling in the (fantastic) zerocopy crate just to get new_zeroed. Because zerocopy::FromZeroes is _absolutely_ implemented for arrays of all sizes, unlike Default.
6
4
0
0
Open post
cliffle @cliffle@hachyderm.io
· 2mo ago
Replying to
@rmi@cloudisland.nz I was delighted to see that quoted, I knew both Ka-Ping Yee and Mark S Miller from security work at Google. Terrifying, isn't it? Code review won't save us.
3
0
0
0
Open post
cliffle @cliffle@hachyderm.io
· 2mo ago
Replying to
@knickish@hachyderm.io @penguin42@mastodon.org.uk close -- a lot of older standard library traits aren't implemented for arbitrary arrays, because the ability to express... impl MyTrait for [T; N] was stabilized ~5 years after Rust 1.0, and sneaking such an impl in for old traits has backwards compatibility concerns. I've paged out the details beyond that. But those back-compat concerns don't affect non-std crates like zerocopy that are willing to ship breaking changes.
2
1
0
0
Open post
cliffle @cliffle@hachyderm.io
· 5mo ago

An oldie but a goodie: https://existentialcomics.com/comic/259

Good thing this is purely a thought experiment, right?

...right?

existentialcomics.com
8
0
1
0
Open post
cliffle @cliffle@hachyderm.io
· 3mo ago
Replying to
Probably the closest thing to a "pre-processing" step right now is: there are a few institutions who only let me download monthly data in PDF format. (Looking at you, Betterment.) I use the standard-ish Unix pdftotext tool to convert these into text files, and then parse them with an annoying-to-maintain PEG grammar. But I don't want to depend on tools like that being in the path, _or_ on their output being stable, so I do the conversion to text when the PDF file appears and then check it into the repo alongside the original PDF (in case I need to regenerate it due to a bug). ...also I don't necessarily recommend parsing statement PDFs. Sometimes they change arbitrarily. Betterment used to provide CSV and I just haven't had the spoons to migrate away yet.
3
0
0
0
Open post
cliffle @cliffle@hachyderm.io
· 5mo ago
Replying to
For whatever reason, adding emoji output to command line tools makes me very happy. The column on the left gives the number of potentially legal guesses at each step; the emoji next to that is the confidence indicator.
8
2
0
0
Open post
cliffle @cliffle@hachyderm.io
· 5mo ago

Well, Tindie has been back up for a few days but is still refusing to pay out money owed, so... I've set all my products to 0-in-stock and attempted to redirect buyers to my Lectronz storefront.

Amusingly, they won't let me set my store banner message to include a Lectronz URL. I bet it blocks any URL, but, given how much trust they've squandered, this isn't a great look.

#tindie

hachyderm.io
7
0
2
0
Open post
cliffle @cliffle@hachyderm.io
· 5mo ago
Replying to
twice
7
0
0
0
Open post
cliffle @cliffle@hachyderm.io
· 5mo ago
Replying to
One of the fun things about Wordle: it's computationally practical to evaluate all possible games. So without being particularly clever, I can answer questions like, how many potential options are left (median) after guessing the word SLATE as an opening move on all potential puzzles (it's 250 of 10657). Or, which legal opening move leaves the smallest (median) number of options remaining. This leads you to SOARE, a word that is often suggested as optimal by AI boosters -- so I think I found their optimization metric. But the choice of metric is important, as the advanced human players I've checked with do not consider SOARE to be the optimal opening in practice.
7
12
0
0
Open post
cliffle @cliffle@hachyderm.io
· 5mo ago
Of Helix's various quirks and limitations, I think its incredibly low key "lol I decided not to save even though you just asked me to" warning on the very bottom line of the screen is the one that messes me up the most.
6
5
0
0
Open post
cliffle @cliffle@hachyderm.io
· 5mo ago

RE: @grimalkina@mastodon.social

I'm excited to read this. You might be too.

mastodon.social
6
0
2
0
Open post
cliffle @cliffle@hachyderm.io
· 5mo ago
Replying to
Alright, this thing is doing too good and might need to be put down for safety. 🟨⬜🟨⬜🟩 slate ⬜🟨⬜🟨⬜ nairu 🟩🟩🟩🟩🟩 arose
5
4
0
0
Open post
cliffle @cliffle@hachyderm.io
· 5mo ago
Replying to
heheheheh Had a flash of insight and added a search algorithm that is willing to break previously-learned constraints. This is something I see advanced human players (like my partner) do. So now it is doing things like ⬜⬜🟩⬜⬜ slate ⬜🟩⬜⬜⬜ brick 🟨⬜🟨🟨🟨 donga 🟩🟩🟩🟩🟩 grand and ⬜⬜⬜⬜🟩 slate 🟨🟨⬜⬜⬜ ruing 🟩🟩🟩🟩🟩 crude
5
8
0
0
Open post
cliffle @cliffle@hachyderm.io
· 5mo ago
Replying to
Turns out, an "endgame" heuristic I had put into place was misfiring and causing the solver to avoid potentially-impossible choices (when I had intended it to only avoid them in the last guess). Fixed: ⬜⬜⬜🟨⬜ slate → 271 left ⬜⬜⬜⬜🟨 point → 15 left ⬜⬜🟨🟨🟩 mouth → 5 left 🟨⬜⬜⬜🟨 caked → 1 left 🟩🟩🟩🟩🟩 dutch (CAKED in guess 4 is not a possible solution to the puzzle, which was shown in guess 1 to not contain A or E. But, it precisely disambiguates between the 5 possible remaining choices.) The overall solve rate is now 99.6%, missing only: baker bezel biddy boxer dolly ferry roger rower taffy
4
0
0
0
Open post
cliffle @cliffle@hachyderm.io
· 5mo ago
Replying to
Alright, we are starting to see press discussion of this "scheduled outage" 🤡 https://www.hackster.io/news/supplyframe-sells-tindie-now-in-its-second-week-of-site-outage-to-parties-unknown-17603dfb88b9
hackster.io
4
0
1
0
Open post
cliffle @cliffle@hachyderm.io
· 5mo ago
Replying to
Currently it's just repeating a two-phase strategy: Given the set of valid 5-letter guesses, choose one _at random_ (without replacement). Given the sequence of colors that the game produces in result, build a set of constraints and pare down the valid guess set. Repeat. So, none of the strategies you see in an advance human player, at the moment.
4
13
0
0
Open post
cliffle @cliffle@hachyderm.io
· 2mo ago
Replying to
@petrillic@hachyderm.io Me, 2006: oh man leaving this industry means I'll never have to sftp a pgp'd fixed format ebcdic record file again Me, 2026: y'know actually
1
5
0
0
Open post
cliffle @cliffle@hachyderm.io
· 5mo ago
Replying to
Choosing one of those words that I'm familiar with (DUTCH) and checking the output caused me to notice something. ⬜⬜⬜🟨⬜ slate ⬜⬜⬜⬜🟨 point ⬜⬜🟨🟨🟩 mouth ⬜🟩🟩🟩🟩 cutch ⬜🟩🟩🟩🟩 kutch ⬜🟩🟩🟩🟩 butch After MOUTH it's got a set of _UTCH words. Normally when the remaining possibilities differ in one letter position, you want to find a word that is a legal guess and contains as many of those letters as possible, even if it can't be a valid guess. Instead it's iterating through each possibility, which is how you run out of turns.
3
1
0
0
Open post
cliffle @cliffle@hachyderm.io
· 3mo ago
Replying to

@mrtazz@chaos.social yeah, if I'm being honest, I mostly maintain my own accounting software for emotional reasons.

  1. It's kind of fun.
  2. It helps me have a sense of control in an area (finances) where I'm prone to anxiety.
  3. Because of that anxiety, it's pretty easy to knock me off my rhythm of keeping my financial data off to date, so it's nice to know that the tools will only change when I change them.
1
0
0
0
Open post
cliffle @cliffle@hachyderm.io
· 5mo ago
Replying to
@petrillic this is approximately how the site would behave if the "new owners" were ransomware.
2
0
0
0
Open post
cliffle @cliffle@hachyderm.io
· 5mo ago
Replying to
@CosmicHorror huh, I hadn't noticed that, believe it or not. It's a side effect of the search strategy that I didn't explicitly design for. 😆
2
0
1
0
Open post
cliffle @cliffle@hachyderm.io
· 5mo ago
Replying to
@petrillic@hachyderm.io @azonenberg@ioc.exchange it also doesn't have anywhere to put the expansion bay, unfortunately. I guess as long as you're not running 200+Gb you won't have the thermal issues I'm used to. 🙂
2
3
0
0
Open post
cliffle @cliffle@hachyderm.io
· 5mo ago
Replying to
*deep breath* bezel biddy bobby boozy boxer bunny cello corer daunt dolly drown dutch eking erode excel ferry goofy hatch heist hippy hunky hutch jaunt jazzy jumpy kitty leggy nanny patch pinky pound pupal pushy roger rower sassy scram taffy taker tatty tight willy woozy
1
1
0
0
Open post
cliffle @cliffle@hachyderm.io
· 5mo ago
Replying to
@joe @dysfun hmmmm Helix does appear to allow undo across reload. I feel like it didn't in the past, but maybe I was holding it wrong. So that's something.
1
1
0
0
Open post
cliffle @cliffle@hachyderm.io
· 5mo ago
Replying to
Update: Tindie worked for long enough that I was able to fill my order. What does not work, however, is disbursement. So Tindie's just holding my money. How long? Well, they say "ASAP," but they also said this was a scheduled outage. So.
1
1
1
0
Open post
cliffle @cliffle@hachyderm.io
· 5mo ago
Replying to
@gray17 From the description of hard mode I just found online, I think switching this solver between normal and hard is ~1 line of code. (Just changes whether it can pull choices out of its arse, or whether it has to work with the non-eliminated option set per the current green/yellow tiles.)
1
0
0
0
Open post
cliffle @cliffle@hachyderm.io
· 5mo ago
Replying to
@iliana 🎵yurts and cats and yurts and cats and🎵
1
0
0
0
Open post
cliffle @cliffle@hachyderm.io
· 5mo ago
Replying to
@petrillic@hachyderm.io @azonenberg@ioc.exchange hard part is magnetizing all them photons
1
0
0
0
Open post
cliffle @cliffle@hachyderm.io
· 2mo ago
Replying to
@soatok@furry.engineer ...that does not appear to be the consensus answer from the poll
0
3
0
0
Open post
cliffle @cliffle@hachyderm.io
· 3mo ago
Replying to
@mere@infosec.exchange well it sounds like we should keep in touch! 😄 I took a look at the format last night, the best reference I could find was actually hledger's docs: https://hledger.org/1.52/hledger.html#journal-cheatsheet It seems pretty reasonable, and in a lot of ways cleaner than what I've got. It also has a _lot_ of features, far more than I currently support. (In particular I don't support multiple currencies or cost-basis tracking.) But a subset of it might be useful! It sounds like the Ledger family of tools is based on a model of taking a source file, like a CSV, and importing it by modifying a journal file (in Ledger's format), so that you can assign transactions to accounts and add tags and stuff. That's reasonable! But I'm doing something a little bit different: I'm trying to check in the exact files from banks or credit cards or whatever, unmodified, and use them as the source material without duplicating their contents anywhere. So I have sidecar files to add metadata, but the CSV/XLS/PDF/QDF file is always the source of truth. Is this a good idea? I don't know! It's been working for me so far, but wanting to do this is why I haven't seriously attempted using any of the PTA-family of tools. No shade, they seem great.
hledger.org
0
1
0
0
Open post
cliffle @cliffle@hachyderm.io
· 2mo ago
This post captures a lot of my discomfort with generating code using LLMs: you might review it today, but so far everyone I know stops reviewing it eventually. https://dustycloud.org/blog/faulty-towers-vibe-sickness-and-the-vibe-bobsled/ Seriously considering dusting off my degree, I could start being useful in about two years of school plus supervision.
dustycloud.org

Faulty Towers, vibe sickness, and the vibe bobsled -- Dustycloud Brainstorms

0
3
0
0
Open post
cliffle @cliffle@hachyderm.io
· 5mo ago
Replying to
@petrillic@hachyderm.io hmmmm. I should check our design power, but I feel like the modules folks keep plugging into our switch must be using more power than that, just based on how hot they get. But I could be wrong! 2.5W continuous with only a few cm^2 of surface area for radiation can get pretty hot.
0
2
0
0
Open post
cliffle @cliffle@hachyderm.io
· 5mo ago
Replying to
@galaxis I had not, because Tindie are not actually emailing anyone or explaining wtf is going on.
0
0
0
0
Back
313k7r1n3
Elektrine

Tor hidden service

elekhj7afj4qnrr4yd3bkzslsyo5jgfxw3orgjkhlcxifueodybyiiad.onion

I2P eepsite

j6b6cyk6gjmepjih7jjadxgxvvf3lzzujljuu2v4biemzpg3naya.b32.i2p

Platform

  • Email
  • Chat
  • Timeline
  • VPN
  • DNS

Company

  • About
  • Contact
  • FAQ
  • Lite (no JS)

Legal

  • Terms of Service
  • Privacy Policy
  • Transparency Report
  • Report Abuse
  • Warrant Canary
  • VPN Policy

Support

  • support@elektrine.com
  • Report Security Issue
Mail client setup IMAP mail.elektrine.com:993 POP3 mail.elektrine.com:995 SMTP mail.elektrine.com:465
© 2026 Elektrine. All rights reserved. Server: 19:56:17 UTC