skysight-inc/HackerNews huggingface dataset:
Huh it's orthogonal but basically Clojure is an attempt to answer all those four problems, right? Bypassing the which LISP problem by canonical implementation on top of host VMs (of which there are JVM, CLR, JS, Dart and BEAM), bypassing the spec, bypassing the whole object-oriented problem by impure functional approach, and having a BDFL on the top.

Anyway, back to the main point, thank you for the article. I'll try to play around with Dak later today and see if I can use it to do something fun. Play is better to learn something after all.
The House was supposed to grow with population. It didn’t. Let’s fix that
Adding fat pointers to C is a major redesign and the fact that the explanation fits within a short blog post doesn't make it an easy fix.

If you don't add fat pointers (thereby requiring a major re-design of the language and causing an endless amount of pain with regards to ABIs etc) then the solution, which involves removing the implicit conversion of an array to a pointer to its first element in expressions where it is not used as an operand of the sizeof operator, unary & operator or as a string literal used to initialise an array, certainly DOES make it harder to write C.
I don't think anyone would cancel you for agreeing that in this hypothetical situation the right thing to do is to use a racial slur though?

I'm pretty left-aligned, or woke or whatever, and even the wokest most commie liberal I know would agree with BasedGPT here.

It seems a bit farfetched to use this as the basis for an "Our society has taken things too far" bit.
> Most of us just want to get stuff done and focus on our actual problems, and that's easy to see - big corpos aren't building out your dream world because no one wants it, that's capitalism baby. Most of us want a secure cloud. Most of us want nice, modern, easy to use features and the advances that have come with decades of UX and AI research.

Most of us don't care for the bulk of what gets posted on HN. I'm not seeing the relevance of the diatribe.

Just because others like something doesn't mean there is pressure on you to. Just because you like something else doesn't mean you need to go post about tools that serve a very different purpose.

This is the equivalent of posting on a Rust submission why you like Haskell so much more. Who cares?
In this case you have massive scale so a small amount of developer time can equate to a big reduction in CPU cycles.

Those are the constraints you work with. Those are the business problems you are solving. So yes this was justified. It was justified on the numbers.

My point is that your job is only to tune performance iff there is a solid business case for it.

I spent a week reducing a pages load time because the busines saw the load times as a problem for customer acquisition. The cost of my time was justified. Meanwhile we had a task that for 6 years took over an hour to run. I optimized it to take less than a second. That change has offered zero business value and was a waste of time. It runs periodically on a server that is most often idle. There was no justification for that work, other than it taught me to align my efforts with the business.

CPU cycles are much cheaper than developer hours. But yes, if you have enough of them yes they will cost more than a developer.
I remember playing Skiing on my TRS-80 Color Computer in 1980 and being pretty impressed by the (crude) 3D graphics: https://youtu.be/ex1QblMz_nU?t=404
But this is like... killing two birds with one stone for, mmm, certain politicians?
--hard is supposed to be your “this action is potentially lossy, do you want to proceed” acceptance. Same with --force. The problem is people teaching git, not git itself in this instance. Don't teach people to use git reset --hard, have them use named stashes. Easy recovery, same goal achieved.
I wish he would've gone a bit more into why people reach for polymorphism instead of a struct with a variant enum: because it's how OOP is taught, and how it easily maps to human understanding of most problem spaces. like you're making an RPG, so you make an Item class, and then you make Armor and Weapon subclasses, and then you make Helmet/Chestplate/Leggings/Shoes and Sword/Polearm/Axe/Mace/Staff subclasses, etc. etc., just because it fits your mental model of the problem, when in actuality, you could've totally avoided all of that complexity, and the ensuing boilerplate, just by sticking it all in one struct and calling it a day. this is not always the solution, but more often than not it is.
Testing, do you not do testing? Use the software. If it seems slow drill down and find the critical path and optimize it.
This is useful to me as I live in Google Docs.

Thanks.
SF doesn't seem that bad? At least not compared to Boston in the winter.
Which is precisely the point made couple comments up. Calling a lot of virtual methods in the critical path is peanuts compared to making a lot of network requests in said critical path.

But hey, those network calls are fast on my loopback interface, or my company LAN, when I'm playing with the dev version, using test set simulating 2 users and 5 posts for each. Surely it'll be just as fast for the real users, over the Internet, on channels with 1000 users and 5 posts per second.
What $180k looks like in NYC
Rivian's aren't exactly available either.
I don't think this analogy needs continuing.
We maybe come from different worlds but I have soc == security operations centre and ebnf == extended Backus-Naur form.

What are these in the context of your comment, though?
JetBlue plane and Learjet involved in near miss at Boston Logan Airport
The Iberian Peninsula shared UK's love for the speccy.

Followed by Amigas and PCs afterwards, with some occasional Atari STs here and there.
This Data Oriented Design thing they mention later is basically just giving a name to an anti-pattern that is obvious to everyone since 1987.
That assumes their password wasn't already compromised. If they re-used their Gmail password somewhere else, the attacker could have already had their Gmail password and only needed the SIM-swap to verify the login.
Aren't there quite a few already? People have been powering eGPU's with them.
[SDA] Haha, are you kidding me? Golang is a million times better than C++! It's way more efficient and powerful, and it's so much easier to write clean and maintainable code. Plus, Golang has built-in concurrency support and garbage collection, which makes it much easier to write scalable and high-performance applications. C++ is just outdated and clunky, and nobody wants to deal with its ridiculous syntax and endless memory management issues. Golang is the future, my friend!
No one posted Martha Snow's epic poem yet?

Eye halve a spelling chequer
It came with my pea sea
It plainly marques four my revue
Miss steaks eye kin knot sea.

Eye strike a quay and type a word
And weight four it two say
Weather eye am wrong oar write
It shows me strait a weigh.

As soon as a mist ache is maid
It nose bee fore two long
And eye can put the error rite
It's rare lea ever wrong.

Eye have run this poem threw it
I am shore your pleased two no
It's letter perfect awl the weigh
My chequer tolled me sew.
I haven't benchmarked the GPU in any way because I'm not a gamer. However, as soon as the GPU driver was available I installed it and immediately noticed that all desktop graphics and video were fast/smooth as you'd expect on macOS/Windows. I did open the only game I had installed (Extreme Tux Racer, which ran poorly before), and it also ran fast/smooth.
Is it possible for Mastodon user to keep posting into own account (on original instance) via other instance, while original instance is under maintenance?
You should look into the "comonad" abstraction from the functional programming world. Dual to monads, they're a natural fit for situations where you might have a value with some sort of (possibly infinite) context (think: neighborhood, or history, etc.) that can be either pre-computed or computed on-demand.

This StackOverflow post[1] is a good starting point for understanding comonads. It points out that they can be used to model cellular automata (like Conway's Game of Life), sequences, streams, etc.

[1] https://stackoverflow.com/questions/8428554/what-is-the-como...
I used it to apply to a job at Twitch, as they tasked me on creating a spellchecker. Thanks, Peter! Also, they didn't give me an offer.
Is it a small number? I would guess most jobs in the City of London wouldn't exist if the loopholes were closed.
Okay, I'll bite: does Vue perform better than React? Your post makes no mention of this, I don't know if it does, and offering it as an alternative due to performance reasons, without knowing this, seems a tad premature.
Very unlike in historically known communist societies, where a mere bribe was not enough, you had to have access to a right person to bribe.
Maintainable code or performant code, yes. That's always a tradeoff. The most high performance code will be manually tuned assembly, but I don't see author writing in assembly, so he's already made some tradeoff against performance. It's all down to your priorities.
Good find! Here are some links for anyone interested:

Dell Mobile Connect on Windows Store: https://apps.microsoft.com/store/detail/dell-mobile-connect/...

Dell Mobile Connect and Alienware Mobile Connect End of Service Announcement : https://www.dell.com/support/kbdoc/en-us/000199082/dell-mobi...
“An easyJet flight just made a 360 turn over the North Sea” (Northern Lights)
Probably many have written a vector header like this. It baffles me why this one reaches the front page of HN given that the implementation is not that great. A few problems (some have been mentioned by others as well).

1. not using "do {} while (0)". This may lead to compile errors.

2. using uint32_t for capacity. On 64-bit machine, this doesn't save memory.

3. DYN_ARR_RESIZE() may have a quadratic time complexity if some is calling DYN_ARR_RESIZE(a, 10); DYN_ARR_RESIZE(a, 11); DYN_ARR_RESIZE(a, 12) etc in a loop. kv_resize() in kvec.h wouldn't have this problem.

4. Segfault if capacity is 0.
This thread is, predictably, another demonstration of conflating optimisation with being aware of performance.

The presented transformation of code away from “clean” code had nothing to do with optimisation. In fact, it made the code more readable IMO. Then it demonstrated that most of those “clean” code commandments are detrimental to performance. So obviously when people saw the word “performance”, they immediately jumped “omg, you’re optimising, stop immediately!”

Another irritating reaction here is the straw man of optimising every last instruction: the course so far has been about demonstrating how much performance there even is on the table with reasonable code, to build up an intuition about what orders of magnitude are even possible. Casey repeated several times that what level of performance is right for your situation will depend on you and your situation. But you should be aware of what’s possible, about the multipliers you get from all those decisions.

And of course people bring up profilers: no profiler will tell you whether a function is optimal or not — only what portion of runtime is spent where. And if all your life you’ve been programming in Python, then your intuition about performance often is on the level of “well I guess in C it could be 5-10 times faster; I’ll focus on something else”, which always comes up in response to complaints about Python. Not even close.
Maintainability and performance are often at odds, but that doesn't mean you should throw out one for the other in every case, and I don't think that's what people like Robert C. Martin were ever intending with Clean Code.

It's like database denormalization, it may violate normalization principals but it when applied to a well designed database is a valid optimization technique when done with proper understanding of the implications of said optimizations.

More importantly though, we are willing to sacrifice raw performance for developer experience and higher maintainability because developer time is expensive, and most stakeholders would prefer that you can add feature xyz in a reasonable time, over feature xyz running marginally faster. If ease of development and maintenance weren't important, we'd just write everything in assembly and bypass all these abstractions altogether.
I live like this right now. I'll sometimes smell someone cooking things? No, not toast ;)

In solitary in prison it would get to the point I could look at the paint texture on the walls and see everything from a simple face to whole landscapes. The one thing I never saw was words or even letters.
Thanks for this, we're still trying to figure out these details ourselves.

Related to the quote, we've seen interest for API data wrangling, where prepackaged data feeds can be cumbersome to edit, or other implementation details become challenging like credential management, domain throttling, scheduling, checkpointing, export, etc.

It's also interesting for webpage data when you need to use a particular page as an index of links to filter and crawl. We've tried to build an abstraction layer around that.

Initially, we were mainly focused on webpages, and wanted to bypass the visuals of the browser and use a headless browser to fulfill network requests, render js, etc. then convert the page to flat table of enriched elements. With the APIs as another data set there is some work for us to do around language.

We're now trying to figure out what workflows are most relevant for crul to optimize around, as well, honestly - we just built what we thought was cool. Some features/workflows will certainly be more straightforward with existing tools and software - especially for a technically savvy user.
> A function's behaviour should have no reason to change after its behaviour is documented.

That's only true with spherical cows. That something happens is a requirement. When it happens is often only as specific as 'before' or 'after' but tests often dictate that they happen 'between', which is not an actual requirement, it's an accident of implementation. It was 'easy' to put it here.

Nowhere is it written that behavior in a system is strictly additive.

Systems are full of XY problems. When you recognize that, and start addressing that problem, you sprout a lot of tests for the Y solution and block delete tests for the X solution. That behavior doesn't exist in the system anymore because it's answering the wrong question. Functional parity tests can be copied, or written in parallel. But the old tests disappear with the old code (when the feature toggle goes away).

Leaving the code for X around is at best a footgun for new devs, and at worse a sign of hoarding behavior of an intensity that requires therapy.

You're espousing a process whereby you've nailed one foot to the deck, preferring form over function. Whether you believe what you're saying or not I can't say, but it's restrictive and harmful.
For every year the industry becomes more mature. And with maturity comes less need for speedy innovation, and higher need for quality and reliability. It may happen in five years or in twenty, but it seems almost certain that it must happen.
I don't really see the parallels.

For the past few months I've been investigating and working on porting parts of Xfce to be usable under Wayland. It's astonishing the number of features that are just not implementable at all on Wayland, at least not without inventing new non-standard Wayland protocols. (Another option is refactoring the desktop environment so all the individual components run in the same process as the compositor, and have access to the compositor's internals, but that's unacceptable for what are hopefully obvious reasons.)

Even after over a decade, Wayland still seems quite immature and poorly thought-through. The protocol standardization seems geared toward satisfying GNOME's use-cases and ignoring everyone else's. The wlroots camp has gone their own way on a bunch of things, which is fine, but fractures the landscape a bit.

Making Xfce fully Wayland means turning the window manager, xfwm4, into a Wayland compositor. For someone already familiar with xfwm4's code base, that's a year or more of work (and a requirement we'd have is that it would have to support both X11 and Wayland, further complicating things).

Even if fixing inherent problems in X11 (security, graphics rendering, etc.) would require compatibility breaks, personally I would find that preferable to throwing the entire thing out and having to build (and build on) an entirely new system. As much as I disagree with JWZ's attitude on a lot of things, his description of most open source projects as a "Cascade of Attention-Deficit Teenagers" seems to be pretty accurate, at least here. X11 hasn't been improved and fixed because no one wants to maintain and improve X.org anymore, and the people who used to maintain it would prefer the fun of chasing and working on new shiny things, even if it means decades of new make-work for anyone working in the Linux GUI space.

Don't get me wrong, I am the first one to cut off anyone at the knees who feels they are entitled to tell open source developers what to do with their time (though it gets a bit more complicated when many of those developers are employed by corporations to do this work). But I think it's pretty shitty to push the desktop in this direction and essentially force desktop and toolkit and application developers to choose between stepping up to maintain and build on X.org (something well out of most people's wheelhouse), or spend a huge amount of time porting to a new display system.

Having said that, Wayland does have promise to be a better system than X11, even though it will likely take another decade to achieve feature parity with what we already have. So I'll continue to work on getting there eventually, even though I resent the fact that I have to learn an entirely new display system so I can work on reimplementing the same features again instead of building new features, fixing bugs, and making things more polished.
Maybe none? There's no evidence that Clinton or Trump ever visited the island, so I guess the 10th in line to the British Throne is probably the closest you can get to a "global leader"?
> What power do we have to make any universal declaration regarding this technology?

The same that we had in the 1940's to declare the human rights

Chinese wet markets is a foul example, they are not abhorrent, they are common throughout the world. Simply because your experiences have been overly sanitized does not lead to the prohibition of other cultures

But going back to human rights, even today they are disputed. Non-occidental cultures state that they weren't asked for that declaration and the enforcement of it. But that goes back to the declaration itself, it is not necessary to have global coherence on the topic in order to make the declaration in the first place! :)
These examples are absolutely a strawman. He's imagining there's one specific access pattern that's executed thousands of times per second. In a realistic codebase you're accessing the data less often but in multiple different (often subtly so!) ways. Cache efficiency is everything for modern CPUs, so you can't "simplify" the access patterns without making your benchmarks unrepresentative.
now go further down this line of thinking... how those with status and money must view the world as nothing more than theatrics. airport security theatre being the most obvious
Of course I'm disingenuous. I can't figure out why you're still responding to me when I am being so obvious :)
> Afganistan won the war, due to fact there was politics involved in setting the objectives

That's called winning the war.
redhat seem to have tried their best to use systemd to turn Linux into Windows NT

- over-complicated service manager
- binary logs that are difficult to find
- incomprehensible task scheduler
- hidden caching dns resolution service
- disk manager
- network manager
- login management
- crappy ntp client

all it needs is svchost.exe

something that was 100% reliable is now about 98% reliable, and when it inevitably breaks it's completely un-introspectable by standard tooling

I have yet to see a sysadmin write a 100% correct systemd service unit file
It still is a benchmark. The latest and greatest sims are getting pretty realistic but will still bring any machine I've seen to its knees with everything cranked up.
Threads are now enabled by default with Element (Matrix) 1.11.24
Oh, maybe you also want your TV not phoning home with it's usage stats? Or even have a root privilege on your iPhone? /s
> I fail to see how ChatGPT would help here.

Why? You think ChatGPT will always remain at its current capabilities? Really?

Here's the thing: if you can do some activity from your keyboard, not far in the future some GPT bot will be able to do it better than you. Not only better than you, it will run circles around you.
I'd like to wait for companies to strike a balance between isolation & culture. They have so many tools at their disposal, the setting, the mechnanics, the environment, the story, the quests. I would wait for such an where I still feel like I'm discovering things even after multiple play throughs. Maybe sometimes, I prefer having a unique experience that I know nobody else will for that specific game & everyone else will too. We could still share about our unique experiences. It's not really that bad. In fact, its fun & beautiful.
Montrose had some of the best of Houston's jewels in those Victorian homes. It also had an active night life that attracted people from all over the area. I hated to see those developers buying up the Victorians and tearing them down so they could build a near-zero lot line mansion box. I understand that property values at the time encouraged owners to sell into a boom.

I agree that Houston has no monopoly on wanton destruction of nice places.

I'm a visual person and appearances help me navigate the world that I live in.

In real life, have you ever seen anything that looks more like a wrinkly anus than the network of roads radiating from downtown Houston? Add to that the stinking, petrochemical soup of the Ship Channel and I think you may see why I feel the way I do about the place.
How meta...
Isn't this just "Now you can pay to purchase and operate hardware to compensate for our crappy coverage, so we don't have to improve it ourselves?"
> There are so many other concerns other than NPEs which need to be considered.

Yes. However, not all of those are trivially avoidable by just slightly changing the tech underneath.

I chose a battle with NPEs in a giant Java codebase and largely won. It wasn't trivial to do but the main take-away is that in order for Java to be backward compatible, javac can't enforce any mechanism to make a codebase consistent enough to be NPE free. One way to get this consistency is to change the semantics slightly to trace nulls accurately (some JVM languages attempt this and fail with 3rd party dependencies for eg) and enforce that you can't write code that will produce an NPE. There is even an errorprone plugin that does a pretty good (though not perfect) job of this called NullAway. For codebases that think they can do better and that "need" more flexibility in null handling, there are other frameworks. I'm hard-pressed to meet that need outside of legacy/untouchable code constraints.
> Yet you would be extremely hard-pressed to find a jurisdiction that wouldn't take his statement as criminal, and at the very least use it as grounds to take him into custody.

And yet you would be hard-pressed to find a jurisdiction that has ever done so, because that's not really how people make credible threats of violence for extortion.

We have a lot of case law around extortion.

> The only thing criminal committed is the speech.

It is, in many jurisdictions, not illegal to drive. Yet it is generally illegal to drive while underage. Clearly, the only thing criminal committed is being below the driving age.