skysight-inc/HackerNews huggingface dataset:
Since we are on the topic, I've thought about APLs a decent amount so here are some other resources/notes. I'm not an expert on this topic - I don't work with or research the language or anything. These probably are not good getting-started resources.

There is a VM model for APL languages[1] which can make optimizations comparable to those made by CLP(FD). If you read about CLP(FD) implementations[2], you'll see operations similar to what the "An APL Machine" paper calls beating. I'm not sure if any APL-like languages actually implement such optimizations.

There are different models of arrays (and their types) used by APL-like languages[3]. Also array frame agreement can be statically typed[4], though it usually isn't.

Some other OSS implementations of similar languages include Nial[5], ngn/k[6], and GNU APL[7]. My favorite is ngn/k. If you use a K-like language, a great source of inspiration is nsl[8].

There is an unusual and fun calculus book that uses J, by Iverson, but it moves somewhat quickly and loosely[9]. It perhaps gives a good example of what APL was intended to be(?). On that note, his original paper, "Notation as a Tool of Thought" is interesting[10]. There is also podcast interview with Robert Kowalski, one of the creators of Prolog, who says - if I remember correctly - that he was looking for a better way of thinking when he came up with SLD resolution[11]. It's interesting how these languages came out of different paths towards a similar goal.

Also beware the reverence of Arthur Whitney. His work is definitely inspired, but the community around K can seem schizoid-like[12], in a way comparable to Wolfram's projects[13].

That said, J is an exceptionally fun language to use. My favorite insight from an APL-like language that generalizes is how K encourages writing functions that converge by the easiest-to-use loop operator being one that applies a function to an argument repeatedly until the output stops changing.

---

[1]: https://www.softwarepreservation.org/projects/apl/Papers/197...

[2]: http://cri-dist.univ-paris1.fr/diaz/publications/GNU-PROLOG/... (there are probably more to the point papers, this is just the one I read when I noticed the similarities).

[3]: https://aplwiki.com/wiki/Array_model

[4]: https://www.khoury.northeastern.edu/home/jrslepak/typed-j.pd... (implemented in racket iirc)

[5]: https://www.nial-array-language.org/

[6]: https://codeberg.org/ngn/k (honestly it is a miracle this exists)

[7]: https://www.gnu.org/software/apl/

[8]: https://nsl.com

[10]: https://www.eecg.utoronto.ca/~jzhu/csc326/readings/iverson.p...

[11]: https://thesearch.space/episodes/1-the-poet-of-logic-program...

[12]: https://www.ijpsy.com/volumen3/num2/63/the-schizoid-personal...

[13]: http://genius.cat-v.org/richard-feynman/writtings/letters/wo...
Try driving through Wyoming and Kansas. Enjoy.

What car do you have? Do you carry an adapter? How many times has it been stolen for you?
It's mentioned in the MrMobile video, but should be noted this company is also run by the co-founders of F(x)tec. Glad to see they're still investing in keeb phones, even if it's just for iPhone for now. The F(x)tec Pro1 was a cool phone, but a hard sell considering how Android updates work. Still holding out for someone to make a new keyboard phone/accessory for Android.
No language launches perfectly.

If the cost of adding generics later is "existing code still works, and now this can work too" versus "the old version of genetics is flawed, burn everything down and use this version instead" or "generics didn't work out the way we wanted, use this new thing that's totally-not-generics-wink-wink"...

Well, I'd say waiting is the right call. You're already used to adding three extra lines of boilerplate after every single line of code for error handling, living without generics wasn't that hard.

Hell, I recall half the go community was convinced they weren't needed at all by the time they came around.
You missed this:

> Making interfaces dynamic, with no need to announce ahead of time which types implement them
Investigators solved the cold case of Seven DOE
https://github.com/gopherdata/gophernotes

I've had this bookmarked for some time and just havent gotten around to it.
Lol! “ We give you a generous 2 days every sprint to take care of shit that's annoying! Why aren't you happy!??"
Go doesn't need to transition to the kernel to switch threads, does it? It just saves and loads the register state in userland.
Yes, you're exactly right: I haven't used a mouse wheel or the PgUp/PgDn keys to scroll in years, which explains why I haven't noticed any difference from changing the setting (as another commenter also pointed out).

What I didn't realize until now is that 'smooth scrolling' in VSCode etc is an added animation to turn what was originally a discrete, instantaneous change into an gradual animated transition. Smooth scroll in this sense is (I suppose) more about enhancing visual appeal or aiding accessibility for users who have difficulty tracking abrupt changes on screen than about allowing more precise control over scroll positions.
It will just get worse from here. If someone can find a way to monetize something, it will be monetized, and the money will be leaving your wallet for some quadrillionaire who simply needs a yacht and wants it built in a dry dock that will require destroying historic architecture to launch.
But don't those exist primarily for unit testing? That was my understanding of why interfaces were there.

If you wanted a mock, you needed an interface, even if there would ever only be one implementation of it in production.
I still miss a good T9
I think you’re talking about JavaScript apps vs native apps, not specifically PWA vs native.

I make that difference because electron apps are still JavaScript but not PWA, and I suppose you’re talking about the lack of good UI components in the browser.
Friendly Captcha | Infrastructure Engineer | REMOTE within EU | PART-TIME or FULL-TIME | Office in Munich, Germany | https://friendlycaptcha.com

At Friendly Captcha we do one thing and we do it well: we protect websites from malicious actors and bots.

We provide privacy-friendly and accessible anti-bot solutions that don’t annoy users with tasks like clicking fire hydrants. We make the internet a bit better every day by winning over customers currently using Google reCAPTCHA.

We’re a fast-growing, profitable, fully bootstrapped company. Our revenue mostly comes from medium to large European enterprise and governments.

A great fit would be someone pragmatic, who prefers to keep things simple (perhaps boring is the right word?). Good knowledge of modern DevOps/SRE practices is expected (IaC, GitOps, etc...).

Our engineering team is fully remote across Europe, we meet up once per quarter or so. You can work either 4 or 5 days per week, fully remote or (partially) from our Munich office. Please note that we ONLY consider candidates located within the EU.

Stack: Golang | Typescript | Clickhouse | Postgres | Redis | Terraform | OpenTelemetry

Infrastructure Engineer: https://friendlycaptcha.homerun.co/infrastructure-engineer
UC Berkeley clears People's Park with eye on housing plans
/scandalou/s
Are you saying we should build native apps instead?
Yeah, I've been there done that. Got the bleeding edge cuts and scars from it. Worked closely with a hardware decoder's published specs provided by the manufacture. We made files that were within published specs and delivered to them for testing. The hardware choked. We had to keep adjusting until performance was acceptable. Published specs were never corrected to reflect true abilities. Hence my part of the comment about it being the fault of software's fault and not the hardware.
Corporations pre-date the Constitution, and exist in many countries without a constitution, so they do not exist because of "constitutional protections."

Corporations are legal constructs. They are not entitled to any legal protections beyond what the governing jurisdictions decides as a matter of regular law, and they are certainly not entitled to Constitutional protections of their own. In the U.S., Constitutions derive their rights from their owners, and their rights are derivative of their owners.
It’s a talk transcript, not originally written as a blog post.
If they're doing that, then they're stalkers and should be dealt with accordingly. In that case, I'd say the messages are the least worrisome part.
The one I go to regularly (Enterprise, Chicago loop) often exchanges cars with other locations so they probably don't know what they'll have.
This seems like a sunk cost fallacy to me. The web has evolved for decades, too, so why is it so wrong to allow it to compete as an application platform with the established desktop operating systems of the past?
> it was kind of boring.

As a Java dev, I love boring. That's why I picked Java. Boring means less outages.

> find the simplest, plainest abstractions.

Not sure I'd give that medal to Go.
NixOS—or more properly Nixpkgs—certainly does. (I expect Guix does as well, I’ve just never used it.) It’s even cooler when the distro being essentially a build system with an artifact cache means you can still use premade binaries for anything that you haven’t patched.

This falls out as a composition of two features. First, the default package build scripts support (and it’s a good practice to make your customization also support) an attribute called “patches”, containing, well, the patches that are applied to the unpacked source before configuring it. Second, Nixpkgs allows you to reach down into any package and mess with its attributes; NixOS further wires that up to a composable option. The result looks something like this:

nixpkgs.overlays = [ (final: prev: {
gnome-console = prev.gnome-console.overrideAttrs (old: {
patches = old.patches ++ [ (final.fetchpatch {
url = "https://gitlab.gnome.org/GNOME/console/-/merge_requests/80.patch";
sha256 = "0w47hxhgyi88yd16pw28rylj58l0xw7y3671pmgs41szxvgs9g17";
}) ];
});
}) ];

(Here `prev` is the package set just before the customization in question is applied, useful for obvious reasons; while `final` is the package set after all the customizations have been applied, courtesy of lazy evaluation. Why’s that useful? Suppose you want to refer to some other package, say to add it as a dependency, and don’t want to depend on any customizations to it being applied before yours. What happens if you mess up and the customizations depend on each other? Well, what do you think happens when you mess up recursion in a huge chunk of pervasively recursive, pervasively lazy code, most of which you haven’t read. Ugh.)
> This is all to say, "bridging" between SIP and WebRTC is not nearly as magical as it is often made out to be

100% agree. That is what I have been trying to solve with Pion/WebRTC for the Curious. It is portrayed as being harder then it is. Why people do that I don't know. It causes lots of problems though.

* Developers are hesitant to get into WebRTC/VoIP because they think they couldn't figure it out

* Companies are pushing proprietary alternatives and saying 'existing protocols are impossible to use'

I am sure that some wonderful ideas never got built because the education/community just wasn't welcoming enough.
Nice! This is something I have wanted to build myself. Not this exactly but in this space. I was thinking a daily brief / notification kind of thing.

My use case would be overdue or coming Microsoft Todos, upcoming calendars from 2 calendars. Tomorrow’s weather maybe. The hard thing is filtering it down to what I really want to pay attention to, as too many widgets would lead to overwhelm.

Will you make it so people can write their own widgets? That would make it very powerful.

I have a vague memory that Google offered something like this years ago. Probably not as good. But it is bugging me what that thing was! I think I used it once.
Also works indirectly, because these batteries are like 95%+ recyclable into new batteries.
Interestingly, several posts have already been flagged for having a similar perspective.

I'd love to know why we're not allowed to discuss and elaborate on "what we got wrong" in fairly neutral technical terms.
heavy JavaScript usage would be my best guess
The comment answers its own question.

As to why press a button that does nothing? For the same reason fidget spinners were all the rage a few years back: Bored people like to do something with their hands.

Perhaps if the comment had a question that was left unanswered, people wouldn't have become so bored?
This seems like the right answer. An "expert" should be someone whose field of expertise is in the subject being presented to the court. The opposing counsel can (and should) challenge it when appropriate. A PhD in medicine or PE cert is a pretty good bona-fides to presenting a person as an expert to the court, but it doesn't mean that some amateur naturalist whose spent 20 years studying the population of butterflies in the Sierra foothills couldn't be considered an expert in that specific topic of discussion either. Just that their scope might be more limited than the Phd.

California law doesn't seem to make the sort of distinction either, for example:

720. (a) A person is qualified to testify as an expert if he has
special knowledge, skill, experience, training, or education
sufficient to qualify him as an expert on the subject to which his
testimony relates. Against the objection of a party, such special
knowledge, skill, experience, training, or education must be shown
before the witness may testify as an expert.
(b) A witness' special knowledge, skill, experience, training, or
education may be shown by any otherwise admissible evidence,
including his own testimony.

721. (a) Subject to subdivision (b), a witness testifying as an
expert may be cross-examined to the same extent as any other witness
and, in addition, may be fully cross-examined as to (1) his or her
qualifications, (2) the subject to which his or her expert testimony
relates, and (3) the matter upon which his or her opinion is based
and the reasons for his or her opinion.
WPA3 Enterprise 192-bit mode at home
Yep! I work at LiveKit full time now. https://github.com/dennwc and I wrote livekit/sip.

This code was the prototype/how I learned SIP+WebRTC.
The JWST And Standard Cosmology (2023)
Absolutely nothing.

Welcome to why software clickwrapping and EULA's are a blight to the concept of contract law. Also welcome to why "consideration" has been so dubiously defined as to become meaningless in the modern era.

In a world where everything is gated behind Licensing, and all the mediums of executing software are increasingly headed toward ensuring proprietary lock-in through burning in cryptographic hash locks on firmware; right of First Sale is a vanishing luxury that is simply not being offered anymore.
There are plenty of web apps that work just fine with JavaScript disabled though.

I describe my project Datasette a web app, and it works fine without JavaScript: https://datasette.io/content/datasette_repos

(Amusingly I do have a version of it that runs as a completely client-side SPA, by executing the server-side Python code entirely in the browser using WebAssembly: https://lite.datasette.io/#/content/datasette_repos )
is there a way to reverse this trend? it seems to have decades of momentum behind it, but it should still be destroyed.
The Kakhovka Dam has been directing water to the canal that supplies Crimea.

By blowing up the dam, the water level fell too low and cannot supply Crimea with water anymore.

During the first year of the war the Russians retreated from Kherson because they were expecting Ukraine to blow up the dam and cut them off.
The percentage doesn't change much in newer data. As https://waysandmeans.house.gov/wp-content/uploads/2023/03/Sh... (newer but Oklahoma specific) notes:

Relatively few workers actually earn minimum wage, but a substantial share of workers are classified as “near minimum wage” earners. These two groups (minimum wage workers and near-minimum wage workers) make up nearly 1 in 3 workers.

The main point is that just looking at "minimum wage" workers doesn't tell the story. I don't believe you're being intentionally disingenuous, but there are many U.S. states where the minimum wage is an unlivable $7.25/hr and hasn't changed for 10 years or more.
Package management is a very blatant entry for this list too.
Fast anonymous and unique photo editor and gallery
Build this using Sveltekit and Cloudflare. Would love to get some constructive feedback. Sample of how a big gallery looks like : https://imgbee.com/gsbGIDRpNQ
Well panic = very serious problem, what do you expect? You can catch them and handle them but it does not means the system is stable.

Also defer() will run even if there is a panic.
I think this is easy to verify w/o resort to anecdotes. There's an (easy to find) internal dashboard with language metrics, showing the number of CLs (changelists) breaking down by languages and the team.
AI or Not – detect AI-generated photos using AI
> Go is kind of odd in that even when it was new, it was kind of boring.

Java was designed to be boring, too. That’s why, for example, it doesn’t have unsigned integers: it means programmers need not spend time choosing between signed and unsigned integers.

It evolved away from that.
Why?

If it's a great company, has great people and creates awesome products why would a design tool of their choice be a big red flag?

At least Sketch still offers perpetual licenses and it's a proper desktop app.

Monopolies aren't good for us - so having more than one design tool provider is healthy.
Obviously USA - it's always USA vs Russia/China/Middle East. Ukrainian/Russian war certainly isn't helping.
InVision was great when it first came on the scene. Used it to make nice prototypes from my Photoshop mockups and it felt revolutionary at the time. Then it felt like they never innovated after the initial product and failed attempt to capture the Sketch audience.
The new species that came out of a São Paulo tap
Drew DeVault called it an "internet" language back in 2021. And to that I more or less agree.

Read footnote 1 for context.

https://drewdevault.com/2021/04/02/Go-is-a-great-language.ht...
A Chronicle of the Unix Wars [video]
Haha! The absurd names for the services is so accurate and I see it all the time.

Call me boring but I'd rather "ssr-server" rather than something like "tango" any day of the week.
Looks pretty interesting! I'd like to purchase one to repurpose my old Nokia. Do you have dimensions by any chance? Couldn't find any PM Info from your account
New Transistors Might Need a Different Cut of Silicon
yeah, but the point stands. that’s how Adobe took over the world, as well as Apple products like the iPad, the iPhone, etc. “by Mac users for Mac users” is historically a very strong opening position.
I don't necessarily disagree with your comment, but you don't seem to address the chief virtue claimed by this product's marketing material:

> Free up your screen for content
> Content First
> Maximize your screen space for apps and content while you create with Clicks.
> Clicks on. Screen size up.
> Make more space for apps and content by moving the keyboard off your screen.

I have had the experience of the software keyboard making my screen feel claustrophobic from time to time. It has never been bad enough that I would consider reaching for something like Clicks, but it's certainly a problem I would rather never encounter if I had the choice.
No, I meant that with captcha the people who come in will have a sense of trust because they know that everyone has to do that test.
It's a pity that the Textblade never went into real mass production. It was a very cool concept to have a tiny mobile keyboard with multitouch keys.

Article back in 2019: https://appleinsider.com/articles/19/04/10/the-textblade-key...
>> You can edit files inline, be it on your local system or the remote machine. And there is no learning curve here. Just use it like a regular text editor.

Oh, like Vim, or Emacs.

Or like ed ?
Neither just text or just concepts, but text-concepts — LLMs can only manipulate concepts as they can be conveyed via text. But I think wordlessly, in pure concepts and sense-images, and serialize my thoughts to text. That I have thoughts that I am incapable of verbalizing is what makes me different from an LLM - and, I would argue, actually capable of conceptual synthesis. I have been told some people think “in words” though.
> And once all (or let's say most) vehicles are self driving and powered by sustainable energy, things will be overwhelmingly better on all those dimensions.

This is only true for one of them and self-driving is still a long ways off. A self-driving EV still produces a lot of pollution (more than half of the CO2 is during manufacturing, and tire dust isn’t improved), costs a lot, and requires significant amounts of space to store and operate.

Nobody is saying there aren’t utility benefits but we shouldn’t continue massively subsidizing something while ignoring all of the problems. That’s why your analogy is nonsensical: spaf and the rest of the community didn’t say “perfect security is impossible, guess we shouldn’t do anything until AGI solves it for us!” and go to the bar.
RIP, I miss the Sidekick so much. Probably every millennial would have given anything to have one of these in 2001, but a data plan, the hardware cost itself, and exclusivity to T-Mobile placed it firmly outside the reach of everyone I knew including myself.
An investigation of adversarial techniques in CTI reports
"...The set of 667 CTI reports documents 10,370 techniques in total, and we identify 19 prevalent techniques accounting for 37.3 % of documented techniques. We also identify 425 statistically significant recurring pairs and seven types of relations among the techniques in these pairs. The top three among the seven relationships suggest that techniques used by the malware inter-relate with one another in terms of (a) abusing or affecting the same system assets, (b) executing in sequences, and (c) overlapping in their implementations. Overall, the study quantifies how adversaries leverage techniques through malware in APT attacks based on publicly reported documents..."
The company's vision as a whole is to throw some effort at everything and write off what turns out crap. Everyone I knew was on board with that. I was not. That's not a vision, that's distributed incompetence.
Too low level and lacks the power to cleanly model the business domain.
I use the Unexpected Keyboard [1] on Android. I can use shortcuts like on a real keyboard and it is easy to get used to.

[1]: https://github.com/Julow/Unexpected-Keyboard
No doubt it starts as an open question and slowly moves towards knowing.

Which isn't really much of a conflict. You can prove out your thoughts in a scripting language, and after the dust has settled you can move the workload to a systems language. Different jobs, different tools.

I guess if you're one of those weird religious types that insist there is only one true God (read: programming language) you might feel conflict, but nobody else cares.
I had a guy on a Tesla forum one time that told me that an EV would be totally impractical for him. His reason was because he'd need to stop for so long to charge on a little trip of ~500 miles (maybe a little less) and there might not be chargers.

It turned out, he that little trip was along major interstates in California to Disneyland. They were already stopping 3 times for at least 15 minutes each in their gas car.

He still didn't want a Tesla. That's fine, of course. Horses for courses. :)

I never did figure out why he was on a Tesla owner's forum.
Go was designed specifically as a better C++ (that is, a better successor to C). Its use as a Sawzall replacement was a lucky accident, I think -- that just happened to be the first niche where it took hold.

Sawzall was not a widely-liked language, so people had already been trying to replace it with Python, but Go had better performance and stronger typing so it was a better fit. Go really found its footing as a better Python (for some use cases) rather than a better C++.