Geen ongewenste reclame

Je krijgt op een jaar nogal wat direct-in-de-papierbak reclame binnen. Ik ben in mijn gemeente (Grimbergen) op zoek gegaan naar de “Geen Reclame” sticker, maar zowel het postkantoor als het gemeentehuis konden me niet verder helpen. Ik heb dan maar online gezocht naar de juiste oplossing voor een reeks ongewenste reclame bronnen:

DIY: my bamboo USB SSD disk bay

This is the story of how I made my own pretty bamboo USB SSD disk expansion support for my laptop, hereby possibly inventing the gadget category “disk expansion laptop coaster

2017 Peter Forret

As a photographer, I need a lot of storage space. As a travelling photographer, I also need it on my laptop. My current 13″ MacBook Pro is plenty fast, but it only has a 512GB SSD drive. I quickly found out that is way too small. So I bought an external SSD disk. The Samsung Portable 500GB version is affordable and it’s almost as fast as the internal drive. But it’s only 500GB. So I bought a second and a third. Now, travelling with 3 USB disks and a USB hub (since my MBP only has 2 USB ports, and I need one for reading CompactFlash cards) is quite a hassle. There’s cables everywhere, you’re always afraid you’ll drop one, or forget one. So I decided to kind of tape them together.

2017 Peter Forret

After travelling for months with this beta version (made out of a plastic table cover and lots of tape), I decided to make a real one, a version 1.0. Here’s what happened:

Continue reading DIY: my bamboo USB SSD disk bay

Idea: using a helpdesk app as an Applicant Tracking System (ATS)

I recently found myself in the position of having to hire a new colleague for the first time in a long while. This means, I get lots of emails with attached PDFs from people I’ve never heard of, I have to filter out the good ones, invite those and send a thank-you-email to all the other ones. I then evaluate the candidates after their first conversation, maybe invite them for a second interview. A classical funnel workflow. Surely this can be automated and optimised, I told myself (as I caught myself adding colours to Outlook mails in my ‘Applicants’ folder, in order not to forget who I invited and/or answered.)

Continue reading Idea: using a helpdesk app as an Applicant Tracking System (ATS)

Idea: short-term unified group messaging enterprise

I was driving for 6 hours the other day and my wife was asleep, so what does one do: work out the details for a new kind of hosted communication service in my head.

If you are a user of AirBNB, you might have noticed that when you get messages from your hosts in the app, you also get an SMS/text with (the first 140 chars) of the message. The number you get it from, is not the phone number of the host. In my case it was more often a US number. So I started thinking: how does this work? Obviously this is not a phone number per customer, since that would be impossible/unaffordable. If they use N phone numbers to send these messages, when someone replies, how do they know who to forward the message to? It’s not rocket science.

A typical user has one ‘current’ transaction with AirBNB (i.e. ‘where do I sleep tonight?’). If that user (whose phone number we know) sends a message, we know it is concerning that transaction. In the worst case the person stays in a different AirBNB place every night, and you want the group chat to be available 2 weeks before until 1 week after the transaction. That can be managed with 21 different phone numbers. For the hosts that manage several apartments or rooms, they might have up to 100 group chats that are active at the same time. Still, 100 different phone numbers, that’s still doable.

So then I thought, what if you would have a service that allows any company to do this? They want to set up a temporary group chat with different channels (their own app, email, SMS, WhatsApp, Messenger, …) but not manage the details. So that idea crystallised into a short-term unified group messaging enterprise – STUGME.

Continue reading Idea: short-term unified group messaging enterprise

Idea: Extended MRTG format

Every tech geek has his/her preferred tools and one of mine is without doubt Tobi Oetiker’s MRTG (Multi Router Traffic Grapher), which I’ve used to make pretty trend lines of much more than routers or traffic.

MRTG is a Perl program that grabs some measurement values (typically via SNMP) and plots them as time series. It creates ‘daily’, ‘weekly’, ‘monthly’ and ‘yearly’ graphs and the HTML page that shows the graphs and some min/max/average statistics to accompany the graphs. You’ve probably seen the typical MRTG output images before:

Example of MRTG

But MRTG can do more than just SNMP. In fact MRTG can plot any trend, as long as it gets its input in the form of 4 text lines:

[I value]
[O Value]
[server name]

The I value becomes the green bar graph, the O value becomes the blue line, and the rest is only used to generate the following line in the generated HTML pages:

The statistics were last updated Tuesday, 13 October 2015 at 10:40, at which time ‘[server name]’ had been up for [uptime].

Continue reading Idea: Extended MRTG format

Getting rid of “Google Play Services has stopped” on OnePlus

One week after complete reinstallation of my OnePlus I started getting one “Unfortunately, Google Play Services has stopped” error message after the other. I tried a lot of solutions proposed online (“clear the app cache”/Goto Privacy guard/…) but none worked. Until I found this one from ‘ianyeo’:

Continue reading Getting rid of “Google Play Services has stopped” on OnePlus

Reset your OnePlus One to factory settings

About half a year ago I switched from an iPhone to an Android smartphone: the OnePlus One. In the beginning it was splendid and super fast and everything. But recently it has become flaky. I suspect the apps ‘Swiftkey’ and ‘Atooma’ have something to do with it. Swiftkey seemed to drain the battery really fast (5hrs of battery life max – charging requyired 3 or more times a day), and when I started testing Atooma instead of Tasker (for automation), a lot of programs started crashing, including the essential ‘Messages’ and ‘Dialer’ applications. Even after uninstalling a bunch of other applications, I still couldn’t pick up phone calls half of the time. And I got the error message ‘Unfortunately, Google Play Services has stopped‘ once every 10 to 30 minutes. So I decided, I need to reinstall Android on my phone!

Continue reading Reset your OnePlus One to factory settings

Wifi in my car: proof of concept

Some drivers love fancy chrome wheel rims, some add a huge wing spoiler on their car, or fuzzy dice hanging from their rear-view mirror. Me, when I bought my new car, I decided that I wanted a Wifi network in my car. So that any passenger with a laptop/iPod could read his email. And I imagined driving to distant holiday locations while my passenger where watching movies streamed from a NAS disk built into the car.

This weekend I finished episode one: Internet in the car. I used the following components:

The important details here are:

  • The Huawei stick is compatible with the TP-Link router.
  • The Huawei stick can be configured with ‘Save my PIN’, so that when it starts up, it connects to the 3G network without any manual intervention.
  • The TP-Link router runs on 12V DC (which is what a car has)

For the rest, the exercise was quite straight-forward: I configured the Huawei stick on my laptop with the right PIN code, popped it in myTP-Link router, configured the right 3G settings for Telenet (see here). Then I took an old 12V power transformer, chopped off the connector and linked it up to an old car cigarette lighter type of plug (sometimes it’s good to have an archive of obsolete cables and power supplies). I then hid the router under the base plate of my trunk, where there is also the battery (the BMW X1 stores the battery in the back, where you would normally have the spare tyre). I switch on the car and 20 seconds later, I have a Wifi network “OnTheRoadAgain” that is connected to the Internet. Proof of concept is OK!

The next step now is to add a (Synology) NAS, which also runs on 12V, and hook up my iPad to the car Wifi to view my collection of backed-up DVDs from that disk. And maybe run some extra programs (e.g. MRTG for monitoring) on that NAS. To be continued!

Convert Black/White footage to thermographic-like video

I am doing some really cool research lately concerning video conversion and one of the issues I ran into concerns infrared imaging. In short: all the ‘cool’ thermographic (colour is dependent on radiated temperature) images are in color, and the images you get from cheap IR cameras is black and white. How do you convert the B/W into colour?

First of all: we’re talking about two different imaging technologies: the ‘real’ thermographic cameras measure only infra-red (not visible) light, are very precise, expensive and are created by companies like FLIR. They make the cameras that you might have seen in CSI.

On the other hand, you have the cheaper webcam/IP-cam devices that have ‘night-vision’. This means that, in addition to all visible light, the cameras are also sensitive to a part of the IR spectrum, and with some additional IR-lighting, one is capable of seeing in very dark places. They produce B/W images or colour, but then sometimes they show green grass as a bit purple/pink.

What I was trying to do is convert a ‘cheap’ B/W video into the coloured thermographic equivalent, but without expecting that e.g. orange will always mean 38°-39°. Since we start from a mixed visible/IR light video, brightness does not correlate perfectly with temperature. Still, the end result might be easier to interpret.

So this is my source material: a Foscam FI8918W video from Youtube: two cats playing in a kitchen.

I find some inspiration from a guy who did something similar with ImageMagick. The dark/cold areas are supposed to be black/blue, the medium areas more green, then going to yellow, orange, red and white. This seems like a job for the FFMPEG video filter.

I use the ‘curves’ filter and try first with really strong contrast colours:

The color scheme is kind of OK, but we lose a lot of detail (the cats become hard to distinguish). So then I try a more gradual approach:

And this is rather OK. I like it. The cats come out nice.

For the record: the curves used are approximately this:

curves=r='0.4/0 0.6/1':g='.25/1 .75/.5 .9/0 1/1':b='0/1 .25/0 .75/0 1/1'

All scripts and parameters are on my GitHub account: