skysight-inc/HackerNews huggingface dataset:
Commercial UNIXes had nice graphical debuggers like dbx on HP-UX, while Solaris and NeXTSTEP had good IDEs.

Linux eventually got DDD.

Unknown to most is that gdb has a TUI, and is highly scriptable in Python.
How odd to find a mistake in 30-year-old Turbo C++ man pages from a screenshot. printf and vprintf send send formatted output to stdout of course, not stdin.
> I use 0 plugin and 6 lines of .vimrc config…

What are the six lines in your .vimrc?
Show HN: Lightweight data analytics using SQLite, Bash and DuckDB
Over the last 12 months, in parallel to using Google BigQuery, I have built my own processing pipeline using SQLite and DuckDB.

What amazes me is that it works surprisingly well and costs much less than using BigQuery.

Roughly speaking, here's what I do:
A SQLite database receives IoT sensor data via a very simple PHP function. I currently use the FlightPHP framework for this. The data is written to a table within the SQLite database (WAL mode activated) and states are updated by the machines using triggers.

Example of a trigger

CREATE TRIGGER message_added
AFTER INSERT ON messages
BEGIN
INSERT OR REPLACE INTO states
VALUES
(
new.id,
new.status,
new.time_stamp,
new.current_present,
new.voltage_present)

This allows me to query the current status of a machine in real time. To do this, I again use a simple PHP function that provides the data via SSE. In the frontend, a simple Javascript method (plain vanilla JS) retrieves the JSON data and updates the HTML in real time.

const source_realtime = new EventSource("https://myapi/sse_realtime_json");
source_realtime.onmessage = function(event) {
var json = JSON.parse(event.data); };

For a historical analysis - for example over 24 months - I create a CSV export from the SQLite database and convert the CSV files into Parquet format.

I use a simple BASH script that I execute regularly via CronJob.

Here is an excerpt

# Loop through the arrays and export each table to a CSV, then convert it to a Parquet file and load into the DuckDB database
for (( i=0; i<${arrayLength}; i++ ));
do
db=${databases[$i]}
table=${tables[$i]}

echo "Processing $db - $table"

# Export the SQLite table to a CSV file
sqlite3 -header -csv $db "SELECT * FROM $table;" > parquet/$table.csv

# Convert the CSV file to a Parquet file using DuckDB
$duckdb_executable $duckdb_database <<EOF

-- Set configurations
SET memory_limit='2GB';
SET threads TO 2;
SET enable_progress_bar=true;

COPY (SELECT * FROM read_csv_auto('parquet/$table.csv', header=True)) TO 'parquet/$table.parquet' (FORMAT 'PARQUET', CODEC 'ZSTD');
CREATE TABLE $table AS SELECT * FROM read_parquet('parquet/$table.parquet');

EOF

Now finally my question:
Am I overlooking something? This little system works well for currently 15 million events per month. No outtages, nothing like that.
I read so much about fancy data pipelines, reactive frontend dashboards, lambda functions ...

Somehow my system feels "too simple".
So I'm sharing it with you in the hope of getting feedback.
It turns out you can reproduce articles with next-token prediction when the articles are quoted all over the dataset.

The articles themselves are indisputably not a part of the model, because it doesn't store text at all. OpenAI's position is correct; people just underestimated how well the AI learns from reading, especially when it reads the same text in a bunch of different places because it's being quoted/excerpted.
Yep, a few times I've ended up with something that hadn't scanned. A bunch of other times I accidentally scanned something twice without realising. Their app was bad at registering whether something had scanned or not; you would scan something again, and then later it would register the first scan.

One time they did a random check on my bag and found one item that hadn't scanned. They didn't accuse me of theft, but they did block me using their self scan app.

This was actually a blessing, as their app was so frustrating and unreliable shopping became more pleasant.
> The strangely short power cords on electronics.

That's lawyers, as well as the insane flagpole of stickers on each wire.

The simple fact of the matter, is that people are willing to buy junk. They want a certain level of functionality, at low prices.

Manufacturers (or software developers) have figured out how to provide a simulacrum of the functionality, for very low prices. These manufacturers put others, that make higher-Quality products, out of business, so you have a race to the bottom.

I spent almost my entire career, at companies that make extremely high-Quality products, and am quite familiar with the requirements to enable this.

It costs a lot; both time, and money. The difference between even a reasonably-high-Quality item, and a very-high-Quality item, in cost to manufacture, is kind of extreme (so their sticker price reflects that). It may seem that companies that make top-Quality stuff are rich, but they are not. The people that make a lot of money, are the ones that can push cheap dross, in large quantities.

That said, people don't actually want low-quality. It's just that they don't want to pay the premium for the higher-Quality stuff. Manufacturers that figure out how to produce higher-Quality, for lower money, and in larger quantity, do well (think many Japanese -and now, Korean, manufacturers).

There's a popular piece of a story, written by Sir Terry, called The Sam Vimes Boots Theory[0].

[0] https://en.wikipedia.org/wiki/Boots_theory
Government is the entity I trust the least with my communication. No thanks.
I reccomend the chrome / FF extension "news feed eradicator" to block youtube feed, and algorithmic content across other sites.

I consume exclusively from my subscription feed (which I review every few months).

In additionu ublock origin element blocker can be used to to remove shorts section in subscriptions - means I haven't seen shorts in a long time.
Kotlin's delegation feature is useful sometimes, but OOP inheritance still crops up more often.

One reason is that inheritance is strictly more powerful. When you delegate (compose), you can't modify the inner working of the object you delegated to, you can only wrap it. Often that's not sufficient. You want to actually customize the implementation in some way. OOP's inheritance is ideal for this, because the superclass can clearly define chunks of functionality that subclasses are allowed to either (a) replace entirely or (b) wrap or (c) provide (abstract methods).

This is a very flexible approach. With mere delegation you can only wrap, and only for method calls that originate outside the object, and only for public methods.

It's also clean. The distinction between what you must implement, what you can implement and what is for the user is defined in the type system and enforced by the compiler. Additionally you separate the interface for customizations from the interface for users (protected vs public), which keeps documentation and auto complete properly focused.

When combined with dependency injection and code generation it also allows third party frameworks and libraries to enhance the code you write in various ways, that remain mostly tucked out of the way but can be revealed in an IDE in an instant (and a good IDE will show visual hints that there are such customizations in effect).

The final advantage is that in some languages the implementation is highly optimized. On HN you'd be forgiven for thinking nobody writes virtual method calls since 20 years ago but in reality virtual method dispatch is so common in real programs that it's heavily optimized by both CPUs (sophisticated indirect branch caching) and language runtimes (PICs in fast VMs like Hotspot or V8). Composition is less well optimized.

Inheritance gets an overly bad rap on Hacker News, despite how prevalent it is. I think this is because it's so flexible you can easily make a mess with it, and some people have. Also the decision of Java to make all classes and methods open by default means overriding is often used as a hacky way to hot-patch libraries in the field, rather than as part of any principled overall design. Kotlin reverses that decision to some extent and so classes and methods are all final by default, unless a compiler plugin overrides that.

I also suspect the move to web development has had this effect, because in most classical OOP toolkits you are allowed or even encouraged to extend the UI by subclassing pre-existing node types. So you can make a custom button by subclassing Button or whatever. HTML is implemented using classical OOP designs, but mostly for implementation reasons that isn't exposed to the web developer who instead is expected to customize the controls purely through CSS and setting properties. If you want to make a custom button widget, well that's too bad, better learn React or something similar. So people just aren't exposed to the situations where OOP is useful because browsers weren't designed for UI, and the memory of why it was originally developed atrophies.

And some of it is just memeing.

OK, now tell me why I'm wrong.
When did Unicode become popular on the internet? The article seems to claim it was around since the transition from BBSes started in 1995.

Also, a contributing factor to the decline not mentioned is the prevalence of non-monospace fonts.
As part of the very recent switch back to nuclear, the lifetime of France's existing reactors will be extended.

> Poland has two planned reactors

Incorrect.

"Poland has given the green light for the construction of 24 new small modular reactor (SMR) units across six sites"

https://www.reuters.com/sustainability/climate-energy/poland...

Anyway, nobody claimed that this was in advanced stages, how could it be?

Just two years ago, pretty much everybody was getting out of nuclear, some more quickly, some more slowly, but the direction had been consistent for the last two decades or so. Then Ukraine happened, and the house of card that was the German Energiewende, built on a solid foundation of cheap Russian gas, collapsed.

Not sure how quickly you expect turnarounds in energy policy to happen, but let's just sat that the Energiewende was made officially announced in the 1990s. And look how far we've gotten.

I personally find the development in the last year, year and a half remarkable quick.
So, all the statistics about installed capacity of NPPs, wind, solar, hydro, coal and so on are wrong? Because those numbers show everywhere renewables outpace nuclear by orders of magnitude, including China.
A court in Japan will have no impact on the outcome of a copyright lawsuit in USA. Not to mention that it doesn't really matter how a Japanese court ruled since it's all governed by treaties anyway. They will change their laws if required to.
These days most news is mixed with analysis [1] (which is often biased). I wonder if part of the reason for this shift is that analysis is copyrightable. It also seems like the number of opinion articles is ever expanding [2], though I don't have any hard numbers on that.

[1]: https://guides.library.cornell.edu/evaluate_news/source_bias

[2]: https://www.newsmediaalliance.org/rise-of-opinion-section/
Interestingly there's a banner at the top of that link touting an agreement between Axel Springer and OpenAI.

EDIT: formatting
We are routinely trusting completely random commercial entities that have overtly misaligned incentives (make money). Government monopolies in modern democracies are orders of magnitude safer.
There is a difference in "not interested in receiving COVID vaccine" and fighting against vaccination in general, refusing to vaccinate children with mandatory shots like MMR or polio.
I actually how people do purposefully non-random randomness more interesting. Like in this article.

Video games are known to cheat a lot, usually in the player's favor. The Tetris randomizer for instance is well documented. Early games drew pieces truly randomly, but now, the standard is to draw randomly from a bag of all 7 pieces until it is empty, then repeat, limiting flood and draught. Along the way, other algorithms have been used with the same purpose.

But sometimes, even the numbers are fake, for example, a 95% success rate may be closer to 99% in reality because it matches more closely what players feel 95% should be like.
That old juicer from the 40s was likely expensive "industrial" equipment for restaurants. Even today, if you buy any professional appliance and only give it occasional home use it will last forever.
A large number of people have refused the COVID vaccine for completely valid reasons. The vast majority of that group absolutely vaccinates their children against polio, measles, etc.

They aren’t the anti science luddites your comment paints them as. They are (rightly) skeptical of “the science” which often isn’t very scientific at all.

As we’ve seen, the medical science community is heavily motivated by profit and prestige, but unfortunately not always truth.

New discoveries in that field are often revealed to be bullshit. They deserve skepticism, not blind compliance.
You still had to do a roundtrip for every single click though, right? I don't think X Windows has any kind of client side scripting system.

That's better than SSH for sure, but still not as good as the web model.
The purported reason was WMDs wasn't it?

The actual reason was that Dick Cheney felt like it. There really isn't any kind of actual reason beyond that, and we didn't gain a single thing from the invasion.

Petrodollars (the foreign US dollar oil trade) are a leftover 1970s concept; they simply aren't important or a large part of support for the dollar's value. OPEC oil exports are about $300 billion a year, which isn't a lot.
I'm reasonably certain they have a ridiculous amount of uplink [0]. But the VOD processing is going to take some time.

[0] When I was in Leipzig the infrastructure review speaker was a bit like "well... we kind of forgot to say it's enough. So we ended up with 400+GB/s uplink. You managed to use about 5% peak" (from memory, I would need to look up the numbers)
I can understand an argument about the AI needing to know basic history. News is just how we report history in the making, but it's not generally accepted as solid until some time after the events when we can get more context.

Isn't this what the Associated Press is intended for, a stream of news trying to report just the facts and happenings of the day? That's quite a bit different than a NYT article intending to inform but also convince someone of a position of some sort.

Feeding an AI opinionated news compared to "just the facts, ma'am" seems risky from a bias perspective.
Has Masimo stated what their proposed licensing fees would be? $10/watch, retroactively, seems like a reasonable deal. I bought my Apple Watch 6, specifically for that feature, even though I had a perfectly functional Apple Watch 3.
No, you don't. LocalRepo.t != Repo.t, and all the functions are purely static. LocalRepo.get_user won't work with other Repo.t, and other Repo.get_user won't work with LocalRepo.t. What you would need is to parametrize your further computation with a Repo module, as in

module HttpHandler (R : Repo) : sig
val handle_user : R.t -> HttpWriter.t -> username:string -> unit
end = struct

let handle_user repo writer ~username =
match R.get_user repo username with
| None -> Writer.write_status writer 404
| Some user -> Writer.write_body writer (User.to_string user)
end

and then to construct a handler module with a proper repo.
> There's a strange dance of IDEs coming and going [...]

Intellij IDEA 1.0 was released in 2001 - is still in active development - and as far as I know the keyboard shortcuts are still the same (depending on the configuration one chooses)

The first Microsoft Visual Studio release was in 1997.
XCode was first released in 2003.
Show HN: Flystorage – A file storage abstraction for Node/TypeScript
After maintaining Flysystem (PHP) for 10 years, I wanted to bring this abstraction to the Node/TypeScript ecosystem. My new work uses TypeScript on the back-end and I didn't find an existing package that met my expectations. Just released 0.1.0 in the hopes I'll get some feedback from the wider community.
Somehow those text based IDEs of 30 years ago feel special to me, maybe reminding me of a simpler time when there were not too many things to master
The service is something I'd like to try but it's always left a bad taste in my mouth seeing how the free service will expose my email in dns records.

I'm a firm believer privacy and security should be a default and not a pay to unlock feature. With that in mind I never gave this service a chance and instead tried to use other competitors for email aliasing. [1]

[1]. (Simplelogin.io/ / Addy.io)
Poor enough that they don’t have a bank account to pay for the email service.
In my experience, it's the worst way to do remote work. There are so many better solutions.

If TRAMP is too slow, just mount the remote filesystem locally using FUSE somehow. Use SSH to run processes on the remote system like compile and run the program. No need to run the text editor on the remote system.

You can also do it the other way around: have your remote system load your local data. I developed a small bare metal OS this way. Ran the cross compiler locally, had the output go to some NFS mount which was also available via TFTP. Booted the target system with PXE.

Running a text editor on a remote system is good for one off things and maybe as a last resort, but that's it.
Apple Watch ban temporarily paused
Box canyon is a common term for a 3-sided canyon.
"Random" doesn't necessarily mean "uniformly distributed random." Shuffling a deck of cards randomly is random, but you're not going to get the same card twice in a row, or even the same card twice until you go through the whole deck.
I'd bet this is slower:

function isEven(n) {
let arr = [];
let sign = -1;
for (let i = 0; i < Math.abs(n); ++i) {
arr = [...arr, sign];
sign *= -1;
}
return arr.length === 0 || arr.reduce((a, b) => a + b) === 0;
}

But I'm not going to test it, because I'm doing productive things on my computer right now, and don't want to OOM.

Sadly, the OP missed an opportunity to call his program "blazingly fast" [0].

[0] https://www.youtube.com/results?search_query=primagen+blazin...
This seems very false to me. Spotify is the prime example. They offer a good product that covers a 100% of my needs at a reasonable price. If that was an option for say UFC or engineering books, you bet I’d be subscribed. But being forced to read through some crappy reader software when I need the book source to take annotations in another software doesn’t work, so here we are. Same with the absurd pay per view business model of UfC.
i never used vim in a large codebase though, do you ? I understand the remote edition appeal, and I use vim 90% of the time in cli
Multiple actors likely co-operate and help each other without explicit communication. (Is that still conspiracy?)

The corporations wouldn’t want a government created issue, like war, go to waste, and will play along to make some profit. The media will self-censor to avoid losing advertising customers.

As far as they are concerned war is bad sometimes, depending if doesn’t or does further their interests. I remember people watching the US invasion of Iraq invasion on CNN. CNN didn’t start it but it a great boost of views from it.
I’ve been looking for a tools like this that will help me work with Typst files. I was an engineer but now work on specialized legal contracts with lawyers. Most of them know the basic track changes in Word. I grew up with code and source code management so the idea of templates, including partials and managing differences between them all is something I’m looking for but my colleagues don’t really know about (or want to deal with).

I’ve been toying with the notion of using Typst as the source of truth to assemble contracts so I’m going to give this a spin.
Literally gonna write the same thing. Instead of going through 10+ stackoverflow pages to fix linux bugs while still getting no explicit answer, I rather let BingGPT to figure it out for me in a second.
Used this[1] for over twenty years for random things. An easy way to make quick text into different forms of ASCII art. I find it easier than using the `figlet`[2] command.

1. http://patorjk.com/software/taag/#p=display&f=Graffiti&t=Hac...

2. http://www.figlet.org
100% agree. Remote VSCode over SSH is great.

The resource consumption on the client doesn't bother me one bit. Any minimally decent laptop can put up with that load, on battery power, for hours.

I would agree with “whatever it takes to make the server install leaner, more portable, etc” just without sacrificing many features.

If the server side doesn't run on FreeBSD that's really too bad. If Microsoft makes it hard to improve by not making those bits open source, that's very unfortunate.
Invading Iraq was very bad but it's not rubble. It's, like, still there.

Deaths in the war were less than you'd think. GWB actually comes out net positive in his presidency because he started PEPFAR (AIDS prevention in Africa) which was really, really good and saved millions of lives.
Almost no substance in the talk. Just showing scary looking videos and pictures and making a lot of extreme claims which should reasonable if you don't think about it. For example, he says that "Google is basically useless since the generation of AI content". I can agree to saying that it has gotten less useful in the last 10 years, but "basically useless" is a stretch.
Yes, there absolutely is a difference and the second group is incredibly small.

I think it is important to make that distinction.
The funny thing is these effing boomers still protest against nuclear power at the end of University Avenue every month, as if this was somehow a relevant concern in 2023.
Not every developer needs the certification under my plan. And getting it is an apprenticeship, not education.
There's no lack of newer examples. There's only a lack of apology and scale of consequence. That scale being the only reason why the NYT was compelled to apologize.

The WMD lie shouldn't be the "well, it was twenty years ago" example. It should be the "look what they were willing to do, they can never be trusted" example.

Apologizing after the fact of a willful action of that type isn't an apology. It's a vain attempt to reduce consequence for themselves. If only reduced trust, which people like yourself try to still stem citing that lame "apology".
DreaMoving: A Human Video Generation Framework Based on Diffusion Models
> This means that most common actions, like moving the cursor or selecting text, can be done locally, without the need for a round trip to the server

No, you weren't doing this. You were making a round trip to the server when you moved the cursor or selected text.