- Only by abusing interface {}. The result is horrible.
Go doesn’t have sum types as a first class primitive.
- > Same for computation....You just don't get the implementation for free.
software packages are computation... whilst software takes time and effort (and money) to make, the finished product is virtually free to store and distribute. i see it similarly against the spirit of science. how is there more free software in the laymen space?
- > against the spirit of science to keep them from the general public
Within science, participants have always published descriptions of methodology and results for review and replication. Within the same science, participants have never made access to laboratories free for everyone. You get blueprints for how to build a lab and what to do in it, you don't get the building.
Same for computation. I'm fairly sure almost all (if not all) algorithms in these suites are documented somewhere and you can implement them if you want. No one is restricting you from the knowledge. You just don't get the implementation for free.
- Despite the HN title (and while the focusing optics are similar), the structure in the article was directly milled with an ion beam (FIB), not electrons.
- Software is the blueprint, execution is the machine.
- This was a big thing around the time of Flickr and, if my memory is still working, del.icio.us. There was a push for “url is the new command line” which I wish had gotten more traction because there were some fun things happening. I feel like Yahoo Labs was involved in a lot of it, including Pipes and their ahead of its time JavaScript framework. It’s a strange sliding doors moment for me because I turned down a job there right around this time.
- > Code has always been expensive. Producing a few hundred lines of clean, tested code takes most software developers a full day or more. Many of our engineering habits, at both the macro and micro level, are built around this core constraint.
> ...
> Writing good code remains significantly more expensive
I think this is a bad argument. Code was expensive because you were trying to write the expensive good code in the first place.
When you drop your standards, then writing generated code is quick, easy and cheap. Unless you're willing to change your standard, getting it back to "good code" is still an equivalent effort.
There are alternative ways to define the argument for agentic coding, this is just a really really bad argument to kick it off.
- I agree 100% with the author, clean, easily readable and well structured URLs make the web a better place. URL is a hierarchical structure as introduced in the RFC1738 by a guy you might have heard, Tim Berners-Lee, the inventor of the World Wide Web :-) https://www.rfc-editor.org/rfc/rfc1738
Easily readable URLs is something I learned in the 90s and I still try to enforce in everything I create.
- Would 1000% prefer to use Pi (https://github.com/badlogic/pi-mono) for building anything relating to AI agents.
It's already battle-tested in super popular applications (like OpenClaw for example and many others), has 100s of extensions, is already built in a type-safe language, excellent community. And it also includes a full TUI and WebUI for interface support.
Also Pydantic is a VC backed business now trying to funnel people into using their paid cloud services. No thanks.
- I'm a big fan of writing little bits of code into my URL routers that check for pages and try to correct typos. So if someone types https://some-awesome-site.org/jhon-davisdon it will check and correct it to /john-davidson. What's nice is always delivering the "canonical" link rel when you serve the correct page that way, too. I make the assumption that people still try to type links, sometimes ;)
- I have seen this play out on real projects. The missing edge cases are usually what cause delays, not the main features. Using AI as a checklist and then trimming it down with human judgment seems to work better than relying on assumptions alone.
- > Code has always been expensive. Producing a few hundred lines of clean, tested code takes most software developers a full day or more. Many of our engineering habits, at both the macro and micro level, are built around this core constraint.
Wasn't writing code always cheap? I see this more like a strawmen argument. What is clean code? Tested code? Should each execution path of a function be tested with each possible input?
I think writing tests is important but you can over do it. Testing code for every possible platform takes of course much time and money.
Another cost factor for code is organization overhead, if adding a new feature needs to go through each layer of the organization signing it off before a user can actually see it. Its of course more costly than the alternative of just pushing to production with all its faults.
There is a big difference of short term cost and long term ones. I think LLMs reduce the short time cost immensely but may increase the long term costs. It will take some real long studies to really show the impact.
- If you want to adopt this in your project, you can add a linter that explicitly bans innerHTML (and then go fix the issues it finds). Obviously Mozilla cannot magically fix the code of every website on the web but the tools exist for _your_ website.
- This may be a bit too pedantic, but I consider interface {} to be a way to do polymorphism via type classes. Interface defines an open class of types which implement some interface.
Sum types are a type definition defining something as A or B. Not “anything that quacks like a duck”. But concretely “one of this or one of that”. This enables different syntax, like the match expression to be used, in which you exhaustively list all the variants. The compiler doesn’t need to heap allocate enums because it knows the maximum size of a single value. The compiler and programmer can take advantage of the knowledge that there’s a closed set of values the type can hold. It’s not an open type class.
Result and Option are quite beautiful as sum types. But they’re horrible as type classes. Try implementing them using interface{} in Go. It’s not the same.
- Had an experience like this recently. QEMU stopped compiling for old versions of MacOS (pre-13) w/M1 arch, due to it requiring newer SDKs which don't support older MacOS versions. I put Sonnet 4.6 on the case, and it wrote a small patch, compiled and installed it in a matter of minutes, without giving it any instructions other than to look at errors and apply a fix. I definitely would have just given up without the AI.
- This breakdown in rule of law is unfortunate. Ideally, this would be handled by, in order of desirability:
Below this, is citizens breaking the law to address the situation, e.g. through this destruction. It is not ideal, but it is necessary when the higher-desirability options are not working.- Flock decision-makers and customers holding ethics as a priority, and not taking the actions they are due to sense of duty, community, morals etc - Peer pressure resulting in ostracization of Flock execs and decision makers until they stop the unethical behavior - Governments using legislation and law enforcement to prevent the cameras being used in the way they are - Are you really equating daily weather predictions with meteorological science? That's like saying "they don't know what the next 3 coin flips are going to be but they know half of the next 10,000 will be tails"
- They don't know what's going to happen tomorrow but they know what's going to happen in 30 years.
- To put it into your metaphor: I am not advocating against the existence of bandsaws. I would just rather have bandsaws that do not cut off your fingers if you do not read a book about them first and make it difficult to sew the fingers back on.
There are of course power tools with obnoxious protections that make them difficult to use, but since we are dealing with software here, we are not bound by the laws of physics. I believe that we can create a better tool that is both powerful and easy to use.
- Sounds like mod_speling for Apache: https://httpd.apache.org/docs/current/mod/mod_speling.html
- [dead]
- As a father of an 8 years old, this is very moving.
While Terence is -without a doubt- born with prodigious abilities, I think credit should also be given to his parents Billy and Grace who seem to have managed to simultaneously nurture these special abilities while still letting Terence have a happy (?) childhood. This is not easy to do.
- >how come Africa didn't die out?
Because it's an airborne virus and Africa isn't 1) as connected with the world to begin with and 2) as closely concentrated as urban areas. That's before really looking into Africa's response compared to other countries.
>Why was the death rate pretty much the same in Florida and California?
Because we didn't isolate fast enough between Trump trying to claim it being a hoax early on and desperate political attempts to keep "essential workers" running business. The locality doesn't matter for an airorne virus; just that people continue to go outside and not develop herd immunity.
>Did the EU really need to buy enough vaccine for ten-plus years?
I don't have a crystal ball into 2030. But yes, people still can catch COVID in 2026. Buying only enough for 2020-2022 would be reckless.
Any other questions?
- This feels harsh. Engineers have an endless list of other things to learn that are arguably more important, and it isn’t always worth understanding all the weird edge cases that almost never pop up (to say nothing of Git’s hostile, labyrinthine UX that one would have to deal with).
- According to the EU Identity Wallet's documentation, the EU's planned system requires highly invasive age verification to obtain 30 single use, easily trackable tokens that expire after 3 months. It also bans jailbreaking/rooting your device, and requires GooglePlay Services/IOS equivalent be installed to "prevent tampering". You have to blindly trust that the tokens will not be tracked, which is a total no-go for privacy.
These massive privacy issues have all been raised on their Github, and the team behind the wallet have been ignoring them.
- It's absolutely worth taking the time to learn `jj`, for example, but `jj`'s ideas build on top of `git`'s ideas. If you don't know why it's important that commits reference their parents, for example, that's limiting your knowledge of how VCS works in important ways.
A compromise/synthesis: everyone should absolutely learn how git works internally, but not necessarily how to use the git-specific porcelain/tooling/CLI
- > Instead of continuing with the code, I spawned a fresh Pi session, and asked the agent to write a detailed specification of how the brcmfmac driver works
Planning markdown files are critical for any large LLM task.
- Ubuntu used to be the distro to go do, used to.
- SNAP which is only managed and supported by them
- Tried to reinvent the wheel with sudo-rs
- They are heavily focused into cloud, servers and business
- Following the Rust hype train
I used Ubuntu for 13y or so, it is a Windows within Linux world. Bloated, kernel panic, heavy, privacy issues.
Debian still the king to be used as servers, Mint Cinnamon is the king for desktop, gaming, video editing, 3D design, coding,it just works.
- > Interface defines an open class of types
But can also define a closed set of types, perfectly satisfying "sum types".
> This enables different syntax, like the match expression to be used, in which you exhaustively list all the variants.
Go does not provide this out of the box, but that is not prerequisite for sum types. The mathematical theory says nothing about "the compiler must produce an error if the user doesn't match call cases". There is sufficient information provided by the sum types if you wish to add this to your build chain yourself, of course.