• splitDL – Downloading huge files from slow and unstable internet connections

    Imagine you want install GNU/Linux but your bandwidth won’t let you…

    tl;dr: I wrote a rather small Bash script which splits huge files into several smaller ones and downloads them. To ensure the integrity, every small files is being checked for its hashsum and file size.

    That’s the problem I was facing in the past days. In the school I’m working at (Moshi Institute of Technology, MIT) I set up a GNU/Linux server to provide services like file sharing, website design (on local servers to avoid the slow internet) and central backups. The ongoing plan is the setup of 5-10 (and later more) new computers with a GNU/Linux OS in contrast to the ancient and non-free WindowsXP installations – project „Linux Classroom“ is officially born.

    But to install an operating system on a computer you need an installation medium. In the school a lot of (dubious) WindowsXP installation CD-ROMs are flying around but no current GNU/Linux. In the first world you would just download an .iso file and ~10 minutes later you could start installing it on your computer.

    But not here in Tanzania. With download rates of average 10kb/s it needs a hell of a time to download only one image file (not to mention the costs for the internet usage, ~1-3$ per 1GB). And that’s not all: Periodical power cuts cancel ongoing downloads abruptly. Of course you can restart a download but the large file may be already damaged and you loose even more time.

    My solution – splitDL

    To circumvent this drawback I coded a rather small Bash program called splitDL. With this helper script, one is able to split a huge file into smaller pieces. If during the download the power cuts off and damages the file, one just has to re-download this single small file instead of the huge complete file. To detect whether a small file is unharmed the script creates hashsums of the original huge and the several small files. The script also supports continuation of the download thanks to the great default built-in application wget. [ » Read More…]

  • I love Taskwarrior, therefore I love Free Software

    ilovefs-heart-pxIt’s Valentine’s day and you’re writing a blog post? Are you nuts?“ you might ask. Well, but it’s not only Valentine’s day but also I love Free Software day. This day is proclaimed every year on February 14 by the Free Software Foundation Europe to thank all developers and contributors of Free Software (software you can use for any purpose, which source code you or others can analyze, which can be modified and distributed).

    As last year with ZNC, I want to say thank you to a specific project which easies my daily life. As you might know by other blog posts here, organisation of tasks, mails and almost everything else is a very important issue for me. So this year I want to write some lines about Taskwarrior, taskd and Mirakel which enable me to take some free time without thinking of task which I could possibly forget to accomplish later on.

    My head is full of ideas and mental To-Do lists and so I’m in need of a handy tool which allows me to write down and organise items at any place and time: At my desk, in bus or train, when I’m offline or abroad. And its important that I don’t have (analog and digital) bits of paper everywhere, so I need a system that syncs all task inputs and outputs. I tried a lot of tools but Taskwarrior was the best so far. It used the well-known „Getting Things Done“ concept with different priorities. Taskwarrior also supports tagging tasks, organising them in projects, due dates, postponing, making tasks dependend on others and much more. And Taskwarrior has a (modifyable) algorhythm that sorts your tasks by urgency levels, so that the most important tasks always are on the top of the list. Even now I just took a glance at what Taskwarrior is able to do!

    Picture of a woman with a chalk board which expresses her apreciation for Taskwarrior

    Someone who loves Taskwarrior as much as I do

    Services and programs that organise tasks aren’t very special!“ one might think. But if you prefer sorting tasks digitally, you cannot simply chose a random todo-organising service provider. Most of the tools and services on the market aren’t free and transparent. All input may no longer belong to you, all the gathered information (which is a lot if you think of it!) could be used for targeted ads or worse. You cannot modify the algorhythm to suit your needs. And what happens if the service provider goes bankrupt? All data, all project history and all pending tasks would be lost at once. So using a free (as in freedom), decentralised, maybe self-hosted service is the best idea to organise your tasks decentrally. [ » Read More…]

  • Yourls URL Shortener for Turpial

    Maybe you know Yourls, a pretty cool URL shortener which you can set up on your own server very easily. Link shorteners are nice to have because

    1. you can share long links with short urls and
    2. you can view and organise all links you ever shared (incl. statistics and so on).

    There are many alternatives like bit.ly, ur1.ca and so on, but Yourls belongs to YOU and you don’t have to pay attention to ToS changes or the provider’s financial status. AND you can use whichever domain you own, for example in my case it’s s.mehl.mx/blabla.

    And maybe you also know Turpial, a Twitter client for GNU/Linux systems (I don’t like Twitter’s web page). Until lately I used Choqok, a KDE optimised client, but there were many things which annoyed me: No image previews, slow development, unconvenient reply behaviour and so on. And hey, why not trying something new? So I started to use Turpial which seems to solve all these critic points. Well, like always I missed some preferences to configure. But since it’s Free Software, one is able to look how the software works and to change it – and to share the improvements which I’ll do in the next step! [ » Read More…]

  • Sharing is caring – my Git instance

    Some days ago I noticed another time that I have far too less knowledge about Git.
    „Time to change that!“, I thought and set up my own Git instance and also installed gitweb for better usability.

    Upside 1: I can keep track of the many (mainly bash) scripts I wrote in the past and all the changes I will adopt in the future.
    Upside 2: You can hopefully benefit from using and reading my code. All code is licensed under GNU GPL v3 so please feel free to use, study, share and improve my work!

    Some noteworthy projects I’m (a bit) proud of:

    Any questions, ideas or improvements? Please contact me!

    Update 26.02.2016:
    I washed away the quite basic gitweb instance and moved to Gogs. Here’s why and how. Links to the project may have changed because of that (and I’m too lazy to change them here).

  • Birthday Calendar with ownCloud via CalDAV

    Thunderbird Lightning

    Not a big issue in this blog post but an important one. Maybe I can save you some valuable time if you ever look for such a function.

    As you know I’m a heavy user of ownCloud and you also might know that synchronisation is a big topic for me. And the third thing you should know that forgetting a good friend’s birthday really su… well, it’s no good style. This almost happened to me some days ago because I couldn’t check it on my Notebook with Thunderbird. My setup looks like this: All contacts (with birthday tags) in ownCloud, and these CardDAV address books are synced with my Android phone and Thunderbird/SOGo-Connector on my notebook, as well as the CalDAV calendars with Lightning.

    For Android there are several free software apps which enable the inclusion of birthdays from your contacts into any calendar app. Some calendar apps even can do it theirselves. But for Thunderbird there are only some outdated add-ons. All of them don’t work with TB31 anymore and if you modify the install.rdf-file to make them run anyhow, they’re very buggy or just nonfunctional. And if you look in your ownCloud instance (where contacts‘ birthdays are visible in the calendar tab) for a downloadable/syncable calendar you’ll reach the same conclusion like me: There is none.

    But there is! [ » Read More…]

  • I love ZNC because #ilovefs

    I love Free Software!

    Today is I love Free Software day 2014. Using the slogan „I love Free Software but I love you more“ this day should not only be used to thank our significant others for their love but also to say „thank you“ to people who work hard to ease one’s everyday tasks with the software they develop.

    Have you ever been in an IRC channel?
    If not, you should try it, it’s a great and easy way of communication and very common.
    If yes, then the term „IRC Bouncer“ might be familiar to you. It keeps „you“ online 24/7 in the channel, although your device at home is offline. During this time, your slot in the channel is reserved by your bouncer.

    ZNCIn this blog post, I’d like to present ZNC to you, a beautiful piece of Free Software which you can install easily on a server, is highly configurable and consumes only little server resources.

    „What the hell should this be for?!“ you’re asking? Well, since I’m presenting ZNC, I can give you a few examples of the mightyness of this software:

    • Basic Functions
      • If you’re leaving the channel, ZNC can set an individual away status and reply to anyone how’s calling you directly in the channel or in a query that you’re unavailable at the moment
      • You can add multiple IRC networks with only one account and one port. Similar bouncers like psybnc are unable to do this. You can edit your networks separately, for example with different nicknames or away messages
      • You don’t want to quit IRC even if you have to because the ongoing discussion is so interesting? No problem with ZNC. ZNC can buffer the channel chat and queries to you, so you can everything if you’re back again. This also helps if you had connection issues and come back a few minutes later – you’ll never miss anything again

    Well, these are only the basic functions. Below I added several others which have convinced me to keep using ZNC and nothing else. Of course, it’s Free Software (Apache 2.0 License) and it’s quite actively developed. If you have no server or no time to install something on it, you can also use one of the many ZNC providers for free.

    If you like ZNC as much as I do, please consider helping them to improve the software or just donate to keep the very useful wiki alive!

    Further cool functions you might find useful: [ » Read More…]

  • Mounting a SFTP storage in GNU/Linux

    This (longer than expected) post explains how to transfer files securely between your device and an external storage. The first part may be useful for you if you only have little knowledge of terms like (S)FTP(S) and want to learn something about widely used technologies. The second part will help you to mount an external storage so you can manage all files as if they are on your local device and the third, fourth and fifth part will concentrate on easing the mounting process by the help of hostnames, Private/Public Keys and a shell script.
    This guide will be very detailed and is also (and especially) suited for beginners. Maybe also some advanced users can learn something or give hints for improvements.

    Update: With improving Bash skills and more time, I was able to heavily improve the script in the end. Have a look at my Git instance to download the latest version.

    But let’s be honest: All in all, this post will show you again, why Free Software, GNU/Linux and Open Standards are great, easy to use and why Windows users are to be pitied.

    I. Short excursus

    (Nearly) everybody knows FTP. FTP is a protocol which enables you to transfer files between your device and a remote space. Maybe you want to present your documents or images to visitors of your homepage and simply want to upload these files on your webspace. In most cases this could be done by the use of a seperate program like FileZilla.

    So far so good, but there’re several problems. Two of them:

    1. FTP is insecure. Period.
    2. Using an external program (and not your personal file manager) is really annoying if you want to edit the files very often. A realistic example: You have a complicated script running on your website which you’d like to edit in a graphical editor. Using an external client forces you to download the file, open it in your editor, save it and upload it again. Some FTP clients like FileZilla have the functionality to ease this pain in the a**, but trust me: after the twentieth reupload you want to toss your computer away…

    Now we know why FTP is insecure. So what alternatives do we have?

    [ » Read More…]