Aral Balkan
17h13 31  dťcembre
Snowpack Hot Module Replacement (HMR) from scratch with vanilla JavaScript
If you watched Rich Harrisís SvelteKit preview, you were probably swooning over the state-maintaining source updates he demoes in his talk. These are thanks to Snowpackís support for hot module replacement via esm-hmr. In this short post, I want to explain the concept from scratch using Snowpack...
12h48 30  dťcembre
Skypack: Backdoor as a Service?
Thereís some exciting work being done with projects like SvelteKit to reduce complexity and improve the developer experience when building web applications. At the heart of these efforts are basically three core elements: A front-end framework like Svelte or Vue. Native browser support for...
18h09 24  octobre
Why I wrote 152 extra lines of code just to do the same thing (and why Iíd do it again today)
Who else remembers printing out code on a dot matrix printer? Ah, those were the days... (Image courtesy Arnold Reinhold.) At the end of the week, I added the following regular expressions to JavaScript Database (JSDB), to sanitise queries: Disallow list. this.query this.query...
15h23 20  octobre
Introducing JSDB
Yesterday, I released version 1.0 of JavaScript Database (JSDB), a new database for Node.js optimised for use with Small Web sites and apps. It does things a little differently to other databases. Itís an in-memory JavaScript database that persists to an append-only transaction log. And itís all...
15h05 23  septembre
What if data was code?
Code? Data? Data? Code? Update: This is now a thing and itís not called WhatDB but JavaScript Database (JSDB). Read more about it in my Introducing JSDB post. This is a little idea Iím throwing around for WhatDB, the transparent in-memory JavaScript database for local server data that I...
12h03 07  aoŻt
What is the Small Web?
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 Iíve spoken about for a while but never specifically written about: The Small Web. To understand what the Small Web is, letís compare it to the Big Web. In other words,...
15h47 12  juillet
Live Stream: A web site on your phone with Site.js
A sneak peek at hosting a web site on a PinePhone using Site.js 14.2.0 Alpha. This event has now ended. You can watch the recording above. #vimeo padding:56.25% 0 0 0; media only screen and (max-width: 512px) #vimeo padding:100% 0 0 0; margin-top: -12.5%; margin-bottom...
10h18 09  juillet
Mentoring the Eastern Partnership Civil Society Online Hackathon
No, we will not be teaching people to conjure lightbulbs from iPads. Laura and I will be mentoring teams developing civil society applications at the Eastern Partnership Civil Society Online Hackathon. The event kicks off today at 2PM Irish time with the introductory session. During the...
15h34 25  juin
How to use the Zoom malware safely on Linux if you absolutely have to
Zoom is malware... if you have to run it, run it in its own prison. Update (8 Jul, 2020): I ended up doing my talk over our Vimeo Live account instead. You can watch the edited recording on our web site. We gave the folks in the Zoom meeting a link to my talk and they watched it there....
11h23 11  avril
How Apple and Google will cure COVID-19 and how you can opt into it if you want to keep your job
Contact Tracing is all fun and games and opt-in... until it is not. I was on Al Jazeera Live today and spoke about why Apple and Google teaming up to offer a Contact Tracing Framework from iOS and Android devices is worrying to say the least. Quick take-aways: These two US companies, between...
19h17 03  avril
Al Jazeera Live interview on corporate and government mass surveillance in the time of COVID-19
The hard-won civil liberties we hand over today out of fear will not be easy to regain, if we do regain them at all. I was on Al Jazeera Live today and spoke about how we must remain vigilant in the face of surveillance capitalists and governments that want to use the COVID-19 pandemic as an...
10h28 25  mars
Apple just killed Offline Web Apps while purporting to protect your privacy: why thatís A Bad Thing and why you should care
Apple just threw the baby out with the bathwater by killing offline web apps (purportedly to protect your privacy). Blocking third-party cookies, good. Killing offline web apps, bad. On the face of it, WebKitís announcement yesterday titled Full Third-Party Cookie Blocking and More...
20h01 23  mars
Fail-fast on missing required arguments in JavaScript using default values that throw
Missing arguments are not fun. Iíve been working on Auto Encrypt to use in Site.js for the past few weeks and itís at the point now where Iím going through the codebase to increase coverage and improve quality. As part of that process, a few moments ago, I had an idea about implementing...
19h46 18  fťvrier
Flying to Antwerp tomorrow to present the opening keynote at Dig It Up on Thursday
I will be presenting in Antwerp on Thursday. It will look something like this. Photo: Gregor Fischer. Links The conference web site An article on my involvement (in Dutch). About Cultuurconnect (in English).
10h38 20  janvier
A happy ending to the Better Blocker saga
Itís going to work out in the end. TL; DR: Apple have been in touch and offered us a way to migrate to our new not-for-profit without impacting the experience of existing Better Blocker customers. At the start of this month, Laura and I asked Apple for some help to migrate our Apple...
19h13 14  janvier
Apple App Review: resistance is futile
Apple: Computer says... blub-blub-blubí Last time on Dances With Drones, Apple had accepted the iOS version of Better Blocker but rejected the macOS one because of invalid app metadata even though both apps had the same metadata. In response to my asking for some consistency (either...
11h48 14  janvier
Apple App Review says maybe : the whims of trillion-dollar gatekeepers
Apple: Computer says... maybe?í Yesterday, I wrote about how Appleís refusal to update a couple of fields in their database has impacted the future of Better Blocker, the tracker blocker that Laura and I build at our tiny two-person not-for-profit, Small Technology Foundation. I also...
11h59 13  janvier
Apple Says No í and what that means for the future of Better Blocker following our move to Ireland
We didnít want to do this. Whatís going on? In my previous blog post, I asked Apple for a little help with a problem we had with Better Blocker after moving to Ireland and setting up a new not-for-profit here: Weíre a tiny two-person not-for-profit. We used to be based in the UK, where...
11h36 02  janvier
Dear Apple, a little help here? How hard can it be to move our developer account to our new not-for-profit?
Apple: Computer says no? Dear Apple, Weíre a tiny two-person not-for-profit. We used to be based in the UK, where we were known as Ind.ie (and incorporated as a not-for-profit called Article 12). We left the UK (for reasons) and now we have a not-for-profit here in Ireland called Small...
15h50 01  janvier
In 2020 and beyond, the battle to save personhood and democracy requires a radical overhaul of mainstream technology
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: 0; ...
10h21 29  novembre
The Future of Internet Regulation at the European Parliament
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: 0; ...
15h06 13  novembre
Small Technology Foundation Personal Web Prototype-01: a mobile personal web server
Small Technology Foundation Personal Web Prototype-01: an always-connected portable personal web server that fits in your pocket. Imagine holding your personal web site in the palm of your hand. Imagine carrying the digital aspects of your self in your pocket instead of having them on...
18h54 08  novembre
Introducing small-tech https, a batteries-included drop-in replacement for the Node.js https module
small-tech https with globally-trusted Letís Encrypt certificates Todayís my birthday so I thought Iíd give you a little present: small-tech https. Plug-and-play https This is essentially a drop-in, batteries-included version of the Node.js https module that: Automatically provisions...
11h12 03  novembre
Site.js: now with auto updates in production
Sorry, your browser doesnít support embedded videos. But that doesnít mean you canít watch it You can download this video directly, and watch it with your favourite video player. A quick demonstration of the new auto-reload feature. Site.js version 12.10.2 introduces automatic updates in...
19h21 30  octobre
Site.js: now with auto server reload on source code changes
Sorry, your browser doesnít support embedded videos. But that doesnít mean you canít watch it You can download this video directly, and watch it with your favourite video player. A quick demonstration of the new auto-reload feature. Auto reload Site.js version 12.9.7 brings the second...
18h28 29  octobre
Site.js: now with live reload
Laura demonstrating the new live reload feature last night. I just released version 12.9.6 of Site.js with live reload support for static pages. Thereís also a fix for the update command, so please update to this version so that you can keep updating using the update command when we move to 12.10...
11h34 24  octobre
Fixing read-only file system errors after do-release-upgrade from Ubuntu 14.04 LTS to 16.04 LTS
I upgraded an old server from Ubuntu 14.04 LTS to 16.04 LTS today and, when it restarted, I started getting Read-only file system errors on the root partition. Ouch Hereís how I investigated and fixed the issue, including a list of the sites I found that helped me along the way. Am I out of...
08h45 24  octobre
How to migrate from VSCode to VSCodium (the best code editor ever minus the corporate bullshit)
Blogception: a post on VSCodium as itís being written in VSCodium. I am writing this blog post in VSCodium. What? Is that like VSCode? Yes, itís basically VSCode minus the corporate bullshit like surveillance and proprietary-licensed binaries. An ode to VSCode VSCode is the best code...
17h08 22  octobre
The little Raspberry Pi that could (serve a web site)
Yesterday, I asked folks following me on my Mastodon1, if theyíd help me blow up my Raspberry Pi Zero W: A story in three toots... Earlier this week, I got to test Site.js on the Pi Zero and saw that it runs flawlessly. Using ngrok, I exposed the Pi to the harsh and cruel Interwebs and then - for...
10h48 21  octobre
Site.js: now easier than ever to update
Earlier today: the new update command seamlessly updating and restarting Site.js on SiteJS.org. I just released Site.js version 12.9.5. This version brings with it some new commands, the most important of which is the update command1. # Update Site.js to the latest version. site update...
17h00 19  octobre
Scary git-lfs bad object error not so scary after all
I just got the following error while trying to push to my git-lfs-enabled repository: ref master:: Error in git rev-list --stdin --objects --not --remotes origin --: exit status 128 fatal: bad object f895c581f0ff52b2272318105ad7bcc09b5fb8eb Some quick ducking revealed scary stories of repository...
15h31 19  octobre
Install git-lfs on a Raspberry Pi
What is git-lfs? Git Large File Storage is an open source Git extension for versioning large files. I use it on a number of our git repositories at Small Technology Foundation, including for the Site.js web site. Why Pi? As I announced yesterday, since version 12.8.0 of Site.js with Raspberry Pi...
10h47 18  octobre
Site.js and Pi
Chatting about Pi, on a Pi, with a chat server running on Site.js on the same Pi. Yesterday, I released Site.js 12.8.0 which brings initial ARM support for Linux. What that means is that itís now easier than ever to get a static or dynamic (Node.js) web server up and running on a...
16h59 11  octobre
Build a simple chat app with Site.js
Chat room Status: Offline Nickname: Message: Send Messages Shorthand for basic DOM lookup via CSS selectors. const element document.querySelector.bind(document) Display a message in the...
10h30 03  octobre
Site.js, now also on Windows 10
Windows canít even take screenshots properly. Fix the borders. h2 p img outline: 1px solid black; outline-offset: -1px; Last week, I bought a refurbished 7-year-old ThinkPad 440p1 so I could test Site.js under Windows. Long story short, Windows is still shit2. Plus, it...
02h05 27  aoŻt
Introducing Small Technology Foundation, Site.js, and Tincan
Say hello to Small Technology Foundation. Today, Laura and I want to introduce you to Small Technology Foundation, where we will be continuing the work we started at Ind.ie five years ago. In those five years, weíve developed a strong understanding of the problem (surveillance...
10h19 10  juillet
Small Technology at the Interactive Future Exhibition in Darmstadt
Small Technology: my opening slide. Iím about to take off for Frankfurt via Zurich to talk about Small Technology at the Interactive Future Exhibition in Darmstadt tomorrow. This is the graduation event of students on the Interactive Media Design programme at the Hochschule Darmstady...
16h11 06  juillet
ar.al is now running on a new server
Just a quick note that this site is now running on a new (as of yet unreleased) server. Most of the functionality should be the same as before with the caveat that the DAT version is temporarily unavailable. Iíll be re-enabling it once Iíve added native DAT support to the server itself. More info...
05h42 22  juin
Have you heard about Silicon Valleyís unpaid research and development department? Itís called the EU.
You... yes you. Who should you thank for Facebookís Libra? One of the UKís leading privacy researchers University College London The DECODE project And, if youíre an EU citizen who pays their taxes, You. Surprised? Donít be. None of this was unforeseen Today, the EU acts like an...
21h17 15  juin
Rerun cloud-init on multipass
Today, I had the need to experiment with rerunning cloud-init on a virtual machine created with multipass. You can use cloud-init with multipass by specifying a cloud-init.yaml file when creating your instance. e.g, multipass launch --name my-instance --cloud-init . cloud-init.yaml This is all well...
15h04 08  juin
Export import issues with GitLab CE
GitLab CE (the free open source version of GitLab) has an import issues feature but doesnít have an export issues feature (because, not enterprise, apparently). So if you fork a project and want to transfer the issues also, youíre out of luck. Unless you use the API, that is. So I ducked around and...
08h19 11  mai
The Doís and Doníts of Tech Regulation
The Al Jazeera segment from yesterday. Source (Warning: The video is embedded here without trackers. If you watch it on Al Jazeera you will be tracked, including by Facebook). Yesterday, I was interviewed on Al Jazeera news about the Macron-Zuckerberg meeting (Warning: the linked page on Al...
14h09 02  mai
Slavery 2.0 and how to avoid it: a practical guide for cyborgs
The cover of Issue 32 of the Kulturstiftung des Bundes magazine. This is the original English version of an article that I wrote for Issue 32 of the Kulturstiftung des Bundes (The German Federal Cultural Foundation) magazine. You can also read the German version. Thanks to Mauro Morales,...
11h16 30  avril
Indie Web Server 9.1.0: Better error handling
Indie Web Server version 9.1.0 is a minor release that handles the following two, related (and common), errors more gracefully: Trying to enable a web server daemon when one is already enabled Previously, this would succeed even though the earlier server would continue to be served. Now, it gives...
17h59 29  avril
Indie Web Server 9.0.0: Housekeeping
I just released Indie Web Server version 9.0.0. This is mostly a housekeeping release and nearly all the changes are under the hood. Maintainability I refactored the command-line application quite extensively to pull out all the commands into their own modules and remove any redundancy in the...
15h52 20  avril
Indie Web Server 8.2.0: Cascading archives for an evergreen web
Cascading archives for an evergreen web. I just released version 8.2.0 of Indie Web Server. This version brings with it a cascading archives feature to make it easier than ever for you to support an evergreen web and not break existing links as you evolve your sites. Easier than the 404...
13h05 20  avril
Fixing the icon regression in Pop OS 19.04
Ah, consistent icons. After installing Pop OS 19.04 yesterday, my desktop experience became an eyesore as the previously consistent icon set was replaced with what I can only describe as icon vomit soup. If you want to get your pre-19.04 consistent icon set back, do this: Method 1 ...
14h25 18  avril
Indie Web Server 8.1.1: Reverse proxy (local mode)
I just released Indie Web Server version 8.1.1 which introduces a reverse proxy feature. Whatís Indie Web Server? Watch this quick 2-minute demo video to find out. Reverse proxy In local mode (for development use), if you run the server with an HTTP URL instead of a path to serve, Indie Web Server...
16h38 17  avril
This site now runs on Indie Web Server
In the interests of eating my own hamster food1, I just switched this site from nginx to Indie Web Server. The only complication in the process was that I had to update the hostname of the server to match the domain name. Otherwise, the whole process was basically as follows: # Disable nginx. sudo...
19h20 16  avril
Set up a live static personal web site in seconds with Indie Web Server 8.0.0
Watch as I set up a secure static personal web site in seconds from installation to live. On April 1st (no joke), Indie Web Server 7.1.0 introduced the ability to set up a live static web site in seconds on any server that had Node.js installed. Two weeks of hitting my head on a wall and multiple...