Skip to main content

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

micro.blog/sander

svandragt

mixcloud.com/cloudseer

 

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.

 

Fafi v0.1.5-alpha

I just released Fafi v0.1.5-alpha. Fafi is a console application that indexes and searches the page content of Firefox bookmarks.

Install via pipx install fafi

v0.1.5 stores the database into it's own application settings (using https://github.com/ActiveState/appdirs)

Source on Github

 

Introducing Faff - Firefox bookmark indexing

Over the holidays I’ve build a little tool, Faff, to index and search the page contents of Firefox bookmarks. This allows searching using words that appear on the pages rather than in the bookmark title. It uses full-text-search with ranking / relevance and snippets, it’s quite WIP. More info at https://github.com/svandragt/faff/

Search query

It's written in Python command-line tool and uses SQLite's full-text search and Newspaper's text extraction, so a search over all my bookmarks takes only about 0.3 seconds although the indexing is certainly slow.

 

Cuttlefish v0.4 Released

Cuttlefish is a PHP based hackable blog framework -- with the goals of being fast, easily hackable, and easy to adopt. I've been working on it since 2012, when it was known as Carbon. It can generate a static HTML site for uploading anywhere, or run dynamically.

Version 0.4 licenses the code as MIT, so anyone can build on top of the project. Cuttlefish now has API documentation courtesy of PHPDox, which is updated whenever code is changed. I've changed the code style from 'WordPress-like' to the PHP community default of PSR12. The project now comes with a Docker container which means getting up and running is even easier.

Install Cuttlefish is easy using the instructions. For a fuller list of changes see https://github.com/svandragt/cuttlefish/releases/tag/v0.4.

Known issue:  I still have trouble getting Xdebug to work, if you're familiar with Docker Compose and Xdebug I could use your help.

For v0.5, now that the codebase is in a better state, I'm looking at adding more features again.

 

Carbon 0.3

It seems today is 0.3 day, as I'm also releasing Carbon 0.3, my hackable performant semi-static blogging system.

This release mainly deals with technical debt as I first started this project 6 years ago as a playground for figuring out how a CMS is written from the ground up. This means there are out of date requirements, references to a Windows platform with Powershell and other such bad examples.

That said the codebase isn't in a terrible state although it will have to change significantly before it's production ready. If you know a bit of PHP then after a short study it can be customised to your needs quite easily.

So, if you're interested you can use it and quickly whip together a documentation or simple blog using only markdown files. It will produce a feed and there's even a half baked cli application and static site generation that I have to review before I can recommend it in honest.

carbon 0.3 theme

Have fun hacking!

 

Fresh Cookies 0.3

I've released Fresh Cookies 0.3, my browser extension for limiting the lifetime of browser cookies to a maximum of 15 days.

It is now a web extension and can be manually installed in Firefox (it also works in Chrome). I'm looking for feedback before I'm ready to submit it any extension directories.

 

More Private Browsing

If you visit this site you will know what browser cookies are and that they are used to store information about you across visits to that website. A typical website will store a few to a few hundred cookies on your computer.

Each cookie has an expiry date for when they are no longer valid and then automatically deleted by the browser. Did you know the lifetime of some of these cookies are several decades in the future and that they are routinely used by data brokers and analytics companies to gather data on you?

That's why I've recommended installing a plugin like PrivacyBadger, to prevent these tracking cookies from being passed back to websites that track you across websites.

But you can also override the maximum lifespan of these cookies. I've experimented and 10-14 days seems to be a good medium between having to login to all your websites all the time and maintaining privacy.

Update: 2019-08-29 - the following no longer works on recent Firefox releases:

On Firefox, open about:config and search for network.cookie.lifetime, you will find network.cookie.lifetime.days (set this to 14) and network.cookie.lifetimePolicy (set this to 3 to override the default behaviour or letting the website decide).

On Chrome or Vivaldi (update: and now Firefox) browsers it's possible to set these values by installing my FreshCookies addon, which does not contain any tracking itself.

 

How to install pip and pipenv properly on Ubuntu 17.10

Ubuntu 17.10 comes with python3 3.6.3 installed by default but not pip and pipenv. We can install install pip systemwide and pipenv into the user local bin so we can use all the convenience when working with our python projects:

wget https://bootstrap.pypa.io/get-pip.py -O /tmp/get-pip.py
sudo python3 /tmp/get-pip.py
pip3 install --user pipenv
echo "PATH=$HOME/.local/bin:$PATH" >> ~/.profile
source ~/.profile

Sources: Installing Python 3 on Linux; pip installation; Installing pipenv; How to permanently set PATH on Linux

Update 9 Nov 2017: replaced curl with wget, thanks Peter

 

Gist: Pomodoro MediaPlayer

I was suffering from lack of concentration later in the workday, until I stumbled upon the Pomodoro focusing technique. I've been a lot more productive and in a better mood since I started using this two weeks ago:

The Pomodoro Technique is a time management method developed by Francesco Cirillo in the late 1980s. The technique uses a timer to break down work into intervals traditionally 25 minutes in length, separated by short breaks. These intervals are known as "pomodori", the plural of the Italian word pomodoro for "tomato".

The method is based on the idea that frequent breaks can improve mental agility.

I created an AutoHotkey script that uses timers and a global hot-key I set for WinAmp to automatically stop and start the music after instructing me to work / have a break. It works really well for me.

 

Serve.sh - A shell script for serving sites

I am experimenting with using a Linux virtual machine as my web development environment of choice. I store the vm on a removable drive so that I can develop from any location, without having to setup a working environment. Previously I had to check out the repositories, setup a local webserver and I had trouble keeping things working, because every configuration change had to be applied in every location. Now it is all centralized and my life is simpler.

The aim is to make working on projects as easy as possible. I have all projects checked out in a folder called /var/sites. They are mostly PHP projects and because of my shared hosting environment they share a single apache configuration. How can I easily serve them? Having seperate virtualhosts for each project would result in me having to make manual changes on every location again, so this was not the way to go.

Instead I created a simple shell script that creates a symbolic link from the Apache's webroot to the project I am working on:

[gallery link="file"]

#!/bin/bash
echo "Available sites:"
ls  /var/sites
echo
echo -n "Type site to serve: "
read site
if [ -z "$site" ]
then
exit
fi
sudo rm /var/www
sudo ln -s /var/sites/$site /var/www

 

[Patch] CodeIgniter Helper class patch for Textile

For those that do not follow me on twitter (@pacifika), I've created a patched version of Textile, the html generator alternative to Markdown, to make it easier to use in CodeIgniter projects. I have provided the patch and patched Textile on support forums of both projects.

[Patch] CodeIgniter Helper class patch for classTextile.php · Textpattern CMS Support Forum.

After patching, you can just use Textile like this:

$this->load->helper('textile');
$text = Textile("Dude this is *my* code!");

For more information read the post on the forums!

 

InstaPlay 1.0

As a hobbyist music producer, I have a lot of samples of sounds. As I have decided to start organising these, I needed a quick way to fire off samples in wav and mp3 format through Windows Explorer.

So I created InstaPlay. This is a simple sound player. To install it simply unzip it in a directory that's in the path, and then associate wav and mp3 files (and whatever else you want to use) with it.  It also has a few features:

  1. Just double click or run a soundfile to hear it play.
  2. Nice speaker icon in system tray while a sound is playing. Double click it to quit InstaPlay and stop playback.
  3. Run  another sound file to switch playback to that instead.

This program will help you categorize more efficiently as you can move the sound that's being played without pesky 'file in use' prompts.

Download Info
Download the latest version (v1.0 - updated 14/oct/2010)

 

Rewarding feedback

Acquiring feedback on web projects can be harder than you'd think, especially when you're working on internal projects that don't get discussed on outside your organization. By making feedback a fun, easy and rewarding thing to do more people might be encouraged to help us and put in the effort.

I'm sure some of you are in a similar situation: you launch a project and silence follows. Trivial problems might emerge but a there's no general response to the long hours you put in. That makes it much harder to evaluate the project and set a schedule for future developments.

To help with this we've created a UserVoice page. Let's describe it as a digg-like FAQ. People are encouraged to leave a message, can vote on feedback they find important, and always have the full picture of what the development is focused on. Developers act on the consensus and theoretically will work on solving the most urgent issues.

Of course this model will work best when both users and developers care enough to communicate. So Uservoice is engineered to make it trivial to leave a message. It can be easily integrated into an existing site. Some functionality requires a user account, which is a stumbling block. But you can leave feedback without it, which is a bonus. Oh and it doesn't integrate with any bug trackers which is a shame.

Will it work and will there be enough participation? Ask me again in 6 months time. I'm not sure how to make it any easier though.