HNHacker News
TopNewBestAskShowJobs

zachallaun

1,323 karma · joined October 24, 2010

zach at keycult dot com
submissionscomments
zachallaun··on GPT‑5.3 Instant
I feel you. I've been using en-dash in my writing for decades, but finding myself removing them now for fear of being mistaken for an LLM. (They tend to use em-dash, but I don't think people are going to distinguish between – and —.)
zachallaun··on enclose.horse
Ton of fun! Was interesting to see how my strategy evolved as well. I started out trying to make a large pen, but quickly realized that wouldn't work, so I made a small pen and then started moving it out. This allowed me to see individual optimizations and try alternatives. Even at the end, about to hit submit, I wasn't sure my solution was optimal, but ended up with the optimal sizse-86 solution for today's challenge. Will try again tomorrow!
zachallaun··on Exploring Gleam, a type-safe language on the BEAM
I'm not so sure. Both Go and Rust seem like examples of very popular ecosystems with a set of common, "blessed" tooling. (They didn't have everything from the get-go, e.g. rust-analyzer was very popular before it became part of the Rust project, but it still demonstrates that a large ecosystem can rally around a set of common tooling.)
zachallaun··on Show HN: Multilspy – Cross platform framework to develop Language Server Clients
Neat!

As someone who has contributed to a language server, I've wanted a language/editor agnostic way to interact with it, primarily for the purposes of black-box testing. I wonder if this could be useful for that?

What's the process for adding support for a new language?

zachallaun··on Bob_cassette_rewinder
I read this as "owner of _a_ Bob", as opposed to the owner of the actual company.
zachallaun··on A Raspberry Pi 5 is better than two Pi 4S
I think someone demonstrated in the announcement thread that, adjusting for inflation, the Pi5 is going to be cheaper at release than the Pi4.

Ultimately though, at least IMO, the Pi isn't about being cheap, it's about being capable while staying a great value. I bet there's a lot of hidden complexity in the pricing, and it's very possible that they'd have to compromise significantly more than 12.5% of the functionality/performance to get a 12.5% price reduction (to $35).

zachallaun··on The ReMarkable Streaming Tool v2: Elevating Remote Work Efficiency
A naive approach that may still work well is to simply break up the image into fixed, predetermined regions. I don't believe this would be significantly more work for the server if it's already comparing pixel-by-pixel, and the average frame will probably contain updates only in one region. Even breaking it into 4 or 6 would, I think, be a significant payload reduction.
zachallaun··on Write Elixir NIFs in Rust
Ehhh, a lot of high level languages support low-level interop. Python, Ruby, etc. It's not something you usually reach for as a user, but rather as a library author.

Of course everyone wants their language to be faster, but the interop story for Elixir/Erlang is very good, all things considered.

zachallaun··on Incident with Issues and Pull Requests
Similar issues for me. I can load github.com and my profile, but visiting a repository (or trying to git pull a repo with the https origin) returns a 500.
zachallaun··on Datomic is Free
day-tah-mick (think datum/atomic)
zachallaun··on Make your CLI demos a breeze with zero stress and zero mistakes
Same, I’ve been working on a command line tool and set up VCR to record demos (https://github.com/zachallaun/mneme/blob/main/examples/demo....). I’d be very interested if anyone could speak to the fundamental differences between VCR and the tools referenced in the OP.
zachallaun··on Fly.io Status – Consul cluster outage
Yep! More putting it out there for other folks. I’m also a somewhat frustrated paying customer, but as I’m dealing with my own growing pains, I relate to what they’re going through. I’ve personally migrated my DB to Crunchy to somewhat mitigate the risk.
zachallaun··on Fly.io Status – Consul cluster outage
Relevant response from the Fly community forums: https://community.fly.io/t/frequent-outages-is-really-demons...
zachallaun··on Naming Elixir Phoenix context functions
> Also, why are we using the contexts directly in the controllers and keep the top-level module empty?

Because the context is the “public API” for the rest of your application to use. You can have as many layers below the context as you want, often purely functional, composable, and testable.

zachallaun··on Naming Elixir Phoenix context functions
I don’t know what the person you’re responding to is getting at, but I found the article very useful! Exposing the changeset through the context is also useful in LiveViews when dealing with forms — once the changeset is valid, calling the relevant function with the same attrs should succeed.

Re: the sibling comment referring to queries, nothing you’re doing in the article prevents that.

Ecto’s changesets are often an unfamiliar concept, so I wonder if that’s where some confusion is coming from.

zachallaun··on Open source USB C camera with C mount lens, MIPI Sensor, Lattice FPGA, USB 3.0
Where can we follow the development of this new project?
zachallaun··on Ask HN: Bluetooth kinda sucks. Why don't we have something better?
One of my favorite wireless devices is a Logitech gaming mouse (G903) that I use with a mousepad that is also a charging mat. It uses a low-latency proprietary wireless protocol: https://www.logitechg.com/en-us/innovation/lightspeed.html
zachallaun··on Turn spreadsheets into website designs
Kinda funny UI thing: I’m on my phone, and it took me longer than I care to admit to realize that the triple dash next to the logo on the top left wasn’t a fancy hamburger icon to open mobile nav. =)

I actually thought there might be a bug preventing my touch press from being captured, before realizing that I was just being a bit of a doofus.

zachallaun··on The SQLite Code of Ethics
While I would never agree to this particular Code of Ethics, this document isn't intended to be some license you agree to in order to use SQLite. See "2.1. Scope of Application" -- It makes it clear that this is intended to be the developer's promise to the user, not the other way around.
zachallaun··on Tailscale SSH
Just want to say thanks: This is insanely cool/easy. Combined with the VSCode Remote SSH extension and MagicDNS, it's now insanely easy to work on a project in a remote environment. I was recently reading through a relatively long post on setting up SSH through Tailscale to access a WSL2 environment, and now it's literally as easy as popping open VSCode in any environment that I have Tailscale installed on and accessing `user@my-magic-dns-machine`. Great work!
zachallaun··on Roof blows off new Tesla Model Y
He's responding to another anecdote, demonstrating that any anecdote likely has a counter-anecdote. You should read the context of a thread before replying snarkily.
zachallaun··on Automerge: JSON-like data structure for building collaborative apps
There's different ways you could do it, like calculating some hash of the value and picking the one with the greater value. If the hash function is good, then you get an "arbitrary" result that would still be consistent regardless of order.
zachallaun··on Automerge: JSON-like data structure for building collaborative apps
From my reading of the docs, Automerge will arbitrarily pick a "winning" document in the case of a conflict, but guarantees that the same winner will be chosen if the merge were to occur, for instance, in a different order:

    // Pretend doc1 and doc2 are already Automerge objects
    let doc1 = { x: 1 }
    let doc2 = { x: 2 }

    // x will be either 1 or 2 (arbitrarily chosen), but
    // res1 will always == res2 regardless of choice
    let res1 = Automerge.merge(doc1, doc2)
    let res2 = Automerge.merge(doc2, doc1)
    
    res1 == res2 // true
However, there may be cases where you want to manually resolve conflicts, and if that is the case, the `_conflicts` property is there so that you can undo whatever merge occurred automatically and set the "winner" yourself.
zachallaun··on Render realtime RethinkDB results in React
Could you elaborate on this? This project seems to be moving in the same direction the React team is with Relay and GraphQL – the component describes the query it requires to render itself, and a query/caching layer executes the query automatically.
zachallaun··on Marty.js – A JavaScript library for state management in React applications
If you haven't seen it yet, they have a nice Flux write-up in the docs: http://martyjs.org/guides/flux/index.html. (I apologize if you've already seen it, though.)
zachallaun··on Fundamental Qualities of Good Programmers
It sounds like you missed the footnote:

> This is not to say that all programming languages are equivalent, that they are equally good at all tasks, or that it isn't worth learning more than one programming language. Just that all good programmers have a deep understanding of at least one language.

zachallaun··on A Week with Elixir
Some previous discussion: https://news.ycombinator.com/item?id=5798049
zachallaun··on What we look for in students
I'm a facilitator at Hacker School, which makes me responsible for a large number of admissions decisions.

While we do make money through referrals, our ability to place someone at a company we work with is not something we consider while doing admissions. (This may be hard to believe, but trust me.) We have a significant number of international students, as well as students who we don't believe will get a job through us for one reason or the other, each batch. We admit based on whether we think someone will make a good Hacker Schooler.

We also try to respond to anyone who asks for clarification about a decision. I'd love to hear from you, and I'd be happy to look into your last application; especially so if you think we made a mistake! Ping me at zach@hackerschool.com.

zachallaun··on Prismatic releases Graph/Plumbing for Clojure
Some of the capabilities (and past HN discussion) can be found here: https://news.ycombinator.com/item?id=4641465
zachallaun··on List Comprehensions in Eight Lines of Clojure
That second example is awesome! And it demonstrates that I don't know nearly enough about Ruby. :) Thanks for contributing it.
Page 1 of 5Next →