HN user

renerick

138 karma
Posts0
Comments61
View on HN
No posts found.

Are you or people around you do that for hours every night? Is this a deliberate activity, or are you including random quick glances? How often is yours or people's around you sky watching experience actually negatively affected by satellites?

Sun rises and downs is not affected by satellites, due to overwhelming brightness difference. For casual stargazers, light pollution is much more of an obstacle than the satellites. Plus, for half a day on average, the stars not available at all, unlike Starlink or other satellite services

I'm not a Starlink user either, I do like to look at the sky with naked eyes and telescopes, but I do not share the sentiment that it's imperative to keep it "pure" for the sake of whatever. Also, a personal anecdote, satellite spotting is quite fun :)

By picking red you didn't contribute to anything at all, this button does absolutely nothing in practice. If you remove the red button, leaving the choice between pressing blue and not participating at all, the choice to not participate seems quite obvious. The red button adds some "weight" to the decision, but it's materially the same

This document defines a scheme for "AI-adressable" resources without much care about definition of "AI-addressesable" or even the properties of such resources, that require a dedicated protocol.

I get very strong "E = mc^2 + AI" vibes from it, just shoehorning the coveted letters everywhere

You said it yourself - "sugary drinks... tend towards unfavorable consequences". The change happens as the outcome of the desire, not "in the process of the pursuing it".

Typst is fantastic and I recommend to dive into it to see how much value it offers. To me personally, the biggest strength is the ergonomics of both the tooling and the language, and how ergonomics persist even between documents of various complexity. Writing a paper in LaTeX is nice, but making something like a CV takes some patience. Meanwhile, in typst it was quick to get started and go all the way to building resumes, character sheets, and I know of at least one occurrence of implementing symbolic math in typst language. It's not without quirks, but still, very solid alternative

I would argue that the second screenshot with redesigned Lighthouse is slightly worse that the "old" design

- the vertical ruler between the sidebar and the content is gone, making page structure less pronounced - the redesigned dropdown menu has no borders or shadows and blends with the primary background - the redesigned dropdown menu lost the little dot which highlighted currently selected option, replacing it with a folder icon, but now it's not useful, because it's the same folder icon for each option - the old design had really nice and noticeable "Add URL" button. I suppose, it was removed in favor of the "plus" button in the sidebar, but it's not nearly as noticeable and without the label it's not clear what it actually does

Sure, the issues in the old version are valid, but I think the redesign introduced more severe usability issues instead of mostly aesthetic issues

Reusable components are prerogative of the templating system, such as React, or Vue, or server side templates that the framework of your choice uses. Htmx works with already rendered HTML fragments from the back end and doesn't do templating on its own, so there's simply no room for it to "solve" reusable components

I felt the need to clarify this point:

As such, JSON driven APIs can't be REST

I made it sound like JSON APIs can't be REST in principle, which is of course not true. If someone were to create hypermedia control specification for JSON and implement hypermedia client for it, it would of course would match the definition. But since we don't have such specification and compliant client at this time, we can't do REST as it is defined

Htmx essays have already been mentioned, so here are my thoughts on the matter. I feel like to have a productive discussion of REST and HATEOAS, we must first agree on the basics. Repeating my own comment from a couple of weeks ago, H stands for hypermedia, and hypermedia is a type of media, that uses common format for representing some server-driven state and embedding hypermedia controls which are presented by back-end agnostic hypermedia client to a user for discoverability and interaction.

As such, JSON driven APIs can't be REST, since there is no common format for representing hypermedia controls, which means that there's no way to implement hypermedia client which can present those controls to the user and facilitate interactions. Is there such implmentation? Yes, HTML is the hypermedia, <input>s and <button>s are controls and browsers are the clients. REST and HATEOAS is designed for the humans, and trying to somehow combine it with machine-to-machine interaction results in awkward implementations, blurry definitions and overcomplication.

Richardson maturity model is a clear indication of those problems, I see it as an admission of "well, there isn't much practicality in doing proper REST for machine-to-machine comms, but that's fine, you can only do some parts of it and it's still counts". I'm not saying we shouldn't use its ideas, resource-based URLs are nice, using feature of HTTP is reasonable, but under the name REST it leads to constant arguments between the "dissertation" crowd and "the industry has moved on" crowd. The worst/best part is both those crowds are totally right and this argument will continue for as long as we use HTTP

It's not like Figma forces to use those features, right? And also, hot take, "limits the possible expressions" is a good thing for application design. Application is not art, first and foremost it must solve user's use case, be accessible, discoverable, ergonomic and practical to implement. Aesthetics must serve and complement those purposes, not be the focus of the design

Text formats have the advantage of better support in version control systems. SOPS does similar thing, it stores encrypted values in yaml/json, and from my experience using this approach with git it is indeed an improvement over, say, Ansible vault, which essentially turns text files into blobs

I've programmed machines to use those links so I'm pretty certain machines can use it

I'm curious to learn how it worked.

The way I see it, the key word here is "programmed". Sure, you read the links from responses and eliminated the need to hardcode API routes in the system, but what would happen if a new link is created or old link is unexpectedly removed? Unless an app somehow presents to the user all available actions generated from those links, it would have to be modified every time to take advantage of newly added links. It would also need a rigorous existence checking for every used link, otherwise the system would break if a link is suddenly removed. You could argue that it would not happen, but now it's just regular old API coupling with backward compatibility concerns.

Building on my previous example of hn comments, if hn decides to add another action, for example "preview", the browser would present it to the user just fine, and the user would be able to immediately use it. They could also remove the "reply" button, and again, nothing would break. That would render the form somewhat useless of course, but that's the product question at this point

H in HATEOAS stands for "hypermedia". Hypermedia is a type of document that includes hypermedia controls, which are presented by the hypermedia client to a user for interaction. It's the user who makes decision what controls to interact with. For example, when I'm writing this comment, HN server gave a hypermedia document, which contains your comment, a textarea input and a button to submit my reply, and me, the human in the loop, decides what to put in it the input and when to press the button. A machine can't do that on its own (but LLMs potentially can), so a user is required. That also means that JSON APIs meant for purely machine to machine interactions, commonly referred to as REST, can't be considered HATEOAS (and REST) due to absence of hypermedia controls.

Further reading:

- https://htmx.org/essays/how-did-rest-come-to-mean-the-opposi...

- https://htmx.org/essays/hateoas/

So it's basically just static a visual reproduction (aside from the brush). Nothing wrong with that, but I still was hoping for a bit more functional demo, at least with working menus/buttons/dropdowns and layout management.

Claude 4 1 year ago

NVIDIA sells the shovels, then OpenAI/Anthropic/Google make an excavator out of shovels (NVDIA also seems to work on their own excavators), then some startup starts selling excavator wrapper. I don't know if there are any snakes at the bottom, but there's surely a whole lot of shovel layers on the way down.

It's not just more data, it's deeper understanding of the fundamentals, of the idea and of the tools used, as well as the process of creation itself. It's what makes studying art interesting: why did author chose to do this and that, what's their style, what was the process, etc. For LLM the answers will universally be "because it was in the prompt and there was appropriate training data" and "the author prompted the model until the model returned something tolerable". You may argue that not all art has or needs depth, or that not all people are interested in it, but that doesn't mean that we should fill our cultures with empty boring slop.

That's very subjective

I was expressing my opinion of this argument which absolutely is subjective

You don't know how the brain works.

Neither does grandparent comment's author, didn't stop them from making much bolder claims.

This is completely absurd and reductive point of view, which I always assume is a cop out. Just because it's called "machine learning" doesn't mean it actually has anything to do with how human learning or human brain works, and it's certainly not "exactly how" or "very same". There's much more going on on in human creative process, aside from mere "mixing": personal experience, understanding of the creative process, technique and style development, subtext, hidden ideas and nuances, etc. Computers are very good at mixing and combining, but this is not even close to what goes into actual creative process. I hate this argument

This article covers my own experience with JJ very accurately. I'll even go as far as to say that if had to write my own article about jj, I'd use exactly the same talking points and examples. Great writeup

Explaining loops is independent of the concepts of collections though. It's also more general, since map/filter/reduce use some kind of loops under the hood anyway, the fact that probably shouldn't be ignored in education process. Unless of course you go with pure functional recursive iterator, but good luck explaining that one.

Maps and filters also require understanding of higher order functions and the very idea of passing function around as a value. I would argue that implementing map/filter with a loop and then demonstrating how this pattern is generalized as .map()/.filter() functions is better and more accessible

It's hard to debate that mathematical notation has a lot of room for improvement. High level algebra is very cryptic and often looks like an arcane incantation rather than something comprehensible for an unknowing person.

That said, as a person who moderately enjoyed math in high school and university, this functional notation would make me hate math infinitely more. It's would look like Lisp, which, at high level, looks just as cryptic as algebra. The sheer amount of braces and mistakes that would be made when reading and writing them is nauseating.

Infix notation, for all its flaws, provides important visual aid for understanding the structure of the expression (the sum of two fractions looks very different from fraction of two sums for example). Whereas with functional notation it's like working on linear textual representation of abstract syntax tree. Trust me, nobody wants to read, write or transform one by hand

20 years of Git 1 year ago

It's really not that long. Once you figure out that

1. jj operates on revisions. Changes to revisions are tracked automatically whenever you run jj CLI

2. revisions are mutable and created before starting working on a change (unlike immutable commits, created after you are done)

3. you are not working on a "working directory" that has to be "commited", you are just editing the latest revision

everything just clicks and feels very natural and gets out of the way. Want to create a new revision, whether it's merge, a new branch, or even insert a revision between some other revisions? That's jj new. Want to move/reorder revisions? That's jj rebase. Want to squash or split revisions? That's jj squash and jj split respectively. A much more user-friendly conflict resolution workflow is a really nice bonus (although, given that jj does rebasing automatically, it's more of a requirement)

One notably different workflow difference, is absence of branches in the git sense and getting used to mainly referring individual revisions, but after understanding things above, such workflow makes perfect sense.