skysight-inc/HackerNews huggingface dataset:
I was tempted to buy a Model 3 a few months ago when the prices were lower than ever.

I daily a Land Cruiser and I thought picking up a Tesla simply for my work commute would be a wise decision.

However the nearest dealer and service center is 2+ hours away. That combined with all the anecdotes from my friends who had bad experiences with the them have kept me away.
Indeed! I wonder why the system can't just stop giving the process memory when it's starting to become critical? (say, you're over 95% memory used)

I really think a more general solution is treating memory (and CPU time as welL!) as a scarce resource, and programs should either: (1) Deal with having severely denied resources (default behavior); (2) Use a communication protocol to negotiate memory with the system.

Negotiation could mean (a) The process freeing memory spontaneously when there's pressure (another process requires it) and it's inactive, (b) Requesting the system free memory from other processes when user requires.

This would impose more memory management burden on developers (trying to fulfill OS requests), but in turn it would make for a far better experience when there's memory contention.

Disclaimer: I have no idea how memory allocation works in detail. Maybe this is reinventing the wheel?
>I dunno, the second-ever GDPR enforcement action was against a kebab shop: https://www.enforcementtracker.com/

I wish people would actually read the links they post.

That "poor kebab shop" was fined for this:

--- start quote ---

CCTV was unlawfully used. Sufficient information about the video surveillance was missing. In addition, the storage period of 14 days was too long and therefore against the principle of data minimization. Addendum: Fine has been reduced to EUR 1500 by court,

--- end quote ---

GDPR is there only because of the data storage. Illegal CCTV is covered by different laws that, in a twist that should surprise no one, you shouldn't break even if you are a kebab shop.

The actual first business listed there is a "betting place", and it was fined for illegal use of CCTV, too.

> Also a bunch of local governments, weirdly.

It's not weird. It's how laws are supposed to work: governments are not exempt from them.
I got similar to you; I'm in Australia.
I don’t know anything about Lua other than I want to try it out because of redbean [1]. Wonder if this project can work with that?

[1] https://redbean.dev/
This is a silly justification I think, in the sense that V8 could implement this in a way that can provide stack traces for all stacks that are short enough for a human to browse while also executing programs that use tail calls as goto correctly.
> Specifically, work taking the joy out of a craft I love, interpersonal conflict making work less enjoyable, and the feeling that I will never achieve anything meaningful.

Regarding the interpersonal part, I prefer working with computers than with humans. This leads to the revelation that I should go as low level as possible and stay as far away from business as possible -- business people such as sales manager, marketing VP etc. are the sort that I prefer not to interact with for my whole life -- not because of any emotional bad feeling but just because time is precious so I want to focus on what I love to do. I do understand I cannot completely cut business people from my life but there is a huge middle ground.

Not sure if you feel the same. I'm old enough to not blush when admitting the above publicly, but you probably don't feel the same way or don't want to publicly admit if you do. But if you do then please consider going into the deep labyrinth of system programming.
Of course you're not convecting but if you are radiating from a hot body into an ambient two Kelvin then you are going to lose heat really, really fast. IIRC heat loss by black body radiation into its surroundings is proportional to the fourth power of the temperature difference between the body and surroundings (from memory, and going back a very long way, so maybe incorrect).
According to Consumer Reports, Mercedes-Benz scores second last in reliability amongst car brands.

Lexus/Toyota being the most reliable.

Tesla is middle of the pack at #14 and some surprises (branding?) include Volvo at position 25.

Source: https://www.consumerreports.org/cars/car-reliability-owner-s...
The transcription/subtitles have punctuation, so I think looking for full stops ("periods") would provide a similar to result to audio analysis. PS. The technical search term for the audio process you have described is VAD.
Yes, I don't disagree that user-mode OOM-killers are helpful, or that the system can still hang without swap.

I'm just saying turning on swap, or increasing the swap capacity does not fix the problem, and it usually makes it worse.
Walking from Globen (the sun) to Naturhistoriska (the earth) could be made into a quite nice 10 km walk, with possible detours to see much of the old worker's town of Södermalm, the old town, the city center around Klara/Norrmalm, the urban residential area Sibirien, the university and finally ending up at the science museum Naturhistoriska.

The Stockholm novels by Per Anders Fogelström starting with "City of My Dreams" largely plays out across that walk, if you're interested in the 19th/20th century evolution of the city and its working class.

The metro's art project is also pretty cool if you take the subway when you're in Stockholm, with unique artwork at each station (spanning from a few pieces almost hidden away next to the ad billboards to the whole station decorated to an elaborate theme).
TCO is broader than tail calls to the same function, but tail calls to the same function would certainly be a start.
OOM stands for Out Of Memory, it's a daemon that kills processes when the system runs out of RAM
Trino no longer depends on Hadoop/Hive for any of its data lake connectors. Removing that dependency was a huge effort.
Master Git Bisect for Fast Debugging – Jacob Padilla
If I remember correctly, XHP was the precursor to JSX.
What makes it "incredibly cool"?
Let’s be real: some will never sell.

For the rest: There’s a demographic that has strong skills in marketing and management but does not have skills in ideation/creation (or maybe they just find that part boring). For them it’s great to be able to buy a business with some traction, spend a few months making it more profitable and then either sitting on the MRR after they make their money back, or flip it and sell it for some multiple.
Farewell, Java stingaree: Scientist declare the first marine fish extinction
Testing Tesla's Autopilot recall, I don't feel much safer-and neither should you
this was done to support a historically common pattern: people sharing email addresses who still wanted distinct accounts.
In Logic Pro it's called Humanize.
I recently installed Linux on my main desktop again. After freezing up twice in a week, I looked around.

I enabled systemd-oom, but it hasn't been necessary, because I also enabled zram as a swap device. I've seen it compress multiple gb of ram into a few hundred mb and haven't frozen my desktop since.
That certainly works for Bun and Deno, not sure about what is effective in Node, though.
Even though people have long experienced that you can call an iPhone from an Android or that a Vodaphone customer can call a Reliance customer, somehow people aren’t bothered at all that “messaging” programs don’t interoperate. Google can make 10+ messagers that are incompatible with each other and only a tiny fraction of people see that’s a problem.

And that’s a problem!

After about 30 years we see a clear pattern: something like AIM comes out, because it is locked in there is no competition for the client or the server so there is no motivation to improve either. The thing is the computing world moves ahead so the system goes bad like cheese as the environment it works in changes. A decade later there is a new client out and people are saying “Remember when AIM used to work? There’s a new service that works just as well as AIM used to work” and finally people are so burned out of AIM they are ready to switch but failing messaging systems can lumber on for years like that.

Emphasis on “just as well” because in this scenario the systems are not getting better, you’re not getting an upgrade by switching, you’re just treading water. What people aren’t realizing is that if we had interoperability we would have had competition and after 30 years we’d see 30 years of progress in messaging systems unlike the occasional churn but lack of progress we’ve had.
This isn’t a good thing if your fancy recursion code works great on bun but is slow in other js runtimes.
Is there ever a reasonable case for a "natural ID" like we were taught in database school? In my working experience, I always use either an autoincrementing integer or a random string / uuid as the primary key.
The post mentions the problem but not the solution?
Obligatory IANAL/A (I am not a lawyer/accountant).

Wages and salaries can be written off as Losses on an Income & Loss sheet, so the more money is paid out to employees (executives are employees for this purpose) the less net profit the company has to pay taxes on. In that sense, paying a stupid large salary is a tax write off for the company.

Of course, the employee in question has to pay income tax on those wages/salaries on his own tax return. It also doesn't explain why (read: we all know why) the CEO gets all that money instead of hundreds of developers.
> I think those arguments are sensible if you have a PhD in emacs.

To get that PhD just start reading „Mastering Emacs“ by Mickey Peterson: https://www.masteringemacs.org

Many people try learning by doing Emacs and it’s not a bad approach. However, I believe learning the fundamental „theory of editing“ will help you quite a lot to grasp this tool’s inherent complexity much faster. And it’s a fun read, I think.
One of the two main applications is for civil surveillance.

Your constituents usually don't have radars
Wow, thanks! I'll check it out.
Note: that’s not “copilot” it’s “Microsoft copilot”, which in trademark law is different
You can make an argument for screening immigrants for being decent people before letting them in. Most anti immigrant right wingers are ok with doctors etc but want to exclude criminal types.
Yes. It’s bringing attention to the issue. That way people can discuss.
Hey, thanks for showing this!
I like how it looks on my phone, it's just the right amount of information for a small screen. I think you could keep some of the orange/beige styling, at least in the title bar.

It's however a disaster on my PC. My favourite thing about HN is how I can read top 25 titles by just opening the website, similar to how old Reddit works. That being said, it's not a problem with your website, the better part of modern design language is enshittified by design and lobotomizes the information density to kindergarten levels.

It is definitely more visually appealing, but not user-friendly at the desktop level.
Related to leaving windows open...My friend went to Germany for work last summer and was housed in a new apartment. While she mostly enjoyed it, she complained a lot about the lack of screens on windows to keep out the fruit flies. That could be one reason for not wanting to leave your windows open.
It does but the solution is mundane: use an auto generated primary key.
> the charger is quite bulky

That's easily fixable nowadays for laptops needing up to 100W, you can buy some USB-C adapter and use a modern GaN charger.
Thank you but I'm currently on a tablet and can't access my workstation.
Put me in the camp of google and the rest are horrible for all but very specific/unique technical terms, ie weak neutral currents. Anything that is more "everyday life" is an exercise in futility sorting through trash, often without even the terms you are looking for. And good luck with "verbatim" searches - either ignored or zero results.
For example if you write a json deserializer that's generic over the struct you want to deserialize to (or one in JS that returns a JS object), you'll usually use some sort of recursion. My generic radix sort[0] also has recursion in it, which seems like the most straightforward way to write it, but of course any recursive function could be mechanically converted to one that does not use recursion.

[0]: https://github.com/alichraghi/zort/blob/main/src/radix.zig#L...
It might be the intended behavior of Hyperscan but it really feels like a bug in Hypergrep to report the matches like this - you cannot report a match which doesn't fully match the regex...

I also wonder if there's a performance issue when matching a really long line because Hyperscan is not greedy and will ping back to Hypergrep for every sub match. I guessing this is the reason for those shenanigans in the callback [0].

$ python -c 'print("foo" + "bar" * 3000)' | hg -o 'foo.*bar'

[0] https://github.com/p-ranav/hypergrep/blob/ee85b713aa84e0050a...
Hey, original author here. I feel your comment. I should note that the goal here, as I drew it narrowly, was a technical one: to curate some very specific datasets (the "names and numbers and routes" that describe Internet infrastructure), generate some interpretative metrics that describe the network in various places at various times, and then to get the heck out of the way and let professional social scientists use this evidence to actually write papers and do history.

tl;dr: There's a lot of meaning locked up in historical Internet measurement datasets that is totally inaccessible to the real experts who study society. Technologists need to be respectful, preserve it, unlock it, and make it accessible outside the technical community.
Seems fine if you actually run it on bun.
The part I found most interesting is that it still activates on roads that its mapping system knows aren’t suitable, and that the smiley face sticker is enough to fool their driver attention tracking system. Mercedes seems to have a much more mature engineering culture around safety.
> Would it be difficult to re-design it

The knee-jerk reaction is to say “no, just make all the parts smaller.”, but at some point the peanut and the shell are the same weight and fragments of shell are the same dimensions as a single peanut. Throw in variation on both sides and it becomes a difficult problem most likely requiring a good optical recognition system.
I'm not a lawyer, but my understanding has always been that the copyright notice isn't required at all. If you get into a dispute over the ownership of something, you just need a way to prove you're the actual copyright owner. I don't see how a small line of text on the page will help you do that (especially since you can arbitrarily change it whenever you want).

I keep mine up to date on my sites just because it's basically a staple of modern web design. Not having it would be weird, and having it out of date would probably confuse people.
Fortunately, there's an RFC for people concerned about this :)
https://xmpp.org/extensions/xep-0295.html
It's not really fine and no organization should do that. The assumption that one email address = one person is too deeply embedded into the infrastructure. Tech firms mostly get this right. Consumer Google accounts are never reused for example. Yes it means the namespace becomes polluted over time and some people might have numbers at the end of their email address, and that's a pity, but compared to the pain of reallocating addresses it's not very important.
Assemblers are mostly very large tables of data about instructions. If you're lucky, the architecture will have XML format descriptions of the ISA available that you can derive an assembler from. I think x86-64 even has versions with experimentally determined instruction latency in the same data.

A C assembler with the bulk of the implementation mechanically derived from XML is probably a reasonable project to attempt. I haven't done it yet but it's planned.
That mutex gets cleaned up because thread interruption is implemented as an exception, so the `finally` block would be able to take care of the mutex.
Scientists Have Discovered a Link Between Finance and Topology
> 'what is the irreducible form of compute?'

That is a very interesting question, which I'm trying to explore from another angle: what is the irreducible form of computing? As in, how minimal can a modern (operating) system be, to be able to boot and develop it completely at runtime?

Modern development is like preparing a blueprint of a sculpture, magically applying it on real marble, and when something is not ideal, back to the blueprint. I don't know what the future operating system and post-UNIX paradigm looks like, but I want to explore that design space with a chisel and hammer on live silicon rock. A bare metal REPL to a fully reprogrammable environment/language.

I don't have an answer to my or your query, but reducing the hypercomplex world of computing down to its axioms is a very fascinating topic.
It’s strange that the syntax is not afraid of using non-ASCII Unicode characters (e.g. « », ≤, ≈, ƒ) but then uses the ASCII digraphs /\ and \/ for logical AND and OR instead of ∧ and ∨.
Ask HN: Techies, how do you keep yourself physically engaged?
Greetings HN Community,

As we approach the end of the year and contemplate resolutions for a healthier and more balanced lifestyle, I'm curious about how my fellow tech enthusiasts tackle one of our common challenges: staying physically active amidst a predominantly sedentary tech lifestyle. How do you get motivated, and what routines or activities have you found effective in maintaining your physical and mental wellbeing?

This past year, I took a somewhat unconventional path for someone in our field—I started learning ballet. As a software developer and writer, I never imagined donning ballet shoes, but it's turned into an incredible journey. Ballet offers a unique and powerful blend of discipline, mental focus, and physical intensity that's not only improved my health but also brought a new dimension of creativity and performance into my work and personal life.

I've shared my experiences and the surprising benefits I've discovered in a Medium post titled "Why I Started and Keep Learning Ballet at 40+." As New Year's Eve prompts us to reflect and set goals, I hope my story of embracing ballet might inspire you to consider new, perhaps unexpected, ways to stay active and engaged.

Here's my story: https://medium.com/geeky-regimen/why-i-started-and-keep-learning-ballet-at-40-14ee0663b25e

On the eve of a new year, I'd love to hear your strategies and stories. How do you balance the demands of our tech careers with the need for physical activity? What unexpected hobbies or passions have you pursued to stay active and how have they impacted your life?
You want to enable thrashing prevention: https://docs.kernel.org/next/admin-guide/mm/multigen_lru.htm...

Make sure you use zram (or zswap) as well. May also consider enabling userspace oom handler like others already suggested, but it's less important than the rest.
I think that if you have an escape hatch for something like numbers, it will get abused to the point where the language is incomplete without it, and you have two problems ;)

I'd also agree about your ideal. Maru for a long time was my goto reference as it's small, has a compiler to x86, is self-hosting, and has fexprs as a fundamental design choice.

The main issue with Maru, aside from being coded in C (bootstrapping from fundamentals), is that environments are implicitly dynamic, with no static control.

https://github.com/GiacomoCau/wat-js

has explicit dynamic variable handling, it uses the concept of wrap aka quotation plus env to determine what gets evaluated from the runtime env vs the compile time (static) env.

One thing I'm less keen on, is the use of macros. I feel Zig has the right approach with a compiletime annotation.

Wat also handles delimited continuations, which you can build an algebraic effect system on. Thus you can get multithreading, fibers, async, exception handling, IO, actors etc. very easily in little code.
Wat also has modules.

Forth is like a super power for bootstrapping, but is unopinionated and for higher level coding, could use more of the techniques from Wat.

You might want to look at
https://github.com/dan4thewin/FreeForth2/blob/master/ff.asm

It compiles anonymous functions (words) at the shell. It may be possible to use this technique with dynamic variable handling to get an eager bound system when required.
I prefer a sequential UID to a UUID - but the point still stands.
In some cases you can use the block system in Go templates, but it is extremely sad. I actually made a proposal for an extension to Go templates that would make the “component” workflow a little easier[1], and used it on my site before switching to LuaX, but at the end of the day I don’t like switching languages and I don’t like recompiling my site while I’m writing. Go templates are fundamentally not what I wanted.

[1] https://github.com/golang/go/issues/54748
Belief–desire–intention software model
That's what I assumed this was for as well. Take a composition from something like Hookpad and run it through this before importing into a DAW.
There's no way in hell to run any relatively modern hypervisor without VT-x or AMD-V. There are other, newer additions that do provide a performance boost (or well, a smaller loss) but yeah, VT-x/AMD-V is the basis.
I get it now. If you have a word like "CAT" you click on the C and the T ; because TAC is also a word it can "spin" and write TAC instead.

By rearranging existing words on the grid you can map new words including the "target" word. It's actually pretty hard I find...
I wish this conversation could continue because the question of "what
adds value in a digital space" is the big one. And, for me, ways to
add value that are ethical and empowering are a subject of great
interest. Anyway, happy and prosperous 2024 to both correspondents.
The question then, is what kind of protocol(s) should be used.

SMS is about as close as exists for open instant messaging, but it requires a phone number

IRC seems to have inspired Discord and Slack, with the closed variants improving on features and discoverability.

As far as I know, XMPP doesn't really have a cross-server ability like SMS and IRC, though.
TCO is about more than self-recursive calls -- you should be able to handle mutual recursion:

f = x => x > 0 ? g(x - 1) : 0;
g = x => x > 0 ? f(x - 1) : 0;

(These functions don't do anything other than stress-test the stack, then return 0.)

Note that if I changed this to, say, 1 + g(x - 1), this would no longer fall under the purview of tail recursion, where the last instruction before the return is a recursive call.

The usual workaround I learned in my SICP days was to add a second variable for accumulating any results. And, indeed, that's how the blog post rewrites the recursive function.

(The recursive one-liner is still wildly inefficient because JS doesn't implement arrays as linked lists, so the spread operator results in a copy for each recursive call, resulting in a quadratic solution. It could be made more efficient by using Array.prototype.push, but then it's no longer a pure function.)
For reference, the amount of Medicare fraud quoted is approximately the same size as the global market for online gambling.
I use Kagi because I'm trying to remove Google from my life, but their text search is worse than Google in my experience, and the image search is abysmal. I'm wondering how long I can keep this up. I already revert to Google for image search, and am finding myself using either Google or ChatGPT over Kagi more and more for text as well.
Enable Alt+SysRq+F and do it manually. Works in seconds every time; the kernel can take days because it's not eager enough when thrashing.

Can have security implications, but the target is chosen in the typical way and screen locks should be setting a score_adj to avoid being picked.
> I wouldn't - 100 dollars is not worth a death on my conscience.

How much do you have in mind then?
"Thinking like a customer."

But your title will probably get more clicks.
It is on some hardware on latest feature updates.