Shared posts

24 Feb 07:30

Fallout Shelter

by peter@rukavina.net (Peter Rukavina)

I ran into my friend Suzanne this week in the Sobeys checkout line. I hadn’t seen her in a long time, since the before before the before. The effect was not unlike what I expect opening the door of the fallout shelter to emerge into the nuclear winter would be like: we compared notes, as one might, on how sheltered life was going, and drew a little strength from knowing we’d shared something of the same experience.

Megan Hallinan wrote in November about a bar in Rome that forbid COVID talk:

There’s a bar in Rome (bar in the Italian sense meaning that it primarily serves coffee) where they have taken the revolutionary step of forbidding talk about COVID by anyone who steps foot inside. It’s a refreshing idea, and at this stage in the pandemic calendar one that I don’t think many people will complain about.

On reflection, I realized that most of my conversations, for as long as I can remember, have been COVIDy: Where’d you get that mask? Are you still in Code Magenta? You went to see live theatre?! How you holdin’ up? What’s the deal with celery? (COVID talk apparently involves a lot of folksy contractions).

Between COVID talk and grief talk (and, for a while there, insurrection talk) there’s not a lot of room left over for loftier ruminations. I could use some lofty ruminating.

Years ago my neighbour (and Catherine’s roommate) Mike Johnston pitched a talk show set on a bus, and snagged Margaret Atwood as a guest for the pilot:

Even more impressive, Johnston finagles the participation of Ms. Atwood. Drawing on his friendship with the late Canadian poet Al Purdy, whom he used to book for poetry readings at Peterborough’s Red Dog Tavern, Johnston coerced the author to film an interview for the pilot; Atwood appears gracious and bemused in the segment, and she even signs the roof of the bus in a good-luck gesture. “She was awesome,” he says. “And she had really great skin, too.”

I was thinking about Mike and Atwood this morning because my social worker told me that I could be intimidating, which I found surprising, as I have never thought of myself that way. Atwood, surely, is the most intimidating living Canadian, and I wonder whether she feels that. Or, like me, considers herself a lucky idiot. What kind of friends do you end up with if you’re intimidating?

As if by magic, midway through writing this, my friend Martin phoned and offered to deliver Vietnamese sandwiches for lunch. He arrived 45 minutes later, and we spent the next 2 hours (mostly) not talking about COVID (or insurrection). We did, however, talk about grief for a bit.

Earlier in the week Martin pointed me to a post by his friend Ivan about grief. He mentions the Widow We Do Now? podcast, which I indirectly led him toward, a very helpfully irreverent podcast for people with dead husbands (and wives) that, like Ivan, I’ve been binge-listening.

I wrote to Ivan after reading his post, in part:

I don’t know why hearing tales of those on a similar journey is comforting, but it is.

I’ve found the same thing to be true of the monthly grief support group: who would think that a Zoom populated exclusively by the grieving could be anything other than a catalyst for embarrassed silence. But, no, it turns out there’s a magic to it, and that talking and listening to others who, no matter who and when and how, are grieving is helpful. In a way, what we talk about is irrelevant: just showing up to bear witness to each other is the key.

The estimable Rose Cousins released a lovely cover of Whitney Houston’s I Wanna Dance With Somebody this week (Rose Cousins’ middle name is Millicent, by the way; that endears me to her even more).

The night before Oliver was born we watched Message in a Bottle, starring Whitney Houston’s friend (and former costar) Kevin Costner. I’d forgotten until just now that the plot concerns love letters written by Costner’s character Garrett to his dead wife Catherine, with the dramatic tension being “Garrett cannot quite forgive Catherine for dying and leaving him.” I’ve been there. The tension resolved only when, in a sense, Garrett emerges from his fallout shelter.

Megan Hallinan’s post continues:

Much like politics, we’re all tired of talking about COVID: what it means and how it influences every single decision we make. And when we are not talking about it, we’re all still thinking about it. My internal chyron has had these same two topics looping around for the entire year and good God I am worn out.

As much as I’ve found talking about grief to be powerful and important and, in the end, necessary, I feel worn out in the same way: being defined by, and defining myself by, absence. It can be exhausting.

I’ve been reading John Kim’s book Single On Purpose, and this paragraph hit me over the head:

I’ll tell you why you feel lonely. Because what you get from an intimate partner is something you can’t get from anyone else. Because those conversations after work and those waffles on Saturday morning help the world make sense. Because spooning puts you to sleep like a little baby. Because tongues feel fucking good. Because looking into someone’s eyes for longer than three seconds reminds you that we’re not meant to do life alone. Because being emotionally naked makes you feel alive. Because you can’t really tell your friends how your day went every single day or you won’t have any friends. Because we’re meant to give and share, lose ourselves and find ourselves through others, and love, hard. Because ordering in is so much better when you have someone.

If I’d read that a year ago it would have plummeted me into a cascade of tears as I lay, paralyzed, on the cold metal cot in the back corner of the fallout shelter. Reading it today doesn’t do that, because, hell yes, I’ve been there, I know that, and wasn’t that a blessing. But also because I know that, even after the nuclear winter, nature finds a way, and it reminds me of life’s possibilities.

One of the things we return to frequently in discussions among the grieving is whether grief with a side of COVID has made the process easier or harder. Opinions vary: one person’s loneliness is another person’s time for quiet reflection; some take solace that the world is, in a sense, also grieving. That’s something that’s always hit home with me, and I now again find my own situation mirrors that of the world around: with the back of the COVID curve seemingly broken again, and the pace of vaccination picking up, the fallout shelter doors, if not enthusiastically thrown open, are at least no longer welded shut.

To the point where, when I write “Who knows what might happen next?”, it can be a statement of possibility and hope, not of despair.

24 Feb 07:30

Twitter Favorites: [ab81] Checked out the amazing Malaysian food at One2Snacks in Agincourt. Soo good! The curry laksa was very tasty & I’m s… https://t.co/fMH0HWYuhv

Ab. Velasco @ab81
Checked out the amazing Malaysian food at One2Snacks in Agincourt. Soo good! The curry laksa was very tasty & I’m s… twitter.com/i/web/status/1…
24 Feb 07:29

Cross-database queries in SQLite (and weeknotes)

I released Datasette 0.55 and sqlite-utils 3.6 this week with a common theme across both releases: supporting cross-database joins.

Cross-database queries in Datasette

SQLite databases are single files on disk. I really love this characteristic - it makes them easy to create, copy and move around. All you need is a disk volume you can create as many SQLite databases as you like.

A lesser known feature of SQLite is that you can run queries, including joins, across tables from more than one database. The secret sauce is the ATTACH DATABASE command. Run the following SQL:

ATTACH 'other.db' AS other;

And now you can reference tables in that database as other.tablename. You can then join against them, combine them with UNION and generally treat them as if they were another table in your first connected database.

I've wanted to add support for cross-database queries to Datasette since May 2018. It took me quite a while to settle on a design - SQLite defaults to only allowing ten databases to be attached together, and I needed to figure out how multiple connected databases would fit with the design of the rest of Datasette.

In the end, I decided on the simplest option that would unlock the feature. Run Datasette with the new --crossdb option and the first ten databases passed to Datasette will be ATTACHed to an in-memory database available at the /_memory URL.

The latest.datasette.io demo now exposes two databases using this feature. Here's an illustrative example query that performs a UNION across the sqlite_master metadata table in two databases:

select
  'fixtures' as database, *
from
  [fixtures].sqlite_master
union
select
  'extra_database' as database, *
from
  [extra_database].sqlite_master

Try that out here.

Cross-database queries in sqlite-utils

sqlite-utils offers both a Python library and a command-line utility in one package. I've added ATTACH support to both.

The Python library support looks like this:

db = Database("first.db")
db.attach("second", "second.db")
# Now you can run queries like this:
cursor = db.execute("""
select * from table_in_first
    union all
select * from second.table_in_second
""")
print(cursor.fetchall())

The command-line tool now has a new --attach option which lets you attach a database using an alias. The equivalent query to the above would look like this:

$ sqlite-utils first.db --attach second second.db '
  select * from table_in_first
    union all
  select * from second.table_in_second'

This defaults to returning results as a JSON array, but you can add --csv or --tsv or other options to get the results back in different output formats.

A cosmetic upgrade to tags on my blog

I noticed that Will Larson's blog shows little numbers next to the tags indicating how many times they have been used. I really liked that, so I've implemented it here as well.

Each entry (and quotation and link) now gets a block in the sidebar that looks like this:

Screenshot showing my new tags, each with a number indicating how many times they have been used

As a long-time fan of faceted search interfaces I really like this upgrade - it helps indicate at a glance the kind of content I have stashed away in my blog's archive.

Releases this week

  • datasette-json-preview: 0.3 - 2021-02-20
    Preview of new JSON default format for Datasette
  • sqlite-utils: 3.6 - 2021-02-19
    Python CLI utility and library for manipulating SQLite databases
  • datasette: 0.55 - 2021-02-19
    An open source multi-tool for exploring and publishing data
  • datasette-graphql: 1.4 - 2021-02-18
    Datasette plugin providing an automatic GraphQL API for your SQLite databases
  • higher-lower: 0.1 - 2021-02-16
    Functions for finding numbers using higher/lower
  • download-tiles: 0.4.1 - 2021-02-16
    Download map tiles and store them in an MBTiles database

TIL this week

24 Feb 07:29

Radio 2.x

by Doc Searls

AM radio in an old chevy convertible

On Quora, somebody asks, How can the radio industry stay relevant in the age of streaming music and podcasts? Here’s my answer:

It already is, if you consider streaming music and podcasting evolutionary forms of radio.

But if you limit the meaning of radio to over-the-air broadcasting, the relevance will be a subordinate one to what’s happening over streaming, cellular and Internet connections, podcasting, satellite radio, digital audio broadcast (DAB) and various forms of Internet-shared video (starting with, but not limited to, YouTube).

The main way over-the-air radio can remain relevant in the long run is by finding ways for live streams to hand off to radio signals, and vice versa. Very little effort is going into this, however, so I expect over-the-air to drift increasingly to the sidelines, as a legacy technology. Toward this inevitable end, it should help to know that AM is mostly gone in Europe (where it is called MW, for MediumWave). This follows in the tracks of LW (longwave) and to some degree SW (shortwave) as well. Stations on those bands persist, and they do have their uses (especially where other forms of radio and Internet connections are absent); but in terms of popularity they are also-rans.

BUT, in the meantime, so long as cars have AM and FM radios in them, the bands remain relevant and popular. But again, it’s a matter of time before nearly all forms of music, talk and other forms of entertainment and sharing move from one-way broadcast to every-way sharing, based on digital technologies. (Latest example: Clubhouse.)

24 Feb 07:29

Instapaper Liked: The Year The Earth Stood Still

I was looking through some of my old posts recently, particularly with regards to COVID-19 and the first lockdown here in Spain, and realized I hadn’t done an…
22 Feb 20:48

Fifth Generation Management

I want to talk about an idea I call fifth-generation management. 1/ [[Fifth-generation management is an emerging style of management we don’t know much about because it doesn’t actually exist yet.::highlight]] But it is guaranteed to emerge post-Covid because historically, big sharp disruptions have reliably triggered discontinuous changes in management culture, and it is already clear that this one is doing that.

22 Feb 20:43

Research software code is likely to remain a tangled mess

by Derek Jones

Research software (i.e., software written to support research in engineering or the sciences) is usually a tangled mess of spaghetti code that only the author knows how to use. Very occasionally I encounter well organized research software that can be used without having an email conversation with the author (who has invariably spent years iterating through many versions).

Spaghetti code is not unique to academia, there is plenty to be found in industry.

Structural differences between academia and industry make it likely that research software will always be a tangled mess, only usable by the person who wrote it. These structural differences include:

  • writing software is a low status academic activity; it is a low status activity in some companies, but those involved don’t commonly have other higher status tasks available to work on. Why would a researcher want to invest in becoming proficient in a low status activity? Why would the principal investigator spend lots of their grant money hiring a proficient developer to work on a low status activity?

    I think the lack of status is rooted in researchers’ lack of appreciation of the effort and skill needed to become a proficient developer of software. Software differs from that other essential tool, mathematics, in that most researchers have spent many years studying mathematics and understand that effort/skill is needed to be able to use it.

    Academic performance is often measured using citations, and there is a growing move towards citing software,

  • many of those writing software know very little about how to do it, and don’t have daily contact with people who do. Recent graduates are the pool from which many new researchers are drawn. People in industry are intimately familiar with the software development skills of recent graduates, i.e., the majority are essentially beginners; most developers in industry were once recent graduates, and the stream of new employees reminds them of the skill level of such people. Academics see a constant stream of people new to software development, this group forms the norm they have to work within, and many don’t appreciate the skill gulf that exists between a recent graduate and an experienced software developer,
  • paid a lot less. The handful of very competent software developers I know working in engineering/scientific research are doing it for their love of the engineering/scientific field in which they are active. Take this love away, and they will find that not only does industry pay better, but it also provides lots of interesting projects for them to work on (academics often have the idea that all work in industry is dull).

    I have met people who have taken jobs writing research software to learn about software development, to make themselves more employable outside academia.

Does it matter that the source code of research software is a tangled mess?

The author of a published paper is supposed to provide enough information to enable their work to be reproduced. It is very unlikely that I would be able to reproduce the results in a chemistry or genetics paper, because I don’t know enough about the subject, i.e., I am not skilled in the art. Given a tangled mess of source code, I think I could reproduce the results in the associated paper (assuming the author was shipping the code associated with the paper; I have encountered cases where this was not true). If the code failed to build correctly, I could figure out (eventually) what needed to be fixed. I think people have an unrealistic expectation that research code should just build out of the box. It takes a lot of work by a skilled person to create to build portable software that just builds.

Is it really cost-effective to insist on even a medium-degree of buildability for research software?

I suspect that the lifetime of source code used in research is just as short and lonely as it is in other domains. One study of 214 packages associated with papers published between 2001-2015 found that 73% had not been updated since publication.

I would argue that a more useful investment would be in testing that the software behaves as expected. Many researchers I have spoken to have not appreciated the importance of testing. A common misconception is that because the mathematics is correct, the software must be correct (completely ignoring the possibility of silly coding mistakes, which everybody makes). Commercial software has the benefit of user feedback, for detecting some incorrect failures. Research software may only ever have one user.

Research software engineer is the fancy title now being applied to people who write the software used in research. Originally this struck me as an example of what companies do when they cannot pay people more, they give them a fancy title. Recently the Society of Research Software Engineering was setup. This society could certainly help with training, but I don’t see it making much difference with regard status and salary.

22 Feb 20:40

7 Reasons Your E-Learning Website Needs a Blog

Laura Lynch, LearnDash, Feb 22, 2021
Icon

Though this post comes from a marketing perspective, and is fairly basic to those already convinced of the merits of blogging in e-learning, it may be useful to help convince the many people who feel that social media is sufficient. This, especially, is a goof reason: "Blogging forces you to be accountable. You’re too public to be uninformed about the latest news. More than that, once you fall into the blogging mindset, you’re constantly looking for new ideas to write about.

Web: [Direct Link] [This Post]
22 Feb 20:40

Sea Island

Not the most original name, granted. It’s wedged into the middle of Greater Vancouver’s western oceanfront and is mostly occupied by our airport and its apparatuses. But there are a couple of decent parks, and on a greyish February day they yielded fresh air, smiles, and a harvest of photographs. This particular season of this particular year, we’ll take what we can get.

McDonald Park

It’s wedged in between the airport and the north branch of the mighty Fraser River, whose existence is a big part of the reason Vancouver exists. It’s low-key and old-school.

Pay phone (!) in McDonald Park on Sea Island, Vancouver

Lauren picked it up and listened but there was no dial tone.

Walking along a riverbank smells and feels different than the oceanfront. It wasn’t much of a day but the gloom was relieved by the joy of the many off-leash dogs getting blissfully filthy in the mud and sand.

Reflecting puddle in McDonald Park on Sea Island, Vancouver

I thought the most interesting part was the semi-artificial marsh, deliberately planted and encouraged in an effort to compensate for one or another of the many losses in salmon habitat following on infrastructural improvent.

Marsh sign in McDonald Park on Sea Island, Vancouver Cattails in McDonald Park on Sea Island, Vancouver

These pictures reinforce an argument I’ve made here before and will make again: The desirability of going for a photowalk with a modern cameraphone — they’re all excellent — and a difficult, opinionated, prime lens, in this case my trusty Samyang 135mm f/2.. Neither can take any of the pictures that the other can.

Iona

It’s Regional Park (whatever that means) stuffed in behind Vancouver’s main water treatment plant, mostly distinguished by nice views out over the Straight of Georgia (that’s the water between Vancouver and Vancouver Island) (no, Vancouver isn’t on Vancouver Island, deal with it) and the South Iona Jetty, a stone string stretching 4km into the sea; you can walk or bike out and back, which I recommend but we didn’t do today.

People walking on South Iona Jetty, Vancouver

A popular spot on February 21st, 2021.

But for me the main attraction is the views out over the straight to the islands on the other side. Today the tide was at a level that maximized the extent of the tidal flats.

Tidal flats at Iona Park, Vancouver

Behind the flats the sea-grass reminds me irresistably of the coat of Highland cattle.

Dry sea-grass in Iona Park, Vancouver

Some vegetation flourishes in the intertidal zone; I’m sure there’s a branch of botany that understands how plant metabolisms can survive salt water, and maybe there’s something in there we could all learn from.

Tidal flat vegetation at Iona Park, Vancouver.

Let’s put on the long lens and peer across the ocean at the islands.

Looking across the Straight of Georgia from Iona Park, Vancouver

When we drove home, since Sea Island is where the airport is, all of a sudden we were on the road home from the airport, which we’ve taken so, so often over the years but not for a long time, and it felt spooky. Can’t imagine when I’ll fly again.

In these dark days, get the hell outside and soak up some air and light, already. You’ll thank yourself. Take a camera.

22 Feb 20:39

Good Friction / Bad Friction in Community Signup Forms

by Richard Millington

As a general principle, the more information you seek from members the fewer will complete the registration form.

Some automatically assume this is a bad thing and reduce the information sought to just an email address and password.

The reality is the registration form is one of many tools you use to attract the members you want in your community and the kind of mindset they’re in when they arrive.

If you simply want anyone and everyone, you will get members who haven’t had to think what they want from (or what they can contribute to) the community. That will be reflected in your discussions.

But adding the right kind of friction helps shape the kind of community you’re creating

Take a look at this signup form below (for a very meta community for community managers).

There is a hodgepodge of good and bad ideas here.

The location, mobile number(!), job title, and favourite TV show can probably be removed.

Unless you’re limiting membership by any of these categories, they don’t change the mindset of members or act as a natural filter for members.

The ‘what are you seeking’, ‘what can you offer’, and ‘what is your proudest accomplishment’ are examples of good friction (although the former two need more options).

These questions make people think about what they want from the group, prime them to offer something to the group, and encourage people to share what they’re proud about. It creates the platform for a very unique sort of community.

Just because you can reduce friction and get more people to complete the registration form doesn’t mean more people will participate in a productive way. Carefully adding friction can help nurture a far better community.

22 Feb 19:32

American Idle

by Eugene Wei

I promised one final piece on TikTok, focused primarily on the network effects of creativity. And this is that, in part. But it discusses a bunch of other topics, some only tangentially related to TikTok.

All the points I wanted to cover seem hyperlinked in a sprawling loose tangle. This could easily have been several standalone posts. I've been stuck on how to structure it.

Some people find my posts too long. I’m sympathetic to the modern plague of shortened attention spans, but I also don’t want lazy readers. At the same time, this piece felt like it was missing a through line that would help pull a reader through.

And then I had a minor epiphany, or perhaps it was a moment of delusion. Either way, it provided an organizing conceit: I decided to write this piece in the style of the TikTok FYP feed. That is, a series of short bits, laid out vertically in a long scrolling feed.

This piece is long, but if you get bored in any one section, you can just scroll on the next one; they're separated by horizontal rules for easy visual scanning. You can also read them out of order. There are lots of cross-references, though, so if you skip some of the segments, others may not make complete sense. However, it’s ultimately not a big deal.

If I had more time, I might have built this essay as a series of full-screen cards that you could swipe from one to the next. Or perhaps tap from one to the next, like Robin Sloan’s tap essay (I wish there a way to export this piece into a form like that, if someone built that already let me know). And if I were even more ambitious, I would've used some Anki-like spaced repetition algorithm to randomize the order in which the following text chunks are presented to you, shuffling it each time a reader jumped in.The most meta way for me to ship this essay would have been as a series of TikTok videos. It would have been the Snowfall of TikTok essays. That would have also taken a year of my life (which, being locked inside because of a pandemic might be the time to attempt something like that?). Also, I am camera shy.

But as it is, this is what you get.


By network effects of creativity, I mean that every additional user on TikTok makes every other user more creative.

This exists in a weak form on every social network and on the internet at large. The connected age means we are exposed to so much from so many more people than at any point in human history. That can't help but compound creativity.

Various memes and trends pass around on networks like Instagram and Twitter. But there, you still have to create your own version of a meme from scratch, even if, on Twitter, it's as simple as copying and pasting.

But TikTok has a strong form of this type of network effect. They explicitly lower the barrier to the literal remixing of everyone else's content. In their app, they have a wealth of features that make it dead simple to grab any element from another TikTok and incorporate it into a new TikTok.


The barrier to entry in editing video is really high as anyone who has used a non-linear editor like Premiere or compositing software like After Effects can attest. TikTok abstracted a lot of formerly complex video editing processes into effects and filters that even an amateur can use.

Instagram launched one-click photo filters (after Hipstamatic, of course, though Hipstamatic lacked the feed which is like the spine of modern social apps), and later Instagram added additional features for editing Stories, and even some separate apps like Boomerang that were later re-incorporated back into Instagram as features.

Snapchat has a gazillion video filters, too, though many are what I think of as simple facial cosmetic FX.

YouTube has launched almost no creator tools of note ever. WTF.

TikTok launches seemingly a new video effect or filter every week. I regularly log in and see creators using some filter I've never heard of, and some of them are just flat out bonkers. What creators can accomplish with some of these filters I can't even fathom how I'd replicate in something like the Adobe Creative Suite.

TikTok’s Warp Scan filter is a bizarre concept for a filter in and of itself, but the myriad of ways TikTok users put it to use just shows what happens when you throw random tools to the masses and allow for emergent creativity. It only takes a handful of innovators to unleash a meme tsunami.


A longstanding economics debate is why we haven't seen the effects of the internet in our productivity figures. I won't rehash every side of every argument there.

But I know this: to take someone else's video and insert a reaction video of my own playing alongside it on the same screen is not easy in a traditional NLE. I'm not saying it's the moon landing, but it's not trivial.

On TikTok, you can just press the Duet button and start talking into your phone, and soon you have a side-by-side of the original video and your reaction video (you can choose from any number of their preset layouts for reactions). That's an explicit productivity boost; I can measure it in time saved for the same output.

You won't see that show up in GDP per capita figures, but it's real.


Remember 2 Girls, 1 Cup? If you've seen it, how could you not?

What interested me was less the video, which just horrified me, but the reaction videos of people watching it. Because 2 Girls, 1 Cup was a short video, I think it was a minute or two long, you could simply watch the face of someone watching the video and sync every reaction to every horrific beat of the video now forever haunting your memory, even though the original video wasn't visible on screen. The fun of the 2 Girls 1 Cup reaction video, but reaction videos in general, is that shared context.

Until TikTok came along, there wasn't an easy way to do reaction videos to other videos and have them make sense unless the original video had so much distribution that it was common knowledge. Or you could put the reaction video alongside or on top of or beneath the original video, but that required skill in using a non-linear video editor to lay those out and synchronize their timelines.

With TikTok's Duet feature, you can instantly record a side-by-side reaction video to anyone else's video. Duet is the quote tweet of TikTok. Or you don't have to do a reaction video at all. The Duet feature is designed simply to allow you to record a video that will play back alongside another video. It can be used for reaction videos, sure, but also to just provide a running commentary on other videos, and there are entire accounts built around both concepts.

But again, the Duet feature is built at such a low level that you can treat the feature as a primitive to replicate any number of other editing tools.


One such tool is to use the Duet feature as a dynamic matte. Since you know where your video will be placed in relation to the original poster's video, you can build a video mosaic.


Another is to use the Duet feature to, well, literally record duets.

But if you allow Duets to stack, well, eventually, one Wellerman can bring the whole chorus to your yard.

Someone truly ambitious could adjust the playback speed of various levels of Inception from the film Inception and stack them and synchronize them in TikTok using the Duet feature. If I had more time I'd do this myself, but the time has come for some time-rich kid out there to take this on.


Knowing that others can Duet your video means you can post any number of videos as prompts.

For example, you can read one side of the dialogue in a two-hander.


Knowing that TikTok has a Stitch feature, you can also post a question in a video and expect that some number of people will use Stitch an answer to your question and distribute that as a new video.

A popular prompt is "Tell me you're X without telling me you're X" or any number of its variants like "Show me you're X without showing me you're X."

Stitch wasn't necessarily designed to be used in this way, but as a primitive it's well-suited to any number of uses, including making TikTok a sort of video Quora.


Video prompts can come from not only other TikTok videos but commenters.

Some TikTok videos are made in response to requests posted in the comments. The comment is excerpted and published as an on screen text overlay at the beginning of the response video.

This is another of the nested feedback loops within the global feedback loop that is the FYP talent show. Once one example of this went viral, then the entire community adopted this as one of the norms of the community.


The Daily Show with Jon Stewart was a show almost entirely built around the reaction video. Stewart would play some clip of a politician being a hypocrite, or some Fox News anchor spouting their usual performative indignation, and then the camera would cut back to Stewart, his face frozen in some emoji mask of shock: eyes wide, mouth agape.

Social networks, and entertainment networks like TikTok, have completed the work of democratizing reactions. Yes, there's no reason you need to react to everything. But it's human nature. This is the social contract of the social media era. If you dare to shout your opinion or publish your work to the masses, the masses can choose to shout back.

Gossip litigates and fleshes out the boundaries of acceptable behavior within groups. Whereas gossip used to be contained, social networks now give it global distribution. This is one reason of many we've seen in-group and out-group boundaries drawn in bolder weight in this era. For every wide-eyed look of horror by Jon Stewart, you had the furrowed brow of disbelief that is Tucker Carlson's signature look, like someone in his elevator car passed gas.

Now extend that to clapbacks on the internet and you have a world in which back-channel gossip, a useful release valve and distribution channel for information about our peers, has become an open dialogue. The grapevine became the public feed, and every day, kangaroo court is in session.


TikTok's Duet feature belongs in the social media hall of fame of primitives alongside features like Follow and the Like button.

What feature better epitomizes the remix, react culture of the internet? Paul Ford once wrote that "Why Wasn't I Consulted?" is the fundamental question of the web. By then, social networks were well on their way to taking over from the web, and in the process, installing the plumbing by which the masses could finally directly opine to the masses, who could, in return, directly consult back. The "reply guy" is the consultant class of the internet, and mansplaining is its verb.

Yes, there are quote tweets and replies, but the TikTok Duet is the video analog, so simple and elegant in its design that you wonder why YouTube didn't launch it ten years ago, and then you remember that YouTube hasn't launched any creator tools of note since...ever.


What the Duet feature does, as described by how it would be done in a traditional non-linear editing program like Adobe Premiere, is the following:

  1. Copies the original file
  2. Inserts a new video track and a new audio track on top of the originals
  3. Allows you to lay down a new video on those new tracks
  4. Performs a whole series of steps to arrange the videos side-by-side on screen

TikTok abstracts a bunch of steps into a single function.


Yes, yes, some of these features in TikTok came from Musical.ly. But that's just a meta form of the theme of this piece! TikTok sampled from Musical.ly and improved upon it. They remixed a remix app.

But also, isn't this how innovation happens? We stand on the shoulder of giants and all that? Good artists copy, great artists steal?

TikTok enables, for video and audio, the type of combinatorial evolution that Brian Arthur describes as the underlying mechanism of the tech industry's innovation.


How many truly original ideas are there in Silicon Valley? Very few. Most have been tried umpteenth times in the past. Much of finding product-market fit in tech is context and timing. And people always underestimate the market side of product-market fit. When something fails, people tend to blame the product, but we should blame the market more often. The pull of the market is usually as important, if not more so, than the push from a product.

One day, the conditions are finally right, and an idea that has failed ten times before suddenly breaks out. Sometimes it's a tweak in execution, maybe it's an advance in complementary or enabling technology, sometimes it's a cultural shift.

Most of the best ideas in tech first appeared in science fiction books in the 1960s, and many of those are still waiting for their time to come. This is why rejecting companies that are trying something that's been tried before is so dangerous. It's lazy pattern-matching.

I do like Jeff Bezos' principle on when he decides to finally give up on an idea: "When the last smart person in the room gives up on the idea." But it also implies that you should bring some ideas back when a new smart person, or maybe a naive overconfident one, enters the room and champions the idea.


Given we know innovation compounds as more ideas from more people collide, it's stunning how many tech firms, even ones that ostensibly tout the value of openness, have launched services that do a better job of letting their users exchange ideas than any internal tool does for their own employees’ ideas.

How many employees join a firm and then spend a week in orientation learning where to get lunch, how to file expense reports, mundane trivialities like that. How many sessions are led by random trainers who don't even work at the company?

If you think of a company as an organism, and new employees as new brain cells, it's staggering how many join the company and begin from an absolute cold start. It's as if the company has chronic amnesia. What has the company learned from its past, what is its culture? When employees take months or even years to get up to speed at a company, companies should be embarrassed. Instead, it's treated as normal.

The free flow of ideas outside a company shouldn't, or in apps like TikTok, shouldn't exceed the rate at which knowledge flows inside a company, but I see it happen time and again.


The toughest job for any creative is the cold start. The blinking cursor on the blank page in a new document. Granted, writing a tweet, or even shooting an Instagram photo, isn't like composing the great American novel. But we tend to underrate the extent to which new users often churn without having ever posted anything to a social network because we only focus on those who do.

Now imagine trying to make a TikTok from scratch if you're older than, say, 19. The creative bar is high, you don't know how to dance, you're not up on the latest memes or popular music. Even if you're a teen, it's not easy to come up with a 0 to 1 TikTok.

But the beauty of TikTok's FYP algorithm and the Discover page is that you don't have to create a TikTok from scratch. The vast majority of TikToks are riffs on memes and trends that other users originate. It's no shame to be a 1 to n TikToker. Many on the platform achieve their first viral hit riffing on an existing meme.

Charli didn't invent the Renegade dance, Jalaiah Harmon did, but Charli made it famous. A lot of Charli and Addison's most popular TikToks are their interpretation of dances other people choreographed to songs other people composed.The ongoing debate on cultural appropriation seems to have no end in sight, but at least on TikTok there is a chance, with time stamps and some of the literal links the app creates between videos, to trace the origin of memes more easily.


Richard Dawkins introduced the term meme in his classic The Selfish Gene, defining it as a unit of information that spreads via imitation. He noted that memes evolve via natural selection just as in evolution. This memetic evolution happens via the same mechanisms as biological evolution, via variation, mutation, competition, and inheritance.

The internet writ large has always been fertile ground for the accelerated breeding of memes (cue toothless old prospector: "Back in my day sonny boy we had to spread memes via email chain letters"). But the TikTok app is perhaps the most evolved meme ecosystem to date.


Assisted evolution occurs when humans intervene to accelerate the pace of natural evolution.

TikTok is a form of assisted evolution in which humans and machine learning algorithms accelerate memetic evolution. The FYP algorithm is TikTok's version of selection pressure, but it's aided by the feedback of test audiences for new TikToks.

Memes can start from almost anything on TikTok. It can be the lyrics of a song, or just the vibe of a track, or both. A user can post a question or a challenge. In a single session on TikTok, you'll find videos of all types, most being riffs on existing memes (the variation).

Regardless of the provenance, any video, once loaded into TikTok, is subject to the assisted evolutionary forces in the app. Software tools like the Duet or Stitch feature and all of TikTok's other video editing tools assist in mutation and inheritance, and each remix of a source video becomes a source video for others to remix, generating further variation. Meanwhile, the competition on the FYP feed is fierce, and the survivors of that extreme selection pressure are memes of uncommon fitness.


In this assisted evolutionary ecosystem that is TikTok, and with an...umm...assist from the pandemic that kept hundreds of millions of people locked inside scrolling their phones, we've seen a marked contraction in the half-life of memes.

Memes used to dominate TikTok for what felt like weeks, and now it seems the memetic zeitgeist on TikTok shifts every few days, if not nightly. If I don't check back on TikTok every day, I find myself scrambling to catch up to the meta when I finally do open the app.


Of course, people grab TikToks and share them on YouTube or Twitter or as Reels on Instagram, but those apps receive flattened video files and can’t break them into component parts to be remixed the way you can on TikTok. Those other services are fine endpoints for distribution, but the creativity happens on TikTok. Don't get me started on apps like Triller (which feels like a Ponzi scheme).

People will litigate Instagram copying Snapchat's Stories feature until the end of time, but the fact is that format wasn't ever going to be some defensible moat. Ephemerality is a clever new dimension on which to vary social media, but it's easily copiable.

This is why TikTok's network effects of creativity matter. To clone TikTok, you can't just copy any single feature. It's all of that, and not just the features, but how users deploy them and how the resultant videos interact with each other on the FYP feed. It's replicating all the feedback loops that are built into TikTok's ecosystem, all of which are interconnected. Maybe you can copy some of the atoms, but the magic lives at the molecular level.

TikTok has a a series of flywheels that interconnect, and there isn't any single feature you can copy to recreate the ecosystem. Meanwhile, Reels has to try to compete while being one of like a half dozen things jammed into the Instagram app.


Markets in the internet and technology age are conducive to winner-take-all effects thanks to preferential attachment. This means that if you are first to stumble upon some flywheelMany like my friend Kevin use the term loops. I use flywheel merely to indicate I'm referring to positive feedback loops since loops can also be negative feedback. Also, I had to make that damn Amazon flywheel diagram for way too many presentations back in the day, it's mounted on a wall in my brain. in your business, the returns are even greater and accumulate more quickly than they would've in any other era in history.

Building a flywheel, though, often requires connecting a series of features at once. When I advise various companies, big and small, I often run into objections to my recommendations because of the popularity of agile or other incremental development philosophies. We end up at loggerheads on the V of MVP (minimum viable product), V having always been contextually determined.

If a flywheel requires three or four or even more things to connect in your app, it takes more work to ship all of them at once, and that feels like a riskier expenditure of your team's time. But, I'd counter: 1) often, testing a flywheel by definition means you have to build multiple features that work together 2) the returns of achieving a flywheel are often so high as to be worth the risk and 3) if you don't achieve any flywheels you are, as investor updates are so fond of saying, default dead.


Instagram famously has never had its version of resharing (e.g. retweeting). This reduced the velocity of photos and later videos on the service, a sort of brake on spam and misinformation and other possible such downsides.

But after using TikTok, it does feel odd to go through Instagram and not be able to grab anyone's photo to remix. Imagine you could grab someone's photo and apply your own filters, or grab just one element of the photo and use it in your photo.

Once we all live in the metaverse, this type of infinite replication and remixability will be something we take for granted, but even now, we're starting to see an early version of it on TikTok. This type of native remixability feels like it will be table stakes in future creative networks.


Fanfic is one text version of sampling and remixing. It doesn't require much more than your imagination.

It's always been really expensive, in both time and legal costs, to sample and remix film and television. TikTok has, with its short video format and tools, made remixing of premium video easier and safer. In Harry Potter TikTok, and its sub-genus Draco Malfoy TikTok, creators pull from the repository of the Harry Potter film universe as if it were on GitHub and merge themselves into branching storylines in which, well, creators become students at Hogwarts and catch the romantic interests of one Draco Malfoy.


The Discover page acts as the Fed in the central economy of memes on TikTok, while the FYP algorithm is the interest rate on meme distribution.

The Discover Page features hashtags. By the very act of featuring a hashtag, they signal to creators that if they create using that hashtag, they will get the distribution boost of that hashtag being featured on the Discover Page. Which raises the age-old conundrum, which came first, the Discover Page hashtag placement, or the hashtag's trending? The answer is yes. It's circular, an ouroboros of virality.

TikTok also posts the number of collective views on videos with that hashtag, helping creators gauge the potential distribution value of climbing aboard that trend.

TikTok is a mix of a centrally planned economy and a free market, much like many multiplayer video games where the game publisher manages the price and availability of various assets like weapons and armor while the players put them to use in the virtual economy.

The Discover Page is also where TikTok will feature corporate challenges. Yes, it's a paid placement, but the creative output is collective and distributed.


Because the most popular memes get super-distribution via the FYP algorithm, you can assume common knowledge of the meme among your viewers and just cut to the punchline. You don't need a bunch of what would be the video equivalent of exposition upfront. This keeps the majority of videos on TikTok compact, critical to the high cadence of the FYP feed. TikTok feels fast. Almost manic.

It also gives viewers that hit of in-group dopamine when they already know the references in your video.


If you don't understand a TikTok video and its references, you can trace the provenance from within the app in any number of ways. You can follow the hashtags in the caption or tap the sound icon and see all the other videos which have been made in that meme branch. Often that's enough to derive the context.

Or you can just read the comments. You'll find you usually aren't alone, someone will almost always have posted a comment like "In here before the smart people arrive" and then below that will be comments that explain the video to everyone else.


The internet, and the assumption of the internet, allowed for more complex and long linear narratives in television, shows like Lost and Game of Thrones. The assumption of Know Your Meme, or just knowledgeable commenters in the TikTok comments, allows for less expository and more compact, obscure TikToks. TikTok comments are a form of distributed annotation.


This technique of offloading the setup for a joke to the internet allows TikTok's, or even Tweets or Instagram posts to take on a form of what I call compressed narrative.

The old format of a joke, with a setup—A man walks into the doctor's office wearing only underwear made of Saran wrap—and then the punchline—and the doctor said "I can clearly see your nuts."—is dead. The internet killed the "joke."

Instead, the internet is mostly punchline, with the barest of setup, if any. It's on you to know the context. Go Google it.

And if you still don't get it, you weren't meant to.


An example is the "I ain't ever seen two pretty best friends" meme that went around on TikTok for a hot minute and has since just become a base trope of the TikTok creative universe. Videos started taking more and more circuitous routes to end with that punchline, throwing all sorts of sleight of hands before dropping it, out of nowhere, like an M. Night Shyamalan film twist.

If you hadn't heard of the meme or didn't know the reference, these videos would be complete mysteries. Even now, if you don't know what I'm talking about, this section will make no sense. Nor will comments like "We found the two pretty best friends" on various videos.


One of the better pieces I read last year was this on the death of political humor in the age of Trump. My favorite turn of phrase from the piece is that "Irony in politics, meanwhile, has reversed its polarity." David Foster Wallace predicted the death of irony, of cynicism, after an initial boom when the internet was coming of age. The lament of the humorist is that figures like Trump are beyond the reach of irony because they are already satires of themselves.I often lament when I refer to as fortune cookie Twitter, and to combat this, I think Twitter should set up a GPT-3 bot that constantly trains on each account, and the moment most of your followers can no longer distinguish between the GPT-3 spoof of your account and your actual account, you should be forced to vacate your account and allow the GPT-3 bot to replace you. You will have literally become a parody of yourself. Also, if for some reason I ever hacked my way into a famous person's account, my goal would not to be to request BTC or post something offensive. Instead, my goal would be to post a tweet that so resembles their voice that no one, not even the person who owned that account, could tell. They'd just think, wow, that's strange, I don't remember posting that, but it is something I'd post, so ¯_(ツ)_/¯

To me, humor has always depended on creating a gap and then helping your audience to hurdle it. In a traditional joke, the gap is the space between the setup and the punchline. When the audience's mind comprehends the joke, they soar across that gap, and the exhilaration is released as laughter. You don't want to carry them across, you want to do just enough to let them take that last leap themselves.

A comedian like Chris Rock will take something from real life and just point out the hidden social truth beneath it, and your mind gets that dopamine hit of acknowledging a social fiction that you'd otherwise observe without question. Like Moses, comedians part the sea of taboo and let you stroll through, laughing all the way at being able to get away with it.

Pre-cancellation Louis C.K. also lived in this space, exposing something of your nature that you were embarrassed to acknowledge. Either he'd absolve you of your shame by absorbing it all himself in a performance of self-loathing, or he'd just forgive you that fault by making it seem universal. Comedians let you look at yourself from outside yourself, creating a gap between you and your own nature.

Trump killed humor by closing that gap entirely, becoming such a parody of himself that shows like Veep seemed less dark satire than some form of fatuous cosplay even though they came first.

But humor is not so easily killed. You just need new ways to restore the comedic gap. Much of TikTok humor is oblique in form, making references that flatter you if you understand them and puzzle you if you don't. But for the latter, you then must set off on a journey to traverse that gap. And when you've completed that journey, you get the delayed satisfaction of getting the joke but also the pleasure of now being in the in-group.

But more sophisticated creators can also play with that expectation, setting off on what seems like a familiar meme, then subverting audience expectations.


Douyin, the Chinese version of TikTok, from the same parent company Bytedance, provides an interesting contrast in the styles of humor between China and America.

A lot of comedic videos in China use a laugh track sound effect. I can't remember the last time I heard a laugh track in a TikTok.

I want to draw some conclusion here, but I don't feel confident enough. Someone more familiar with the cultural differences in Chinese and American humor might clarify this for me.


Netflix brings international programs to the U.S. TikTok brings some Chinese programming to the States also.

TikToker @funcolle makes a sort of hyper-compressed episodic detective series that is filmed in China and spoken in Mandarin, but it works on U.S. TikTok thanks to onscreen subtitles. The sound she uses is, by now, as memorable to me as the theme song to any number of popular TV series like Game of Thrones.

If you can't solve these really short single TikTok video mysteries, you can turn to the comments section to get help from all the other viewers who've pored over the videos in detail and raced to post the solution.

One measure of a platform's power is the number of things people make with it that you had never been made before. Every week, I find videos on TikTok that I can't imagine having been made on any other app.


On TikTok, the comments have become creative terrain in their own right. Somewhere along the line, riffing on someone else's TikTok no longer required you to make a TikTok. Instead, you can just go into the comments and tack on a punchline to the punchline of the video and rack up hundreds of thousands of likes. Writing the most clever comment on a TikTok video has become its own art form.

I can't remember the last time I watched a good TikTok video without then opening up the comments to see what the peanut gallery came up with. Sometimes I read the comments before even finishing the video. TikTok's method of ranking comments almost always surfaces the best and most relevant comments to the top. However you feel about a video, it's uncanny how often one of the top five comments encapsulates it perfectly.

It's difficult in a video to feel the presence of other viewers in a tangible, meaningful way. The Twitch comment bar gives you a visible if somewhat bewildering waterfall of text as evidence of their presence, and the hearts on something like an Instagram Live or the bullet comments on Bilibili videos do the same.

TikTok comments, though, feel ike they extend the canvas of the video. Just as talent shows like The Voice require both contestants and voices to work, more and more it feels as if the TikTok experience is about watching the performers and then listening to the judges (all of us viewers) render their opinions via the comments. There isn't one Simon Cowell on TikTok, but in any comments section of any TikTok video, someone will play that role.

Never read the comments. Unless you're on TikTok, in which case, always read the comments.


Reading the comments on TikTok serves a communal function. It's like hearing the laughter of the crowd at a comedy show.

One of the existential challenges of life is truly connecting with other people's thoughts. Who can ever know that series of emotions and thoughts and dreams we call our consciousness? True human connection seems always out of grasp.

The pandemic exacerbates that sense of isolation. When most of our interactions are with flat faces on video screens, it feels either like we're living in a simulation or some solipsistic nightmare.

Before I check the comments on a TikTok I've just watched, I almost always have a strong reaction to that video. That's why opening the comments and finding that one of the first few comments perfectly encapsulates your reaction, then seeing it already has tens or hundreds of thousands of likes, is so comforting. This confirmation of a shared response creates, asynchronously, a passing score on a form of the Voight-Kampff test. It's a checksum on your humanity.

Many comments have begun using the inclusive second person singular, literally speaking for the rest of the viewers. These comments often begin with "POV:" as in "POV: You're lying bed at 2am scrolling TikTok." It's presumptive, and yet the best TikToks evoke such a consistent multiple-choice checklist of responses that it's rare the times I can think of an original comment that isn't already posted above the fold.


The sense of collective response in TikTok comments and the publicly visible view and like counts have been around long enough that users now assume enough others have encountered enough of the same memes despite everyone's FYP algorithm being tailored to their individual tastes. Many a comment on a viral TikTok will read like "Oh we're back here again."

Though I have said that TikTok isn't a social network—I don't know most people on the app, I don't have to follow anyone to have a good experience—the algorithm does create, through its efficient sorting, a sense of traveling through subcultural neighborhoods as you scroll down one TikTok at a time.

Users have adopted spatial or geographic language to describe this sense of shared viewing spaces. Various subcultures are described by appending -tok or TikTok behind a descriptor. Someone commenting on a particularly high-quality video might say "I've finally gotten Premium TikTok." People share weird niches they're on by saying things like "I'm deep into carpet cleaning tok" or "I don't know how but I've found music theory tok." Sometimes it's just one word, like "Sportstok or Liberaltok." Tok has almost come to be a suffix meaning "neighborhood" or "community," almost like Disney uses -land to describe themed areas in its parks like Frontierland or Tomorrowland.

Of course, we're all just in our FYP feeds, which just scrolls up endlessly, so it isn't an actual space. But we trust the visible view counts as evidence FYP is doing its job getting many of us with the same tastes in front of the same videos, and so this evidence of common knowledge creates a liminal third place that exists [waves hands at the air in front of me] out there.

I’ve tended to think of social networks as being built by people assembling a graph of people bottoms up, but perhaps I’ve been too narrow-minded. TikTok might not qualify by that definition, but it feels social, with FYP as village matchmaker.


There's been a lot written on Warner Media's decision to move some films from theatrical only windows to having a concurrent release on HBO Max. A lot of conclusions were drawn about theatrical's future based on Wonder Woman 84’s Christmas premiere in theaters and on HBO Max day-and-date. A lot of it is the usual knee jerk extrapolation that the internet is famous for, despite confounding circumstances like a pandemic, and despite Wonder Woman 84 being a single data point.

But one thing I'm confident of is that something is lost in not having the audible feedback of a hundred or more humans around you when you watch something, especially from genres that are built to elicit frequent emotional feedback, like comedies and horror films. At some point, perhaps we'll crack the nut on social viewing and how to make it more, umm, social, but for now, pre-VR metaverse, it's a shoddy facsimile of a crowd.

Look, I've streamed my share of concerts during this past year, and I don't miss standing for an hour between sets in a crowded club or bar, nursing a $9 beer in a plastic cup, waiting for my band of choice to get on stage.

And yet, I miss standing in that bar, my shoes sticking to the beer-soaked floor, trying to look at ease in my own skin while gawking at other humans.


In a year where we've been trapped inside for nearly a year now, there's something about the chaotic collectivist media art form that is TikTok that felt most joyful and genuine.

Thumbing through the FYP feed one portrait-oriented rectangle at a time felt like swiping from one bedroom window to the next on a tall skyscraper, peering into one user's bedroom after another (literally, as the bedroom is the most common space in which teens do their creative work). It's like a Chris Ware comic strip, with its architectural design, navigated one window pane at a time.

Because it's full screen, it can feel like my phone screen is literally a rectangular porthole. As if one user after another is hijacking my rear-facing camera and turning it into their rear or front-facing camera.

There's something about media like TikTok or ChatRoulette or Omegle, where so much of what you see is a creator directly addressing the camera, breaking the fourth wall from the start, that is immediately intimate.


One thing I wish TikTok would do is make it easier to trace multi-part videos from creators. Nothing drives me crazier than videos that end with "Stay tuned for Part 2" or "Like for Part 2" and then you spend like ten minutes browsing their profile trying to find the second part.

I understand that it's a sort of view count hack on the part of creators, but some videos do need to be broken up across installments. TikTok needs to add some sort of concept of a pointer or link to make it easier to jump directly to the next installment in a series. Perhaps it could be done via a playlist feature.

For now, the best way to trace linked videos is to visually scan the thumbnails on a person's profile and search for onscreen text reading "Part #" or just click on every video with the same visual grammar, the user in the same outfit in the same room with the same lighting.

(Since I wrote the note above, the app has added a way to highlight, on a creator's profile page, the video you just watched, and since videos are sorted reverse chronologically by creation date on the profile, often part II can be found next to the video you just watched, which is handy).


In another example of the community coming up with creative solutions, commenters on the first in a multi-part video series where the next part has yet to be published will now leave a comment saying that they'll promise to tag people who like their comment once the next installment is posted. In other words, users are serving as Mechanical Turk notification bots.


Another feature I wish TikTok would add is the ability to sort by descending popularity on any grid of videos, like on sound or profile pages. Please.


TikTok's needs to improve its search ranking algorithm. Trying to find popular TikTok's I remembered seeing back in the day was much harder than it should have been using TikTok's native search. A couple that I wanted to use I just couldn't locate, and even Google and YouTube didn't turn them up (a thing you realize after trying to do it more than once is how hard it is to create a comprehensible search query for certain TikTok's).


Network effects are powerful, but there are so many distinct types. It's important to understand exactly what type of network effect you have because they all scale and operate differently.

For example, Dunbar's number is just one form of limit on a very specific type of network effect. But there are dozens and dozens of network effects, all with their distinct quirks. Someone could make a lot of money just making a reference book of the taxonomy of network effect varietals in the world.

TikTok is an extreme experiment in not only making creative network effects endogenous to its app but to the medium of video. Like some video Minecraft, almost everything in the app is a replicable chunk of bits that you can combine into a larger configuration of bits, and the resulting creation becomes, itself, a chunk that anyone can take and splice or mutate or combine however they want.

This is anathema to old media, most of whom have spent hundreds of millions of dollars to lock up their content behind copyright law, DRM, and any number of other mechanisms meant to slow the rate of reproduction and iteration of their work. It has the effect of slowing the evolutionary feedback loops on all of that work.

TikTok's "OODA loop" is collective and distributed, and it spins thousands of times faster than that of big media.


When I first joined the Amazon Web Services team in 2003, it was still a small Jeff Bezos-sponsored project. There were only some 15 people or so on the team at the time under the leadership of now Amazon CEO Andy Jassy.

A book Jeff had us read, one which he said should serve as an inspiration for how we'd design AWS, was Creation: Life and How to Make It by Steve Grand. It's a book about programming artificial life, but the core principle that Jeff wanted us to take from it was the idea that complex things like life forms are built from very simple building blocks or primitives. It's the same thesis as that in Stephen Wolfram's A New Kind of Science.

The key implication for AWS from the book was about how to design the first AWS primitives. Jeff urged us to include only what was necessary and nothing more. If you were designing a storage service, like S3, you'd need functions like get, write, delete, but you wouldn't want to layer in things that weren't part of storage, like security. That should be a separate primitive.

The reason to design your primitives with the utmost elegance is to maximize combinatorial optionality.


This is one of the most elegant things about TikTok's design. It includes a ton of primitives, and they are almost all ones you can combine or link.

More than that, every element in a TikTok is a building block you can replicate and use in your own TikTok. The most important of these is the soundtrack or sound of your TikTok.


Be careful of taking this idea of building primitives too far. In many ways, choosing what level of abstraction to stake your ground on is one of the most important questions any company must answer.

The answer is contextual. Abstract at too high a level and someone can come in beneath you, with something like AWS. In some ways this is a form of disruption.

Build at too low a level, however, and often someone will abstract at a level above you and siphon all the value of that market above your product. Many of TikTok’s filters are abstractions of a lot of things, almost like Lightroom Presets. As many of us learned early in this pandemic, maybe paying a few bucks for a loaf of bread is preferable to having to spend hours of our free time mastering baking.


When I think about modern remix culture and apps like TikTok, I often think back to Mixel, an app designer Khoi Vinh launched years ago. It was an iPad collage app.

In his blog post introducing Mixel, Vinh wrote:

Because of the componentized nature of collage, we can add new social dimensions that aren’t currently possible in any other network, art-based or not. Mixel keeps track of every piece of every collage, regardless of who uses it or how it’s been cropped. That means, in a sense, that the image pieces within Mixel have a social life of their own. Anyone can borrow or re-use any other piece; you’re free to peruse all the collages (we call them “mixels”) and pick up literally any piece and use it in your own mixel. If you don’t like the crop, the full, unedited original is stored on the server, so you can open it back up in an instant and cut out just the parts you like. Mixel can even show you everywhere else a particular image has been used, so you can follow it throughout the network to see how other people have cropped it and combined it with other elements.

The thread view turns collaging into a visual conversation, where anyone can remix anyone else’s work.


Though Mixel is no longer around, what he describes presages modern meme culture and TikTok.

Inherent to digital culture is the remix.


In Mark Ronson's TED Talk on How Sampling Transformed Music, he says:

That's what the past 30 years of music has been. That's the major thread. See, 30 years ago, you had the first digital samplers, and they changed everything overnight. All of a sudden, artists could sample from anything and everything that came before them, from a snare drum from the Funky Meters, to a Ron Carter bassline, the theme to "The Price Is Right." Albums like De La Soul's "3 Feet High and Rising" and the Beastie Boys' "Paul's Boutique" looted from decades of recorded music to create these sonic, layered masterpieces that were basically the Sgt. Peppers of their day. And they weren't sampling these records because they were too lazy to write their own music. They weren't sampling these records to cash in on the familiarity of the original stuff. To be honest, it was all about sampling really obscure things, except for a few obvious exceptions like Vanilla Ice and "doo doo doo da da doo doo" that we know about. But the thing is, they were sampling those records because they heard something in that music that spoke to them that they instantly wanted to inject themselves into the narrative of that music. They heard it, they wanted to be a part of it, and all of a sudden they found themselves in possession of the technology to do so, not much unlike the way the Delta blues struck a chord with the Stones and the Beatles and Clapton, and they felt the need to co-opt that music for the tools of their day. You know, in music we take something that we love and we build on it.


One of the most revolutionary aspects of TikTok is how effortless it makes it to sample or interpolate any other TikTok video.


Anyone who's used a non-linear editor like Adobe Premiere, Final Cut Pro, or Avid Media Composer knows the standard multi-pane interface. And any editor knows that editing begins with importing all the media, the shots from dailies, the temp music, and so on, into your media bin. From there, you drag elements onto the timeline to compose the edit.

Much of the pain of creating memes is gathering all the components, like images, from the web. In the modern networked age, though, the media bin should really just be the entirety of the internet. Anything you want should just be a short search away. We're starting to get closer, though the library of material is still sparse, and many pieces, especially video, still require chasing down.

Someday, any sort of remix will just be a GPT-3 like interface away from composing. You'll just be able to write "This is Fine cartoon but the dog's face is Donald Trump" and it will just spit it out for you. If you're building this, please let me know, I'll write you a seed check.


The Verge interviewed a TikTok beatmaker named Ricky Desktop.

What makes a great TikTok beat?

You need concrete, sonic elements that dancers can visually engage with on a person-by-person basis. I know that sounds super scientific, but that is how I think about it. If you’re trying to make a viral beat, it’s got to correspond with the viral dance.

In order to lock in on that, you need elements of the music to hit. So for example, I have this beat called “The Dice Beat.” I added a flute sound, which in my head was like, “Okay, people will pretend to play the flute.” And then there’s the dice sound, where they’ll roll the dice. It was super calculated. I would create the music with the dance in mind.

I developed this little pattern. I pioneered the “triple woah” thing where in all the beats there’s three kicks — bum-bum-bum. So typically, when the bass drop hits, the dancers will do the woah (ed: an accentuated arm and elbow movement popular in TikTok dances) to emphasize the bass drop. Usually, the beat will keep going after that. But what I did, I would add three more bass hits, super calculated, so that dancers could do the woah three times or do three concrete dance accents.


The woah inspired Ricky Desktop to develop a score for the triple woah which then actually inspired dancers to choreograph and perform an actual triple woah.

Can you program human movement with music? It turns out you can. You use an API called TikTok. That's delightful.


TikTok beatmaker Ricky Desktop pictured, in his head, dancers performing some movement. Then he wrote a piece of music that included a musical cue intended to elicit that exact movement.

Then, later, some dancers on TikTok performed the movement he had pictured, exactly at the moment he had inserted the musical prompt. It's not just that he choreographed the human body via music, but how he did it. Ricky Desktop is a marionettist manipulating human bodies not via strings but music.


Ricky Desktop:

So I would post my beat and say, “Anyone trying to help me make this beat go viral?” Or I would say, “Who’s gonna create a dance to this new banger?” I’m giving an action item to whoever’s watching. And that’s important because it gives the person watching something to do.


The message is in the medium. That is, Ricky Desktop issues these to-dos inside of the video he uses to release his various sounds.


Ricky Desktop:

What makes a great TikTok beat?

You need concrete, sonic elements that dancers can visually engage with on a person-by-person basis. I know that sounds super scientific, but that is how I think about it. If you’re trying to make a viral beat, it’s got to correspond with the viral dance.

In order to lock in on that, you need elements of the music to hit. So for example, I have this beat called “The Dice Beat.” I added a flute sound, which in my head was like, “Okay, people will pretend to play the flute.” And then there’s the dice sound, where they’ll roll the dice. It was super calculated. I would create the music with the dance in mind.


In filmmaking, when you want a score for your film, you bring the latest cut of your film to a composer's studio, and they start riffing based on what they see on screen, incorporating some of the themes you're trying to evoke in that scene.

What Ricky Desktop talks about above is a different process in which he scores to visuals that only exist in his imagination, generic dance tropes like "pretend to play the flute".

This is a form of "inverted scoring." Or, if you prefer to go from the other direction, what TikTok dancers do with sounds is "visualizing."

The program WinAmp used to do software visualizations of music. TikTok is like Mechanical Turk for visualizing music.


If you've watched any amount of TikTok, you've doubtless seen someone answering questions by dancing and pointing to floating text overlays.

Now, they could easily just speak the questions and answer them verbally. There's no reason to have to dance to music while answering the questions.

To which I say, no one knows what it means, but it's provocative, it gets the people going!

This is one of many TikTok survey or poll formats, all devised by the users. On one hand, there are simpler ways to share this information. On the other hand, this is much more entertaining than a Twitter poll.


On the other hand, maybe all this choreographed dancing is something more of us should be doing to make our messages land. A teacher went viral on TikTok this year for filming herself trying to teach her class remotely over Zoom. Seeing her precise and broad gestures paired with her sharply articulated speech, you couldn't help but feel empathy for what a burden we've placed on our teachers, trying to make remote classes engaging over Zoom.

But perhaps we just lose some of our childlike exuberance and joy expressiveness as we age? Perhaps if we were more animated in our delivery, more people would remember what we said.

One of the most common weaknesses among managers and leaders is the illusion of transparency, though it is a problem for most people. It is the tendency to overestimate how much people know what you're thinking. It can ruin marriages or relationships, and it leads to a healthy market for therapy.

Young children have the a strong form of this illusion which is why in early childhood they are so frustrated when you don't understand why they're upset (and parents are likewise just as exasperated that their children can't verbalize why they're freaking out). Until later in life, children think you should know exactly what they're feeling, and it takes a bit of coaxing to tease out their inner emotional state. Ironically, despite their illusion of transparency, kids tend to be much more emotionally transparent and thus expressive.

It's when they finally realize that no one can see into their heads that they learn to lie. It's then that you wish they still had the illusion of transparency. When they become teenagers, the battle over transparency into their lives becomes literal: parents yell at their teenagers to keep their bedroom doors open, and those same doors slam shut after heated arguments. Their bedrooms become, like their thoughts, spaces they wish to protect from prying eyes.

This is all a roundabout way to say that a CEO communicating a company's top goal for the coming year in a TikTok dance, pointing to on-screen captions, isn't the worst idea in the world? Maybe this is the new Amazon 6-page memo.


Study any high-level memory competitor and they'll all say the same thing. Humans' visual memories are far superior to their memories for abstractions. It's one of the core lessons from the great book Moonwalking with Einstein. It's the reason people who have to try to memorize a thousand digits of pi or the order of a deck of cards turn numbers and letters into images which they place spatially in memory palaces.

In its heyday, which coincided with my childhood, MTV was dominated by music videos, and each of those was essentially a visualization of a musical track. To this day, I can't hear a song like A-Ha's "Take on Me" without picturing its music video. I haven't seen it in decades, but its cartoon sketches come to life are forever how I "see" the song. Likewise, I can't hear Michael Jackson's Thriller without conjuring its epic music video of nearly 14 minutes.

It doesn't even have to be a music video. A song incorporated in a film can permanently bond with the moving images on the screen. For example, I can't hear three tracks, one each by Huey Lewis, Genesis, and Whitney Houston, respectively, without picturing Christian Bale and quoting Patrick Bateman, and then being filled with a sense of self-loathing for having been indicted as someone who turns to the appreciation of cultural artifacts as a substitute for personality. If I mention Celine Dion's song "My Heart Will Go On," what do you see in your mind's eye?

TikTok is the modern MTV because (1) it increases consumption of music tracks that go viral on its platform as sounds and (2) any number of songs will forever summon the accompanying meme and visual choreography from my memory.


When Charli and other TikTokers formed the Hype House in Los Angeles, they were experimenting with IRL creative network effects. They created what was efffectively a commune to produce the D'Amelio TikTok Universe with Charli at the center as, I don't know, Tony Stark or something.

They started guest-starring in each other's TikTok's, some of them started dating and hooking up, and soon, to follow the entire extended narrative, you had to follow each other's accounts. Studios have tried to push out fictional versions of such networked series, but Charli et al just created it bottoms up, with TikTok as the distributor.

The Kardashian-Jenner clan are the clear predecessors who ran this type of crossover mindshare grab, but they're family. This new generation of influencers often aren't related, their common bond is just that they're young and famous in the age of social media and so they already all live together in a virtual universe held together by the gravity of popularity.


In Status as a Service, I wrote about how social networks require some proof of work to gain status.

A lot of TikTok's have the caption "I spent way too long on this" as a sort of plea for likes, but that wouldn't land if the proof of work wasn't visible on the screen. It is, and even non-creators can see it. Some TikToks seem like they took days to produce.


Have you tried using the in-app TikTok video editor? In some ways, it's loaded with really first-rate filters and effects, but in many ways, its user interface is inscrutable. I went to editing school and have used a variety of non-linear editors (NLEs) like FCP, Premiere, and Avid to edit video in a previous life, and I still tear my hair out trying to use TikTok's native editor.

The easiest videos to make are just ones where you film yourself live and apply a filter, but if you want to bring in pre-recorded video and mix them with other graphical elements, like text boxes, it is very painful to assemble them properly. My kingdom for a persistent timeline with a scrubber in the TikTok editor.

In one sense, it's staggering to ponder how many more videos TikTok would have if its video editor were more usable. On the other hand, every video that does make it onto the app feels like a miracle. The proof of work is in the pain.


If you're a movie star like Will Smith and you get a VFX studio to produce some whiz-bang TikTok for you, it will feel off, like driving a Ferrari down the street in Omaha. Authenticity or at least the sheen of one's own sweat equity is part of the TikTok aesthetic, and the canonical backdrop for any TikTok video is always some teenager's somewhat messy bedroom, just as it was in the heyday of the YouTube vlog.

On Instagram, you can get away with proof of wealth, but the TikTok aesthetic is proof of creative labor. The verdict is a bit more mixed on proof of hotness, though. I still think Instagram is a more welcoming home for pure thirst trap content than TikTok, where, if you want to honeytrap the simps, you're going to have to dance for it.


Something about a feed that can hit you with such a variety of styles and moods in such quick succession makes TikTok feel like the most modern of media channels. One second you're watching a dog communicate with their owner using a language mat, the next second some high school girl is roasting one of her classmates, the next you see a teen making an earnest confessional deprecating their own looks (only to have thousands of commenters offering affirmation), and then you might see a boat chase that you later realize is some drug cartel member filming a TikTok as police boats give chase (even Narcos be chasing them likes). At times it feels as if the FYP feed is a pastiche generator.

It is equal parts ironic and earnest, having long since surpassed its label as the cringey social network.

Whereas Instagram is performative, TikTok is performative and self-aware. It’s not that any single creator is self-aware, but that the Greek chorus in the comments will descend on anyone with the slightest bit of hubris like a pack of harpies.

In this rectangular proscenium that is TikTok, the fickle god of Zeus is played, of course, by the FYP algorithm. Everyone offers up their sacrifices of time and labor in the hopes of being graced by its favor, but its whims remain just capricious enough to keep everyone grinding.


If your FYP feed is dialed in to your tastes, you start to pre-react to videos purely based on the like count visible on the right hand side of the screen.

If a video has a high like count, even if it starts slowly I'll tend to give it the benefit of the doubt and stick around to the end, simply because this statistic has proved, in my experience, reliable evidence of a worthwhile payoff. The larger the figure, the more I anticipate a strong punchline or close. I'm like Tom Cruise in Minority Report, already having seen the precog verdict printed on that ball.

Conversely, when I'm the test audience for a little-seen video (a dead giveaway is it has almost no likes yet), I tend to be merciless in skipping ahead if it doesn't hold my attention after a few seconds.

This creates a ruthless rich-get-richer dynamic, but that's by design. Bytedance as a company has built its products around pitiless algorithms enforcing a high Gini coefficient economy of entertainment. It's a marketplace in which the supply side—the TikTok videos from creators—can be shown to an unlimited number of viewers. Much of the content is evergreen, so there is almost no end to the leverage TikTok can get off any single good video.

Imagine if YouTube's key metric was to show every good video in its entire catalog to every viewer that would enjoy it. If you view the TikTok mission that way, even if no one submitted another new video for the next year, its FYP algorithm would still have an almost infinite supply of short videos to show to hundreds of millions of users for that entire dry spell.


Because sounds become the genesis of particular memes, when you start watching a TikTok video and hear a familiar sound, you anticipate the moment of that sound when the punchline will happen. It's Pavlovian.

The kismet shoe transition, for example, causes you to anticipate the pleasure of that exact moment when the performer will go from looking plain to looking EXPENSIVE. There are only so many plots in Hollywood, but we go see genre films precisely for the story beats we know are coming.

On TikTok, sounds and memes are almost inseparable. The sound is the meme is the sound.

TikTok sounds are often the most pleasing snippets from pop songs, and listening to one catchy loop after another is like listening to a pop radio channel that doesn't play entire songs, only plays bass drops and choruses. The time between anticipation and payoff is so short that scrolling the feed can feel like pressing the button on some sonic IV drip over and over. Just inject it into my ears.


In Infinite Jest, David Foster Wallace describes a film called Infinite Jest which is so entertaining people lose all will to do anything except watch it until they die. He had often written about the addictiveness of television and may have been extrapolating to the future, projecting the entertainment value of entertainment increasing until it surpassed some threshold where you'd lose all will to do anything except consume. In that way, he predicted binge watching.

But the earliest form of entertainment that conjured the addictive properties of his fictional film (referred to in the novel as "the Entertainment") was video games. I read stories about players who died after playing games for so long without eating and, recalling some game binge sessions from my youth, could imagine myself trapped in a similar dark loop.

TikTok is the second form of entertainment that brings DFW's fictional entertainment to mind. In hindsight, it seems obvious that a personalized feed of video, tailored to your tastes, would be the addictive end state of entertainment. And, considering the rise of social media and the smartphone, it would make sense that the videos might all be short, like pellets of rain, sliding comfortably into every spare pocket of time in our day, of which we have so many.

One of my favorite paragraphs of recent years was one describing the miracle that are Cheetos:

To get a better feel for their work, I called on Steven Witherly, a food scientist who wrote a fascinating guide for industry insiders titled, “Why Humans Like Junk Food.” I brought him two shopping bags filled with a variety of chips to taste. He zeroed right in on the Cheetos. “This,” Witherly said, “is one of the most marvelously constructed foods on the planet, in terms of pure pleasure.” He ticked off a dozen attributes of the Cheetos that make the brain say more. But the one he focused on most was the puff’s uncanny ability to melt in the mouth. “It’s called vanishing caloric density,” Witherly said. “If something melts down quickly, your brain thinks that there’s no calories in it . . . you can just keep eating it forever.”

TikTok is entertainment Cheetos. Each video requires so little cognitive exertion and reaches its climax so quickly that it feels like we could keep watching forever, each punch line scored to the most satisfying bass drop or stanza from every pop song. TikTok delivers dopamine hits with a metronomic rhythm, and as soon as we swipe up the previous one melts in our memory.


It's always been the case, but especially in this networked age, that every piece of entertainment is its own social network. The network effects of a story arise from shared consumption. The more people watch Star Wars, the more people I can talk to about particular scenes or compare costumes with at a convention. The more people that watch Game of Thrones, the more my Game of Thrones memes will land.

TikTok is personalized, yet through its algorithm it creates shared stories of real scale. Some of these shared stories occur on the creative side in duets and trims that connect creators to each other literally and metaphorically. The FYP algorithm also aggregates large communities of viewers for the hottest TikTok videos. It's not uncommon now for me to send a TikTok to a friend who's already seen it, or vice versa. Not always, but enough that the audience now assumes enough common knowledge to foster that sense of shared experience.

Despite having what must be a gazillion videos in its catalog, watch TikTok enough and you'll be able to refer to something like Sea Shanty TikTok and feel reasonably confident other TikTok addicts get the reference. In contrast, people regularly send me YouTube videos with like millions of views that I've never even heard of.

It is algorithms that may be tearing us apart. But maybe it's also algorithms that reassemble us, albeit in smaller unit sizes. 330M Americans feel like too large an optimal governance size if we're going to let social media algorithms just run amok, but I find some comfort sometimes when I find some TikTok that feels so catered to my tastes that it must be a micro-niche and then see it has millions of likes.


The term binge-watching typically refers to watching multiple episodes of a series in one sitting, but perhaps the act of watching dozens of TikTok videos in a row is the purest form of this type of entertainment gluttony.

Other types of social media like Instagram and Twitter are also series of really compact units of media. When I scroll Twitter or Instagram, I often feel like an elephant, standing there placidly, as various people toss individual packing peanuts at my forehead (let’s call these people the peanut gallery?).

TikTok videos are, for the most part, a bit longer. Their compressed narratives are still, nevertheless, complete, with some full story arc to traverse. In its rhythm, binge-watching TikTok reminds me of watching a standup comedy set, but instead of watching one comedian, I’m watching a whole series of them, each on stage just long enough to tell one joke. And if they bore me, I can press a button and, like a Looney Tunes cartoon, a cane whisks them off the stage and a new comedian pops out from the floor to take their place and start right into their joke.

Someone told me that if you watch TikTok for over an hour it posts a warning asking you to consider taking a break. I'm not sure if that's the case, but I'm glad I've never encountered it yet.


TikTok can only match you with videos it has, and for some people, there may not be enough relevant content in the TikTok catalog to sustain a feed. But that pool of videos has grown by an astonishing amount in a short amount of time.

I'm an easy mark for the sort of wry, sometimes savage humor of TikTok, especially when it skews almost post-modern in its awareness of its own form. It's both a community that constantly tries to legislate its own social norms of decency—any video of someone making fun of how they look using a supposed beauty filter will be flooded with comments like "You're a queen", the comments section being sort of a rolling floor vote on what the acceptable response is—and also a bloodbath of Gen Z violence. The kids will be alright, but that's in part because they're savage. Every generation learns it has to fend for itself.

During a pandemic when most of social media feels even more nakedly performative than usual, as we sit inside day after day for month after month, my occasional sessions on TikTok have been one of the only pastimes to reliably make me laugh, and it's not particularly close.

Twitter has reached a crest of fortune cookie thinkboi bait when it's not subsumed in petty high school lunchroom culture war fistfights. Seemingly every day, a playground brawl breaks out and we all form a circle to gawk, but at the back of our minds is always the threat that we'll be the next to be sucker-punched and forced to throw down. Outrage porn is exhausting and also not that fun?

When viewed from the eye of a global pandemic, Instagram feels like a horrifying Truman Show of idyllic capitalist showboating. Life must go on, influencers gotta influence, but I'm also not weeping any tears when people get chastised for renting private islands and posting photos of themselves partying during a pandemic.

Andrew Niccol, the screenwriter of The Truman Show, once said, "When you know there is a camera, there is no reality.” The most absurd but popular tag on visual social media is #nofilter, a hashtag that aspires to a pretense of truth when there is almost nothing on an app like Instagram that isn’t production-designed within an inch of its life.

TikTok, by virtue of its high bar to even produce a video that anyone will see (FYP algo is like "That's a no for me dawg" on almost every video), is upfront about what it is: a global talent show to entertain the masses. In a pandemic where much of the U.S. lives in eternal lockdown, TikTok is the 24/7 channel where the American Idle entertain each other from their bedrooms. I laughed, and then I laughed some more.

22 Feb 19:30

USB-Audio-Interface oder USB-Mikrofon in Clubhouse nutzen

by Abdelkader Boui

3a0baef2052f9950b124a25f2a357b3c

USB-Audio-Interfaces und USB-Mikrofone lassen sich in der Clubhouse-App nur am iPad Pro oder iPad Air mit USB-C-Port nutzen. Hier funktionieren nur bestimmte Mikrofone und Audio Interfaces. Weiter unten findet ihr eine Liste der erfolgreich getesteten Geräte.

Am iPhone und den iPads mit Lightning-Port lassen sich die USB-Audio-Interfaces und USB-Mikrofone auch anschließen, aber sie funktionieren nur solang man im Publikum sitzt. Kommt man auf die Couch, dann schaltet das iPhone bzw. iPad mit Lightning-Port auf das interne Mikrofon und den internen Lautsprecher. Das Verhalten liegt an Einschränkungen im iOS bzw. iPadOS. Während man im Publikum ist, nutzt die App den “Regular Audio Mode”. Hier hat Apple keine Einschränkungen vorgesehen welche Audio-Geräte verwendet werden dürfen. Es funktionieren nur USB-Audio-Interfaces und USB-Mikrofon die sich als Mikrofon und Lautsprecher bzw. Mikrofon und Kopfhörer melden. Kommt man mit einem nicht unterstützen Audio-Gerät auf die Couch, dann wechselt die Clubhouse-App in den “Telephony Audio Mode”. In dieser Betriebsart erlaubt Apple nur die Nutzung “analog” angeschlossener Audio-Gerät. Über den Lightning-USB-Adapter angeschlossene Audio-Geräte lassen sich in diesem Modus nicht nutzen. Clubhouse ist nicht allein mit dieser Einschränkung. Andere Apps, z.B. FaceTime, die Telefon App, Cisco Webex Meetings etc., sind davon auch betroffen.

Analog, über einen der Lightning auf 3.5mm Adapter, kann man praktisch so gut wie jedes Audio Interface bzw. Kopfhörer & Mikrofon ans iPhone bzw. iPad anschließen. Beispielhaft findet ihr in diesem Artikel, wie man für die Verkabelung vorgehen müsst. Falls euer Audio-Interface keinen AUX-Eingang hat, dann könnt ihr auch alternativ den Line In-Eingang nutzen. Beim Rode Rodecaster Pro könnt ihr für die Anbindung den rückseitigen TRRS-Port nutzen. Details für die Verkabelung finden sich in diesem Artikel. Nutzt auf keinen Fall die Bluetooth-Verbindung des Rodecaster. Hier ist die Sprachqualität einfach zu schlecht.

Zum gleichzeitigen Laden des iPad Pro oder Air mit USB-C-Port und Anschließen des USB-Audio-Interfaces eignet sich so ein USB-C-Hub.

Falls euer iPhone oder iPad nur einen Lightning-Port hat und ihr das Gerät auch gleichzeitig laden wollt, dann eignet sich dieser Adapter.

Folgende USB Audio Interfaces bzw. USB Mikrofone wurden erfolgreich am iPad Pro bzw. Air mit USB-C-Port getestet:

USB-Mikrofone

USB Audio Interfaces:

Folgenden USB-Mikrofone und USB-Audio-Interfaces lassen sich am iPad Pro bzw. Air über den USB C Port nicht nutzen:

22 Feb 19:27

Indie ReadLater using Mercury Web Scraper, CouchdDB and JSONFeed

by Thejesh GN

You already know I have a pipeline for generating the JSONFeeds. We store the items in CouchDB. We generate feed by pulling items out of CouchDB using a simple server-less script on the output side. You can use any FeedReader app like Feeder to read.

My ReadLater System

ReadLater is an addition on the input side of the pipeline. In this case, we use Mercury Web Parser to scrape and parse the URL. Then we massage the JSON data produced by Parser into a JSONFeed item. This item is then added to the CouchDB using a simple web post.

My ReadLater feed in Feeder App

Below is the simple input plugin which takes a URL as input. Passes it to mercury-parser to scrape the web and get article details. Then converts that into a feed item and posts it to my CouchDB river database.

import os
import sys
import json
import datetime
import argparse
import pytz
import requests
from slugify import slugify

river = os.environ["RIVER_URL"]
channel = "readlater"
device = "01"

def get_id(channel, device):
    tz = pytz.timezone("Asia/Kolkata")
    now = datetime.datetime.now(tz).isoformat()
    _id = "{now}_{channel}_{device}".format(
        now=slugify(now), channel=channel, device=device
    )
    return _id


def get_datetime():
    tz = pytz.timezone("Asia/Kolkata")
    now = datetime.datetime.now(tz).isoformat()
    return str(now)

if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument("--url", help="Give me a url")
    args = parser.parse_args()
    url = args.url

    stream = os.popen('mercury-parser {url}'.format(url=url))
    output = stream.read()
    data = json.loads(output)


    d = {}
    _id = get_id(channel, device)
    d["_id"] = _id
    d["id"] = _id
    d["content_html"] = data["content"]
    d["channel"] = channel
    d["title"] = data["title"]
    d["date_published"] = data["date_published"]
    d["date_modified"] = get_datetime()
    if "author" in data and data["author"]:
        d["author"] = {"name": data["author"]}
    else:
        d["author"] = {"name": data["domain"]}
    d["type"] = "item"
    d["external_url"] = url
    d["url"] = url
    d["image"] = data["lead_image_url"]
    d["summary"] = data["excerpt"]
    print(d)
    r = requests.post(river, json=d)

This system is becoming more and more central to my daily workflow. Its probably time to clean up the code, make it into a package that can be installed easily. I have a code name for it - Hoysala.

The post Indie ReadLater using Mercury Web Scraper, CouchdDB and JSONFeed first appeared on Thejesh GN.
22 Feb 18:59

Daft Punk geben Trennung bekannt

by Ronny
mkalus shared this story from Das Kraftfuttermischwerk.


(Direktlink)

Das legendäre Produzenten-Duo Daft Punk hat sich nach einem Bericht von Pitchfork und nach 28 Jahren gemeinsamen Schaffens wohl getrennt. Verkündet wurde das heute leicht kryptisch mit einem 8-minütigen Video, das aus dem Daft Punk Film „Electroma“ aus dem Jahr 2006 stammt und nun als „Epilouge“ veröffentlicht wurde.

Daft Punk, the Parisian duo responsible for some of the most popular dance and pop songs ever made, have split. They broke the news with an 8-minute video titled “Epilogue,” excerpted from their 2006 film Electroma. Asked if Daft Punk were no more, their longtime publicist Kathryn Frazier confirmed the news to Pitchfork but gave no reason for the breakup.

Ich habe die letzten Sachen von Daft Punk nicht mehr intensiv verfolgt, aber man kam im Regelfall ja ohnehin nicht umhin, davon zu hören.

Homework ist für mich bis heute eines der besten Dance-Alben aller Zeiten und klang damals zumindest in meinen Ohren revolutionäre. der für mich beste Track, den Daft Punk je produziert haben ist „Rollin‘ and Scratchin'“. Was für ein Monster! Und deshalb kommt der hier mal wieder mit rein.

22 Feb 18:58

Family Scanning

by Hannah Zeavin
Full-text audio version of this essay.

In 1939, the Great Depression still raging, the president of Zenith Radio Corporation, Commander Eugene F. McDonald, Jr., commissioned the first baby monitor, designed by the famous American sculptor, Isamu Noguchi. The monitor came in two parts, the Radio Nurse Receiver and the Guardian Ear Transmitter. The receiver tends the baby when the parent cannot, with no risk of falling asleep itself, nor harming the baby while working under the sign of its care; the transmitter springs to action, relaying information instantaneously to the parent over a distance — a gendered parental ideal, augmented through technology.

McDonald was, to put it bluntly, rich, and a father to a young child. Worried that his daughter was a prime candidate to be the next Lindbergh baby — who had famously been kidnapped from his crib seven years earlier — he needed a device that would afford him a form of security the Lindberghs hadn’t had. A full staff was not enough to safeguard his little one: The Lindbergh baby’s nanny, Betty Gow, had been the first suspect in that case. Although she was cleared, domestic workers were often subject to classed, raced, and/or xenophobic distrust by the families who employed them. Gow, an immigrant from Scotland, would return to Glasgow after her questioning; Violet Sharp, a woman working in the household as a servant, was subject to such intense questioning and suspicion that she ended up taking her own life by drinking poison — she was cleared via alibi post-mortem the very next day. McDonald, who likely shared his peers’ classist attitudes, didn’t want to have to rely on human care. He wanted to be able to put his baby to bed securely at one end of his yacht, and have his wife entertain at the other, without sacrificing knowledge of her whereabouts and wellbeing.

The baby monitor began its life as a techno-optimistic fantasy of perfect vigilance and perfect control, and it has remained just that

Fears about disappeared children have determined the way parents monitor and surveil children across the 20th century and into our present, even as they become background noise: The Lindbergh kidnapping and subsequent media frenzy perhaps inspired the creation of one of the most basic and ubiquitous parental technologies now in use. The baby monitor began its life as a techno-optimistic fantasy of perfect vigilance and perfect control, and it has remained just that — a fantasy. Nevertheless, the promise of extending and augmenting parental nurture and protection has driven the marketing and development of much parenting tech since, which has grown to include monitoring tactics absorbed from, or associated with, more suppressive forms of surveillance. Many of these technologies encode the same class-based suspicions of their predecessors. Today, state-of-the-art parenting technologies are frequently designed to monitor not only children, but those suspected of posing harm, making targets out of bystanders and importing state surveillance — inseparable, as Simone Browne has shown, from a history of racial formation and violence — to the home.

If we look back at McDonald’s concerns — yacht not withstanding — we can see that our most extreme fears (kidnapping, death) inflect our most basic, even boring, parenting tech and related activities: flicking on the monitor, putting the baby down for a nap. Surveilling children is part of parenting; and contemporary parenting mores have intensified this basic imperative to watch, even as it is outsourced to care providers both paid and unwaged, to automated machines and their analog counterparts.

The brutal truth is that children are vulnerable, and that this vulnerability is multiple: to their own bodies (“smothering” at mid-century, or Sudden Infant Death Syndrome or SIDS now), external influence, and crime. The danger can come from inside (a favorite blanket), outside (an intruder), or someone who crosses the domestic threshold under the sign of care (a nanny or, in reverse, a daycare center). There have been panics about all of these forms of real and supposed danger — some addressed via medicine and pediatrics (as in the “Back to Sleep” campaign of the 1990s that dramatically reduced SIDS risk) or inflamed via media (the “Satanic Panic” of the same decade, in which widespread satanic ritual sexual abuse was alleged of childcare centers and preschools; a conspiracy theory which targeted, in part, queer women of color). Parental fear is a near universal, but what we fear is not; the primacy of each threat varies by class and race, personal experience and its intergenerational transmission, and history. Children are vulnerable, but not equally so.

We can see that our most extreme fears (kidnapping, death) inflect our most basic, even boring, parenting tech and related activities

In some of these sites of intense parental worry, corporate parenting tech has intervened to supposedly aid and augment parenting, marketing peace of mind. The baby monitor extended parental vigilance, initially for wealthier parents with expansive households, but is now in use by some 75 percent of American parents. Today, more rarefied devices, such as GPS-enabled strollers and kids’ smart watches, lovingly track and surveil children; some do this before birth, tracking pregnancy. These gadgets, part of the $10-billion-dollar-a-year parenting tech industry, are frequently marketed at millennial consumers who can afford to spend $399 on a smart baby monitor, or hire a nanny. They address and often encode the same suspicions as did the analog baby monitor a century ago, but with the aid of new surveillant technologies, many of them linked to law enforcement.

The need to know whether a child is safe and well is perfectly natural, which makes the nature of such surveillance appear innocent. Behind the wholesome sheen, however, these technologies conceal the possibility of false positives, disrupted emergency services, and of collaboration with state forces —  wittingly or unwittingly — all in the name of keeping children safe. Seemingly private, domestic technologies can dovetail with state surveillance, turning parent-to-child surveillance into a dragnet, one that catches other parents and children in its wake.

Perhaps the most striking example is the nanny cam. Starting in the 1990s, the nanny cam appeared as an extension of closed-circuit television and other home security systems, with a twist: Instead of looking to protect the home from the external, the nanny cam turns surveillance inward and blurs it with a family’s urge to document a child’s development. (It was first marketed predominantly on the internet as the “Amazing X10 Camera,” sometimes with the tagline, “see what you’ve been missing.”) A little camera stuffed inside an innocent teddy bear, its cute, breezy, abbreviated name hides the fact that it is a wireless camera placed specifically to monitor, in this case, an employee doing their job.

The nanny cam records and transmits its data to a parent, who watches either as events transpire or, more frequently, after the fact. The footage is necessarily soundless, because the recording of audio without the consent of the person or people speaking is tantamount to wiretapping in the United States and thus illegal (additional laws vary state by state). Sometimes the cameras are concealed from nannies; other times, the nannies are informed that their workplace is under surveillance, either because employers are forced to disclose by contract or to preempt “bad behavior.”

When the first nanny cams were made available, the industry received a boost through the proliferation of amateur footage, sold to television networks (and later spread on the internet), featuring nannies “acting out.” This “fad” had a disciplining effect, intensifying the pressures that childcare workers were subject to in the course of being monitored — recordings had the potential to become a humiliating spectacle, with no possibility of redress. This media circuit also reinforced parental fears over what was happening when they left the house: The will to know, and the hope that knowledge would provide control and a feeling of safety, led many consumers to all the disquiet they’d hoped to leave behind.

When the first nanny cams were made available, the industry received a boost through the proliferation of amateur footage

The relationship that many parents have with paid caregivers, both within the home and without, is complicated. Psychologist Daphne de Marneffe writes, “Turning the care of our newborn, baby, or small child over to another, non-familial person, someone we often have known only briefly, is a momentous emotional and psychological act, even if we pretend that it isn’t.” Joining anxiety and jealousy as part of this psychological matrix are, quite often, sexism, classism, and racism, which date to enslaved women providing care for white mothers and children. In the late 1800s, just as fewer American-born white women were entering the labor market in service positions, middle-class conceptions of who and what a nanny should be were idealized along lines of class and race (towards whiteness, unweddedness, and a middle-class background). Grace Chang and others have shown that this vilification of immigrant domestic workers continues in our present. In the 21st century, nearly all families seeking to hire a full-time nanny belong to the upper classes — nannying is almost always the most expensive form of childcare precisely because it promises greater attention to the child, and greater control for the parent.

Nanny cams are only one form of surveillance that remediates the desire to exert greater control over one’s children through the control of domestic workers: text messages, asking for a stream of photographs, along with collecting and monitoring GPS data, are all methods parents use to monitor their children and their caregivers. Parents who use paid attention and adjunctive care (as opposed to kinship networks) to cover their work schedules often enact some form of education, monitoring, and indeed surveillance over those who care for their kids, even as they’re treated as “part of the family.” This digital attachment and interference, though it retethers a parent at work to their child, compromises the privacy of childcare workers, and even other children. Declining to be observed can send already anxious parents into full suspicion and cost care providers their jobs before they begin.

These surveillance tools are poised at the intersection of care and capture; self-soothing devices that allow parents to feel they have done everything they can do, prosthetically, to exert control over their employees, children, their co-parents, and themselves. Care is a mode that accommodates and justifies surveillance as a practice, framing it as an ethical “good” or security necessity, instead of a political choice.


The convergence of parental anxiety and tech access can extend surveillant care into a total system, reaching past the baby, and any employee in the home or daycare center, to the street beyond. Increasingly, technophilic and/or anxious families are turning to websites like Nextdoor and smart home systems like Alexa, Google Home, Nest Cams, and Ring, not only to help with domestic management, but to reinforce the barrier between the outside and the inside, keeping the outside out. These technologies slip from self-surveillance (when should I reorder my groceries?) to familial surveillance (what is my child watching?) to surveilling anyone who might come into contact with one’s children.

Care is a mode that accommodates and justifies surveillance as a practice, framing it as an ethical “good” instead of a political choice

Ring, which was acquired by Amazon in 2018, already has millions of individual users; it also has partnerships with 600 police precincts. It sells itself as family-friendly, necessary for the protection of home and child, and purports to “watch,” in the ancient sense of keep vigil. But this vigilance can turn into vigilantism, and aid in, or replicate, policing. Just as the nanny cam records just in case the recording itself will be useful, Ring and other tools like it report to their owners, and sometimes simultaneously to police — even against the wishes of their users.

Ultimately, these technologies do precisely what they claim to prevent: open up new pathways for perforating the domestic and the nuclear family, reinforcing the anxieties they purport to soothe. The wi-fi enabled security system encapsulates this irony: all of these cameras can be, and are, routinely hacked. Using two-way audio, hackers have been able not just to monitor people in the privacy of their domestic spheres, but to speak to and harass people there. One parent tore a set of cameras out of the wall after a child said a “scary man” was speaking to her. Several others have reported that some person was demanding payment. The very object that is supposed to watch over the nanny watching over the baby, or to guard the front door, becomes a way in.

Other Smart devices meant to protect children can also terrorize parents, and unevenly so. Since silence on a baby monitor is either golden (the baby is down) or terrifying (the baby isn’t breathing), these devices use biometrics to augment and automate the vigilance of parenthood and distinguish between the two forms of noiselessness. Devices like the Owlet Smart Sock (introduced in 2007 and still in use) address themselves to the parents who stay up to watch their babies breathe, who check and recheck a silent baby monitor for sounds of stirring. These devices, most commonly a smart camera placed over the crib or a piece of clothing that functions as a pulse oximeter, claim that they will notify you if your baby is losing oxygen — preventing tragedy before it can occur. The device’s job is twofold: to help parents monitor the biometrics of their child, and to reduce worry by doing so. But the devices often do more harm than good, because they frequently transmit false positives; and pulse oximeters work unevenly, with decreased accuracy when reading darker skin tones. The result: terrorized new parents, who shift the checking compulsion to their devices just as fervently and report a higher incidence of depression and sleeplessness. The false positives even clog pediatric emergency services.

Parents watching their children is an unimpeachable mode of care; surveillance is conventionally and conveniently associated with state power and its abuses. In tracing the history of child monitoring, however, we can see that these two forms of monitoring are less distinct than they might appear. The use of parenting tech to ensure child safety may be read as an individual parent’s choice, but the reach of these technologies expands through alliance with state forces (for example, Ring’s partnership with police precincts) and by exploiting those prejudices long established in childcare conventions. The uneven yet pervasive usage and advertisement of these technologies — let alone other technologies that proceed under the guise of care, like facial recognition in schools and in homes, in the age of Covid-19 — show the lengths that parents are willing to go, the moral and political compromises many are willing to make, and the alliances some are willing to forge in order to feel protected from the universal nightmare of losing a child.

22 Feb 18:58

Daft Punk Break Up

by Rui Carmo

Wow. First an early Christmas present, and now this.

2021 is turning out to be a somewhat worse year than 2020 music-wise.

It’s as good a time as any to revisit the 20th anniversary piece I linked to in 2013, as it is still online and still an awesome piece of web art.


22 Feb 18:55

Shaken, Stirred but Not Sanded~Slow Streets Barriers Continually Kicked to the Curb

by Sandy James Planner
mkalus shared this story from Price Tags:
I really wish they’d filled the barriers with water to prevent people from just tossing them aside (or at least make it slightly less convenient).

 

David Finnis who is on Twitter @ilovethearts says:

“This is one of the reasons many people don’t feel safe cycling in Vancouver. If drivers can’t slow down and avoid hitting a stationary object.And this slow street sign is on a quiet residential street!”

Which also brings up who is managing the  pandemic response of Slow Streets 30 km/h infrastructure in Vancouver, and why there is not someone that can go out and check that the infrastructure is where it is supposed to be. And as we go into Year Two of the pandemic, why are we not making these barriers a bit more substantial so they stay in place? Why can’t they be filled with water or sand?

While Vancouver Slow Streets was introduced several months behind programs in other Canadian cities, it consisted of jersey barriers of different kinds either on the street or at the street’s side, indicating that it is a slower street, with  repurposing for walkers, rollers and cyclists to maintain physical distancing.

There were two reasons for doing this: one, to facilitate  destination oriented routes for people not in vehicles; and second, to provide a way for families and others to exercise in a safer environment with physical distancing that could not be met on the sidewalks.

This presentation on the Covid-19 Mobility and Public Life Response which was given to Council in May 2020 provides  more background and rationale for the City’s response. In a survey conducted in April 2020 the City found that walking downtown had declined by 40 to 50 percent, commuter cycling had declined by 35 to 50 percent, and transit usage had declined by 80 percent.

At that time there were  48 percent less vehicles coming in and out of the downtown, with a 39 percent decline of vehicles coming in and out of Vancouver as a whole compared to April 2019.

The City’s three pronged approach included  “Room to Move” which included Slow Streets, “Room to Queue” which provided  expanded street space for people to queue outside of businesses. This also meant taking over the parking lane if needed outside of businesses.  “Room to Load” was to assist deliveries  to businesses, with the offshoot of allowing outdoor restaurant dining to spill onto city owned streets and sidewalks.

As we go into another pandemic Spring, a program of ensuring the barriers are in their correct places will assist everyone in getting outside and enjoying the designated Slow Streets safely.

 

images:twitter,davidfinnis

22 Feb 18:54

Automating Team Improvements

This article is part of a series of blog posts on ways to structure high-performing software teams.

In Awesome Team Learning we discussed premises that enable a shift in team culture towards successful continuous improvement.

In Supercharge Your Retrospectives With TRIPE we looked at often-ignored aspects of teamwork context that either constrain or enable our high-performance.

In the Continuous Improvement Canvas we looked at an information radiator for managing the enormous increase in small learnings that come from a team that has successfully reached the space of continuous improvement.

Once we’ve made a new team working agreement and put it on our canvas, we’re now stuck with the burden of needing to “remember” the agreement. Every team at some point has had a team member say “whoops we made an agreement to do X but haven’t done it all week” at their weekly retrospective.

The answer to this is automation. We automate builds, we automate tests, we automate deployment, there’s no reason why we can’t automate working agreements. Let’s look at one way of doing this - but first some context building around mob programming.

Automating Your Work With Timers

Mob programming is the most efficient way for a team to maintain continuous improvement. Matthew Inman Cochrane has a wonderful presentation on how, if you stick with your retrospectives and truly eliminate all waste in your development process, you’ll naturally end up mob programming. So for today, I’m going to presume your team is mobbing.

Even if you’re not - if you’re pairing or solo coding - you can still easily use the process I’ll be describing.

In mobbing, you may have already found that using a timer is indispensable. Habits and norms break down as you get deeper into solving problems in the code. The timer keeps you honest. The best mob programming desktop timers automate rotations by blacking out the screen. The original Hunter Mob timer and Dillon Kearns’ Mobster are both great in this respect.

Mobodoros

“Mobodoro” is a term coined by San Diego agilist Chris Stead. He blogged an excellent and thorough description of the approach here.

In brief, a “mobodoro” is the “pomodoro” timed work session (a rhythm of 25 minutes working, 5 minutes break, then repeat) applied to the context of mobbing.

A few have blogged about the benefits of the mobodoro - here’s a post from Scottish agilist Barney Dellar, and another from mobbers at New Relic.

Now that we have a timer automating our work and recurring disciplined breaks (the benefits of which Tim Ottinger has eloquently blogged on here), we can begin drawing more value from it.

What Else Can The Timer Do?

Let’s say your team has decided that your retrospectives are too big and intermittent, and you want to have smaller learnings more often. So you decide that you are going to do “micro-retros”, 1-5 minute check-ins at the end of every pomodoro. Great!

Forgotten Working Agreement #1: We Keep Forgetting to Do Micro-retros

But you keep forgetting to have them - team members tend to just jump up and hit the restroom, refill their coffees and teas, etc. If as we discussed in Awesome Team Learning, we go with the premise of Nobody Needs to Be a Better Person - i.e., be smarter or more patient or have a better memory - then perhaps we can make something else remember for us. How about the computer, which is basically a remembering machine!

Let’s use Dillon Kearns’ Mobster timer as an example. Normally, you enter the names of the mobbers below.

Mobster timer with names entered

But now let’s put in the micro-retro habit too.

Names and retro listed in rotations

What this means in the timer, is that “retro” will be listed as the “navigator” at some point before they become the driver. We can just ignore that when that happens. Navigation is often shared by the whole mob anyway. When the retro switches to the driver, it’s time to chat for a minute or two. If we finish our micro-retro early, great, we can skip to the break.

You must adjust the number of mob rotations to include the “retro” member so that your work sessions still approximate ~25 minutes, and that the last rotation will end on the retro. You can do this by entering mobbers in multiple times like so. Multiple names and timer corrected

You’ll notice the rotation time (4 minutes) times the amount of names (7) equals the work session length (28 minutes).

Is this a bit awkward and janky? Yes! Is this good enough for now? Yes! Now at last the computer will do the remembering for you.

Forgotten Working Agreement #2: We Keep Forgetting to Ask Our Clever Context-Resetting Questions

Let’s say it’s come up in your team’s retros that you tend to “drift” while working on a story, or unconsciously find yourself prey to unexamined assumptions, and end up solving a different problem than is asked for in your user story.

Out of a retro you came up with a strategy for adapting to this challenge - you made a set of index cards with a series of questions on them.

“What is the larger goal? What problem are we trying to solve?”

When we start a new mobodoro and remember to ask them, these questions are so useful that our team decides to piggyback another fix on top of them - coming back from mobodoro breaks, it can be difficult to reset the context of our work. Some mobbers still are thinking about it, some have completely forgotten, and maybe there are even conflicting recollections of what we were working on anyway. So we add, “What were we just working on last? What is next?” so we all are on the same page.

alt_text

Of course, the real issue is now we don’t always remember to ask these excellent questions for kicking off our work sessions - maybe we only remember to ask them for a third of the mobodoros (if this sounds like I’m speaking from experience - well, I am.)

So what tool do we have that is an expert at remembering things? The computer! Let’s stick them in the timer.

alt_text

We’ve put all four questions in one rotation slot - that seems smarter than giving each question it’s own 4 minutes. But who knows, we might change our minds as we collect data in our recurring micro-retros. Notice we’ve correspondingly expanded the work session by one rotation. We’re still pretty close to 25 minutes - close enough is good enough.

alt_text

Elevating the Good-Enough-For-Now Habit Automation

Later on, perhaps we’ll decide to do automation “for real”. In a learning session or for hackathon project, we might want to create our own timer that more elegantly incorporates functionality like this. Or we can fork the Mobster project itself - but there are many timers out there. For remote mobbing, I’m also a big fan of tools like this mobbing timer that creates a shareable timer link for each member’s browser.

Wait - Why Does This Feel a Lot Like Paper-prototyping and the MVP Mindset

Because good process design is good process design! And successful solutions in complex adaptive systems - like the complex sociotechnic space of software teams - can often apply up and down levels of scale and across different contexts.

That’s something to think about right there.

Through this habit automation mindset, we are, piece by piece, creating a flow-enabling cognitive environment for our team - our own “training room in the Matrix” - that will catch and nullify all our individual foibles and allow us to be excellent together.

22 Feb 18:49

Daft Punk :: 1993-2021

by Volker Weber

22 Feb 18:44

Simply Jekyll

Highly customized [[Jekyll]] template that supports both posts and custom notes, with everything able to be linked together with [[backlinks]] and other features.

Found via @bopuc on Ton’s post.


By Raghuveer S, [[@raghuveerdotnet on Github::https://github.com/raghuveerdotnet]].

Preview / example https://simply-jekyll.netlify.app/, available on Github https://github.com/raghuveerdotnet/simply-jekyll.

Tutorial [[How to setup Simply Jekyll]], which is basically clone the repo, connect to [[Netlify]].

Raghu notes that it is inspired by [[Digital Garden Jekyll Template]].

I’ve kept some of the sample content here:

  • [[Introduction to Simply Jekyll]]
  • [[Exploring the features of Simply Jekyll]]
  • [[How to use Simply Jekyll features on your website]]

For less technical users, I have the beginnings of a [[Simply Jekyll Template]].

22 Feb 18:43

What’s this Clubhouse app everyone is talking about?

by Brad Bennett

If you’ve been following tech news lately, you may have noticed a new app called Clubhouse is getting a lot of attention.

While the app is still in its early stages, it’s poised to be very popular, and Twitter and Facebook are both actively developing features that clone Clubhouse’s most interesting functionality.

What is Clubhouse

At its core, Clubhouse allows users to start voice chatrooms that anyone can join. This allows a group of friends to have a persistent place to log in and talk with each other, and as the platform grows in popularity, it’s also been a way for notable people like Elon Musk to hold clubs and talk with followers publicly.

People can schedule conversations in the app, so depending on who you follow, there might always be a cool discussion to join. That said, there are also ‘Open’ chatrooms that anyone can log into.

Once a chatroom is created, the first two people who join are automatically labelled as the ‘Speakers’ and have the power to talk. The rest of the chatroom users are ‘Listeners’ and need to be invited by a mod or a speaker to talk.

These Open rooms are cool and can lead to fun conversations, but they also have a dark side since they can give hate speech and racism a platform. The app uses moderation similar to Reddit’s, which allocates select users called ‘Mods’ to control and set the rules for each chatroom.

Since its inception, this method hasn’t worked incredibly well, leading to numerous reports of hate speech, misleading facts and other bad actions. Since some chatrooms even have pseudo-Ted Talk vibes, the people talking often seem like they’re teaching even if they’re just sharing opinions.

This has led to the app’s development team releasing a new community guidelines blog post. 

It’s also difficult for the platform to moderate these conversations. If someone says something racist on Twitter, Facebook or a text-based platform, you can report that post.

With voice, things become harder. How do you sensor a person speaking live or thousands of humans talking live at the same time?

Where does it go from here?

The app is still in its early stages, and the only way to get into it right now is to be invited by someone who is already using Clubhouse.

With all of this in mind, Clubhouse needs to find a way to keep its platform safe and constructive for all people if it aims to reach the popularity of key social media competitors like Twitter and Facebook.

At the moment you can only download the app on iOS for free. Android is coming at some point later.

The post What’s this Clubhouse app everyone is talking about? appeared first on MobileSyrup.

21 Feb 18:41

Twitter Favorites: [rcousine] I’ve revised the Coquitlam drink-in-parks cycling tour. Now the ten parks are labeled, and I’ve corrected (I think)… https://t.co/nDR29ATdAx

Ryan Cousineau @rcousine
I’ve revised the Coquitlam drink-in-parks cycling tour. Now the ten parks are labeled, and I’ve corrected (I think)… twitter.com/i/web/status/1…
21 Feb 18:40

Car 87 where are you? Families say Vancouver's mental health emergency team is rarely available

mkalus shared this story :
How can this not be available 24/7? Maybe we should save some money by only having Police, Ambulances and Fire Departments available from 7am - 11pm and they'll get back to you within 72 hours as well? I think at that rate, three police cars, a fire truck and an ambulance would suffice. Just imagine the savings!!!!11111111 /s

Shirley Chan says she's made about six emergency calls to 911 over the years, each time requesting Vancouver's specialized Car 87 mental health team when her adult daughter was in crisis.

"I don't usually call 911 unless my loved one is in serious distress and very aggressive or threatening — when I feel I can't cope and I feel unsafe," Chan told CBC.

"They may be smashing my windows or they might have a knife in hand or they may have me pinned."

But none of Chan's calls have brought Car 87 to her door.

"The operators usually try to comply and they keep you on the phone, and they tell you that they're trying to get Car 87 … and then they have to say, 'Look, 87 is busy and can't make it,'" she said.

Chan, the vice-president of Pathways Serious Mental Illness Society, is not alone in her experience. Vancouver service organizations and housing providers say that while the program is great in theory, Car 87 is rarely available. Even if a request is in the queue for service, police acknowledge the team can take days to arrive.

"That doesn't work," Chan said. "Most families will not make the call until they feel they have no recourse."

The Car 87 program has been around in one form or another since 1978. It pairs a plainclothes police officer with a registered nurse or psychiatric nurse to do on-site assessments during mental health crises. A second team, known as Car 88, has been on the streets since last year, allowing the service to operate from 7 a.m. to 11 p.m.

It's run by the Vancouver Police Department in partnership with Vancouver Coastal Health. Anyone who needs help can ask for Car 87 by calling police or VCH's Access and Assessment Centre.

72-hour 'urgent' response time

David MacIntyre, executive director of the MPA Society, describes the program as an essential service for his non-profit, which provides housing and other supports for people dealing with mental illness.

"Our experience was that the service was oversubscribed, if you will, that they weren't getting to every call — and if there was a call, it was delayed," he said.

Staff at buildings operated by Atira Women's Resource Society have given up on calling for Car 87 altogether when a client is in crisis, according to CEO Janice Abbott.

"I would say nine times out of 10, when you call for Car 87, you're just told to call 911 instead," she said.

The lack of service led MacIntyre to write a letter to mayor and council in May 2019 on behalf of 19 Vancouver agencies, saying that delays in service from Car 87 put staff and clients at risk.

In the letter, MacIntyre expressed alarm over learning that an "urgent" response time for Car 87 was considered to be anything within 72 hours, and he called for that timeline to be reduced to 24 hours.

"I was concerned about the impact of them not showing up," he told CBC. "We don't call Car 87 unless we deem it to be necessary."

MacIntyre was pleasantly surprised by the response. VPD and Vancouver Coastal Health immediately put together a committee with housing providers and other stakeholders and began adding resources, including Car 88. The committee now reviews individual cases to see what could have been done better.

"I honestly have seen an improvement … and some responsiveness that I haven't experienced in the past," MacIntyre said.

But he added that it's not yet where it should be — and there's been no change to that 72-hour urgent response time.

'We don't have the resources'

Vancouver police spokesperson Sgt. Steve Addison said there are usually about 200 calls a month for Car 87 and several reasons why it might not be available.

"Sometimes Car 87 or 88 isn't available because they're on another call or they're at the hospital on a mental health apprehension or they're off shift because it's the middle of the night," he said.

He explained that dispatchers have to make an assessment for every call to determine how high the priority should be. Sometimes if there's an imminent risk of violence, Addison said the best option might be uniformed police officers.

"Bottom line is we have two cars that are on the road on any given day, and it takes time for them to properly do their job," he said.

"We'd love to be able to send Car 87 or Car 88 to all of those calls, but in a lot of cases, they're just not available because we don't have the resources."

In Chan's experience, when Car 87 hasn't been available, uniformed police respond to her home instead.

She says she has no complaints about the VPD officers who've shown up at her door. The ones she's dealt with have been well trained and compassionate, and some have been truly excellent at de-escalating a potentially dangerous situation.

But Chan points out that police officers have different priorities than mental health professionals. Their job is to enforce the law, not to get people proper health care.

She experienced the conflict between those priorities one night in September when she called to request Car 87 after arranging for her daughter to be admitted to hospital. When uniformed police arrived instead, the officers saw there was a court order forbidding Chan's daughter from being at her house.

"They refused to take her to hospital. They took her to jail," Chan said.

Her daughter spent the night behind bars, an arrangement that Chan says could have had serious consequences.

"She could harm herself or she could harm someone else. She was put into further distress when she was already distressed," Chan said.

She'd like to see urgent mental health matters taken out of the hands of the police whenever possible.

"People are calling for defunding the police, I don't call for that," Chan said.

"What I call for is de-tasking the police. They are being asked to do a job which is really, really difficult to do, that they have not really been trained to do."

21 Feb 18:40

Canadian libraries increasingly scrapping late fees to boost access to services

mkalus shared this story .

Amanda Chow has been borrowing books from her local public library in Richmond, B.C., in Metro Vancouver for nearly four decades. 

Despite her lifelong passion for reading, Chow, 44, occasionally amasses late fees.  

"Sometimes I just forget to return a book," she said. 

The last time Chow paid her fines, they totalled $3. If that amount had reached $5, her account would have been frozen and she would no longer be able to borrow the one or two books she reads each month.

Luckily for Chow, who works as a technical communicator, late fees aren't enough of a financial burden to keep her away. But for many library patrons, they are. 

That's why last week the Richmond Public Library joined a growing number of public libraries across Canada that have entirely eliminated late fees.

Long considered a tool to encourage patrons to return materials on time, in the past few years hundreds of public libraries have decided that late fees do more harm than good by pushing away low-income and disadvantaged readers. 

In the past few years, nearly 300 libraries across Canada have recently eliminated late fees, many of them in Quebec. Recent converts include public libraries in Burnaby, B.C., Lethbridge, Alta., Kingston, Ont., and Winnipeg.

"When we see families checking out 40 books at a time, all it takes is one day and they can hit that fine threshold," said Susan Walters, chief librarian at the Richmond Public Library. 

"People are busy. They're leading busy lives and it can accumulate so quickly."

Thousands locked out

Of the Richmond library's 111,000 cardholders, more than 7,500 of them couldn't borrow books because they hadn't paid their fines. 

The library will still charge patrons a fine if they don't pick up materials placed on hold for them. And if they don't return the material back within 21 days of its due date, cardholders will be charged a replacement fee. 

But even then, patrons will still be able to speak with a staff member to see about waiving those costs if they can't pay. Walters says most people do return the material eventually. 

The Vancouver Public Library currently doesn't charge late fees for children's materials. This week the Toronto Public Library worked with city council to bring in the same policy. Both libraries say they're working toward eliminating late fees entirely. 

Currently, the Ontario Library Association is lobbying the provincial government for more funding in the next budget to offset lost revenues from implementing fine-free policies and to help public libraries make these policies permanent. 

1% of most budgets

Walters says late fees usually represent about one per cent of a library's budget. The Richmond library found a way to shuffle around the $140,000 the late fees brought in from other parts of its budget. In Vancouver, late fees bring in about $650,000. 

Todd Kyle, chair of the Canadian Federation of Library Associations and CEO of the Brampton Library in Ontario, says late fees can be a significant source of income for libraries that have taken a financial hit during the pandemic. 

"The actual revenues that we generate through our services are quite limited," he said. 

Room rentals, events, printing and photocopying have all been wiped out because of pandemic restrictions, and for some libraries municipal funding has been frozen or stalled, Kyle said.

But he says most libraries eliminated late fees during the pandemic anyway because services weren't available or some patrons couldn't access them. The pandemic, combined with the ongoing broader trend, pushed many libraries to eliminate late fees as a permanent policy, he said. 

"The COVID crisis has sort of brought to our attention the incredible amount of ways in which, for some people, there's barriers between them and participating in things like library service," he said. 

21 Feb 18:36

Pluralistic: 21 Feb 2021

by Cory Doctorow
mkalus shared this story from Pluralistic: Daily links from Cory Doctorow.


Today's links



K-shaped recovery vs wealth taxes (permalink)

The K-shaped recovery – where the rich got richer and the poor got poorer – wasn't inevitable. It is the outcome of hard lobbying by the investor class to turn on floods of money to the rich, while starving the poor of money, rent-relief and debt-relief.

This has enabled wealthy people to increase their fortunes through asset inflation (STONKS) and financial engineering (buybacks, tax refunds, and bonuses) and cash-transfers (personal LLCs taking in vast PPP loans).

It also drove poor people into unsafe working conditions as the only alternative to homelessness and starvation, which let the rich keep their businesses open and supplied a pool of "essential worker" labor to deliver food and even serve in-person diners.

Thomas Piketty's 2013 CAPITAL IN THE 21ST CENTURY documents how inequality is a self-reinforcing policy: markets drive capital accumulation (that is, they make rich people richer), and capital is mobilized to buy wealth-favoring policies.

https://memex.craphound.com/2014/06/24/thomas-pikettys-capital-in-the-21st-century/

But he also documents how unstable this whole arrangement is: for a society to tolerate inequality, there must be a broadly accepted narrative of fairness, some story that explains why the desperately precarious should tolerate the smugly comfortable.

https://pluralistic.net/2021/01/18/peak-indifference/#peak-indifference

The worse the inequality, the thinner the narrative. As (im)morality plays go, the pandemic is pretty on the nose. The K-shaped recovery saw high mortality among racialized, precarious people, while the wealthy are mostly upset about missing their holidays.

Add to that the iron grip that the wealthy maintain on policy, on relief, insisting that $2,000 checks are beyond our means, pretending that they're not making these claims from the jacuzzis they've filled with free government money.

The status quo will collapse. In Piketty's 1789, that meant guillotines. In Argentina, they're trying for a peaceful resolution: they're taxing wealth. Any fortune of $3.4m faces a one-time Robin Hood tax of 3.5%.

https://www.thehour.com/news/article/Should-the-rich-pay-for-the-pandemic-Argentina-15964581.php

That is to say, they're allocating the tip of the top leg of the K-shaped recovery to the bottom leg.

Bolivia has created a Piketty-compliant annual tax on fortunes of more than $4.3m. Morocco's trying out a one-time tax on vast fortunes.

It's not just the global south: the UK's independent Wealth Tax Commission recommended a one-time levy. Canadian PM Justin Trudeau wants to "tax extreme wealth inequality."

Wealth-tax opponents say that they don't work – that wealth-taxes result in deceptive asset revaluations and offshoring to financial secrecy havens and so become costly boondoggles. But that's an incomplete account of how the situation plays out.

It's more true to say that when a wealth tax is set to pass, the wealthy mobilize their capital to create loopholes in the rules that guarantee these boondoggles.

This is not the inevitable outcome of a wealth-tax. As Gabriel Zucman has demonstrated, it's certainly possible to design effective wealth-taxes.

https://www.bloomberg.com/news/features/2019-05-23/the-wealth-detective-who-finds-the-hidden-money-of-the-super-rich

The investor class demanded a system that squeezed and squeezed, and now we're facing a rupture. The Robin Hood tax advocates are trying to manage an orderly, peaceful transition to a fairer system. The alternative is not business as usual.



Facebook vs Australia (permalink)

There's an old Irish joke whose punchline goes, "If you want to get there, I wouldn't start from here." That's basically how I feel about the so-called Australian "link tax" and Facebook's retaliation.

Let's start with the fact that it's not a link tax – it's a form of arbitrated collective bargaining that's meant to correct an imbalance in negotiating power created by monopolization.

The problem that the system is supposed to ameliorate is that the ad-tech platforms cheat. They lie about the reach of their ads. They lie about the performance of their ads. They rig markets so they can price-gouge. They collude to rig prices.

https://papers.ssrn.com/sol3/papers.cfm?abstract_id=3500919

They design their systems so publishers leak intelligence to them, then they exploit that leakage to gouge the publishers further. It hurts advertisers, readers and publishers, and it's the result of an illegal, collusive, corrupt ad-tech duopoly.

https://pluralistic.net/2020/12/06/surveillance-tulip-bulbs/#adtech-bubble

The existence of an advertising duopoly, meanwhile, is the result of lax antitrust enforcement. Facebook and Google were permitted to execute a long string of anticompetitive mergers and acquisitions, producing the hyper-concentrated market we see today.

The obvious remedy to this situation is to break up the monopolies, but that is off the table (for now). 40 years of neoliberal orthodoxy says that monopolies are efficient and breakups don't work, so we're left yanking on other policy levers.

For example, ad-tech pioneered a long, accelerating trend to surveillance. Their reach meant they could gather data on nearly everything that happened online (Facebook Like buttons, Google Analytics). Their capital meant they could strangle privacy laws in the cradle.

Eventually this became too much to bear. The EU passed the GDPR – but without breakups or other explicit antimonopoly measures. The result was that FB/Goog had to look down the back of the sofa for change to pay for compliance.

Meanwhile smaller, EU-based competitors (who were much dirtier than FB/Goog because they needed to behave worse to be economically viable in the cracks left by the duopoly) were driven out of business, handing even more market-power to Googbook.

https://papers.ssrn.com/sol3/papers.cfm?abstract_id=3477686

Which brings me back to Australia. It's undeniable that publishers get ripped off by Googbook. Their ad marketplaces are frauds from top to bottom: fake metrics for fake users seeing fake ads, run on bid-rigging and self-dealing.

Publishers that complain about this get slammed: Googbook uses the fact that they have created anticompetitive, vertically integrated cartels to tie a willingness to submit to crooked ad payments to traffic.

That means that publishers who make a stink about being ripped off – or who take measures to prevent leakage of their internal business data – have their traffic switched off. This is possible because regulators permitted vertical mergers between search/social and ad-tech.

This vertical integration is the source of confusion about whether this is a link-tax. The goal of the regulation is to clean up the ad markets, but Googbook use links as a stick to beat up publishers when they don't submit to corrupt ad practices, so links get implicated.

But the regulation's primary levers are transparency: it forces Googbook to disclose which data it harvests from publishers and how it uses it; it forces Googbook to disclose algorithmic changes that will result in significant changes to ad performance.

Just as importantly, it forbids Googbook from using their search/social business to retaliate against publishers who object to bad practices in their ad-tech units.

At Matt Stoller writes, the idea "is to mimic a healthy market, where there is transparency of data and a robust set of buyers and sellers instead of a few dominant platforms."

https://mattstoller.substack.com/p/facecrook-dealing-with-a-global-menace

The hope/wish is that all this transparency and guaranteed of non-retaliation might means Googbook ending their market corruption so publishers will get a fair price for their ad-inventory. And if they don't, there's an arbitrator who hears both sides and sets prices.

This is how collective bargaining often works – when you have one side of a deal who has all the power (like a big employer) and a diffuse set of actors who lack power (like workers), an arbitrator hears both sides and hands down a deal that's meant to be fairer.

But of course, this isn't a negotiation between workers and employers: it's a bargain between a cartel of news organizations and a search duopoly. That's not ideal! For starters, it means that the government gets to decide who is a "news organization."

That's ripe for abuse. News organizations are expected to report on the government and the government gets to decide whether they are entitled to participate in collective bargaining with Googbook, which could mean the difference between financial viability and bankruptcy.

Remember, one of the problems this system is supposed to resolve is powerful entities (Googbook) using their power to punish news organizations for complaining about their behavior – governments were in that game long before Googbook came into existence.

And there's another problem: the structure of the Australian news market, which is yet another highly concentrated industry, dominated by a rapacious billionaire who uses his power to manipulate politics: Rupert Murdoch.

Murdoch conquered Australian media the same way Googbook conquered the net: through anticompetitive conduct that was waved through by collusive regulators who never met a monopoly they didn't view as efficient.

It's not wrong to say that the only reason this regulation got off the drawing-board is that Murdoch viewed it as a way to shift a few balance-points from Big Tech's side of the ledger to Big Media's side.

Can't we – journalists, readers – hope for something better than being dominated by a different set of giants and praying that the new boss drops a few more crumbs than the old boss?

Goddamned right. The Australian reg tries to get a fair shake for the independent press as well as the Murdoch press, setting out some objective criteria for who is entitled to enter the bargaining unit.

But the fact is that monopolies reproduce themselves. As David Dayen describes in MONOPOLIZED, when a monopoly forms, all the other participants in the supply chain have to monopolize or die.

https://pluralistic.net/2021/01/29/fractal-bullshit/#dayenu

Big Pharma gets monopolized and squeezes hospitals. Hospitals monopolize to fight back and squeeze insurers. Insurers monopolize and squeeze…us. We're the only ones who don't get to organize to push back.

The people's countermonopolistic entity is the democratic state.

The state's job is to prevent monopolies from forming, and it has failed to do that job for 40 years. Now it's stuck trying to fix the effects of monopoly without fixing monopolies themselves.

40 years ago, we got rid of the idea of fighting monopolies because they corrupted our governments and working lives – we replaced it with the neoliberal idea of "consumer welfare," which held that only "bad" monopolies should face enforcement.

What's a bad monopoly? It's when companies conspire to raise prices. That's why the US government clobbered the Big Six publishers when they leaned on Amazon to stop engaging in predatory ebook pricing.

But while the "consumer welfare" monopoly enforcement is aggressive when two or more companies collude to set prices, it has no problem if those companies merge with one another and then do exactly the same thing.

When the CEOs of two companies conspire to set prices, it's illegal. When they merge their companies and engage in the same conspiracy, it's not. Collective bargaining is out, monopolization is in. That's why the Big Six publishers are now the Big Four.

"If you wanted to get there, I wouldn't start from here." The highly monopolized news sector is mainly controlled by extremist billionaires and private-equity looters. The principal beneficiaries the Australian regulation are part of the problem.

That doesn't change the fact that Googbook are a corrupt, collusive duopoly. It also doesn't change the fact that there are a bunch of indie news-outlets that got to ride on Murdoch's coat-tails in this regulation.

As with the GDPR, the question to ask is whether this will strengthen or weaken monopolists, and there, I think, is some cause for hope. Forcing Googbook to reveal their data-collection and algorithmic practices and prohibiting retaliation is a solid anti-monopoly move.

Likewise, establishing a precedent for inter-industry collective bargaining is a useful harm-reduction measure for dealing with a monopolized market while we muster political will for breakups. It sure beats the alternative of merging every industry into its own monopoly.

It's a confusing issue. Link-taxes are bullshit and they're pro-monopolistic, since big companies can afford them and little ones can't. But this isn't a link tax – the only reason it seems like one is because links are the stick that Googbook beats its supply-chain with.

(Image IPWAI, CC BY-SA, modified)



The Paltrow-Industrial Complex (permalink)

I don't know about you, but I've been worried about Gwyneth Paltrow. We've had the plague for a year and the Paltrow-Industrial Complex hadn't shown up with any kind of wellness grift!

Finally, we can breathe easy. As Beth Mole writes in Ars Technica, Paltrow has finally entered the covid profiteering racket, and she's going big, with a blog entry detailing the many ways you can shop your way out of long covid.

https://arstechnica.com/science/2021/02/it-took-a-year-but-gwyneth-paltrow-figured-out-how-to-exploit-the-pandemic/

Paltrow's post describes how she suffered covid "early on" and then heroically overcame long covid with chiropractic, a "plant-based" diet that's also fish-based (go fig), $102 worth of vitamins and supplements, and $60 "detox" powder.

These aren't just health advice, of course – they're also products you can buy from Goop or via affiliate links that pay Paltrow a commission. Beyond that, Paltrow recommends hiking with $9,000 worth of specialized gear ($8600 of that is a gold necklace).

As Mole points out, Paltrow also relates how she didn't see results straight away, which implies an answer to what her customers should do if her expensive remedies don't work – buy more and keep trying.

Mole does the lord's work in dogging Paltrow's heels. Not only did she take to time to explain why you shouldn't squirt coffee up your asshole as recommended by Goop:

https://arstechnica.com/science/2018/01/gwyneth-paltrows-goop-wants-you-to-start-2018-right-with-a-135-coffee-enema/

But she even reviewed Paltrow's unwatchable Netflix show:

https://arstechnica.com/science/2020/01/goops-netflix-series-its-so-much-worse-than-i-expected-and-i-cant-unsee-it/

This work isn't just unpleasant, it's risky. Speaking as someone who's been threatened by Paltrow's vicious attack-lawyers for criticizing the ultra-wealthy alexjonesian nostrum-peddler, I can only imagine what Mole's inbox looks like.



This day in history (permalink)

#15yrsago Artists paint Detroit’s derelict buildings Tiggeriffic Orange http://www.thedetroiter.com/nov05/disneydemolition.php

#15yrsago Copyright office head denounces “big mistake” of extending copyright https://web.archive.org/web/20060329162217/https://www.ibiblio.org/yugen/video/too_long.mp4

#15yrsago Shoes designed for illegal Mexican/US border crossings http://news.bbc.co.uk/2/hi/americas/4445342.stm

#10yrsago America’s Chief Apocalypse Officer, a Fed job ad from 1956 https://web.archive.org/web/20110210020542/http://longstreet.typepad.com/thesciencebookstore/2011/02/nuclear-weapons-post-attack-job-description-1956.html

#10yrsago How Anonymous decides: inside the lulz-sausage factory https://arstechnica.com/tech-policy/2011/02/empty-suit-the-chaotic-way-that-anonymous-makes-decisions/

#10yrsago Overcome information overload by trusting redundancy https://www.theguardian.com/technology/2011/feb/22/information-overload-probabilistic

#10yrsago Saif Gadaffhi, plagiarist https://saifalislamgaddafithesis.fandom.com/wiki/Saif_Al-Islam_Gaddafi_Thesis_Wiki

#10yrsago Gadaffhi Junior’s PhD celebrates “soft power,” democracy https://3quarksdaily.com/3quarksdaily/2011/02/is-this-irony-or-absurdity-saif-al-islam-al-qadhafis-disseration.html

#10yrsago Libya’s UN mission asks world to defend Libyans from Gadaffi https://web.archive.org/web/20110224044505/https://www.google.com/hostednews/canadianpress/article/ALeqM5g301v8CNJTJO9kOWuJGWyZBnHJpw?docId=6022291

#10yrsago Google App to help locate people in Christchurch quake https://web.archive.org/web/20110222091007/http://christchurch-2011.person-finder.appspot.com/

#5yrsago Republican Congressmen backed by airline money kill research on legroom and passenger safety https://theintercept.com/2016/02/21/backed-by-airline-dollars-congress-rejects-effort-to-address-shrinking-legroom/

#5yrsago Uber uses customer service reps to push anti-union message to drivers https://qz.com/619601/uber-is-using-its-us-customer-service-reps-to-deliver-its-anti-union-message/

#1yrago Gopher shows us how adversarial interoperability was there from the start https://pluralistic.net/2020/02/21/pluralist-a-daily-link-adose-21-feb-2020/#gopherspace

#1yrago Bloomberg's campaign NDA is a gag order that covers sexual abuse and other crimes https://pluralistic.net/2020/02/21/pluralist-a-daily-link-adose-21-feb-2020/#compelledsilence



Colophon (permalink)

Today's top sources: Naked Capitalism (https://www.nakedcapitalism.com/).

Currently writing:

  • My next novel, "The Lost Cause," a post-GND novel about truth and reconciliation. Friday's progress: 601 words (113076 total).
  • A short story, "Jeffty is Five," for The Last Dangerous Visions. Friday's progress: 258 words (6467 total).

Currently reading: Analogia by George Dyson.

Latest podcast: Privacy Without Monopoly: Data Protection and Interoperability (Part 1) https://craphound.com/news/2021/02/15/privacy-without-monopoly-data-protection-and-interoperability-part-1/
Upcoming appearances:

Recent appearances:

  • Technology, Self-Determination, and the Future of the Future (CERIAS)
    https://www.youtube.com/watch?v=2yC_hBDS-RU
  • Talking "Permanent Record Young Readers' Edition" with Edward Snowden https://www.youtube.com/watch?v=dipfjn3bir8

  • Talking "Agency" with William Gibson https://www.youtube.com/watch?v=ijGkwzrE1MY

  • Software Freedom is Essential to Human Freedom (linux.conf.au keynote) https://www.youtube.com/watch?v=4EirKskSd5U

Latest book:


This work licensed under a Creative Commons Attribution 4.0 license. That means you can use it any way you like, including commercially, provided that you attribute it to me, Cory Doctorow, and include a link to pluralistic.net.

https://creativecommons.org/licenses/by/4.0/

Quotations and images are not included in this license; they are included either under a limitation or exception to copyright, or on the basis of a separate license. Please exercise caution.


How to get Pluralistic:

Blog (no ads, tracking, or data-collection):

Pluralistic.net

Newsletter (no ads, tracking, or data-collection):

https://pluralistic.net/plura-list

Mastodon (no ads, tracking, or data-collection):

https://mamot.fr/web/accounts/303320

Twitter (mass-scale, unrestricted, third-party surveillance and advertising):

https://twitter.com/doctorow

Tumblr (mass-scale, unrestricted, third-party surveillance and advertising):

https://mostlysignssomeportents.tumblr.com/tagged/pluralistic

"When life gives you SARS, you make sarsaparilla" -Joey "Accordion Guy" DeVilla

20 Feb 18:01

The Three Eras Of Telecom Infrastructure Hardware

by Martin

As you might have noticed on the blog, I’ve been doing a lot of hands-on exploration these days of bare metal hardware, virtual machines, containers and orchestration (e.g. Kubernetes). My motivation behind this is twofold. For one thing, I like to evolve my private cloud. Current status: 25 containers are now running in my private cloud and I have replaced 3 virtual machines. The other reason to learn more about these topics is to better understand in which direction the hardware and underlying software for telecommunication infrastructure evolve. This made me realize even more clearly that there are at least three distinct eras of telecom infrastructure hardware and I’m very happy we are now entering the third era as I will explain below.

The Early Days – Proprietary Hardware and Software

Let’s go back 20 years to the early 2000s. At that time, I was working for Nortel, a telecom supplier. The wireless world was still quite voice-centric and in the core network, the GSM Mobile Switching Center (MSC) was the center of the wireless product portfolio. Like with any manufacturer, the MSC was an adaptation of a fixed-line switching center, it was built with proprietary technology, and had little to do with computing equipment used in IT. Everything was proprietary from cabinets, cabinet sizes, card dimensions, to backplane technology and operating systems. In the case of Nortel’s DMS-100 switch, they even used a little-known processor, the Motorola 88100. At the time, a single CPU pair was the center of the complete system that served tens of thousands of subscribers. There were lots of other cards in the system with their own smaller processors to deal with things like input/output to management terminals, etc. A very distributed architecture. The only thing already standardized at this point were the protocols to communicate with the outside world like the radio access network, the subscriber database (HLR), or other MSCs. These parts of the network were proprietary as well but could be from other manufacturers as the protocols were standardized.

The Middle Ages – ATCA

And then, things started to change. By the early 2000s, it became clear that the off-the-shelf industry could offer components for telecom equipment that were much cheaper than proprietary in-house developments. This gave rise to the ‘Advanced Telecommunications Computing Architecture‘ initiative, which is known as ATCA in the industry. ATCA basically defines the dimensions of shelves and cards, and specifies the backplane connector and communication protocols used between the cards. This probably helped to bring hardware costs down, as cheaper off-the-shelf components could then be used, and a standardized floor layout for the equipment simplified the management of data centers. However, the architecture of ATCA equipment still resembled the setup of the proprietary days. An ATCA shelf typically had CPU cards, storage cards, interface cards, etc., and they were, of course, all proprietary. From the cabinet and backplane connectivity point of view, cards from one manufacturer could theoretically be put into a cabinet of another manufacturer. However, this never happened in practice to my knowledge, as the hardware on the board was still proprietary, and was hence only supported by the software of a particular equipment vendor (such as Ericsson, Nortel, Huawei, etc.).

In 2021, ATCA systems are (still) used in many telecom networks all over the world. However, this is changing quite quickly now.

Today – COTS

One important thing that has changed in the last decade in telecommunication networks was that all transport interfaces have converged on Ethernet over copper or fiber cables. Therefore, there is no longer the need for dedicated telecommunication hardware that supports, from an IT point of view, ‘strange’ network transmission protocols and physical layers. This in turn paved the way to use the same standard off-the-shelf hardware that was already widely used in data centers. On the control plane of a mobile network that deals with things such as authentication, mobility, and session management, it became straightforward to put such services in virtual machines and run them on standard x86 server blades. It’s mainly a compute problem that doesn’t require specialized hardware. In industry terms, this is referred to as Network Function Virtualization (NFV), and ETSI standardized the way this should be done. This drew quite a number of non-incumbent players into the mobile core network market and today, there is quite some competition there. One could also say that telecom network equipment has moved in the direction the IT industry moved a decade earlier: Standardized x86 based servers that run virtual machines in huge data centers. And there’s another big advantage of using COTS x86 based hardware: No longer is it necessary to use proprietary operating system software for telecom equipment that was specifically adapted to the hardware. Instead, Linux and open source hypervisors are the basis of everything.

Mobile networks are not only about the signaling on the control plane, however, but also about forwarding IP packets of the subscribers to and from the Internet. This is referred to as the ‘user plane’. User plane processing was much more difficult to virtualize, i.e. to be put into virtual machines, as packet inspection was a task mostly done in hardware for performance reasons. But this has changed now as well. In papers from 2017, Intel and Ericsson proclaim this to be fixed, and inspecting, changing, and forwarding IP packets can now be done cost-efficiently in virtual machines as well. As the papers are already a few years old, this has probably arrived in practice by now. When you search for ‘virtual Evolved Packet Core’ (vEPC) on the net, you will find many examples.

In the meantime, the IT industry has already moved on, and virtual machines are no longer the only way to process data in the cloud. Instead, containers and microservices are now preferred over virtual machines in many areas. 3GPP has thus decided to base the 5G core on containerized microservices rather than network functions in virtual machines. Have a look at this post for details. Here, specialized telecom hardware is even less required.

What about the Radio Access Network?

So the last domain in telecom networks where dedicated hardware is still used is the RAN. This is because even in LTE and 5G NR networks, the radio part of the base station can’t be done with COTS hardware. But this is changing as well now with Open RAN, which aims, among other things, to separate hardware from software and put as much of the workload as possible on standard x86 hardware. Have a look at this post for details.

And I’m Happy about COTS

The great thing about telecom equipment makers using COTS hardware and virtualizing and containerizing services is that open source software is the basis for everything. It has thus become possible to experiment with this very foundation at home on a small scale. It’s even possible to run your own LTE core network at home, and a RAN complete with UE simulation or a real RF board as well if you like. Virtual machines and containers? No problem, everything is open source and runs on a small notebook just the same way as on mighty servers in the cloud. That opens up incredible opportunities to better understand how things work and fit together not only by reading about it but by actually experimenting and using the technology at home. A very powerful development for those who want to push the boundaries. No way I could have imagined this 20 years ago when I sat in front of a workstation at work, typing in commands for a DMS-100 voice switch that went to an esoteric Motorola 88100 CPU that was hidden somewhere inside one of the dozens of cabinets that comprised a switch.

20 Feb 17:59

Twitter Favorites: [dethe] At some point you've added so much to scrambled eggs that they become veggie hash. Anyway, #c4lbc was awesome and… https://t.co/CEnsvOqeq7

Generic Dethe @dethe
At some point you've added so much to scrambled eggs that they become veggie hash. Anyway, #c4lbc was awesome and… twitter.com/i/web/status/1…
20 Feb 06:42

Getting Into the Rhythm of Chart Typography with {ragg} and {hrbragg} (a.k.a. It’s {ragg}-time}

by hrbrmstr

Horrible puns aside, hopefully everyone saw the news, earlier this week, from @thomasp85 on the evolution of modern typographic capabilities in the R ecosystem. Thomas (and some cohorts) has been working on {systemfonts}, {ragg}, and {textshaping} for quite a while now, and the — shall we say tidyglyphs ecosystem — is super-ready for prime time.

Thomas covered a seriously large amount of ground in his post, so please take some time to digest that before continuing.

Back? 👍🏽

While it is possible to mangage typographic needs with the foundry tools provided via the font-rendering package-triad, one would be hard-pressed to say that the following is “fun”, or even truly manageable coding:

library(systemfonts)

register_variant(
  name = "some-unique-prefix Inter some-style-01",
  weight = "normal",
  features = font_feature(
    poss = 1, ibly = 1, many = 1, 
    four = 1, char = 1, open = 1,
    type = 1, code = 1, spec = 1
  )
)

# remember that name

register_variant(
  name = "some-unique-prefix Inter some-style-02",
  weight = "normal",
  features = font_feature(
    poss = 1, ibly = 1, many = 1, 
    four = 1, char = 1, open = 1,
    type = 1, code = 1, spec = 1
  )
)

# remember that name 

# add a dozen more lines ...

ggplot() +
   geom_text(family = "oops-i-just-misspelled-the-family-name-*again*", ...) 

We’ve been given the power to level up our chart typography, but it’s sort of where literal typesetters (the ones who put blocks of type into a press) were and we can totally make our lives easier and charts prettier with the help of a new package — {hrbragg} https://git.rud.is/hrbrmstr/hrbragg — which is somewhat of a bridge between {ragg}, {systemfonts}, {textshaping} and a surprisingly popular package of mine: {hrbrthemes}. {hrbragg} is separate from {hrbrthemes} since this new typographic ecosystem is fairly restricted to {ragg} graphics devices (for the moment, as Thomas alluded the other day), and the new themes provided in {hrbragg} are a bit of a level-up from those in its sibling package.

Feature Management

At the heart of {systemfonts} lies the ability to tweak font features and bend them to your will. This somewhat old post shows why these tweaks exist and delves (but not too deeply) into the details of them, down to the four-letter codes that are used to represent and work with a given feature. But, what does calt mean? And, what is this tnum fellow you’ll be seeing a great deal of in R-land over the coming months? While one could leave the comfort of RStudio, VS Code, or vim to visit one of the reference links in Thomas’ package or {hrbragg}, I’ve included the most recent copy of tag-codefull-tag-nameshort-tab-description in {hrbragg} as a usable data frame so you can treat it like the data it is!

library(systemfonts) # access to and tweaking OTFs!
library(textshaping) # lets us treat type as data
library(ragg)        # because it'll be lonely w/o the other two
library(hrbragg)     # remotes::install_git("https://git.rud.is/hrbrmstr/hrbragg.git")
library(tidyverse)   # nice printing, {ggplot2}, and b/c we'll do some font data wrangling

data("feature_dict")

feature_dict
## # A tibble: 122 x 3
##    tag   long_name                   description                                                                                             
##    <chr> <chr>                       <chr>                                                                                                   
##  1 aalt  Access All Alternates       Special feature: used to present user with choice all alternate forms of the character                  
##  2 abvf  Above-base Forms            Replaces the above-base part of a vowel sign. For Khmer and similar scripts.                            
##  3 abvm  Above-base Mark Positioning Positions a mark glyph above a base glyph.                                                              
##  4 abvs  Above-base Substitutions    Ligates a consonant with an above-mark.                                                                 
##  5 afrc  Alternative Fractions       Converts figures separated by slash with alternative stacked fraction form                              
##  6 akhn  Akhand                      Hindi for unbreakable.  Ligates consonant+halant+consonant, usually only for k-ss and j-ny combinations.
##  7 blwf  Below-base Forms            Replaces halant+consonant combination with a subscript form.                                            
##  8 blwm  Below-base Mark Positioning Positions a mark glyph below a base glyph                                                               
##  9 blws  Below-base Substitutions    Ligates a consonant with a below-mark.                                                                  
## 10 c2pc  Capitals to Petite Caps     Substitutes capital letters with petite caps                                                            
## # … with 112 more rows

You can also use help("opentype_typographic_features") to see an R help page with the same information. That page also has links external resource, one of which is a detailed manual of each feature with use-cases (in the event even the short-description is not as helpful as it could be).

Before one can think about using the bare-metal register_variant(..., font_feature(...)) duo, one has to know what features a particular type family supports. We can retrieve the feature codes with textshaping::get_font_features() and look them up in this data frame to get an at-a-glance view:

# old school subsetting ftw!
feature_dict[feature_dict$tag %in% textshaping::get_font_features("Inter")[[1]],]
## # A tibble: 19 x 3
##    tag   long_name                   description                                                                                                                 
##    <chr> <chr>                       <chr>                                                                                                                       
##  1 aalt  Access All Alternates       Special feature: used to present user with choice all alternate forms of the character                                      
##  2 calt  Contextual Alternates       Applies a second substitution feature based on a match of a character pattern within a context of surrounding patterns      
##  3 case  Case Sensitive Forms        Replace characters, especially punctuation, with forms better suited for all-capital text, cf. titl                         
##  4 ccmp  Glyph Composition/Decompos… Either calls a ligature replacement on a sequence of characters or replaces a character with a sequence of glyphs. Provides…
##  5 cpsp  Capital Spacing             Adjusts spacing between letters in all-capitals text                                                                        
##  6 dlig  Discretionary Ligatures     Ligatures to be applied at the user's discretion                                                                            
##  7 dnom  Denominator                 Converts to appropriate fraction denominator form, invoked by frac                                                          
##  8 frac  Fractions                   Converts figures separated by slash with diagonal fraction                                                                  
##  9 kern  Kerning                     Fine horizontal positioning of one glyph to the next, based on the shapes of the glyphs                                     
## 10 locl  Localized Forms             Substitutes character with the preferred form based on script language                                                      
## 11 mark  Mark Positioning            Fine positioning of a mark glyph to a base character                                                                        
## 12 numr  Numerator                   Converts to appropriate fraction numerator form, invoked by frac                                                            
## 13 ordn  Ordinals                    Replaces characters with ordinal forms for use after numbers                                                                
## 14 pnum  Proportional Figures        Replaces numerals with glyphs of proportional width, often also onum                                                        
## 15 salt  Stylistic Alternates        Either replaces with, or displays list of, stylistic alternatives for a character                                           
## 16 subs  Subscript                   Replaces character with subscript version, cf. numr                                                                         
## 17 sups  Superscript                 Replaces character with superscript version, cf. dnom                                                                       
## 18 tnum  Tabular Figures             Replaces numerals with glyphs of uniform width, often also lnum                                                             
## 19 zero  Slashed Zero                Replaces 0 figure with slashed 0        

Most of those will not be super-useful (yet) but there are three key features that I believe one needs when picking a font for a chart:

  • One of the *ligs (because ligatures.) are so gosh darn cool, pretty, and useful)
  • tnum for tabular numbers (essential in axis value display, and more)
  • kern for sweet, sweet letterspacing, or kerning

Since I’ve just made up a rule, let’s see how many fonts I have that support said rule:

(fam <- unique(system_fonts()[["family"]])) %>% 
  get_font_features() %>% 
  set_names(fam) %>% 
  keep(~sum(c(
    any(grepl("kern", .)), 
    any(grepl("tnum", .)),
    any(grepl(".lig|liga", .)) 
    )) == 3
  ) %>% 
  names() %>% 
  sort()
##  [1] "Barlow"                 "Goldman Sans"           "Goldman Sans Condensed" "Grantha Sangam MN"     
##  [5] "Inter"                  "Kohinoor Devanagari"    "Mukta Mahee"            "Museo Slab"            
##  [9] "Neufile Grotesk"        "Roboto"                 "Roboto Black"           "Roboto Condensed"      
## [13] "Roboto Light"           "Roboto Medium"          "Roboto Thin"            "Tamil Sangam MN"       
## [17] "Trattatello"           

I do have more, but they’re on a different Mac 😎.

{hrbragg} comes with Inter, Goldman Sans, and Roboto Condensed, so let’s explore one of them — Inter — and see how we might be able to make it useful but not tedious. The supported features of Inter are above and here are the family members:

system_fonts() %>% 
  filter(family == "Inter") %>% 
  select(name, family, style, weight, width, italic, monospace)
##  A tibble: 18 x 7
##    name                   family style              weight     width  italic monospace
##    <chr>                  <chr>  <chr>              <ord>      <ord>  <lgl>  <lgl>    
##  1 Inter-ExtraLight       Inter  Extra Light        light      normal FALSE  FALSE    
##  2 Inter-MediumItalic     Inter  Medium Italic      medium     normal TRUE   FALSE    
##  3 Inter-ExtraLightItalic Inter  Extra Light Italic light      normal TRUE   FALSE    
##  4 Inter-Bold             Inter  Bold               bold       normal FALSE  FALSE    
##  5 Inter-ThinItalic       Inter  Thin Italic        ultralight normal TRUE   FALSE    
##  6 Inter-SemiBold         Inter  Semi Bold          semibold   normal FALSE  FALSE    
##  7 Inter-BoldItalic       Inter  Bold Italic        bold       normal TRUE   FALSE    
##  8 Inter-Italic           Inter  Italic             normal     normal TRUE   FALSE    
##  9 Inter-Medium           Inter  Medium             medium     normal FALSE  FALSE    
## 10 Inter-BlackItalic      Inter  Black Italic       heavy      normal TRUE   FALSE    
## 11 Inter-Light            Inter  Light              normal     normal FALSE  FALSE    
## 12 Inter-SemiBoldItalic   Inter  Semi Bold Italic   semibold   normal TRUE   FALSE    
## 13 Inter-Regular          Inter  Regular            normal     normal FALSE  FALSE    
## 14 Inter-ExtraBoldItalic  Inter  Extra Bold Italic  ultrabold  normal TRUE   FALSE    
## 15 Inter-LightItalic      Inter  Light Italic       normal     normal TRUE   FALSE    
## 16 Inter-Thin             Inter  Thin               ultralight normal FALSE  FALSE    
## 17 Inter-ExtraBold        Inter  Extra Bold         ultrabold  normal FALSE  FALSE    
## 18 Inter-Black            Inter  Black              heavy      normal FALSE  FALSE    

Nobody. I mean, nobody wants to type eighteen+ font variant registration statements, which is why {hrbragg} comes with reconfigure_font(). Just give it the family name, the features you want supported, and it will take care of the tedium for you:

reconfigure_font(
  prefix = "hrbragg-pkg",
  family = "Inter",
  width = "normal",
  ligatures = "discretionary",
  calt = 1, tnum = 1, case = 1,
  dlig = 1, ss01 = 1, kern = 1,
  zero = 0, salt = 0
) -> customized_inter

# I'll have a proper print method for this soon

str(customized_inter, 1)
## List of 17
##  $ ultralight_italic: chr "clever-prefix Inter Thin Italic"
##  $ ultralight       : chr "clever-prefix Inter Thin"
##  $ light            : chr "clever-prefix Inter Extra Light"
##  $ light_italic     : chr "clever-prefix Inter Extra Light Italic"
##  $ normal_italic    : chr "clever-prefix Inter Light Italic"
##  $ normal_light     : chr "clever-prefix Inter Light"
##  $ normal           : chr "clever-prefix Inter Regular"
##  $ medium_italic    : chr "clever-prefix Inter Medium Italic"
##  $ medium           : chr "clever-prefix Inter Medium"
##  $ semibold         : chr "clever-prefix Inter Semi Bold"
##  $ semibold_italic  : chr "clever-prefix Inter Semi Bold Italic"
##  $ bold             : chr "clever-prefix Inter Bold"
##  $ bold_italic      : chr "clever-prefix Inter Bold Italic"
##  $ ultrabold_italic : chr "clever-prefix Inter Extra Bold Italic"
##  $ ultrabold        : chr "clever-prefix Inter Extra Bold"
##  $ heavy_italic     : chr "clever-prefix Inter Black Italic"
##  $ heavy            : chr "clever-prefix Inter Black"
##  - attr(*, "family")= chr "Inter"

The reconfigure_font() function applies the feature settings to all the family members, gives each a name with the stated prefix and provides a return value that supports autocompletion of the name in smart IDEs and practically negates the need to type out long, unique font names, like this:

ggplot() +
  geom_text(
    aes(1, 2, label = "Welcome to a <- customized -> Inter!"),
    size = 6, family = customized_inter$ultrabold
  ) +
  theme_void()

Note that we have a lovely emboldened font with clean ligatures without much work at all! (I should mention that if a prefix is not specified, a UUID is chosen instead since we don’t really care about the elongated names anymore).

While we’ve streamlined things a bit already, we can do even better.

Font-centric Themes

Just like {hrbrthemes}, {hrbragg} comes with some font/typographic-centric themes. We’ll focus on the one with Inter for the blog post. For the moment, you’ll need to install_inter() (you likely got prompted to do that if you already installed the package). This requirement will go away soon, but you’ll want to use Inter everywhere anyway, so I’d keep it installed.

Once that’s done, you’re ready to use theme_inter().

What’s that you say? Don’t we need to create a font variant first?

Would I do that to you? Never! {hrbragg} comes with a preconfigured inter_pkg font variant (which I’ll be tweaking a bit over the weekend for some edge cases) that pairs nicely with theme_inter(). Here it is in action with an old friend of ours:

ggplot() +
  geom_point(
    data = mtcars,
    aes(mpg, wt, color = factor(cyl))
  ) +
  geom_label(
    aes(
      x = 15, y = 5.48,
      label = "<- A fairly useless annotation\n       that uses the custom Inter\n          variant by default."
    ),
    label.size = 0, hjust = 0, vjust = 1
  ) +
  labs(
    x = "Fuel efficiency (mpg)", y = "Weight (tons)",
    title = "Seminal ggplot2 scatterplot example",
    subtitle = "A plot that is only useful for demonstration purposes",
    caption = "Brought to you by the letter 'g'"
  ) -> gg1

gg1 + theme_inter(grid = "XY", mode = "light") 

Wonderful kerning, a custom-built arrow due to fantastic, built-in ligatures, and spiffy tabular numbers. Gorgeous!

What was that you just asked? What’s up with that mode = "light"?. Did I forget to mention that all the {hrbragg} themes come with dark-mode support built in? My sincerest apologies. Choosing mode = "dark" will use a (configuratble) dark theme and using mode = "rstudio" (if you’re an RStudio user) will have the charts take on the IDE theme setting automagically. Here’s dark mode:

gg1 + theme_inter(grid = "XY", mode = "dark") 

The font+theme pairs automatically work and reconfigure all the ggplot2 aesthetic defaults accordingly. Since this makes heavy use of update_geom_defaults() I’ve included a (very necessary) reset_ggplot2_defaults() to get things back to normal when you need to.

Note that you can use adaptive_color() to help enable dark/light-mode color switching for your own pairings, and theme_background_color() or theme_foreground_color to utilize the (reconfigurable) default fore- and background theme colors.

Try before you buy…into using a given font

One can’t know ahead of time whether a font is going to work well, and you might want go get a feel for how a given set of family variants work for you. To that end, I’ve made it possible to preview any font you’ve reconfigured with reconfigure_font() via preview_variant(). It uses some pre-set text that exercises the key features I’ve outlined, but you can sub your own for them if you want to look at something in particular. Let’s give inter_pkg a complete look:

preview_variant(inter_pkg)

We can look at another one that we’ll create now (I did not realize this font had tabular numbers until Thomas built all these wonderful toys to play with!):

reconfigure_font(
  family = "Trattatello",
  width = "normal",
  ligatures = "discretionary",
  calt = 1, tnum = 1, case = 1,
  dlig = 1, kern = 1,
  zero = 0, salt = 0
) -> trat

preview_variant(trat)

FIN

The {hrbragg} package is not even 24 hours old yet, so there are breaking changes and many new, heh, features still to come, but please — as usual — kick the tyres and post questions, feedback, contributions, or suggestions wherever you’re most comfortable (the package is on most of the popular social coding sites).

20 Feb 06:42

New chapter, and a package

by Julie Moronuki and Chris Martin

New updates for Sockets and Pipes

The fourth draft of Sockets and Pipes is now available on Leanpub! It includes chapter 10, Change, which deals with using STM to add a stateful component to the web server.

Another new thing: We just published the sockets-and-pipes library on Hackage to accompany the book.

It re-exports the modules that we use, and so it ought to serve as a handy collection of links to all the relevant API documentation. It should also make it a little easier to set up your local environment to do the exercises, since base and sockets-and-pipes should now be the only dependencies you need to install.

To reduce the number of libraries we need to rely on, the book no longer refers to the network-simple package. In previous drafts, network-simple was introduced at the end of chapter 5 to make use of its serve function. We now use our own serve function provided by the sockets-and-pipes library, which has a slightly different type signature more tailored to the book’s particular use case.

The next chapter will deal with sending HTTP message bodies in the “chunked” format that does not require determining the length of the entire message upfront. Then several chapters on parsing will follow, which will get us to a point where the server can read HTTP requests.

Please enjoy the TVars! They are one of my favorite unsung features of Haskell.

20 Feb 06:37

This GPT-3 Powered Demo Is The Future Of NPCs

mkalus shared this story from UploadVR.

The developer of Modbox linked together Windows speech recognition, OpenAI’s GPT-3 AI, and Replica’s natural speech synthesis for a unique demo: arguably one of the first artificially intelligent virtual characters.

Modbox is a multiplayer game creation sandbox with SteamVR support. It officially launched late last year after years of public beta development, though it’s still marked as Early Access. We first tried it back in 2016 for HTC Vive. In some ways Modbox was, and is, ahead of its time.

The developer’s recent test using two state of the art machine learning services – OpenAI’s GPT-3 language model and Replica’s natural speech synthesis – is nothing short of mind-blowing. Start at roughly 4 minutes 25 seconds to see the conversations with two virtual characters.

Microsoft, which invested $1 billion in OpenAI, has exclusive rights to the source code & commercial use of GPT-3, so this feature is unlikely to be added to Modbox itself. But this video demo is the best glimpse yet at the future of interactive characters. Future language models could change the very nature of game design and enable entirely new genres.

There is an uncomfortably long delay between asking a question and getting a response because GPT-3 and Replica are both cloud-based services. Future models running on-device may eliminate the delay. Google & Amazon already include custom chips in some smart home devices to cut the response delay for digital assistants.

Books, movies and television are character-centric. But in current video games & VR experiences you either can’t speak to characters at all, or can only navigate pre-written dialog trees.

Directly speaking to virtual characters – and getting convincing results no matter what you ask – was not thought possible until recently. But a recent breakthrough in machine learning makes this idea finally possible.

In 2017, Google’s AI division revealed a new approach to language models called Transformers. State of the art machine learning models had already been using the concept of attention to get better results, but the Transformer model is built entirely around it. Google titled the paper ‘Attention Is All You Need‘.

In 2018, Elon Musk backed startup OpenAI applied the Transformer approach to a new general language model called Generative Pre-Training (GPT), and found it was able to predict the next word in many sentences, and could answer some multiple choice questions.

In 2019, OpenAI scaled up this model by more than 10x in GPT-2. But they found that this “scaleup” dramatically increased the system’s capabilities. Given a few sentences of prompt, it was now able to write entire essays on almost any topic, or even crudely translate between languages. In some cases, it was indistinguishable from human. Due to the potential consequences, OpenAI initially decided not to release it, leading to widespread media coverage & speculation of the societal impacts of advanced language models.

GPT-2 had 1.5 billion parameters, but in June 2020 OpenAI again scaled up the idea to 175 billion in GPT-3 (used in this demo). GPT-3’s results are almost always indistinguishable from human writing.

Technically, GPT-3 has no real “understanding” – though the philosophy behind that word is debated. It can sometimes produce nonsensical or bigoted results – even telling someone to kill themself. Researchers will have to find solutions to these limitations, such as a “common sense check” mechanism, before they can be deployed in general consumer products.