atlas news
Aral Balkan
23  mars     15h47
Using bound functions to unit test EcmaScript Modules
   Imagine you have the following EcmaScript module you want to unit test untestable js const configurationValue something export function functionToTest return configurationValue The problem is you can t test it for different values of configurationValue which in a real
16  février     13h34
Decentralisation begins at decentring yourself
   My talk at the Department of Art Media Technology University of Southampton on Wednesday February th This morning I was invited to gave a talk at the Department of Art amp Media Technology University of Southampton I was invited by Adam Procter a long time ally who heads up the
15  février     11h03
NodeKit extension for Codium
   NodeKit for Codium a reluctant fork of Svelte Language Tools This past week I cobbled together a very basic NodeKit extension for Codium Download nodekit for codium vsix What s NodeKit Watch the NodeKit video introduction to find out Install Either drag the
07  février     10h15
Everyone Hates Facebook (but this is more than just about Facebook)
   And my timelines lit up in a rare unity the left and right the rich and the poor the healthy and the sick all pleading and nodding and saying yes yes please please do that Adam Dalliance Well it s official everybody hates Facebook But why we hate it matters As does what we intend
26  janvier     11h40
NodeKit Update
   Since the initial demo of NodeKit at last week s Small Is Beautiful we now actually have a nodekit command the server now does naïve restarts on route changes and routes are now lazily loaded the first time they re hit I wanted to record this before jumping down the rabbit hole of implementing
06  janvier     10h55
The web0 manifesto
   The web manifesto a short and sweet middle finger to web Is it Covid or bullshit allergy Towards the end of I started noticing more and more articles on web cropping up each one more grating than the last It was as if journalists public relations hacks were in a race
20  décembre     18h07
How to send an email
   How to send an email by speaking SMTP interactively to an email server This is how email works under the hood and it s simpler than you might think Play the video and follow along Like this Fund us Small Technology Foundation is a tiny independent not for profit We exist in part
18  décembre     13h21
The Three Laws of Personal Devices
   The Universal Declaration of Cyborg Rights states that we extend our selves using digital and networked technologies and that this extended self must be protected under human rights law As the primary means by which we extend ourselves today are through our everyday personal devices computers
16  décembre     12h18
Saying goodbye to an old friend
   Optical adjustment screenshot needs a bit more whitespace at the bottom figure first of type img background color white padding bottom em How do you like them apples We didn t and poor Better paid the price Trillion dollar corporations
11  décembre     18h06
   Tweak the images have drop shadows that create too much spacing reduce this p img margin bottom em Comet Wallpaper illustation by Margo de Weerdt After several months of work Comet version is now available to install on elementary OS
29  novembre     16h34
Ireland’s two-tier health insurance system
   Sorry your browser does not support embedded audio Download the recording An excerpt from an almost ten minute phone call with a Vhi corporate advisor Transcript Question How do you get pre existing conditions and waiting periods waived when getting health insurance from Vhi in Ireland
24  novembre     15h36
The magic one-line ImageMagick 7 AppImage installer
   To install ImageMagick on any distribution that supports AppImage copy and paste this one line script into your favourite shell bash lic wget O tmp magick https download imagemagick org ImageMagick download binaries magick amp amp chmod x tmp magick amp amp test wget qO
23  novembre     17h03
How to apply a chroma key using ImageMagick
   Yesterday I wrote a short post on the fediverse with 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 using Krita Today I decided that since I want localised screenshots for Comet in the elementary OS
08  novembre     15h20
My three-month-long elementary OS 6 upgrade adventure in three parts. (Part 1: Catts)
   I just upgraded my operating system from elementary OS to It only took me three months The journey begins elementary OS Odin was officially released on August th Since there is no auto update tool you have to back everything up wipe your computer and install the new operating
31  octobre     21h26
How to count Unicode glyphs in Vala using Gtk
   Want to try something really scary this Halloween Try counting the characters in a string in Vala For example how many characters do you think there are in the following string var zombie ï ï One You re right So how would you go about getting this result in Vala Use
19  octobre     17h00
How to change the colour of the underline in gspell
   gspell is GNOME s spell checking library When it discovers misspelld wrds it underlines them in dark red Only it can t do wavy underlines so it does solid ones To change the colour say to Dracula pink for dark mode you set gspell text view underline color quot ff c quot Haha just
15  octobre     20h11
How to disable Gtk-Message warnings in your app
   So every elementary OS app at the moment if you start it from Terminal welcomes you with a variation of the following salutation Gtk Message Failed to load module canberra gtk module Gtk Message Failed to load module canberra gtk module Isn t that friendly The
24  août     19h37
Implementing dark mode in a handful of lines of CSS with CSS filters
   I finally got round to implementing dark mode for this site the cobbler s children have no shoes and all that Here s all the CSS I had to add media prefers color scheme dark Invert all elements on the body while attempting to not alter the hue substantially body filter
Omnibus GitLab Let’s Encrypt renewal error and fix
   I moved source small tech org our self hosted GitLab instance to Eclips is a few months ago and noticed today that the Let s Encrypt certificate had failed to renew When I looked on the server the outdated Let s Encrypt certificates were in etc gitlab ssl as expected but when I looked in the
16  août     10h07
Key Mapper: a visual tool for remapping keys (and more) on Linux
   Mapping keys has never been easier in Linux I m a bit particular when it comes to typing Specifically I like to use good typographical habits whenever possible And I use an external keyboard with a physical ANSI US Keyboard layout set to UK Macintosh layout on my Linux laptop So
08  août     15h36
Apple is trying to redefine what it means to violate your privacy. We must not let it.
   Screeching for freedom Illustration by Jérémie Fontana I was there when Steve Jobs unveiled the original iPhone ironically I gave a talk on Flash there right after his keynote I started making apps for iOS from day one learned Swift while it was still in alpha and updated my code
25  juillet     12h27
Fish shell
   Fishing for a new shell Sorry Beautiful defaults Good design isn t about removing the seams altogether it s about having beautiful defaults and layering the seams And this is something that Fish shell absolutely nails To be fair I have no idea why I didn t give it a proper shot
25  juin     12h59
Remote: a little module for more elegant remoting with WebSockets
   Remote is a tiny lt lines of code module that creates a very lightweight façade over a socket connection using convention over configuration to give you an expressive interface with which to send outgoing messages and handle incoming ones You can use it both on the server and on the
27  mai     12h05
Make anything a JavaScript module using Node.js ESM Module Loaders
   Disclaimer you can t load an actual bottle into Node js yet I have a message in a text file called bottle txt Here s how I load it into Node js and output it to the console import message from bottle txt message Wait what How I m glad you asked It s thanks to Node
26  mai     10h05
Archival cascades: a practical way to not break URLs
   Cascades are beautiful things This week I reduced our DigitalOcean hosting costs for Small Technology Foundation from month to month by moving our canonical source code repositories as well as a few other servers to the complimentary hosting provided to our not for profit by
23  mai     19h36
How to get clean analog audio from a Blue Yeti microphone into a Sony a6400 camera using a Raspberry Pi Zero
   Download the video A live demonstration from today s S update Transcript Clean audio clean USB power You can connect the headphone out of a Blue Yeti microphone into the mic in of a Sony a camera but the quality of the audio you get will depend on how clean the USB source powering
16  mai     16h57
JSDB Migrations
   I m busy working on Basil the Small Web 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 other people start using it Basil runs on Site js and Site js uses JSDB JavaScript Database as its database
14  mai     14h14
Scraping the latest EU VAT rates for e-services from the European Commission’s web site with Node.js
   So you now know how to verify an EU VAT number with Node js Lucky you Don t say I don t spoil you But do you know what the latest VAT rates are every EU country Do you Huh do you punk OK so you can find them here Yes that s an HTML page No I haven t been able to find a simple JSON
Using the European Commission EU VAT Number validation API with Node.js
   You may know of the VIES 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 So that s the good news The bad news is that it s SOAP I ll wait until you re done retching ok feeling better Let s
10  mai     15h20
Hell site
   They have a word for Twitter on the fediverse They call it hell site It s very apt When I first joined about years ago at the end of it was a very different place A small non algorithmically curated space where you could have group chats with your friends What I didn t know back
08  mai     10h03
Ethics as PR (or the Some Very Good People Work There ’ Fallacy)
   Ethics in AI There s been a lot of research into Ethics in AI recently and it s being sponsored and led by checks notes surveillance capitalists like DeepMind Similarly lots of people are working on Ethics in Health at Philip Morris and Ethics in Environmentalism at ExxonMobil
19  avril     11h24
Using Subresource Integrity (SRI) in Vite with small-tech vite-plugin-sri
   A few weeks ago I created a Subresource Integrity SRI plugin called small tech vite plugin sri for Vite What is SRI and why should I care SRI is important if you don t trust the place you re loading resources scripts and styles from In your HTML file you provide the hash of each external
16  avril     18h45
Clean up the web
   Developers it s time for you to choose a side will you help rid the web of privacy invading tracking or be complicit in it s ï https CleanUpTheWeb org Spread the word using the CleanUpTheWeb and FlocOffGoogle hashtags
03  avril     12h26
Passing data from layouts to pages in SvelteKit
   Data flow from layout to page slot in SvelteKit I m prototyping Basil the free and open hosting client that s going to power small web org in SvelteKit and one thing I want to ensure from the outset is that the app is not hardcoded for our use so that anyone can easily set up a Small
01  avril     15h35
Site.js starter template for vite svelte
   Over the past few weeks I ve been experimenting with some initial clients for the Small Web clients for Site js and Place using Snowpack and Svelte While I finally got everything working after some trouble and a few discussions pull requests etc some recent regressions in Snowpack broke what
npm init using
   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 Try this npm init using lt github account gt lt starter project name gt lt my project gt What that will do is download the specified repository into the my
09  mars     14h22
References to methods are a JavaScript minefield
   Your code doing exactly what you told it to as always So tell me what s wrong with the following code ms s m h const ONE DAY const ONCE A DAY ONE DAY class Certificate renewalDate null constructor Renewal is in thirty days
07  mars     12h46
fs-extra to fs
   I m a big fan of the fs extra module for Node js It has made my life much easier over the years However as I migrate my modules from CommonJS to ECMAScript Modules ESM and as I m looking at bundling Place into a single JS file for deployment using esbuild I ve started removing third party
22  février     08h18
Cache busting in Node.js dynamic ESM imports
   I m porting JSDB to EcmaScript Modules ESM and one of the issues I had to look into was module cache invalidation JSDB is my little in memory native JavaScript Database that writes JavaScript operations to append only JavaScript logs that have UMD headers And it loads in these tables either via
27  janvier     10h30
CommonJS to ESM in Node.js
   Yesterday I refactored Place which is a non trivial Node js app to use ECMAScript Modules ESM Here s a diff of the full set of changes This is the approach I took and some of the issues I ran into in case it helps someone else Find and replace First off I started by running the following
31  décembre     17h13
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
30  décembre     12h48
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
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)
   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
20  octobre     15h23
Introducing JSDB
   Yesterday I released version 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
23  septembre     15h05
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
07  août     12h03
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
12  juillet     15h47
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 Alpha This event has now ended You can watch the recording above vimeo padding media only screen and max width px vimeo padding margin top margin bottom
09  juillet     10h18
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 PM Irish time with the introductory session During the
25  juin     15h34
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 Jul 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
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
   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