skysight-inc/HackerNews huggingface dataset:
> I genuinely can't think of one impressive thing Google has done in the last 15 years.

The open sourcing and open patenting of VP8, and the work done on VP9 and AV1 were genuine public goods from Google.
Thinking in Actors – Challenging your software modelling to be simpler
One of the interesting things about these systems is that the early versions (like shown in the ads), didn't have a single CPU chip package. The CPU was on a card and was comprised of various chips and circuitry that you could see (not all hidden on the inside of a single CPU package). It was not until the P2SC (Power2 Super Chip) that everything made its way onto a neat and compact CPU form factor that we typically think of. This P2SC was first made available IIRC on the 7013 Model 595.
I sadly have to agree. Even ignoring all the poor design choices (the photos app, control center, etc), ugly new UI changes, and the confusing-at-best and misleading-at-worst integration of "AI", it's just incredibly unstable. I've never had as many performance issues and freezes during normal day-to-day tasks as I do with iOS 18.

Safari constantly lags, and has a nasty habit of tabs becoming either completely unresponsive or completely blank, the latter of which has actually been an issue for a few iOS versions, but has gotten worse. Battery life is absolutely abysmal - my phone suddenly lasts half the time it used to after jumping from iOS 17 to 18. Somehow playing music is a complicated task now, and the music controls on the lock screen, control center, and music app itself all somehow regularly get out of sync and become unresponsive on different songs, all while a completely different song keeps playing in the background, unaffected by any of the controls.

I could go on, but it's frankly embarrassing that Apple put it out in this condition. It seems to me that they really got caught with their pants down about the generative AI trend, and their rush to hop on board is taking precedence over everything else, including basic stability and quality.
I mean, that's the case today, with expensive feeds like the Bloomberg terminal subscription being more than most people pay in rent, pricing it out of reach for the plebes and restricting access to the wealthy. the rest of humanity gets access to notably low-quality, noncurated online content free feeds like Reddit and 4chan.

so I guess there's a historical precedent for that scenario, as well as this "newspaper" thing.
It's because we can put responsibility on humans to be correct but we can't on computers. Humans given the appropriate incentives are very good at their jobs and there is a path for compensation if they screw up. Computers have neither of these things.
So, how often do devs actually want a `/` that isn't the inverse of multiplication?

Trying to calculate... I don't know, how many 2-disk raid6 groups I need to hold some amount of data is an error, not "lol you don't need any".

If my queue consumer can handle 0 concurrent tasks, it will take literally forever to finish, not finish instantly.
Not parent, but a common criticism against VAT is that it broadly increases transaction costs which disproportionately burdens the less well off due to how their consumption is structured and that they have less to spend in the first place.
There's a difference between that and asking for a basic fact and getting errors.

Google's AI result, when I ask for the spot price of silver, returns the amount in British pounds, but with an American dollar sign in front of it.

That's not a lie, it's just an absolute misinterpretation.
Yeah I'm interested in how it will play out. I can understand skepticism because the current AI isn't that good, but it'll keep improving.
I thought it was about Memento the short story

https://en.wikipedia.org/wiki/Memento_Mori_(short_story)
> instead of updating to the new Windows ways of dynamic libraries.

What does this mean?
I Will Do This Now
I started with something called ContentPatcher. It let's you patch game assets and other stuff (including some logic) using a json based DSL.

For more complex things C# is needed as Stardew Valley is made with XNA/MonoGame. There is a NuGet package to set it up which even includes hot reloading of the mod into the running game: https://www.nuget.org/packages/Pathoschild.Stardew.ModBuildC...

I use NeoVim but you can use any editor. It was a bit of a pain to get dotnet going on arch linux but I got it working after some tinkering.

To get started, one can install SMAPI, then unpack the game assets. Then, you can open game maps and assets in the Tiled level editor. I also use Aseprite to make the pixel art tilesets for the maps (LibreSprite would also work). I use a mix of my own tiles and tiles from the game itself for my maps. Music and sound can also be added or patched with ContentPatcher. I make all sound related stuff with Ableton Live. I haven't done much with C# yet but SMAPI provides a pretty nice API so it should be pleasant to use.
I went back to AWS. Expensive but reliable and support I can get ahold of. I’d still like to explore OVH someday though.
NaNoGenMo 2024 novel from AI captioned stills from the movie A.I
Category Theory in Programming
I know it's not public domain per-say, but for me, the thing that's most exciting is that in 2025, the last remaining patents on the h.264 (AVC) video codec will expire [1].

Now if only HEVC wasn't such a hot patent / licensing mess.

[1] https://meta.wikimedia.org/wiki/Have_the_patents_for_H.264_M...
> Are you guys just arguing over "at what point does this shoving a billion bits into my state make it not really a 'markov' chain like you'd traditionally think about it"? Basically the formal definition vs what we intuitively think about as the 'point' of markov processes and why the markov observation is important?

That's an accurate description of my perception of the conversation, I can't speak for the others of course.
It stops at 100 or the length of the supplied string or the end of the line, whichever is shorter. You can also use unbounded strings which allows you to skip specifying the size for the output.

with Ada.Strings.Unbounded.Text_IO;
use Ada.Strings.Unbounded.Text_IO;

with Ada.Strings.Unbounded;
use Ada.Strings.Unbounded;

procedure main is
Line: Unbounded_String;
begin
Line := Get_Line;
Put_Line(Line);
end main;

https://learn.adacore.com - good source of tutorials, unfortunately a lot of the better learning materials beyond this are books, not online tutorials.
I don't particularly want to be involved with a long lived and non trivial collection of Ruby code either, if my experience of the Gitlab codebase is anything to go by.

I agree with the author's point, if you replace Ruby with something less awful (Deno, Go, etc.)
If someone dumped that project in my lap and said fix it (and it I was more used to low level programming), I’d probably start be refreshing myself on the last 10+ years of GC advances since I stopped reading SIGPLAN. Particularly multithreaded sweep. Because essentially you want to decouple delete from free so you can not do 100% of the bookkeeping work in the middle of time sensitive operations. But not fall as far behind as Postgres can with its vacuuming albatross.

In a way, deletion is a form of eventual consistency. The user loses access to the data but the system still knows about it for a while.

Just off the top of my head, I would think for LSM systems, you would resort to snapshotting as the edit history became much larger than the retained row count, and as you delete old snapshots (two GC roots) you could compare the old and the new and drop everything that didn’t survive. You only have to finish well before the next snapshot interval, and if you maintain a queue you only have to process them on average as fast as the snapshot interval.

And for BTree systems you can amortize the deletes across every insert, the way some realtime systems clean up a few free pointers on every allocation.
None of these individuals had moved on to other companies?
> He often features as a darling of Right-wing ideologues

Ideology will be the end of us all.
ASP.NET and C#
Makes me want to try to recreate some of these designed in a Logo program and see what the program looks like.
Most definitions of division that I have seen use q * d + r = n if q is unique and abs(r)<abs(d), which doesn't require the definition of an inverse. Rather, d that exist for n = 1 and r = 0 can be labelled q's inverse but it doesn't require a new definition.

Additionally, if inverses are defined as separate objects then what is 2 plus the inverse of 2? It doesn't simplify to 2.5 because there's no addition axiom for numbers and multiplicative inverses, or for that matter any rules for inverses with inverses. So you might have 1/2 and 5/10 but they're not equal and can't be multiplied together.
Under what definition of division is (a/b)*b=a true for all values?
More flexibility in drives. Btrfs's RAID1, isn't actually RAID1 where everything is written to all the drives, but closer to RAID10 it writes all data to copies on 2 drives. So you can have a 1+2+3 TB drive in an array and still get 3TB of usable storage, or even 1+1+1+1+4. And you can add/remove single drives easily.

You can also set different RAID levels for metadata versus data, because the raid knows the difference. At some point in the future you might be able to set it per-file too.
Yep, great developers know they "need" type-safety, but we don't always have it. Even my own app has a Python Microservice in the docker stack where 100% of my LLM/AI code is contained, simply because I wanted all the latest and greatest AI tooling (especially LangChain). I opted for Python over Java for that microservice, but used various tools to achieve build-time type-safety.
Meant for another discussion?
1,000,000 grains of sand is a heap of sand (Premise 1)
A heap of sand minus one grain is still a heap. (Premise 2)
- https://en.wikipedia.org/wiki/Sorites_paradox

So one grain of sand is a heap and then when you remove that grain the heap disappears, but you only removed one grain from a heap so this is impossible because it is discontinuous. One solution is to wrap the problem in fuzzy logic with a 'heapness' measure.

Generalizing this type of solution we have a practice of wrapping paradoxes in other forms of logic. You would define an interface between these logics. For example in Trits (0,1,UNKNOWN) you could define an interface where you can change the type of NOT-UNKNOWN from Trit to Boolean. This would return at least some part of the entropy to the original domain, preserving a continuity. Wave Function Collapse is another example of translating from one logical domain to another.
For sure I get that, and same. I mostly play games these days on Steam Deck as a wind-down activity that competes with reading a book or watching a YouTube video. It doesn’t complete with high energy activities anymore.
Humans already put a lot of trust in computers not because they can take responsibility but because traditional software can be made very predictable or at least compliant. There are whole industries built around software standards to ensure that. The problem is we don't yet know enough about identifying and patching problems in these models. Once we get something equivalent to MISRA for LLMs to achieve the same level of compliance, there is very little that could still hold them back.
When I worked at rackspace in 2016/2017 we couldn't even internally get a critical Openstack server reprovisioned after it was accidentally given 4GB of disk instead of 4GB of ram and would break when it ran out of disk space. Nobody knew how to reprovision it and the company's internal documentation wasn't accurate so the server malingered around with its unnecessarily large 64GB memory pool.

Just sayin'.
Tell me about that side project. How does that work? What does it say about me? I find that very interesting.
All our actions are ultimately driven by selfish motives. If you peer deep enough, you'll always find that selfishness.
ChatGPT is able to name other living Rothschild's, including another one named David, specifically David René de Rothschild, but somehow breaks on this particular one. If I ask it to list all living Rothschilds, it breaks when it comes to David Mayer, but if I ask it to name all Rothschilds that don't have the first name David, it doesn't break. So it's able to access the info about David Mayer, but unable to output anything related to it.
that’s bonkers. “philosophers and other wordcels” not only insults Borges but the entire world of philosophy. the arrogance and the nonsense in that phrasing are both off the charts.
All of these calls about which way to build software are judgment calls.

For example - a monolith has strong benefits but when you reach a certain size & team size it makes sense to split out some things - but you should still keep the monolith where it makes sense. And redux state storage makes sense for 99% of cases but the org should have flexibility to let teams run things their own way if they can make their case, depending what controls your org wants to have in place to keep a certain level of standardization. It’s about finding a balance.

The author seeks universal answers where none exist. All these different approaches have survived well enough to enter the zeitgeist so they each must have merit. The fact they’re contradictory suggests the appropriate mental model is more like a flowchart with many end states, than a path that seeks a holy grail.

I also strongly counter the author’s assertion that 20 years is not enough time to see all this play out. Of my 20 years’ software dev experience, 5 were at a company that went from less than 2000 employees to over 40000 while I was there. I saw the architecture evolve to meet the challenges of growth through many orders of magnitude of scale, and saw the hiring of people who’d done the thing in other companies at the level we needed and brought the leadership to implement it within our teams. 20 years is absolutely enough time to get in one of these 5 year experiences even if the other 15 years is throwaway. To maximize your chances, go and work in SF or Silicon Valley. Yes, it does happen elsewhere in the world; but with far less regularity. If you really want to hone your craft you have to go to the place it’s happening.
Scientists Discover a Protein Key to Preventing Muscle Breakdown
> The problem is that programming languages have always focused on the definition side of types, which is absolutely necessary and good, but the problem is that only limiting use by, e.g., "protected, private, friend, internal, ..." on class members, as well as the complicated ways we can limit inheritance, are barely useful.

Virtually all software ever developed managed just fine to with that alone.

> I don't know of any programming environment that facilitates properly specifying calculating something even that basic in the init phase of running the system, (...)

I don't know what I'm missing, but it sounds like you're describing the constructor of a static object whose class only provides const/getter methods.

> or even a db table's row(s).

I don't think you're describing programming language constructs. This sounds like a framework feature that can be implemented with basic inversion of control.
KISS actually means, sometimes write it from scratch yourself, which will save you time short-term and teach you great stuff long-term, rather than use the "industry standard".

When setting up my current operation, I needed a job scheduling framework. I looked at Airflow, but by the time I had to choose a DB backend and create usernames and set up SMTP server, I gave up. In half a day I knocked together a basic single machine scheduler, which does 5% of what Airflow does. But it does that very well, took me frankly less time than setting up this behemoth, and works really well for my team.

Is it better than Airflow, or Prefect, or whatnot? Surely not; but it saved me time and taught me a lot about job scheduling.
Uber has become too greedy these days. Lyft came and it was good, then it turned same like Uber.

I don't understand why every app become Enshittification once they become popular.
> "I do not blame Valve nor Steam, the blame is on the UK government and authorities that are pissed off by a video game," Nijm said. "On their flawed logic, the most recent Call of Duty Black Ops 6 should be banned as well. As you play as an American soldier and go to Iraq to kill Iraqi people. What I can say is that we see clearly the double standards."

Love him or hate him, he does make a principled point.
One of my favorite retro projects in this real-time TRS-80 (Model I assembler and emulator that assembles and runs Z80, literally with each key press. Mind boggling how today's CPUs can emulate and entire 8-bit computer dev-process all between key presses in a browser. https://www.teamten.com/lawrence/projects/assembly-language-...." The author even says "How about: With every keystroke in the IDE’s code editor, we assemble the whole program, reset a virtual TRS-80 to a known state, install the program, and run it??
Unfortunately, it is an accurate and necessary term. Because while you might think that you are free to buy and resell anything you want without problem, the courts have made the issue much more grey than black and white. see the Omega v Costco lawsuit for an example.
I came in prepared to defend the game and all, but then I read the subject matter, and just walked away thinking it’s a miracle it’s available anywhere.

Sure, he’s right that that’s double standards, but still.
Spoiler; every newspaper and media source is biased. They have to be. Starting with what stories they run and don't run and ending with the specific word choice they make inside the articles.

Critical thinking is the only thing you can use to spot bias. Compare and contrast different stories. Then make up your own mind.

Media literacy and virtual l critical reasoning should be the bedrock of modern education, and it is not.
More exactly, C code (hopefully MISRA C) generated from Simulink models runs much of the embedded systems in many cars. Although sometimes (cough, Toyota/Denso, cough) that generated C is then bodily assaulted by questionably competent embedded developers until it combines the worst qualities of MISRA C and low-quality embedded development, because, like many low-code solutions, getting (and keeping) everything in the low-code model is hard and the built-in escape hatch to a real programming language is not always a good fit to the problem at hand.

(As a nit, I suspect that Simulink is known and deservedly disliked by the vast majority of people with non-software Engineering degrees, given the omnipresence of Matlab in academic contexts.)
Its actually very impressive when you consider that the Playstation has less than 5000 games overall. And Switch has around 4761 games listed on Wikipedia. Now Sony and Nintendo have nice exclusive games, but Steamdeck gained more supported games in a year than that these consoles have at all.
Awk is turing complete. You could do the challenges only in Awk if you wanted.
Really cool project, looking forward to using it in Obsidian.
The court case provides more details. Looks like the junior researchers and Jeff Dean teamed up and bullied Chatterjee and his team to prevent the fraud from being exposed. IIRC the NYT reported at the time that Chatterjee was fired within an hour of disclosing that he was going to report Jeff Dean to the Alphabet Board for misconduct.
> Every day I’d have more and more state accumulation on my machine - open apps, unsaved changes, open tabs.

I resonate with your comment.

I grew up during a time when PC state was ephemeral (DOS days). Unsaved changes essentially meant lost data. Open apps were gone once the computer was shut down (and the computer was shut down daily - a 250W power supply had an expensive power draw; in contrast a Mac Mini only sips 1W when sleeping). This helped me develop a habit of keeping only necessary things open, bookmarking what I want to keep, and of habitually pressing Ctrl+S to save data. I never keep any tabs open (my browser loses all tabs upon close anyway), and my inbox is zero.

The cost I pay for this is context recovery -- every day, I have to essentially set everything up again. I do write notes or leave comments in code to remind myself where I left off, but I essentially started fresh. But there is an upside to this: I start each day from an uncluttered slate, which leads to clarity in my head. When context is ephemeral, I'm more likely to not be beholden to an existing state.

This actually helps me increase the quality of my writing and my code. It's akin to the heuristic of "throwing away your first draft and rewriting" to achieve higher quality. Write your code once, delete it, and write it again from scratch. The next version takes a quarter of the time to write but can be twice the quality because you've prototyped it in your head but you are not bound to your crufty first attempt. There was an HN discussion on this a while ago:

https://grantslatton.com/software-pathfinding

If you save state, you can resume more quickly, which is great if you're on a roll, but it's also an accumulation of more clutter that blocks certain more creative thoughts.
I was wondering what about that comment offended you that much to assume OP is "nazi russophobe".

The only thing i could think of that might be much more offensive than i interpret it, would be the "genetically preconditioned". To me, the "almost" made it seem like a figure of speech, an obvious exaggeration. Not that OP actually thinks that there is something up with the genom.
But considering the bad things people say about russian people, and how it seems to have become totally acceptable for many to discriminate based on nationality, i can see how either i, as a non-russian person, might not be sensitive enough for the wording here, or, how russians are extra sensitive.

In case my comment seems provocative, it is not meant like that at all. I want to learn about your honest perspective.