skysight-inc/HackerNews huggingface dataset:
Human beings are bad at case analysis, so removing case analysis makes the code much more comprehensible. It's a huge improvement. Dijkstra wrote extensively on the subject and his arguments are compelling[1].

[1] https://www.cs.utexas.edu/users/EWD/transcriptions/EWD07xx/E... and https://www.google.com/search?q=site%3Ahttps%3A%2F%2Fwww.cs.... for more
I made a similar comment. Both will be flagged and removed soon. If there's one thing HN hates, it's people who don't hate Trump.

It's sort of ironic that this article purports to be "anti establishment" and then parrots a the most establishment-friendly talking point imaginable.
Is this for work or personal projects?

For work I couldn't do without Docker, but for personal projects I don't use it and I'm 100% regretting the MBP 16 I bought in January (which in a vacuum is still a great laptop), because I could now do everything I'm doing on it on a machine that costs half as much and has several times the battery life.
Android is a truly terrible software development platform
A pixelated area communicates more clearly that there’s information present that is hidden from you- but not from others. It also can’t be mistaken for a design element.
> The video game industry needs to learn from the film industry and unionize for better pay and working conditions.

Is Hollywood a successful business model though? Most movies don't make much in the end - we only see the most successful ones.
Uh Huawei?
Yes, Nvidia and AMD are #1 and #2. I was contemplating who might be #3 right now.
Indeed, that's what companies do, earn money for their investors and owners. Sorry to be blunt, but that's how the world works and arguably talented developers can relatively easily find other jobs that are less stressful.
Noob comment: is there a docker-compose and docker-compose.umm format equivalent for kubernetes or something else that has staying power? Thanks
> most music requires a certain degree of subversion of expectation

And that's usually a really small amount within the confines of "what works".
Random 2 cents: A lot of what makes music (at least the kind that most people like to consume) pleasant is repetition and self-similarity. Consider the "sometimes behave so strangely" (https://en.wikipedia.org/wiki/Speech-to-song_illusion) for a fascinating illustration of this.

For many genres, you fundamentally have repetitions at every power of two interval. For example, the hi-hat repeats every eigth. Kick drum every quarter. Snare every second quarter. Maybe an effect every bar, a rhythmic variation every second bar, phrasing covering four bars. Cadence repeats every eight bars. Melody maybe 16 bars. Verse or chorus 32 bars. ABAB song structure. It's repetitions all the way down.

As with all "rules" in music you can ignore them to whatever degree you like. But ignore too many and it just sounds like a mess.

On a related note (no pun intended), I am starting to notice that, for me, getting tired of a song coincides with "hearing" the repetition of material (e.g. chorus) at larger and larger intervals. Of course you know that the chorus repeats, but here I specifically mean that it sounds like an echo of the chorus a minute ago.
Experimental, avant garde jazz. Never been recorded.
Actually what you need to recognize are expressions, and expressions with short variable names are much easier to recognize. For example, if I write:

theDependentVariable = theCoefficient * theIndependentVariable + theIntercept

it is much harder to recognize than if I write:

y = a*x + b

So, longer variable names might be "autodocumenting" but they also make code harder to read.
Yes, it's unrelated. The author says "The central notion of JIT is a well-defined intermediate language called Medium Internal Representation, or MIR. You can find the name in Steven Muchnik’s famous book “Advanced Compiler Design and Implementation.” The Rust team also uses this term for a Rust intermediate language. Still, I decided to use the same name because I like it: MIR means “peace” and “world” in Russian." in https://developers.redhat.com/blog/2020/01/20/mir-a-lightwei...
one of the "underhanded c" contest winners many years ago was an entry for a redaction tool, which drew black boxes on an image in such a way that the software developer could later effectively recover the redacted information easily, while still being able to claim plausible deniability.
The trick was that it worked by producing a ppm file where pixels with single digits would become zeros, but double digits would become 00, and three digit ints would become 000 (all valid values for black in ppm).
I disagree... laptops and desktops have been “dead” forever. The release cycles are boring and the computers even more so. This chip is a big change - Apple came out of the gate offering it in 3 form factors. That’s meaningful.

For the task worker populations at my employer, we only committed serious cash to upgrades when Windows 10 started cutting off support. The funny thing is in some ways the newer devices are slower than the old Haswell stuff. Cheaper laptops are lighter but have awful thermals.
the venice server remains one of the most played to date :)
Devs are always free to go indie and make it big for themselves. But it's a LOT harder than it sounds. So your point is?
Institutional corruption is such a powerful threat to humans that it pays to be suspicious.
Redis has RCE exploits which would not exist in a memory safe language [1]. QMail had an RCE as well[2] and DJBDNS has had a security bug which would not have occurred in a memory safe languages [3]. The linux kernel has had an incredible amount of memory bugs over the years. The software you mentioned does much, much better then the average C written code. But it still has had issues with memory. So in fact all your examples prove my point.

[1] https://github.com/jas502n/Redis-RCE

[2] https://www.qualys.com/2020/05/19/cve-2005-1513/remote-code-...

[3] https://web.archive.org/web/20190126114638/http://article.gm...
Plus one for raindrop. Main reason i decided to pay for it is the caching of the bookmarks. Quite a lot of my bookmarks are no longer available after some time.
Early days, but Hypervisor.framework patches are being built that allow QEMU to run an Arm build of Linux (and Windows) at native speed.

https://twitter.com/jonmasters/status/1333555759737663489

The reality is that some of the drivers for the M1 chip will never arrive, but that if you want to run Linux (or Windows) Arm code then you can do so soon.
Who is using it to excuse anything? Saying that objecting to death threats is used as a distraction technique or "as an excuse" is pretty much suggesting you shouldn't object to it, because doing so is trying to distract or make excuses instead of objecting to unacceptable behavior.
> Won’t be the first or the last acquisition to say everything will stay the same.

Then change it a year or so down the road, requiring you to have an account on some other non-related service in order for your hardware to work. /sarcasm
Then there was the day I wrote a function that started off like this:

char *fn(char **foo, char ***bar){
char *baz = *++*foo ? *foo : *++*bar;

Double-pointers are just normal. The strtol function has one.
Or better yet, put "Itriedtodepixelizeyourpassword".
Yes, by trying to use extortion against her employer to advance her own political agenda.

Highly unethical.

I am glad that she will not be participating in 'ethics' and machine learning any longer because it was totally ironic that someone this unethical would even be considered for the position.
After reading TFA and this comment thread, that doesn't seem scandalous at all. It would be evil for lenders to underwrite deathtraps.
Iannis Xenakis experimented with stochastic music, as well as compositions that were derived from his own architectural designs. A lot of it is very hard to listen to, but he was a trailblazer in this direction.
The signal has already been converted from digital to analog by the time it's going out over a speaker cable.
I keep reading about this every once in a while, and it appears to be industry-standard practice.

Is there a major game developer known not to require this of their employees? (According to the article, CD Projekt appearently made such a promise but failed to deliver on it.)
This is not cutting edge tech so you can dyi this pretty easily
I’m an average person buying a Pi and slapping a media centre distro on there with default settings. I’m pretty sure LibreELEC takes care of the logging issue: https://forum.libreelec.tv/thread/15079-rpi-logging-to-ram/
Well, the problem is that OnlyFans is trying to get ANYTHING "legitimate" before the law comes down on them for the porn.
This is becoming less true with pre-lit trees. We paid an astounding $700 for a tree and the stupid incandescent bulbs burned out and within a couple years the lights didn't work anymore (replacing bulbs did nothing). I was furious that Pottery Barn did not use LED lights in 2016 on a tree that expensive.

I ended up buying light strands and wiring them myself and I gotta say the final product, while eye bleeding expensive, is amazing. Unlike built in lights mine run all the way through the whole tree, into the middle. There are also a lot more lights now than there were before, and they have different plugs for colored lights verse white, so I can use smart plugs to toggle remotely for example. All in all a great end result, but it was probably $1,300 and 8 hours of labor to get there.
Since these keep floating up, I'm already exhausted with this specific rebuttal to Morehead's review:

> As pointed out in John Gruber’s hard takedown of Moorhead’s piece, most of the problems he encountered were software problems, not M1 hardware issues.

Morehead's allegiances and work are relevant biases, as are Gruber's. But Morehead's review wasn't of the M1 processor or architecture as a technology. It was a review of the 13" M1 MacBook Pro as an end-user device.

Software problems _are_ worth raising in a review of who should buy an M1 MacBook, and why someone shouldn't.

Because of the architecture change, the M1 has to come up — to omit its role in requiring Rosetta would be lying through omission. It's not an indictment of the technology, and shouldn't be controversial, for an end-user review to say the first OS revision targeting the first generation of a piece of hardware maybe isn't ready for every task thrown at it, especially those that rely on the newest of the new software components. It's why my workplace isn't even mostly on Catalina yet, much less Big Sur.

For the love of whatever stupid internet points people are trying to win, let Morehead's review go. It's contributor report on Forbes, which makes it only slightly more relevant than a Reddit post. Folks can absolutely find better things to squabble over about these computers.
I think the point is just that profits do not end up going to the people doing the majority of the work.
Usually those lists are intrusive -- their nodes are meant to be part of larger objects. They will be freed in other contexts, e.g. if protected by RCU, memory reclamation is postponed until all threads have quiesced. Or the nodes are allocated by one amongst many allocators (i.e. for performance, or better concurrence), so it is best for the structure itself not to make any assumption about where the memory should be returned to.

So generally, list implementations in C will not free the node, only remove references to it and return it.
Us software developers are too smart for organised labour.

And why would companies like Epic restrict their revenues like that? Epic too sees financial gain from their developers working excessive (potentially unpaid) overtime, no doubt. Unions are necessarily devised and lead by workers, not beneficent corps.
Make it easy to engage and on-board. Solve your customer's problems before they know they have problems. Know your competition (may not be a SaaS) and be faster, better, and cheaper. Capture email addresses of those interested but not ready to commit and follow-up with a drip campaign. Be patient.
I'm in the same boat. The only US-made I found were by Gustin, but they were expensive and the elastic was meh. Everlane has yet to offer socks (non-US but very accountable). Allbirds has cheap(er) eco-groovy socks, but I don't know where they're made. Lemme know if you ever crack that nut, I'm glad I'm not the only person obsessed with trying to ethically source every item of clothing.
Niall Ferguson on Why Bitcoin and China Are Winning the Monetary Revolution
What is the claim here? That Red Hat are the ones being bullies and are misrepresenting the situation?
Incompetence while making a video game isn't a valid reason for death threats either.
yes for iOS, I suggest you take a look at beorg, it is quite nice for quick editing and note taking. Of course the real magic truely happens when org is paired with Emacs but the app is quite useful for basic tasks.
I have an M1 air 8-core 16gb ram model and yes, yes it will. I said something similar when it launched and people dismissed it. Article upon article online of PC die-hards dismissing it, Apple fanboys praising it.

It’s a leap for sure. It’s a really really good chip. We’ll look back from 2027 and see.
It all depends...

But probably not against a static page.

Wordpress is still PHP and a Database and whatever crazy plugins, templates and front end builders are involved.

Depending on how much JAM you have in your STACK, your site/app may or may perform better than WP.

I build a ton of sites in Jekyll, which are static sites and not JAMSTACK. The two get conflated.
“for how we live is so far removed from how we ought to live, that he who abandons what is done for what ought to be done, will rather bring about his own ruin than his preservation.” - Niccolò Machiavelli
Semi-relevant side note: Within some constraints its possible to remove an element in a singly linked list without walking the list. The purpose of walking the list is not to find the element (which you already have) but to find it's previous element so you can fix the "next" pointer on the previous element. What you can do instead is to copy the data from the next element onto the one to delete, making it a "copy" of the next one. And then delete the next one after fixing the pointers. Hard to say in english but here's the idea:

remove_list_entry(entry)
{
next = entry->next;
entry->data = next->data;
entry->next = next->next;
free(next);
}

You do need to handle the case of deleting the last element in the list. That can be done by keeping an EOL element at the end just for this purpose. The real caveat is that it breaks external references to list elements. If you are managing the list yourself however and can deal with these issues you can avoid list traversal (or save a pointer on every list element vs a doubly linked list). Just something to keep in your bag of tricks.
Unnecessary is not really the correct term, it’s one of a huge number of tradeoffs. The you don’t want it for safety critical systems, but Linux isn’t designed to be used for such things.
One way to define "clever" is something you can do but that relies on something you don't expect most readers to have already loaded into their head. Like a riddle, it makes sense if you know the trick it relies on but is baffling if you don't. The difference between "clever" and "smart" then is based in large part on what you expect your readers to already know. Different people have different expectations there and they reasonably vary across teams and time.

Pointers and addresses are pretty fundamental to C, but many C programmers only use them in certain fixed patterns: An address is what you get back from malloc() and pointers are variables to heap-allocated objects. Or pointers are the type you use for parameters when you don't want to copy the value.

There is a deeper understanding you can have: pointers make storage locations first class entities. A common refrain in programming is that if you want to increase the expressiveness and flexibility of your code, you make some concept first class because then you can abstract over it.

In C, storage locations are first class because you can take the address of anything. This lets you abstract over which storage location an operation modifies. Linus's "trick" relies on understanding that using a pointer (to a pointer in this case) lets you abstract over where the node pointer is the head pointer or a next pointer.

If you have Linus's mental model of C, what he's doing isn't clever. It's smart. It uses a fundamental concept of the language to avoid error-prone control flow and edge cases. But if you're only used to using pointers within a handful of proscribed patterns, it likely seems very strange.

I won't make any judgements as to whether thinking of C in this way should be something that people do. Anecdotally, a while back I wrote a blog post on writing a garbage collector from scratch: http://journal.stuffwithstuff.com/2013/12/08/babys-first-gar...

The mark-sweep algorithm isn't super sophisticated, but this is fairly tricky low-level stuff. A lot of people have read it over the years and basically the only negative feedback I've gotten is around where I use the same pointer-to-a-pointer to remove from a linked list. It confuses a lot of people.

So, in my own personal code, I'm fine with stuff like this. But when coding with others, I tend to avoid it.
(just shift+right click in good browsers)
Whilst it's true that even with contractual access rights landlords may not have an actual right to enter (absent an emergency), I'd be careful here... (1) if the landlord or agents turn up anyway and have keys then you'd be relying on calling police to turf them out - who may not side with you whatever the rights and wrongs, (2) it's actually not completely certain legally that quiet enjoyment trumps other rights - as I don't think there have been recent test cases (bear in mind that almost all tenancy agreements do include pretty broad access rights for the landlord to undertake maintenance these days) and (3) if you do refuse access unreasonably and despite a contractual right of the landlord then the landlord may be entitled to damages from you if that delay harms them financially.
What is "resistant to both criminal and antisocial damage" ?

Why would people make major repairs to be resistant to 'criminal' damage? And what is 'anti-social' damage?

I think there is some lingo lost in the transatlantic here.
Cool project! It may be of limited use for detecting suspicious behavior because these smart speakers like to download firmware updates in the background whenever they please, so you wouldn't be able to tell if the light is going off because the speaker is uploading a recording of your private conversation, or if the light is going off because Google decided that the sound that plays when timers go off needs to change. However, it's nice to have some insight into when the device is phoning home.
A) death threats aren't acceptable. They're not really fun to receive. I remember a span when I received several and while I was fairly sure they weren't serious, it's still not too fun to think about.

B) whinging about inevitable death threats to deflect attention from your gaffes isn't really great, either. The public complaint, if anything, further normalizes the death threats with people inclined to make them. Secondarily, it generates sympathy and distraction, which is probably the effect one wanted when one chose to whinge.

If one wants to object to death threats in a way that improves our culture and makes them less likely, it's probably best done out of band from the actual coverage of one's failing. Do it retrospectively, and in contemplative channels, not ones that are already polemic and filled with attention to the failing that caused the original outrage.
Oregonian here. The prices at Ace Hardware yesterday were $40 for a Doug Fir, and $65 for a Noble Fir. A couple years ago I think I paid $60 for a Doug Fir. But you can also just pay $5 to get a permit from the Forest Service and go cut down your own tree. There are some restrictions (no trees over 12', and there must be other trees within 20' for example) but it's fun to hunt your own tree down--even if the tree that you get isn't a perfectly triangular cone shape like you may get at a tree lot
I've spent days on this problem and the hard part is not the music theory. Even Moonlight Sonata will sound dinky if you are playing it with sin waves. Generating an interesting synth sound is at least as hard as generating an interesting melody.

If anyone has any good psychoacoustic resources, I'd be all ears.

Melody is quickly becoming secondary to sound design in modern music, for better or worse.
The iPhone literally changed everyone's life. History books will differentiae between the pre and post smartphone eras. This is nowhere close to a lifechanging product, although it's definitely a big leap.
It's a shame they don't make Firefox the standard at the very least to support diversity with browsers. Of course there'll be pros and cons to this.
Where does that suddenly come from?
someone seems to be shorting big on their stocks ;-)
This really is the exact same conclusion I have came to quite recently. All your point are strongly inline with mine.

I personally love how pragmatic Ruby is but its billion dollar null mistake + lack of typing + single threaded issues are glaring. But I still love the language and especially the community, my problem with switching over to Kotlin + SpringBoot is that lack of rails ecosystem web mindset. The SaaS web focused mindset doesn't really exist in Kotlin e.g no Phoneix LiveView/StimulusReflex competitors. Also while SpringBoot is suppose to be the like the Rails competitor I don't have access to my `rails routes` or `rails new` or `rails generate..`, the rails guys really focus on happiness.

Having said that with Project Loom coming and other JVM goodies it feels really good to be in the JVM ecosystem. It is very much the 'good enough for 95% cases' ecosystem.
I think the M1 is more analogous to the release of the 64-bit A7 CPU. Which doesn’t diminish it’s importance at all. The A7 was the inflection point that had the competition scrambling [unsuccessfully] to catch up to Apple ever since.
You're implying I made a claim I never made. I never said it justified it.
Yes - in general both eglot and LSP are pretty much "out of the box". The biggest factor though, is entirely dependent on how good the various server implementations are.

Having used it in quite a few different languages now it varies greatly; but you can hardly blame Emacs for that.
I never said it's acceptable, but when twitter has close to 200 million daily users, you're going to get some death threats when you do something that makes people upset. And it's blatant PR when the company is forcing the devs to do even more crunch time, then tweet about "death threats" and you see the conversation immediately switch from critical to supportive. It's also not like tweeting "Death threats are NOT OKAY" is going to change the mind of the kind of people who send death threats.
Sun Microsystems was the leader in the enterprise server market in the late '90s (cue the hokey "the dot in dot-com" ads) but the other server/workstation vendors and Microsoft were hot on their heels. Java caught on quickly because they put an enormous amount of money, effort and evangelism into driving Java everywhere in hopes of creating a new ecosystem under their control to serve as a moat, succeeding primarily in enterprise markets where they wielded an enormous amount of clout. That plus its own merits were enough to overcome its significant demerits, mainly speed and, for lack of a better word, grottiness.

Over time, it evolved into a passable language, the one you see today.
Linus is a sore loser. Dont ever post anything from him.
I think it will benefit Linux but not that way. It will force the x86 vendors to adopt the microarchitectural aspects of the M1 that make it fast in practice, instead of spending so much area/power budget chasing SPEC benchmarks. We will get better chips through competition.