Skip to main content

Senior Web Engineer. Open web / music. Remote DJ. Tall Dutch guy. #3million

micro.blog/sander

github.com/svandragt

mixcloud.com/cloudseer

 

If you send email using `[email protected]` then think about why you're not having a human contact? Why are you sending email and missing out on starting a conversation? That's bad business. It also flags you as a potential spammer.

 

Looking for a way to checkout the same git repos on two machines. Moving the files into cloud sync causes trouble so maybe there’s a tool that export git repo definitions from a folder structure?

 

My server ran out of space, it turns out NextCloud was holding on to 30GB of trash! Fixed as per https://bayton.org/docs/nextcloud/nextcloud-hoarding-trash-how-to-force-automatic-removal-of-deleted...

 

elementaryOS is the comfy slippers of Linux distributions. If Apple ever ruins their privacy game, this is where I will end up.

 

Firefox's spelling checker wasn't working for me, and unfortunately it doesn't support the macOS default one, so I was seeing a lot of spelling errors. I fixed it by installing the recommended links at https://addons.mozilla.org/en-GB/firefox/language-tools/

 

Upgrade BookStack

I use the following script to run a daily upgrade on the instance:

#!/usr/bin/env bash
pushd /var/www/brain.vandragt.com
        git pull origin release && composer install --no-dev && php artisan migrate --force
popd

 

I’ve FINALLY setup a BookStack instance (trivial, once I sorted out a Let's Encrypt issue) for reference documentation. Find it at https://brain.vandragt.com. The ‘pages’ functionality for Known is pretty weak, and I think Bookstack will give me a good organisational structure by default, rather than hacking around in other systems. The Braindump will help me note down things I learn and collate my snippets.

I'll move my reference documentation from my site into it over time.

 

Installing PyInstaller on a Poetry project on MacOS

I'm looking to create a cross-platform executable of my commandline application. The application is using poetry as the package manager, and I'm running this on MacOS.

First we need to install PyInstaller:

$ poetry add pyinstaller --dev

Then it should be as simple as running the following:

$ poetry shell
$ pyinstaller --onefile app/app.py

Macho Libre

However, this resulted in the following error:

ModuleNotFoundError: No module named 'macholib'

macholib can be used to analyze and edit Mach-O headers, the executable format used by Mac OS X.

It’s typically used as a dependency analysis tool, and also to rewrite dylib references in Mach-O headers to be @executable_path relative.

Manually adding this dependency to the project addresses this:

$ poetry add macholib --dev

NLTK

However, now calling pyinstaller again throws up a new error:

Unable to find "nltk_data" when adding binary and data files.

NLTK is a leading platform for building Python programs to work with human language data. It provides easy-to-use interfaces to over 50 corpora and lexical resources such as WordNet, along with a suite of text processing libraries for classification, tokenization, stemming, tagging, parsing, and semantic reasoning, wrappers for industrial-strength NLP libraries [...].

Fortunately we can download the missing data as follows (from within the poetry shell):

$ python
>>> import nltk
>>> nltk.download()

Press the download button on the window that pops up and make sure the installation path matches the error message path.

Then fix the path to NLTK in PyInstaller according to this StackOverflow answer. To get to the right location, ask poetry:

$ poetry env list --full-path
$ cd <path>/lib/python3.7/site-packages/PyInstaller/hooks

Rerunning the pyinstaller command after this produced an executable! However it's 1.2GB, propably due to including the macholib library.

I will update this post when I've figured this out.

 

When a website looks good people will be drawn in; when the experience is good people will come back.

 

Hide Trackbacks 1.1.4

Hide Trackbacks is a WordPress plugin that hides pingbacks and trackbacks from your website comments.

The minimum supported WordPress version is now 5.0 and I've bumped up the version to indicate it is tested against the upcoming 5.4 release.