Show more

‘“The raptors followed us onto the other train. People were terrified. I saw a mother holding her two little daughters. They were all crying. I saw two young women who probably just came back from shopping or a night out because both were dressed in nice clothes. They were clinging to each other, huddled in a corner, crying. There were old people holding onto their shopping bags, shaking with fear.”’

police brutality via Pinboard aka Maciej Cegłowski’s Twitter.

Show thread

But alas, like the social scientists with physics envy, we envy the poets and the hackers for some reason. We sometimes want to be like them even as we are glad we aren't.

We chain our young to desks in university CS programs to "learn" poetry and hacking by rote! We shame them in interviews if they can't reverse a binary tree or have never malloc'ed without free'ing in their lives!

This is most shameful. Why should we mimic them? Let us apprentice young makers and make things together!

Show thread

But, my maker brothers and sisters, have you noticed? Those barbarians, the poets and the hackers, send us their choicest wares as tribute!

Elm, PureScript, TypeScript, BuckleScript (OCaml), Fable (F#) all seek glory by serving us.

We made so much money, we paid hackers to make V8 and SpiderMonkey and JavaScriptCore the most advanced VMs in the world.

We raided the hackerlands and brought back precious crypto to make Secure ScuttleButt, Dat, IPFS, BitTorrent. Soon all will be JavaScript!

Show thread

(I married a hacker lady. Ask me anything 😂.)

§ Ahh, my makers, my beloved family. I may have wandered the lands of Clojure transducers and Haskell applicatives, and once upon a time paid the bills squeezing cache misses and branch mispredictions out of hot loops, but those days are over, the prodigal son has returned.

We make things for ourselves, our friends, our adoring (& paying!) users, so we developed a tolerance for dumb languages with trash runtimes like JavaScript and Python—worth it!

Show thread

(Obligatory viewing for the cultured: 's opus, "NYC Bitche$"

§ The hacker bros & ladies! "You have too many hipsters, hire some fat guys who know C++" via Forget games, these mufuckers make a ton of bank in defense, security, and finance. Many of them, in fits of absentmindedness in college, took several math classes—these are very valuable and can be found in physics places like CERN. They can make us FPGA/GPU accelerators.

Show thread

I only just read this and it's blowing my mind:

I understand my rage and advocacy so much better now that I've placed myself on the code poet–hacker–maker simplex.

I have many thoughts.

§ The code poets are the vegan artists of the bunch ("your shit art don't pay, music eats ramen" per , herself a poet). Gentle shoulda included "grad school, university" in their hangouts. But they CAN make 💰💰💰 at Galois, Jane Street, and a few other boutique firms.

"I accidentally killed my horse. It made me sad. But I was sadder it didn't give me any horse meat."

"I killed a chicken by throwing it in the river and it drowned."

"Mama has TWO stamina rings."
"Did she get those for solving puzzles?"
"No! She had to KILL for them!"

Is my ordinarily-sweet-and-not-murderous family playing Grand Theft Auto???

No, .

is great though, I use it for everything. (I also keep a Terminal window open next to it. (I guess I can open the terminal in VS Code but I'm old.))

Show thread

users know and love the `gq` command to wrap long lines.

Like me, this person wants to know how to do this in :

My solution: open the file in vim, run gq, save-quit, and switch back to VS Code.

22 boosted

We all know that Google (with Chrome-ium) has at least close to 90% of the browser marketshare on the internet.

Which is your primary browser on your computer?

Remember that Brave, Opera and Edge are Chromium derivatives. I consider Safari to be separate since it's Webkit and not Blink.

Retoot this to get more votes in.

#poll #browser #firefox #chromium

people can tell me how I screwed this up:

The name sucks and I don't know how to quickly push to PyPI, will figure out later.

Totally went on André Staltz's style of repos with naked README.js (e.g., some callbag packages).

Show thread

remains a great prototyping language though, use it.

Until OCaml or TypeScript or something better comes along with static types as well as Numpy and Scipy and Pandas and Matplotlib.

Oh, that's , right. I will… probably not port to Julia immediately but someone should. Hopefully the Python reference implementation will be finished within a week.

Show thread

Along these lines, last year was considering adding isEven and isOdd, the proposal citing how frequently these are searched:

In the end, they rejected isEven and isOdd but they did accept isMultiple:

with an unconvincing set of rules (these things are about taste more than people admit), but more than Guido gave.

The end result, however, is valid:

"isEven and isOdd offer no substantial advantages over isMultiple(of: 2)."

Show thread

In 2007 Guido rejected `prod` for :

In June 2019, it was added as

For lit decades now I've wondered what about Python irked me so, even as it came and went as my bill-paying language.

It might be a combination of this Benevolent Dictator For Life shit and this "just learn to use reduce—oops, reduce moved to functools—oops, use" inelegant backpedaling as an excuse for admitting mistakes.

The closest you can get to full organic temporality of creation is if you micro-commit each experiment, each step, with the output in the comments…?

If you're lucky you can maybe break up the final solution into a bunch of nested functions, but often you can't.

This happens with all dense code including regexp as Gary Bernhardt points out: (recall that composing complex regexps is also a highly iterative endeavor)

(This is related to that Numpy slice generator thing.)

Show thread

This is a bit of a brainwave for me—

When writing dense code (Python itertools, Clojure transducers, tricky functional programming, etc.), I write very very incrementally: at each stage I have something that runs but produces incorrect output, and over time the incorrectness decreases (qualitatively) to zero. The only way to know how it works is see progression.

But I always read code as is: our code storage medium eliminates the entire temporal dimension.

This seems highly problematic.

lost communication from the lander couple of kilometers from Moon surface, noooooooo 😖:

I can only imagine that pressssssure 🥺.

Please be ok, little robot.

I suppose it's too much to ask for to have a generator version of `split`.

Without such a thing, I have to manually write out nested for-loops.

And forget about rank-generic code (i.e., seamlessly handles 2D to 5D arrays).

I can see what I'm about to write, and I'm sure someone's written it, but made it hard to search for.


"numpy multidimensional array range index generator" isn't that helpful huh.

Deja vu: I often think the word for めんどくさい "mendokusai" (a phrase we often use around the house meaning "bother" or "annoying") is "mendacious" but no, that word means "false, deceptive, lying". From "mendax": "lying" in the Latin.

But maybe to balance out this false friend, we have つまり, read "tsumari", meaning "in summary".

OH: "I suck at this adulting thing. Meanwhile I'm at the peak of my 'pronounce GitHub "JitHub" to drive coworkers crazy' game."

Show more

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!