Everybody wants a boyfriend with puppy energy til he starts humping their leg!
Projects
The Blog
The μ-Blog
Everybody want's a girlfriend with daddy issues until she... uhh... until she... ummm...
Oh god I'm testing the build system (shitty recursive make(1) because turns out bmake(1) doesn't support pattern rules!) and I need to think of something to write here oh god oh fuck
For some reason my site updates on the www subdomain instantly, but I gotta wait for a bit on the main domain! Somethin to do with SDF's cron jobs...
OK so I didn't even need that last μ-blog post, because I can just cancel writing a post without saving and everything will be fine! Accidental feature that I didn't even know to use!
Can't decide if I want the datetime for μ-blog entries at the beginning or the end of the entry! Also, not sure if including the em-dash in the contents is correct, semantically, for a time element, but the datetime attribute is set correctly so fingers cross! (also, first use of inline code spans on this site — wowee!)
Man, the spacing algorithm for text-align: justify
(at least in my browser — I can't imagine it's the same for all)
is shit! Definitely not Knuth-Plass, but even worse than a greedy algorithm
like those used by troff(1)!
Also also, I'm enjoying writing this site in Markdown,
although at first I was a bit disappointed I couldn't do it in troff(1)
— but Markdown is way better suited for semantic output for the Web,
whereas troff(1) is specifically for presentation as a typsetting
system.
I think
I'm actually able to format Markdown files a lot like how I like troff(1)
input (and how is conventional)
((that is, with a lot of linebreaks lol))
because Markdown only creates a paragraph break with an entire blank line,
but I might get bit by this too!
For now,
I am enjoying being able to put line breaks after every comma
(yes, if you didn't know, that sort of formatting is common and considered
good for troff(1) — think about git(1) diffs!)
;)
Final thought!!! take the last entry as an example of how long μ-blog entries can get: very long! The μ-blog isn't meant to just be short entries; basically, anything to which I can't really give a good title goes in the μ-blog; if something really needs a title, it should go in the blog, even if it's only one sentence long! (this will ideally be explained in the about page, but I haven't gotten around to making that one yet........)
Would you still love me if I told you I'm not tracking the contents of this
site with git(1) and also I was a worm?
$ time make deploy
> 2.22s real 1.43s user 0.59s system
haha. i'm in danger.
Do you think the guys from Daft Punk explored each others' bodies?
Testing my new script to update the μ-blog from e-mail !
Doesn't entirely work;
that last entry was written in an email,
but I still had to ssh into the SDF VHOST node to deploy it
(my www directory isn't mounted on the machine that runs procmail(1)!)
—
maybe I'll ask on bboard if anyone has any suggestions :)
OK, one more test then I'm giving it a reak for now!
me when I lie
Okay everypony I don't think it's going to work…
but at least I have typographic ellipsis now!
(I write them in my input documents as $(...)
Oh boy, I made some changes to my perl text preprocessor; I bet the site is going to build so much faster and-
$ time -p make clean deploy
> real 2.76
> user 1.76
> sys 0.64
FACK
Really, the reason why it takes so long to build is just because I'm basically doing a clean build of the μ-blog everytime; I keep μ-blog entries in a directory, 1 file per entry, and the file name is the creation date in seconds since epoch. Then, whenever it need to update the μ-blog (like because I wrote a silly entry like this one!), it loops over all the files in the μ-blog directory, running them through the preprocessor with a template, and concatenating them into a single file, which is then included into the index.html and finally deployed.
If I could only append the newest μ-blog entry to the end (really it would have to be the top) of that file each time, I'm sure it would save a lot more time (although it's already pretty sad that like 20 of these files, each of which is <100bytes, take 2.6s to process with my preprocessor ToT), but knowing which file(s) I need to process and append involves a bunch more bookkeeping I don't want to implement. Not to mention the pain of handling if I ever need to rebuild the entire μ-blog (although, by design, I'm not supposed to go back and edit entries.)
TODO: Need a script so I can have accessbile emoticons.
The obvious solution is to just use emojis,
which I don't even need a script for,
but would probably like to have so I can write stuff like
$(emo sob),
but that's lame!
Instead,
I want to have a script that is like
$(emo ToT)
which generates html
to display the text ToT,
but with metadata so people using screenreaders and stuff can understand it!
Argh! I forgot the most important part of my last idea: the silly emoticon script would allow me to put specify the alt text with the args, and also have defaults for well known emoticons.
Here are some samples... Let's call the script :p because the shell lets us use :
and I wanna take advantage of that. I'm just calling the span for emoticons emo
for now, because I need to research accessiblity stuff.
$ :p # obviously make a no-arg default
> <emo alt="tongue sticking out">:p</emo>
$ :p ToT sobbing face big tears
> <emo alt="sobbing face big tears">ToT</emo>
$ :p ToT # this one also has a default builtin
> <emo alt="sobbing">ToT</emo>
# I have no clue, but there will be a fallback text when unkown
$ :p '<@>w<@>'
> <emo alt="the author was too lazy to put alt text.
> Please send him death threats at seb@stien.dev">
> <@>w<@>
> </emo>
Woah, I just heard about Open Banking stuff — that's crazy!
You're really telling me someday
(in Canada at least;
I think they already got it in Europe?)
I'll be able to do my online banking just by hitting some HTTPS endpoints?
Yeah,
maybe I'll have to go through some stinky middleman service,
but I won't have to use anyone's bloated React app!
I can write a 5 line shell script that wraps around curl(1)
to manage my fucking credit cards!?!?!?!???
Maybe this world ain't so bad afterall (don't spoil this for me if I'm in ignorant and it'll actually suck; let me dream…)
=STAR WARS BUT THEY'RE PIRATES OUT IN THE OCEAN=
Garp Wader: *ksshhh* You don't know the power of the port
side…*kshhh*
Emperor Paddle-tine: Oh, I'm afraid the slippery foam will be quite
operational when your friends arrive.
Luke Warm Water: this one is the only reason I even made this post I just thought Luke Warm Water was so fucking funny.
I had at least like 3 more posts to make but I forgot them all fuck my baka chungus life
$ time -p make clean deploy
real 3.82
user 2.17
sys 1.00
This time I added some REAL optimizations too… but the addition of a few more posts since the last timing and we're going up so much…
I care too much about silly semantic markup,
even when it's pretty insignificant
(like in ways that won't affect accessibility devices etc.)
which means that I ostensibly write these posts in markdown,
which is then converted into
HTML,
but there are still a bunch of tags cluttering things up lol
— like with these <abbr> tags!!
I know some markdown alternatives,
like Djot try to handle more stuff like arbitrary attributes,
and even some systems from before markdown have a special syntax for inserting arbitrary HTML
tags,
but I'm not so sure about these.
Adding more and more to the syntax to handle more and more tags,
such as {+foo+} for <ins>foo</ins>, makes the language bigger and bigger until you just have HTML,
and allowing arbitrary tags,
such as ins{foo} for <ins>foo</ins>,
is, again, just going back to HTML,
but with a nicer syntax,
at which point we should be writing SXML!
…and even then I'd rather be writing in something similar to markdown which compiles into it.
(I know, I miss the point of Lisp and homoiconicity,
because using S-exprs for HTML would mean you could just write Lisp programs that output
your site.)
For now,
I'm pretty content just writing a bunch of HTML inside my markdown;
as the creator said:
HTML tags are already easy to insert.
In fact, rereading that post makes me reconsider a lot of my thoughts I have about markdown and HTML… This is a topic I need to (and plan to!) make a Big Blog post about, but for now I'll give a little teaser: I think XML (and HTML too) could have actually been better than S-exprs… (Gasp!)
Yes, I know some of the styling on this site is broken now. Sorry for caring about semantically correct HTML… I fucked with it forever but it's so hard to get it how I want.
Updated the build system so the μ-blog is actually building incrementally. Although clean building it is broken because I am stupid! Hopefully when I go to compile and post this entry it should be a lot quicker :)
Haha yes! It works!!!
And it's actually faster doing a cleanbuild too —
which does work, btw —
I think I may have done a silly
and the reason it was building so slow before was because
it was reading and writing the files in my home directory.
In the new version,
it actually
copies the entry in and out of /tmp
like 3 times for every entry,
which should be a lot more inefficient!
But, when building on the
SDF
machines,
the I/O
will be a lot faster in /tmp…
I should have paid heed to the warning
about running make(1) in your home directory!
In my defence,
I figured since I'm not actually compiling anything
— I'm just using a Makefile to manage text files —
the warning didn't apply…
I am going to start authoring on my own machine,
and simply sftp(1) the files over.
Please forgive me,
SDF admins!
And now for the hilarious irony:
when I run make(1) on my home machine,
it'll probably be
faster to just do a clean build.
I assumed my Perl script was that terrible,
but in reality it's probably just faster to rebuild the whole thing
than to check if we can reuse it,
especially because
the reverse-chronological ordering means I have to
prepend to the file,
rather than just append,
which is notably more annoying to do
(hence why the files are being copied in and out of
tmp)!
Actually, I just realized I can probably list the entries chronologically in the HTML, and have them display in reverse… I have made so much more work for myself by just being silly… But it was fun! As you can see by the timestamp on this post, though, it is my time, so I need to drink warm milk and wear pajamas.
And,
as is my tradition for 2 days now,
here is the time(1) for the build system:
$ time -p make deploy
> real 0.76
> user 0.34
> sys 0.17
yeah, that's a lot faster. and probably not even because of the optimizations I wrote.
I updated the μ-blog entry template
and had to clean build it,
so here's a time(1), just for fun.
$ time -p make deploy # clean
> real 6.88
> user 4.46
> sys 1.97
So looks like maybe the incremental build really is the thing speeding it up?
NOOO I accidentally deleted the first μ-blog post :(
Now the μ-blog entries are listed chronologically in the HTML, and displayed reverse chronologically with CSS — Yippee!!
Actual dialogue I just had with my mom:
I've been thinking about getting a bike.
Like an e-bike?
Like a bike.
Like a bicycle?
Yeah that's what bike is short for.
Smart ass.
Mike is short for micycle.
Updated the build system again! Almost ready to make actual long form blog posts. But it's so much more fun to write Makefiles and scripts…
Let's test my new emoticon generating script!
:p ToT <#w#>
And now the one for abbreviations!
HTML stands for HyperText Markup Language; CSS stands for Cascading Style Sheets; fubar doesn't stand for anything!
The next two little scripts I want to make are as follows:
A script that scans pages for the first instance of text looking like
<name>(<n>), AKA man page references, and replaces the first instance of each name within a page with a link to the corresponding man page.Similarly, I'd like to manage my own jargon page, which lists… jargon, and their definitions; then, I'd like a script which scans every page for the first instance of a jargon word, and replaces it with a hyperlink to the definition within the jargon file!
Notice how it's always
I need to hit my protein goal for the day
and never
I need to hit my fibre goal for the day
?
Yeah I know you ain't shitting.
Can google please stop giving me fucking captcha's just because I'm using a funny browser on Linux?
Recently I been getting cop bodycam videos suggested to me on youtube, and I have been watching them — against my best interest. What is really insane to me is how many of these videos show completely unacceptable behaviour from the police — unprofessional conduct, excessive force, escalation — and yet the video creator and commentors are all in support of them.
A lot of the behaviour shown will also been completely accepted in one video, and then shown as an example of bad behaviour by police in another (by the same channel!) For example: police insisting on ID from someone without just cause. In one video, a police officer insists on a citizen giving ID, and the citizen refuses, and is shown as being a good citizen knowing his rights; in the next video, an officer insists on someone identifying themselves, and when they refuse they are aggressively handcuffed (with more unprofessional conduct from the officer, such as sarcastic remarks and insults).
Sure, I'm not an expert on the law at all, so maybe in the latter case the citizen was required to identify themselves, and by refusing to they were resisting and should be detained/arrested (handcuffed), but that doesn't excuse the aggression from the officer (it also highlights the issue: the fact that it is completely unclear to me if, in the latter case, the citizen is required to identify themselves, lest be charged with resistance — how are we supposed to know when we must comply, and when an officer is abusing their power?).
OK, another example!
Watching a video, an a cop shouts
Get out of the car or you're going to get tased
to a drunk girl who just tried to flee in her car
(and then crashed).
Like, OK, I get it,
they're fleeing,
and they crashed their car,
and they were driving while drunk —
those girls were being fucking stupid
and broke a ton of laws and stuff,
but there is no reason to tase any of them in that moment.
A taser isn't just for
grr this person isn't cooperating;
I need to threaten them to make them do what I want
or hurt them to make them comply
;
it's to subdue someone who is violent.
If no one is in danger,
then there is no reason to even take it out.
oooo I wanna get a bike oooo I want a bike so bad I want a cute red Dutch bike lik the cute curvy step-over ones. There's a guy on Kijiji selling two bikes just a couple blocks from my house! Unfortunately, they are dark blue and not the exact cute, Dutch design *le sigh*.
For all practical purposes, they are the types of bike I'd want tho; they are a step-over, even if it's not the exact cute design I like :p. Also, I realized you can, like, paint bikes (lol).
Most of the other bikes I see that I like just have coast brakes instead of handbrakes, but I did just have the realization that you can add handbrakes to a bike ((lol)). But the convenience of the bikes being sold just a few blocks away, and saving me the money of putting on handbrakes (although it would add the money of getting it painted if I'm really set on a cute, red bike) means I'm probably going to go for them (as long as they're available)
Review of the KitKat™ Gold™ Ice-cream Bar™®:
mmmm yummy ice creammm ')
Also the mystery flavour of the Stranger™ Things® Ice-cream Cone is Cherry Coke™ I'm pretty sure.
Happy Birthday it's my birthday yay!!!! If you see me, you have to give me a big kiss on the lips (tongue optional).
My parents got me a watch and a shirt; apparently they also got me a necklace but it's stuck in the mail. I'm super happy! The watch and the necklace were things that I indicated I wanted (although I do not give specifics because I still want them to pick it out!) but the shirt was totally their own play and I'm stoked! It's a super nice shirt — cool design, fits well, soft material. Totally poggers!