Shared posts

06 Apr 10:11

Phil Collins' 'In The Air Tonight' Drum Solo, Self-Quarantine Edition

in-the-air-tonight-cabinet-challenge.jpg This is a short TikTok video of a man slamming his kitchen cabinets to the drum solo in Phil Collins' 'In The Air Tonight'. Apparently this is something a lot of people have been doing on TikTok while stuck at home, presumably because their internet has gone out and their televisions have broken. Still, this is the best attempt I saw, even compared to my own (I screamed and ran when I saw the roaches). Keep going for the video.
31 Mar 12:08

Pathogen Resistance

We're not trapped in here with the coronavirus. The coronavirus is trapped in here with us.
30 Mar 11:02

Almost 250 US cities and counties are "still in" the Paris Agreement

by Information is Beautiful
In 2017, President Trump announced the USA’s withdrawal from the Paris Agreement. A coalition of mayors, governors and business leaders didn’t agree. They formed a coalition: We Are Still In. It now includes 3,500 representatives from 50 states. They’re committed to fighting the climate crisis on a local level. Switching to clean energy. Reducing emissions. Helping to fulfil America’s original promise.
27 Mar 15:39

The Death Penalty is Disappearing

by Information is Beautiful
The death penalty is revenge, not justice. It can be used as a political weapon. It discriminates against minorities and the poor. Mistakes can happen. And it’s never been proven to deter crime. Any country that executes people is committing the same violence it condemns. But laws are changing. The number of executions is falling.
24 Mar 12:02

Simon Pegg And Nick Frost Perform Coronavirus Themed Reenactment Of 'The Plan' Call From Shaun Of The Dead

shaun-of-the-dead-coronavirus.jpg This is a video of Simon Pegg and Nick Frost recreating 'the plan' scene from Shaun Of The Dead, but with a coronavirus twist. It made me want to rewatch Shaun Of The Dead, which I probably will considering everything is closed and I have nothing to do but sit at home and count the kernels in my popcorn ceiling. "How many are there?" Too f***ing many, I hate this prison. Keep going for the video, as well as the original movie scene for reference.
18 Mar 15:04

Representative Line: hnjbbbbynbhhhhhhhhhhhh

by Remy Porter

Five years ago, someone at Adam’s company made a commit. Like all good commits, it touched 200 individual files and 3,500 lines of code, and the commit message was simply: “Fixed”.

One of those 200 files was a .h header file, declaring a long pile of function prototypes. One of them is this one. It has no implementation, and isn’t used anywhere:

  void eXosip_suhnjbbbbynbhhhhhhhhhhhhbscribe_free (eXosip_subscribe_t * js);  

One of the most famous survival horror games ever implemented, which combines lo-fi, character-oriented “graphics” with escape room puzzles is VIM. Endlessly customizable, it offers a huge amount of replay value, if you ever successfully exit it.

Adam’s suspicion is that the developer was unwittingly in VIM’s edit mode, and accidentally mangled this. Either that, or a cat decided to do a softshoe routine on his keyboard while he wasn’t looking.

Regardless, that commit never got reviewed, as you can imagine, and thus this little “treat” has been sitting in the code base for five years. The real question is: what else got mashed into the code that no one knows about?

[Advertisement] ProGet supports your applications, Docker containers, and third-party packages, allowing you to enforce quality standards across all components. Download and see how!
18 Mar 13:09

Science Teacher Demonstrates Slow Moving Waves In A Variety Of Hanging Motorized Loops

This is a video of science instructor Bruce Yeany discussing and demonstrating the movement of waves with a variety of different hanging loops, both limp and in motion. Some more info from the man himself while I daydream about the time I started a wave all by myself at a major league baseball game:
The speed of waves through a stationary ropes or chain can vary due to the tension and the density of the material. What happens when the rope itself is put into motion and then a wave disturbance is added? This idea is the start of our investigation using a few different loops of ribbon, rope and plastic chain. The ropes are made into loops by melting and joining the two ends together and then hang limply until put into motion. The behavior of the rope as it hangs stationary and limp versus when it is put into motion is quite remarkable.The closest analogy that might help to understand what is going on would be to imagine throwing rock in a moving stream or river. The waves traveling upstream would slow down and if the stream would be fast enough, the waves wouldn't be able to move in that direction at all. The waves headed downstream would move very fast since both movements would be in the same direction. Could we possibly stop a wave, and then reverse it's direction? This is something that I am attempting to explore.
Science! "What about it?" It's just another word for magic, which is just another word for God. "What did you smoke this morning, GW?" Banana peels! *shrug* If it's the end of the world I've got a list that needs crossing off. Keep going for the interesting, informative video.
13 Mar 11:25

A Joyful Flash Mob Plays Beethoven’s Symphony No. 9

by Jason Kottke

This is an oldie but a goodie. Watch as a single busking bass player grows into the Vallès Symphony Orchestra and a pair of choirs to perform a rousing rendition of Beethoven’s Symphony No. 9 (Ode to Joy) in front of a delighted crowd. (via @victoriamia)

Tags: crying at work   Ludwig van Beethoven   music   video
11 Mar 15:28

How to Stop the Spread of COVID-19: Cancel Everything

by Jason Kottke

Yascha Mounk writing for The Atlantic:

These three facts imply a simple conclusion. The coronavirus could spread with frightening rapidity, overburdening our health-care system and claiming lives, until we adopt serious forms of social distancing.

This suggests that anyone in a position of power or authority, instead of downplaying the dangers of the coronavirus, should ask people to stay away from public places, cancel big gatherings, and restrict most forms of nonessential travel.

Given that most forms of social distancing will be useless if sick people cannot get treated-or afford to stay away from work when they are sick-the federal government should also take some additional steps to improve public health. It should take on the costs of medical treatment for the coronavirus, grant paid sick leave to stricken workers, promise not to deport undocumented immigrants who seek medical help, and invest in a rapid expansion of ICU facilities.

This is very close to my own personal thinking right now, particularly after watching this excellent video about exponential growth and epidemics.

Tags: COVID-19   medicine   Yascha Mounk
11 Mar 10:51

UPDATE: E3 2020 officially cancelled

Still waiting on a public announcement
28 Feb 12:26

Clearview AI’s client list was hacked

by Andy Baio
because of course it was
26 Feb 11:12

The 15th Anniversary of Doing Kottke.org as a Full-Time Job

by Jason Kottke

Kottke 1996

Fifteen years ago this week, on Feb 22, 2005, I announced that I was going to turn kottke.org, my personal website, into my full-time job.

I recently quit my web design gig and — as of today — will be working on kottke.org as my full-time job. And I need your help.

I’m asking the regular readers of kottke.org (that’s you!) to become micropatrons of kottke.org by contributing a moderate sum of money to help enable me to edit/write/design/code the site for one year on a full-time basis.

It seemed like madness at the time — I’d quit my web design job a few months earlier in preparation, pro blogs existed (Gawker was on its 3rd editor) but very few were personal, general, and non-topical like mine, and I was attempting to fund it via a then-largely-unproven method: crowdfunding. As I wrote on Twitter the other day, attempting this is “still the most bonkers I-don’t-know-if-this-is-going-to-work thing I’ve ever done”.

These days, people are used to paying directly for online media through services like Kickstarter, Patreon, and Substack and kids want to run their own personality-driven businesses online when they grow up. But back then, aside from the likes of the WSJ, websites were either a) free to read or b) free to read & supported by advertising and being an online personality was not a lucrative thing. But I figured that enough of you would pitch in to support the site directly while keeping it free to read for everyone with no advertising.

In order to make it feel somewhat familiar, I patterned it after a PBS/NPR fund drive. During a three-week kick-off period, I asked people to support the site by becoming micropatrons. The suggested donation was $30 (but people could give any amount) and there were thank you gifts — like signed books, software, signed photo prints, a free SXSW ticket — for people who contributed. Several hundred people ended up contributing during those three weeks, enough for me to do the site for a year. I still remember that first day, responding to well-wishes from friends on AIM and watching my PayPal account fill up, and it hitting me that this bonkers scheme was actually going to work and pretty much bursting into tears.

Fast forward to the present day and this little website is still chugging along. In its almost 22 years of existence, kottke.org has never gotten big, but it’s also never gone away, predating & outlasting many excellent and dearly missed sites like Grantland, Rookie, The Toast, The Awl, Gawker, and hundreds of others. I have other people write for the site on occasion, but it’s still very much a one-person production by a reluctant influencer (*barf*) who, as an introvert, still (naively?) thinks about posts on the site as personal emails to individual readers rather than as some sort of broadcast. I’d like to thank those early supporters for having faith in me and in this site — you’re the reason we’re all still here, gathered around this little online campfire, swapping stories about the human condition.

About 3 years ago, I returned to the crowdfunding model with kottke.org’s membership program. Since then, I’m very happy to report, readers like you who have purchased memberships have become the main source of financial support for the site. As I’ve written before, I have come to love the directness of this approach — I write, you pay, no middlemen, and, crucially, the site remains part of the Open Web, unpaywalled & free for everyone to read. If you’ll indulge me in a request on this anniversary, if you’re not currently a member of the site (or if your membership has lapsed) and can afford to do so, please consider supporting the site with a membership today. I really appreciate everyone who has become a member over the past few years — thank you!! — and I hope you will consider joining them.

Note: I have no photos of myself taken around this time in 2005, so the photo at the top of the post is me circa spring 1996. I’d dropped out of grad school & was back living at my dad’s house, spending 10-12 hours a day online (via a 28.8K modem) trying to figure out how to build websites. I applied for jobs & internships at places like Wired/Hotwired, Razorfish, Studio Archetype, and MTV but no one wanted to hire a physics major w/ no art or design education or experience to design websites. kottke.org was still a couple of years off at this point…

Tags: Jason Kottke   kottke.org   webdev
26 Feb 11:10

Firefox enables Cloudflare’s DNS over HTTPS by default for US users

by Andy Baio
you can switch to NextDNS or disable it entirely in Network Settings
24 Feb 11:50

Onderzoekers gebruiken kunstmatige intelligentie om nieuwe antibiotica te vinden

by Bauke Schievink
Onderzoekers hebben met behulp van deep learning een nieuw antibioticum ontdekt. Hun algoritmes voorspelden op basis van moleculaire structuur dat een middel tegen verscheidene bacteriesoorten zou moeten werken.
24 Feb 11:39

My 72 Hours in a Viral Tweet Vortex

by Andy Baio
I tweeted a joke that got 100k+ likes a while back and it sucked, 800k+ sounds horrifying
21 Feb 11:31

Neo Takes The Blue Pill: The Matrix/Office Space Keanu Reeves Deepfake Mashup

This is 'Neo Takes The Blue Pill', a mashup/deepfake video created by Youtuber Ctrl Shift Face with the help of visual effects artist Chris Ume, imagining Neo in the world of Office Space, complete with boss Bill Lumbergh getting the Agent Smith treatment. 3/5 but would still watch a full-length version in the theater. "Can I come?" Depends, are you going to try pulling the ol' penis in the popcorn trick? "Is it really a trick if you're expecting it?" Hoho! Get extra salt and butter. Keep going for the video, as well as a worthwhile side-by-side comparison of the effects.
18 Feb 11:34

Robin Sloan on building a tiny messaging app for his family

by Andy Baio
he compares it to the coding equivalent of home cooking: deliberately amateur, loose, and unscalable
17 Feb 11:56

Universe Sandbox

by Jason Kottke

Universe Sandbox is a interactive space & gravity simulator that you can use to play God of your own universe.

You can create star systems: “Start with a star then add planets. Spruce it up with moons, rings, comets, or even a black hole.” You can collide planets and stars or simulate gravity: “N-body simulation at almost any speed using Newtonian mechanics.” You can model the Earth’s climate, make a star go supernova, or ride along on space missions or see historical events.

I found Universe Sandbox after watching this video about what would happen if the Earth got hit by a grain of sand going 99.9% the speed of light (spoiler: not much). This game/simulator/educational tool is only $30 but I fear that if I bought it, I would never ever leave the house again.

Tags: astronomy   gravity   physics   science   space   video   video games
14 Feb 12:24

Inglourious Basterds’ Witty Slate Clapper

by Jason Kottke

Geraldine Brezca has worked on several of director Quentin Tarantino’s movies,1 and for Inglourious Basterds, she was the slate operator — i.e. she clapped the clapper before each scene. And as this video shows, she was very entertaining and creative in her duties:

For each scene’s label, Brezca came up with something funny (A66F = “au revoir 66 fuckers”), ribald (29B = “29 blowjobs”), appropriate (39FE = “39 feet essential” on a scene featuring feet), respectful (4AK = “4 Akira Kurosawa”), or profane (79E = “79 fucking explosives”, which got quite a chuckle from Brad Pitt). See also Here’s Why Slate Operators Matter (And Why Quentin Tarantino’s is So Great).

  1. Brezca’s IMDB page shows that the last movie she worked on was Django Unchained in 2012. Not sure if she left the industry or passed away or what…

Tags: Brad Pitt   Geraldine Brezca   Inglourious Basterds   movies   Quentin Tarantino   video
12 Feb 11:13

Botnet

by Andy Baio
a social network simulator for iOS where you’re the only human with millions of bots obsessed with you
10 Feb 11:02

Dutch court rules against welfare surveillance

by Patrick Tanguay

Rotterdam at night by Joël de Vriend

The creation and adoption of surveillance systems based on Artificial Intelligence often feels like it’s widely outpacing the speed at which cities and countries can legislate any kind of control. So it’s always an encouraging sign when new well considered decisions are rendered and put the public good and human rights first.

One such decision is the Dutch courts’ ruling that a welfare surveillance system violates human rights.

A Dutch court has ordered the immediate halt of an automated surveillance system for detecting welfare fraud because it violates human rights … The case was seen as an important legal challenge to the controversial but growing use by governments around the world of artificial intelligence (AI) and risk modelling in administering welfare benefits and other core services.

It’s especially encouraging since disfranchised and minority populations are usually the ones facing the brunt of surveillance, with little recourse for corrections and / or without the means to pursue legal options.

Deployed primarily in low-income neighbourhoods, it gathers government data previously held in separate silos, such as employment, personal debt and benefit records, and education and housing histories, then analyses it using a secret algorithm to identify which individuals might be at higher risk of committing benefit fraud.

One hopes the decision will have repercussions far outside the Netherlands.

Alston predicted the judgment would be “a wake-up call for politicians and others, not just in the Netherlands”. The special rapporteur presented a report to the UN general assembly in October on the emergence of the “digital welfare state” in countries around the globe, warning of the need “to alter course significantly and rapidly to avoid stumbling, zombie-like, into a digital welfare dystopia”.

Image credit: Rotterdam at night by Joël de Vriend.

Tags: netherlands   surveillance
10 Feb 10:53

The WHO Has Taken Trans Identities Off Its List of Mental Health Disorders

by Information is Beautiful
Trans people identify with a gender that differs from their sex. Prejudice against them is real. They encounter violence, discrimination and social disadvantage. Understanding of their needs is growing, though. From January 2022, the World Health Organisation will no longer classify gender incongruence as a disorder. The aim: to reduce stigma while ensuring access to healthcare. Gender identity isn’t a lifestyle choice.
07 Feb 13:09

Netflix voegt optie toe voor uitschakelen autoplay

by Arnoud Wokke
Netflix heeft instellingen toegevoegd aan zijn website om autoplay uit te zetten in zijn apps. Gebruikers kunnen het automatisch afspelen van trailers in menu's uitzetten. Het was al mogelijk om uit te schakelen dat Netflix automatisch de volgende aflevering begint af te spelen.
04 Feb 11:39

Eevee’s whirlwind history of CSS and web design

by Andy Baio
a delightful, practical look back at how CSS evolved
03 Feb 11:56

Map of Emotions Evoked by Music

by Andy Baio
a companion to the vocal burst map, an interactive visualization of emotions conveyed by music
31 Jan 12:42

Avast Antivirus shuts down data-collection arm after exposé

by Andy Baio
a transparent attempt to avoid litigation, which should absolutely go forward or this kind of abuse will keep happening
31 Jan 12:23

Schwerkraftprojektionsgerät

by Andy Baio
Increpare made a hellish four-way version of Tetris
29 Jan 12:27

AR Pianist

by Andy Baio
releasing in the next couple weeks, according to the creator
29 Jan 11:49

CodeSOD: Microsoft's English Pluralization Service

by Alex Papadimoulis

Despite founding The Daily WTF more than fifteen years ago, I still find myself astonished and perplexed by the curious perversions in information technology that you all send in. These days, I spend most of my time doing "CEO of Inedo stuff", which means I don't get to code that much. And when I do, it's usually working with the beautiful, completely WTF- and bug-free code that our that our world-class engineers create.

I mention this, because when I come across TDWTF-worthy code on my own, in the wild, it's a very special occasion. And today, I'm excited to share with you one of the worst pieces of code I've seen in a very long time: EnglishPluralizationServices.cs

Anyone even remotely familiar with the English language knows that pluralization is hard, and not exactly something that should be generalized in library... let alone Microsoft's most strategic programming asset of the past two decades. And yet, despite that:

internal class EnglishPluralizationService : PluralizationService, ICustomPluralizationMapping
{
    private BidirectionalDictionary _userDictionary;
    private StringBidirectionalDictionary _irregularPluralsPluralizationService;
    private StringBidirectionalDictionary _assimilatedClassicalInflectionPluralizationService;
    private StringBidirectionalDictionary _oSuffixPluralizationService;
    private StringBidirectionalDictionary _classicalInflectionPluralizationService;
    private StringBidirectionalDictionary _irregularVerbPluralizationService;
    private StringBidirectionalDictionary _wordsEndingWithSePluralizationService;
    private StringBidirectionalDictionary _wordsEndingWithSisPluralizationService;
    private StringBidirectionalDictionary _wordsEndingWithSusPluralizationService;
    private StringBidirectionalDictionary _wordsEndingWithInxAnxYnxPluralizationService;
 
    private List _knownSingluarWords;
    private List _knownPluralWords;
 
    private string[] _uninflectiveSuffixList =
        new string[] { "fish", "ois", "sheep", "deer", "pos", "itis", "ism" };
 
    private string[] _uninflectiveWordList = new string[] { 
        "jackanapes", "species", "corps", "mackerel", "swine", "debris", "measles", 
        "trout", "diabetes", "mews", "tuna", "djinn", "mumps", "whiting", "eland", 
        "news", "wildebeest", "elk", "pincers", "police", "hair", "ice", "chaos",
        "milk", "cotton", "pneumonoultramicroscopicsilicovolcanoconiosis",
        "information", "aircraft", "scabies", "traffic", "corn", "millet", "rice", 
        "hay", "----", "tobacco", "cabbage", "okra", "broccoli", "asparagus", 
        "lettuce", "beef", "pork", "venison", "mutton",  "cattle", "offspring", 
	"molasses", "shambles", "shingles" };

I'm not sure what's more baffling. Is it the fact that someone knew enough about language constructs to use words like uninflective or assimilatedClassicalInflection, yet didn't know enough to realize that automatic pluralization is impossible? Or perhaps, the fact that the same engineer thought that an Entity Framework user might not only have a database table named jackanapes or wildebeest, but would care about proper, automatic pluralization?

This code should never have been written, clearly. But as bad of an idea this all is, its implementation is just plain wrong. It's been a while since I've studied my sixth-grade vocabulary words, but I'm pretty sure that most of these are not irregular plurals at all:

private Dictionary _irregularPluralsDictionary = 
    new Dictionary()
        {
            {"brother", "brothers"}, {"child", "children"},
            {"cow", "cows"}, {"ephemeris", "ephemerides"}, {"genie", "genies"}, 
            {"money", "moneys"}, {"mongoose", "mongooses"}, {"mythos", "mythoi"}, 
            {"octopus", "octopuses"}, {"ox", "oxen"}, {"soliloquy", "soliloquies"}, 
            {"trilby", "trilbys"}, {"crisis", "crises"}, {"synopsis","synopses"},  
            {"rose", "roses"}, {"gas","gases"}, {"bus", "buses"},
            {"axis", "axes"},{"memo", "memos"}, {"casino","casinos"},
            {"silo", "silos"},{"stereo", "stereos"}, {"studio","studios"},
            {"lens", "lenses"}, {"alias","aliases"},
            {"pie","pies"}, {"corpus","corpora"},
            {"viscus", "viscera"},{"hippopotamus", "hippopotami"}, {"trace", "traces"},
            {"person", "people"}, {"chili", "chilies"}, {"analysis", "analyses"}, 
            {"basis", "bases"}, {"neurosis", "neuroses"}, {"oasis", "oases"}, 
            {"synthesis", "syntheses"}, {"thesis", "theses"}, {"change", "changes"}, 
            {"lie", "lies"}, {"calorie", "calories"}, {"freebie", "freebies"}, {"case", "cases"},
            {"house", "houses"}, {"valve", "valves"}, {"cloth", "clothes"}, {"tie", "ties"}, 
            {"movie", "movies"}, {"bonus", "bonuses"}, {"specimen", "specimens"}
        };

In fact, the "just add an s to make it plural" rule is perhaps the ultimate starting point for pluralization. Words like "pie" and "cow" are not irregular at all, because you just add an "s" to make them "pies" and "cows". And this brings us to our next questions.

Where exactly did this list of not-actually-irregular plurals come from? It was obviously copy/pasted from somewhere, right? An English textbook? Like, perhaps the the teachers' edition? You know, where there's like a handout with pictures of a cow, then a bunch of cows, and a line below it where you write the word? Did the engineer… just use that page?

Up next on our tour is actual the actual pluralization logic, which is handled by InternalPluralize method. It's not nearly as simple as using those dictionaries. Consider this snippet from within that method:

// handle the word that do not inflect in the plural form
if (IsUninflective(suffixWord))
{
    return prefixWord + suffixWord;
}

Quick aside: please take a moment to appreciate the irony of improperly capitalization in the comment. "the word that do not inflect". Does this mean the author is not a native English speaker? Was this thing outsourced to Kerbleckistan? Does that even make sense to do for… English? Or was this just a typo?

I digress. Let's keep digging into IsUninflective.

// handle irregular inflections for common suffixes, e.g. "mouse" -> "mice"
if (PluralizationServiceUtil.TryInflectOnSuffixInWord(suffixWord,
    new List() { "louse", "mouse" },
    (s) => s.Remove(s.Length - 4, 4) + "ice", this.Culture, out newSuffixWord))
{
    return prefixWord + newSuffixWord;
}

if (PluralizationServiceUtil.TryInflectOnSuffixInWord(suffixWord,
    new List() { "tooth" },
    (s) => s.Remove(s.Length - 4, 4) + "eeth", this.Culture, out newSuffixWord))
{
    return prefixWord + newSuffixWord;
}
if (PluralizationServiceUtil.TryInflectOnSuffixInWord(suffixWord,
    new List() { "goose" },
    (s) => s.Remove(s.Length - 4, 4) + "eese", this.Culture, out newSuffixWord))
{
    return prefixWord + newSuffixWord;
}
if (PluralizationServiceUtil.TryInflectOnSuffixInWord(suffixWord,
    new List() { "foot" },
    (s) => s.Remove(s.Length - 3, 3) + "eet", this.Culture, out newSuffixWord))
{
    return prefixWord + newSuffixWord;
}

It seems that in addition to not knowing English, the author of this class that's used within the .NET framework doesn't really know C# very well? And certainly not how string comparison works in .NET. On the bright side, is that a test for "ese"? Did... our engineer figure out that there are some basic pluralization patterns you can apply? Maybe there's hope after all!

private bool IsUninflective(string word)
{
    EDesignUtil.CheckArgumentNull(word, "word");
    if (PluralizationServiceUtil.DoesWordContainSuffix(word, _uninflectiveSuffixList, this.Culture)
        || (!word.ToLower(this.Culture).Equals(word) && word.EndsWith("ese", false, this.Culture))
        || this._uninflectiveWordList.Contains(word.ToLowerInvariant()))
    {
        return true;
    }
    else
    {
        return false;
    }
}

On the plus side, this "common" suffixes logic ensures that both titmouse and snaggletooth are properly pluralized.

[Advertisement] BuildMaster allows you to create a self-service release management platform that allows different teams to manage their applications. Explore how!
27 Jan 12:54

Google ads now look just like search results

by Andy Baio
the obvious next step is just intermingling them in between organic results