Recent submissions

Comment · 4 hours ago
It's funny that she chose black as the color of 2027, because from what I can see, teen and twenties fashion has moved toward late 80s early 90s lightwashed blue jeans and light color tops, robins egg blue on white. Maybe the next trend is to darkwashed bluejeans next. I just watched Labyrinth and could definitely see Jennifer Connelly's style coming back next, we are practically half-way there).

Not sure if Gen Z or Millenials will get the idea first, but we have not experienced a move to 'I should dress like my parents'. So far it's still been 'let's resurrect this old look'. Mom-look and dad-look is not in currently. It will come back.

Comment · 2 days ago
I think about my younger self who believed in 'capitalism'. The idea is great in concept, but let's be clearer that if you don't have capital, then you personally don't and won't have capitalism.
Comment · 3 days ago
Exactly! That's why the "pelican riding a bicycle SVG" test is unfair. It's a token predictor, not an intelligence. What corpus of SVG data has the LLM been trained on? Only in the last 10 years has "drawing using data" been in existence. Midjourney can generate you a pelican riding a bicycle artwork easily. But instead, if the test is intentionally based on a task with no corpus, then you get garbage.
Comment · 9 days ago
I don't like the attribute dot syntax. On the positive side, it's very readable. and the left-to-right syntax is a very clear and strong organization technique.

That said, it has a problem with 'rootedness' as in 'what is the root of this attribute string'.

Firstly, 'with' keyword allows you to silently slice off the front end when the attribute string originates from a passed-in argument variable.

Secondly, when you arrive at foo in foo.bar, you have no concept of what the ancestor path looks like; someone is going to do an import of this file, likely store it in a named variable in the context it is needed, and then dispose it. Every time we need foo, it's being referenced from some ephemeral external context. So it's impossible to say or know "foo has 5 references" via static analysis unless we are just grepping it.

Thirdly, (related to above), when you declare services.tailscale.enable = true; you are relying on some ephemeral other location to find meaning in services-dot as declared in the current file. Metaphorically, we can't actually turn and face upstream looking up the call stack to easily see how we arrived (nor how many times we expect to arrive) at this site.

'Self' in the context of flakes is another great example of emphemeral-ness and non-discoverability...what is accessible under 'self'? It takes a PHD to describe it.

Allowing strings mixed in (foo.bar."baz".biz) and the expectation that you might be interpolating (foo.bar."${baz}".biz) is a whole nother ball of wax...

Comment · 10 days ago
Dude how do you survive every day and not have anxiety about the maintainability of that? Seems like you have to be a full-time sysadmin with your music hobby and an appropriate recurring IT hardware budget.
Comment · 10 days ago
I know linux is prided for it's low-level C code, but linux is desperately missing an object-oriented API. C# flavor below:

var service = thisSystem.GetService("rss-news-feed");

service.SetRefresh(TimeSpan.FromHours(1));

service. //<----now we can autocomplete everything a service can do.

Edit: it's a travesty that OO get's shoehorned into architectural design of large systems whereas it would be ideally suited in a Nix-like API for interacting with operating systems which are 'solved'.

Comment · 17 days ago
I think this is a perfect description. The feelings continue across generations with no answer. Meanwhile society continues to shift underneath mens' feet. And still tries to claim it is a personal problem. The browbeating/apathy continues.
Comment · 20 days ago
it's not the harness, but the objective. A load-bearing center. We break it down, and adjust.
Comment · 20 days ago
I am a hobbyist and work in a different field than software dev. Old-school guys in my field are super-fixated on the UX and treat the work like 'implementation details.' They abstract away the time and effort such that really old school guys (who have been top-of-the-pyramid in their business) come off as insulting with their 'I don't care what it takes, get it done' mentality.

I can't help but feel that when I mimic their behavior with an LLM, it works great. Just keep pounding claude saying what I want, prove it with tests, and have claude give me a 1 shot script to build and launch the app. I get hands-on time with the UX a lot more (I think?) and claude happily iterates. Most people stop happily iterating after like iteration 2; then becomes teeth-pulling.

So to your point, claude's tests are gibberish but the 'testing' via user interaction is what I think the future is going to look like.

We will need some novel systems where hot-reloading is the default experience and you are looking at the build output constantly as opposed to the source.

claude was like "I took your logic, removed the shared state, ran the tests 600 times in parallel, proved no state is leaking across runs". I was impressed...

Comment · 20 days ago
I recently started using Claude and I found it great that Claude is constantly writing tests since I did not due to lack of time. That said, Claude has this ability to reach into test harnesses and output all kinds of obscure syntax and language features that the tests are hieroglyphic. I'm pretty much like 'ehhhhh ok claude, you do you...i'm just going to keep writing the business logic over here..."
Comment · 22 days ago
What is that effect called where text "glitches" with like chromatic abberation around the edges... SGRRK
Comment · 27 days ago
Fair point on the unbalanced braces. However,

You could assume that { and } as a structural delimiter only applies to node types that can nest. Since blobs do not nest, then a tag followed by a backtick (or multiple backticks) could be a valid delimiter in lieu of braces. In this case, tags would extend to blobs.

In my opinion, pairing minimal node types with differing delimiters helps legibility and is not overly mentally taxing to learn when node types are few.

Comment · 27 days ago
Can you think a little more about your decision to strongly type code blocks. Some domains have no need for code escaping but do need blob text escaping (which you already have defined elsewhere.) Technically you could treat code via 'this is a bag named code with a blob, therefore it is code."
Comment · 27 days ago
Hijacking the plain text discussion to ask what the best tools are to convert plain text to lexed/parsed output?

I'm assuming any tool in this regard would expect the user to write an EBNF grammar.

I found ANTLR to be nice but it's way too convoluted to use as a tool with Java dependencies and seems to be stagnating. And tree sitter just is too convoluted and requires the added C/C++ overhead to understand how to use it.

Comment · 1 month ago
Would you trust this device on the tailnet? I can't understand why GLiNet would not open source the firmware. It's maddening that the stack is literally linux OS running modified open-source KVM code, and even though they cater to enthusiasts, they still won't release the Comet firmware source.

It's paranoia, but until they release the source, it's not proven paranoia.

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton