MurphyA/hacker-news huggingface dataset:
by globular-toast | 2025-04-29 06:46:21+00:00
We could probably do with a "SQLAlchemy for Django users" article. SQLAlchemy is much more powerful and flexible than Django. After using SQLAlchemy it's hard to even consider an active record style ORM like Django an ORM at all. SQLAlchemy can truly map relational data onto objects and uses the unit of work pattern to coordinate updates. Django just feels like writing raw SQL but in nicer Python syntax. The details of relational models leak directly into the business logic and there isn't really much you can do about it. In short, SQLAlchemy is a different beast. If all you need is Django then you're probably only doing CRUD and you should just use Django.
by CodinM | 2025-04-29 06:46:29+00:00
I'm working on email. Principles are growing stronger and for some reason I don't want to use Gmail/Tuta/Proton anymore, so I'm _making my own_. It'll be paid and you'll be able to bring your own domain and however many aliases/inboxes you need.

It'll eventually be at c3n.ro and will be "sovereignly" hosted in the EU.
by dredmorbius | 2025-04-29 06:47:07+00:00
Spam is any communication the recipient doesn't want. The definition is by the recipient, not the initiator.

The term has moved to other forms of mass unsolicited advertising.

The first spams weren't email but Usenet (notably Cantor and Siegel's "Green Card" spam, which I remember, though that wasn't the first[1]).

We've now got email spam, Web spam, forum spam, SMS spam, phone spam, etc., etc., etc.

The only requirements are that it be mass (some define that as > 1 target) and unsolicited.

Keep in mind that robocallers (which may have an automated or human at the other end) are dialing billions of numbers in the US per month[2].

Amongst other considerations: spammed networks die as those who find them intolerable defect from them. Phones (and Usenet, and email) were once exclusive, and hence, where intelligent and desired communications were to be found. As costs of utilisation and access fell, that is no longer the case. An instance of the Jevons Paradox as well as Gresham's Law: falling costs leads to increased use, falling barriers to participation makes bad usage drive out good. Direct-dial, universal-access telephony is teetering on the edge of death.

________________________________

Notes:

1. Brad Templeton has a history and etymology dating to at least 2001, which makes clear that the term arises from any unspecified "net abuse", with his first instance being in 1978. The phone system is itself a network. "Origin of the term "spam" to mean net abuse" <https://web.archive.org/web/20120716231643/http://www.temple...>.

2. See: "Phone Call Spam Statistics (2017 – 2024)" <https://www.comparitech.com/blog/information-security/phone-...>, "How many spam phone calls do Americans receive?" <https://usafacts.org/articles/how-many-spam-phone-calls-do-a...> (reported calls only), "Truecaller U.S. Spam Scorecard" <https://www.truecaller.com/us-spam-stats>. Two of the three report 3 billion+ spam calls per month. There are about 331 million mobile phone subscribers in the US (virtually one per person), which would mean over 100 spam calls per month. Some would suspect this is a severe underestimation.
by baq | 2025-04-29 06:47:47+00:00
Things which can’t self improve can’t be antifragile by definition. NNT alludes to this multiple times - systems together with processes and people running them can be antifragile, but just things cannot.

I postulate the grid as a whole is antifragile, but not enough for the renewable era. We still don’t know what was the root cause of the Spanish blackout almost 24h after it happened.
by selivanovp | 2025-04-29 06:48:41+00:00
The answer is simple: EU and USA taxpayers billions pumped into Ukraine to buy hundreds of thousands of mobile diesel powered generators and fuel for them, and spare parts and replacement blocks for everything that’s been destroyed.

On top of that, Ukraine inherited a lot of nuclear power plants, and despite losing the largest one in Zaporozhie region, still operates all the other as Russia doesn’t attack them in any serious way.

No miracles, just pumping money non stop.
by LargoLasskhyfv | 2025-04-29 06:50:16+00:00
Depends on how steep. 4% is no problem for modern traction.

Just look at this https://de.wikipedia.org/wiki/Datei:Wiedtalbrücke_Blickricht...

which is used at 300kph by electric multiple units like the german Inter City Expres.

I've rode over this at about 330kph shortly after opening, it's slightly noticable, but not like a roller-coaster at all, as one might think.

Meanwhile this is also used by more conventional electrical engines for passenger trains up to 250kph, also in 'pusher' mode,

and short freight trains, no longer than 700m, at anything between 160 to 200kph during nights.

According to Wikipedia 'the Bakersfield–Palmdale section of the line will cross Tehachapi Pass, roughly parallelling the Union Pacific Railroad's Mojave Subdivision. Due to its heavy freight traffic and sharp curves (including the famous Tehachapi Loop), there is no current passenger service through the pass. While the proposed high-speed rail alignment will not include any long tunnels comparable to those in Pacheco Pass, it has nine shorter tunnels and several viaducts more than 200 feet (61 m) high. The maximum grade through the pass would be - 2.8 - percent, making it the steepest portion of the Phase 1 route.'

Easy peasy.

Edit: TL;DR? All of this is explained here https://en.wikipedia.org/wiki/Brightline_West
by noisy_boy | 2025-04-29 06:51:07+00:00
That has not been my experience. Sure, you don't have any control over the third-party stuff but I haven't seen this issue being widespread in the mainstream third-party libraries I've used e.g. logback, jackson, junit, jedis, pgJDBC etc which are very well known/widely used. The only place I've actually seen proliferation of this was by a contractor, who I suspect, was trying to ensure job security behind impenetrability.
by ropable | 2025-04-29 06:51:12+00:00
We've used (and continue to use) Django for bespoke applications for a decade and a half now. It continues to be the most well-supported, well-governed, well-documented, batteries-included, extensible web framework of all the ones we've tried. Finding developers with experience using it (or upskilling them) is easy. As a choice of web technology, it's one of those that we've never regretted investing in.
by teruakohatu | 2025-04-29 06:51:33+00:00
It did take off just in a different direction:

https://en.m.wikipedia.org/wiki/Java_Card

To the point where most adult humans in the world probably own a Java-supported processor on a SIM card. Or at least an emulator (for eSIMs).

On example of a CPU arch used on JavaCard devices is the ARM926EJ-S that I believe can execute Java byte code.
by apexalpha | 2025-04-29 06:52:09+00:00
Critics: wow this is a great example of government dysfunction through excessive regulations and political steering of a engineering project.

Author: Actually, you are entirely wrong. Let me explain to you in 3000 words how this project failed due to political interference and excessive regulations in California while pretending this is somehow not CAHSR fault and also not providing any path forward to fix it.

???

While no final track has yet been laid, this constitutes the vast majority of the work to prepare the route.

This author isn't evaluating this project fairly, this author seems to be in first stage of grief: denial.
by RamblingCTO | 2025-04-29 06:52:39+00:00
Do note that at least for me, we didn't do much coding or software engineering. I spent more time on proofs, theories and writing on paper than any code. The best I could describe it is that software engineering is kinda adjacent to compsci maybe? I think you can do more applied compsci and do stuff like embedded etc. and it might be different, I started uni 15 years ago
by joshdavham | 2025-04-29 06:54:11+00:00
> What are the modern methods

It depends on the community, but the current meta among serious (non-casual) language learners is 1) comprehensible input, 2) extensive reading, 3) sentence mining, 4) spaced repetition + active recall

> what's to back up they're better?

Unfortunately... just the anecdotal experiences reported by these learners. I've talked with hundreds of successful language learners who reached actual fluency using these methods and I'm also one of them. Unfortunately, as many people online like to point out, these anecdotes are not technically scientific so there is a bit of "faith" you have to put into these methods. (Also, there is some debate in the field of SLA (second language acquisition) as to whether we will ever have a truly scientific model of SLA. If you're interested in this question, I'd recommend checking out the book "Key questions in second language acquistion")

In general, my advice to any serious language learner is you're gonna have to experiment a lot to reach fluency. Language learning takes on the order to thousands of hours and requires a vocabulary of over 10,000 base words for functional fluency (don't believe the youtubers who say you only need to know a couple hundred words. I've run the math on this way too many times)
by rtpg | 2025-04-29 06:54:15+00:00
Yeah you can make Django go really fast, especially when you have pages that well scope what data they are pulling from (though you seem to know it better than me).

I think B2B SaaS, for "normal" teams (read: people not that adept at building scalable systems), when not careful, tend to make omnipages where about 20 different things are happening. Even just navigating to a page ends up triggering random side effects (driven by various needs).

There you can easily find yourself in a performance pit that you have to dig yourself out of (often redesigning features in the process to remove some stuff).

I just find that setting fairly easy performance goals can help to make perf seem more tractable.
by JimDabell | 2025-04-29 06:55:10+00:00
Vibe coding is heavily using AI, but heavily using AI is not necessarily vibe coding.

Vibe coding is when you disregard the code altogether and build something throwaway for fun that you don’t care about maintaining:

> There's a new kind of coding I call "vibe coding", where you fully give in to the vibes, embrace exponentials, and forget that the code even exists. […] It's not too bad for throwaway weekend projects, but still quite amusing. I'm building a project or webapp, but it's not really coding - I just see stuff, say stuff, run stuff, and copy paste stuff, and it mostly works.

— https://x.com/karpathy/status/1886192184808149383
by janalsncm | 2025-04-29 06:56:32+00:00
Title needs to be updated but I think the text of the order is noteworthy.

If I had just gotten a job offer to come to the US this kind of thing might give me pause, if for no other reason than no one knows how it will be used.

For a long time, the US has punched well above its weight in talent compared to our education system due to our ability to reliably attract top talent. And the best companies want to be here, which pushes our wages up.

It might not always be that way.
by est | 2025-04-29 06:57:04+00:00
been using Duolingo in the 10s and last year, I gave up because the course seems very repetitive. Even if I got the answer right 10 out of 10 times, the same question kept coming. It almost looks like the app is trying very hard to make me stay as long as possible, instead of study as effecient as possible.

So for a good alternative app, is there a dynamic course pace I can adapt to?
by Hamcha | 2025-04-29 06:57:39+00:00
As someone learning Japanese I'm really appreciating tools built for JP specifically: Renshuu and Wanikani. Both use SRS (same as duolingo) but spend a considerable amount of time actually teaching the grammar and nuances, they both avoid starting from everyday phrases like "I would like sushi" to instead build a foundation first, and many other little things that make it a much nicer experience than Duolingo who's trying to use a very generic approach that maximises small term satisfaction in exchange for painful long term learning.
by watwut | 2025-04-29 06:57:56+00:00
Pre-internet ways failed to teach language super often. Very frequent issue when learning from book was that you could not not understand anything people say, because you imagined the language to sound much differently then it does for months and months while learning. That was the most common result of language learning attempts - not much.

Language learning is one of the things that were genuinely made much more effective by the internet and streaming services. The input based learning methods were basically impossible pre-internet for most people. And these are very effective.
by socalgal2 | 2025-04-29 06:59:26+00:00
Does the app store handle staged rollouts?

That was a thing I thought was missing from this writeup. Ideally you only roll up the update to a small percent of users. You then check to see if anything broke (no idea how long to wait, 1 day?). Then you increase the percent a little more (say, 1% to 5%) and wait a day again and check. Finally you update everyone (who has updates on)
by josephg | 2025-04-29 06:59:59+00:00
I didn't consider that. Looking at how weak references work, that might work. It would reduce the need for raw pointers and unsafe code. But in exchange, it would add 16 bytes of overhead to every node in my data structure. That's pure overhead - since the reference count of all nodes should always be exactly 1.

However, I'm not sure what the implications are around mutability. I use a Cursor struct which stores a reference to a specific leaf node in the tree. Cursors can walk forward in the tree (cursor.next_entry()). The tree can also be modified at the cursor location (cursor.insert(item)). Modifying the tree via the cursor also updates some metadata all the way up from the leaf to the root.

If the cursor stored a Rc<Leaf> or Weak<Leaf>, I couldn't mutate the leaf item because rc.get_mut() returns None if there are other strong or weak pointers pointing to the node. (And that will always be the case!). Maybe I could use a Rc<Cell<Leaf>>? But then my pointers down the tree would need the same, and pointers up would be Weak<Cell<Leaf>> I guess? I have a headache just thinking about it.

Using Rc + Weak would mean less unsafe code, worse performance and code thats even harder to read and reason about. I don't have an intuitive sense of what the performance hit would be. And it might not be possible to implement this at all, because of mutability rules.

Switching to an array improved performance, removed all unsafe code and reduced complexity across the board. Cursors got significantly simpler - because they just store an array index. (And inserting becomes cursor.insert(item, &mut tree) - which is simple and easy to reason about.)

I really think the Vec<Node> / Vec<Leaf> approach is the best choice here. If I were writing this again, this is how I'd approach it from the start.
by globular-toast | 2025-04-29 07:01:26+00:00
This sounds similar to a modular monolith design. But you have to be careful not to directly import things between apps and especially not to make foreign keys between the models of different apps. We ended up doing that and just wishing it was one big app.

Modular monolith is a good idea and if you want to do it in Django then make small apps that just expose services to each other (ie. high-level business functions). Then have a completely separate app just for the UI that uses those services.
by namaria | 2025-04-29 07:01:51+00:00
> There are plenty of species with plenty of shared norms, expectations, and trust

Citation needed on that one.

> Consider that Sparta and Athens were separated by only 130 miles, yet couldn't possibly have been further apart!

They spoke the same language, shared the same literature, practiced the same religion, had a long history of diplomatic ties. When the Persians razed Athens, they took refuge with the Spartans.

> For instance Chimps have intricate little societies that at their peak have reached upwards of 200 chimps.

Again, I don't think this claim stands to evidence. The so called chimp war you mention is about a group of about a dozen and a huge fight that broke out among them. That doesn't support the idea that they are capable of 200-strong 'intricate' groupings.
by nonrandomstring | 2025-04-29 07:02:41+00:00
Editing audio interviews for podcast I sometimes remove lots of "particles" as the author calls them (I just call them "ums and ahs"), TFA poses a question. Do particles have "meaning"? Don't think I ever heard a discussion of that in any linguistics class, but they do have an effect. Working in radio/podcast you get quite a deep feel for speech as more than just words.

I've heard there are effective "de-um" plugins, but I prefer to work with them by hand because they create non-verbal signals, mood, excitement, confidence or lack of confidence about a statement. So often I decide to leave them in. They can signal relations between multiple interviewees, like deference or conversational leadership. Some speakers are impossible to 'de-um' as it's so woven into their speech.
by fifilura | 2025-04-29 07:02:42+00:00
Contrarian approach: $8000 is not a lot in this context. What did the CEO think of this? Most of the time it is just a very small speed bump in the overall finances of the company.

Avoidable, unfortunate, but the cost of slowing down development progress e.g. 10% is much higher.

But agree that senior gatekeepers should know by heart some places where review needs to be extra careful. Like security pitfalls, exponential fallback of error handling, and yeah, probably this.
by theahura | 2025-04-29 07:02:59+00:00
Open to suggestions for an edit or will let dang do it (sorry for creating more work for you @dang). That said, I do stand by the title. This EO demands the use of military to 'prevent crime' and 'assist in law enforcement'. This is the definition of martial law. ("Martial law is the replacement of civilian government by military rule and the suspension of civilian legal processes for military powers.")
by beloch | 2025-04-29 07:03:19+00:00
One of the cool things about how Canada conducts its elections is that it's still hand-counted paper ballots. Other levels of government sometimes use machines to lower costs, but federal elections remain old-school. Votes are physical objects that can be counted and re-counted as needed, reducing the risk of fraud. The count is still done quickly, with a government declared before the day is done. At the time of writing, only a few seats remain up in the air.
by 8fingerlouie | 2025-04-29 07:03:40+00:00
Most Oracle "shops" i know have used it for decades. When they started using it, there weren't many options, so Oracle was what was used.

COBOL is in the same category. When invented, it was the absolute easiest programming language to learn and use, so of course it gained popularity.

It then turned out to be rather good at what it did, along with running on hardware that "never fails", so most places didn't even think about replacing it until sometime in the 90s.

Also keep in mind that the reason companies are migrating away from COBOL is not due to the language as much as due to young people not taking an interest in COBOL and Mainframes, making it hard to recruit new talent.

Even then, a migration away from a typical mainframe is a huge task. In most cases you're talking 50-60 years of "legacy" (still running, still working, still updated) code, and replacing a system that has evolved for half a century is not an easy undertaking, at least not if you plan on getting it 100% right the first time.
by thot_experiment | 2025-04-29 07:04:23+00:00
Interesting, I feel the opposite, I agree that an excellent teacher who knows the material back to front is invaluable.

My general model for how "being good at programming works" is that it's just mostly a stacking buff based on how much you've touched, I'm choosing to give the person in the anecdote the benefit of the doubt and believe in both their technical expertise and skill as an educator. Most technical things are kind of like other technical things, and if you've been around for a while everything is kind of like something you've done before, it makes it very easy to pick up new tools/domains. I fully believe that someone can open up a VAST gulf of knowledge of C++ between themselves and intro to C++ folks in a weekend if they're already a seasoned practitioner.
by tobias5 | 2025-04-29 07:05:50+00:00
Yes the is some stuff already in Apple Health, but I for me personally had the need to see not just the zones for single workouts. So with Heart Rate Zones Plus I can see the zones I was in each day, week, last 7 days, month and last 30 day. Also the option to just check time in moderate and vigorous exercise per e.g. week was missing for me. I try to hit the recommendations of 150 moderate minutes and 75 vigorous exercise minutes here - and be able to check that in a fast easy way.

Also I have a coworker who is never actively tracking the workouts in the gym. As I'm using all heart rate measurements, I would still give you an idea of you zones. Also if you run up the stairs Heart Rate Zones Plus might catch that as high zone.

In addition the calculation methods of Apple for the Zones are just "one method" I added a few more options I found in scientific literature of how to estimate, because depening on you fitness and body in general it may be different for you.
by Ygg2 | 2025-04-29 07:06:36+00:00
I don't think so. One based numbering is barring few particular (spoken) languages the default. You have to had to change your counting strategies when going from regular world to 0 based indices.

Maybe you had the luck of learning 0 based language first. Then most of them were a smooth ride.

My point is you forgot how hard it is because it's now muscle memory (if you need a recap of the difficulty learn a program with arbitrary array indexing and set you first array index to something exciting like 5 or -6). It also means if you are "fighting the borrow checker" you are still at pre-"muscle memory" stage of learning Rust.
by Lucasoato | 2025-04-29 07:07:16+00:00
I’m working on myself. :)

After three tough years in finance, I’ve decided to start a trip around the world, visiting the UK and the US, spending one month traveling through Japan, and then heading to South Korea.

There might be problems in life that can’t be solved with a three-month sabbatical trip around the world, but luckily, I don’t have any of them. :)

At the same time, I’m exploring ways to apply LLMs to video games and have built a small prototype of an LLM-based D&D system. Let’s see where this goes!
by vv_ | 2025-04-29 07:07:32+00:00
> That's one thing I found weird driving in the US. Everyone consistently drove about 5 mph above the speed limit

This is the same in Europe as well. At least from my experience(-s) of driving in Lithuania, Netherlands, Poland and Germany.

> If people, including law enforcement are comfortable with doing 70mph on 65mph roads, why not make the speed limit 70mph

The speed limit is set based on what is considered safe upon collision in a particular area. Furthermore, if you increase the speed limit from 65 mph to 70 mph, you'll likely see drivers going at 75 mph.
by johnnyanmac | 2025-04-29 07:08:37+00:00
I've been on multiple other kinds of subways and trains across the state, and I can't say there's ever been more than the 10 minute lag needed to purchase a tram pass (a one time act). I don't know how even the strictest HSR would compare to the TSA process and the sluggish seating process of a plane.

The commute may not be different in the long term, but as of now LAX's traffic is legendarily bad, even by LA traffic standards.