Janik von Rotz

Sync Obsidian mobile app with Working Copy git repo

I’m using the Obsidian note taking app for almost anything. Having everything stored in plain text Markdown files makes it easy to sync the Obsidian vault with any file sync provider. However, getting the Obsidian vault on the mobile phone without their syncing service is not so easy. In this guide I will explain how you can sync the Obsidian vault to your phone using git and Working Copy.

Read More...



ZSH scripts with dynamic command completion

ZSH/Bash completion guides sure are confusing. I personally had difficulties wrapping my head around those arbitrary compdef, _describe, _arguments, compadd commands. Moreover, in my case I wanted to complete a script that is placed in multiple folders and should load completion arguments dynamically. Luckily I found a simple solution.

Read More...



Odoo Development: Create a smart button with a counter

Smart buttons help navigating between linked models in Odoo. Creating a smart button requires three components: counter field, compute function, view action and a button box on the view.

Read More...



Odoo Development: Prevent deletion with custom constraint

By default Odoo asks for confirmation if a record is being deleted. Making validations before deletion is up to the developer. I will show how you can add a custom constraint that prevents a record being deleted.

Read More...



Odoo Development: Add archiving functionality

Odoo has a builtin archiving function for any model. Once a record is archived it will not be displayed in any views and selections, but can is easily be unarchived. This functionality ensures that relations must not be removed if linked records is obsolete.

Read More...



Odoo Development: Configurable Kanban state

With the Odoo framework it is pretty easy to create a kanban view that groups and sorts an item by a state field. I’ll show how a kanban view can be added in a few steps.

Read More...



Odoo Development: Add activity button

The activity button is part of the chatter. Every model form can have activities. I will show how you can enable the activity button for your model form using the mixin class.

Read More...



Use Pop!_OS

I just upgraded my operating system Pop!_OS to the latest version and once again I was surprised by how far Linux has come.

Read More...



The value of code

Being a disciple to the Open Source movement I often have to explain why it is better to make code public than private. Apart from the usual arguments such as “access to better security”, “trust through transparency” or “the design is the intellectual property”, I came up with the argument of true value. Let me explain.

Read More...



A better web

Use alternative services to make the web more healthy and to stay independent. This guide is separated into a Consumer and a Producer section.

Read More...



6