hallettj
@hallettj@beehaw.org
Programer in NYC
- Comment on Willow Protocol 10 months ago:
It looks like there is at least one work-in-pprogress implementation. I found a Hacker News comment that points to github.com/n0-computer/iroh
- Comment on Gravity Storage 101 Or Why Pumped Hydro Is The Only Remotely Real Gravity Storage 10 months ago:
That’s pretty neat! But it seems to me it’s not storage because they’re not putting energy in to get out later. It’s more like mining naturally-occurring potential energy from the Earth’s crust. Probably that potential energy formed millions of years ago when tectonic plate activity pushed the rock up to its present elevation. So - it’s geothermal energy with extra steps.
- Comment on If the kids didn't mutiny, would Picard have been killed when the turbolift fell? 11 months ago:
I think Picard was willing to sacrifice himself to save the kids. He’s an officer who signed up for a risky job - they are not, and also they’re kids. I think he thought that going with them would slow things down enough to add unacceptable risk for the kids. And they did end up spending a bunch of time cobbling together an apparatus to move Picard during which the lift could have fallen.
When the kids refused to go maybe that changed Picard’s calculation: the advantage of going without him diminishes if they use up time arguing. Or maybe it’s TV writing.
But maybe Picard wasn’t certain that the lift would fall. Or maybe if he’d stayed he would have managed to pull out a Picard move to save himself at the last second - you know, the kind that’s easier to do when there aren’t kids watching. Or maybe, as far as he knew someone might rescue him in time. But yeah, he probably would have died, and the kids’ mutiny was the only out that let him save himself while also trying to be noble.
- Comment on If the kids didn't mutiny, would Picard have been killed when the turbolift fell? 11 months ago:
when relays are blown when power reserves fail when life support is gone gravity plating’s pull is relentless it will ever carry on
- Comment on On the end of Discovery 11 months ago:
I also have mixed feelings about Discovery, but for different reasons. I love the characters and character writing. I disagree that the rest of the crew doesn’t get any development - but a lot of that does come in later seasons. My complaints are about the plots. I think season 1 was the most problematic in that respect with progressive improvements over the next two seasons. (I haven’t seen season 4 yet.)
- Overly ambitious arcs, and over-the-top stakes make the story feel unbelievable
- Discovery being the only crew able to address several civilization-threatening crises makes the universe feel small
- Leaning on action and artificial tension (like, the ship will explode in 3 minutes) is a cheap way to seek engagement that deprives us of time seeing the characters drive the story
overly-ambitious arcs in season 1
It wasn’t enough to try to take on the entire Klingon war at the same time as introducing a whole new cast. They also had to add an entirely separate, even more threatening crisis? Making Michael responsible for both starting and ending the war makes you feel like the universe begins and ends on one ship.
We don’t need constant threats of annihilation in the story to be engaged! The most compelling Trek writing has had much lower stakes. When we have had high stakes, like in The Best of Both Worlds and The Dominion War, the writers managed to make us feel like we were seeing a pivotal part of a much larger conflict. They took the time to build up to the big tension, and took the time to play out satisfying resolutions. And they didn’t make it the entire show.
But things got gradually better,
over-the-top stakes in season 2
In season 2 they managed to limit themselves to a single major crisis. And they stepped it down from end-of-every-universe to end-of-all-life-in-one-galaxy. But still unbelievably over-the-top. Still too much artificial tension. Still too Discovery- & Michael-centric.
I love Michael, and I enjoy watching her be great at everything. But she can be part of a larger society of amazing people, and still be amazing herself.
somewhat lower stakes in season 3
And then they stepped it down again to maybe-end-of-what’s-left-of-the-Federation.
In season 3 things slowed down enough, and they spent enough time letting more of the cast develop and drive the story that I felt like I could enjoy the story without gritting my teeth.
season 3 world-building
But I do have similar feelings: the world-building of what is essentially a whole new galaxy in season 3 feels underdeveloped. I was initially frustrated by what felt like an attempt to distance Discover from Star Trek. Trek is supposed to be about a future utopia - we have enough other works that wallow in dystopia. But it seems like maybe it’s only supposed to be dystopian for one season? The ambitious writing is certainly still there.
I don’t disagree with you about mirror-Georgiou’s participation being unbelievable. The thing where everybody loves Michael to the degree where it becomes their primary motivation is too Mary Sue-like. Again I think that’s at its worst in season 1. OTOH having Michelle Yeoh on the show is a lot of fun so I’m inclined to forgive the stretch in that character arc.
- Comment on GitHub - paperwm/PaperWM: Tiled scrollable window management for Gnome Shell 11 months ago:
PaperWM has columns - you can move multiple windows into a column (Super+I by default, or Super+O to move a window out of a column). When you move windows left or right or resize horizontally the column moves or resizes as a group. That’s the only feature that groups windows.
I mention Niri because I’m interested to see more implementations of the same idea. The only other scrolling window manager I know of is CardboardWM which is long dead. A native implementation like Niri might be able to explore ideas that are difficult to implement in an extension.
- Comment on GitHub - paperwm/PaperWM: Tiled scrollable window management for Gnome Shell 11 months ago:
I’ve been using this for maybe a couple of years, and I love it! I like that windows stay at the sizes I set them to, and at the same time I can put as many windows in a workspace as I want.
PaperWM is not bug-free, but an active dev community has grown around it, and they do a lot of work to keep it running as smoothly as possible. That includes the essential task of working around breaking extension API changes when new Gnome releases are coming.
I’ve also been keeping an eye on Niri which applies the same idea to a standalone window manager. I haven’t switched because Niri doesn’t currently implement XWayland. But it looks like Wine is getting closer to native Wayland support so XWayland might not be a requirement for me for much longer.
- Comment on Bringing the Unix Philosophy to the 21st Century 11 months ago:
And there is also Nushell and similar projects. Nushell has a concept with the same purpose as jc where you can install Nushell frontend functions for familiar commands such that the frontends parse output into a structured format, and you also get Nushell auto-completions as part of the package. Some of those frontends are included by default.
As an example if you run
ps
you get output as a Nushell table where you can select columns, filter rows, etc. Or you can run^ps
to bypass the Nushell frontend and get the old output format.Of course the trade-off is that Nushell wants to be your whole shell while jc drops into an existing shell.
- Comment on What are your opinion on in-person conferences? 11 months ago:
I’m a fan! I don’t necessarily learn more than I would watching and reading at home. The main value for me is socializing and networking. Also I usually learn about some things I wouldn’t have sought out myself, but which are often interesting.
- Comment on It's just a song, right? 11 months ago:
Somehow I’m very familiar with the first line, but none of the other lyrics. TIL!
- Comment on What is your favourite font for code ? 1 year ago:
That’s a very nice one! I also enjoy programming ligatures.
I use Cartograph CF. I like to use the handwriting style for built-in keywords. Those are common enough that I identify them by shape. The loopy handwriting helps me to skim over the keywords to focus on the words that are specific to each piece of code.
sample Haskell code with a handwriting font variant for the words “let”, “in”, and “where”
I wish more monospace fonts would use the “m” style from Ubuntu Mono. The middle leg is shortened which makes the glyph look less crowded.
- Comment on Your mother was horta and your father smells of icoberries 1 year ago:
Well now the tense standoffs in TNG will forever be undercut by giggling
- Comment on What's the best dialogue in your opinion? 1 year ago:
One of my favorites is from Sisko, but I guess this one is more of a soliloquy than a dialogue,
The trouble is Earth! On Earth, there is no poverty, no crime, no war. You look out the window of Starfleet Headquarters and you see paradise. Well it’s easy to be a saint in paradise, but the Maquis do not live in paradise! Out there, in the Demilitarized Zone, all the problems haven’t been solved yet! Out there, there are no saints! Just people! Angry, scared, determined people, who are going to do whatever it takes to survive, whether it meets with Federation approval or not!
- Comment on historical materialism moment 1 year ago:
It’s Mao Zedong. He said, “Political power grows out of the barrel of a gun.” He also led China to mass starvation and terrible poverty, so not someone Picard would subscribe to.
- Comment on Confusing git terminology 1 year ago:
git rebase --onto
is great for stacked branches when you are merging each branch using squash & merge or rebase & merge.By “stacked branches” I mean creating a branch off of another branch, as opposed to starting all branches from
main
.For example imagine you create branch A with multiple commits, and submit a pull request for it. While you are waiting for reviews and CI checks you get onto the next piece of work - but the next task builds on changes from branch A so you create branch B off of A. Eventually branch A is merged to main via squash and merge. Now main has the changes from A, but from git’s perspective main has diverged from B. The squash & merge created a new commit so git doesn’t see it as the same history as the original commits from A that you still have in B’s branch history. You want to bring B up to date with main so you can open a PR for B.
The simplest option is to
git merge main
into B. But you might end up resolving merge conflicts that you don’t have to. (My memory is fuzzy, but I think this has happened to me.)Since the files in main are now in the same as state as they were at the start of B’s history you can replay only the commits from B onto main, and get a conflict-free rebase (assuming there are no conflicting changes in main from some other merge). Like this:
$ git rebase --onto main A B
The range
A B
specifies which commits to replay: not everything after the common ancestor between B and main, only the commits in B that come after A. - Comment on You got my note! 1 year ago:
It did have the drumming for me
- Comment on California Now Has A Little Over 6,600 MW Of Energy Storage 1 year ago:
Power tells you how large of a gap in grid capacity-vs-demand storage can cover while renewables are below peak production. That’s the important number, as long as the energy stored is sufficient to last until renewable output goes back up.
Giving an energy storage number by itself could be misleading because it seems the batteries that have been built take longer than an hour to discharge. So for example 26 GWh storage does not equal 26 GW grid capacity.
But this article, like many others does seem to be loose with the power-vs-energy metrics:
If 6,600 MW doesn’t sound like that much, consider it is enough to supply electricity to about 6.6 million homes in California for 4 hours
Maybe the implication is that the total energy storage is 26,400 MWh?
- Comment on Which language you wish would really grow and reach mainstream adoption? 1 year ago:
Just a guess: I think Inform fits your description
- Comment on Alright, where do I begin? 1 year ago:
Deep Space 9 is a different animal. It’s fantastic if you like a political drama. There is less space adventure than the other series.
- Comment on How Tom Polce and Kay Hanley Took Star Trek To Broadway, And Beyond 1 year ago:
give me something
- Comment on Watching Threshold again. Yay or nay? 1 year ago:
I have a hard time getting over the thing where the story introduces some amazing new capability, and it’s never explored further. In this one it’s, “we found a way to get home instantly, but we’d have to do a thing in sick bay to reverse the side-effects.” A similar case is the episode with the planet of friendly hedonists with long range transporters that it turns out they can’t use because “the power systems are incompatible”.
I’m sure if I weren’t so uptight I’d enjoy these episodes more.
- Comment on [TECHCRUNCH] Square says daylong outage caused by DNS error 1 year ago:
Oh no! I’m gonna guess that lots of DNS caches picked up the bad configuration, and they couldn’t do anything but wait about 86400 seconds for those caches to expire. Caching is so hard!
- Comment on [HN] You Don't Need UUID 1 year ago:
The proposal here is to use 11-character base 58 IDs as a more human-friendly alternative to UUIDs. The article makes a good point that 58^11 is a large enough space to uniquely identify probably anything you want to. The article also talks about avoiding monotonically-incremented IDs to avoid leaking information. It looks like the idea is to randomly generate IDs? But the article doesn’t discuss collision probabilities. (Maybe this is covered in the linked Tom Scott video.)
Anyway according to an online calculator I found, an 11-character ID using a 58 character alphabet will have about a 1% chance of a collision after 1 billion generated IDs.
The article also argues that using UUIDs for collision resistance combined with user-facing friendly IDs gives you the worst of both worlds which makes sense to me.
- Comment on [HN] Niri: A scrollable-tiling Wayland compositor 1 year ago:
Nice! I just posted today about how I couldn’t find a maintained scrolling window manager
- Comment on The technical merits of Wayland are mostly irrelevant 1 year ago:
I built a wireless Corne keyboard from a kit. It uses nice!nano controllers running ZMK. Previously when I used a Kinesis Advantage 2 I replaced its controller board with a KinT which uses a Teensy as its controller. Customizing the keyboard with custom firmware is much nicer than customizing in the OS. But it can be a commitment. Although there are some keyboards that come the reprogramming options out-of-the-box, like the Kinesis Advantage 360, the Moonlander, all of Keyboardio’s models.
- Comment on The technical merits of Wayland are mostly irrelevant 1 year ago:
The default Gnome installation on NixOS uses Wayland. And GDM too - it’s pretty much the same as other distros I’ve used. I’d guess the Plasma install option is also on Wayland.
I do have some issues with screen sharing. It generally works fine in Firefox and Discord. But screen sharing in Slack crashes every time.
- Comment on The technical merits of Wayland are mostly irrelevant 1 year ago:
I’ve been using Wayland for a while, but I remember two factors that might have held me back in another universe:
- lack of support from Xmonad (so group 3 from the article)
- I used to make extensive use of keyboard remapping using xkb & xcape, and last I checked that doesn’t work in native Wayland apps. (I think that would’ve put me in one of the niche groups.)
I’m not sure if those restrictions still apply. Luckily for the simplicity of my life I switched to Gnome (partially for Wayland support, partially for a simpler setup), and I switched to doing keyboard reconfiguration in hardware.
- Comment on Day Three (from finding the melon bud) 1 year ago:
Looks very nice! My 9-year-old has just planted watermelon seeds in the backyard to raise money to buy a horse. He’s really getting into planning all aspects of this business. I showed him this picture for inspiration.
- Comment on What does it really mean to test an interface not the implementation? 1 year ago:
No problem! I thought there was a good chance you already know the concept, just not in the exact, unfortunately-overloaded words of your post title.
- Comment on What does it really mean to test an interface not the implementation? 1 year ago:
That advice does not literally refer to
interface
the programming language feature. It means to test the observable behavior of a component, not internal implementation details.In your example, write tests for both Rectangle and Triangle that call
area
, and assert the result is correct. But do not test, for example, the order of mathematical operations that were run to calculate the result. The details of the math are an internal detail, not part of the “interface”.