home tags events about login

tedu rss

honk honcho. i do what i can.

tedu honked 14 Oct 2019 01:19
convoy: data:,electrichonkytonk-2GYk97qr29c16y5krR

Hierarchal filesystems are nice and all, but we should consider the possibility that other means of organizing information may be useful. When "I can efficiently drive around the filesystem with cd and ls" morphs from a skill into a fetish, that interferes with objective consideration of alternatives.

tedu honked 13 Oct 2019 23:05
convoy: data:,electrichonkytonk-mTzNfQP1p3j78gZmB8

Reminder that the <b> tag stands for Bring Attention To.

tedu honked 13 Oct 2019 20:12
convoy: data:,electrichonkytonk-n46Gj4z9WKwD6Ts2y5

If Apple cares so much about privacy, why don't they make an iPhone that doesn't have an IP?

tedu honked 13 Oct 2019 17:34
convoy: data:,electrichonkytonk-64gj49wgGVmwJ2l413

Just a snippet.

var flightdeck = make(map[string][]chan JunkError)

tedu bonked 13 Oct 2019 15:39
original: Thib@social.sitedethib.com
convoy: data:,electrichonkytonk-2QSz4kjxgPvk4Trqqh

@tedu @trwnh oh, I think I've got it
there might be a race condition if there are multiple reasons your account may be discovered or refreshed at around the same time (e.g. multiple boosts)
we have a lock to prevent data corruption and errors, but it may still perform more fetches than needed. I will have a look into fixing that!

tedu honked 13 Oct 2019 07:16
convoy: data:,electrichonkytonk-VR79wNc7glJ4w2t34q

Jortage looks like a cool project. Might be interesting to support, but probably not this week.

tedu honked 13 Oct 2019 06:14
convoy: data:,electrichonkytonk-32KH1FM63gR8f6Kvzn

We've hadooped the big data and the results are in. My trendiest hashtag is openbsd.

tedu bonked 13 Oct 2019 04:08
original: guenther@bsd.network
convoy: tag:bsd.network,2019-10-13:objectId=7724735:objectType=Conversation

sparc64 ASM and self-harm

sparc64 ASM and self-harm

Gaaaah! Kicked in the nards by the delay-slot!

(Debugging sparc64 ASM code and finally realized it wasn't working because I had moved a use of %o7 into a 'call' delay-slot ...which the 'call' instruction of course alters before the delay-slot is executed.)

tedu honked 13 Oct 2019 04:06
convoy: data:,electrichonkytonk-J8sS83NZY9DJWllkrz

CS 201 level format string here: "CPU%0*d: %*s"

tedu honked 13 Oct 2019 03:46
convoy: data:,electrichonkytonk-2QSz4kjxgPvk4Trqqh

Sigh. Mastodon can't cache for shit. Everytime an elephant that doesn't follow me sees one of my posts, it fetches the full profile data (plus followers, webfinger, outbox, avatar, etc.). It does this even if it fetched this info one minute ago. Repeatedly. Note the timestamps. Now multiple by 5x for all the other endpoints. - - [12/Oct/2019:23:01:23 -0400] "GET /u/tedu HTTP/1.1" 200 0 "" "http.rb/3.3.0 (Mastodon/3.0.0; +host)" - - [12/Oct/2019:23:02:19 -0400] "GET /u/tedu HTTP/1.1" 200 0 "" "http.rb/3.3.0 (Mastodon/3.0.0; +host)" - - [12/Oct/2019:23:03:11 -0400] "GET /u/tedu HTTP/1.1" 200 0 "" "http.rb/3.3.0 (Mastodon/3.0.0; +host)" - - [12/Oct/2019:23:05:20 -0400] "GET /u/tedu HTTP/1.1" 200 0 "" "http.rb/3.3.0 (Mastodon/3.0.0; +host)" - - [12/Oct/2019:23:11:43 -0400] "GET /u/tedu HTTP/1.1" 200 0 "" "http.rb/3.3.0 (Mastodon/3.0.0; +host)" - - [12/Oct/2019:23:25:05 -0400] "GET /u/tedu HTTP/1.1" 200 0 "" "http.rb/3.3.0 (Mastodon/3.0.0; +host)"

tedu honked 12 Oct 2019 21:09
convoy: data:,electrichonkytonk-fFZQbMLf6DTKmXDTbS

DZ: imminent wetness

DZ: imminent wetness

There's some sort of after dark ghost ship aqua art installation here this month, but about the only thing to see during the day is the warning sign.

Bring an umbrella

tedu honked 12 Oct 2019 14:51
convoy: data:,electrichonkytonk-c3V2Z7RdNMc3d3nG12

I released a snapshot of honk. The actual 0.8 release should some shortly after the end of Mastober, but there's a lot of changes bottled up that probably make life easier. Not to mention fun new toys!

Should be in the honk downloads directory.

Also upgraded honk.best to the snapshot.

tedu honked 12 Oct 2019 03:37
convoy: data:,electrichonkytonk-5zV4S38D4XTcT2R81W

People dropping unfree binaries on github with nothing more than a readme in the repo is peak disappointment.

tedu bonked 12 Oct 2019 03:18
original: flussence@nulled.red
convoy: tag:nulled.red,2019-10-12:objectId=12101395:objectType=Conversation

shame mastodon doesn't have a website like nitter

tedu honked 12 Oct 2019 00:37
convoy: data:,electrichonkytonk-xFLs34XrSL9y12V51M

Some tootles about captchas and stopgaps.


@mattblaze: CAPTCHAs were originally conceived as a stopgap; an inconvenience imposed on legitimate users until we find better solutions to automated bots. But now that they're being used to train commercial ML systems, we're likely stuck with them for a lot longer.

@mattblaze: The original idea was that CAPTCHAs force the adversary to do AI-hard research that would be useful on its own. But now they're giving the adversary the option to do something much more insidious: research how to automatically fool life-critical ML into being falsely trained.

@mattblaze: Are there safeguards against this? Maybe. Maybe not. But all the incentives are completely different from what the original CAPTCHA idea envisioned, with potentially much higher stakes.

@mattblaze: Anyway, leave it to the Internet to find creative ways to make bad ideas worse.

tedu bonked 12 Oct 2019 00:23
original: sungo@sungo.space
convoy: https://sungo.space/contexts/f6fb6cd6-be08-48e0-860a-74b76990b5d2

"negative latency" is a phrase amongst my people that translates to the more common phrase "ABSOLUTE TOTAL MADE UP CRAZYPANTS HORSESHIT"

tedu bonked 12 Oct 2019 00:19
original: AFresh1@bsd.network
convoy: tag:bsd.network,2019-10-11:objectId=7709031:objectType=Conversation

Oh, I say, I'll just go overboard and get a 24 port switch for home, then I'll never have to worry about running out.

Narrator: he was so very naive

tedu honked 11 Oct 2019 22:22
convoy: data:,electrichonkytonk-BYj265hg4rxyCT8Zr2

Es gibt unerwartet viel thinkpadwifitechsprachen im Zuführung.

tedu honked 11 Oct 2019 20:31
convoy: data:,electrichonkytonk-23CK969hPk12Q9l18B

This is unfortunate. #openbsd ppt(6) doesn't support utf-8 except with the -b flag.

tedu honked 11 Oct 2019 18:28
convoy: data:,electrichonkytonk-ZSLWhkw3229vy42Y9B

Today's science word: eutectic frigorific mixture

tedu bonked 11 Oct 2019 17:57
original: dredmorbius@mastodon.cloud
convoy: tag:mastodon.cloud,2019-10-11:objectId=86329379:objectType=Conversation

I've discovered the cause of the missing Mastodon star icons on toots (the "Fav" control): I'd disabled sites setting their own fonts in Firefox.

Re-enabling that and ... It's full of stars!

#MastoTips #Firefox #fonts

tedu bonked 11 Oct 2019 17:56
original: stsp@bsd.network
convoy: tag:bsd.network,2019-10-11:objectId=7703074:objectType=Conversation

I've been working on having 3-way (instead of 2-way) merge conflict markers in #gameoftrees and the results are quite nice so far.

Example (as posted to the mailing list today): https://stsp.name/3way-conflict.txt

The idea is copied from #svn which also does 3-way conflict markers by default nowadays.

tedu honked 11 Oct 2019 17:22
convoy: data:,electrichonkytonk-LPBt96g13fw3N714Z3

So I'm supposed to tap refresh but my options are start fresh or redownload. Which is it? #bezosware


tedu honked 11 Oct 2019 17:04
convoy: data:,electrichonkytonk-646xc3ZVNSw3h1t3t4

Bringing the pride crossing back to life.

Location: 39.948 -75.1623

Rainbow crosswalk half painted

tedu honked 11 Oct 2019 16:29
convoy: data:,electrichonkytonk-6qK67X3N189k7683L3

Configuring my editor to use emacs bindings for the left hand and vi bindings for the right hand.

tedu honked 11 Oct 2019 16:25
convoy: data:,electrichonkytonk-GfYcH66RpVbzDxd741

What really sparks joy about the goose poem is they managed to incorporate honking, bonking, and zonking, which are of course the three primary verbs in honk.

tedu bonked 11 Oct 2019 16:19
original: antifuchs@weirder.earth
convoy: tag:weirder.earth,2019-10-11:objectId=9542572:objectType=Conversation

A colleague showed this Untitled Goose Game-inspired poem to us (made by his wife)

the goose holding a pipe. Atop it is the following poem, inspired by e.a.poe's Raven: "once upon a midday dreary / as I garden, weak and weary / over many a quaint and curious carrot on my garden floor / while I planted, nearly zonking / suddenly there came a honking / as of someone gently bonking, bonking on the garden door / "tis some visotor", I muttered, "honking at my garden door-- only this and nothing more"

tedu bonked 11 Oct 2019 16:09
original: stsp@bsd.network
convoy: data:,electrichonkytonk-KSl8Xx5L53l875m87v

@tedu FYI, German spelling of this would be "Ungemach" and this word has a dedicated page in German Wikipedia

tedu honked 11 Oct 2019 15:51
convoy: data:,electrichonkytonk-KSl8Xx5L53l875m87v

Ongemak sounds like a good name for my next project.

tedu honked 11 Oct 2019 14:31
convoy: data:,electrichonkytonk-Hjsh7yytNHTyh3Z3zn

Hey there friends, PC Elephant here to remind you if somebody posts stuff you like and they're not running pleroma, you can "follow" them to see more. #justatip


tedu honked 11 Oct 2019 04:24
convoy: data:,electrichonkytonk-4pCFVS2CHGRTwf39M3

We're sorry but Funkwhale doesn't work properly without JavaScript enabled.

tedu bonked 11 Oct 2019 04:20
original: thomasfuchs@mastodon.social
convoy: tag:mastodon.social,2019-10-11:objectId=129222105:objectType=Conversation

I’m making Jalapeño Poppers… the most important ingredient is, contrary to popular opinion, latex gloves.

tedu bonked 11 Oct 2019 03:03
original: ky0ko@cybre.space
convoy: tag:cybre.space,2019-10-11:objectId=35292475:objectType=Conversation

i've always pronounced "ntsc" in my head as "netsync" but i've decided from now on it is "nut suck"

tedu bonked 11 Oct 2019 03:02
original: hackaday@botsin.space
convoy: tag:botsin.space,2019-10-10:objectId=21084860:objectType=Conversation

The Cutest Oscilloscope Ever Made

If you thought your handheld digital oscilloscope was the most transportable of your signal analyzing tools, then you’re in for a surprise. This oscilloscope made by [Mark Omo] measures only one square inch, with the ma… https://hackaday.com/2019/10/10/the-cutest-oscilloscope-ever-made/

Original tweet : https://twitter.com/hackaday/status/1182433939534864384

tedu bonked 11 Oct 2019 03:02
original: amic@nulled.red
convoy: tag:nulled.red,2019-10-11:objectId=12081507:objectType=Conversation

fun fact

DID YOU KNOW? Birds fly in a "V" formation because it stands for vengeance. Their dinosaur ancestors once ruled the earth. One day they will come for us.

tedu bonked 11 Oct 2019 03:00
original: kaniini@blog.dereferenced.org
convoy: missing-1237Cb1Zw4GnB53789

Demystifying Bearer Capability URIs

Demystifying Bearer Capability URIs

Historically, there has been a practice of combining URIs with access tokens containing sufficient entropy to make them difficult to brute force. A few different techniques have been implemented to do this, but those techniques can be considered implementation specific. One of the earliest and most notable uses of this technique can be observed in the Second Life backend APIs.

An example of a capability URL being used in the fediverse today would be in the way that Pleroma refers to ActivityPub objects and activities: https://socially.whimsic.al/objects/b05e883b-b66f-421b-ac46-c6018f539533 is a capability URL that allows access to a specific object.

However, while it is difficult for capability URLs to be brute forced due to containing tokens that have sufficient entropy to make guessing them expensive, they are have a serious flaw — since the access token is part of the resource being accessed, they tend to leak the access token in two ways:

  • Browser Referer headers
  • Server access and error logs

Since the usage of capability URLs has become widespread, a wonderful specification has been released by the IETF: OAuth 2.0. OAuth provides a possible solution in the form of bearer tokens, which can be passed around using an Authorization header.

Bearer Capability URIs (aka bearcaps) are essentially a construct which combines a resource with an access token that happens to grant some form of access to that resource, while keeping that access token out of band. Since the access token is out of band, it cannot be leaked in a Referer header or in a server log.

But what does a bearcap URI look like? It's actually quite simple. Let's build on the example URL I gave above — it's bearcap URI would be something like: bearcap:?u=https://socially.whimsic.al/notice/9nnmWVszgTY13FduAS&t=b05e883b-b66f-421b-ac46-c6018f539533.

Let's break this down into parts.

bearcap is the name of the URI scheme, and then that is further broken down into a pair of URI query parameters:

  • u is the URI that the supplied token happens to be able to access in some way
  • t is the access token itself

In this case, a client which wanted to consume this bearcap (say to fetch the object behind it) would make a GET request to the URI specified, with the token specified:

GET /notice/9nnmWVszgTY13FduAS HTTP/1.1
Host: socially.whimsic.al
Authorization: Bearer b05e883b-b66f-421b-ac46-c6018f539533
HTTP/1.1 200 OK

In a future post, we will go into how bearcap URIs can help to bring some aspects of capability-based security to ActivityPub.

tedu honked 11 Oct 2019 00:54
convoy: data:,electrichonkytonk-2752g116vX7zW7GLT8

I added an events page to #honk to accommodate all the paparazzi in the audience.

tedu honked 10 Oct 2019 22:36
convoy: data:,electrichonkytonk-j4f7R2L9s23Gr18Mdd

@write_as @matt I noticed some writefreely instances are federating with rather shortened object ids. At first I thought this was one instance misconfiguration, but reviewing some logs it seems to be happening quite a bit.

https://pencil.writefree.ly/api/posts/oz4isl4vah has only "id": "/api/posts/oz4isl4vah". This is of course not globally unique.

(There's some wiggle room in the spec regarding relative URIs, but in general I'd say they aren't very useful. I think this is a bug?)

tedu honked 10 Oct 2019 22:23
convoy: data:,electrichonkytonk-15fkrZsQCvRncJ7gP1

"id": "/api/posts/dddbu2ti0h"

So, yeah, that's not a great global identifiter.

tedu honked 10 Oct 2019 19:19
convoy: data:,electrichonkytonk-b5Qx9pz6Shxv8HkKVS

I haven't used a Mac desktop machine in eight or nine years, but this does not sound like easy to use.

On the other hand, my openbsd desktop experience has been almost strictly monotonic improvements.


tedu honked 10 Oct 2019 16:36
convoy: data:,electrichonkytonk-2t2cqh6gG67J35kS6Q

DZ: hole for men in a hole

DZ: hole for men in a hole

Location: 39.9496 -75.1662

Unfinished manhole

tedu honked 10 Oct 2019 14:51
convoy: data:,electrichonkytonk-GzKtPL55hV8B19W5Sy

DZ: doas main

DZ: doas main

This is the doas main function. You may not like it, but this is what syntax highlighting looks like. (Exact styling still TBD.)

main(int argc, char **argv)
const char *safepath = "/bin:/sbin:/usr/bin:/usr/sbin:"
const char *confpath = NULL;
char *shargv[] = { NULL, NULL };
char *sh;
const char *p;
const char *cmd;
char cmdline[LINE_MAX];
char mypwbuf[_PW_BUF_LEN], targpwbuf[_PW_BUF_LEN];
struct passwd mypwstore, targpwstore;
struct passwd *mypw, *targpw;
const struct rule *rule;
uid_t uid;
uid_t target = 0;
gid_t groups[NGROUPS_MAX + 1];
int ngroups;
int i, ch, rv;
int sflag = 0;
int nflag = 0;
char cwdpath[PATH_MAX];
const char *cwd;
char *login_style = NULL;
char **envp;


closefrom(STDERR_FILENO + 1);

uid = getuid();

while ((ch = getopt(argc, argv, "a:C:Lnsu:")) != -1) {
switch (ch) {
case 'a':
login_style = optarg;
case 'C':
confpath = optarg;
case 'L':
i = open("/dev/tty", O_RDWR);
if (i != -1)
exit(i == -1);
case 'u':
if (parseuid(optarg, &target) != 0)
errx(1, "unknown user");
case 'n':
nflag = 1;
case 's':
sflag = 1;
argv += optind;
argc -= optind;

if (confpath) {
if (sflag)
} else if ((!sflag && !argc) || (sflag && argc))

rv = getpwuid_r(uid, &mypwstore, mypwbuf, sizeof(mypwbuf), &mypw);
if (rv != 0)
err(1, "getpwuid_r failed");
if (mypw == NULL)
errx(1, "no passwd entry for self");
ngroups = getgroups(NGROUPS_MAX, groups);
if (ngroups == -1)
err(1, "can't get groups");
groups[ngroups++] = getgid();
if (sflag) {
sh = getenv("SHELL");
if (sh == NULL || *sh == '\0') {
shargv[0] = mypw->pw_shell;
} else
shargv[0] = sh;
argv = shargv;
argc = 1;

if (confpath) {
checkconfig(confpath, argc, argv, uid, groups, ngroups,
exit(1); /* fail safe */

if (geteuid())
errx(1, "not installed setuid");

parseconfig("/etc/doas.conf", 1);

/* cmdline is used only for logging, no need to abort on truncate */
(void)strlcpy(cmdline, argv[0], sizeof(cmdline));
for (i = 1; i < argc; i++) {
if (strlcat(cmdline, " ", sizeof(cmdline)) >= sizeof(cmdline))
if (strlcat(cmdline, argv[i], sizeof(cmdline)) >= sizeof(cmdline))

cmd = argv[0];
if (!permit(uid, groups, ngroups, &rule, target, cmd,
(const char **)argv + 1)) {
"failed command for %s: %s", mypw->pw_name, cmdline);
errc(1, EPERM, NULL);

if (!(rule->options & NOPASS)) {
if (nflag)
errx(1, "Authorization required");

authuser(mypw->pw_name, login_style, rule->options & PERSIST);

if ((p = getenv("PATH")) != NULL)
formerpath = strdup(p);
if (formerpath == NULL)
formerpath = "";

if (unveil(_PATH_LOGIN_CONF, "r") == -1)
err(1, "unveil");
if (rule->cmd) {
if (setenv("PATH", safepath, 1) == -1)
err(1, "failed to set PATH '%s'", safepath);
if (unveilcommands(getenv("PATH"), cmd) == 0)
goto fail;

if (pledge("stdio rpath getpw exec id", NULL) == -1)
err(1, "pledge");

rv = getpwuid_r(target, &targpwstore, targpwbuf, sizeof(targpwbuf), &targpw);
if (rv != 0)
err(1, "getpwuid_r failed");
if (targpw == NULL)
errx(1, "no passwd entry for target");

if (setusercontext(NULL, targpw, target, LOGIN_SETGROUP |
errx(1, "failed to set user context for target");

if (pledge("stdio rpath exec", NULL) == -1)
err(1, "pledge");

if (getcwd(cwdpath, sizeof(cwdpath)) == NULL)
cwd = "(failed)";
cwd = cwdpath;

if (pledge("stdio exec", NULL) == -1)
err(1, "pledge");

syslog(LOG_AUTHPRIV | LOG_INFO, "%s ran command %s as %s from %s",
mypw->pw_name, cmdline, targpw->pw_name, cwd);

envp = prepenv(rule, mypw, targpw);

/* setusercontext set path for the next process, so reset it for us */
if (rule->cmd) {
if (setenv("PATH", safepath, 1) == -1)
err(1, "failed to set PATH '%s'", safepath);
} else {
if (setenv("PATH", formerpath, 1) == -1)
err(1, "failed to set PATH '%s'", formerpath);
execvpe(cmd, argv, envp);
if (errno == ENOENT)
errx(1, "%s: command not found", cmd);
err(1, "%s", cmd);

tedu honked 10 Oct 2019 03:27
convoy: data:,electrichonkytonk-3TK47k7Z338RL391YX

Interesting side effect. I implemented a post collapser if the post length is too long, but it's based on total size of html bytes, not text. Since mentions expand like 10x, it indirectly serves as a hellthread filter too.

tedu honked 10 Oct 2019 02:31
convoy: data:,electrichonkytonk-j8B3TpdfMN6lBVFkt1

I saw this on twitter a few days ago, and thought it was some dumb ironic joke (fraudster: is this you? me: no. click. haha, great lulz) because threads are stupid (it's 2019 people, you don't need to pay by the byte to blog), but having seen it multiple times now and reading the rest of it, I guess it's kinda interesting.


@DigitalLawyer: Oooof. Was just subjected to the most credible phishing attempt I've experienced to date. Here were the steps: 1) "Hi, this is your bank. There was an attempt to use your card in Miami, Florida. Was this you?" Me: no.

@DigitalLawyer: 2) "Ok. We've blocked the transaction. To verify that I am speaking to Pieter, what is your member number?" Me: <gives member number> (that number, by itself, is useless).

@DigitalLawyer: 3) "We've sent a verification pin to your phone." ~ Gets verification pin text from bank's regular number ~ Me: <reads out the pin>

@DigitalLawyer: 4) "Ok. I am going to read some other transactions, tell me if these are yours. ~ Reads transactions ~" Me: Yes. These are all legitimate transactions I made

@DigitalLawyer: 5) "Thank you! We now want to block the pin on your account, so you get a fraud alert when it is used again. What is your pin?" Me: Are you effing kidding me, no way.

@DigitalLawyer: 6) Ok! But than we can't block your card Me: that is bs. ~ hangs up, calls the fraud department of bank ~

@DigitalLawyer: --> Once I gave my member number, the attacker used the password reset flow to trigger a text message from the bank. --> They used this to gain access to the account. --> Then read some of my transactions to give the call more credibility

@DigitalLawyer: --> Needed the pin to send money, failed at that step. --> Everything before the "what is your pin" seemed totally legitimate. English was perfect. The bank verification code, sent by the expected number, tricked me. --> The asking for my pin over the phone... not so much.

@DigitalLawyer: Stay safe out there people. And now... joyfully resetting all my passwords, filing a police report, getting additional fraud detection in place. Never a dull moment!

tedu honked 09 Oct 2019 21:53
convoy: data:,electrichonkytonk-3Fd122WbRn3lpr3t61

Native pleroma client written in WxErlang when?

tedu honked 09 Oct 2019 20:34
convoy: data:,electrichonkytonk-cZdmR1w5ZSCnsw32Zv

"Troubles with Bro"


tedu honked 09 Oct 2019 20:28
convoy: data:,electrichonkytonk-hxD9C4Fxh6clGSkRQ7

I like using a tiling window manager so I can splitscreen my browser and read one medium article eviscerating facebook for not censoring enough and another medium article eviscerating facebook for censoring too much at the same time.

tedu bonked 09 Oct 2019 14:06
original: Dee@fedi.underscore.world
convoy: https://fedi.underscore.world/contexts/725213ca-b409-43ba-8fa7-8b1cf9921017

It's 2019 and I keep forgetting that CLI tools can now and regularly do have spying ("analytics") built in.

tedu honked 09 Oct 2019 13:39
convoy: data:,electrichonkytonk-6vgNWMJNx1PZNW3j22

Hey there friends, PC Elephant here to remind you if there's a post in your feed you don't like, you can scroll past it, but keep your eyes closed if you scroll back up or refresh the page so you don't see it again. #justatip


tedu bonked 09 Oct 2019 01:01
original: wxcafe@social.wxcafe.net
convoy: tag:social.wxcafe.net,2019-10-08:objectId=13734826:objectType=Conversation

OH @ work: load average: 1645.50, 1597.72, 1407.9


tedu bonked 09 Oct 2019 00:53
original: clacke@libranet.de
convoy: tag:cybre.space,2019-10-08:objectId=35147374:objectType=Conversation

@grainloom I haven't liked rocket.chat since that time I visited their homepage and their background animation ate all my RAM and/or CPU. That was possibly the first time I heard my 2013 MBP's fans go at full power.

tedu honked 08 Oct 2019 22:54
convoy: data:,electrichonkytonk-cxDp81cgXypyKK4PFz

Woah, hot off the #freedomball news wire, the double doinker is back in the NFL.

tedu honked 08 Oct 2019 22:42
convoy: data:,electrichonkytonk-lSvBMCw3m3QQ1xGT3T

DZ: chronolarceny

DZ: chronolarceny

Schuylkill steal an hour from your day?

tedu honked 08 Oct 2019 20:53
convoy: data:,electrichonkytonk-kNLqd5pdrNg16973zw

Hrmm, something in pleroma's css makes it display inline img as display: block? And not default inline? But I can't find it.

tedu honked 08 Oct 2019 19:17
convoy: data:,electrichonkytonk-nZ1TX238XGLZlN8mQt

Me: My eyes hurt every time I look at a pleroma sql query.

Ophthalmologist: Don't do that.

tedu bonked 08 Oct 2019 15:49
original: darius@friend.camp
convoy: tag:friend.camp,2019-10-08:objectId=3268341:objectType=Conversation

We have some people on Friend Camp who *almost never* post federated, and that's okay. Their presence here helps keep other people who *do* federate engaged and enjoying their time on Friend Camp!

tedu honked 08 Oct 2019 06:41
convoy: data:,electrichonkytonk-BlTYGL915YMrmLstt7

So that was a weird one... social.firc.de just bombed me with a bunch of messages signed with the wrong keys...

tedu bonked 08 Oct 2019 02:14
original: sean@social.deadsuperhero.com
convoy: https://social.deadsuperhero.com/contexts/2b65ca83-fc0c-4328-a3da-b2a6f7b68de3

Does anyone know of a good FOSS alternative to Scrivener? I've heard Scrivener itself is a great tool for writers that are concerned about managing multiple chapters and narratives, but I was curious about whether there were any good alternatives out there.

tedu honked 08 Oct 2019 01:12
convoy: data:,electrichonkytonk-SdNrF4m44GMBNdH7Kw

Six months ago I'd never even heard of wasabi. Halcyon days of yore.

tedu honked 07 Oct 2019 22:36
convoy: data:,electrichonkytonk-Y58p314D9KnhVkpN57

For example, although the pattern ‘^(.*)\1{14}(.*)\2{13}$’ matches only lines whose lengths can be written as a sum 15x + 14y for nonnegative integers x and y, the pattern matcher does not perform linear Diophantine analysis and instead backtracks through all possible matching strings, using an algorithm that is exponential in the worst case.

tedu honked 07 Oct 2019 20:07
convoy: data:,electrichonkytonk-sG996Z2Y623N4rgmNd

I guess "you need to distress" is something you would say to somebody taking things too easy.

tedu honked 07 Oct 2019 17:30
convoy: data:,electrichonkytonk-44MbkHM9k6c2PK49B3

Not sure how I achieved this, but the #honk menu is now precisely sized to fit my browser window. Every item added after this means an item must be removed.

the honk menu is a beautiful sight to behold

tedu bonked 07 Oct 2019 14:44
original: Dee@fedi.underscore.world
convoy: https://fedi.underscore.world/contexts/200a47a7-44c4-4e53-8b47-8c951cf12abe

what if we build the houses out of the avocados

tedu honked 07 Oct 2019 14:14
convoy: data:,electrichonkytonk-X4zDWMHX1X1FZs6tYY

Hey there friends, PC Elephant here to remind you we've got a plan and everything is coming together just the way we envisioned it. #justatip