Labs
Subscribe to these posts with the Labs RSS feed.
Subscribe to these posts with the Labs RSS feed.
“As part of my research for Hypha, I just completed the Kappa Architecture Workshop and I’m continuing to dive deeper down the stack to brush up on the fundamental concepts I need to be comfortable with going forward. Next up is Node streams. Streams are used everywhere in Node and while I’ve made extensive use of them in the past, there’s always been parts that seemed magical. I don’t really grok them and I’m working to change that.”
“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 and good and works as you would expect. However, today, I wanted to experiment with running cloud-init on an already-provisioned instance.”
“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.”
“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.”
“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.”
“I just released Indie Web Server version 8.1.1 which introduces a reverse proxy feature.”
“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.”
“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.”
“You have: a VPS with a domain name pointing to it and Node.js installed. You want: to deploy a secure, live static site. You do: npm i -g @ind.ie/web-server && web-server --live Hit your domain name in a browser.”
“What if links never died? What if we never broke the Web? What if it didn’t involve any extra work? It’s possible. And easy. Just make your 404s into 302s. Indie Web Server now has native support for 404 to 302.”
“I just released Indie Web Server version 6.3.0 with new default 404 and 500 error pages and support for custom ones.”
“I just recorded a short video demonstrating just how simple and seamless Indie Web Server really is.”
“In GNOME, you can only set one key binding for a given action using the Settings app (under Devices → Keyboard) even though the settings data structure itself accepts an array. You can, however, set multiple key bindings per action by installing the dconf Editor app or through the command-line using the gsettings command.”
“Indie Web Server is a secure and seamless Small Tech personal web server.”
“Yesterday, I introduced HTTPS Server as a development server. What a difference a day makes! Today, with seamless Let’s Encrypt support via the excellent Greenlock.js module, HTTPS Server is ready for use as a secure Small Tech personal web server for development and deployment.”
“HTTPS Server is a development server that uses nodecert to automatically provision and use locally-trusted TLS certificates.”
“Nodecert is a Node.js module and command-line tool that automatically provisions locally-trusted TLS certificates for your development environment using mkcert.”
“This is a work-in-progress glossary of terms for Hypha.”
“Given the levels of institutional corruption in academia and in the regulatory bodies and advocacy institutions that should be protecting our privacy, very few things shock me these days. So hats off to Bart van der Sloot for managing the impossible and finding a new low by framing institutional corruption as scientific neutrality in his article Dubbele petten in de privacywetenschap…”
“The first era of general computing was the mainframe era and it was centralised. The second, the personal computing (PC 1.0) era, was decentralised. The third is the Web era (let’s call it Mainframe 2.0). And it is, once again, centralised. Today, we find ourselves at the end of the Mainframe 2.0 era and on the precipice of a new chapter in the history of general computing: the Peer Web. Let’s call it the Personal Computing 2.”
“Following on from Hypha Spike: Multiwriter 2 this spike aims to: Use persistent storage Evolve the sign up / sign in processes accordingly ”
“Following on from Hypha Spike: Multiwriter 1 this spike aims to: Simplify the node authorisation flow to a simple authorisation alert on already-authorised nodes. ”
“Following on from Hypha Spike: WebRTC 1 and Hypha Spike: DAT 1, this spike aims to explore: Explore the current state of multiwriter in the DAT world. ”
“Following on from (and in conjunction with) the Hypha Spike: DAT 1, this spike aims to: Replicate a hypercore from browser-to-browser using WebRTC. ”
“Pulled out from Hypha Spike: DAT 1. Use Diceware for passphrase generation to ensure a high-entropy process. Use budo in the spikes to enable lightweight use of bundling/modules/etc. ”
“Following on from Hypha Spike: Diceware, this spike aims to explore: Creating an in-browser DAT data store using the keys generated in the previous spike Replicating that datastore over a web socket connection with the always-on node and making it available over UTP ”
“Your identity – your self – is a sharded aggregate of information. For an organism to have integrity it must have ownership and control over the aggregate of these various elemental shards that, combined, constitute its being. In Hypha, I will call these shards aspects.”
“Independent technology – ethical technology – must be as accessible as possible for its intended audience at every step of the process. That doesn’t mean it must be accessible as possible to everyone at every stage in its development but rather it should be accessible as possible for the people that are working on it or with it at any given point. Hypha is currently at the start of its development stage and thus must be as accessible as possible to developers who want to follow along with its development, run it themselves, and possibly fork it off and try new things with it.”
“ Own and control your own identifiers. No privileged nodes. Effortlessly own and control your own always-on node on the Internet. ”
“Hypha is an exploration of what personal technology means in the digital/networked age. The goal is to create a bridge from the Mainframe 2.0 era to the Peer Computing (PC 2.0) era1. When we talk about scale in peer computing, our focus is on creating systems that are human-scale.”
“Wait, what, we’re deploying Hypha – but we haven’t even built it yet?! Exactly.”
“Green Recorder is an app for recording your screen on Linux which, as far as I know, is the only such app at the moment that works with Wayland. It’s what I used to capture the video of my segment on Al Jazeera News today.”
“Over the holidays, I found a Chromebook that Samsung had given me to evaluate about six years ago and which had been gathering dust ever since. Coincidentally, Laura’s sister Annie had just told me that she needed a laptop. Hmm… Well, there was no way I was going to give her a Google spy device, so I decided to liberate the Chromebook from Google’s surveillance-based operating system (ChromeOS) and gift it to her.”
“I like the idea of a tiling window manager like i3 (or i3-gaps, or sway) not necessarily because of their lightweight nature when compared to a fully-fledged desktop environment like GNOME but because of their potential organisational and navigational value.”
“Hypha is not about building a single product. It’s about exploring the possibilities and problem domain of private communication and what it means to have technology that enables privacy (and therefore personhood). At the same time, it isn’t about designing from the inside out. It’s not about building the protocols and waiting for the tools to happen. It’s about experimenting with both. And, in the process, hopefully sparking one or more everyday things that enable people to communicate with privacy.”
“Kappa Architecture Workshop is an excellent online resource by Stephen Whitmore (of Cabal fame), Mathias Buus (one of the cornerstones of the DAT Project), et al., that gives you an introduction to Kappa Architecture using modules from the DAT Node.js ecosystem like hypercore, multifeed, discovery-swarm and kappa-core… You can follow along with the workshop online, view my working files as I do, and also submit any issues you may run into or improvements you might want to suggest on the workshop’s source code repository.”
“If you’re using the excellent Tilix terminal with the wonderful zsh shell (in my case, via oh-my-zsh), you might notice that opening a new session (e.g., splitting your current session vertically or horizontally or opening a new window), doesn’t start you at the directory you were in in the previous one as you would expect but rather returns you to your home directory. I’ve been getting increasingly fed up with this but not so much that I actually felt bothered enough to do something about it.”
“The pushed the 1.0.6 release of Gnomit, my little git commit message editor for Linux, to the Flathub GitHub repo about two weeks ago but I’m only writing about it now as there was a delay with the update appearing on Flathub.”
“I was supposed to be back in Cork right now but instead I’m staying an extra night in Paris and it’s all because I was using my Linux machine instead of my Mac at the airport…”
“One thing I find myself always having to look up is how to display version information in Linux. That’s because the commands for displaying version information are in no way intuitive or memorable.”
“There’s a new version of Gnomit, my little commit message editor for Linux, thanks to the initiative of Sergey Bugaev who sent me a patch a few weeks ago.”
“Firmware upgrades were failing for me on my Dell XPS 13… A little online research led to me to a page on Debugging UEFI Capsule updates, which in turn suggested that I try the latest fwupdate from master. My inability to RTFM, led me to open an issue on the fwpdate issue tracker when compilation failed.”
“The unfortunately-named Hiawatha web server with its problematic logo is an independent, non-commercial, free and open web server built by Dutchman Hugo Leisink as a hobby project for the last 15 years or so. It’s primarily focused on security and the author appears to have a no-nonsense approach to its development.”
“To open a window and make it appear on top of other windows on macOS, you can do the following: myWindow.makeKeyAndOrderFront(nil) NSApp.activate(ignoringOtherApps: true) This works to show the window, make it topmost and also display the app menu. The problem is that the app menu is not clickable until you tab away from the application and back again.”
“The iOS 12 version of Better is currently in review with a status of Metadata Rejected and I blame responsive design. Let me explain.”
“This post is a follow-up to What’s wrong with Twitter?. Mastodon started out as a microblogging platform similar to Twitter, but has evolved with more features that show an ethical, progressive and inclusive focus. Instead of tweets, your posts on Mastodon are called toots. ”
“One of the many cool features of Mastodon is that you can create custom emoji for your instances which can be duplicated and adopted by other instances. This morning I made an :indieHeart: custom emoji for Mastodon. Here are some things I learned. ”
“TLDR; We now have usable RSS feeds! RSS feed for Ind.ie News (everything: updates and labs) RSS feed for Ind.ie Updates (posts about what we’re doing and why) RSS feed for Ind.ie Labs (more “technical” posts) RSS feed for the Ind.ie Radar (news items relevant to Ind.ie interests) ”
“stringInstance.length in JavaScript is not Unicode aware. That means, for example, that the following code: "🤓".length Will return 2, not 1. If you want a Unicode-aware string length, use this function: ”
“Gnomit, my simple Git commit message editor for Gnome, is now available as a Flatpak bundle. ”
“Gnomit is a simple Git commit message editor for Gnome, inspired by the excellent Komet app by Mayur Pawashe that I was using on macOS. ”
“The Vala Documentation states that the Vala Reference Manual is available in HTML and PDF versions and “is also available for your installed version of Vala as DevHelp from your distribution, such as Fedora or Ubuntu.” Sadly, though, it doesn’t tell you the package names or link to the packages. For Debian’s apt-based systems like Pop!_OS and Ubuntu, the package you’re looking for is called vala-0.40-doc. ”
“Just like you can use iCloud calendars on GNU/Linux, you can also synchronise your contacts as iCloud uses an open standard called CardDAV. ”
“iCloud isn’t just for your Apple toys. Since iCloud uses an open standard called CalDAV, you can synchronise your calendars to your other devices on other operating systems like GNU/Linux. ”
“Dat is an exciting new technology that enables you to synchronise data privately and in a peer-to-peer fashion. It uses the same underlying concepts as blockchain1 sans global consensus, and it’s run by the not-for-profit Code for Science & Society. The community has top-notch people like Mathias Buus, Tara Vancil, Karissa McKelvey, and Jim Pick. ”
“GSConnect is a beautiful shell extension for Gnome Shell that integrates mobile devices that can run KDE Connect (like phones and tablets that run LineageOS) with desktop computers that run Gnome on GNU/Linux (like my notebook running Pop!_OS). One of the features that you might have trouble with is Browse Files as it is broken by default. It fails unless you have a separate app installed. ”
“A cornerstone of Apple’s approach to seamless design is reflected in a feature they call Continuity. Continuity aims to provide a “seamless experience” between your various devices. This is essentially what Joshua Topolsky called the continuous client back in 2010 and a concept that I wrote at length about in my chapter titled Mobile Considerations In User Experience Design: “Web or Native?” in Smashing Magazine’s Redesign The Web book back in 2012.”
“Writing a few blog posts last week, and cross-posting them in various locations, got me thinking about how meta information can be reused. I started looking into the meta information in the <head> of each page, and how best to format it so that social networks (Twitter, Facebook, messaging apps…) would pick up on titles, descriptions and images. That way, when I share a URL from my site, if the site/app has the functionality, they can expand that URL into a preview including a nicely-formatted title, summary, and image.”
“For the last 12 years, my main development machine has been a Mac. As of last week, it’s a Dell XPS 13 running Pop!_OS 18.04.”
“It’s been a few years since I wrote something for 24ways, but this year I’m back, making the case for semantic HTML. As I mention in the article, I see a lot of redundant and unsemantic HTML while I’m working on Better. HTML is often seen as easy, and therefore not worth learning in detail. It’s frustrating because HTML is one of the few completely unavoidable technologies of the web.”