Aral Balkan
24  novembre     15h36
The magic one-line ImageMagick 7 AppImage installer
   p To install a href https: imagemagick.org ImageMagick 7 a on any distribution that supports a href https: appimage.org AppImage a , copy and paste this one-line script into your favourite shell: p div class highlight pre style background-color:#f0f0f0;-moz-tab-size:4;-o-tab...
23  novembre     17h03
How to apply a chroma key using ImageMagick
   p Yesterday, I wrote a short post on the fediverse with a href https: mastodon.ar.al aral 107322049470016693 an overview of how to take a screenshot of an app with a context menu showing in elementary OS, while keeping its alpha channel and drop shadow a using a href https: krita.org en ...
08  novembre     15h20
My three-month-long elementary OS 6 upgrade adventure in three parts. (Part 1: Catts)
   p img src https: ar.al 2021 11 08 my-three-month-long-elementary-os-6-upgrade-adventure-in-three-parts-part-1-catts https: github.com small-tech catts raw master catts-screenshot.jpg alt Screenshot of Catts in action. The switcher contains three icons: Tasks, AppCenter, and Calculator....
31  octobre     21h26
How to count Unicode glyphs in Vala using Gtk
   p img src https: ar.al 2021 10 31 how-to-count-unicode-glyphs-in-vala-using-gtk 2021 10 31 how-to-count-unicode-glyphs-in-vala-using-gtk halloween.jpg alt Photo of pumpkin and three ghost figurines. p p Want to try something really scary this Halloween? Try counting the characters in a...
19  octobre     17h00
How to change the colour of the underline in gspell
   p a href https: gitlab.gnome.org GNOME gspell gspell a is GNOME’s spell-checking library. p p When it discovers span style text-decoration: underline; text-decoration-style: wavy; text-decoration-color: red; misspelld span span style text-decoration: underline; text-decoration...
15  octobre     20h11
How to disable Gtk-Message warnings in your app
   p img src https: ar.al 2021 10 15 how-to-disable-gtk-message-warnings-in-your-app . rube-goldberg-machine.jpg alt A Rube-Goldberg machine: the tears of a woman peeling onions is funnelled into a pie that tips some scales that activate a blower that then lead to a number of other things (the...
24  août     19h37
Implementing dark mode in a handful of lines of CSS with CSS filters
   p I em finally em got round to implementing dark mode for this site (the cobbler’s children have no shoes and all that...) p p Here’s all the CSS I had to add: p div class highlight pre style background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4 code class language-css ...
    18h39
Omnibus GitLab Let’s Encrypt renewal error and fix
   p I moved a href https: source.small-tech.org source.small-tech.org a , our self-hosted GitLab instance, to a href https: eclips.is Eclips.is a a few months ago and noticed today that the Let’s Encrypt certificate had failed to renew. p p When I looked on the server, the outdated Let...
16  août     10h07
Key Mapper: a visual tool for remapping keys (and more) on Linux
   figure img src https: ar.al 2021 08 16 key-mapper-a-visual-tool-for-remapping-keys-and-more-on-linux . key-mapper.png alt Screenshot of the Key Mapper application running in dark mode. The Device selection box reads Topre Corporation Realforce 87. The interface has buttons for...
08  août     15h36
Apple is trying to redefine what it means to violate your privacy. We must not let it.
   figure img src https: ar.al 2021 08 08 apple-is-trying-to-redefine-what-it-means-to-violate-your-privacy-we-must-not-let-it screeching-voice-of-the-minority.png alt Illustration of white man wearing black t-shirt that has a frowning face iPhone and the words the screeching voice...
25  juillet     12h27
Fish shell
   figure img src https: ar.al 2021 07 25 fish-shell fish-shell-logo-ascii.svg alt An ASCII drawing of a fish figcaption p Fishing for a new shell? (Sorry.) p figcaption figure h2 id beautiful-defaults Beautiful defaults h2 p a href https...
25  juin     12h59
Remote: a little module for more elegant remoting with WebSockets
   p Remote sup id fnref:1 a href #fn:1 class footnote-ref role doc-noteref 1 a sup is a tiny ( a href https: github.com small-tech remote blob main index.js#L12 < 50 lines of code a ) module that creates a very lightweight façade over a socket connection, using convention over...
27  mai     12h05
Make anything a JavaScript module using Node.js ESM Module Loaders
   figure img src https: ar.al 2021 05 27 make-anything-a-javascript-module-using-node.js-esm-module-loaders message-in-a-bottle.jpg alt A message in a bottle on an empty beach with a beautiful blue sea behind it. figcaption p Disclaimer: you can’t load an actual...
26  mai     10h05
Archival cascades: a practical way to not break URLs
   figure img src https: ar.al 2021 05 26 archival-cascades-a-practical-way-to-not-break-urls cascading-waterfalls.jpg alt Photo of cascading waterfalls figcaption p Cascades are beautiful things. p figcaption figure p This week, I reduced our...
23  mai     19h36
How to get clean analog audio from a Blue Yeti microphone into a Sony a6400 camera using a Raspberry Pi Zero
   figure video controls poster ’https: i.vimeocdn.com video 1144931351.jpg?mw 2500&mh 1406&q 70’ source src ’https: player.vimeo.com external 543975149.m3u8?s 844e2d3bfa9d550a125b7f617dbe2dc4a9cbfe00#t 27’ type ’application x-mpegURL’ source src ’https: player.vimeo.com external...
16  mai     16h57
JSDB Migrations
   p I’m busy working on a href https: github.com small-tech basil Basil a , the a href https: ar.al 2020 08 07 what-is-the-small-web Small Web a host, and while it’s nowhere near ready to use yet, I thought I’d try my hand at writing a database migration as they will be necessary once...
14  mai     14h14
Scraping the latest EU VAT rates for e-services from the European Commission’s web site with Node.js
   p So, you now know a href https: ar.al 2021 05 14 using-the-european-commission-eu-vat-number-validation-api-with-node.js how to verify an EU VAT number with Node.js a . p p Lucky you (Don’t say I don’t spoil you.) p p But do you know what the latest VAT rates are every EU country? p ...
    12h46
Using the European Commission EU VAT Number validation API with Node.js
   p You may know of the a href https: ec.europa.eu taxation customs vies VIES a site where you can manually validate EU VAT numbers but did you know that the European Commission also has an API for programmatically doing this? sup id fnref:1 a href #fn:1 class footnote-ref role doc...
10  mai     15h20
Hell site
   p img src https: ar.al 2021 05 10 hell-site . pigs-talking-about-the-free-model.png alt Pigs talking about the free model: Pig 1: Isn’t it great? We have to pay nothing for the barn. Pig 2: Yeah and even the food is free. p p They have a word for Twitter on the fediverse. p p They...
08  mai     10h03
Ethics as PR (or the Some Very Good People Work There ’ Fallacy)
   p img src https: ar.al 2021 05 08 ethics-as-pr-or-the-some-very-good-people-work-there-fallacy doctors-in-cigarette-ads.webp alt Cigarette ad from the United States circa 1930s. Photo of a male doctor smoking. More Doctors Smoke Camels Than Any Other Cigarette p h3 id ethics-in-ai ...
19  avril     11h24
Using Subresource Integrity (SRI) in Vite with small-tech vite-plugin-sri
   p A few weeks ago I created a a href https: developer.mozilla.org en-US docs Web Security Subresource Integrity Subresource Integrity a (SRI) plugin called a href https: github.com small-tech vite-plugin-sri#readme small-tech vite-plugin-sri a for a href https: vitejs.dev Vite a ....
16  avril     18h45
Clean up the web
   p strong Developers, it’s time for you to choose a side: strong will you help rid the web of privacy-invading tracking or be complicit in it? p h3 id -httpscleanuptheweborg s ï a href https: CleanUpTheWeb.org https: CleanUpTheWeb.org a h3 p em Spread the word using the...
03  avril     12h26
Passing data from layouts to pages in SvelteKit
   figure img src https: ar.al 2021 04 03 passing-data-from-layouts-to-pages-in-sveltekit sveltekit-data-flow.svg alt Sequence diagram representing the data flow detailed in the text of this post. figcaption p Data flow from layout to page (slot) in SvelteKit p ...
01  avril     15h35
Site.js starter template for vite svelte
   p Over the past few weeks, I’ve been experimenting with some initial clients for the a href https: ar.al 2020 08 07 what-is-the-small-web Small Web a clients for a href https: sitejs.org Site.js a and a href https: github.com small-tech place Place a using a href https...
    15h04
npm init using
   p Want to download a git repository to use as a starting point for your own Node.js app but you don’t want to clone the repository? p p Try this: p div class highlight pre style background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4 code class language-shell data-lang ...
09  mars     14h22
References to methods are a JavaScript minefield
   figure img src https: ar.al 2021 03 09 references-to-methods-are-a-javascript-minefield wile-e-coyote.webp alt Wile E. Coyote blowing himself up with some TNT as the roadrunner watches from afar. figcaption p Your code, doing exactly what you told it to (as...
07  mars     12h46
fs-extra to fs
   p I’m a big fan of the a href https: github.com jprichardson node-fs-extra fs-extra a module for Node.js. It has made my life much easier over the years. However, as I a href https: ar.al 2021 01 27 commonjs-to-esm-in-node.js migrate my modules from CommonJS to ECMAScript Modules (ESM) ...
22  février     08h18
Cache busting in Node.js dynamic ESM imports
   p I’m porting a href https: github.com small-tech jsdb JSDB a to EcmaScript Modules (ESM) and one of the issues I had to look into was module cache invalidation. p p JSDB is my a href https: ar.al 2020 10 20 introducing-jsdb little in-memory native JavaScript Database a that writes...
27  janvier     10h30
CommonJS to ESM in Node.js
   p img src https: ar.al 2021 01 27 commonjs-to-esm-in-node.js 2021 01 27 commonjs-to-esm-in-node.js lego.jpg alt Legos p p Yesterday, I refactored a href https: github.com small-tech place Place a sup id fnref:1 a href #fn:1 class footnote-ref role doc-noteref 1 a sup ,...
31  décembre     17h13
Snowpack Hot Module Replacement (HMR) from scratch with vanilla JavaScript
   p img src https: ar.al 2020 12 31 snowpack-hmr-from-scratch screenshot.png alt Screenshot of the sample application running in browser. Text: Snowpack Hot Module Replacement (HMR) from scratch with vanilla JavaScript. This page has been open for 127 seconds. Green on white text, small caps...
30  décembre     12h48
Skypack: Backdoor as a Service?
   p img src https: ar.al 2020 12 30 skypack-backdoor-as-a-service backdoor.png alt Black and white illustration: Silhouette of a door ajar in a pitch black room, with light spilling in. p p There’s some exciting work being done with projects like a href https: svelte.dev blog whats-the...
24  octobre     18h09
Why I wrote 152 extra lines of code just to do the same thing (and why I’d do it again today)
   figure img src https: ar.al 2020 10 24 why-i-wrote-152-extra-lines-of-code-just-to-do-the-same-thing-and-why-id-do-it-again-today printout.jpg alt An old bound dot-matrix printout of computer code. figcaption p Who else remembers printing out code on a dot...
20  octobre     15h23
Introducing JSDB
   p Yesterday, I released version 1.0 of a href https: github.com small-tech jsdb JavaScript Database (JSDB) a , a new database for Node.js optimised for use with a href https: ar.al 2020 08 07 what-is-the-small-web Small Web a sites and apps. p p It does things a little differently to...
23  septembre     15h05
What if data was code?
   figure img src https: ar.al 2020 09 23 what-if-data-was-code spiderman-pointing-meme.jpg alt Spiderman pointing at Spiderman meme. figcaption p Code? Data? Data? Code? p figcaption figure p strong Update: strong This is now a thing and it’s...
07  août     12h03
What is the Small Web?
   p Today, I want to introduce you to a concept - and a vision for the future of our species in the digital and networked age - that a href https: small-tech.org videos creative-mornings-istanbul I’ve spoken about a for a while but never specifically written about: p p The Small Web. p p...
12  juillet     15h47
Live Stream: A web site on your phone with Site.js
   p A sneak peek at hosting a web site on a a href https: www.pine64.org pinephone PinePhone a using a href https: sitejs.org Site.js a 14.2.0 Alpha. p div id vimeo style position:relative; iframe src https: player.vimeo.com video 437622034 frameborder 0 allow autoplay;...
09  juillet     10h18
Mentoring the Eastern Partnership Civil Society Online Hackathon
   figure img src https: ar.al 2020 07 09 mentoring-the-eastern-partnership-civil-society-online-hackathon eastern-partnership-civil-society-online-hackathon.jpg alt Image of a person conjuring a networked lightbulb from an iPad figcaption p No, we will not be...
25  juin     15h34
How to use the Zoom malware safely on Linux if you absolutely have to
   figure img src https: ar.al 2020 06 25 how-to-use-the-zoom-malware-safely-on-linux-if-you-absolutely-have-to zoom-in-firejail.jpg alt Screenshot of Zoom running in Firejail with the output from Firejail shown in a Terminal window under it. figcaption p Zoom is...
11  avril     11h23
How Apple and Google will cure COVID-19 and how you can opt into it if you want to keep your job
   figure video controls poster ’https: i.vimeocdn.com video 876997523.jpg?mw 2500&mh 1406&q 70’ source src ’https: player.vimeo.com external 406507022.hd.mp4?s 61ba0b63f278474c2c1d0bc0c5f7597d23a8e3d7&profile id 175’ type ’video mp4’ video figcaption Contact Tracing is all fun...
03  avril     19h17
Al Jazeera Live interview on corporate and government mass surveillance in the time of COVID-19
   figure video controls poster ’https: i.vimeocdn.com video 873414877.jpg?mw 2500&mh 1406&q 70’ source src ’https: player.vimeo.com external 403808336.hd.mp4?s 71158f937ca8d96f1979459d777bda6a69ae5f4f&profile id 175’ type ’video mp4’ video figcaption The hard-won civil liberties...
25  mars     10h28
Apple just killed Offline Web Apps while purporting to protect your privacy: why that’s A Bad Thing and why you should care
   figure img src https: ar.al 2020 03 25 apple-just-killed-offline-web-apps-while-purporting-to-protect-your-privacy-why-thats-a-bad-thing-and-why-you-should-care . baby-bathwater-wide.jpg alt A wood carving, colourised with a blue tint, of a woman throwing the baby out with the...
23  mars     20h01
Fail-fast on missing required arguments in JavaScript using default values that throw
   figure img src https: ar.al 2020 03 23 fail-fast-on-missing-required-arguments-in-javascript-using-default-values-that-throw road-runner-exploding-box.jpg alt Screen grab of road running with an ACME box exploding on his face figcaption p Missing arguments are...
18  février     19h46
Flying to Antwerp tomorrow to present the opening keynote at Dig It Up on Thursday
   figure img src https: ar.al 2020 02 18 flying-to-antwerp-tomorrow-to-present-the-opening-keynote-at-dig-it-up-on-thursday aral balkan copyright %20re publica Gregor%20Fischer.jpg alt A photo of me during my talk at Re Publica figcaption p I will be presenting in...
20  janvier     10h38
A happy ending to the Better Blocker saga
   figure img src https: ar.al 2020 01 20 a-happy-ending-to-the-better-blocker-saga little-britain-complaint-form.jpeg alt Still from TV show Little Britain with the Computer Says No Lady holding up a Complaint Form figcaption p It’s going to work out in the end. ...
14  janvier     19h13
Apple App Review: resistance is futile
   figure img src https: ar.al 2020 01 14 apple-app-review-resistance-is-futile computer-says-blub-blub-blub.jpg alt Still from British TV series Little Britain with the Computer says no woman with googly eyes, tongue sticking out, question marks floating around her head and an...
    11h48
Apple App Review says maybe : the whims of trillion-dollar gatekeepers
   figure img src https: ar.al 2020 01 14 apple-app-review-says-maybe-the-whims-of-trillion-dollar-gatekeepers computer-says-maybe.jpg alt Still from British TV series Little Britain with the Computer says no woman with question marks floating around her head figcaption ...
13  janvier     11h59
Apple Says No ’ and what that means for the future of Better Blocker following our move to Ireland
   figure img src https: ar.al 2020 01 13 apple-says-no-and-what-that-means-for-the-future-of-better-blocker-following-our-move-to-ireland important-message.png alt Screenshot of the alert people will see when they launch the latest macOS app, telling them about the migration and...
02  janvier     11h36
Dear Apple, a little help here? How hard can it be to move our developer account to our new not-for-profit?
   figure img src https: ar.al 2020 01 02 dear-apple-a-little-help-here-how-hard-can-it-be-to-move-our-developer-account-to-our-new-not-for-profit computer-says-no.jpg alt Still from British TV series Little Britain with the Computer says no woman figcaption p...
01  janvier     15h50
In 2020 and beyond, the battle to save personhood and democracy requires a radical overhaul of mainstream technology
   style Because CSS sucks. Hack courtesy of https: css-tricks.com NetMag FluidWidthVideo Article-FluidWidthVideo.php .videoWrapper position: relative; padding-bottom: 56.25%; 16:9 padding-top: 25px; height: 0; .videoWrapper iframe position: absolute; top: 0; left...
29  novembre     10h21
The Future of Internet Regulation at the European Parliament
   style Because CSS sucks. Hack courtesy of https: css-tricks.com NetMag FluidWidthVideo Article-FluidWidthVideo.php .videoWrapper position: relative; padding-bottom: 56.25%; 16:9 padding-top: 25px; height: 0; .videoWrapper iframe position: absolute; top: 0; left...