Home

Thoughts

10:14 PM | 2020-06-22
Also this exists and I'm absolutely in love https://text.npr.org
10:14 PM | 2020-06-22
I won't call anyone out, but I'm just feeling disappointed at the number of otherwise lovely text-only websites I encountered over the weekend which, for no good reason, look terrible on phones!

It's 2020 -- we're gonna read your old-school website on a phone and if you'd just add like 3 lines of CSS and that second meta tag then the experience will be so much better for us (:
10:09 PM | 2020-06-22
Over the weekend, I wrote an entire CSS framework! It's called "hello and welcome to my brutalist web page which is moderately readable on any device"

<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>

html {
  font-size: 16px;
}

body {
  font-family: sans-serif;
  font-size: 1.1em;
  line-height: 1.5;
  padding: 1%;
  max-width: 60ch;
  margin: auto;
}

h1,h2,h3,h4,h5,h6 {
  font-family: serif;
}

</style>
<title>Whatever</title>
</head>
<body>
...
</body>
</html>

Instructions for use: copy/paste into a text editor, put your html where the dots are, put it on the internet.
10:01 PM | 2020-06-22
I went to the grocery store this evening, and this was the first time it's been normal since covid.

They had all the cleaning things, lots of all of the kinds of food, the toilet paper was decidedly normal, etc.
05:44 PM | 2020-06-22
grafana why
03:18 PM | 2020-06-21
https://maren.hup.is/thoughts/#374945603932

Thoughts tracks the main branch now rather than tagged releases!

Also master > main

It's funny, because I was so stuck on the thought of "what do I need to do to get this to 1.0?" The reason I couldn't answer that question was because, as far as I could tell, it's already there!

Tagging was mostly useful while I was making big changes and frequently breaking things, anyway. Now that's done, so tracking the main branch is more reasonable.

One tagged release will need to stay up, to make it possible for already-installed-instances of Thoughts to automatically migrate from the previous release-tags update logic to the new "just track main" update logic. Oh well!
10:04 PM | 2020-06-19
OK I'm not "writing a PDF document" -- I'm just writing a document, and libreoffice can export a PDF.

Point being, in a world where lots of my engagement with "write words and then receive a standalone document" is in latex, HTML, or markdown, this actually feels refreshing.
09:56 PM | 2020-06-19
I'm writing a PDF document in libreoffice and it's great.

Also, trying to figure out what needs to happen before Thoughts can become 1.0 and I'm struggling.

Maybe it's time to do away with tagged releases? Thoughts just tracks the main branch?
11:44 AM | 2020-06-16
I would love to see Twitter but with a 1000 character limit, so here's a 1000 character post. I'm deciding what to talk about as I type, so apologies in advance.

I could try and expound on all the things that are bad about twitter, but I won't because we all already know them. Ultra-short posts mean that the platform makes nuanced engagement very hard. Short posts also empower people to say things that deserve to be refuted, in a context where it's impossible to refute things.

Mastodon has a 500 character limit, last I checked. I think this isn't enough. But Mastodon doesn't financially benefit from higher engagement with the platform. Incendiary, controversial, or blatantly -ism-filled content that can't be refuted drives engagement. And Twitter makes money if it has more engagement.

I think it's not unreasonable to say that Twitter is the collective human meta at this moment. As such, I genuinely believe it has a moral obligation to not be this way.

This is a 1000 character post.
11:11 AM | 2020-06-15
This Supreme Court news is so great wtf https://www.npr.org/2020/06/15/863498848/supreme-court-delivers-major-victory-to-lgbtq-employees
07:16 PM | 2020-06-14
OK, I just cut what might be a feature-complete version of Thoughts! As always, you can check it out at https://github.com/marenbeam/thoughts , and you can download the latest release from https://github.com/marenbeam/thoughts/releases
07:05 PM | 2020-06-14
Testing timestamp handling while using the preview command
06:12 PM | 2020-06-14
ok this is a thought i'm previewing while I write it

OK WOW this seems to be working. Let's write a codeblock

not a real codeblock

though

Had to come back for a final edit
06:10 PM | 2020-06-14
about test ~preview~

much excite :)
05:25 PM | 2020-06-14
testing testing yup
07:44 AM | 2020-06-13
looking at the default css for the first time
12:16 AM | 2020-06-12
ty https://maren.hup.is/thoughts/#285669675332
12:03 AM | 2020-06-12
please be actually fixed please
11:58 PM | 2020-06-11
Hopefully fixed.
11:56 PM | 2020-06-11
Oh. It clobbered my CSS.
11:55 PM | 2020-06-11
I'm doing some late-night thoughts work.
09:47 AM | 2020-06-08
I hope so badly that something big and real comes of this <3
05:18 PM | 2020-06-01
I've been having to work on a boring thing at work for a while, and I just learned that I can stop workin on that boring thing for a bit. A+!
09:20 PM | 2020-05-31
I never expected to write a long-form essay for my blog but here we are?
06:11 PM | 2020-05-31
New spot?
08:23 AM | 2020-05-30
Happy Saturday :(
12:07 PM | 2020-05-29
Database monitoring:
- Actually hard?
- Just not written about very much?
- A fools errand? :P
09:23 AM | 2020-05-29
Does this produce an error?
09:21 AM | 2020-05-29
Another doozy of a bug vanquished!

This one wasn't a bug so much as me not understanding that diff actually has a non-zero exit status if the two files aren't the same, and then not being able to figure out both how to handle it and how to dump the diff to the console.

But now it's working!
10:32 PM | 2020-05-28
one more time :P
10:24 PM | 2020-05-28
~fonts~
08:41 PM | 2020-05-28
padding.
08:38 PM | 2020-05-28
"thoughts tries to be more visually friendly."

CANCELLED hello brutalism I'm in love <3
09:09 AM | 2020-05-28
Wow. Automatic weird curly apostrope rather than regular apostrophe on iOS was greaking txti markdown!

I turned that off on iOS -- why would iOS default to a fancy single apostrophe rather than the regular apostrophe that every other keyboard in the world uses
08:08 AM | 2020-05-28
I think the design of thoughts was heavily influenced by a lot of the same things: prioritize content, prioritize simplicity, prioritize low-weight web pages.

On the weight front, it is notable that a given thoughts page will always only get bigger. Gzip is eventually a hard requirement for the server, and probably eventually (once a page gets big enough) Brotli https://en.wikipedia.org/wiki/Brotli , since it squeezes out even more compression than gzip.

If you're interested, here's the RFC: https://tools.ietf.org/html/rfc7932

OK but this isn't about Brotli. Light web pages are good. And they can look good too. I do think that that's where thoughts and txti differ a bit. Txti embraces aesthetic brutalism and prioritizes accessibility (of creation and deployment) above all other things. thoughts tries to be more visually friendly, and is obviously very different in that it's not a managed platform.

I really do think that being able to put text on the internet is just a very important thing, and I love thinking about what the tech infrastructure behind such things looks like. I would absolutely love to know how txti runs their platform.
07:57 AM | 2020-05-28
OK, I'm officially convinced that http://txti.es is one of the best things on the whole internet.
01:12 AM | 2020-05-27
CSS tests
01:09 AM | 2020-05-27
Wow, a real doozy of a bug I'll tell ya.
10:49 PM | 2020-05-26
But what is spaghetti, like, really?
Is it a state of mind? A way of life?
10:45 PM | 2020-05-26
Uh oh. I may not be eating spaghetti at my keyboard, but I've certainly made spaghetti at my keyboard!
10:43 PM | 2020-05-26
Here's that code I was talking about. It's some of the source from thoughts, minus the extensive comments I left for future-me :)

tail -c 1 "$rand".txt | read -r _ || echo >> "$rand".txt
awk -f "$stuffDir"/bin/parse.awk "$rand".txt > temp.txt && mv temp.txt "$rand".txt
br=$(tail -c 5 "$rand".txt)
if [ "$br" = '<br>' ]; then
    sed '$ s/.\{4\}$//' "$rand".txt > temp.txt && mv temp.txt "$rand".txt
fi
thought=$(cat "$rand".txt)
now=$(date +"%I:%M %p | %Y-%m-%d")
dateHash=$(date | cksum | tr -d ' ')
blob="<section class=\"thought\"><div class=\"thought-date\"><a class=\"thought-date\" id=\"$dateHash\" href=\"#$dateHash\">
$now</a></div><div class=\"thought\">
$thought
</div></section>
"
git pull
echo "$blob" | cat - .rawthoughts.html > "$dateHash".html && mv "$dateHash".html .rawthoughts.html
cat .head.html .rawthoughts.html | cat - .foot.html > thoughts.html
10:40 PM | 2020-05-26
No, I'm not eating spaghetti at my keyboard. That would be gross!

Haha. ha.

Anyway, you can read about spaghetti here: https://en.wikipedia.org/wiki/Spaghetti
10:28 PM | 2020-05-26
Uh oh. I may not be eating spaghetti at my keyboard, but I've certainly made spaghetti at my keyboard!
10:26 PM | 2020-05-26
Anyway, here's that code I was talking about. It's some of the main logic in thoughts, minus the extensive comments I left for future-me :)

tail -c 1 "$rand".txt | read -r _ || echo >> "$rand".txt
awk -f "$stuffDir"/bin/parse.awk "$rand".txt > temp.txt && mv temp.txt "$rand".txt
br=$(tail -c 5 "$rand".txt)
if [ "$br" = '<br>' ]; then
    sed '$ s/.\{4\}$//' "$rand".txt > temp.txt && mv temp.txt "$rand".txt
fi
thought=$(cat "$rand".txt)
rm "$rand".txt
now=$(date +"%I:%M %p | %Y-%m-%d")
dateHash=$(date | cksum | tr -d ' ')
blob="<section class=\"thought\"><div class=\"thought-date\"><a class=\"thought-date\" id=\"$dateHash\" href=\"#$dateHash\">
$now</a></div><div class=\"thought\">
$thought
</div></section>
"
git pull
echo "$blob" | cat - .rawthoughts.html > "$dateHash".html && mv "$dateHash".html .rawthoughts.html
cat .head.html .rawthoughts.html | cat - .foot.html > thoughts.html
10:17 PM | 2020-05-26
No, I'm not eating spaghetti at my keyboard. That would be gross!

Haha. ha.
10:15 PM | 2020-05-26
Wow, this spaghetti is incredible.
09:45 PM | 2020-05-26
this is the testing words
no break between that ^^ and this

ok that one was a break. here's some code after a break

awk -f "$stuffDir"/bin/parse.awk "$rand".txt > temp.txt && mv temp.txt "$rand".txt
# get the last 4 characters from the file
# if they are "<br>", delete them.
br=$(tail -c 5 "$rand".txt)
if [ "$br" = '<br>' ]; then
    sed '$ s/.\{4\}$//' "$rand".txt > temp.txt && mv temp.txt "$rand".txt
fi

thought=$(cat "$rand".txt)
rm "$rand".txt

now=$(date +"%I:%M %p | %Y-%m-%d")
dateHash=$(date | cksum | tr -d ' ')
blob="<section class=\"thought\"><div class=\"thought-date\"><a class=\"thought-date\" id=\"$dateHash\" href=\"#$dateHash\">
$now</a></div><div class=\"thought\">
$thought
</div></section>
no break above me

break. let's see what happens
09:42 PM | 2020-05-26
this is the testing words
no break between that ^^ and this

ok that one was a break. here's some code after a break

awk -f "$stuffDir"/bin/parse.awk "$rand".txt > temp.txt && mv temp.txt "$rand".txt
# get the last 4 characters from the file
# if they are "<br>", delete them.
br=$(tail -c 5 "$rand".txt)
if [ "$br" = '<br>' ]; then
    sed '$ s/.\{4\}$//' "$rand".txt > temp.txt && mv temp.txt "$rand".txt
fi
thought=$(cat "$rand".txt)
rm "$rand".txt
 
now=$(date +"%I:%M %p | %Y-%m-%d")
dateHash=$(date | cksum | tr -d ' ')
blob="<section class=\"thought\"><div class=\"thought-date\"><a class=\"thought-date\" id=\"$dateHash\" href=\"#$dateHash\">
$now</a></div><div class=\"thought\">
$thought
</div></section>
no break above me

break. let's see what happens
09:41 PM | 2020-05-26
this is the testing words
no break between that ^^ and this

ok that one was a break. here's some code after a break

awk -f "$stuffDir"/bin/parse.awk "$rand".txt > temp.txt && mv temp.txt "$rand".txt
# get the last 4 characters from the file
# if they are "<br>", delete them.
br=$(tail -c 5 "$rand".txt)
if [ "$br" = '<br>' ]; then
    sed '$ s/.\{4\}$//' "$rand".txt > temp.txt && mv temp.txt "$rand".txt
fi
thought=$(cat "$rand".txt)
rm "$rand".txt
now=$(date +"%I:%M %p | %Y-%m-%d")
dateHash=$(date | cksum | tr -d ' ')
blob="<section class=\"thought\"><div class=\"thought-date\"><a class=\"thought-date\" id=\"$dateHash\" href=\"#$dateHash\">
$now</a></div><div class=\"thought\">
$thought
</div></section>
no break above me

break. let's see what happens
08:24 PM | 2020-05-26
test
test
test
08:22 PM | 2020-05-26
test

test

test

test

test

test

test
08:21 PM | 2020-05-26
test

test

test
08:16 PM | 2020-05-26
test
test
test
07:48 PM | 2020-05-26
Anyway, back to this shell program I've been working on.
First of all, shout out to the best AWK guide on the whole internet from Bruce Barnett -- thanks Bruce! You can check out his AWK and other guides at https://www.grymoire.com/Unix/Awk.html
Without that guide, none of this mess would be possible:
# If this thought doesn't have a trailing newline, add one
tail -c 1 "$rand".txt | read -r _ || echo >> "$rand".txt

# replace some newlines with 
# and convert codeblock tag into real one # and linkify things outside of codeblocks awk -f "$stuffDir"/bin/parse.awk "$rand".txt > temp.txt && mv temp.txt "$rand".txt # get the last 4 characters from the file # if they are "
", delete them. br=$(tail -c 5 "$rand".txt) if [ "$br" = '
' ]; then sed '$ s/.\{4\}$//' "$rand".txt > temp.txt && mv temp.txt "$rand".txt fi thought=$(cat "$rand".txt) rm "$rand".txt now=$(date +"%I:%M %p | %Y-%m-%d") dateHash=$(date | cksum | tr -d ' ') blob="
$thought
"
This ^^ is some of the main "make a new post" logic from thoughts. It's certainly not perfect, but it seems to be working well enough at the moment!
06:13 PM | 2020-05-26
OK, sure -- probably someone wants a saucy keyboard.
06:12 PM | 2020-05-26
No, I'm not eating spaghetti at my keyboard. That would be gross!
Haha! Ha.
No one wants a saucy keyboard :P
06:10 PM | 2020-05-26
Wow this spaghetti is incredible.
07:10 AM | 2020-05-26
another test post test post
bolddddd and italicsssss

and of course a fun

code

block!
01:11 PM | 2020-05-25
css check check
01:10 PM | 2020-05-25
test test
01:07 PM | 2020-05-25
check check
12:14 PM | 2020-05-25
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Nam aliquam ligula vitae massa efficitur pulvinar.

Vivamus turpis nisi, vulputate ultricies suscipit ut, placerat sed metus. Integer non fermentum quam. Integer nec sapien rutrum massa rhoncus egestas venenatis eu felis. Vestibulum ex justo, fringilla sollicitudin pharetra eu, vestibulum vitae tellus. Proin pellentesque, magna eu facilisis feugiat, dolor magna eleifend enim, et hendrerit ipsum nunc quis quam.

Donec mollis enim sed elit tempus, eget tempor enim hendrerit.
Nullam vitae mi mollis, condimentum sapien eget, venenatis justo.
In ornare justo a varius elementum. Suspendisse non feugiat nisl. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae.

Phasellus sit amet dolor pharetra, iaculis sem at, pellentesque eros. Cras sed pellentesque diam. Phasellus lacinia neque cursus massa interdum tincidunt. Phasellus suscipit commodo ipsum et egestas.

MIC CHECK ONE TWO
11:52 AM | 2020-05-25
git stuff
09:03 AM | 2020-05-25
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Nam aliquam ligula vitae massa efficitur pulvinar.

Vivamus turpis nisi, vulputate ultricies suscipit ut, placerat sed metus. Integer non fermentum quam. Integer nec sapien rutrum massa rhoncus egestas venenatis eu felis. Vestibulum ex justo, fringilla sollicitudin pharetra eu, vestibulum vitae tellus. Proin pellentesque, magna eu facilisis feugiat, dolor magna eleifend enim, et hendrerit ipsum nunc quis quam.
Donec mollis enim sed elit tempus, eget tempor enim hendrerit.
Nullam vitae mi mollis, condimentum sapien eget, venenatis justo.
In ornare justo a varius elementum. Suspendisse non feugiat nisl. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae.
Phasellus sit amet dolor pharetra, iaculis sem at, pellentesque eros. Cras sed pellentesque diam. Phasellus lacinia neque cursus massa interdum tincidunt. Phasellus suscipit commodo ipsum et egestas.
09:03 AM | 2020-05-25
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Nam aliquam ligula vitae massa efficitur pulvinar.

Vivamus turpis nisi, vulputate ultricies suscipit ut, placerat sed metus. Integer non fermentum quam. Integer nec sapien rutrum massa rhoncus egestas venenatis eu felis. Vestibulum ex justo, fringilla sollicitudin pharetra eu, vestibulum vitae tellus. Proin pellentesque, magna eu facilisis feugiat, dolor magna eleifend enim, et hendrerit ipsum nunc quis quam.
Donec mollis enim sed elit tempus, eget tempor enim hendrerit.
Nullam vitae mi mollis, condimentum sapien eget, venenatis justo.
In ornare justo a varius elementum. Suspendisse non feugiat nisl. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae.
Phasellus sit amet dolor pharetra, iaculis sem at, pellentesque eros. Cras sed pellentesque diam. Phasellus lacinia neque cursus massa interdum tincidunt. Phasellus suscipit commodo ipsum et egestas.
08:57 AM | 2020-05-25
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Nam aliquam ligula vitae massa efficitur pulvinar.

Vivamus turpis nisi, vulputate ultricies suscipit ut, placerat sed metus. Integer non fermentum quam. Integer nec sapien rutrum massa rhoncus egestas venenatis eu felis. Vestibulum ex justo, fringilla sollicitudin pharetra eu, vestibulum vitae tellus. Proin pellentesque, magna eu facilisis feugiat, dolor magna eleifend enim, et hendrerit ipsum nunc quis quam.
Donec mollis enim sed elit tempus, eget tempor enim hendrerit.
Nullam vitae mi mollis, condimentum sapien eget, venenatis justo.
In ornare justo a varius elementum. Suspendisse non feugiat nisl. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae.
Phasellus sit amet dolor pharetra, iaculis sem at, pellentesque eros. Cras sed pellentesque diam. Phasellus lacinia neque cursus massa interdum tincidunt. Phasellus suscipit commodo ipsum et egestas.
08:51 AM | 2020-05-25
the vibe
08:51 AM | 2020-05-25
the look
08:51 AM | 2020-05-25
I'd like to see a series of short posts
08:50 AM | 2020-05-25
I'm gonna start using lorem ipsum sorry not sorry
08:20 AM | 2020-05-25
ok so there's a problem where if you have inline code
sitting over a code block without a newline
then the background colors elide together.
let's see if we can fix that in a nice way
mic check one two
11:44 PM | 2020-05-24
OK so this has really been a doozy
But I do think we're getting somewhere

Here's the code:
yaya it's code
1+1 is wow
etc

And honestly, there ya have it folks
11:32 PM | 2020-05-24
woof
11:20 PM | 2020-05-24
code code code
    code code
code
11:16 PM | 2020-05-24
WOW i think it's working

sdjfhd
sdofhsoijg
    oriwoiu    oirwoiegoiweg woeitwoeigoiwegoiw     woeiwoeioewigowe   weoiweogoiw

break tag?
11:14 PM | 2020-05-24
sheesh! that was a silly bug.
code
code
11:14 PM | 2020-05-24
test test
11:10 PM | 2020-05-24
210986349532.txt
11:08 PM | 2020-05-24
107273022032.txt
11:04 PM | 2020-05-24
ok once more
code wow ok this one's gona be long so we can double check that weird length bug
10:58 PM | 2020-05-24
ok let's see how formatting turns out if I do a reasonable thing
and put a space between my code block and this text

code
code
code
10:56 PM | 2020-05-24
I will be amazed if things
seem to be working. Let's see!
this is code
yep yep yep
    yep yep
        yep
wow
that was it!
03:27 PM | 2020-05-24
I understand the problem!

Unsurprisingly, it's that I didn't know an HTML thing :')

I'm tellin' ya. Browsers were a mistake :D
03:13 PM | 2020-05-24
Need to work on a little mobile bug.
it involved word wrap breaking on mobile in pre tags. side benefit -- this will double check
some of the parsing that awk is doing too.
02:57 PM | 2020-05-24
OK, it should now be possible to do a number of new things! Among them:

*express* yourself with italics, bold, or even both.

You can put some inline code in here and it'll look pretty OK!
You can even put a block of code
    formatted however
        tabs or spaces? I don't care I'm a computer program.

  indeed.
and even when you do that
it shouldn't mess up the stuff that comes after it
<3
02:53 PM | 2020-05-24
OK wish me luck

02:13 PM | 2020-05-24
WOW -- ~thoughts~ got a lot more stars really fast. Time to cut some panic-releases :P

10:12 PM | 2020-05-23
I'd say I'm surprised that my awk kludge isn't working but I'm not :P

12:21 PM | 2020-05-23
OK, I think I've figured out a way forward that I feel good about, and by extension it decreases the scope of capabilities that thoughts has (not supporting much markdown -- or any, really).

This is probably good. The solution involves still turning newlines into break tags, but only in some circumstances.

I think it's important for this particular tool that newlines in the input are represented as newlines in the output. Since HTML treats newlines the way it does, this means you have to shove break in there, or alternatively put every post inside of a pre tag. The pre tag option is a non-starter, because it would have way too many other formatting side-effects.

The plus side of *all* this is that it clarifies what "done" is for this program. That's great -- I think I needed that :P

09:26 AM | 2020-05-23
Today I Learned: forcibly converting all newlines to break tags in ~thoughts~ has some...plan-ruining side-effects.

Ya can't parse markdown if every newline gets turned into a break.

Woof. I need more coffee.

11:48 AM | 2020-05-22
Unnecessary pagination when looking at lists of resources in the AWS console.

Why.

08:04 AM | 2020-05-22
What a great morning :)

12:02 PM | 2020-05-22
Wowww

12:01 PM | 2020-05-22
First post from Alpine in Vagrant?

11:46 AM | 2020-05-22
Wow OK things are working! Alpine is next.

11:44 AM | 2020-05-22
First test post from OpenBSD in Vagrant?

06:57 AM | 2020-05-22
Good morning! This morning, I'm going to do some ~thoughts~ testing on OpenBSD, just to see how everything behaves.

I've been using shellcheck --shell=ksh during development, but surely that doesn't tell us the whole story.

All my personal computers use Debian, so I'll be using vagrant for this.

07:08 PM | 2020-05-21
Aaaaand a few point releases cut because there were immediately bugs! Lol.

06:57 PM | 2020-05-21
release cut!

06:20 PM | 2020-05-21
Time to cut a release?

04:45 PM | 2020-05-21
Just posting to sync a local CSS fix :)

04:42 PM | 2020-05-21
thoughts has gotten a lot of new features in the last few days, and I'm really excited to cut another "release" tonight :D

It feels funny to refer to them as releases, first because these are still all 0.x releases, and second because I'm mostly disregarding the semver rules (one friend told me that everything below 1.x doesn't have to follow any real rules and I just believed her)

09:38 AM | 2020-05-21
good morning! I definitely didn't get enough sleep, but I did get to have a lovely phone call with a friend this morning :)

01:49 AM | 2020-05-21
it's so late!

07:40 PM | 2020-05-20
I'm so glad there's a free font CDN that serves the Liberation family now!

Maybe there already was. But if so, I hadn't found it. It's https://fonts.xz.style/

05:11 PM | 2020-05-20
apparently vscode doesn't default to including a newline at EOF?

This seems like...unacceptably unusual behavior compared to all other editors?

It's a feature you can enable. But you still have to enable it?

11:31 AM | 2020-05-20
nohup

11:29 AM | 2020-05-20
hup

11:20 AM | 2020-05-20
the weather might be warming back up today! That's very exciting.

I'm looking forward to arriving fully at "summer"

09:19 AM | 2020-05-20
sed is fun, but I'm ready to get to the part where we try and parse markdown without writing a parser :P

09:07 AM | 2020-05-20
so much sed this morning

09:06 AM | 2020-05-20
good morning!

08:23 AM | 2020-05-19
more date futzing -- but this time not format, just size :)

07:56 AM | 2020-05-19
And some date futzing

07:48:55 AM | 2020-05-19
OK, should be fixed now :)

07:47:16 AM | 2020-05-19
woops!

07:41:55 AM | 2020-05-19
Good morning! This morning's ~thoughts~ work is CSS related.

Today I learned that HTML5 has inline italics and bold tags -- very useful.

11:59:54 AM | 2020-05-18
No POSIX filesystem hierarchy standard?

09:01:35 AM | 2020-05-18
ugh. this is great. I really wish I'd become a ~shell hacker~ like, 15 years sooner

08:58:30 AM | 2020-05-18
alright, first post from what might be the next point release of thoughts

maximum portable. such posix

10:10:50 PM | 2020-05-17
too bad I have to do the dishes before going to bed. That might be the only bad part of my whole weekend :P

10:05:45 PM | 2020-05-17
happy sunday! I had a good weekend, and I hope you did too <3

08:46:45 PM | 2020-05-17
so the primary lift for thoughts right now is "make it portable." What does that mean?

It means that the shell code should run on any POSIX shell -- sh, dash, ksh, bash, all of them. That means there's a lot of very convenient (and easy to miss!) bash features that we can't use.

It means that the coreutils invoked to do things like "write the date" or "replace this character with something else" or "copy this file to another place" must use a subset of available features that's supported on all unix systems. The specification is here: https://pubs.opengroup.org/onlinepubs/9699919799/idx/utilities.html

Tracking down all these edgecases and figuring out how to keep everything as POSIXy as possible has turned out to be ~one of the most fun problems I've ever had to solve~

07:58:16 PM | 2020-05-17
check check

Sunday | 2020-05-17 | 07:54:48 PM
OK i was wrong. but now they actually should. and also a slightly different date.

look ok I promise that *tomorrow* i will find a better development workflow for this than torching my own thoughts page

Sunday | 2020-05-17 | 07:44:51 PM
ok so the linkified dates should have a slightly different link format here

Sunday | 2020-05-17 | 07:37:51 PM
i just realized that in order to test
I actually need to have multiple lines in a post

let's see how this


behaves

Sunday | 2020-05-17 | 07:36:41 PM
now with POSIX compliant sed! https://github.com/marenbeam/thoughts/commit/2781e4f7b2130072addf78dacee061208d14db55

Sunday | 2020-05-17 | 01:51:35 PM
more gunk hi

Sunday | 2020-05-17 | 01:47:59 PM
thought: I should make a thoughts-testing page so that I don't have to constantly gunk up my own thoughts page with all these test posts :P

Sunday | 2020-05-17 | 01:46:42 PM
alright I've got v0.1 on my laptop now -- mic check one two

Sunday | 2020-05-17 | 07:45:23 AM
mic check one two

Sunday | 2020-05-17 | 07:37:54 AM
just checking that a font change I made didn't break something before I tag this release

Sunday | 2020-05-17 | 07:26:59 AM
I think I'm ready to cut an 0.1 release for ~thoughts~

Friday | 2020-05-15 | 08:13:33 AM
https://news.ycombinator.com/item?id=23170881

Thursday | 2020-05-14 | 10:06:56 PM
I decided ~do not care if too kitch~

Thursday | 2020-05-14 | 09:17:46 PM
i think instead of tweeting on twitter, I'm just gonna have a bot post an aerial shot of a random location in manhattan every day, courtesy of https://github.com/doersino/aerialbot

too kitcsh?

Wednesday | 2020-05-13 | 02:05:10 PM
life goal: approve a PR with the comment "looks great! this runs on a computer, right?"

Wednesday | 2020-05-13 | 07:35:15 AM
experiencing some old-school internet kindness this morning. I can't remember the last time I had an email exchange with an otherwise unknown person, outside of the context of work or school.

It's great to remember that
1) other humans exist (thanks, coronavirus :/ )
2) you can just talk to them
3) they're often very nice

Sunday | 2020-05-10 | 07:55:27 PM
there are so many ways to do things in CSS and that will probably never stop being frustrating to me

Sunday | 2020-05-10 | 04:44:11 PM
OK I officially just wrote a Java program for the first time since college. Thoughts:

- Wow I do not remember anything about Java
- I don't know what Spring is doing, but it's clearly *a lot*. Is Spring just like, what you do? Is this what everyone does? Is writing frameworkless Java backends A Thing That Is Not Done?
- It's just REST "hello, world", timeless classic. I followed this: https://spring.io/guides/gs/rest-service/
- Intellij seems good? There was initally lots of red underlining in unexpected things like filenames happening, but I'm pretty sure that was because I didn't realize that I needed to create the project inside of the directory tree that Spring ~initializr~ gave me.
- Why did they have to get rid of the 'e'? Just keep the 'e' y'all.
- Seems like gradle's the right build system to use?
- I think next might be a book. Should I get a Java book?
- Is it important to learn fundamentals without a framework first? I know generally that's true, but if writing frameworkless Java backends is A Thing That Is Not Done then I'm prepared to skip it.
- Java superpower: all these questions are probably widely answered on the internet, because java :)

Sunday | 2020-05-10 | 07:09:41 AM
some mornings just feel *impossible* -- this is one of those mornings :P

I ate food, I had coffee, I got (basically) enough sleep, what gives?

Yesterday me and friends gave ~lightning talks~ to each other, here's the slides for mine!

https://docs.google.com/presentation/d/1sfJ5NLje4emc6XWiQully5riYCRHYmuUvEPeQZj0jbY/edit?usp=sharing

It's about how and why much of the world came to have twelve notes in their music system, tuned the way they are.

Friday | 2020-05-08 | 07:02:44 AM
but it's obviously true that it's a critically important language for programs that are like, part of the fabric of social infrastructure. things like payment processing, payroll, probably running all kinds of things that governments use to crunch lots of different kinds of numbers, all backends that run all those site backends.

Signal's backend is written in java! https://github.com/signalapp/Signal-Server

Am I about to start learning java?

Friday | 2020-05-08 | 06:14:38 AM
i've been thinking about java a lot recently. i realized that I'm not sure i personally know a single person who writes java for their work. or even just for fun?

Monday | 2020-05-04 | 07:42:10 PM
*staycay

Monday | 2020-05-04 | 07:25:21 PM
it does! what a great end to my little vacay :)

Monday | 2020-05-04 | 07:23:26 PM
new laptop install works?

Saturday | 2020-05-02 | 08:10:01 PM
it feels great to futz with my site and blog again

Saturday | 2020-05-02 | 04:46:05 PM
new font let's see

Saturday | 2020-05-02 | 03:05:20 PM
alright there should be a link to the source in the footer now.

honestly i'm just delaying cleaning the kitchen (:

Saturday | 2020-05-02 | 02:40:32 PM
I think that a major part of why the last week has felt so tough, is that my computer situation was in flux.

As of today, I finally have all the things and time necessary to get it out of flux by the end of my little vacation. That's very exciting!

And I'll even be able to go to the grocery store *during the day on a weekday* on monday. I should make a list. I'm very bad at making grocery lists.

Saturday | 2020-05-02 | 01:50:15 PM
also laundry. i can't forget about laundry.

Saturday | 2020-05-02 | 11:14:30 AM
i took a three-day weekend this weekend, and i'm looking forward to it so much :D

plans:
- go on a walk along coogan's bluff
- make biscuits
- clean up a bit
- practice typing on this new keyboard (i'm already doing really well with it, i'd just like to work towards *fantastic* with it)
- make bread (this is happening now)
- at least clean up the readme for ~thoughts~ (this program), ideally make the install script aware of of install on multiple machines. it's getting posted on joy of computing soon, so it'd be great if that were handled.
- stretch goal, fix the GNU sed requirement so it also runs on mac :o

Wednesday | 2020-04-29 | 08:26:42 PM
On the one hand, I'm shocked at the impact stay-at-home has had on my motivation to make cool things and learn new stuff (it's been a net *negative* impact).

On the other hand, I'm not. I need to be nicer to myself. We have entered a nightmare timeline, after all.

Wednesday | 2020-04-29 | 08:23:14 PM
aaaaaaand we're back!

Wednesday | 2020-04-22 | 03:18:17 PM
my friend sent me a video of her playing her OP-1 on her balcony at sunset. It was so beautiful! one day i'm gonna have to break down and get one of those things

Sunday | 2020-04-19 | 06:20:14 PM
i think i needed a little break from programming

Friday | 2020-04-17 | 06:48:10 PM
I got an ergonomic keyboard for the first time ever and i love it!

Friday | 2020-04-17 | 07:00:33 AM
happy friday :)

Wednesday | 2020-04-15 | 09:05:22 AM
quarantine stage 4 i have started working out. 100/10

Wednesday | 2020-04-15 | 08:38:59 AM
ok I'm working through the rust book now. thoughts:
- cargo is obviously great
- the documentation is very very good. it's clear, friendly, and casual
- cargo check is super neat
- i'm interested to see how rustfmt behaves
- i'm interested to see what rust vim plugin universe is like
- rust is spaces-not-tabs. this led me to realize that i've become a spaces-not-tabs person and i'm shocked, SHOCKED. I'd tell you not to @ me but you can't :D
- does rustc produce produce static binaries by default? I can answer this question -- ducking.
- rust statically links all rust code but will dynamically link to the local libc. producing completely static binaries *possibly* requires building against musl? maybe that's normal, i don't live in c-world enough to really know. I'm familiar with musl though.
- i don't have some sort of extreme need to produce static binaries at all times, i'm just generally curious so this is good to know!

rust seems very very fun and good. I'm excited!

Wednesday | 2020-04-15 | 07:10:43 AM
early bird gets the worm?

Tuesday | 2020-04-14 | 12:21:28 AM
wow that was very easy and fun. g'night! <3

Tuesday | 2020-04-14 | 12:15:50 AM
seems like a little link shortener that rustlings uses to run an install script isn't working right now. nbd in itself, but it led me to read a little bit more about what its workflow is actually like and now i'm not sure i'm as interested.

I'm gonna write a hello world in rust and then go to bed :)

Monday | 2020-04-13 | 11:53:20 PM
i hope at least to install rust before going to bed tonight. it also looks like there's a recommended course at https://github.com/fmoko/rustlings

Monday | 2020-04-13 | 11:49:10 PM
it's hard to have interesting things to say when very little is happening in your life because *coronavirus*

I'm currently on the hunt for an acoustic guitar to borrow for the rest of quarantine. I'm feelin' musical

Sunday | 2020-04-12 | 06:02:08 PM
i wish the .music tld was available right now. it looks like part of why it's not is that control over it is being contested by a bunch of pretty big players. i guess i shouldn't be surprised, but i am disappointed

Saturday | 2020-04-11 | 12:13:17 PM
i've modified my todo list this weekend:

- go to the grocery store
- start work on pairing bot in Rust
- deep-clean my apartment
- some name-change administrativa that I've been sitting on for...4 years?

Saturday | 2020-04-11 | 12:08:10 PM
figured it out i think

04/11/20 12:06:26 PM
interesting

04/11/20 12:03:53 PM
new date format hope you like it

04/10/20 11:29:15 PM
program idea:

a script that installs the graphics drivers for the Ryzen 5 3400 G on Debian buster

04/10/20 08:05:29 PM
really enjoy talking to friends in brooklyn by video. it's cute

04/10/20 11:45:19 AM
rust?

04/09/20 03:15:12 PM
I'm now 100% confident that there doesn't exist CI that people are actually happy with :D

04/09/20 10:24:11 AM
my goals for this weekend are:
* Start work on pairing bot in Darklang
* Deep clean my apartment

I think those are good (and achievable) goals!

04/09/20 01:40:29 AM
zzzzzZZZZZZZZzzzzzzzzZZZZZZ

04/09/20 01:39:02 AM
and let's just be sure it works on this other computer too

04/09/20 01:36:09 AM
OK i've standardized the date so much for sleep

Thu Apr 9 01:29:14 EDT 2020
HAHA! It formats the date differently (even though it's literally the same program just one minor release behind what's on my other machine?), but it works! Incredible :) g'night!!!

Thu Apr 9 01:26:27 EDT 2020
first thought from another computer fingers crossed

Thu 09 Apr 2020 01:19:35 AM EDT
...

Wed 08 Apr 2020 11:47:51 PM EDT
alright i've moved the push/pull into the program fingers crossed

as you can see i have a very robust testing strategy

Wed 08 Apr 2020 10:44:38 PM EDT
ok i'm finally done futzing for the night! looks like i'm gonna make it to some nature videos after all :D

fingers crossed that i'm not rate limited by the let's encrypt api for much longer -- currently my blog doesn't have an SSL certificate because...i'm a fool (:

But nbd! It looks like traefik's being a good friend and just casually trying to issue me a certificate every 10 seconds. I guess that's not a problem???

nature videos plz ty <3

Wed 08 Apr 2020 10:07:03 PM EDT
why is dns and ssl always the hard thing

Wed 08 Apr 2020 09:48:12 PM EDT
i'm doing a bad job of getting around to the nature videos

Wed 08 Apr 2020 09:46:23 PM EDT
HAHAHA -- i wondered why i had *so* many more green boxes than usual on github. I knew i'd been doing a lot of computer, but not *that* much more computer.

then it hit me -- every ~thought~ is a commit! lol. this is extremely funny

Wed 08 Apr 2020 09:41:32 PM EDT
surfin

Wed 08 Apr 2020 07:26:25 PM EDT
i guess futzing with css is just who i am as a person now

Wed 08 Apr 2020 07:11:16 PM EDT
it worked! now i need to futz with ooooone more thing :D

Wed 08 Apr 2020 07:10:03 PM EDT
one more try!

Wed 08 Apr 2020 07:08:26 PM EDT
not quite. maybe this time?

Wed 08 Apr 2020 07:06:11 PM EDT
alright i think i finally fixed the css I was futzing with

Wed 08 Apr 2020 07:05:16 PM EDT
oooohhh maybe i could even find video of a hike in the blue ridge mountains :')

Wed 08 Apr 2020 07:04:08 PM EDT
i already have a couple different youtube channels in mind

Wed 08 Apr 2020 07:02:53 PM EDT
I went to a video happy hour with some coworkers at the end of the day today, and it was really cute and nice. A couple people mentioned that they've been trying to watch videos that involve nature, as a way to cope with the fact that none of us can really go outsite (we all live in big metropolitan areas). I think I'm gonna try and do that this evening too!

Wed 08 Apr 2020 08:54:14 AM EDT
ok messing with this layout turned into messing with the rest of the site pretty quickly :P

Wed 08 Apr 2020 08:47:07 AM EDT
i'm curious how if feels to have the text centered

Wed 08 Apr 2020 08:43:19 AM EDT
the super came up this morning to ask me not to use the kitchen sink for a bit because a downstairs apartment is flooding -- I hope everyone's ok :(

Wed 08 Apr 2020 08:07:07 AM EDT
i think i've decided moving the push/pull logic into the program is reasonable

the only real downside is it means you'll have to initialize a remote repo prior to running the install script

Wed 08 Apr 2020 07:59:31 AM EDT
great! it did the thing i want :) I just wanted to add space between each post in the html source

Wed 08 Apr 2020 07:57:22 AM EDT
honestly i'm just writing posts right now to test something

Wed 08 Apr 2020 07:54:36 AM EDT
last night i realized that the way i'm treating this right now is "quarantine diary"

it'll be interesting to look back on a year from now

Wed 08 Apr 2020 12:07:22 AM EDT
i did a B- job of going to bed at a good time tonight. If we could just nuuuudge it on up to 11 tomorrow that'd be A+. g'night <3

Tue 07 Apr 2020 08:55:01 PM EDT
this immediately breaks when there's more than one client, because the client now has to care about pulling in up-to-date changes before adding new ones

Tue 07 Apr 2020 08:48:26 PM EDT
eventually i think i'll make ~thoughts~ a little easier to install on two computers simultaneously

currently this would only work (at least with the way I envision another person using it, which is of course the same way I use it :P) if all the git pushing and pulling on the client side was moved into the program.

current workflow is:
* type "thought"
* vim opens, you type a thought in it
* :wq
* ~thoughts~ creates an updated standalone html document with your latest thought added, dumped into ~/.local/share/thoughts

then it's up to the user to cron getting that doc to github, and getting it off of github onto the server

Tue 07 Apr 2020 08:43:02 PM EDT
this is the first night in a long time that i've felt done with computer for the day once i left work

Tue 07 Apr 2020 09:01:04 AM EDT
this morning i learned that ~thoughts~ does not currently accomodate install on two different computers

at least not the way that I've been running it

Tue 07 Apr 2020 08:31:20 AM EDT
i wonder if there exists any CI that anyone is actually happy with

Tue 07 Apr 2020 01:26:05 AM EDT
i stayed up too late :(

Tue 07 Apr 2020 12:21:18 AM EDT
i'm really glad i made this little program
it's bringing me lot's of joy :)

Mon 06 Apr 2020 10:37:22 PM EDT
I'm really appreciating the intermittent checkin that I have with a friend. We just had it, and it was great. Usually I'm excited to have it, but sometimes I dread it. On the days I'm dreading it, it always ends up being super helpful anyway.

We use a (semi)formal framework for the checkin, and you can read it (and use it yourself!) at:
https://emotional.codes/daily-checkin/

Mon 06 Apr 2020 09:47:48 PM EDT
ok so unsurprisingly i decided to make the title rainbow colored

Mon 06 Apr 2020 09:17:57 PM EDT
quarantine has given me unprecedented time to spend on computer, and so now things like this are happening

honestly it's a dream, but the trade-off is not worth it :(

Mon 06 Apr 2020 09:09:29 PM EDT
hi sam :)

Mon 06 Apr 2020 08:33:17 PM EDT
hello!

I strung together this little pile of things so that I could put my thoughts on the internet in a way I was excited about


source