Thoughts on var­ied top­ics - JavaScript, UX, CLI, and more! I no longer pub­lish these and have switched to writ­ing notes.

  1. I re­cently set up an ac­count on Hetzner - thanks Jan-Lukas Else! Their pric­ing is much more af­ford­able than Digital Ocean or Linode over the course of 12 months for some­one pay­ing in INR. I might ac­tu­ally go some­where with this, not sure yet.

    Today, all I did was lock down the VPS, set up Nginx and aim to get an A (or above) rat­ing on Mozilla's Observatory. That went well, even though it took about 2 to 3 hours! 😀

    My sta­tic site (the one you're read­ing!) runs on Vercel and scores an abysmal D on the Observatory. I have opened a re­quest on their dis­cus­sion board to pos­si­bly get an im­proved rat­ing from the get-go for all sites.

    Update (2020-07-02): Fixed links.

  2. As a de­vel­oper, chances are you have dealt with dates. We usu­ally store them as ei­ther an ISO8601 UTC date-time string or as Unix epoch.

    Today, I got cu­ri­ous about how many dig­its there are in the epoch num­ber, and what hap­pens once we hit the high­est pos­si­ble num­ber. Lo and be­hold — there's a whole ar­ti­cle on this on Wikipedia, called the Year 2038 Problem.

  3. Yesterday, I watched a video by Vox ti­tled 'The most ur­gent threat of deep­fakes isn't pol­i­tics.' It got me think­ing about how much we post our so­cial life on­line and how eas­ily it can be mis­used.

    From the video de­scrip­tion, em­pha­sis mine:

    Deepfakes are of­ten por­trayed as a po­lit­i­cal threat — fake videos of politi­cians mak­ing com­ments they never made. But in a re­cent re­port, the re­search group Deeptrace found that 96% of deep­fakes found on­line are porno­graphic. Of those videos, vir­tu­ally all are of women. And vir­tu­ally all are made with­out their con­sent.

    When I post my im­ages on­line, I open up GIMP, crop 1:1 the re­quired por­tion of the im­age, scale it down to 200x200 pix­els (or 250x250 pix­els if the up­load tar­get com­plaints), strip all meta­data, and save it at 50% to 100% qual­ity de­pend­ing on where I'm post­ing the im­age. It's ex­tra work for sure, but I feel a lit­tle safer on­line. Perhaps there might be a sim­ple way to do this from the ter­mi­nal us­ing im­agemag­ick, but since I usu­ally crop as well, I pre­fer us­ing a GUI.

    I won­der if it helps fight the al­go­rithms be­hind deep­fakes at all or if it's just a false sense of se­cu­rity.

  4. The IndieWeb has a ter­mi­nol­ogy for com­mon post types - such as ar­ti­cle, note, photo and so on. The au­thors have also fo­cused on de­vel­op­ing spec­i­fi­ca­tions as op­posed to a bunch of prod­ucts/​ser­vices. They en­cour­age the com­mu­nity to write prod­ucts im­ple­ment­ing these specs.

    This is a dou­ble-edged sword.

    However well-writ­ten the spec may be, the suc­cess of the idea is up to the com­mu­nity. Don't get me wrong - this is great for the long term; but soft­ware in open source or open de­vel­op­ment of­ten moves slow, which in­creases the odds of fric­tion in the short and medium term for the av­er­age Jane set­ting up a blog.

    For ex­am­ple, Omnibear doesn't even ex­ist on the Firefox ex­ten­sions store any­more, IndieKit is a per­sonal pro­ject — of Paul Robert Llyod — open-sourced so one is pri­mar­ily on their own once an is­sue is en­coun­tered. Much of what I came across car­ried sim­i­lar down­sides or caveats.

    Personally, I have had al­most no suc­cess im­ple­ment­ing all these post types on my sta­tic site. The only suit­able Micropub end­point I found for my­self was IndieKit, which I ref­er­enced above, but could not get it work­ing with Indigenous for Android. I am not in fa­vor of us­ing 2+ dis­tinct ap­pli­ca­tions to post in­di­vid­ual post types ei­ther, which seems to be the case when it comes to pho­tos, for ex­am­ple.

    Still, I want to leave room for adop­tion of these post types in the fu­ture. With that in mind, in place of notes, I am go­ing to be writ­ing thoughts. They might lack fin­ish of course, but I also wanted to keep my ar­ti­cles sep­a­rate from my thoughts. The thoughts also syn­di­cate on my ex­ist­ing feed so you don't need to do any­thing ex­tra on your end.

    When I feel the ecosys­tem around IndieWeb is ma­ture enough for an av­er­age front-end de­vel­oper to use, I'll re­tire thoughts and adopt the post types as men­tioned on their wiki, in­clud­ing notes.

  5. I'm strip­ping out cat­e­gories. On my blog, I had a two-tier cat­e­go­riza­tion scheme for ar­ti­cles. Broad top­ics called cat­e­gories; and smaller, spe­cific top­ics called tags. A topic on JavaScript might be cat­e­go­rized as JavaScript and tagged as se­cu­rity, es6, and so on.

    This was very cum­ber­some to main­tain not just as an ed­i­tor, but also as a de­vel­oper. So I de­cided to take a look at my Plausible an­a­lyt­ics and find out if any­one had ever even vis­ited a cat­e­gory page. Turns out… not a sin­gle visit! Tags? Yes. Categories? No.

    In this process, I re­al­ized many of my ar­ti­cles also had the same cat­e­gory and tag - for ex­am­ple, 11ty, or JavaScript.

    A de­ci­sion was made to re­move cat­e­gories en­tirely from my site. Now I just use tags, and use 11ty's in built meth­ods for tags as op­posed to main­tain­ing my own. After all, that is the whole point of us­ing an SSG built and main­tained by some­one else.