Alle Beiträge von Tobi

Back to the Future: Using a DEC VT220 from 1983


Back to the Future: Using a DEC VT220 from 1983

I bought an actual serial terminal. It is many years older than I am, and can display 24 lines by 80 (or 132) colums of text.

My workflow is quite terminal centric: Work for Uni is done with vim over ssh, emails are read with mutt, and ncmpcpp provides the front end to my music. If it weren’t for the Internet, I’d ditch the display server without batting an eye.

My three Weeks living with Ubuntu Touch

Source: Cartmanland; BY-CC-Licensed | Source: Vinodh Moodley; BY-CC-SA-Licensed
When I was faced with wiping my Nexus 5 phone once again, I decided to install Ubuntu Touch. Here’s my experience after 3 weeks of it being my daily driver.

This is not the first time I had Ubuntu Touch on my phone: I tried it a few years ago using multi boot – but that doesn’t work any more on the Nexus 5, because the developer seems to have abandoned it. The Nexus 5 isn’t supported by Canonical directly either, so I had to get my installation from UBPorts, which is, as expected, beind in development from Canonical. Weiterlesen

How To Import VCF (VCard) in Ubuntu Touch

This sounds unbelievable, but is indeed true: You cannot import a .vcf file into Ubuntu Touch in 2016 – three and a half years after the first version of the OS was published!

This AskUbuntu thread is one of the only results – but it doesn’t work with .vcf files containing multiple contacts.

I botched together this little script, that splits up your VCard file and imports each contact into Ubuntu Touch.

You can run this using the Terminal App from the Ubuntu store / OpenStore or via adb shell from your computer. Connect your phone via USB and enable Developer Mode.

#!/bin/bash -e

# Ubuntu Touch import script for VCard Files, public domain.
# First parameter is file to be imported (e.g. `./ my_contacts.vcf`)
CONTACTDB="Personal" # change this to Persönlich if device language is German

awk ' /BEGIN:VCARD/ { ++a; fn=sprintf("card_%02d.vcf", a); print "Writing: ", fn } { print $0 >> fn; } ' $1

for $VCARD in card_*
	echo "Importing: ${VCARD}"
	syncevolution --import ${VCARD} backend=evolution-contacts database=${CONTACTDB}
	rm ${VCARD}

You might have to change the variable $CONTACTDB to suit you language. The correct term can be found when clicking the gear icon in the Contacts app.

The awk command comes from this StackExchange thread – no copyright claimed.

Base65536: The (not very serious) Successor of Base64

Base64 is an encoding scheme, which allows the safe transmission of files between ascii- and EBCDIC-based computer systems, which were popular in the fifties and sixties. Although no computer today uses the EBCDIC character set, base64 is still used for encoding binaries on the internet. Email attachments are encoded this way, and sometimes you can find small images, which are directly embedded in the source code of the web page.

So what is base65536?

Weiterlesen – can this alternative to YouTube survive?

Screenshot of Linus Tech Vessel channel, © Linus Tech, Vessel
A little over a year ago, Vessel launched as an alternative video platform, trying to demonopolize YouTube as the quasi only option to upload videos professionally (i.e. earn money with your videos).
To get a foot into the market, they made deals with a lot of Youtube personalities to upload to vessel a week in advance and instead of showing users advertisements, either in the form of prerolls or sponsor spots in the middle of the video, they collect a small monthly subscription fee. Vessel boldly announced their launch in the form of sponsored YouTube videos giving away a full year of premium subscriptions to everyone signing up in the first month or so.
In March 2016 the free premium accounts expired, and I wanted to know, how many people are still watching on vessel now, compared to when they had a free premium account.
Sadly, Vessel doesn’t disclose a view count, or how many people have purchased a premium account after the first month. They do however have a ‚like-button‘ below every video and a comment counter. I decided to at least get a rough idea about their view count compared to last year.

Creating a single PDF from web based epaper readers

Updated to work again (2016-11-08)


I have a epaper subscription for the newspaper der Standard. The iPad app is good, the Android one good enough, but the web client, for the desktop, is an abomination.
You get to click throuh JPEG images, too small to read the text, and if you are interested in an article, you have to click a button, which opens a single page PDF. After reading, you go back to the awful web client, click the next page button, and the pdf one again.

There must be a better way, I thought, and so i made one.

Build Yourself a Raspberry Pi Zero Availability Checker powered by a Raspberry Pi

The Raspberry Pi Zero is still very hard to get – it seems to be constantly out of stock.
So I made Raspberry Pi powered* Raspberry Pi Zero Checker: It scans Adafruit, Pimoroni and The Pi Hut for strings indicating stock and warns you with an annoying ‚alarm‘ sound. I also have a PHP version for my web server that also works very well.

*Note: any computer will do – but a Pi can be left on all the time without annoying fan noise or high power bill.

This is a very simple project both soft- and hardwarewise: Get your Pi online, automatically start the script on boot (rc.local or systemd) and plug in some speakers.
If you do not want to get woken up in the middle of the night, you might want to add some code to not trigger the alarm after 22.00h for example.

Composite USB Gadgets on the Raspberry Pi Zero

original by jsmith7342, cc by-sa, others cc0/PD

Hi, Hackaday! 😀

Want your Pi Zero to emulate a keyboard, ethernet adapter, serial device, mass storage, and many more at the same time? This tutorial is for you!

The Pi Zero is all the rage – and I too am working on a Zero-based project.
[LadyAda] and [gbaman] both have written tutorials on the old series of drivers, g_{hid,ether,serial,*}. Those are not flexible at all, only allow for one loaded at each time and in case of the hid-gadget even require you to modify and recompile the kernel module.

LibComposite solves those problems by putting the configuration into userland (ConfigFS).