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 :)

Tag #web

The web standards process is a weird thing. Something as complicated and incredible as CSS Grid is already shipping everywhere… while something as mundane and simple as registering a website as a share target has been in the bikeshedding stage for two years already.

Compiled oxipng to WebAssembly, very little changes were required :)

Polymer 3.0 is pretty exciting! R.I.P. HTML Imports.

Paper elements were automatically converted to ES Modules… except for the deprecated neon-animation, which is a dependency of paper-dialog and some others. Hopefully this will be solved soon. micro-panel is a heavy user of paper-dialog! :D

Also, a new interesting thing by the Polymer team is lit-html, which is not yet actually integrated with Polymer…

So Amazon Lambda has a 6 MB limit on request (and response) size. Binary files have to be Base64 encoded (LOL) which makes the limit even SMALLER! So my micropub media endpoint chokes on full DSLR resolution photos. Yeah the "right way" is to have the API Gateway endpoint upload to S3, and the upload event trigger the Lambda processing which would download from S3, and use a separate Lambda for authentication on that endpoint… but I need the processed URLs in the response body. I need everything to happen in one request! How did AWS engineers not see that use case coming?!

AWS Route 53 looks like a nice DNS hosting service because API (automated ACME DNS verification is pretty cool) and automatic config for adding domains to other AWS things but they're really slow with new DNS record types. Still no CAA! And SSHFP! What in the hell, the most powerful Cloud™ company in the world can't add a simple record type?

Added Custom Elements v1 wrappers to a small WYSIWYG editor and a small code editor, because micro-panel.

It's terrible hot take time:

React is capitalist. Since it's been ported to many platforms (browsers, node.js, iOS, Android, now even Sketch) it is designed to let businesses reach customers on all platforms with less development effort, instead of hand-crafting apps that care about each individual platform's users. And there's a sort of lock-in, you're not a web/iOS/Android developer, you're a React developer. That's kinda like businesses trying to lock you in to their ecosystems (Apple, Microsoft).

In contrast, Polymer is good and communist fully embraces the web as the only platform, which is good for the open web.

I can’t believe NO ONE made a rewrite of VisualSearch.js / Search.js without all the dependencies (jQuery, jQuery UI, Backbone and Underscore!)

I’m working on a server-side HTTP cache! It’s a Haskell WAI middleware. It’s controlled by Cache-Control / Vary. It doesn’t have real storage backends yet, but it has a test that I’m really happy with and some thoughts about using caches against DoS attacks in the README.

Oh, also it’s probably a good example of OOP-ish Haskell. Thanks to GADTs, the CacheConf constructor “eats” the backend types :D It’s like class Conf { BackendInterface backend; } in Java/C#.

I made a thing that lets me post Dungeon Crawl Stone Soup game logs to my website!

It has… kind of a long story, actually. So back in 2013 when I was a huge fan of App.net, I wanted to make an App.net client that would be “like Battlelog but for Crawl”. (Why would anyone use that instead of the Tavern, I don’t know. I thought I could get DCSS players to sign up for App.net :D)

So I wrote clj-dcss, a working parser for DCSS morgue files (out of date by now; also turns out it’s a bad idea to parse the whole log), and rxjava-http-tail for following logs on public servers. And Crawllog itself was also somewhat complete, but I never actually deployed it.

Fast forward to 2016, I no longer use App.net, I’m a huge fan of the IndieWeb and I made a new Crawllog :D

The IFTTT vs Pinboard thing happened just as I was planning to use it to post bookmarks from Pinboard to this website. This plus the general desire to use open source software on my own server led me to exploring alternatives…

Huginn is the most popular one, but it’s not a good fit for my low-memory VPS. Unicorn/DelayedJob/MySQL? Uh… nope. So, the urge to Write My Own Thing is very strong :D But in the Pinboard Twitter thread people have suggested bip.io and Node-RED. Looks like I’ll try Node-RED first, because it does not use a fscking database! Just plain old files.

Just had to get some images from Pinterest. Wow, this is terrible. It’s just begging you to sign up. It’s 5 seconds, it’s free, sign in with Facebook, there’s more to see. Fuck off, I just want the full size image.

Pebble’s online color picker for developers looks amazing. I want to steal that SVG to add a color picker to my watchface‘s new shiny Polymer-based settings app :D But I probably shouldn’t.

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 :-)

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).

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.