unrelenting.technology

Hi! You are viewing the archive of unrelenting.technology. This website is no longer updated, my current one is val.packett.cool. Check it out instead :)

Notes

Trying to run FreeBSD directly on hardware. Some people say that free operating systems work better on older computers… well, nope.

On my old MacBook Air, it crashes when you try to do any significant disk I/O (like, you know, installation, or just unpacking an archive to a RAM disk) or when starting X. On 10.2-STABLE, it’s general protection fault while in kernel mode or page fault while in kernel mode, on 11-CURRENT it’s vm_page_alloc: page 0x... has unexpected queue N.

On a more recent iMac, it works great. bge(4) Ethernet, nVidia graphics, a USB sound card, USB 3.0 hard drives. 4K videos on YouTube play smoothly. Changing display brightness doesn’t work, but darkening the screen with xbrightness or xrandr is okay on a desktop.

But I wanted to use it on the laptop :-(

Hardware, firmware and bootloaders are horrible evil things.

AWS Lambda, the new awesomeness in Cloud Computing™, reminds me of… CGI.

In Lambda, HTTPS requests are just one of the many types of events it can handle, but it’s the most interesting one. There’s been some IndieWeb interest in using Lambda for Micropub and Webmention endpoints that update static websites.

We can do better! No SDK required. We need a CGI Cloud. I might build that as a demo for sandblast :-)

The =\< icon for “more symbols” on the Android keyboard totally looks like a Haskell operator.

remoteStorage could potentially work with IndieAuth… The only missing thing is the implicit grant flow (IndieAuth could query the token endpoint and return the access token in the original redirect).

The Telegram Bot API is the best bot API ever. Everyone should learn from it, especially Matrix.org, which currently requires a particular URL structure and registration files.

Another facepalm moment: I didn’t verify the domain in Sweetroll’s token-endpoint. Fixed.

Receiving Webmentions should work now… (not deduplication or updating yet).

Facepalm moment: realizing that flock(2) doesn’t block across threads inside of a process, only across multiple processes, and adding an MVar lock to Gitson about a year after writing the original code.

It’s unfortunate that PubSubHubbub, while perfect for server-side subscribers, is completely unusable from the browser. Hubs really should provide two subscriber interfaces: the current webhook-style one and Server-Sent Events. I guess for now I’ll have to make a PuSH-to-SSE proxy.

“Why is my app saying it can’t load my templates because it’s not valid UTF-8?!??!”

It’s been reading .DS_Store. Facepalm.

Accidentally reposted something from Tantek using Monocle. Reposts aren’t supported in Sweetroll yet, so I deleted that post, but not before looking at the JSON and noticing that my parser didn’t understand the publishing date…

<span class="dt-published published dt-updated updated">
  <time class="value" datetime="05:55-0700">05:55</time> on <time class="value">2015-08-28</time>
</span>

Turns out I missed the whole “Date and time parsing” section of the value-class-pattern! Fixed.

vnstat + iftop: the lightweight network monitoring tools I always wanted.

Testing… this should work (Bridgy Publish for posting to Twitter from my website).

Also, Sweetroll now uses canonical microformats2 JSON for storage.

I can’t believe how miserably GUI tools fail at file formats. So, I received a transparent JPEG recently. After the WTF moment, I ran /usr/bin/file and it told me it’s a PNG file (renamed to .jpg).

Here’s how GUI apps handle it:

OS X’s Finder actually ran the format detection to display it correctly in Quick Look, but didn’t say “PNG renamed to JPEG” as the file format. It just said “JPEG image!”

Photoshop showed an error and refused to open it.

Ported Sweetroll, the engine that powers this website, from Scotty to servant. Oh, and it’s also built with stack on GHC 7.10 now.