RSSAmplifier

Blog

200ok - Accelerating Publishing

Developing and advocating Free and Open Source Software

200ok.chRSS feed ↗108 posts

Latest posts

Building Consistent Habits (Just in Time for New Year's Resolutions)

The Challenge of Consistency We've all been there: you start a new habit with enthusiasm — meditation, exercise, reading, maybe just getting some morning sunlight. The first week goes great. Then life happens. You miss a day. Then another. Soon you're wondering: "When was the last time I actually did this?" Org mode users have long had a powerful solution to this problem: org-habit , a consistency…

Conquer: A Simple Yet Powerful Template Rendering Tool

The Power of Simple Tools In today's complex development landscape, we often overlook the elegance of simple, focused tools. Conquer exemplifies this philosophy by doing one thing well: rendering structured data through templates. Core Functionality Conquer operates on a straightforward principle: Take structured data (YAML/CSV) Apply templates Generate formatted output Basic example This will…

Using keepassxc-cli as Git merge driver

Introduction When storing KeePass password databases ( *.kdbx files) in Git repositories, merge conflicts can become a significant hassle. Here's how to leverage KeePassXC's CLI capabilities to automatically handle these merges. Configuration Steps First, configure Git to use KeePassXC as the merge driver: git config merge.keepassxc.name "KeePassXC Merge Driver" git config merge.keepassxc.driver…

Sandboxing AI Tools: How Guix Containers Keep Your Host Safe While Empowering LLMs

The AI Development Dilemma Picture this: You're deep in a coding session with an LLM, and your AI assistant suggests running some shell commands or manipulating files. It's incredibly productive—until that nagging voice in your head whispers, "What if this goes wrong?" We've all been there. AI tools with filesystem and command execution capabilities are absolute game-changers for productivity, but…

Monitor Your Screen Session Attachments Right in Your Prompt

Summary Learn how to enhance your ZSH prompt with a color-coded indicator showing the number of displays attaching the current GNU Screen sessions, helping you maintain awareness of your terminal multiplexer state. Introduction In a setting where more than one person has access to GNU Screen sessions, I often found myself wondering how many terminals were currently attached to the current session.…

Managing Untracked Files in Git Projects with a Personal Directory

When working on large projects, we often generate files that we don't want to commit but need to keep around - build artifacts, local notes, or temporary configurations. Here's how I manage these files using a personal directory pattern and a handy script to organize untracked files. The .username Directory Pattern I maintain a .$(whoami) directory in my projects (where whoami expands to my…

organice 1.2 is here: Smoother updates ahead

For Org mode users who want access to their files beyond the desktop, organice provides a solution. It's a feature-rich implementation of Org mode designed for modern web browsers on both mobile and desktop, offering a way to view and edit your .org files without needing Emacs. organice synchronizes your files with popular back-ends like Dropbox, GitLab, and WebDAV, ensuring you can access your…

Atomize: A Simple CLI Tool for Managing Atom Feeds

I recently created Atomize , a lightweight command-line utility written in Babashka that simplifies the management of Atom feeds. While it's versatile enough for various use cases, I'll share how it's particularly useful when integrated with document management systems. What is Atomize? Atomize is a CLI tool that helps you create and update Atom feeds programmatically. Written in Babashka (a…

Automate API-less Web Apps: Linux CLI Tricks

The Problem As Linux power users, we're always looking for ways to streamline our workflows. But what happens when your favorite web application doesn't provide an API or CLI? This is the situation with brain.fm , a focus-enhancing music service that runs exclusively in the browser. No API? No CLI? No problem. Enter xdotool: The Unsung Hero xdotool is a command-line utility that simulates keyboard…

Shell Smith: A Clojure Library for Building CLI Tools with Elegant Configuration Management

Shell Smith is a Clojure library that simplifies the creation of command-line interface (CLI) tools by providing a robust configuration management system with smart defaults based on your namespace. Key Features Namespace-Aware Configuration: One of Shell Smith's most powerful features is its ability to automatically use the current namespace as the default name for: Configuration file naming (…

Deep Merging YAML with Ruby Made Easy

Introduction In the world of configuration management, YAML has become a de facto standard. However, when dealing with complex configurations, the need for better inheritance and merging capabilities becomes apparent. Today, I want to introduce you to YamlExtensions , a Ruby gem that solves this exact problem. The Problem with Standard YAML Merging Standard YAML offers basic merging with the <<…

EmacsConf 2024: A Celebration of Free Software and Community

Another year, another incredible EmacsConf! This December, 200ok and Ardeo were once again proud to host the Swiss satellite venue for EmacsConf 2024 in Lucerne. As steadfast advocates of Free Software, we at 200ok consider it both a privilege and responsibility to provide a space where the Emacs community can gather, share knowledge, and strengthen the bonds that make our ecosystem thrive. The…

EmacsConf 2024: Join Us in Lucerne for a Celebration of Free Software!

EmacsConf Returns to Lucerne! Emacs enthusiasts, mark your calendars! On December 7-8, 2024, the heart of Switzerland will once again beat to the rhythm of parentheses and key bindings. 200OK and Ardeo are thrilled to announce our continued partnership as hosts of the official Swiss satellite for EmacsConf 2024. Immersive Experience : Dive deep into Emacs culture surrounded by like-minded…

Announcing EmacsConf 2023 (official Swiss satellite)

Introduction We're ecstatic to announce that the tradition continues! 200ok and Ardeo are teaming up once again to host an official Swiss satellite venue for EmacsConf 2023 , making it a hat-trick following our successful collaborations in 2019 and 2022. Mark your calendars for December 2 and 3, 2023, and join us at Ardeo's Coworking Hub in Lucerne , a venue that radiates community spirit,…

Make teams work again

Let me preface this by saying I've never been a big fan of Microsoft Teams. It's a tool I have to use for work now and then because our customers do. Up until a few days ago I was able to take part in meetings via Teams using the Linux client. But all of a sudden (albeit unsuprisingly) clicking a teams link would not open the Linux client anymore, instead it redirects to a Teams PWA. In Q4 2022…

Schwäbische.de relaunches with alephDAM, becoming a leading news hub in the region

Schwäbische.de relaunched yesterday with alephDAM - it is a major stepping stone for the German news website. alephDAM allows Schwäbische.de to automate the delivery of news agency content, integrating news from various content providers (their print system cci, AFP, DPA, KNA, SID) into their site. This allows Schwäbische.de to automatically deliver a vast amount of articles and images every day,…

Schedule recurring events with flexibility

We are excited to announce the release of our new JavaScript library, event-scheduler . This library allows users to schedule recurring (multi-day) events with the flexibility to provide exceptions for any conflicts. The results can be rendered in any locale to show your audience the expected date format. It's a small library that we have created to provide the schedule for the various recurring…

Inbox Zero Hack: Achieving productivity bliss in the New Year with mu4e

Starting the new year with a clean inbox can be a great way to boost productivity and get a fresh start. The "inbox zero" method , popularized by productivity expert Merlin Mann, involves regularly processing and organizing your email so that your inbox is always empty (or as close to empty as possible). This can help you stay focused and avoid the stress and distraction of an overflowing inbox.…

Reflections on reClojure and EmacsConf: Celebrating the Power of Free Software

Last weekend, 200ok and Ardeo were proud to be satellite venues for two incredible conferences: reClojure and EmacsConf . As an official satellite of the GNU EmacsConf conference, we were thrilled to be a part of this important event and to host such a talented group of attendees. The talks and discussions for EmacsConf are available online at https://emacsconf.org/2022/talks/ . We encourage…

Streamline Your Org mode Workflow with Automatic Clock Table Recalculation

As an avid Org mode user, I often find myself using the clocking feature to track the time I spend on different tasks and projects. One thing that can be inconvenient, however, is having to manually recalculate clock tables every time I want to see an updated view of my clocked time. Fortunately, I recently discovered a simple yet powerful solution to this problem: an elisp function that…

How much did you get done today?

Some days might be busy, but at the end of the day you can't even remember if you got anything done. If you keep your Org mode files in a git repository, there's a way to get continuous feedback on whether or not you're getting stuff done. Let's create a productivity-of-the-day function returning the total number of TODO statements that have either been added or removed from all agenda files. This…

reClojure 2022, now with a physical venue in Lucerne!

reClojure is a free, community driven conference that brings together inspiring speakers in a warm and friendly atmosphere. This year, it's a two-day (Dec 2 and 3) conference. We are also happy to announce that this year we will have a physical venue in Switzerland where we can gather as a community, watch talks, hack all things Clojure, and have a good time together. Our hosts will be Ardeo (…

EmacsConf 2022, with a new physical venue in Lucerne!

EmacsConf is going strong in 2022 - it's a two-day (Dec 3 and 4), two-tracks conference. We are also happy to announce that this year, as in 2019, we're going to have a physical venue in Switzerland where we can gather as a community, watch talks, hack all things Emacs, and have a good time together. Our hosts will be Ardeo ( ardeo.ch ) - the venue is their Coworking Hub in Lucerne. The space is…

Firefox without tab bar (for use in a tiling window manager)

If you are using a tiling window manager, then having tabs in your GUI applications might be sub-par. Whenever there's redundant functionality the question arises: Which option should I pick? Additionally, the tab and menubar of modern browsers take up a lot of real estate. That's certainly good for the user who wants to see all their options. Personally, I prefer shortcuts and more screen real…

Export org using emacsclient

TL;DR The following script will export a given org file to HTML, using emacsclient if an Emacs daemon is running and fall back to using Emacs if no Emacs daemon is running. For more options including a one-liner, as alias or usage in GNU make keep on reading. #!/bin/sh if emacsclient -a false -e 't'; then emacsclient \ -e '(progn (find-file "$1") (org-html-export-to-html))' else emacs --batch \ -l…

Integrating Org mode Agenda into other calendar apps

If you want to integrate your Org mode agenda into other calendars, this is an easy way to do it. There are multiple reasons why you might want to do such a thing - for example to get notifications in your favorite calendar application or to share your daily agenda with coworkers. The following Elisp code exports your Org mode agenda files to an iCalendar file . iCalendar (or ICS) is a standard…

Configuring default applications for xdg-open

When you open a file in Linux, the question arises: Which of the available applications should be opened? Usually, this question is deferred to xdg-open . But, how does xdg-open know which application is the right one and how do you configure the one you want to use instead?🤓 To get started, try opening your file like so: xdg-open your_path . This is just to confirm what application is opened…

Guide on migrating off a self-managed Gitlab instance to gitlab.com

We recently migrated from a self-managed Gitlab instance to gitlab.com. The system administrator of the self-managed Gitlab instance said this would simply entail a git pull && git push and that the migration will be done quickly. Depending on your usage of Gitlab, this is either a naïve oversimplification or straight forward dangerous. The truth is more nuanced and entails quite a bit more work.…

EmacsConf: Traverse complex JSON structures with live feedback with counsel-jq

The last two days were EmacsConf 2020 . It was a great conference as always. Last year, 200ok was able to host one of two real-world satellites . This year, we are happy EmacsConf is happening, again. This time even in a 2-day format hosting many great talks! This blog post is accompanying Alain's talk from yesterday . If you are working with complex nested JSON structures, you are probably…

Disabling cookie popups on websites

Sometimes, when you want to read a regular website, you just cannot, because there's a cookie popup in the way. Of course, in certain states, these are an implication of the law. However, if they won't let you read the website, won't let you opt out of tracking and actually do start to track you immediately, then this can be a bit of an annoyance. This video describes an easy way to circumvent…

Introduction to profiling in Emacs

Whenever Emacs feels slow, or you want to check out just how big the impact of something is RAM or CPU wise, then you can use the built-in Emacs profiler. It's actually very easy and doesn't require a lot of prerequisite knowledge. This is a very basic introduction on how to get started with it: The file in the video includes just one "long" line of code which is 5461 characters long. If it were…

Comprehensive guide on handling long lines in Emacs

Users of Emacs sometimes run into a performance issue which they didn't know about before, but is well known: Working with files which include long lines. If the lines are long enough - which can just be a couple thousand characters - Emacs will crawl to a halt whilst utilising 100% CPU. After reading this guide, you will be well prepared to tackle even these files in Emacs! This issue is not new…

organice renders clickable links automatically

organice is an implementation of Org mode without the dependency of Emacs - built for mobile and desktop browsers. It is free and open source software, developed on Github with a free instance hosted at https://organice.200ok.ch/ . In today's release, we added support for automatic phone numbers recognition. Wherever organice finds a supported phone number format, it will render it as a clickable…

Use Nvidia hardware encoding with Kdenlive, OBS and ffmpeg in Debian

If you have a notebook that ships with a Nvidia GPU and you're recording screencasts or editing/encoding video, this post might be for you. This blog post has an accompanying screencast: I have a ThinkPad X1 Extreme Gen 2 notebook for work. The reason I bought this machine is that it has lots of power which I can make good use of when developing software. Being a higher end notebook, it did come…

Setting up spell checking with multiple dictionaries in Emacs

Here in Switzerland, there are four spoken and written languages: Swiss German, French, Italian and Romansh. Also, we converse a lot in German and English. Hence, it's a regular occurrence to have one file with multiple languages in them. Especially for these situations it's important to have proper spell checking. Fortunately, Emacs has us covered! Emacs has built-in functionality for checking…

Using Emacs and mu4e for emails - even with HTML

Writing and reading email is inherently a text-based workflow. Yes, there's HTML mails and attachments, but at the core email is probably the place where many people write and consume the most text. To utilize the best text-processing program available makes a lot of sense. When combined with other powerful features of Emacs (such as Org mode for organizing mails into projects and todos),…

Creating Org mode sparse trees in Emacs and organice

When you have lots of information in an Org file, it helps to narrow it down to just the topic that interests you right now. There's many ways to do that depending on what exactly you want to do. Creating an Org mode sparse tree is one of those options! C-c / constructs a sparse tree for selected information in an outline tree, so that the entire document is folded as much as possible, but the…

Get Dropbox to sync on Linux after suspend/hibernate

When you run Dropbox on your laptop, you're assuming that it'll synchronize your files whenever appropriate - for example when there's a local or remote file change. And generally speaking, this is exactly what Dropbox does - hence minimizing the chance of conflicts within files, and keeping your machines in sync. There's one big exception tough: If you make remote changes whilst your machine is…

Hack4Glarus Hackathon in Linthal

Hack4Glarus is the first hackathon of Glarus. Hack4Glarus is hosted by our partner company ungleich glarus ag . This will be the fifth incarnation and it will be on the weekend from 2019-11-29 until 2019-12-01. We from 200ok will be there as well - as are our friends from the Insopor Zen Academy . Join us for three great days of hacking, fun and learning! Last time we built and released our open…

Impressions from EmacsConf 2019

EmacsConf 2019 is over. At 200ok, we were very happy that we have been able to host one of two official satellites - with the FSF being the second hosts . It was great fun to enjoy the talks together, share food and have interesting discussions. We want to especially thank the organizers Amin Bandali and Sacha Chua for their great effort and determination to bring a free Emacs conference to the…

IRC and Emacs all the things (messengers like Slack, Skype, etc)

What this post is not about This is not a post complaining about how bad Slack/Skype/YourFavoriteMessanger™ is compared to IRC and that we should continue using IRC instead of them. I'm a pragmatic person and that battle is lost. Having said that, those other tools have some interesting capabilities that IRC lack - like notifications and calling people. Yes, I know about XMPP and Matrix, but like…

EmacsConf 2019 goodies

EmacsConf 2019 is coming closer! Save the date: November 2nd, 2019. EmacsConf is the conference about the joy of Emacs, Emacs Lisp, and memorizing key sequences. The Free Software Foundation has kindly provided us with a set of great goodies that we're giving away at the Zurich satellite . Here's a little preview: If you liked this post, please consider supporting our Free and Open Source software…

Mentoring at the VIScon hackathon at ETH

The ETH society for students studying Computer Science (VIS) has invited Alain and Phil to serve as 2 of a total of 4 mentors during this years 3 day VIScon which is a Hackathon and a symposium on the same weekend. We are very happy to be there the second year in a row ! The Hackathon was fully booked with about a hundred participants; the whole symposium has up to 700 participants. It's been a…

Announcing the official EmacsConf 2019 Zurich satellite

Save the date: EmacsConf 2019 is happening on November 2, 2019. EmacsConf is the conference about the joy of Emacs, Emacs Lisp, and memorizing key sequences. We are happy to announce the official EmacsConf 2019 Zurich (CH) satellite! For the satellite, there will be a physical venue where we will gather, watch remote and hold live talks whilst enjoying good discussions as well as food. In accord…

(-> meetups :clojure-zh restart)

Let's restart the ClojureZH Meetup . This is long overdue! Let's have a drink and talk about the future of the meetup and Clojure in general. We'll meet on Monday, October 14, 2019 - starting at 6pm with an open end at Grand Café Lochergut . If you want to join, please create an RSVP at meetup: https://www.meetup.com/zh-clj-Zurich-Clojure-User-Group/events/264886560/

Render iCalendar feeds on the web

We all use calendars. Some digital calendars have a standardized interface called iCalendar (see Wikipedia ). An example are Meetup.com Groups or Google Calendar. Let's dig into one use case: Meetup is great to organize your local meetup. Meetup also has great sharing and API options. They do support embedding the meetup group together with the next meetup. However, there is no out-of-the-box…

Great option for editing Org mode files on the go: organice

I do most of my work, reading and communications from within Emacs . I also use Org mode as a daily driver for everything from project management to time tracking, sending quotes, creating and presenting slides and much more. For my personal project management, I use the system "Getting things done" . For GTD to work properly, it's prudent to have an inbox with you at all times. That's feasible…

Update a PGP primary key

If you have an old/insecure GPG/PGP key and want to upgrade, this blog post is for you. Such a key would be one using less than 2048 bits or using DSA encryption. I decided that I need to change something about my GPG setup. I was still using a 1024bit DSA key from 2010 which means: Even if I create new and stronger subkeys, my signatures would forever be weak. Since upgrading my old primary key…

Hide "Close issue" button for issues on a Github project board

Many people and companies are using Github issues for project management. With the new projects board feature the transparency for managing a project have been greatly improved. It gives similar options to established tools like PivotalTracker or Trello - basically, you can create a basic custom Kanban board. There's one little UX pitfall into which I see people stepping over and over (I'm no…

OpenSSL responded: [SSL: DH_KEY_TOO_SMALL] dh key too small (_ssl.c:727)

I use Offlineimap to download mails from various accounts to my machine where. After my last Debian upgrade, when running offlineimap , I got the following error for one of my accounts: Establishing connection to imap.redacted.ch:993 (redacted-Remote) ERROR: Unknown SSL protocol connecting to host 'imap.redacted.ch' for repository 'redacted-Remote'. OpenSSL responded: [SSL: DH_KEY_TOO_SMALL] dh…