diff --git a/content/blog/2013-10-28-organising-micro-task-emails-in-thunderbird.md b/content/blog/2013-10-28-organising-micro-task-emails-in-thunderbird.md new file mode 100644 index 0000000..208ea16 --- /dev/null +++ b/content/blog/2013-10-28-organising-micro-task-emails-in-thunderbird.md @@ -0,0 +1,114 @@ +--- +title: Organising micro task emails in Thunderbird +author: Max +type: post +date: 2013-10-27T23:12:55+00:00 +url: /2013/organising-micro-task-emails-in-thunderbird/ +yourls_shorturl: + - http://s.mehl.mx/COs2s +categories: + - English + - Tech +tags: + - email + - free software + - gnu/linux + - organisation + - thunderbird + +--- +The title of this post sounds very significant but to be honest, it’s a small thing. + +Everybody has her/his/its own workflow regarding emails. For example me: I LOVE folders! When it comes to the crunch I probably would be able to organise my whole life into folders. + +Well, at least this is what I thought until I began my internship at FSFE. I was used to a high income rate (do you say so?) before but something changed: Normally I read my emails and if something’s important, I open a new task in my taskmanager or simply write it down. In the office I also read lot’s of emails and can put them easily in folders via filters (in Thunderbird and with qmail/maildrop on my mailserver), for example emails in mailing lists. + +But now it is more often the case that by reading those emails, there are beginning some mini-tasks: Commit this translated file on the server, answer these emails, send out that package to a fellow (but not today, do it next Monday), and most importantly, book some restaurants for the General Assembly. You see, these are all small tasks, but they exist. In dozens. And I’m quite sure they will increase. But creating for each micro task a new task in my task manager (Getting Things Gnome by the way) is overload as well. + +For that I’m a forgetful technocrat sometimes, I wanted to pre-empt any mistakes and searched for methods to mark/tag those emails when reading them. Afterwards it should always be possible to find these marked/tagged with one click. In short, I needed a Remembrall, that additionally tells me, what I exactly forgot. + +Dear ladies and gentlemen, here’s my odyssey of finding the perfect method for me: + + 1. Well, because I LOVE folders (did I ever mentioned that before?) I just thought of drag-and-dropping the emails I wanted to be able to find again in another folder like „To-Do“ or „To answer“. This has the disadvantage that the original email isn’t anymore where it has been before. An email belonging to a mailing list’s thread is away and this causes even more inorganisation. Dead End. + 2. Okay, when moving emails is not suitable, why not copying them into separate folders? Well, this is possible but requires 2 to 4 mouse clicks in thunderbird (no, I don’t want to use another mail client) and includes the danger to copy(/move it in the wrong folder (I hate dropdown menus…). Dead End. + 3. For I’m a proud user of the calendar/task addon Lightning, I have also the possibility to create tasks and events out of emails. But this also requires to much information for micro tasks and lacks the same problem as creating tasks in my GTG: it costs too much time and is overpowered. + 4. Shame on all technical stuff, let’s to it the old way: writing it down on my notepad with my…does ANYONE have a pen here? And where the hell is my notepad by the way?! Dead End. + 5. Yes, I finally found a solution which is quite simple but requires some searching. In Thunderbird you have the possibility to create virtual folders (Yeah, more folders!). In these folders, you can collect all emails that match specific criteria, similar to those of the „normal“ email filters for incoming mails. But as a first step one could simply tag or mark an email: + +
+ How to give an email a tag in Thunderbird + +

+ Tag an email in Thunderbird +

+
+ +Each method has its advantages. The tags are quite nice because you can differentiate between (own) tags and you can simply press the corresponding number on the keyboard to tag the mail. The marking method does not have such features but on my mobile (K-9 Mail) I cannot tag an email but only mark it. So I’m able to save some mails for later work when I’m sitting in the train for example. + +No matter how you decide (I’m not quite sure as well what’s the best for me), it’s quite hard to find the emails if you have tagged them. Of course, if you look in the folder, you see colored mails or those with a star but to find them by hand in dozens of folder… good luck boy. + +I already mentioned virtual folders: You can open a virtual folder that lists all emails that match a (or more) special criteria which you can define. If you untag/unmark an email, it just disappears from the virtual folder, but still exists in the (now untagged/unmarked) way as before. + +  + + + +The images show you how to create this folder with filters. It is important to choose the folders to search in (image 4). Now I can mark/tag emails that should be processed in some way, and I can do this on my notebook as well as on my mobile. I hope, this method satisfies my needs for a while and I will give an update if I (or you?) find a better way. And if it helped you as well: you’re welcome :) + +What methods for (micro) task management do you use? Do the tools you use suit your needs? + +_Sorry by the way that all screenshots show the German version of Thunderbird. I hope you could follow the steps._ \ No newline at end of file diff --git a/content/blog/2014-01-13-mounting-a-sftp-storage-in-gnu-linux.md b/content/blog/2014-01-13-mounting-a-sftp-storage-in-gnu-linux.md new file mode 100644 index 0000000..cbd1b91 --- /dev/null +++ b/content/blog/2014-01-13-mounting-a-sftp-storage-in-gnu-linux.md @@ -0,0 +1,259 @@ +--- +title: Mounting a SFTP storage in GNU/Linux +author: Max +type: post +date: 2014-01-13T14:42:01+00:00 +url: /2014/mounting-a-sftp-storage-in-gnu-linux/ +yourls_shorturl: + - http://s.mehl.mx/DcqXM +categories: + - English + - Tech +tags: + - bash + - crypto + - gnu + - guide + - howto + - linux + - script + - security + - server + - shell + - snippet + - ssh + - tutorial + +--- +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][1] 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? + +There is FTPS – using the FTP protocoll in connection with SSL. Well, that sounds great because, you know, SSL is great to ensure the safety of your online banking and frightens away + +sniffing script kiddies. Forget that. FTPS is only securing the authentication process, the transfer of all files remains in plain text. So if you upload a sensitive document, it is fairly easy to intercept it on different levels in the uploading/downloading process. There is also the fact that FTPS is horrible to implement, not very compatible, and not very smart designed. + +The best alternative in my opinion is SFTP (you are confused by all the abbreviations now? Wait for it, it gets better). SFTP uses a SSH connection to build a safe tunnel between your device and the remote storage. SSH is very smart, widely used and on most servers running a Free operating system it is preinstalled and needs no further configuration. SFTP enforces you to transfer your files fully encrypted through a secure channel. + +But how to use it? You can use clients like FileZilla but do you remember the first problem I mentioned? Correct, an external editor is not what suits the needs of someone who wants to work with his files comfortably. + +  + +_**II. Mounting an external storage with SSH**_ + +This sounds more complicated than it really is. The theory behind it is very easy: You mount (link) a remote directory over SSH (a secure channel) in any desired directory on your machine. For instance, you can simply edit all files in _/home/user/remote/_ with your programs, but finally all changes will happen (nearly) instantly on your remote storage. This even works with watching a video file that is located on the server: Open it like a normal video file in a player like VLC and it behaves like it is locally on your PC (if your internet connection is fast enough, just test it!). + +The only prerequisite: You need a server/webspace/storage with full SSH access. Unfortunately many webhosters don’t provide SSH access. If you belong to the unlucky ones, I recommend you to look for alternatives – it is worth it! (below this post, I added a very small list of webhosting providers offering SSH access) + +Now we come to the technical part. For this post, following data is used. Most likely, this will look different in your case. + +
SSH-Server: server1.net
+Username on server: client
+Home directory of user on server: /home/client
+Username local machine: user
+Local mount directory: /home/user/remote/server1
+ +On your GNU/Linux, please assure that following programs are installed. Some of them (ssh-askpass, zenity) are only used in step IV and V: + +
openssh-client, sshfs, ssh-askpass, zenity
+ +Now create a directory in which the remote storage should be mounted in. Don’t worry about the space on your hard disk: This directory is remote and there are only temporary files stored on your local device. In this example I’ll use _/home/user/remote/server1_. It could also be _/fsfe/lol/wtf/nsa/_ if this directory would exist. + +Now, start a terminal/shell to fill in following commands as a normal user. + +
user@local:~$ ssh -p 22 client@server1.net
+ +If asked for a password, fill in the password of ‚_client_‚ (the webhoster should have given it to you). If you are now connected to the server1.net, you are just one step away from mounting it. Close the connection or terminal, open it again and type: + +
user@local:~$ sshfs -p 22 client@server1.net: /home/user/remote/server1/ -o follow_symlinks
+ +This command connects to ‚_server1.net_‚ as the user ‚_client_‚ using the SSH protocol over the standard _port_ 22. Then it mounts the home directory of ‚_client_‚ on the local directory ‚_/home/user/remote/server1_‚ which we created beforehand. Additionally we added the option ‚_follow_symlinks_‚ so that links of the server work on our local machine as well. If you have a look at _/home/user/remote/server1_, you should see the exact same content than in the home directory on your server or if you connect via FTP/SFTP. Congratulation! Now play around with it, try to edit, upload and download files. + +To unmount (speak: disconnect) the directory, type + +
user@local:~$ fusermount -u /home/user/remote/server1
+ +Now you mount the home directory of ‚client‘. If you want to mount another directory on the server (e.g. _/home/client/exchange_), use this modified command: + +
user@local:~$ sshfs -p 22 client@server1.net:/home/client/exchange/ /home/user/remote/server1/ -o follow_symlinks
+ +In the next step, we will make the connection and mounting more comfortable, even if you are handling with more than one server. + +  + +_**III. Using hostnames + +**_ + +Now that you know how (and that) the system works, we will make it easier. Of course it is quite annoying to type in the whole server-address and port each time. Instead of _sshfs -p 22 client@server1.net[…]_, you can simply type _sshfs server1_. How? Just open the SSH configuration file _/home/user/.ssh/config_ with you desired text editor and add: + +
Host server1
+  HostName server1.net
+  Port 22
+  User client
+ +Save it and try to use this shortcut. It also works for normal SSH connection like ‚_ssh server1_‚. For the _Host_ variable, you could use any name you can remember easily, for instance _privateserver_. + +  + +_**IV. Using Public and Private Keys**_ + +Pretty smooth, isn’t it? Well, it gets even better! You have to admit that typing a password each time you connect is quite harrassing. This gets even worse if you are used to connect to many servers. On the one hand, you could use password managing tools… or Public/Private key authentication! For those who don’t know much about it, let me say: This sounds terribly complicated, but you don’t have to understand it completely. + +For this guide, you only have to know: There are two keys (files). The one is private, you should never give it to anyone! It’s like a key to your safe, if someone achieves it, he can get everything that is secured in this safe. But the other file is public, you can give it to everyone if you want so. Now it gets a bit weird, so I try to make it as simple and abstract as possible. + +Let’s say, the public key is a chest that no one except the owner can open. Inside this chest, there is a supersecret word that no one except the owner knows. You put an exact copy of this chest on your server and each time you try to connect, you say „Hey, I’m the legitimate user of this server. Give me my chest, I will open it with my secret key and tell you, what the supersecret word is!“. The server will give you the chest (public key), you open it with your private key and tell the server the supersecret word. If you were right, the server lets you in. + +

+ Note: This example is so ridiculously abstract that I had to laugh while writing it down. Every security expert, IT guy and cryptography scientist would knock me down for this but I hope it made you understand the principle of this very smart method. And if you ask yourself now „Why does the server know the supersecret word? Isn’t this insecure?“ or „Isn’t is insecure to send such a sensitive code word over the internet?“: You’re absolutely right! But be assured, that the public-key cryptography uses some awesome tricks to avoid security leaks like these and others. If you want to, read about it! +

+ +It is quite easy to make this system happen. Again we need a terminal to generate the two keys: + +
user@local:~$ cd ~/.ssh/
+user@local:~/.ssh$ ssh-keygen -t dsa
+ +This neat script asks a.) in which file you want to save the new keys. The standard is set to _/home/user/.ssh/id_dsa_ and I recommend this. Most programs automatically search for keys in this destination. In step b.) it asks you for a password. This is quite important because if someone achieves your private key, he still needs a password to use it. After this short procedure, you have two new files in _/home/user/.ssh_ – id\_dsa and id\_dsa.pub. As you can imagine, id_dsa.pub is your public key, the other is the secret one. + +Now we have to put the public key (chest) on the server we want to connect to. This could be done by a simple command: + +
user@local:~$ ssh-copy-id -i /home/user/.ssh/id_dsa.pub client@server1.net
+ +By this, you automatically connect as a legitimate user to your server (with the password used in step II) and put the public key in the _/home/client/.ssh/authorized_keys_. This file simply collects all public keys (chests) of users that are allowed to connect to the server. If a stranger tries to connect to your server but there is no chest his secret key belongs to, he of course cannot open the connection to your server. + +Now disconnect from your server and try to connect via _ssh server1_. Your device should automatically search for your private key and open the connection with it. As you notice, you are still asked for a password. This is because you (hopefully) put a password on your private key (remember?). But after you typed in the password once, it should be saved for duration of your local session in a local keyring. + +If this is not the case or you want to make your configuration even better, add the following lines on the bottom of your _/home/user/.bashrc_ (or if you’re not using bash, the respective rc file of your shell): + +
alias ssh='ssh-add -l > /dev/null || ssh-add -t 7200; ssh'
+ +By this, you say to your shell: „Everytime I type the command ’ssh‘, you should instead (alias) 1.) check if I already added my key to the local keyring. If not so (||), 2.) add my key to the keyring, but only keep it there for 7200 seconds (you can also keep this away or increase it). Only if you made this sure, use the command ssh to connect to my server“. Every command line program that uses ssh to connect to a server (and there are some, e.g. git, sshfs…) now uses this procedure – no matter if you close the terminal or lock the screen. + +Of course, this also works with sshfs to mount your remote storages. If you remember our first line to mount the server, we have a much shorter line now without any password request: + +
user@local:~$ sshfs server1: /home/user/remote/server1/ -o follow_symlinks
+ +And these steps were quite important for the next section where we will write a shell script to make it much more easier – and even graphical! + +  + +_**V. Using a shell script + +**_ + +Our setting is very smooth now, but it could still be improved. If you want to connect to many servers and don’t want to use your shell every time or don’t want to remember the HOSTs you used in your .ssh/config, you’re free to modify and use this shell script: + +
#!/bin/bash
+
+### VARIABLES TO BE CHANGED ###
+# Preconfigured HOSTs in ~/.ssh/config that should be used
+PRESSH[0]=server1
+PRESSH[1]=server2
+PRESSH[2]=server3
+
+# Local directory where the remote storages should be mounted to
+LOCALMOUNTDIR=/home/user/remote
+
+### THE SCRIPT BEGINS HERE ###
+
+# Add SSH key to local keyring if not already happened
+function sshadd {
+	ssh-add -l > /dev/null || ssh-add
+}
+
+# Choose preconfigured HOST to mount
+function mount {
+	if ! SSH=$(zenity --list \
+		--height=300 \
+		--text="Please choose. Cancel to unmount drives." \
+		--title="Choose SSH server" \
+		--column "Preconfigured SSH servers" \
+		${PRESSH[*]}); then
+		unmountquestion		# If you press cancel, it should ask you to unmount all drives
+	fi
+
+	# If you double click on an entry, it gives 'server1|server1' as result instead of 'server1'
+	# This command cuts of everything after |
+	SSH=$(echo $SSH | awk -F\| '{ print $1 }')
+
+	# Make a local directory if not available
+	if [ ! -e "$LOCALMOUNTDIR"/"$SSH" ]; then
+		mkdir -p "$LOCALMOUNTDIR"/"$SSH"
+	fi
+
+	# Command to mount actually
+	sshfs "$SSH": "$LOCALMOUNTDIR"/"$SSH"/ -o follow_symlinks &
+
+	quitquestion	# one more ssh server or quit?
+
+}
+
+# Ask if all preconfigured SSHFS drives should be unmounted
+function unmountquestion {				
+	zenity --question --text="Unmount all preconfigured\nSSHFS drives now?"
+	if [ "$?" = "0" ]; then
+		unmount		# unmount function
+	else
+		exit 0
+	fi
+}
+
+# Procedure to unmount all preconfigured SSHFS drives and exit program afterwards
+function unmount {
+	for ((i = 0; i < ${#PRESSH[*]}; i++))
+	do
+		fusermount -u "$LOCALMOUNTDIR"/"${PRESSH[$i]}"
+		echo ""${PRESSH[$i]}" unmounted."
+	done
+	exit 0
+}
+
+# Should another SSHFS storage be mounted?
+function quitquestion {
+	zenity --question \
+	--text="Mount another SSHFS storage?"
+	if [ "$?" = "1" ]; then
+		exit 0
+	fi
+}
+
+sshadd		# sshadd function
+
+# Loop for endless mounts until stopped by unmount or unmountquestion
+while :
+do
+	mount	# mount function
+done
+ +  + +Save this script to some place (e.g. _/home/user/sftp-mount.sh_) and make it executable (chmod +x /home/user/sftp-mount.sh). For example, you are now ready put a shortcut in your panel or on your desktop to make it easily accessible. Please note that zenity, sshfs and ssh-askpass should be installed. + +Please test the procedures written above on your servers and (if they have SSH access) webspaces. On my 4 webspaces and my vServer it works perfectly with my Debian Sid system. Please contact me or write in the comments if you have any problems or if some steps could be improved – nobody’s perfect :) + +_**Appendix**_ + +I know following hosters that provide webspace with SSH access. This list is very short so please add more by writing in the comments! + + * uberspace.de (All plans, starting from 1,00€/mon, focussed on german residents) <– great hoster by the way!! + * OVH.com (>= Business Hosting, 5,94€/mon) + * HostGator.com (All plans, starting from 3,96$/mon) + * All-Inkl.com (>= Premium, 9,95€/mon) + * Hetzner.de (>= Level19, 19,90€/mon) + + [1]: https://src.mehl.mx/mxmehl/network-mount \ No newline at end of file diff --git a/content/blog/2014-01-14-why-free-choice-of-routers-is-an-unnegotiable-must.md b/content/blog/2014-01-14-why-free-choice-of-routers-is-an-unnegotiable-must.md new file mode 100644 index 0000000..bd40d18 --- /dev/null +++ b/content/blog/2014-01-14-why-free-choice-of-routers-is-an-unnegotiable-must.md @@ -0,0 +1,77 @@ +--- +title: Why free choice of routers is a must +author: Max +type: post +date: 2014-01-14T17:47:43+00:00 +url: /2014/why-free-choice-of-routers-is-an-unnegotiable-must/ +yourls_shorturl: + - http://s.mehl.mx/JaXBe +categories: + - English + - Political + - Tech +tags: + - compulsory routers + - crypto + - free software + - germany + - gnu/linux + - leaks + - network + - nsa + - router + - security + - snowden + +--- +

+ In my opinion, the latest NSA leaks reached a new level of boldness.
Oh wait, maybe you are one of the people that keep saying „Of course NSA is spying on all of us, but I’m safe: I use Tor/VPN, deleted my Facebook account, and I completely switched to secure operating systems, so I got this going for me.„. If so I congratulate you, these are important steps and I hope there will be more people like you. +

+ +
+ NSA Headwater Implant + +

+ NSA Headwater Implant +

+
+ +

+ But as the introducting sentence states, the latest information of NSA’s mass surveillance goes much further than only spying in social networks and intercepting phone calls. This time, it’s about your home and your network itself. To be concrete: It’s about your router located somewhere in your rooms. Internal, top secret classified presentations show that NSA is actively searching for vulnerabilities in industry and home routers and is buying exploits if needed. And if all of these steps aren’t enough, they just implant a backdoor chip granting full remote access. +

+ +

+ If you hear about an massively exploited vulnerability or a cooperating router vendor, I would expect you to switch the router or at least install updated/other firmware on the device. But what if you are not able to this because your Internet Service Provider (ISP) forces you to use his and no other device? +

+ +

+ +

+ +

+ „That’s incredible!“ you might think, but that’s the case in some countries and with some providers. They won’t give you your internet access credentials if you want to use a different device, or they simply use non-standard plugs and protocols. So you have a large group of people forced to use only one router model. We call this Compulsory Routers.
ISPs‘ policies like this create many problems and some of those are +

+ + + +

+ „And what has this to do with the NSA stuff?
More than you might think. Imagine a country with 4 big ISPs and all with Compulsory Routers. In the best case after some years, there might be around 10 router models from 5 vendors in use in most households and smaller/middle-sized companies. You don’t have to be paranoid to know that this is an open invitation for intelligence agencies to cooperate with the vendors or create remote attack tools for the few used router models. +

+ +

+ If your router, the first device behind the connection jack in your wall, is compromised, your whole network is compromised as well, no matter how strong your encryption techniques or your passwords are.
And we? We would just have to endure this because we cannot buy the technology we trust in and we cannot use alternative Free Software firmwares. So it’s self-evident that we as freedom loving people have to do something about this problem to secure our own IT infrastructure! +

+ +

+ Compulsory Routers are not only a technical, but also a political one. In Germany, we have a similar situation and until now it’s not clearly regulated what ISPs are allowed to enforce. Some great volunteers have worked together with Matthias and me on this issue for a longer period and we had remarkable success.
But we’re still not done yet and there are many countries in which such policies are not forbidden or regulated yet. Maybe your’s is as well?
If so or if you don’t know exactly, please read and contribute to our wiki entry where we wrote down many interesting background information, some argumentation guidelines, and tips how to stress the topic in media and public. If there are any questions, you can contact me anytime. +

\ No newline at end of file diff --git a/content/blog/2014-02-14-i-love-znc-because-ilovefs.md b/content/blog/2014-02-14-i-love-znc-because-ilovefs.md new file mode 100644 index 0000000..bfdd513 --- /dev/null +++ b/content/blog/2014-02-14-i-love-znc-because-ilovefs.md @@ -0,0 +1,64 @@ +--- +title: 'I love ZNC because #ilovefs' +author: Max +type: post +date: 2014-02-14T05:00:14+00:00 +url: /2014/i-love-znc-because-ilovefs/ +yourls_shorturl: + - http://s.mehl.mx/o9X1n +categories: + - English + - Tech +tags: + - free software + - gnu/linux + - ilovefs + - irc + - linux + - network + - server + - shell + - ssh + +--- +[I love Free Software!][1] + +

+ 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. + +[ZNC][2]In 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: + + * Administration + * Installation is super-simple: Get the newest version, configure, make and make install. Then execute an configuration script which asks for the most important parameters while explaining them to you. Ready. + * Upgrade is very easy. Some days ago I upgraded from 0.2x to 1.2, a large version step. No problem at all, all configuration has been adapted + * Multi-user: You can set up an infinite amount of users per server/port, each with several networks. + * ZNC has a great webpanel which lets you administer everything. Of course, you can also do this directly in you IRC client if you’re connected + + * Nerdy stuff + * To protect you from suprises, you can enable modules like fail2ban (to block password bruteforcers), ctcpflood or crypt (to chat encrypted with other znc users without having them to install an extra plugin or client) + * You can automatically change your nick if you’re going offline. For example with „username_offline“ you make clear that you’re definitely not available + * You can create custom CTCP replies. Try to write /ctcp USERNAME version and you’ll get detailed information about his IRC client. With ZNC, you can simply overwrite the default reply and send something generic instead + * You can even get shell access through your IRC client if you enable the function. Dunno what’s the advantage of this but it’s cool, right? ;) + + [1]: http://ilovefs.org + [2]: https://blog.mehl.mx/uploads/ilovefs-znc.png \ No newline at end of file diff --git a/content/blog/2014-02-21-wirklich-sichere-whatsapp-alternativen.md b/content/blog/2014-02-21-wirklich-sichere-whatsapp-alternativen.md new file mode 100644 index 0000000..7c0894d --- /dev/null +++ b/content/blog/2014-02-21-wirklich-sichere-whatsapp-alternativen.md @@ -0,0 +1,104 @@ +--- +title: Wirklich sichere WhatsApp Alternativen +author: Max +type: post +date: 2014-02-21T09:41:54+00:00 +url: /2014/wirklich-sichere-whatsapp-alternativen/ +yourls_shorturl: + - http://s.mehl.mx/2oUaO +categories: + - Deutsch + - Tech +tags: + - android + - apple + - chat + - crypto + - facebook + - free software + - network + - nsa + - security + - snowden + - whatsapp + +--- +Gravestone with WhatsApp logoNachdem diese Woche bekannt wurde, dass Facebook es endlich geschafft hat, WhatsApp-Gründer Jan Koum und Brian Acton mit einer stolzen Summe von rund 16 Milliarden US-Dollar zum Verkauf ihrer Firma zu bewegen, fragen sich viele, was sich nun in Sachen Privatsphäre ändern wird – und wie man dem entgegenwirken kann. In diesme Artikel werde ich erläutern, was man bei der Wahl des richtigen Messengers beachten sollte, warum Threema nicht die Lösung ist und was wirklich sichere Alternativen sind. + +## Grundlegendes + +Prinzipiell geht es hier um zwei Aspekte von Datenschutz: Erstens der Schutz vor (halb)staatlicher Überwachung und zweitens der Schutz seiner persönlichen Daten vor privaten Konzernen, meist Werbetreibende. + +Beides sollte jedem von uns sehr wichtig sein, denn WhatsApp befördert noch kritischere Daten als Facebook heutzutage. Wissen wir mittlerweile, dass wir vielleicht nicht unbedingt unseren 300 „Freunden“ auf Facebook unsere peinlichsten Momente per Video mitteilen sollten und dass dort vielleicht auch der künstige Arbeitgeber mitlesen kann, so chatten wir auf WhatsApp viel privater mit einer zweiten Person oder einer sich kennenden Gruppe. Die Hemmschwelle, mal eben lustig-peinliche Bilder zu schicken ist niedriger, genauso wie es einfacher ist, sich anzügliche Nachrichten und Medien hin- und herzuschicken. Bisher haben nur die wenigsten damit ein Problem gehabt, denn es blieb ja privat. + +Das war allerdings schon vor dem Kauf durch Facebook nicht garantiert. WhatsApp hat sich zwar von Anbeginn an den Grundsätzen verschrieben, unabhängig zu bleiben und keine Werbung zu schalten, aber die Nutzungsbedingungen waren schon damals kaum privatsphärenachtend. Dass sich das durch den Einstieg von Facebook rapide ins negative verändern wird, sollte aber jedem einleuchten: Facebook lebt durch den Verkauf von Werbung und den Verkauf von persönlichen Daten. + +Ein Paar schickt sich anzügliche Bilder und Texte? Na was wäre da angebrachter als Werbung  Unterwäsche und Sexspielzeuge? Jemand schickt immer viele Bilder und Videos von Clubs und Festivals? Werbung für Nikon-Kameras und überteuerte Tickets wären da doch genau das richtige. Und damit nichts verloren geht, wird das alles noch auf unbestimmte Zeit gespeichert, inklusive Namen, Bild und GPS-Verlaufsdaten. + +## Die Suche nach den Alternativen + +Jetzt geht in sozialen Netzwerken und in Onlinemagazinen die Suche nach Alternativen los – absolut berechtigt. Aber leider wird wieder nicht aus den Fehlern gelernt, die schon bei WhatsApp gemacht wurden: Wir vertrauen allzu oft dem bloßen Versprechen der App-Anbieter. Auch Jan Koum hat noch kürzlich gesagt, dass WhatsApp nicht verkauft wird und nicht auf Profit aus ist. Aber bei einer Summe mit 9 Nullen hintendran wird jeder schwach… + +**Threema** ist dafür ein trauriges Beispiel. Der kostenpflichtige Dienst wirbt mit hohen Verschlüsselungsstandards, den meisten Funktionen von WhatsApp und sicheren Servern in der Schweiz – und wird deswegen von vielen teils seriösen Zeitungen als „der NSA-Ärgerer“ oder „sicherer Hafen für private Kommunikation“ gepriesen. Doch es gibt ein grundlegendes Problem mit Threema: Es ist keine Freie Software. + +> **Freie Software? Was’n das?
Freie Software
** wird oft auch als Open Source bezeichnet, also dass der Quellcode des Programms öffentlich ist. Dadurch kann jeder Interessierte _den Programmcode auf Hintertüren und Schwachstellen untersuchen_. Natürlich beherrscht das nicht jeder, aber es gibt genügend IT-Spezialisten, welche dies regelmäßig machen und somit einen großen Beitrag zur Sicherheit und Vertrauenswürdigkeit von gängigen Verschlüsselungstechniken beitragen: GnuPG (für E-Mails), Tor (zum anonymen Surfen) oder OTR (zum verschlüsselten Chat). +> +> Freie Software (welche sich durch die Benutzung von freien Lizenzen definiert) geht auch einen Schritt weiter: Sie erlaubt jedem Menschen die Modifizierung des Programms und die Weiterveröffentlichung. Wird also der Entwickler einer Freien Software für Verschlüsselung aufgekauft und ist dadurch nicht mehr vertrauenswürdig, können Freiwillige den Quellcode kopieren, anpassen und unter einem anderen Namen wieder der Allgemeinheit frei zur Verfügung stellen. Somit geht eine Freie Software nicht verloren. + +> Freie Software hat übrigens _nichts mit dem Preis zu tun_, sondern ausschließlich mit den Freiheiten, die den Nutzern dabei garantiert werden: Das Recht, dass jeder für jeden Zweck die Software nutzen kann, dass man den Quellcode einsehen kann, diesen verändern darf und dann weiterveröffentlichen darf._ + +>_ + +Wir können also nie nachprüfen, ob Threema seine Versprechen hält, die Daten der Nutzer nicht weiterzugeben. Und es ist auch nicht zu überprüfen, ob die Verschlüsselung nicht ein Leck hat, sei es wissentlich oder nicht. Und wenn Threema in ein paar Jahren von einem Silicon Valley-Konzern (wer denkt da auch an Google?) aufgekauft wird, gehören die Daten wieder mal nicht uns, den Usern, sondern dem neuen Besitzer – und alles war umsonst. + +Es gibt weitere Anbieter, die viel versprechen, aber in der Hinsicht wenig halten. Dazu gehören etwa **SilentCircle**, **Wickr** und nahezu alle Apps, die „verschlüsselten Chat“ bieten, wenn man mal im Google Play Store sucht. + +Andere Alternativ-Apps wie **Hike**, **Line** und **Viber** legen beispielsweise erst überhaupt keinen Wert auf Verschlüsselung und bieten dabei staatlichen Behörden, aber auch Hobbyhackern massenhaft Möglichkeiten, private Daten abzufangen. + +## Gibt’s denn überhaupt sichere Alternativen? + +Ja, die gibt es, man muss sie nur finden! Sie müssen prinzipiell nur zwei Dinge erfüllen: Erstens Freie Software/Open Source und zweitens mit leistungsfähiger Verschlüsselung. Es gibt noch einige andere wünschenswerte Sachen, aber diese beiden sind grundlegend. + +Einer der heißesten Kandidaten ist **surespot** für Android und iOS. Diese App nimmt Verschlüsselung sehr ernst und ist hoch leistungsfähig. Bilder- und Audioübertragungen funktionieren problemlos in hoher Qualität. Ein weiterer Vorteil ist, dass man das Konto leicht umziehen kann, da es nicht an eine Telefonnummer, sondern an einen frei wählbaren Nicknamen gebunden ist. Es ist also eine gewisse Pseudonymität gegeben. + +Wird surespot das erste mal nach Start des Geräts geöffnet, wird man nach seinem Kennwort gefragt, das man bei der Accounterstellung angeben muss. Danach bleibt es im Hintergrund und fragt auch nicht mehr nach dem Kennwort, solange man sich nicht abmeldet. + +Vorteile: Technisch die wohl ausgereifteste App + +Nachteile: Bisher gibt keine Unterstützung von Gruppenchats und Videonachrichten. + +Eine weitere App ist **Telegram**, auch für Android und iOS. Was als erstes ins Auge sticht ist die enorme optische Ähnlichkeit mit Whatsapp. Auch Telegram verspricht effektive Verschlüsselung, allerdings muss die wirklich effektive Verschlüsselung erst jedes mal manuell aktiviert werden – sehr schade. Von unabhängigen Experten wurde auch die Leistungsfähigkeit der Verschlüsselung bemängelt. Positiv ist aber, dass Gruppenchats möglich sind und auch sonst kaum Funktionen von WhatsApp fehlen. + +Vorteile: Kaum ein Funktionsunterschied zu WhatsApp, grundlegende Verschlüsselung + +Nachteile: „Secret Chats“ müssen jedes mal manuell aktiviert werden, Verschlüsselung ist nicht auf höchstem Niveau + +**ChatSecure** für Android und iOS stammt vom renommierten Guardian Project, welches sich auf die Entwicklung von Apps für sichere Kommunikation konzentriert hat. Hervorstechend ist, dass es rein technisch die wohl sicherste Variante ist, da es auf OTR und XMPP aufsetzt und man auch seinen eigenen Server betreiben kann, also komplett unabhängig ist. Der eindeutige Nachteil ist, dass es eine andauernde Verbindung zum Server benötigt und dadurch ordentlich Batterie frisst. Dadurch kann man auch nicht chatten, wenn man offline ist. Zudem wird die iOS-Version leider durch das Apple-System alle 10 Minuten automatisch beendet. + +Vorteile: Technisch hochgradig effizient, bewährte Verschlüsselung + +Nachteile: Akkufresser, auf iOS kaum nutzbar, Gruppenchats nicht möglich + +Ebenfalls erwähnenswert ist **TextSecure** (nicht verwechseln mit ChatSecure oben). Die Entwicklung dieser App ist etwas kompliziert, daher hier nur die Kurzzusammenfassung. Zu Anfang dieser App wurden Nachrichten verschlüsselt per SMS/MMS versendet, allerdings verursachte das zahlreiche Probleme, was den guten Ansatz getrübt hat. Das wurde jetzt über Bord geworfen und die Weiterentwicklung einer App ausschließlich auf Datenbasis (wie WhatsApp) hat begonnen. Diese wird Android und iOS unterstützen, Bilder, Videos und Gruppenchats werden auch dabei sein – und kostenlos soll’s auch werden! Zudem sind die Entwickler alle Größen in der Community. + +Vorteile: Technisch einwandfreier Ansatz, state-of-the-art-Verschlüsselung + +Nachteile: Bis zur Veröffentlichung von TextSecureV2 vergeht noch etwas Zeit, bis dahin nicht wirklich empfehlenswert. + +Als letzte hier vorgestellte Alternative ist **Kontalk** zu nennen. Auch diese ist leider nicht uneingeschränkt zu empfehlen, da sie erstens nur auf Android funktioniert und zweitens momentan noch eine unausgereifte Verschlüsselung bietet. Das soll sich im Laufe dieses Jahres ändern mit dem Umstieg auf ein anderes Protokoll (XMPP), aber Unterstützung für iOS (was für den Chat mit Apple-Freunden leider notwendig ist) ist trotzdem nicht in Sicht. + +Vorteile: Leichte Bedienung, gute Performance + +Nachteile: Technisch mit leichten bis mittleren Mängeln, keine iOS-Unterstützung. + +## Also was nun?! + +Schwer zu sagen. Es gibt bisher noch keinen eindeutigen Favoriten, den man uneingeschränkt empfehlen kann. + +Auf kurze Sicht würde ich zu **surespot** oder **Telegram** raten, je nachdem, wie wichtig einem Gruppenchats und Videos sind. surespot ist dabei die sicherere Variante, Telegram die zugänglichere. Da aber der Erfolg einer App eh nur von der Nutzerbasis abhängt, wird es wahrscheinlich Telegram werden. + +Auf lange Sicht hin lohnt es sich, **TextSecure** im Auge zu behalten. Wenn alles so wird, wie es momentan geplant ist, steht uns im Sommer ein Freudenfest für Datenschutz und Privatsphäre ins Haus! Auch **heml.is**, welches noch nicht veröffentlicht wurde, könnte ein guter Kandidat werden, allerdings gibt es noch kaum technische Hintergrundinfos und die sinngemäße Aussage, man versuche, so viel wie möglich Open Source zu machen, gibt einem zu denken. Also noch nicht zu häuslich in der WhatsApp-Alternative einrichten, mit Sicherheit kommt noch etwas besseres. + +> Nochmal: **Threema** klingt zwar toll, ist es aber allein vom Konzept nicht, da der Quellcode nicht öffentlich ist. _Nur Freie Software schützt effektiv die Sicherheit und Privatsphäre von uns Anwendern_ – alles andere sind schlicht Werbelügen und hohle Phrasen. + +PS: Während dem Schreiben habe ich noch einen netten Artikel gefunden, der nochmal einige Apps gegenüberstellt und dabei auch mehr auf die dahinterliegende Technik eingeht. \ No newline at end of file diff --git a/content/blog/2014-05-19-guter-e-mail-stil.md b/content/blog/2014-05-19-guter-e-mail-stil.md new file mode 100644 index 0000000..fe1430e --- /dev/null +++ b/content/blog/2014-05-19-guter-e-mail-stil.md @@ -0,0 +1,163 @@ +--- +title: Guter E-Mail-Stil +author: Max +type: post +date: 2014-05-19T12:56:12+00:00 +url: /2014/guter-e-mail-stil/ +yourls_shorturl: + - http://s.mehl.mx/Vs9v- +categories: + - Deutsch + - Stuff + - Tech +tags: + - chat + - email + - etikette + - format + - guide + - howto + - organisation + - stil + - thunderbird + - tutorial + +--- +Heutzutage ist schriftlicher Stil in E-Mails ebenso wichtig wie eine angemessene Sprechweise oder standardisierte Floskeln und Höflichkeiten in Briefen. E-Mails sind trotz Short Messaging wie per SMS, WhatsApp oder Facebook weiterhin die bedeutenste digitale Kommunikationsmöglichkeit. + +Das ist auch der Grund, weshalb ein guter E-Mail-Stil so enorm wichtig ist: Wir werden von E-Mails regelrecht bombardiert, auch wenn man den Spam nicht einmal mit einberechnet. Daher sollten wir uns und unseren Kommunikationspartnern die Sache erleichtern, indem wir einen guten, effizienten und dennoch freundlichen Umgang und Stil pflegen. + +### Der Erstkontakt + +Sollte man derjenige sein, der eine E-Mail versendet, sind bereits einige Dinge sehr wichtig: + + + +###### Betreff + +Der Betreff ist das erste, was der Empfänger erhält und auch das, an was er sich bei weiterer Kommunikation erinnert. + +Betreffe wie „_Echt wichtig!_„, „_Das könnte dich interessieren_„, „_:-)_“ oder „_Es geht um die Webseite http://example.com zu der ich dich was fragen muss_“ sind entweder nicht informativ genug, zu kurz oder zu lang. Betreffe sollten das Thema präzise in nicht mehr als 5 Wörtern zusammenfassen, etwa „_Fehlerhaftes Bild in Thunderbird-Artikel_„. + +###### Adressierung + +Das ganze E-Mail-System ist sehr einfach aufgebaut und viele Funktionen machen die Kommunikation sehr strukturiert, ganz im Vergleich zu neueren Plattformen wie Facebook. Man könnte hier sehr in die Tiefe gehen und spezielle Methoden wie CC oder BCC erwähnen, aber für diese sehr grundlegende Anleitung reicht eines: Man kann in das „An:“-Feld mehrere Empfänger schreiben und muss seine einmal abgesendete E-Mail nicht mehrfach schreiben oder immer wieder weiterleiten. Das macht es für Empfänger gut sichtbar, an wen die Mail sonst noch so ging, und für den Sender gibt es ein Plus an Übersichtlichkeit und Transparenz, vor allem im Nachhinein. + +###### Format + +Viele E-Mail-Clients bieten an, E-Mails in HTML zu verfassen. HTML ermöglicht erweiterte Formatierungen, Fettschreiben, das Einbinden von Bildern und so weiter. Trotzdem ist es ratsam, nur Reintext (auch als Plaintext bezeichnet) zu verwenden, und zwar aus folgenden Gründen: + + 1. In den meisten Fällen wird es nicht benötigt: Man kann auch in Reintext-E-Mails problemlos formatieren: \*fett\*, /kursiv/ oder \_unterstrichen\_ ermöglichen Hervorhebungen. Listen lassen sich ganz normal per 1., a.) oder Spiegelstrichen machen + 2. Bilder in E-Mails werden bei vielen Clients nicht angezeigt oder landen gar im Spamordner. Bilder sollten immer einfach nur angehängt werden + 3. Leute, die sehr viel E-Mails bekommen, schätzen es sehr, dass Reintext-E-Mails weniger Festplattenplatz benötigen als HTML-E-Mails + 4. Reintext-E-Mails sehen auf jedem Gerät gleich aus. Egal ob auf dem Smartphone oder auf einem 28-Zoll-Monitor: Diese E-Mails sind immer gut zu lesen und auch Menschen mit Behinderungen können diese durch Screenreader oder andere Hilfsmittel einwandfrei lesen. + +###### Umbruch + +Wenn wie empfohlen Reintext verwendet wird, empfiehlt sich auch, dass man einen automatischen Umbruch aktiviert. Das bedeutet, dass nach 70-80 Zeichen automatisch eine neue Zeile begonnen wird. + +Dadurch wird verhindert, dass Leute mit sehr breiten Bildschirmen elends lange Zeilen haben, was den Lesefluss erschwert. + +###### Stil + +Sollte eigentlich selbstverständlich sein, aber leider sieht man viel zu oft E-Mails mit grauenhafter Rechtschreibung, Zeichensetzung oder Formatierung. Ob man nun „Sehr geehrte Damen und Herren“ oder einfach nur „Guten Tag“ schreibt, das sollte man selbst je nach Situation entscheiden können, aber Rechtschreibung ist im privaten wie geschäftlichen Bereich immer von Wichtigkeit. Auch sollten die Grundprinzipien der Zeichensetzung tief verankert sein, etwa dass nach jedem Satzzeichen (Punkt, Komma, Semikolon, Ausrufe-/Fragezeichen) eine Leerstelle kommt. Des Weiteren empfiehlt es sich, in regelmäßigen Abständen neue Absätze zu machen, um den Text übersichtlich zu halten. + +### Antworten + +Hat man eine neue E-Mail bekommen und möchte diese beantworten, gibt es auch wieder einige Dinge, die man beachten sollte, um seine Informationen möglichst leicht und übersichtlich unterzubringen und es dem entfernten Gegenüber leicht zu machen. + +Prinzipiell sollte man immer auf „Antworten“ in seinem Mailprogramm drücken und nicht etwa eine neue E-Mail mit neuem Betreff verfassen. + +###### Betreff + +Beim Antworten gibt es in puncto Betreff nur zwei Regeln: + + 1. Betreff nicht verändern, wenn das Thema weiterhin dasselbe ist + 2. Wenn sich das Thema ändert oder man noch etwas ganz anderes nachfragen will, sollte man dafür eine ganz neue E-Mail mit separatem Begriff verfassen. So ist nach einigen Monaten immer noch ersichtlich, dass es in einer Unterhaltung mit dem Thema „Meine neue Hose“ nicht um politische Diskussionen geht. + +###### Zitierung + +Ganz wichtig bei längeren Unterhaltungen ist der richtige Zitierstil. Wenn wir mit Leuten reden, sind wir gewöhnt, meist immer unmittelbar auf ein Thema antworten zu können, womit dem Gegenüber klar wird, auf was wir anspielen. In E-Mails ist das meist nicht so einfach. Hier sollte man darauf achten, dass man den sogenannten Inlinequote benutzt und kein TOFU (Text oben, Fullquote unten). Zwei aus der Wikipedia abgeleitete Beispiele, die das verdeutlichen: + +
Lieber Oskar,
+
+das stimmt doch gar
+nicht. Richtig ist 4.
+
+Ich hätte gerne einen Bierkrug.
+
+Gruß
+Max
+
+--Ursprüngliche Nachricht--
+Von: Oskar
+[mailto:oskar@example.net]
+Gesendet: Sonntag, 24. 
+Dezember 2006 12:00
+An: Max
+Betreff: (kein Betreff)
+
+Lieber Max,
+
+eines wollte ich Dir schon
+immer einmal sagen - das
+habe ich mich bisher bloß
+nicht getraut. Es lässt
+mir aber einfach keine
+Ruhe, deshalb muss es nun
+heraus:
+2 + 2 = 5
+Wie jedermann weiß.
+
+Außerdem fahre ich bald nach Mallorca,
+soll ich dir was mitbringen?
+
+Beste Grüße
+Oskar
+ +Wenn man diese Mail nach einigen Tagen öffnet, fragt man sich zurecht, was denn nun ein Bierkrug mit einer falschen Behauptung zu tun hat. Besser ist dabei der bereits erwähnte Inlinequote („Zitat zwischen den Zeilen“): + +
Lieber Oskar,
+ 
+Oskar schrieb:
+> 2 + 2 = 5
+ 
+das stimmt doch gar
+nicht. Richtig ist 4.
+
+> Außerdem fahre ich bald nach Mallorca,
+> soll ich dir was mitbringen?
+
+Ich hätte gerne einen Bierkrug.
+
+Gruß Max
+ +Das macht Unterhaltungen wesentlich übersichtlicher. + +###### Antwort-Knopf + +Wie schon im ersten Abschnitt erwähnt, kann man Mails an mehrere Empfänger schreiben. Wenn man also auf eine Mail antwortet, die an mehrere Leute adressiert wurde, sollte man seine Antwort in den meisten Fällen auch an alle schreiben. Die meisten E-Mail-Programme bieten dafür einen „Allen antworten“-Knopf, der automatisch alle Empfänger und den ursprünglichen Sender einbindet. Das spart Zeit und Nerven und ist nur sinnvoll, damit etwa Fragen des ursprünglichen Senders nur ein mal beantwortet werden müssen bzw. aufeinander eingegangen werden kann – so wie im echten Leben. + +### Weiterleitungen + +Auch Weiterleitungen sind ein wichtiger Bestandteil des E-Mail-Systems. Bekommt man etwa eine Einladung zu einem Vortrag o.ä. und möchte einem Bekannten dies auch mitteilen, so leitet man ihm am besten die gesamte Einladungs-Mail weiter, damit er ebenfalls über alle Informationen verfügt. Die meisten E-Mail-Programme bieten diese Funktion an. + +Jedoch sollte man darauf achten, es dem Empfänger so einfach wie möglich zu machen. Einfach nur Weiterleiten ist nicht gern gesehen, man sollte auch eine grobe Zusammenfassung hinzufügen, um was es denn überhaupt geht. In dem konkreten Beispiel sollte man also vorweg schreiben: + +
Hallo Peter,
+
+anbei eine Einladung zu einem interessanten Vortrag über die Geschichte der E-Mail. Er findet nächste Woche statt und ich würde mich freuen, wenn Du auch dabei wärst. Lies Dir doch die Einladung durch und sag mir Bescheid.
+
+Gruß
+Julian
+
+----- Weitergeleitete Nachricht -----
+...
+...
+
+ +### Fazit + +Mit diesen sehr grundlegenden Grundregeln macht man sich selbst und anderen E-Mailen sehr viel einfacher und angenehmer. E-Mails sind nämlich eine hervorragende Möglichkeit des Austausches und sind nicht ohne Grund das immer noch am meisten genutzte Medium zur Kommunikation über das Internet. Und dabei haben wir hier nur an der Oberfläche gekratzt: Mailing-Listen, Alias-Adressen, Mailfilter oder Templateblöcke können es gerade für Vielschreiber noch entspannter und effektiver machen. Doch befolgt man alleine schon die grundlegenden Hinweise der letzten Absätze, die bereits nach kurzer Übung im Blut sind, macht man sich im privaten oder geschäftlichen E-Mail-Verkehr viel Freude und Freunde. + +Habe ich eine ganz wichtige Regel vergessen oder bin ich viel zu streng und konservativ? Ich freue mich über Kommentare und Verbesserungsvorschläge! \ No newline at end of file diff --git a/content/blog/2014-09-18-birthday-calendar-with-owncloud-via-caldav.md b/content/blog/2014-09-18-birthday-calendar-with-owncloud-via-caldav.md new file mode 100644 index 0000000..14c6018 --- /dev/null +++ b/content/blog/2014-09-18-birthday-calendar-with-owncloud-via-caldav.md @@ -0,0 +1,44 @@ +--- +title: Birthday Calendar with ownCloud via CalDAV +author: Max +type: post +date: 2014-09-17T22:56:46+00:00 +url: /2014/birthday-calendar-with-owncloud-via-caldav/ +yourls_shorturl: + - http://s.mehl.mx/jWvXe +categories: + - English + - Tech +tags: + - email + - free software + - guide + - howto + - owncloud + - server + - sync + - thunderbird + - tutorial + +--- +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! + + + +And I only detected it while digging in some github issue threads. [This post][1] contains the rescuing link to a CalDAV/ICS calendar in any ownCloud version (I tested it in 7.0.2). Just modify and use following address in any application which supports CalDAV sync: + +`http(s)://YOUR-OC-URL/remote.php/caldav/calendars/YOUR-USER/contact_birthdays` + +And you know what? It works like a charm! No need for external add-ons or apps, no need for manual creation of birthday reminders, no need for apologising for (almost) missed birthdays. I just wonder why ownCloud hasn’t included this in either the webpanel or the documentation. It’s a well-working feature since at least one year, so why not including it officially? And if it’s a calendar technically, then it should also be possible to disable displaying the contacts‘ birthdays in the webpanel calendar app – a still non-existent „feature“. + +So next time you have no excuse for forgetting a birthday – except for your ownCloud server’s outage ;) + + [1]: https://github.com/owncloud/contacts/issues/67#issuecomment-30401668 \ No newline at end of file diff --git a/content/blog/2014-09-28-setting-openstreetmap-as-default-in-thunderbird-contacts.md b/content/blog/2014-09-28-setting-openstreetmap-as-default-in-thunderbird-contacts.md new file mode 100644 index 0000000..bfb41a0 --- /dev/null +++ b/content/blog/2014-09-28-setting-openstreetmap-as-default-in-thunderbird-contacts.md @@ -0,0 +1,44 @@ +--- +title: Setting Openstreetmap as default in Thunderbird’s contacts +author: Max +type: post +date: 2014-09-28T10:40:42+00:00 +url: /2014/setting-openstreetmap-as-default-in-thunderbird-contacts/ +yourls_shorturl: + - http://s.mehl.mx/y4Tse +categories: + - English + - Tech +tags: + - contacts + - email + - free software + - guide + - howto + - maps + - thunderbird + - tutorial + +--- +[Thunderbird contact map button][1]If you use Thunderbird and its contact functionality, you might already have stumbled over the „show on map“ feature. If you add addresses to your contacts (no matter if directly in Thunderbird or via CalDAV) there appears a button which enabled you to open a map with the contact’s location. + +The default search provider is Google Maps. If you don’t like this service and prefer free and open systems like me, you can also add [openstreetmap.org][2] as your default map service. You only have to change a value in the advanced configuration. + +Open the _Settings_ menu, select the _Advanced_ panel, select the _General_ tab, and click _Config Editor_. Now copy in the search field: mail.addr_book.mapit_url.format and double click on the string to edit it.
+ +You should now see the default value. It’s nothing more than an URL with variables defined by the street, the country or the postal code of the respective contact. If you want to use Openstreetmap, fill in this value: + +
https://www.openstreetmap.org/search?query=@A1+@A2+@CI+@ST+@ZI+@CO
+ +Restart Thunderbird and test again with an existing contact. By clicking on the button you should now see OSM instead of Google Maps where you can select one of the results in the left sidebar. Congratulations! + +**Further reading:** + +For more information about Thunderbird’s config editor, see the official [knowledgebase entry][3] + +If you want to set other variables in the map query, there’re some hints on [Mozilla’s Hidden prefs guide][4] + + [1]: /uploads/tb-map-contact.png + [2]: http://openstreetmap.org + [3]: https://support.mozilla.org/en-US/kb/config-editor + [4]: https://developer.mozilla.org/en-US/docs/Mozilla/Thunderbird/Hidden_prefs \ No newline at end of file diff --git a/content/blog/2014-10-24-my-internship-at-fsfe.md b/content/blog/2014-10-24-my-internship-at-fsfe.md new file mode 100644 index 0000000..9a73703 --- /dev/null +++ b/content/blog/2014-10-24-my-internship-at-fsfe.md @@ -0,0 +1,43 @@ +--- +title: My internship at FSFE +author: Max +type: post +date: 2014-10-24T10:39:54+00:00 +url: /2014/my-internship-at-fsfe/ +yourls_shorturl: + - http://s.mehl.mx/xrZ72 +categories: + - English + - Stuff +tags: + - berlin + - compulsory routers + - free software + - fsfe + - germany + - ilovefs + - internship + - organisation + +--- +I recently saw that the Free Software Foundation Europe is offering a new and very interesting internship position. That’s a great opportunity for every student interested in Free Software and political activism — and for me to write about my internship I completed from October 2013 until end of March 2014. Here’s a report I wrote some time ago: + +> Starting from October 2013 I was able to work 6 months as an intern for the Free Software Foundation Europe in Berlin. This was an internship required by my bachelor degree course at the University of Konstanz (Germany) where I study Politics and Public Administration. Some years before my internship I already was an FSFE Fellow and then decided to apply there. +> +> My daily tasks contained monitoring and moderation of the various mailing lists and social network accounts. There were also various technical jobs to do: Updating and creating single websites, sending out newsletters, fixing smaller bugs on our pages and so on. +> +> The bigger part in my internship was political work. In Germany, various ISPs want to hinder end consumers to freely choose a router because they only want officially supported ones. Such policy comes with serious consequences for security, free competition, trust in technology, and compatibility. My tasks contained analysing regulation drafts, writing statements for public hearings and coordination with other activists. We summarized the issue and our work on https://fsfe.org/activities/routers +> +> After the parliamentary elections in Germany 2013 I analysed the Grand Coalition’s agreement to identify possible positive and negative effects on Free Software. I also was able to visit several politicians in the German Bundestag to talk with them about Free Software and upcoming important tasks we wanted to work on. +> +> Besides I helped a lot organising our various campaigns like „Document Freedom Day“ and „I love Free Software“. For many of these political tasks and campaigns I wrote press releases and public statements. +> +> During my internship I learned a lot about the structure and work in a multinational organisation and how to collaborate and talk with different people around the world. Another plus is the know-how I aquired by helping planning the various campaigns and analyses. When I was in Brussels and Chemnitz to help at FSFE’s booths during conferences I also learned very much about how to talk with people of all kinds and how to carry ideas and convictions to others. +> +> I will never regret applying for and completing the internship at FSFE. There were so many theoretical and practical things no study course can teach. Being able to work at the interface between communities, companies and politics is something every interested student should be granted. +> +> I want to thank everybody who enabled the FSFE to offer these internships. Organisations like the Free Software Foundation Europe are important to bring equality and freedom to our society and these internships allow students to get an insight into this very interesting area of activity. + +This internship was a very general one so I was able to work in many different areas of FSFE’s activity. The offered internship is mostly about Document Freedom Day, FSFE’s largest campaign in which I also invested a lot of time. I’m quite sure that this position is also very interesting — and very important as well! So if you want to take responsibility and want to learn much about collaboration, worldwide activism and public relations, go ahead and apply for this internship! + +If you are interested in this internship but you have some questions left, please feel free to ask me anything. \ No newline at end of file diff --git a/content/blog/2014-11-10-freie-kommunikation-ist-essenz-des-lebens.md b/content/blog/2014-11-10-freie-kommunikation-ist-essenz-des-lebens.md new file mode 100644 index 0000000..8dbb9d1 --- /dev/null +++ b/content/blog/2014-11-10-freie-kommunikation-ist-essenz-des-lebens.md @@ -0,0 +1,64 @@ +--- +title: Freie Kommunikation ist die Essenz des Menschseins +author: Max +type: post +date: 2014-11-10T13:15:19+00:00 +url: /2014/freie-kommunikation-ist-essenz-des-lebens/ +yourls_shorturl: + - http://s.mehl.mx/YF0iV +categories: + - Deutsch + - Political + - Tech +tags: + - chat + - communication + - crypto + - leaks + - network + - nsa + - surveillance + - whatsapp + +--- +_Im Folgenden werde ich – durch meinen Gemütszustand etwas angefeuert – darlegen, wieso digitale Kommunikationsüberwachung Gift für unsere Gesellschaft ist, weil sie nichts anderes als Millionen Abhörwanzen und Kameras in unseren privatesten Räumen ist._ + +Seit einigen Monaten hat sich ein Grundkonflikt in den politischen Debatten verstärkt: Welche Kommunikation sollte überwacht werden dürfen und welche nicht? Ausschließlich inländische Kommunikation? Geschäftliche E-Mails? Telefongespräche über 20 Sekunden Dauer? + +Und parallel dazu bekomme ich seit mehreren Monaten regelmäßig Wutanfälle, nämlich wenn ich Kommentare von „Experten“ und Laien lese, die solche künstliche Trennungen von Kommunikation und deren unterschiedliche Bewertung immer noch ernsthaft in Erwägung ziehen. + +**Wieso ist Kommunikation = Kommunikation?** + +Weil Kommunikation – in welcher Form auch immer – schützenswert ist und privat bleiben muss, weil wir uns sonst als Gesellschaft aufgeben. Es ist witzlos, gesetzlich eine künstliche Trennung zwischen Kommunikationsarten ziehen zu wollen. Nur die Ewiggestrigen können ernsthaft vorhaben, analoge und digitale Unterhaltung, Schriftwechsel und Meinungsaustausch zu trennen und deren Inhalt unterschiedlich zu behandeln. + +Ja, die technischen Wege der Kommunikationsformen sind unterschiedlich: Bei der einen rege ich durch Muskelbewegungen Vibrationen in der Luft an, die bei meinem Gegenüber im Ohr zu sinnvollen Informationen verarbeitet werden. Bei der anderen schicke ich (un)willkürlich Nullen und Einsen durch Netzwerke, die durch immer noch atemberaubende Technik an der anderen Seite wieder lesbar werden. Doch die Qualität ist dieselbe. + +**Stellen wir uns einmal vor…** + +Nehmen wir ein realitätsnahes Beispiel: Frau und Herr Schuster. + + + +a) Es ist in unser aller Selbstverständnis, dass diese beiden Personen sich private, intime oder auch komplett irrelevante Nachrichten zukommen lassen dürfen, die keinen Staat und kein Unternehmen dieser Welt etwas angehen. + +b) Dabei sollte es ebenso common sense sein, dass es auch gleich sein sollte, ob einer der beiden Ausländer ist, sich im Ausland befindet oder beide beim bei einem deutschen E-Mail-Provider sind. + +c) Es sollte auch vollkommen egal sein, ob die beiden sich die Nachrichten sprachlich, per Telefon oder digital zukommen lassen. + +d) Ein weiterer logischer Denkschritt ist, dass sich dieses Recht auf private, unüberwachte und sichere Kommunikation nicht nur auf Eheleute, sondern auf jede natürliche Person beziehen muss, egal in welchem Verhältnis sie zueinander stehen. + +Momentan ist in den meisten von uns der Gedanke verankert, dass das, was wir einer Person persönlich analog sagen, privat ist. Wir kommen nicht auf die Idee, dass sich zwischen dem einen und den anderen Ohr eine Abhörwanze befindet. Doch die Grenzen zwischen analoger und digitaler Kommunikation verschwimmen allmählich. Wenn ich heutzutage meine jugendlichen Gruppenkinder beobachte, wie sie ihre ersten Beziehungen pflegen, so wird klar, dass sie private und intime Informationen analog und digital gleich behandeln. WhatsApp und ähnliche Dienste ersetzen nicht persönliche Unterhaltungen, sondern nehmen einfach denselben Stellenrang ein. Deshalb schicken sie sich auch digital intime Bilder: Was für uns ältere Generationen nur im sprichwörtlichen Schlafzimmer möglich war, passiert nun in einem vermeintlich privaten digitalen Raum. Für die Jüngeren ergibt eine analoge Trennung in einem digitalen Raum keinen Sinn. Kommentare wie der unseres neuen EU-Digitalkommissars Oettinger über die Dummheit dieser Generation sind daher weitab der Realität. + +**Wanzen und Kameras verändern uns** + +Doch was meinen Gruppenkindern (zum Glück?) noch fehlt, ist der Sinn dafür, sein Verhalten zu verändern, wenn man sich überwacht fühlt. Wieder nehmen wir unser Beispiel der Familie Schuster. Würde der Mann der Frau noch schöne Worte ins Ohr flüstern, wenn er wüsste, dass seine Kommunikation möglicherweise von einem Geheimdienstler, Unternehmen oder einer Polizistin abgehört werden könnte? Ich glaube nicht. + +Genauso wenig würde sie wahrscheinlich ihre möglicherweise sehr linke politische Denkweise in einem privaten Gespräch offenbaren. Wer weiß schon, welche politischen Kräfte in zehn oder zwanzig Jahren wirken und ob diese nicht auf Überwachungsmaterial von früher zugreifen, um die Bevölkerung „einschätzen“ zu können? + +Kurzum: Menschen ändern ihr Verhalten drastisch, wenn sie sich belauscht und beobachten fühlen. Und bei einem weiteren Blick in die Zukunft wird dieses Dilemma noch stärker: Heute schreiben wir zwar E-Mails und Kurznachrichten und die Trennung zwischen analoger und digitaler Kommunikation ist noch einigermaßen verständlich. Doch wie sieht das in zehn oder zwanzig Jahren aus? Möglicherweise können wir uns da schon Gedanken schicken, E-Mails könnten intuitiv verfasst und dann beim Empfänger direkt hörbar abgespielt werden. Durch Virtual Reality-Technik könnte man auch bei räumlicher Trennung beieinander sein, über digitale Kanäle vernetzt. + +Und jetzt stellen wir uns mal vor, jegliche digitale Kommunikation könnte auch in Zukunft – so wie heute schon selbstverständlich – überwacht, angezapft, gespeichert und ausgewertet werden. Und meine Gruppenkinder würden dann anfangen zu verstehen, dass sie bei jeglichem Kontakt, der nicht komplett analog und geheim stattfindet, überwacht werden würden. Wären die kommenden Generationen noch freie Menschen oder schlicht Gefangene in gläsernen Zellen, umzingelt von Wanzen und Kameras? + +Als Jugendlicher hatte ich unglaubliche Vorfreude auf eine digitale Zukunft mit tausenden neuen Möglichkeiten. Heute habe ich Angst davor, was für eine Macht dort staatlichen und privaten Interessen zugeschanzt werden könnte und wie ich meine Verhaltensweisen dementsprechend anpassen muss, um mich nicht selbst zu stark verändern zu müssen. + +Übertreibe ich nur oder geht es anderen auch so? \ No newline at end of file diff --git a/content/blog/2014-11-28-sharing-is-caring-my-git-instance.md b/content/blog/2014-11-28-sharing-is-caring-my-git-instance.md new file mode 100644 index 0000000..178bf03 --- /dev/null +++ b/content/blog/2014-11-28-sharing-is-caring-my-git-instance.md @@ -0,0 +1,58 @@ +--- +title: Sharing is caring – my Git instance +author: Max +type: post +date: 2014-11-28T17:16:50+00:00 +url: /2014/sharing-is-caring-my-git-instance/ +yourls_shorturl: + - http://s.mehl.mx/ZZItS +categories: + - English + - Stuff + - Tech +tags: + - bash + - communication + - free software + - git + - gnu + - gnu/linux + - linux + - network + - owncloud + - R + - script + - server + - shell + - snippet + - ssh + - university + +--- +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][1] 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: + + * [A seminar project with R to analyse over 300.000 SPON news articles whether and which country names appear][2] + * [Fast download of mixcloud sets without throttle][3] + * [Easy to use script to delete all meta data from PDF files in a directory][4] + * And many more (and even more to come)! Have a look at [src.mehl.mx][5] for the whole list + +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][6]. Links to the project may have changed because of that (and I’m too lazy to change them here). + + [1]: //src.mehl.mx + [2]: //src.mehl.mx/uni-surprising-news-focus.git + [3]: //src.mehl.mx/mixcloud-dl.git + [4]: //src.mehl.mx/pdf-clearmeta.git + [5]: //src.mehl.mx/ + [6]: https://blog.mehl.mx/2016/switching-my-code-from-gitweb-to-gogs/ \ No newline at end of file diff --git a/content/blog/2015-01-04-naechste-station-tansania.md b/content/blog/2015-01-04-naechste-station-tansania.md new file mode 100644 index 0000000..2c1f513 --- /dev/null +++ b/content/blog/2015-01-04-naechste-station-tansania.md @@ -0,0 +1,58 @@ +--- +title: 'Nächste Station: Tansania' +author: Max +type: post +date: 2015-01-04T17:03:58+00:00 +url: /2015/naechste-station-tansania/ +yourls_shorturl: + - http://s.mehl.mx/hrs1O +categories: + - Deutsch + - Tanzania +tags: + - education + - free software + - tanzania + +--- +_This post is also available [in English][1] / Diesen Beitrag gibt es auch [auf Englisch][1]_ + +Wie einige von Euch vielleicht schon wissen, werde ich ab März diesen Jahres nach Tansania gehen. In der Stadt Moshi werde ich als ehrenamtlicher Computer-Lehrer in einem örtlichen Institut für IT-Ausbildung arbeiten. + +In den nächsten Wochen und Monaten wird es in diesem Blog hoffentlich einige Neuigkeiten und Bilder zu sehen geben. Bis dahin im Folgenden einige sehr häufig gestellte Fragen und deren Antworten: + +###### Wo zum Teufel liegt Tansania oder Moshi? + +[tanzania-map][2]Tansania liegt an der Ostküste Afrikas mit Kenia im Norden und Mosambik im Süden. Einige wichtige Örtlichkeiten in Tansania sind der Viktoriasee, der Kilimanjaro oder die Insel Sansibar. + +Die Hauptstadt ist Dodoma, wobei die größte und wichtigste Stadt aber Dar es Salaam ist. Moshi, wo ich wohnen werden, ist eine der größten Städte mit etwa 140.000 Einwohnern. Sie ist nahe des Kilimanjaro. + +###### Was genau machst Du dort? + +Ich werde als Computer- und Englischlehrer im Moshi Institute for Technology (MIT) arbeiten. Sie bieten verschiedene Kurse für Kinder und Erwachsene an, um IT-Kenntnisse in der Stadt und dem umliegenden Land zu verbreiten. Ich bin ziemlich frei in der Auswahl der Kurse, die ich anbieten kann. So habe ich beispielsweise geplant, Kurse in Computerreperaturen, Webseitenerstellung, Office-Software oder der allgemeinen Bedienung von Betriebssystemen anzubieten. Da ich ein Verfechter Freier Software bin, möchte ich sie so viel wie möglich einsetzen. Die Wiederverwendung alter Hardware und die Arbeit in einer ziemlich armen Umgebung machen Freie Software zur einzig sinnvollen Wahl. + +###### Haben die überhaupt Technologie da unten? + +Ja, durchaus. Mobiltelefone sind ziemlich weitverbreitet und die Institut, an dem ich arbeiten werde, hat Breitband-Internetanbindungen. Aber okay, sie haben auch wirklich alte gespendete Rechner auf Pentium I bis Pentium III-Basis und ich bezweifle, dass ich mit Beamern arbeiten kann. + +Neben dem Mangel an modernen IT-Geräten gibt es auch wenige moderne Autos oder Haushaltsgeräte. Die meisten Häuser haben nicht einmal eine eigene Postadresse oder Festnetzanbindung. Die Elektrizitätsversorgung ist weit von einem stabilen Zustand entfernt, von Gesundheitsversorgung und Hygiene ganz zu schweigen. + +###### Warum tust Du das? + +Es gibt viele Gründe, aber der wichtigste ist, dass ich etwas für mich komplett neues erleben möchte. Man mag es Ausreißen oder Abenteuer nennen, aber ich bin wirklich gespannt darauf, von einer für mich noch unbekannten Kultur lernen zu können. + +Ein anderer Grund ist der Austausch von Wissen und Know-How. In unserer westlichen Kultur können wir alles haben, was wir wollen. In Tansania ist das nicht der Fall, weswegen ich für meine Lehrangebote sehr viel improvisieren muss. Von der anderen Seite betrachtet habe ich hoffentlich genug IT-Kenntnisse, um den Teilnehmenden meines Kurses etwas nützliches beizubringen. + +###### Hast Du keine Angst vor Ebola? + +Ja, ich habe Sorgen, dass noch mehr Menschen durch diese Krankheit sterben werden. Aber um es deutlich zu machen: Die von Ebola betroffene Region ist so weit von Tansania entfernt wie Südeuropa. Viele innerafrikanischen Flüge wurden abgesetzt um die Verbreitung von Ebola innerhalb Afrikas zu unterbinden. Das Urteil über diese Isolationspolitik überlasse ich jedem selbst, aberzumindest jetzt ist es in Tansania recht sicher. + +Wenn Du noch Fragen hast, zögere nicht [mich anzuschreiben][3]! + +**Quellen:** + +Tansania-Karte von TUBS (CC BY-SA 3.0 License) + + [1]: /2015/next-station-tanzania + [2]: /uploads/tanzania-map.png + [3]: //max.mehl.mx/contact \ No newline at end of file diff --git a/content/blog/2015-01-04-next-station-tanzania.md b/content/blog/2015-01-04-next-station-tanzania.md new file mode 100644 index 0000000..ebdb0d6 --- /dev/null +++ b/content/blog/2015-01-04-next-station-tanzania.md @@ -0,0 +1,62 @@ +--- +title: 'Next station: Tanzania' +author: Max +type: post +date: 2015-01-04T17:03:47+00:00 +url: /2015/next-station-tanzania/ +yourls_shorturl: + - http://s.mehl.mx/q6AVJ +categories: + - English + - Tanzania +tags: + - education + - free software + - tanzania + +--- +_Diesen Beitrag gibt es auch [auf Deutsch][1] / This post is also available [in German][1]_ + +As some of your already may know, I’m going to Tanzania for six months starting in March this year. In the city Moshi I’ll work as a volunteer computer teacher in a local institute for computer education. + +In the upcoming weeks and months you can hopefully see some updates and pictures on this blog. Until then I’d like to answer some frequently asked questions: + +###### Where the heck is Tanzania or Moshi? + +[tanzania-map][2]Tanzania is on Africa’s east coast, Kenya on its north coast border, Mozambique on its south. Some important localities in Tanzania are Lake Victoria, the Kilimanjaro or Zanzibar island. + +The capital is Dodoma, whereas the largest and most important city is Dar es Salaam. Moshi, where I will reside, is one of the largest cities with around 140.000 inhabitants. It’s right beneath the Kilimanjaro. + +###### What exactly are you doing there? + +I’ll work as a computer and english teacher in Moshi Institute for Technology (MIT). They offer various courses for children and adults to spread IT knowledge in the urban and rural area around the city. I’m quite free to choose which courses I offer, for example I planned computer maintenance, website creation, office software or general usage of operating systems. + + + +Since I endorse Free Software, I’d like to use it as much as possible. Reusing old hardware and working in a quite poor environment makes Free Software the only reasonable choice. + +###### Do they even have technology there? + +Yes, they have. Mobile phones are quite widespread and the institute I work at has broadband internet connections. Okay, they have really old donated machines based on Pentium I up to Pentium III processors and I doubt that I can work with beamers. + +Aside from the lack of modern IT stuff it’s also hard to find modern cars or household equipment. Most of the houses even don’t have a unique post address or landline connection. Electricity is far away from being stable and let alone health care or hygiene. + +###### Why are you doing this? + +There are many reasons but the most important one is to experience something really new. Call it break-out, call it adventure, I’m really keen on learning from a for me still unknown culture. + +Another reason is to exchange knowledge and know-how. In our western culture we can have everything we need. In Tanzania that’s not the case so I would have to improvise a lot for my teaching. The other way round I hopefully have enough IT know-how to teach something useful to the courses‘ attendants. + +###### Aren’t you afraid of Ebola? + +Yes, I’m afraid that even more people will die from this disease. But to be clear: The Ebola affected region is as ar away from Tanzania as southern Europe. Many inner-African airline routes have been cancelled to avoid Ebola’s spread inside Africa. It’s up to you to judge this policy of isolation but right now it’s quite safe in Tanzania. + +Any further questions? Do not hesitate [to ask me][3]! + +**Sources:** + +Tanzania Map by TUBS (CC BY-SA 3.0 License) + + [1]: /2015/naechste-station-tansania + [2]: /uploads/tanzania-map.png + [3]: //max.mehl.mx/contact \ No newline at end of file diff --git a/content/blog/2015-01-24-yourls-url-shortener-for-turpial.md b/content/blog/2015-01-24-yourls-url-shortener-for-turpial.md new file mode 100644 index 0000000..37fff79 --- /dev/null +++ b/content/blog/2015-01-24-yourls-url-shortener-for-turpial.md @@ -0,0 +1,73 @@ +--- +title: Yourls URL Shortener for Turpial +author: Max +type: post +date: 2015-01-24T01:58:32+00:00 +url: /2015/yourls-url-shortener-for-turpial/ +yourls_shorturl: + - http://s.mehl.mx/mwjVs +categories: + - English + - Tech +tags: + - chat + - communication + - free software + - gnu/linux + - guide + - howto + - linux + - selfhosted + - server + - snippet + - tutorial + - twitter + +--- +Maybe you know [Yourls][1], 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][2], 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][3], 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! + +Turpial already offers some link shorteners but not Yourls. But we can add it manually. To do so, open the file _/usr/lib/python2.7/dist-packages/libturpial/lib/services/url/shortypython/shorty.py_ as root. Now add the following somewhere between the already existing shorteners + +
# Yourls
+class Yourls(Service):
+	
+	def shrink(self, bigurl):
+		resp = request('http://YOUR_DOMAIN/yourls-api.php', {'action': 'shorturl', 'format': 'xml', 'url': bigurl, 'signature': 'YOUR_SIGNATURE'})
+		returned_data = resp.read()
+		matched_re = re.search('(http://YOUR_DOMAIN/[^"]+)', returned_data)
+		if matched_re:
+			return matched_re.group(1)
+		else:
+			raise ShortyError('Failed to shrink url')
+		
+yourls = Yourls()
+
+ +Just replace YOUR\_DOMAIN and YOUR\_SIGNATURE accordingly. The usage of a signature enables you to hide your username and password when sending the shorten requests, like an API key and looks like _f51qw35w6_ ([more about passwordlessAPI][4]). You can retrieve your signature on your Yourls‘ Admin page via „Tools“. + +Then add the new service to the list of shorteners. In the same file search for _services = {_ (on the bottom) and add somewhere in the following list: + +
'yourls-instance': yourls,
+ +Well, then just restart Turpial, go to Preferences > Services and choose „yourls-instance“ from the list of Short URL services. Congrats, you should be able to short your URLs with Yourls in Turpial now :) + +Any problems or improvements? Drop me a message! + +\___\___\____ + + **Notes:** + + * For me, only hardcoding the signature worked but not the prompt for these data like in some other services stated in the file + * Another file worth your attention might be _/usr/lib/python2.7/dist-packages/turpial/ui/qt/templates/style.css_. There you can change colors, fonts and so on. For example, the „Ubuntu“ font wasn’t installed on my system so I just chose Sans Serif instead. + + [1]: http://yourls.org/ + [2]: http://turpial.org.ve/ + [3]: https://fsfe.org/about/basics/freesoftware.html + [4]: https://github.com/YOURLS/YOURLS/wiki/PasswordlessAPI \ No newline at end of file diff --git a/content/blog/2015-01-26-fellowship-elections.md b/content/blog/2015-01-26-fellowship-elections.md new file mode 100644 index 0000000..7c76d91 --- /dev/null +++ b/content/blog/2015-01-26-fellowship-elections.md @@ -0,0 +1,72 @@ +--- +title: My candidacy for FSFE’s Fellowship Election +author: Max +type: post +date: 2015-01-25T23:24:43+00:00 +draft: true +private: true +url: /2015/fellowship-elections/ +yourls_shorturl: + - http://s.mehl.mx/hsDV4 +categories: + - English + - Political + - Stuff +tags: + - communication + - free software + - fsfe + - internship + - organisation + - tanzania + +--- +Dear FSFE-Fellow, + +you hopefully visited this page because you want to give your precious vote for the FSFE’s Fellowship election (which starts to February 20) to one of the three candidates, Nicolas, Felix, or to me. + +The Fellowship Election takes place once a year. The elected person will be part of FSFE’s General Assembly, its most important organ, for 2 years. The GA makes important decisions like the strategic agenda or budget plans. The two Fellowship representatives have the honorable task to attend these discussion in the name of the hundreds and thousands of Fellows. Besides that, they can also use their weight to push changes to the FSFE which all Fellows might benefit from. So these elections are a very important democratic tool for YOU to influence FSFE’s future path. + +In the next few paragraphs I want to tell you **who I am**, why I want to be **your representative**, why I may be the **right person** for that task and also why you **may not want to vote for me**. + +###### About me + +My name is Max Mehl, 24 years old and currently living in Konstanz, Germany, next to the Swiss border. I’m in my last semester of Politics and Administration. Besides I work as an IT freelancer (computer support, websites, server administration) where I work with Free Software as much as possible. In some months I will [go to Tanzania][1], Africa for half a year to work there as a volunteer teacher. + +My connection to FSFE began 2011 when I subscribed FSFE’s translators mailing list. It didn’t took long until I became a proud Fellow like you. But all the time I wanted to do more – not because I had a lot of time but because I felt that this Free Software organisation is something special. And as luck would have it, I was able to do [my six months internship][2] (required by my university) at FSFE’s Berlin office where I met many staffers, GA members, Fellows and volunteers. With this motivation and gained knowledge I joined the germanophone team where I am as active as in web@ or translators@. On [my FSFE team page][3] there’re listed some campaigns and activities which I am involed into. + +In my free time I am leading the local scouts group, and if there’s some time I play guitar and Pen&Paper RPGs. + +###### My goals as your representative + +During my internship where I was able to look behind many scenes I realised that one thing needs improvement for Fellows: more insight and transparency. Admit it: We’re supporting the FSFE financially (and that’s great!) but do you exactly know which people are using it for what? Wouldn’t it be good to have the possibility to 1. get to know the great people behind FSFE and 2. get to know what they are currently working on? + +When I spoke with some Fellows in my home town, most of them don’t know about our structure or the staffers and what they’re doing. I think, that’s something which has to be improved, for example by periodical small reports by the people themselves and the interesting things they’ve done in the, let’s say, last 4 weeks – from their personal perspective. + +And that wouldn’t even cause really more time consumption for the staffers because many reports already exist – they just have to made public in a way Fellows could be interested in (and not complicated organigrams or endless lists of avatars). + +From a Fellowship representative I also expect to be available for all kinds of questions and feedback of the people he represents. So for me it goes without saying that you could contact me anytime if you want to know something or want me to bring some input in the General Assembly. Of course, I would also still be an active member of the teams I’m working with at the moment, so translators@, web@, the compulsory routers team and some others would still have to read my mails :P + +###### A few reasons to vote for me + +The goals I explained above aren’t going to be easily implemented. FSFE is – like many others – a place where people like to discuss their opinion. My advantage is to know most of the many perspectives of FSFE: The view as a volunteer, a Fellow and a staffer. Especially as the last I had a quite good oversight over many aspects because I helped organising campaigns, co-worked with many people in- and outside of FSFE, followed a lot of internal discussions and also witnessed a few conflicts. I can relate to both our Fellows‘ side and the staffers‘ or GA members‘ side and I am confident to be able to intermediate when needed. + +###### And a few reasons to not vote for me + +When thinking about running for the seat as a Fellowship representative, there came also some reasons in my mind why you may not want to vote for me. All of them may be legit but I also want you to know my side of the story. + +You are German + +Yes, I know. There’re people complaining about the percentage of Germans or german-speakers inside FSFE. First of all, I cannot relate to this problem because there are a lot of people from other nationalities very active in FSFE and the whole Free Software movement. And second, I cannot understand this nationality-focussed point of view. We’re an European organisation, most of FSFE’s work is communicated in English on mailing lists and chats and if you take a look in the translators team you’ll see that collaboration between different nations and languages works. And additionally I live so close beneath the Swiss border that many – even German – people don’t even know in which country I live ;) + +You are male + +True, it would be cool to have more women inside FSFE. Unfortunately there’re no women running for this seat so if you don’t vote for me or Felix and Nicolas because of this reason, please ask you female friends to get active in FSFE, become Fellow and run for this seat! There’ll be many people appreciating it :) + +You are going to Tanzania soon + +One may think that living in Africa makes it impossible for a western living to represent tech-savvy people. I don’t think so. There are many internet cafés, my workplace has two broadband connections and you can also have quite cheap internet connection via radio network. So I would still be able to follow discussions in mailing lists and answer your questions and concerns. And this stay in Tanzania would only last a quarter of the whole representative’s term. + + [1]: http://blog.mehl.mx/2015/next-station-tanzania/ + [2]: http://blog.mehl.mx/2014/my-internship-at-fsfe/ + [3]: https://fsfe.org/about/mehl/ \ No newline at end of file diff --git a/content/blog/2015-02-14-i-love-taskwarrior-therefore-i-love-free-software.md b/content/blog/2015-02-14-i-love-taskwarrior-therefore-i-love-free-software.md new file mode 100644 index 0000000..a0e47dd --- /dev/null +++ b/content/blog/2015-02-14-i-love-taskwarrior-therefore-i-love-free-software.md @@ -0,0 +1,79 @@ +--- +title: I love Taskwarrior, therefore I love Free Software +author: Max +type: post +date: 2015-02-14T12:05:42+00:00 +url: /2015/i-love-taskwarrior-therefore-i-love-free-software/ +yourls_shorturl: + - http://s.mehl.mx/354z0 +categories: + - English + - Tech +tags: + - android + - bash + - free software + - fsfe + - gnu/linux + - guide + - howto + - ilovefs + - linux + - organisation + - server + - shell + - sync + - tasks + - tutorial + +--- +ilovefs-heart-px„_It’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][1] 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][2], 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][3], taskd and [Mirakel][4] 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. + +But one thing at a time, let’s start from the very basic. You can install Taskwarrior and almost any operating system. After the installation, taskwarrior isn’t much more than a black window with white letters in it. And even when you’re a pro-user, you won’t find much more than white or colourful text on black background – and this is a good thing! I’ve seen no graphical user interface which can handle Taskwarrior’s complexity and the users‘ needs sufficiently (but [there are some][5], feel free to test them!). Nevertheless, **it’s quite easy to use Taskwarrior** from your terminal: + +
$ task add "This is my first task"          # Add your first item
+$ task long                                 # Show all pending tasks
+$ task add "Second VIP task!" pri:H         # Add a task with priority
+$ task add "Third task with tag" +test      # Add a task with a tag
+$ task add "Fourth projected task" pro:Blog # Add a task with a project
+$ task long                                 # Show all pending tasks
+$ task 1 done                               # Mark first task as done (ID = 1)
+
+ +There are many useful and well understandable guides in the [project’s documentation][6]. Most likely you do not need every command but maybe it’s useful to read something about techniques which might help you to organise your tasks your way. + +
+ Some useful commands of Taskwarrior (using some fish shell features) + +

+ Some useful commands of Taskwarrior using some fish shell features (click to open) +

+
+ +But Taskwarrior is only for your local computer. What’s if you want to use it when sitting in the bus and don’t want to forget a ToDo item you want to write down at the very moment? Then there’s a **handy application for Android called** [Mirakel][7]. Even the app itself is powerful, but it’s full potential is unleashed when combining it with Taskwarrior. For this, **we need a central instance** which synchronises the tasks you add or edit on your devices. The Taskwarrior project developed taskd for it which you can easily setup on a server. You can also use Mirakel’s own public taskd server (at least in the past) if you don’t own a server or don’t want to maintain this service. + +So if you connect both Taskwarrior and Mirakel to the new taskd server, you can easily share all tasks among them. When marking a task done on your smartphone, it’s marked as done on your home computer some seconds or minutes later if you want to. Security is an important part of taskwarrior as well, so transport encryption is on by default. And if you want, you can also try a [web interface][5] or other handy tools and extensions for your server and client which I haven’t tested yet. + +Hopefully you now know a bit more about Taskwarrior and Mirakel and the great tools they designed. Of course I do not only want to recommend some software but also use this opportunity to say a big **THANK YOU** to all the people behind these projects! Thank your for developing the software and making it compatible to each other. Thanks to the various contributors which are writing the important documentation, adding new languages, writing tools and bridges for other usage scenarios and thank you for reacting to bug reports. People like you make Free Software possible! + + [1]: http://ilovefs.org + [2]: http://blog.mehl.mx/2014/i-love-znc-because-ilovefs/ "I love ZNC because #ilovefs" + [3]: http://taskwarrior.org/ + [4]: http://mirakel.azapps.de/index.html + [5]: http://taskwarrior.org/tools/ + [6]: http://taskwarrior.org/docs/ + [7]: http://mirakel.azapps.de/ \ No newline at end of file diff --git a/content/blog/2015-02-25-in-the-end-freedom-is-what-matters.md b/content/blog/2015-02-25-in-the-end-freedom-is-what-matters.md new file mode 100644 index 0000000..99ae680 --- /dev/null +++ b/content/blog/2015-02-25-in-the-end-freedom-is-what-matters.md @@ -0,0 +1,38 @@ +--- +title: In The End Freedom Is What Matters +author: Max +type: post +date: 2015-02-25T02:03:04+00:00 +url: /2015/in-the-end-freedom-is-what-matters/ +yourls_shorturl: + - http://s.mehl.mx/DPmbL +categories: + - English + - Political + - Stuff +tags: + - communication + - compulsory routers + - crypto + - free software + - fsfe + - privacy + - security + - snowden + +--- +Yesterday I’ve been asked by a good friend of mine why I am investing so much time in the FSFE (Free Software¹ Foundation Europe) instead of putting more energy in other organisations with more focus on privacy issues. The background of his question is that I’m quite concerned about governmental and commercial surveillance and the lack of really private ways to communicate with each other and the impact this has on our online and offline behaviour. With Laura Poitras‘ recent movie „Citizenfour“ awarded with an Oscar, I use the media attention as an icebreaker to talk with my friends about these topics if the situation allows it. + +Back to question which can also be read as „**Why are you investing your time in Free Software** instead of privacy which seems to touch you more?“. To be honest I had to think about this a bit. But then I remembered Jacob Appelbaum saying „_[…] what people used to call liberty and freedom we now call privacy_„. And I think that’s the reason why I stick with putting my energy as activist in FSFE rather than in other (very good!) organisations: Because I think that freedom is the foundation of everything we call privacy today and in the future. I’ll explain that in the following paragraphs.It already has been said in many blog posts, articles, press releases, and interviews from people in- and outside the Free Software movement that Free Software (sometimes also called Open Source) is the key to privacy, mostly because only Free Software is the only sane way how to publish serious encryption methods. Of course the very basis for encryption is trust, and trust is only gained by transparency and the possibility to look behind the scenes. + +But for me, it goes **much further than just the rational reason** why Free Software is the basis for privacy programs. I invest my time in the FSFE because it’s about freedom. We can have as good privacy-enhancing tools as possible, without freedom they are worth nothing. I’m not (only) talking about physical freedom, but more about the freedom to interact with the society in a way one can determine. Imagine following – not unrealistic – situation: You can communicate with your friends anonymously over perfectly encrypted channels and this is good. But now your country’s financial office urges you to give information about your tax situation in an electronical way – which is only possible by using a proprietary (and therefore insecure) operating system. And inside the tax administration all your sensitive files reside on proprietary servers, are opened on insecure systems, and with zero transparency. + +Or another example: You are oblidged by your internet provider to use their router and you’re not allowed to replace it by an alternative device. Even your country’s net agency or economical ministry allows it, which is the current state in many European countries. You may use Tor or VPN but you still don’t know if they track metadata like your connection times and volume, MAC addresses, number of connected devices, preferred anonymisation techniques, or phone call destinations. Or they just throttle all communication which they cannot read or which is directed to services like Tor. + +In these cases **software privacy is of little use**. It’s about regulations, it’s about changing the toughts of political actors, it’s about dirty politics and dust-dry laws – and it’s about freedom. About our freedom of choice, not only which software we want to use, but also the ways we want to communicate, which devices and file format we want to choose, and the things we want to say publicly and not only encrypted in the dark. Privacy is necessary for situations in which we cannot speak or act freely, but freedom is the only way how to improve the world we’re living in so that we won’t have to fight for the right of privacy anymore. And freedom in all ways is what the FSFE stands for, not only by improving software but by informing the public and politicians, and by putting political pressure on decision makers. Because freedom is the foundation for a society in which someday privacy can be the most normal thing. + +This, dear friend, is the reason why I volunteer for the FSFE – and therefore also for privacy. + +\___\___\___\___ + +¹ Means software which you are allowed to use for every purpose, which everybody can inspect, modify and redistribute \ No newline at end of file diff --git a/content/blog/2015-04-14-erste-eindruecke-aus-tansania.md b/content/blog/2015-04-14-erste-eindruecke-aus-tansania.md new file mode 100644 index 0000000..9de92c2 --- /dev/null +++ b/content/blog/2015-04-14-erste-eindruecke-aus-tansania.md @@ -0,0 +1,148 @@ +--- +title: Erste Eindrücke aus Tansania +author: Max +type: post +date: 2015-04-14T08:05:07+00:00 +url: /2015/erste-eindruecke-aus-tansania/ +yourls_shorturl: + - http://s.mehl.mx/xIdts +categories: + - Deutsch + - Tanzania +tags: + - communication + - education + - organisation + - tanzania + - tareo + +--- +

+ Pole pole – das ist die typisch tansanische Mentalität, alles etwas ruhiger und langsamer angehen zu lassen. Und wahrscheinlich ist das auch der Grund, warum ich erst einen Monat nach meiner Ankunft in Tansania dazu komme, einen ersten Blogeintrag über meine bisherigen Erfahrungen zu schreiben. Ich bin hier von Anfang März bis Ende Juli als Freiwilliger in einer Organisation tätig, die die Bildung von jungen Menschen und der ländlichen Bevölkerung durch Einsatz und Schulung von IT verbessern will. Im Folgenden möchte ich kurz einen Rundumblick über mein Leben hier und die Bedingungen geben, konkret über meinen Alltag, die Gefahren, meine Arbeit als Freiwilliger, die einheimische Bevölkerung und Kultur, Wetter und Natur sowie das liebe Geld: +

+ +

+ Mein Alltag +

+ +
+ Blick auf das "Dach Afrikas" von unserer Haustür + +

+ Blick auf das „Dach Afrikas“ von unserer Haustür +

+
+ +

+ Ich wohne mit meiner Freundin in einer 3-Zimmer-WG im Stadtzentrum von Moshi, nahe des Kilimanjaros. Die Woche über arbeite ich momentan bis mittags im Moshi Institute of Technology, einer Art Volkshochschule mit Kursen im Bereich IT, Buchhaltung und Sprachen, welche von TAREO (Tanzania Rural Empowerment Organization) geleitet wird (dazu später mehr). Der Rest des Tages (nahezu alle Ehrenamtlichen in der Stadt arbeiten halbtags) geht hier mit ungewöhnlich zeitraubenden Aktivitäten wie Kochen, Einkaufen auf dem Markt und vom teils tierischen heißen Wetter ausruhen (zwischen 13 und 15 Uhr gehen selbst Transanier ungern auf die Straße) drauf. Die Länge des Tages wird durch die sehr früh einsetzende Dunkelheit um etwa 19 Uhr limitiert, nach der wir Wazungu (Mzungu = Ausländer, Weißer) nicht auf die Straße sollten, mehr dazu später. Am Wochenende bekommen wir Ehrenamtlichen für gewöhnlich frei, um die Stadt und Gegend zu erkunden, Trips zu unternehmen oder uns von der oft geistig anstrengenden Arbeit zu erholen. +

+ +

+ Gefährlichkeit +

+ +

+ Eine der häufigsten Fragen ist die nach der Gefährlichkeit. Kurzum: Es ist nicht viel gefährlicher als in einer deutschen Großstadt, wenn man sich nicht vollkommen daneben verhält und ein paar Grundregeln beachtet. Tagsüber haben wir noch nie davon gehört, dass jemand beklaut wurde, obwohl wir allein von der Hautfarbe her natürlich extrem auffällig sind. Moshi gilt als sehr sicher (was auf einige andere südlichere Großstädte in Tansania allerdings nicht zutrifft). Die größte Gefahr im Hellen ist es, in der ersten Zeit auf einen der zahlreichen Straßenverkäufer reinzufallen, die einem zuerst erzählen, wie toll sie arme Waisenkinder unterstützen und nach 5 Minuten plötzlich dubiose Safaris oder Halsketten anbieten – aber da lernt man schnell draus :) +

+ +

+ In der Dunkelheit allerdings sind selbst normale Tansanier gut damit beraten, Bus oder Taxi zu nehmen. Armut und Arbeitslosigkeit locken Gelegenheitsdiebe hervor, die technische Geräte und Geld von den Unglücklichen abstauben wollen, aber diese dann meist ziehen lassen – ein Vorteil der kaum vorhandenen Kleinverbrechensaufklärung der hiesigen Polizei. Da das Taxi hier aber je nach Distanz 1,50€ bis 2,50€ pro Fahrt kostet, gehen wir Voluntäre da sowieso auf Nummer sicher und hatten in letzter Zeit nie Probleme. +

+ +

+ Meine Arbeit +

+ +

+ Ich arbeite für TAREO, eine Organisation, welche die ländliche Bevölkerung, die hier aufgrund der schlechten Bildung und der mieserablen Infrastruktur stark benachteiligt ist, unterstützen will. Das macht sie durch einige ländliche Schulen, aber auch Bildungseinrichtungen in Städten, wo junge Menschen Qualifikationen erwerben können. TAREO macht das vor allem durch den Einsatz von Computern und dem Internet, um die Menschen (meist Kinder, Jugendliche, Frauen und Farmer) gesellschaftlich aufholen zu lassen. Ein Problem nämlich ist, dass Schulen hier meist nicht kostenlos sind, oft ewig weit vom Wohnort entfernt sind und die Schullaufbahn sehr lange dauert, bis man etwa auf eine Universität gehen kann. +

+ +
+ Moshi Innenstadt an einem Nachmittag + +

+ Moshi Innenstadt an einem Nachmittag +

+
+ +

+ Im Moshi Institute of Technology (MIT), wo ich tätig bin, kann man an Kursen für Bürofachkräfte, IT-Techniker oder einfache PC-Grundlagen teilnehmen, was einen vergleichsweise geringen Betrag kostet. Dafür gibt es dann neben dem hier sehr wertvollen Wissen auch Zertifikate und sogar ganze Schulabschlüsse können nachgeholt werden. Natürlich ist das nicht vergleichbar mit professionellen Angeboten in Europa, schon einfach deswegen, weil die Infrastruktur fehlt. Wir arbeiten hier mit PCs aus dem Jahr 2001-2003, meist Pentium 3 oder 4 mit 256 bis 512MB Arbeitsspeicher. Leider laufen die meisten PCs noch mit WindowsXP, was ich aber durch die Installation von ressourcensparenden und vor allem kostenlosen Linux-basierten Systemen zu ändern gedenke. +

+ +

+ Momentan aber ist die neue Webseite von TAREO (mittlerweile schon online) mein Hauptprojekt. Bisher hatte die Dachorganisation eine eigene Präsenz, genauso wie zwei der Center und der IT-Service – jeweils alle hoffnungslos veraltet und optisch ein Graus. Ich fasse nun alle Infos und einer modernen Webseite zusammen, strukturiere sie ordentlich, mache sie attraktiver für Sponsoren und interessierte Freiwillige und  besser auffindbar über Suchmaschinen. Mein Hauptaugenmerk liegt aber auf der einfachen Bedienung für die zuständigen Mitarbeiter, damit sie in Zukunft schnell Infos hinzufügen oder Bilder ändern können. +

+ +

+ Diese Arbeit war zeitraubender als gedacht, weil es mehr Informationen, Schulen und Kurse zu vereinheitlichen galt als ich anfangs dachte. Möchte man dann noch aktuelle Bilder von den Einrichtungen auftreiben und vielleicht noch Fotos von den verschiedenen Mitarbeitern sammeln, kann sich das ganze nach hinten verschieben – pole pole halt. Bis Mitte/Ende April möchte ich dieses umfangreiche Projekt aber fertiggestellt haben und mich auf die Schulung von Lehrern des MIT konzentrieren. Momentan schwebt mit vor, die alte Software (und vielleicht auch Hardware) in der Einrichtung zu mordernisieren und dabei die 4 Lehrkräfte im Sinne von Learning by Doing einzubinden. Diese sind meist theoretisch recht fit und höchst interessiert, aber haben noch nie einen modernen Server angefasst oder eine Webseite online gestellt, weil einfach die Mittel dazu fehlen – etwas schade, wenn sie darüber unterrichten. +

+ +

+ Die Einheimischen +

+ +
+ Eine kleiner Weg in Moshi. Man beachte die Vegetation + +

+ Eine kleiner Weg in Moshi. Man beachte die Vegetation +

+
+ +

+ Hier kann und will ich noch gar nicht so viel sagen. Die tansanische Kultur ist mir im Großen und Ganzen noch etwas unbekannt und fremd und man tritt immer mal wieder in kleine Fettnäpfchen. Eines der größten Probleme im Miteinander ist sicherlich die Sprachbarriere und die damit verbundenen Missverständnisse. Nur wenige Einheimische sprechen für unsere Verhältnisse wirklich gutes Englisch, um sich über kompliziertere Sachverhalte wie Kultur oder Gesellschaft zu unterhalten. Zudem waren die meisten Leute hier nie in Europa oder den USA und gehen davon aus, dass wir in der ersten Welt in purem Reichtum leben, nie krank werden, die iPhones und Fernseher auf Bäumen wachsen und alle happy sind. Das wird durch Filme und Serien vermittelt und leider durch Kurzzeittouristinnen in High-Heels und Miniröcken und wohlbeleibte Amis, die mit Geld um sich schmeißen (ist ja alles billig hier) nicht wirklich verbessert. +

+ +

+ Ansonsten gibt es hier eine ganz klare Prioritätsverteilung: Die Familie steht ganz oben, dann folgen Freunde und erst dann mal Beruf oder Kunden. Nur die wenigsten Selbstständigen hier streben nach höherem, indem sie etwa ihre Restaurants renovieren, das Angebot erweitern oder eine Zweigstelle eröffnen. Man ist hier meist zufrieden, wenn man die Familie durchbringen kann. Ob das nun gut oder schlecht ist, überlasse ich Eurer Meinung. Aber wie ich schon gehört habe, spielt die Stammeszugehörigkeit hier noch eine sehr große Rolle. Dominant sind hier etwa die Chagga, welche als egoistisch und geschäftstüchtig gelten, wohingegen andere Stämme gastfreundlicher und selbstloser sein sollen. Eine Sonderrolle halten die Maasai inne, die ihrer traditionellen Lebensweise im Einklang mit der Natur treu geblieben sind. Einen Stamm der Maasai werden wir hoffentlich bald einmal über eine Nacht besuchen und dort mehr über sie lernen. +

+ +

+ Wetter und Natur +

+ +
+ Ein kleiner Ausschnitt aus der Herde Elefanten, die im Tarangire unseren Weg gekreuzt hat + +

+ Ein kleiner Ausschnitt aus der Herde Elefanten, die im Tarangire unseren Weg gekreuzt hat +

+
+ +

+ Im April befindet sich Tansania für gewöhnlich in der großen Regenzeit, die Mitte/Ende März beginnt und bis Ende Mai dauert. Wer jetzt an Dauerregen und überschwemmte Straßen denkt, irrt genauso wie ich zu Anfang. Regenzeit bedeutet, dass es nachts mal ein paar Stunden regnet und tagsüber vielleicht mal maximal eine Stunde – dann aber wie aus Kübeln! Daher ist es auch etwas kälter als im hiesigen Sommer (November bis Februar), zumindest wenn man 28°C als kalt bezeichnen will. In höheren Lagen allerdings bewirkt dieser Regen wahre Wunder: Sandbraune Wiesen werden zu blühenden Äckern und jeder Schilling wird in die Landwirtschaft gesteckt. Selbst hier in Moshi sieht man plötzlich mehr Grün. Wir sind mal gespannt, wie sich die Regenzeit noch entwickelt und ob es hoffentlich noch kühler wird. +

+ +

+ Tansania ist entgegen der weit verbreiteten Vorstellung, dass es sich um weite Ödnis, verbrannte Weiden und kahle Hügel handelt, ein von der Natur her sehr vielfältiges Land. Nachdem wir am Osterwochenende auf eine dreitägige Safari durch Lake Manyara, den Ngorongoro Krater und den Tarangire-Nationalpark gefahren sind, weiß ich, dass Tansania grün, blau, braun und rot zugleich kann: Urwaldähnliche Wälder, weite Steppen, riesige Seen, Hügellandschaften in sattem sandbraun mit einzelnen gigantischen Bäumen und erwachende Flüsse und an der Straße vulkanische rote Gesteinsbrüche. Das Weiß auf der Kuppe des Kilimanjaros natürlich nicht zu vergessen! +

+ +

+ Money money money +

+ +
+ 10.000 Schilling. Umgerechnet 5€ und die größte Banknote + +

+ 10.000 Schilling. Umgerechnet 5€ und die größte Banknote +

+
+ +

+ Wie schon angedeutet, sind hier viele Sachen unglaublich günstig, vor allem einheimische Lebensmittel und Dienstleistungen. Die tansanische Währung sind Tansanische Schilling (TSH, TZS). Ein Euro entspricht etwa 2000TSH, die kleinste Münze sind 50TSH, der größte Schein 10.000TSH. Auf dem Markt, auf dem wir Gemüse und Obst einkaufen, kosten 3 (herrliche!) Auberginen 500TSH (0,25€), 5 kleine Paprika 500TSH, ein Eimer voller Kartoffeln je nach Qualität 3000TSH (1,50€) und eine Banane 100TSH (0,05€). Ein Rucksack voller Obst und Gemüse (natürlich Bio :P) kann nach einem Marktbesuch also für 5-10€ randvoll gefüllt sein. Dienstleistungen wie Nähereien sind hier ebenfalls sehr preiswert. So hat sich eine Freundin eine komplette Notebooktasche für 5-7€ nähen lassen, exklusive des auch preiswerten, aber hochwertigen Stoffs. +

+ +

+ Vergleichsweise teuer sind hier aber importierte Produkte. 1kg Müsli bekommt man hier nicht für unter 5€, ein bisschen Käse schlägt auch mit mindestens 5€ zu Buche, echte Butter mit 4€ pro 250g. Werkzeuge sind ebenfalls mindestens doppelt so teuer wie im heimischen Baumarkt. Ein Liter Diesel kostet hier umgerechnet 80 Cent, eine kWh Strom 15 Cent – beides also für das tansanische Preisniveau sehr teuer. Beim Essen in Restaurants kommt es ganz klar darauf an, wo man hin geht. Die großen Touri-Restaurants, die in TripAdvisor o.ä. gelistet werden, sind auch für deutsche Verhältnisse mittelklassig teuer. Geht man aber in kleinere oder unbekanntere Läden, zahlt man für ein ausgiebiges und oft sehr gutes Essen auch mal nur 2,50€. +

+ +

+ Ausblick +

+ +

+ In den nächsten, hoffentlich bald folgenden Artikeln werde ich mich auf einzelne Themen beschränken. Technische, auf meine Arbeit bezogene Themen werde ich meinen Freunden aus dem Umkreis der FSFE zuliebe auf Englisch verfassen, dazu kommen aber wahrscheinlich einige unterhaltsame Nuancen aus Kultur und Alltag hier in Tansania oder Reiseberichte, die dann wieder auf Deutsch geschrieben sein werden. +

+ +

\ No newline at end of file diff --git a/content/blog/2015-05-08-technology-and-free-software-in-tz.md b/content/blog/2015-05-08-technology-and-free-software-in-tz.md new file mode 100644 index 0000000..91cec71 --- /dev/null +++ b/content/blog/2015-05-08-technology-and-free-software-in-tz.md @@ -0,0 +1,76 @@ +--- +title: Technology and Free Software in Tanzania +author: Max +type: post +date: 2015-05-08T07:34:19+00:00 +url: /2015/technology-and-free-software-in-tz/ +featured_image: /uploads/mit-2.jpg +yourls_shorturl: + - http://s.mehl.mx/67mx6 +categories: + - English + - Political + - Tanzania + - Tech +tags: + - education + - facebook + - free software + - gnu/linux + - linux + - tanzania + - whatsapp + +--- +[mit-2][1]After two months in Tanzania and in the computer education centre I work every day I learnt a lot about the culture of the locals in terms of their viewpoint on information technology. And in the same way I had to accept that my initial mental image of the people’s behaviour was (at least in parts) very wrong. So in this article I try to explain how I see the situation of modern technologies and the usage and understanding of Free Software in the region of Tanzania where I live. + +> Free Software guarantees the full rights to use, study, share and improve it (but is not necessarily free of gratis). This sounds like something only interesting for IT specialists and nerds. But given the importance of software in our lifes one has to reconsider: Software controls our mobile phones, cars, air planes, heating systems, power plants, bank accounts and medical equipment. The one who controls this software is also the one who controls most parts of our lifes. Questions like „Does all my data belong to someone else?“, „Is my data safe?“ and „Who knows how much about me?“ can only be answered when we start thinking about Free Software. By some people Free Software is also called Open Source. [More about Free Software][2]. + +Let’s start with a list of what I thought and what’s in fact the reality: + +##### Misconception I + +Before I went to Tanzania it was quite clear to me that people here value Free Software quite much. This is because a lot of Free Software is also free of cost. Why should people use Windows, Adobe Photoshop and Microsoft Office when there’s also GNU/Linux, GIMP and LibreOffice/OpenOffice? + +##### Reality I + +„Free Software? What is this and can I eat it?“ It’s not that drastical though but the core message remains the same: The broad average population doesn’t know about Free Software and Open Source or even the applications I listed. When I gave a small workshop about GNU/Linux, noone of my students knew about it. But as we installed replacements of popular non-free software like LibreOffice, GIMP or VLC the questions marks in my students‘ heads became almost visible. Although they liked the idea of the whole world working on this software and that it’s for free, they asked me afterwards „…and how can we install Microsoft Frontpage?“. This is the perfect time for misconception 2. + +##### Misconception II + +„Free Software is cool“. This is what I and many other people think. It takes power away from single and very large IT-companies to us, the users and small companies. It enables a free and fair market competition and can support our data privacy and civil rights protection in various ways. In western countries I can almost understand that there’re people who mistakenly think that only expensive products by big brands can be quality products. But in Africa? Never ever! The people are quite poor and why shouldn’t they value products which are for free **and** good? + +##### Reality II + +Apart from the fact that many people don’t know about alternatives to popular non-free software, they also cannot believe that something is for free. Many people here have arranged themselves with sharing illegal (and often virus-infested) copies of Windows and Microsoft Office. And especially in the rather „rich“ northern Tanzania, everything is about money. Asking to take a photo of a group of Maasai people in a nice background setting? 2000 Shilling. Somebody escorting you to a place you didn’t find? 500-1000 Shilling. + +However, I was able to convince my students that in the case of Free Software most software is really for free in terms of free beer but only after clear up many questions about it. The idea that something so valuable and created by so many people in so many working hours is really for free – almost unbelievable, even for my local co-teachers. + +##### Misconception III + +I’ve been tinkering with computers and software since my youth when I reinstalled my operating systems at least once a month and started exploring the internet. I did this because I was interested in technology and wanted to explore its and my limits, but also because even back then I knew that IT will become more and more important and those who don’t understand it will rather be left behind. + +I thought in Tanzania it’s a similar situation but somehow easier for the population. I thought that they have very limited technology here but that they know about the importance of computers and software in the industrial countries – and it’s quite obvious that with several years delay they will reach the same level of IT-dependency than we have today. So I thought the people here would care about technology and will try to learn as much as possible about it to improve their career chances and catch up the industrial countries. + +##### Reality III + +_(Disclaimer here: This is just my personal and at the moment very subjective view)_ It’s not that the people here are lazy and miss the future. They already have the future and it’s too much for them. Most of the Tanzanians in the city have a smartphone, some even have several. The mobile internet is partly better than in Germany, many companies already heavily depend on computers and I’m asked for my Facebook and WhatsApp contact details almost every day. + +The in some way funny thing is that they know all this (modern smartphone apps, newest iPhone’s details) but if they’re asked to download and install an application on their own Windows computer, even my IT-students reach their limits. + +### Why? + +That’s one of the questions I have in my mind every day. Why don’t they know about other software than the most popular (and even not best). Why do they refuse alternatives even if they just benefit their financial and infrastructural situation (no money, old computers, slow internet)? And why don’t they even know the most basic things but enjoy quite modern technologies? + +I assume it’s because of the very rapid and overwhelming change that the people here experienced. Before the smartphones they only had very old computers, mostly donated or from the trash bin of the industrial countries. While we already enjoyed internet, they had to linger around with ancient machines. And on these machines there was preinstalled Windows and maybe applications like Photoshop and Microsoft Office. It was almost impossible for them to download OpenOffice or GIMP because landline internet (ISDN, DSL) is very uncommon here. + +So they didn’t know about any alternatives and were happy to be able to use at least some applications. And here a second reason kicks in: How to learn to use a software properly? There’re almost no schools who teach usage of computers and their applications. And small companies cannot afford the expenses to train their employees in IT. So the limited supply of technology is further limited by the missing knowledge. As a side note: A volunteer friend of mine here told me that he fascinated his whole working place by showing the people that there’s something like _=SUM()_ in Excel. Before that they wrote down long lists of numbers in Excel but calculated them by hand. It was a micro-finance organisation which lend small amounts of money to communities and single persons… + +And then, the smartphones came. And the companies offering mobile internet for affordable rates. People don’t rely on home computers and landline connections anymore but can chat and surf everywhere. They’re given the technology but not the knowledge. Although it works like a charm, many don’t know anything about it or how it works. When one of my students asked me how I learnt about web programming I showed him how to use internet search engines properly. He was stunned the whole day about sources of knowledge like wikibooks.org. And when I told the other student that apps on smartphones are just like programs on classic computers he asked where to find the Google Play Store on his Windows laptop. + +**Tanzanians are not stupid and they’re not lazy**. The students I referred to in this article are keen on learning new things and improving their lifes. However it’s hard to understand for first world people like me how they behave and think about many things. For me many people here are some kind of paralyzed by the rushing modern technologies coming from the industrialised nations without any education about it. So I still try to find a good way to teach my students and co-teachers the importance of computer and software knowledge as well as the benefits of Free Software. + +And as another important note: Not all Tanzanians are rather helpless when it comes to IT. I also met people who run very successfull IT businesses and some who know crazy software tricks which let my jaw drop to the ground. They somehow found a way to teach themselves although it’s very hard to do that here. I hope there will be more people of this type in the future. But for this, Tanzania need more and better education, more political support of IT schools, better infrastructure and better future perspectives for workers in IT businesses. Sounds like a harsh roadmap? It is… + + [1]: /uploads/mit-2.jpg + [2]: https://fsfe.org/about/basics/freesoftware.html \ No newline at end of file diff --git a/content/blog/2015-05-20-naechster-halt-endstation.md b/content/blog/2015-05-20-naechster-halt-endstation.md new file mode 100644 index 0000000..05b3fe9 --- /dev/null +++ b/content/blog/2015-05-20-naechster-halt-endstation.md @@ -0,0 +1,79 @@ +--- +title: 'Nächster Halt: Endstation.' +author: Max +type: post +date: 2015-05-20T08:04:10+00:00 +url: /2015/naechster-halt-endstation/ +featured_image: /uploads/weselsky-putin.jpg +yourls_shorturl: + - http://s.mehl.mx/pE-NF +categories: + - Deutsch + - Political + - Tanzania +tags: + - fsfe + - germany + - lobby + - media + - parties + - politics + - public opinion + - tanzania + - unions + +--- +[weselsky-putin][1]Man könnte meinen, hier in Tansania ist man weit weg von den politischen Vorgängen in Deutschland. Doch interessanterweise wird es einem hier dieser Tage sehr einfach gemacht, den GDL-Streik, der vor allem vor Pfingsten in Deutschland die Bevölkerung elektrisiert, aus einer anderen Perspektive zu sehen. Wo selbst politik-kritische Formate wie die Satire-Komik-Sendung Heute Show durchgehend auf dem Gewerkschaftsführer Weselsky rumhackt, kann man durch den Vergleich mit Ländern wie Tansania, in denen das ganze Politikschauspiel noch etwas durchsichtiger und simpler gehalten ist, sehr gut verstehen, warum der GDL-Streik im Endeffekt ein notwendiges Übel für nahezu alle Bürger in Deutschland ist. + +> **Über den Autor:** + +> Max Mehl, 25, ist ein… ach, Ihr wisst wer ich bin. Wichtig für diesen Artikel ist allerdings, dass ich kein typischer Autor eines gewerkschaftsfreundlichen Beitrags bin. Ich bin Fan von offenem Wettbewerb, die SPD fand ich immer schon so naja und beim Wort „Sozialismus“ bekomme ich nervöse Zuckungen. Trotzdem befürworte ich den GDL-Streik. Wie in aller Welt passt denn das zusammen? + +Spätestens wer das zweite Semester der Politikwissenschaften absolviert hat, wird einen der wesentlichen Kerne der Realismustheorie verstanden haben. Es geht im Wesentlichen um Macht. Und Macht kann sich durch vieles definieren: Politischer Einfluss, militärische Schlagkraft, Ressourcen und natürlich Geld. + +#### Was in Tansania gilt… + +Hier in Tansania ist vor allem letzteres von Bedeutung. Wer über beträchtliche Summen von Geld verfügt, kann sich Einfluss kaufen und durch diesen Einfluss noch mehr Geld abzwacken. Im Gegenzug – und das ist viel prekärer – haben diejenigen, die kein Geld besitzen, keinen Einfluss, keine Stimme, keine Macht. Und das trifft somit auf weit über 90% der Bevölkerung zu. Die Tansanier haben es mit einem Parlament zu tun, das spätestens seit der Amtszeit des letzten Präsidenten diesem nur noch mehr Macht zuscheffelt. Und wenn es doch einmal so was verrücktes wie Korruptionsbekämpfung anstrebt, werden die verabschiedeten Gesetze per Veto geblockt oder ganz einfach nicht implementiert. + +Auf der anderen Seite stehen die Dala Dala-Fahrer, die die typischen (meiner Meinung nach für Zwerge konstruierten) Kleinbusse in Betrieb halten, die (halbwegs) fixe Routen anfahren und im Nah- und Halbfernverkehr dominieren. Das Parlament hat vor einigen Wochen eine drastische Veränderung verabschiedet: Unter anderem teurere Lizenzen und regelmäßige Fahrprüfungen. Nicht, dass ich mehr Sicherheit nicht befürworten würde, aber in einem Land, in dem jeder Behördengang zu zahlende Bestechungsgelder mit sich bringt und die ebenfalls auf Bestechungsgeld aufbauende Polizei mit Freuden den Führerschein des Fahrers eines mit 15 Fahrgästen gefüllten Dala Dalas besonders gründlich untersuchen wird, ist das schon ein kritischer Vorgang. + +Was haben diese Fahrer also für Möglichkeiten, ihrem Widerwillen Ausdruck zu verschaffen? Sich mit offenen Briefen an die Politik wenden? Mit Schildern auf der Straße protestieren? Nein, es handelt sich dabei um Menschen aus den unteren Schichten, die austauschbar sind. Aber sie haben die Macht, durch Streik ein ganzes Land lahmzulegen und haben das auch für etwas über 24 Stunden gemacht. Und plötzlich stehen die politischen Eliten und die revoltierenden Fahrer auf Augenhöhe und können (für tansanische Verhältnisse) anständig diskutieren. + +#### … gilt umso mehr in Deutschland + +Was wir aus dem Tansanischen Beispiel lernen: Es geht um Macht und um das Recht, auf Augenhöhe über Konditionen zu diskutieren. Doch was im fernen Afrika der übersichtliche Streit zwischen einer Horde Minibusfahrer und der Regierung ist, ist in Deutschland der womögliche Endkampf zwischen Arbeitnehmerrechten und den politischen und wirtschaftlichen Machthabern. + +Denn es geht nicht nur um mehr Geld für die Lokführer, sondern darum, ob das (ironischerweise) von der SPD auf den Weg gebrachte Tarifeinheitsgesetz kleinere Gewerkschaften in die Bedeutungslosigkeit abschiebt und damit nicht nur den Lokführern, sondern de facto auch der gesamten „Arbeiterschaft“ die Lobby entreißt. Denn wenn wir resümieren, waren die letzten Arbeitskämpfe immer nach demselben Muster aufgebaut: Verhandlungen, zwei kleine Warnstreiks, die niemandem so wirklich weh tun, weitere Verhandlungen und dann eine Einigung auf einen Betrag, der irgendwie auch nicht so wirklich zur Realität passen will, sondern die Arbeitnehmer im Vergleich zur Inflation immer schlechter da stehen lässt. + +#### Quo vadis, Öffentliche Meinung? + +

+ weselsky-bild + +

+ Zwar eine Montage des Postillon, aber recht nah an der Wirklichkeit +

+
+ +Gewerkschaften werden langsam zu einem Relikt aus alten Tagen und dieser Trend wird von der alten Arbeiterpartei SPD, die jetzt irgendwo zwischen den Scheinwirklichkeiten rum dümpelt und es sich eigentlich mit allen verscherzt (Vorratsdatenspeicherung, TTIP, BND-Affäre…), nur noch verstärkt. Und wenn wir ehrlich sind, gefällt uns das sogar auf den ersten Blick. Was habe ich mich früher über Arbeiter in gelben VerDi-Westen geärgert, die mit ihrem Kohlestreik schon wieder den ersten Slot in der Tagesschau bekommen haben. Uns wäre es auch recht, wenn Züge einfach fahren würden, am besten ohne dass wir je einen Zugfahrer zu Gesicht bekommen. + +Doch was wir damit im Endeffekt wollen würden, wäre die Entmachtung genau dieser Arbeitnehmer. Ich bin bei Weitem kein Sozialist und das Wort „Klassenkampf“ war mir schon immer fern, aber ich weiß, dass jeder Mensch heute mindestens eine Lobby braucht. Wir sehen in Brüssel heute, wie Realpolitik gemacht wird: Mächtige, mit Millionen ausgestattete Lobbyorganisationen vertreten Wirtschaftsinteressen von Firmen, die wie Pipi Langstrumpf die Welt so gestalten (möchten), wie sie ihnen gefällt. Auf der Strecke bleiben dabei Interessen, die nicht mit ähnlich viel Geld unterfüttert sind. In der Free Software Foundation Europe ([FSFE][2]) sehen wir derzeit, wie schwer es ist, ohne überschäumende Ressourcen ganz rationale Interessen normaler Bürger und kleiner Unternehmen gegen [die Macht riesiger Tech-Unternehmen][3] zu vertreten. Wo sollen da Lokführer und Stahlarbeiter bleiben? Dazu kommt auch die politische und großgewerkschaftliche Untätigkeit, wie [Jakob Augstein im Spiegel][4] schon so gut zusammengefasst hat: + +> „Die Sozialdemokraten haben gegen die wachsende Ungleichheit nichts unternommen. Und die Gewerkschaften auch nicht. Im Gegenteil: Viel zu viele Sozialdemokraten und Gewerkschafter haben sich in der Vergangenheit auf die Seite der Lohndrücker geschlagen.“ + +
+ weselsky-bahnsinn + +

+ Größenbahnsinn oder geht’s vielleicht um mehr? +

+
+ +Kurzum: Deutsche Bürger, die nicht gerade Besitzer eines Multi-Millionen-Euro-Unternehmens sind, sollten sich aus ganz rationalen Gründen gegen das Mainstream-Bashing von GDL und Weselsky stellen. Denn mit dem Ausgang dieser Streik-Schlacht kann sich entscheiden, ob harte Verhandlungsmethoden und Gewerkschaften überhaupt noch eine Zukunft haben. Diese kleine Gewerkschaft könnte die Blaupause für die kommenden Verhandlungen etwa mit Lehrkräften an Schulen und Universitäten sein und ob diese dann überhaupt streiken dürfen. Lokführer sind der Mehrzahl der Bürger recht egal, aber die Pädagogen zukünftiger Generationen sollten es nicht sein. Aber wenn es soweit kommt, hat sich womöglich deren politische Macht schon in Rauch aufgelöst, weil sie ihr letztes Machtmittel, den Streik, über Arbeitsgerichte, Tarifeinheitsgesetze und die gefestigte Streikmüdigkeit der Bevölkerung schon verloren hat. + +Durch die geballte Einigkeit gegen diesen einen Streik einer Mini-Gewerkschaft schaufeln wir das Grab für die zukünftige Interessensvertretung von Arbeitnehmern in viel bedeutenderen Branchen und machen damit Wirtschaftsgrößen den größten Gefallen. Und was bleibt allen Normalo-Bürgern ohne Lobby dann, außer es das nächste Mal mit einer besseren Regierung zu versuchen, die der Wirtschaftslobby vielleicht etwas länger widerstehen kann? + + [1]: /uploads/weselsky-putin.jpg + [2]: https://fsfe.org + [3]: https://www.lobbycontrol.de/2014/09/lobbyfacts-die-groessten-deutschen-lobbyakteure-in-bruessel/ + [4]: http://www.spiegel.de/politik/deutschland/bahn-streik-danke-claus-weselsky-augstein-kolumne-a-1032521.html \ No newline at end of file diff --git a/content/blog/2015-06-26-splitdl-downloading-huge-files-from-slow-and-unstable-internet-connections.md b/content/blog/2015-06-26-splitdl-downloading-huge-files-from-slow-and-unstable-internet-connections.md new file mode 100644 index 0000000..3240bfc --- /dev/null +++ b/content/blog/2015-06-26-splitdl-downloading-huge-files-from-slow-and-unstable-internet-connections.md @@ -0,0 +1,84 @@ +--- +title: splitDL – Downloading huge files from slow and unstable internet connections +author: Max +type: post +date: 2015-06-26T15:59:03+00:00 +url: /2015/splitdl-downloading-huge-files-from-slow-and-unstable-internet-connections/ +yourls_shorturl: + - http://s.mehl.mx/cOdK- +categories: + - English + - Tanzania + - Tech +tags: + - bash + - download + - free software + - gnu/linux + - guide + - howto + - linux + - network + - script + - server + - shell + - snippet + - ssh + - tanzania + +--- +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][1], 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][2] 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**][3]. 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][4]. + +You might now think „BitTorrent (or any other program) is also able to do the same, if not more!“. Yes, but this requires a) the installation of another program and b) a download source which supports this protocol. On the contrary **splitDL** can handle every HTTP, HTTPS or FTP download. + +The downside in the current state is that **splitDL** requires shell access to the server where the file is saved to be able to split the file and create the necessary hashsums. So in my current situation I use my own virtual server in Germany on which I download the wanted file with high-speed and then use **splitDL** to prepare the file for the slow download from my server to the Tanzanian school. + +The project is of course still in an ongoing phase and only tested in my own environment. Please feel free to have a look at it and [download it via my Git instance][3]. I’m always looking forward to feedback. The application is licensed under GPLv3 or later. + +#### Some examples + +###### Server-side + +Split the file _debian.iso_ into smaller parts with the default options (MD5 hashsum, 10MB size) + +
split-dl.sh -m server -f debian.iso
+ +Split the file but use the SHA1 hashsum and split the file into pieces with 50MB. + +
split-dl.sh -m server -f debian.iso -c sha1sum -s 50M
+ +After one of the commands, a new folder called _dl-debian.iso/_ will be created. There, the splitted files and a document containing the hashsums and file sizes are located. You just have to move the folder to a web-accessible location on your server. + +###### Client-side + +Download the splitted files with the default options. + +
split-dl.sh -m client -f http://server.tld/dl-debian.iso/
+ +Download the splitted files but use SHA1 hashsum (has to be the same than what was used on the creation process) and override the wget options (default: _-nv –show-progress_). + +
split-dl.sh -m client -f http://server.tld/dl-debian.iso/ -c sha1sum -w --limit-date=100k
+ +#### Current bugs/drawbacks + + * Currently only single files are possible to split. This will be fixed soon. + * Currently the script only works with files in the current directory. This is also only a matter of some lines of code. + + [1]: http://www.tareo-tz.org/mit/ + [2]: https://en.wikipedia.org/wiki/ISO_image + [3]: http://src.mehl.mx/split-dl.git/ + [4]: https://en.wikipedia.org/wiki/Wget \ No newline at end of file diff --git a/content/blog/2015-07-22-weiterer-teilerfolg-beim-routerzwang.md b/content/blog/2015-07-22-weiterer-teilerfolg-beim-routerzwang.md new file mode 100644 index 0000000..6bc5d41 --- /dev/null +++ b/content/blog/2015-07-22-weiterer-teilerfolg-beim-routerzwang.md @@ -0,0 +1,70 @@ +--- +title: Weiterer Teilerfolg beim Routerzwang +author: Max +type: post +date: 2015-07-22T06:48:01+00:00 +url: /2015/weiterer-teilerfolg-beim-routerzwang/ +featured_image: /uploads/rz-kraken.jpg +yourls_shorturl: + - http://s.mehl.mx/dojHf +enclosure: + - | + | + http://ondemand-mp3.dradio.de/file/dradio/2015/07/11/dlf_20150711_1630_6e0df5f8.mp3 + 5678033 + audio/mpeg + +categories: + - Deutsch + - Political + - Tech +tags: + - compulsory routers + - free software + - fsfe + - germany + - network + - router + +--- +
+ Router in Bedrängnis + +

+ Eigene Router in Bedrängnis – hoffentlich nicht mehr lange +

+
+ +Die [Free Software Foundation Europe][1] und alle Freunde Freier Software, Verbraucherrechte und freien Wettbewerbs können sich seit einigen Tagen über einen weiteren Erfolg beim Thema Routerzwang freuen. Nachdem das Bundeswirtschaftsministerium (BMWi) das Thema Routerzwang in die eigenen Hände genommen hatte und einen Gesetzentwurf (TK-Endgerätegesetz) verfasst hat, der größtenteils unseren Vorstellungen entspricht, wurde dieser Entwurf der EU-Kommission und den Mitgliedsstaaten für Kommentare und Änderungswünsche vorgelegt. Dabei wurde nach Ablauf der sogenannten Stillhaltefrist ausschließlich eine formelle Unklarheit bemängelt und der Gesetzestext im Inhalt gebilligt. + +> **Kurzinfo: Was ist Routerzwang?** + +> In unserer Gesellschaft sollte es selbstverständlich sein, sich für technische Geräte frei entscheiden zu können, die man in seinem Zuhause in Betrieb nehmen möchte, genauso wie wir entscheiden können, welches Mobiltelefon wir kaufen. Doch einige Internetanbieter widersprechen diesem Prinzip und schreiben ihren Kunden vor, welches Gerät sie zur Einwahl in das Internet nutzen müssen oder diskriminieren Besitzer alternativer Geräte. Diese Verletzung eigentlich selbstverständlicher Rechte wird Routerzwang genannt und wird von der Free Software Foundation Europe und vielen anderen Organisationen, Projekten und Individuen stark kritisiert. Routerzwang ist nicht nur ein Thema für Technikexperten, sondern betrifft uns alle. +> +> Routerzwang beschäftigt die FSFE [seit dem Januar 2013][2], die öffentlich in vielen Anhörungen und im Hintergrund Stellung bezogen hat. Mehr Informationen über das Thema auf [unserer ausführlichen Übersichtsseite][3]. + +Passend zum Ende dieser Phase hat der Journalist Jan Rähm für den Deutschlandfunk einen Beitrag gesendet, der das Thema sehr differenziert betrachtet, den aktuellen Stand darlegt und sowohl Gegner als auch Befürworter des Routerzwangs zu Wort kommen lässt. Der Beitrag ist als [verkürzte Textversion][4] und in der [vollen Audioversion][5] (5:48) auf der Webseite des Deutschlandfunks zu finden. So sagt etwa der Pressesprecher von Tele Columbus, einer der wenigen Befürworter des Routerzwangs: + +> _„Im Kabelnetz von Tele Columbus besteht de facto schon heute Routerwahlfreiheit, denn wir stellen dem Kunden, wenn er nicht ausdrücklich einen Router von uns wünscht, ein einfaches Kabelmodem zur Verfügung, an das er jedes beliebige Endgerät mit der Funktionalität seiner Wahl anschließen kann.“_ + +Doch die Position der FSFE, diverser Unternehmen aus der TK-Endgeräte-Industrie, Verbraucherschutz- und Bürgerrechtsorganisationen sowie engagierter Individuen lautet seit jeher, dass das Netz und die Wahlfreiheit des Benutzers an der Dose in der Wand beginnt. Zu dieser Einsicht ist man auch im Bundeswirtschaftsministerium gelangt und hat deswegen größtenteils unmissverständlich festgelegt, dass – egal ob DSL- oder Kabelanschluss – die Kunden in Zukunft ihre Endgeräte, also Modems und Router, selbst auswählen dürfen. Für uns als FSFE ist dieser Schritt die einzig logische Konsequenz, „_weil dadurch alle Verbraucher laut Gesetz ein Modem- und Routermodell ihrer Wahl einsetzen können, ohne diskriminiert zu werden_“ (höre auch Zitat ab 1:55). + +Auch Argumente, dass die freie Routerwahl die Stabilität von Kabelnetzen gefährden würde, sehen wir Ablenkunsmanöver. So ist es etwa in den USA ohne weiteres unter ähnlichen Bedingungen wie in Deutschland möglich, ein Kabelmodem seiner Wahl zu betreiben. Von den heraufbeschworenen Netzausfällen und Störungen haben weder wir noch Verbände der Endgeräteindustrie gehört. + +### Wie es weiter geht + +Nachdem die Stillhaltefrist und damit der Zeitraum für mögliche Kommentierungen von EU-Ebene vorrüber ist, geht das Gesetz wieder zurück an das BMWi. Dieses wird voraussichtlich die formellen Änderungswünsche der Kommission umsetzen, woraufhin sich das Bundeskabinett mit dem Gesetz befasst. Wie uns mitgeteilt wurde, ist der darauf folgende parlamentarische Prozess für Herbst diesen Jahres vorgesehen. + +Doch wie schon im Titel angedeutet, ist der bisher erlangte Erfolg zwar ein Grund zur Freude, aber nicht zur Unachtsamkeit, da nur eine weitere Etappe genommen wurde. Vor allem die Netzbetreiber und -provider haben sich bisher als große Gegner einer freien und fairen Endgerätewahl positioniert und rücken noch immer nicht von bereits mehrfach widerlegten Argumenten ab. Wir als FSFE stellen uns daher auf ein paar Überraschungen ein und hoffen, dass Minister und Abgeordnete in Kabinett und Parlament die Rechte von Nutzern verteidigen und wiederherstellen werden. + +Ich danke im Namen der FSFE den zahlreichen Unterstützern der freien Endgerätewahl für die gute Zusammenarbeit. + +

+ Foto oben rechts: Scott Beale / Laughing Squid, CC BY-NC 2.0 +

+ + [1]: https://fsfe.org + [2]: https://fsfe.org/activities/routers/timeline.html + [3]: https://fsfe.org/activities/routers/routers.html + [4]: http://www.deutschlandfunk.de/dose-oder-modem-wo-endet-das-netz-der-internetanbieter.684.de.html?dram:article_id=325175 + [5]: http://ondemand-mp3.dradio.de/file/dradio/2015/07/11/dlf_20150711_1630_6e0df5f8.mp3 \ No newline at end of file diff --git a/content/blog/2015-09-19-german-government-wants-authorities-to-advertise-pdfreaders.md b/content/blog/2015-09-19-german-government-wants-authorities-to-advertise-pdfreaders.md new file mode 100644 index 0000000..6ad7809 --- /dev/null +++ b/content/blog/2015-09-19-german-government-wants-authorities-to-advertise-pdfreaders.md @@ -0,0 +1,52 @@ +--- +title: German Government wants authorities to advertise PDFreaders +author: Max +type: post +date: 2015-09-19T17:27:20+00:00 +url: /2015/german-government-wants-authorities-to-advertise-pdfreaders/ +featured_image: /uploads/pdfreaders-logo.png +yourls_shorturl: + - http://s.mehl.mx/amFlb +categories: + - English + - Political + - Tech +tags: + - free software + - fsfe + - germany + - pdf + +--- +[pdfreaders-logo][1]Should authorities be allowed to make advertisement for only one company and ignore all the others? Many people strongly disagree, among them myself, the Free Software Foundation Europe ([FSFE][2]) and also the CIO of the Federal Republic of Germany, the IT commissioner of the German Government. + +The whole story began with something we all had to read sometimes, at least subconsciously, on a website providing PDF documents: „To open the PDF files please download Adobe Acrobat Reader.“. Such notices are unnecessary advertisement for a proprietary (non-free) product — there are dozens of software applications which can do the same or even more, many of them Free Software. Because of that the FSFE started a campaign called „[PDFreaders][3]“ to make this deficiency public, and contact administrations and companies with thousands of letters and emails. + +One big success of this campaign in Germany is PDFreaders being mentioned in the official current [Migration Guide][4] of Germany’s Chief Information Officer. This document explains some critical points of IT in administrations and companies and evaluates different software. Under point 4.3.7 „PDF readers and authoring“ the guide compares different PDF applications and also takes Free Software readers like Evince into account: + +> _Alternative OSS-Produkte zur Darstellung von PDF-Dokumenten gibt es einige, u.a. Sumatra PDF und Okular; die [FSFE][5] pflegt eine Liste mit freien PDF-Betrachtern [[242][6]]._ +> +> There are a lot of alternative OSS products for displaying PDF documents, i.a. Sumatra PDF and Okular; the [FSFE][5] maintains a list of free PDF readers [[242][6]]. + +This „list of PDF readers“ is one of the cores of the PDFreaders campaign. Instead of just complaining the unjust situation the FSFE provides information on various applications which are all Free Software and which fit everybody’s needs, may it be performance, size, the amount of functions or the used operating system. And if authorities (or companies and individuals) want to tell their website’s visitors how to open PDF documents, the CIO has a strong suggestion: + +> _Werden PDF-Dokumente öffentlich bereitgestellt, sollten Behörden fairerweise zu deren Betrachtung nicht mehr ausschließlich den Adobe Acrobat Reader empfehlen, sondern beispielsweise die von der FSFE bereitgestellten HTML-Bausteine [[250][7]] zum Download alternativer PDF-Betrachter in ihre Seiten aufnehmen._ +> +> If PDF documents are provided publicly authorities shall no longer only recommend Adobe Acrobat Reader for displaying them, but for example use the HTML templates provided by the FSFE [[250][8]] on their websites for downloading alternative PDF readers. + +Besides mentioning the broad PDF capabilities of LibreOffice, the guide also evaluates the current situation with editing PDF documents instead of only reading them, a function which some authorities seem to need for their services. According to the CIO the alternative Free Software solutions cannot provide the same functionalities as proprietary and expensive applications. Instead of just accepting the situation, the Migration Guide asks for more initiative of officials: + +> _Hier wäre ein behördliches Engagement zur diesbezüglichen Weiterentwicklung vorhandener OSS-Alternativen sinnvoll, um nicht in ungewollter Abhängigkeit von einzelnen Anbietern proprietärer Produkte zu verharren._ +> +> In this case more administrative engagement to extend existing OSS alternatives would make sense in order to avoid staying in unwanted dependency from single vendors of proprietary products. + +So yes please, German authorities, listen to your CIO: Use and help improving Free Software to keep yourself and your citizens independent, avoid vendor-lockin, save money and open a fair market for all competitors in the race for the best PDF readers. + + [1]: /uploads/pdfreaders-logo.png + [2]: https://fsfe.org + [3]: https://www.fsfe.org/campaigns/pdfreaders/pdfreaders.html + [4]: http://www.cio.bund.de/Web/DE/Architekturen-und-Standards/Migrationsleitfaden-und-Migrationshilfen/migrationsleitfaden_node.html + [5]: http://fsfe.org + [6]: http://pdfreaders.org + [7]: http://pdfreaders.org/graphics.de.html + [8]: http://pdfreaders.org/graphics.html \ No newline at end of file diff --git a/content/blog/2016-02-14-i-love-free-software-apps.md b/content/blog/2016-02-14-i-love-free-software-apps.md new file mode 100644 index 0000000..1d9dc88 --- /dev/null +++ b/content/blog/2016-02-14-i-love-free-software-apps.md @@ -0,0 +1,64 @@ +--- +title: I love Free Software (Apps) +author: Max +type: post +date: 2016-02-14T09:00:18+00:00 +url: /2016/i-love-free-software-apps/ +yourls_shorturl: + - http://s.mehl.mx/Drh9Q +categories: + - English + - Tech +tags: + - communication + - email + - free software + - ilovefs + - security + - whatsapp + +--- +Yoda-ilovefsDo you know being in a restaurant and getting a menu which is longer than the average novel, and you cannot decide for a single meal because every single one sounds more delicious than the other? That’s similar to the problem I was having when writing this blog post… + +Today is the [„I love Free Software“ day][1], on which people all over the world say „thank you“ to contributors of [Free Software][2], often created in free time and with lots of passion. This is software you can use for any purpose, which source code you or others can analyse, which can be modified and distributed – any program respecting these essential freedoms benefits a fair society, and our most personal privacy and security in return. + +After I thanked [ZNC][3] and [Taskwarrior][4] last Valentine’s Days, this year I want to focus on software running on the device that’s almost always in my pocket. My mobile phone is the gatekeeper of most of my communication: short messages, pictures, emails, social media, todo lists, calendar… it’s amazing thinking about what this tiny computer has to achieve to satisfy my needs. But of course, I also want to use as much Free Software as possible to secure my sensitive data. And because of that I cannot name a single software but have to list a few which I depend on almost every single day, and I want to sincerely thank the people contributing to them! + +### The foundation + +With mobile phones it’s not easy to have a completely free operating system platform, depending on your phone model. For mine, I chose [**OmniROM**][5], which still contains some non-free firmware but is as much Free Software as possible. And it works like a charm, having lots of nice features, a broad device compatibility, and actively development team. + +Because I want to avoid non-free software and services which use my most sensitive data for their profit, I avoid Google and similar products as much as possible. Because of that, I do not load my application from Google Play but from [**F-Droid**][6], an app „store“ offering Free Software apps only! Right now there are far over 1000 apps available, most of them fulfilling high quality requirements. All the apps I’ll list below can be found there. + +### My big five + +I use my mobile phone for communication and information purposes. So [**K-9 Mail**][7] is my sanctuary, enabling me to receive and send, de- and encrypt my emails. Admittedly, the user interface isn’t the best, some things can get on your nerves (organising many folders…), but it just works. That’s an attribute I learnt to value. + +The next layer is short texts communication. Since almost nobody in my circle of acquaintances uses oldschool short messages anymore, I switched most of my chitchat communication over to [**LibreSignal**][8], a Google-dependency-freed fork of Signal, providing very strong encryption and a great and easy user interface at the same time. At the same time I still use _Telegram_ (non-free server) and _WhatsApp_ (absolutely bad) because it’s hard to convince all the contacts you have. But it’s nice to see how many people switched over to better alternatives meanwhile. And with [**Twidere**][9], I can manage my GnuSocial and Twitter accounts easily with lots of features. And if you are still forced to use Facebook, try [_Face Slim_][10]. + +As a scout, many people seem to think that I always know any direction. In the old days I had to navigate using stars and moss on stones, but nowadays I just pick my ultimate compass and can lead the way thanks to [**OsmAnd**][11] and [**Transportr**][12]. The former enables me to download offline vector maps, navigate on them, find points of interest (bars, shops, bus stops – and bars), with the latter I can use the public transport system of almost every larger city in Europe using a neat and fast-responding interface. And the best thing: It even works in areas without sun, stars, or moss-grown stones. But well, without battery… + +### The small things + +F-Droid also contains a myriad of small jewels, nice tools for the even most absurd needs and situations most of us are confronted with not more than once in our lifetime. Not so absurd but also quite helpful for me are **[primitive ftpd][13]**, **[SMS Backup+][14]**, [**JAWS**][15], and [**Port Authority**][16]. The first starts a small (S)FTP server which I can connect to using a client like _Filezilla_ on my desktop computer, so I can exchange huge amounts of files faster than via Bluetooth. _SMS Backup+_ backups – surprise surprise – SMSs. But it uploads (and restores) them (and also call logs) to any IMAP folder you define, which comes in handy when you want to search your SMSs quickly at your computer in your email client. _JAWS_ and _Port Authority_ are small tools to debug networks. The former shows all nearby Wifi networks, their signal strength and BSSID. The latter allows you to see all devices in the network including MAC address or open ports. + +### Conclusion + +So you see, Free Software is everywhere and you can do great things with it. Everytime I can replace another non-free and privacy-disrespecting service with Free Software, it makes my day. I hope I can give some of this joy today to the people making this possible! + + [1]: https://ilovefs.org + [2]: https://fsfe.org/about/basics/freesoftware.html + [3]: https://blog.mehl.mx/2014/i-love-znc-because-ilovefs/ + [4]: https://blog.mehl.mx/2015/i-love-taskwarrior-therefore-i-love-free-software/ + [5]: http://omnirom.org/ + [6]: https://f-droid.org/ + [7]: https://f-droid.org/repository/browse/?fdfilter=k-9&fdid=com.fsck.k9 + [8]: https://fdroid.eutopia.cz/ + [9]: https://f-droid.org/repository/browse/?fdfilter=twidere&fdid=org.mariotaku.twidere + [10]: https://f-droid.org/repository/browse/?fdfilter=face+slim&fdid=org.indywidualni.fblite + [11]: https://f-droid.org/repository/browse/?fdfilter=osmand&fdid=net.osmand.plus + [12]: https://f-droid.org/repository/browse/?fdfilter=transport&fdid=de.grobox.liberario + [13]: https://f-droid.org/repository/browse/?fdfilter=primitive+ftp&fdid=org.primftpd + [14]: https://f-droid.org/repository/browse/?fdfilter=sms+backup&fdid=com.zegoggles.smssync + [15]: https://f-droid.org/repository/browse/?fdfilter=jaws&fdid=is.pinterjann.jaws + [16]: https://f-droid.org/repository/browse/?fdfilter=port+authority&fdid=com.aaronjwood.portauthority \ No newline at end of file diff --git a/content/blog/2016-02-26-switching-my-code-from-gitweb-to-gogs.md b/content/blog/2016-02-26-switching-my-code-from-gitweb-to-gogs.md new file mode 100644 index 0000000..e8fdd97 --- /dev/null +++ b/content/blog/2016-02-26-switching-my-code-from-gitweb-to-gogs.md @@ -0,0 +1,62 @@ +--- +title: Switching my code from gitweb to Gogs +author: Max +type: post +date: 2016-02-26T17:05:18+00:00 +url: /2016/switching-my-code-from-gitweb-to-gogs/ +featured_image: /uploads/gogs-logo.png +yourls_shorturl: + - http://s.mehl.mx/VPTju +categories: + - English + - Tech + +--- +gogs-logoSince end of 2014 I published some of my Free Software code – mostly Bash, R and HTML/PHP – on a [self-hosted gitweb instance][1]. I did this because I wanted to share the work I’ve done with other people because I’ve learnt a lot by reading other people’s code. Although I’m just a „hobby programmer“, I hoped at least some people can benefit from it. + +The last few days, I switched from [gitweb][2], a very simple web interface for my git repositories, to [Gogs][3], a feature-rich webservice which still is lightweight, and quite simple to install and maintain – and of course Free Software! By doing so, people can now register [with my Gogs instance][4], open issue tickets, fork my projects and send pull requests – very similar to non/semi-free services like GitHub or GitLab. + +### Installation + +As a user of the German hosting service [Uberspace][5] I had to follow some special ways to install Gogs. But thanks to a [nice guide][6] it was quite simple, so it was finished after only 15 minutes. The only tricky part was the SSH feature with which I spent a few hours to make it work. The problem was that using the same public key with Gogs as you’re using for logging into the server’s SSH won’t work. You’ll have to generate a new SSH key and use it’s public key for Gogs. Then you have to edit your client’s SSH config: + +
Host src.mehl.mx
+  HostName src.mehl.mx
+  User your-username
+  IdentityFile ~/.ssh/id_rsa_gogs
+  IdentitiesOnly yes
+ +This forces your client to use the Gogs-specific SSH key for every connection to src.mehl.mx – and not the default one for this IP/server. However, this is only a problem for you as the administrator, not for other users. It took some time for me to find that out :) + +**Update**: It’s best to use the built-in server if you cannot create a separate user for Gogs and if you depend on using the default ~/.ssh/authorized\_keys file for other use cases than gogs (e.g. to log in). The problems lies in Gogs behaviour: sometimes it rewrites the authorized\_keys file without being asked to do so, and as a result you cannot log into the user’s account anymore via SSH! To make the solution easy for you, here’s the excerpt of my custom/conf/app.ini file: + +
[server]
+[...]
+START_SSH_SERVER = true
+SSH_PORT     = ${DEDICATED_SSH_PORT_FOR_GOGS}
+SSH_ROOT_PATH = /path/to/the/separate/authorized_keys/file
+ +Doing so starts Gogs’s built-in SSH server on a separate port (line 4) and with a separate authorized_keys file (line 5). Of course, you’d have to open this TCP port in your firewall. Downside: The SSH links for cloning the repository don’t look that tidy if it’s another port than 22. + +### Migration + +Before beginning with switching to Gogs, the migration process was the most intimidating part of the whole story for me. In the end, it was really simple! In the Gogs web panel you can choose if you want to create an empty new repository, or a „new migration“. Choosing the latter enables you to name the old git repository’s link, a new name and a description. It then copies the current status and all past commits to the new repository! I didn’t test it with branches, and migrating issues might be a burden too (_see update below_). But hey, for me as a light user it was just perfect :) + +### Feel free + +Now please feel free to browse through [my repositories][7] and work with them. You can also have a look at [my archived, not-working-anymore gitweb][8] page to see the striking differences between both. + +**Update 28.02.2016:** + +I tested the migration assistant with a larger repository. It still worked like a charm: All branches, releases and commits are taken over. However, issues, pull requests, and wiki entries are not transferred, at least not natively. Maybe there’re tools for that? + +Additionally, I more deeply elaborated the SSH problems and solutions if you’re using a shared host, or/and if you cannot create a separate user for Gogs and you use SSH keys to login into that user. + + [1]: https://blog.mehl.mx/2014/sharing-is-caring-my-git-instance/ + [2]: http://git-scm.com/docs/gitweb + [3]: http://gogs.io + [4]: https://src.mehl.mx + [5]: https://uberspace.de + [6]: https://geeklabor.de/archives/195-Gogs-auf-Uberspace-installieren.html + [7]: https://src.mehl.mx/mxmehl + [8]: http://src-old.mehl.mx \ No newline at end of file diff --git a/content/blog/2016-03-28-getting-oldschool-oder-wie-ich-uncool-wurde.md b/content/blog/2016-03-28-getting-oldschool-oder-wie-ich-uncool-wurde.md new file mode 100644 index 0000000..a332563 --- /dev/null +++ b/content/blog/2016-03-28-getting-oldschool-oder-wie-ich-uncool-wurde.md @@ -0,0 +1,52 @@ +--- +title: 'Getting oldschool, oder: Wie ich uncool wurde' +author: Max +type: post +date: 2016-03-28T13:39:45+00:00 +url: /2016/getting-oldschool-oder-wie-ich-uncool-wurde/ +featured_image: /uploads/old-man.png +yourls_shorturl: + - http://s.mehl.mx/0VcUR +categories: + - Deutsch + - Stuff + - Tech +tags: + - communication + - education + - facebook + - future + - snowden + - social networks + - whatsapp + +--- +old-manLangsam tritt das ein, von dem ich gehofft habe, es möge mich nicht ereilen: Ich werde alt – zumindest gefühlt. Noch vor fünf bis zehn Jahren glaubte ich mich an der Spitze des neuen Ökosystems: Des Internets. Ich war der Meinung, diese Welt besser zu kennen als der Großteil der Menschheit. Kein Trend war vor mir sicher. Instant Messenger, Tauschbörsen, soziale Netzwerke, Diskussionsforen, Videoportale und all die lustigen und verstörenden Teile dieser neuen, digitalen und immer schneller werdenden Welt. Jedes neue Feature war ein Segen in meinen Augen. + +### Alter Mann + +Und was ist heute? Lese ich von einer neuen tolle App, stöhne ich nur auf. Wird mir vorgeschlagen, Messenger X oder Y zu verwenden, rattern mir schon Ausreden durch den Kopf. Erfahre ich auf Portalen wie dem angesagten _bento_ etwas über die „10 lustigsten Videos“ des letzten Jahres, kenne ich maximal eines davon – und das auch nur, weil im Spiegel oder so etwas darüber stand. Und bei jeder neuen Registrierung für einen Internetdienst, und sei es auch nur ein simpler Onlineshop, zieht mein Puls an. + +Stellenanzeigen sind besonders frustrierend für mich. War ich mir früher – überspitzt gesagt – sicher, mit meinen coolen Internetproskillz auf dem Arbeitsmarkt gefragt zu sein, auch wenn ich die nächsten zwei Jahre Mathe schwänze, sind mir angesagte Jobs für junge Menschen schon jetzt teilweise zu hoch. Wird etwa für Internetredakteure oder Community-Manager verlangt, sich unter anderem gut in „_Instagram, Snapchat, Periscope und flickr_“ auszukennen, müsste ich zugeben, auf keinem dieser trendigen Netzwerke überhaupt einen Account zu haben, geschweige denn das geringste Interesse daran. + +Am schlimmsten sind jedoch die Berichte in Fachzeitschriften über IT-Konferenzen. Wenn ich nur lese, dass wir in zehn Jahren unseren Alltag über ein Mikrofon steuern können, das unsere Spracheingaben direkt an Google oder Amazon schickt, würde ich am liebsten einen Flug in die hinterste Dritte Welt buchen. + +## Die Frage nach dem Warum + + + +Der große Unterschied zwischen meinem damaligen und heutigen Ich beschäftigt mich daher schon seit einiger Zeit. Obwohl ich mir vorgenommen habe, etwa nie von meinen zukünftigen Kindern in Sachen Computern und Internet überholt zu werden, graut es mir schon jetzt davor, die dann angesagten Features zumindest verstehen zu müssen. Woran liegt diese über zehn Jahren angewachsene Verdrossenheit gegenüber dem Neuen? Ist dies gar kein spezifisches Phänomen, sondern tatsächlich ein ganz normaler Prozess? + +Das fängt irgendwie schon bei dem Generationenunterschied an. Um die Wende herum geborene Kinder wie ich sind meist noch mit Windows 95 aufgewachsen. Zehn Jahre jüngere Menschen wissen teils nicht einmal mehr, wie man einen separaten Bildschirm anmacht. Das ist kein Vorwurf an die heutige Jugend, immerhin habe ich auch nie einen Commodore 64 in den Händen gehalten, trotzdem kann man ihn nicht ignorieren. + +{{< youtube 8ucCxtgN6sc >}} + +Ein weiterer Grund könnte sein, dass mir die Sinnhaftigkeit heutiger Trends nicht wirklich klar ist. Warum _Instagram_, wenn man seine Fotos auch auf _Facebook_ (wenn man es denn nutzt) Leuten zeigen kann? Warum muss ich meinen aktuellen Akkustand und das Wetter mit [_Peach_][1] teilen, wenn ich es doch auch einfach per gewöhnlichem Messenger schicken könnte? Gut, ältere Generationen dachten sich wahrscheinlich auch „Warum _ICQ_ benutzen, wenn ich doch einfach telefonieren könnte?“. + +Natürlich liegt es auch an der gesteigerten Aufmerksamkeit gegenüber Nachteilen, die mit der Nutzung eines Dienstes einhergehen. Jede neue angesagte App verlangt weitreichenden Zugriff auf meine persönlichen Daten. Und mit rasant gestiegenen technischen Möglichkeiten (Spracherkennung, Virtual Reality, Automatisierung, Drohnen…) steigt auch der Einfluss dieser neuen Technik auf unser Leben. Ich las etwa kürzlich über Visionen in der Möbelbranche: Man könne sein Zuhause einscannen, in ein Möbelcenter fahren und dort die ausgestellten Möbel mit einer VR-Brille in seine Zimmer projizieren (bzw. andersherum). Die logische Konsequenz: IKEA & Co. wissen ab sofort, wie mein Zimmer aussieht, welchen Stil ich bevorzuge, dass mein Schrank aus dem letzten Jahrtausend stammt und welche Möbel ich mir besonders angeschaut habe. Gruselig, zumindest für mein heutiges Ich. + +All das zusammen verursacht, so glaube ich, bei mir diesen Trend zum „alt werden“: Sättigungsgefühl, Wertschätzung der gewohnten Werkzeuge, (berechtigte) Paranoia und auch einfach zu wenig Zeit, jedem coolen neuen Ding hinterherzulaufen, obwohl man genau weiß, dass es zu 90% in spätestens zwei Jahren in der Versenkung landet. Und ist das wirklich so schlimm? + +**Wie ist es bei Euch? Bin ich uncool? Seid Ihr es auch?** + + [1]: http://www.heise.de/newsticker/meldung/Neue-Social-Media-App-Peach-Mit-Zauberwoertern-Infos-teilen-3067666.html \ No newline at end of file diff --git a/content/blog/2016-07-30-der-routerzwang-faellt-was-bringt-mir-das.md b/content/blog/2016-07-30-der-routerzwang-faellt-was-bringt-mir-das.md new file mode 100644 index 0000000..493b769 --- /dev/null +++ b/content/blog/2016-07-30-der-routerzwang-faellt-was-bringt-mir-das.md @@ -0,0 +1,56 @@ +--- +title: Der Routerzwang fällt – Und was bringt mir das? +author: Max +type: post +date: 2016-07-30T11:02:38+00:00 +url: /2016/der-routerzwang-faellt-was-bringt-mir-das/ +featured_image: /uploads/rz_lego-techy.jpg +yourls_shorturl: + - http://s.mehl.mx/WqA0L +categories: + - Deutsch + - Political + - Tech +tags: + - compulsory routers + - free software + - fsfe + - gnu/linux + - linux + - router + - security + +--- +_Diesen Artikel habe ich ursprünglich als [Gastbeitrag für Netzpolitik.org][1] geschrieben._ + +
+ CC BY-SA 2.0 Konrad Twardowski + +

+ CC BY-SA 2.0 Konrad Twardowski +

+
+ +Betreiber von Diskotheken wissen es genau: Die Wahl des richtigen Türstehers ist wichtig, damit sich keine Störenfriede einschleichen. Dasselbe könnte man auch von Routern behaupten, die als Schnittstelle zwischen Internet und Heimnetz dafür sorgen müssen, dass nur das die Tore passiert, was auch im Sinne des Besitzers ist. Und endlich, [nach Jahren der gesetzlichen Unklarheit][2], bekommen wir mit dem Ende des Routerzwangs das Recht dazu, uns unseren stillen Türsteher frei auszusuchen. + +Was die [Süddeutsche Zeitung als „Unabhängigkeitstag für Internetnutzer“][3] bezeichnet, ist das offizielle Ende des Routerzwangs und das Inkrafttreten der Endgerätefreiheit am 1. August. Bisher konnten Internetanbieter (ISPs) in Deutschland bestimmen, welchen Router Kunden zur Verbindung mit dem Internet nutzen müssen. Nutzer hatten keinen Einfluss auf diese Entscheidung. Das ändert sich nun. Aber wir müssen sicherstellen, dass alle Kunden über diese neuen Rechte Bescheid wissen, und gleichzeitig überprüfen, ob ISPs die neuen Regeln befolgen. + +Wie bei einem Türsteher sollte man auch dem Router vertrauen können, denn über ihn läuft jeglicher Internetverkehr, also etwa alle E-Mails, Downloads und häufig auch Telefongespräche. [Zwangsrouter][4] fallen oft negativ mit kritischen Sicherheitslücken auf, die Nutzer aus technischen oder rechtlichen Gründen nicht selbst beheben können. Sie sind auch dafür bekannt, zu einigen Netzwerkgeräten oder Standards wie IPv6 inkompatibel zu sein oder nur eine geringe Anzahl wichtiger Funktionen zu unterstützen. + +## Recht auf Endgerätefreiheit in Anspruch nehmen + + + +Um nun den Providern auf die Finger zu schauen, wenn es um die Umsetzung des [seit 2013 heiß umkämpften Gesetzes][5] geht, bittet die Free Software Foundation Europe (FSFE) um Erfahrungsberichte von Internetnutzern, die vom 1. August an ein eigenes Gerät an der Telefon- bzw. Kabeldose betreiben. Dazu stellt sie eine [Wiki-Seite][6] zur Verfügung, auf der Informationen und Nutzerberichte gesammelt werden. Vor allem für Kabelanschlüsse, für die bisher nur wenige Modelle auf dem Markt erhältlich sind, stellt die FSFE auch einige Testgeräte bereit. + +Aufgrund von Erfahrungen, die wir in in der Vergangenheit gemacht haben, müssen wir davon ausgehen, dass einige ISPs darauf setzen werden, ihre Kunden zur Nutzung ihres jeweiligen Standardrouters zu zwingen. Unitymedia etwa erfordert eine telefonische Registrierung des neuen Gerätes, vorstellbar ist auch der Ausschluss von Bestandskunden von dem neuen Recht oder die Verweigerung des Supports. + +Die FSFE möchte sicherstellen, dass solches Fehlverhalten öffentlich gemacht wird und dafür brauchen wir deine Hilfe. Wenn du Kunde eines deutschen Internetanbieters bist, bitten wir dich, dein neues Recht auszuüben und ein alternatives Gerät zu verwenden – idealerweise eines mit einer Firmware, die [Freie Software][7] ist. + + [1]: https://netzpolitik.org/2016/der-routerzwang-faellt-und-was-bringt-mir-das/ + [2]: https://fsfe.org/activities/routers/timeline.de.html + [3]: http://www.sueddeutsche.de/wirtschaft/router-endlich-frei-verbinden-1.3095231 + [4]: https://fsfe.org/activities/routers/ + [5]: https://netzpolitik.org/2015/der-lange-weg-des-routerzwangs-zur-endgeraetefreiheit + [6]: https://wiki.fsfe.org/Activities/CompulsoryRouters/Implementation/Germany + [7]: https://fsfe.org/about/basics/freesoftware.de.html \ No newline at end of file diff --git a/content/blog/2016-08-08-erste-testgeraete-fuer-routerfreiheit-versendet.md b/content/blog/2016-08-08-erste-testgeraete-fuer-routerfreiheit-versendet.md new file mode 100644 index 0000000..267bbd0 --- /dev/null +++ b/content/blog/2016-08-08-erste-testgeraete-fuer-routerfreiheit-versendet.md @@ -0,0 +1,72 @@ +--- +title: Erste Testgeräte für Routerfreiheit versendet +author: Max +type: post +date: 2016-08-08T09:11:51+00:00 +url: /2016/erste-testgeraete-fuer-routerfreiheit-versendet/ +featured_image: /uploads/rz_test4.jpg +yourls_shorturl: + - http://s.mehl.mx/BjDiS +categories: + - Deutsch + - Political + - Tech +tags: + - compulsory routers + - free software + - fsfe + - germany + - guide + - howto + - router + +--- +Wie Ihr vielleicht schon mitbekommen habt, ist am 1. August die Welt etwas freier geworden. Nun nämlich ist das [Gesetz für Endgerätefreiheit][1] in Kraft, welches endlich erlaubt, dass Kunden deutscher Internetanbieter einen Router oder ein Modem ihrer Wahl an ihren Anschluss klemmen dürfen. Die [FSFE][2] hat sich von Anfang an für dieses Recht eingesetzt und schlussendlich haben wir diesen großen Erfolg errungen, der den [Routerzwang][3] endgültig abschaffen soll. + +Doch ein Gesetz auf Papier bringt wenig, wenn es in der Realität nicht eingehalten oder trickreich umschifft wird. Deshalb möchten wir so schnell und ausführlich wie möglich wissen, welche Internetanbieter ihren Kunden die neuen gesetzlich gesicherten Freiheiten zugestehen und welche uns weiter mit Zwangsgeräten beglücken wollen. Die FSFE möchte deshalb folgendermaßen Licht ins Dunkel bringen: + + 1. Wir stellen eine [zentrale Wiki-Seite][4], auf der wir Testberichte zu den einzelnen Herstellern sammeln: Geht der Internet- und Telefonanschluss mit einem alternativen Gerät? Was muss man dabei beachten? Welche Geräte sind kompatibel? Daneben gibt es weitere nützliche Informationen rund um die Routerfreiheit. + 2. Da vor allem der Markt für Kabelrouter noch sehr frisch ist, stellen wir [Testgeräte][5] zur Verfügung, die wir an freiwillige Tester versenden. Diese lassen uns dann hoffentlich weitere detaillierte Informationen zu dem Anschluss alternativer Router zukommen, die wiederum mehr Menschen helfen, Klarheit über dieses Thema zu erlangen. + +## Raus mit den Testgeräten! + + + +Heute habe ich die erste Fuhre an handelsüblichen Testgeräten verschickt. Vier dieser Geräte sind für Kabelanschlüsse bestimmt und werden mit Kabeldeutschland/Vodafone, Unitymedia, KMS und Telecolumbus getestet. Ein DSL-Gerät ging für einen O2-Anschluss raus, die bisher ihren Kunden den Anschluss alternativer Geräte nicht erlaubt hatten. + + + +Wenn Du auch Interesse hast, die neue Routerfreiheit an Deinem Internetanschluss auszuprobieren, schreibe mir bitte einfach [eine Mail][6] mit Informationen über Deinen Internetanschluss (Anbieter, Tarif, genutzte Funktionen (Telefon/TV) und bisher verwendeter Router), sowie Deine postalische Adresse. Dann erhältst Du so bald wie möglich ein Testgerät. + +Und falls Du schon einen anderen Router als den Deines Internetanbieters in Betrieb hast, dann hilf uns bitte, die [Berichte im Wiki][7] zu ergänzen. Besonders freuen würden wir uns über Leute, die alternative Geräte mit [Freier Software][8] testen und darüber berichten würden. Vor allem für Kabelanschlüsse ist dabei der Markt noch sehr übersichtlich. Bitte hilf uns dabei, die Situation für Nutzer Freier Software zu verbessern! + + [1]: https://fsfe.org/news/2016/news-20160725-01.html + [2]: https://fsfe.org + [3]: https://fsfe.org/activities/routers + [4]: https://wiki.fsfe.org/Activities/CompulsoryRouters/Implementation/Germany + [5]: https://wiki.fsfe.org/Activities/CompulsoryRouters/Implementation/Germany#Ger.2BAOQ-te + [6]: https://fsfe.org/about/mehl/ + [7]: https://wiki.fsfe.org/Activities/CompulsoryRouters/Implementation/Germany#Anbieter + [8]: https://fsfe.org/about/basics/freesoftware.html \ No newline at end of file diff --git a/content/blog/2016-08-26-froscon-2016-ein-rueckblick.md b/content/blog/2016-08-26-froscon-2016-ein-rueckblick.md new file mode 100644 index 0000000..3dfb683 --- /dev/null +++ b/content/blog/2016-08-26-froscon-2016-ein-rueckblick.md @@ -0,0 +1,52 @@ +--- +title: FrOSCon 2016 – Ein Rückblick +author: Max +type: post +date: 2016-08-26T13:57:48+00:00 +url: /2016/froscon-2016-ein-rueckblick/ +featured_image: /uploads/froscon1.jpg +yourls_shorturl: + - http://s.mehl.mx/4OFLs +categories: + - Deutsch + - Political + - Tech +tags: + - compulsory routers + - conference + - free software + - fsfe + - germany + - gnu/linux + - router lockdown + +--- +[froscon1][1]_For English readers: This is a short report about the last FrOSCon conference with some pictures and the talk recordings. Have a look at Polina’s talk (second video), it’s in English!_ + +Letztes Wochenende, am 20. und 21. August, fand in Sankt Augustin bei Bonn die 11. Ausgabe der [FrOSCon][2] statt, einer Konferenz zu Freier Software. Auch dieses Jahr war die FSFE mit einem Stand vertreten, an dem wir viele interessante Gespräche geführt und einen Ausschnitt unserer aktuellsten T-Shirts und weiterer Artikel präsentiert haben. + +Dank zweier toller Helfer, Gabriele und Constantin, war diese FrOSCon ein voller Erfolg. [Polina Malaja][3] aus dem Berliner FSFE-Büro und ich, die dieses Jahr die Hauptorganisation übernommen haben, konnten am Montag mit vollster Zufriedenheit nach Hause fahren. + +## Videoaufzeichnung der Vorträge + + + +[][4]Zufrieden konnten wir auch sein, weil unsere Vorträge wohl recht gut ankamen und wir die Zuhörer über hochaktuelle Themen – [Routerzwang und Funkabschottung][5] sowie den [Digitalen Binnenmarkt und weitere Freie-Software-Themen auf EU-Ebene][6] – auf den neuesten Stand bringen konnten. Dank des sehr professionellen Recording-Teams der FrOSCon sind schon jetzt die Videoaufzeichnungen unserer beiden Vorträge online. + +Mein Vortrag mit dem Titel „**Routerzwang und Funkabschottung – Was Aktivisten davon lernen können**“ + +[https://media.ccc.de/v/froscon2016-1738-routerzwang_und_funkabschottung_was_aktivisten_davon_lernen_konnen/oembed] + +Und Polinas sehr spannender Vortrag auf Englisch unter dem Titel „**DSM, EIF, RED: Acronyms on the EU level and why they matter for software freedom**„: + +[https://media.ccc.de/v/froscon2016-1797-dsm_eif_red_acronyms_on_the_eu_level_and_why_they_matter_for_software_freedom/oembed] + +In diesem Sinne freuen wir uns auf die [kommenden Events mit FSFE-Beteiligung][7]. In Deutschland wären dies unter anderem der FSFE Summit Anfang September, die OpenRheinRuhr Anfang November, der ChaosCommunicationCongress kurz nach Weihnachten und natürlich die FOSDEM in Brüssel im neuen Jahr. + + [1]: https://blog.mehl.mx/uploads/froscon1.jpg + [2]: https://www.froscon.de/ + [3]: https://blogs.fsfe.org/polina/ + [4]: https://blog.mehl.mx/uploads/froscon2.jpg + [5]: https://programm.froscon.de/2016/events/1738.html + [6]: https://programm.froscon.de/2016/events/1797.html + [7]: https://fsfe.org/events/events.html \ No newline at end of file diff --git a/content/blog/2016-09-01-schluss-mit-dem-routerzwang-radiosendung-im-deutschlandfunk.md b/content/blog/2016-09-01-schluss-mit-dem-routerzwang-radiosendung-im-deutschlandfunk.md new file mode 100644 index 0000000..9543e6f --- /dev/null +++ b/content/blog/2016-09-01-schluss-mit-dem-routerzwang-radiosendung-im-deutschlandfunk.md @@ -0,0 +1,52 @@ +--- +title: „Schluss mit dem Routerzwang“ – Radiosendung im Deutschlandfunk +author: Max +type: post +date: 2016-09-01T16:44:26+00:00 +url: /2016/schluss-mit-dem-routerzwang-radiosendung-im-deutschlandfunk/ +yourls_shorturl: + - http://s.mehl.mx/Pm00l +enclosure: + - | + | + http://ondemand-mp3.dradio.de/file/dradio/2016/09/01/marktplatz_schluss_mit_dem_routerzwang_komplette_sendung_dlf_20160901_1010_9341a1c6.mp3 + 61578603 + audio/mpeg + + - | + | + https://up.mehl.mx/audio/20160901-dlf-routerzwang.ogg + 48203018 + audio/ogg + +categories: + - Deutsch + - Stuff + - Tech +tags: + - audio + - communication + - compulsory routers + - free software + - fsfe + - germany + - network + - router + - security + +--- +[][1]Heute war ich beim Deutschlandfunk zu einer [Radiosendung über den Routerzwang][2] eingeladen. Wir haben etwa eine Stunde lang darüber geredet, warum es so wichtig ist, dass wir seit dem 1. August endlich [Routerfreiheit][3] in Deutschland haben, was das für Verbraucher bringt und welche Fragen noch ungeklärt sind. + +Zusammen mit den beiden anderen Gästen, Marleen Frontzeck von teltarif.de und Katja Henschler von der Verbraucherzentrale Sachsen, haben wir mit dem Moderator Römermann aber auch weitere Aspekte angeschnitten, etwa W-LAN-Sicherheit und Freifunk-Netzwerke. Insgesamt war es eine sehr angenehme und hoffentlich für möglichst viele Menschen auch informative Sendung. Und da es mein erstes Radio-Interview war, zumal auch noch live, freut mich das ganz besonders. + +[][4]Eine kurze Zusammenfassung gibt auf der [Deutschlandfunk-Webseite][2], von wo man auch die [Audio-Aufnahme][5] herunterladen bzw. direkt anhören kann. Für Archivierungszwecke stelle ich die komplette Sendung auch im freien ogg-Format [hier zum Download][6] bereit. + +
+
+ + [1]: https://blog.mehl.mx/uploads/dlf-interview2.jpg + [2]: http://www.deutschlandfunk.de/dsl-modem-und-kabelrouter-schluss-mit-dem-routerzwang.772.de.html?dram:article_id=362214 + [3]: https://fsfe.org/activities/routers + [4]: https://blog.mehl.mx/uploads/dlf-interview.jpg + [5]: http://ondemand-mp3.dradio.de/file/dradio/2016/09/01/marktplatz_schluss_mit_dem_routerzwang_komplette_sendung_dlf_20160901_1010_9341a1c6.mp3 + [6]: https://up.mehl.mx/audio/20160901-dlf-routerzwang.ogg \ No newline at end of file diff --git a/content/blog/2016-09-23-endgeraetefreiheit-testen-es-sind-wieder-router-verfuegbar.md b/content/blog/2016-09-23-endgeraetefreiheit-testen-es-sind-wieder-router-verfuegbar.md new file mode 100644 index 0000000..4491747 --- /dev/null +++ b/content/blog/2016-09-23-endgeraetefreiheit-testen-es-sind-wieder-router-verfuegbar.md @@ -0,0 +1,47 @@ +--- +title: Endgerätefreiheit testen – Es sind wieder Router verfügbar! +author: Max +type: post +date: 2016-09-23T09:23:09+00:00 +url: /2016/endgeraetefreiheit-testen-es-sind-wieder-router-verfuegbar/ +yourls_shorturl: + - http://s.mehl.mx/NRVkR +categories: + - Deutsch + - Political + - Tech +tags: + - compulsory routers + - email + - free software + - fsfe + - germany + - router + +--- +
+ mirsasha, CC BY-NC-ND 2.0 + +

+ mirsasha, CC BY-NC-ND 2.0 +

+
+ +Seit dem 1. August herrscht – auch dank der langfristigen Arbeit der FSFE – gesetzlich [Endgerätefreiheit][1] in Deutschland, sprich alle Kundinnen und Kunden eines DSL- oder Kabelanbieters sollen die Freiheit haben, ein Modem oder Router ihrer Wahl anzuschließen, ohne systematisch benachteiligt zu werden. Doch halten die Anbieter das wirklich ein? Die FSFE testet das mit Hilfe großartiger Freiwilliger, denen wir alternative Testgeräte zuschicken. Und davon sind aktuell wieder ein paar verfügbar und warten auf neue Tester! + +Auf der [Wiki-Seite für den Anschlusstest][2] haben wir mittlerweile für viele größere wie kleinere Anbieter Erfahrungen von Leuten gesammelt. Man erhält dadurch eine schnelle Übersicht, bei welchem Anbieter es Probleme geben könnte und wie diese am besten zu lösen sind. Für einige Anbieter wie Unitymedia haben wir schon viele Ergebnisse erhalten, doch bei einigen anderen populären wie zum Beispiel der Telekom oder 1&1 sieht es noch mau aus. Daher würden ich und die FSFE sich freuen, wenn Kunden solcher Anbieter versuchen würden, einen alternativen Router anzuschließen. + +Das Prozedere ist ganz einfach: Schreibt mir eine E-Mail ([Kontaktdaten][3]), in der ihr + + 1. euren Anschluss etwas näher beschreibt (Welcher Anbieter? Welcher Tarif? Wird Telefonie/TV genutzt? Welches Router/Modem-Gerät ist bisher im Einsatz?) + 2. eure postalische Adresse nennt. + +Dann nehme ich Euch in die Liste der Tester auf. Euch entstehen dabei selbstverständlich **keine Kosten**, aber wir würden uns natürlich freuen, wenn Ihr uns als [Fördermitglieder][4] unterstützen würdet, damit wir auch in Zukunft aktiv für Nutzerrechte eintreten können. + +P.S.: Ihr habt schon einen alternativen Router bei einem der Anbieter im Einsatz? Super! Dann schreibt mir doch bitte eine Mail nach Vorlage der [Berichte im FSFE-Wiki][5], oder tragt es selbst dort ein, wenn Ihr schon einen Account habt. Danke :) + + [1]: https://fsfe.org/news/2016/news-20160725-01.html + [2]: https://wiki.fsfe.org/Activities/CompulsoryRouters/Implementation/Germany + [3]: https://fsfe.org/about/mehl/ + [4]: https://fsfe.org/join + [5]: https://wiki.fsfe.org/Activities/CompulsoryRouters/Implementation/Germany#A.28Vorlage.29_Anbieter_XYZ \ No newline at end of file diff --git a/content/blog/2016-10-13-freie-software-definition-in-dortmund.md b/content/blog/2016-10-13-freie-software-definition-in-dortmund.md new file mode 100644 index 0000000..816a818 --- /dev/null +++ b/content/blog/2016-10-13-freie-software-definition-in-dortmund.md @@ -0,0 +1,47 @@ +--- +title: Freie Software – Definition in Dortmund +author: Max +type: post +date: 2016-10-13T17:22:16+00:00 +url: /2016/freie-software-definition-in-dortmund/ +featured_image: /uploads/do-foss.jpg +yourls_shorturl: + - http://s.mehl.mx/TUnuc +categories: + - Deutsch + - Political +tags: + - dortmund + - free software + - fsfe + - germany + - gnu/linux + - public administration + - security + +--- +do-foss_definitionSeit einiger Zeit arbeiten wir bei der Free Software Foundation Europe (FSFE) mit der Initiative [Do-FOSS][1] aus Dortmund zusammen, die dort mehr Freie Software in die öffentliche Verwaltung einbringen möchte. Konkret wird in Dortmund aktuell an dem Masterplan Digitales Dortmund gearbeitet, der „die zukünftige digitale Ausrichtung und die damit verbundenen Veränderungsprozesse an der Schnittstelle von Stadtverwaltung und Stadtgesellschaft (Bürgerinnen und Bürger, Politik, Vereine, Unternehmen, Wissenschaft)“ beinhaltet. + +Erfreulicherweise wird der Masterplan auch Freie Software beinhalten, doch haben unsere Freunde von Do-FOSS bemerken müssen, dass dieser Begriff häufig im Zusammenhang mit _Open Source Software_ erwähnt wird. Wir als FSFE verstehen [Open Source als Synonym für Freie Software][2], aber mussten leider schon in der Vergangenheit öfter feststellen, dass damit nur die Verfügbarkeit des Quellcodes und nicht – wie bei Freier Software offensichtlicher – auch die anderen drei der insgesamt [vier Freiheiten Freier Software][3] gemeint waren: Neben der Freiheit, die Funktionsweise anhand des Codes nachzuvollziehen (2), auch die Verwendung für jeden Zweck (1), das Teilen der Software mit anderen (3), und das Verbessern der Programme (4). + +**Was also versteht nun die Stadt Dortmund unter Freier Software? Macht sie einen Unterschied zwischen Freier Software und Open Source?** + +Daher habe ich bereits im Mai diesen Jahres [einen Brief][4] an den Dortmunder Oberbürgermeister Ulrich Sierau (SPD) geschrieben mit der Bitte, uns die Definition der Stadt für Freie Software mitzuteilen. Im selben Schritt habe ich die gängige Definition von Freier Software mit ihren vier Rechten angehängt und angeboten, dass wir als FSFE der Stadt im weiteren Prozess gerne behilflich sind. [Die Antwort][5], die ich Ende Juni erhalten habe, hat uns allerdings enttäuscht. Dort wird nur darauf verwiesen, dass der bereits erwähnte Masterplan die Definition von Freier Software aufgreift: + +> Der Masterplan wird im Dialog mit der Stadtgesellschaft erarbeitet. Den Ergebnissen dieser Beratungen möchte ich nicht vorgreifen.
+ +Damit wird leider die Chance verspielt, gleich zu Beginn der wichtigen Beratungen über eine effektive städtische digitale Strategie den Fokus auf [transparente, vertrauenswürdige und wirtschaftlich nachhaltige][6] Software zu setzen. Wir hoffen, dass die Stadt Dortmund sich so bald wie möglich auf die [gängige Definition][3] von Freier Software einigt, diese auch mit dem Begriff von _Open Source Software_ gleichsetzt und Freier Software den Vorzug bei Anschaffungen und Weiterentwicklungen gibt. + +#### Weiterführende Links + + * [Ausführliche Mitteilung von Do-FOSS zu diesem Thema][7] + * [Anfrage der FSFE an die Stadt Dortmund (13.05.2016)][4] + * [Antwort der Stadt Dortmund (30.06.2016)][5] + + [1]: http://blog.do-foss.de/ + [2]: https://fsfe.org/freesoftware/basics/comparison.html + [3]: https://fsfe.org/about/basics/freesoftware.html + [4]: https://blog.mehl.mx/wp-content/uploads/2016-05-13-FSFE-Definition-Freie-Software.pdf + [5]: https://blog.mehl.mx/wp-content/uploads/2016-06-30-Oberbuergermeister-Sierau-Definition-Freie-Software.pdf + [6]: http://blog.do-foss.de/freie-software/vorteile/ + [7]: http://blog.do-foss.de/kolumne/stadt-dortmund-definition-freier-software/ \ No newline at end of file diff --git a/content/blog/2016-11-09-openrheinruhr-2016-a-report-of-iron-and-freedom.md b/content/blog/2016-11-09-openrheinruhr-2016-a-report-of-iron-and-freedom.md new file mode 100644 index 0000000..2ad44da --- /dev/null +++ b/content/blog/2016-11-09-openrheinruhr-2016-a-report-of-iron-and-freedom.md @@ -0,0 +1,125 @@ +--- +title: OpenRheinRuhr 2016 – A report of iron and freedom +author: Max +type: post +date: 2016-11-09T21:55:53+00:00 +url: /2016/openrheinruhr-2016-a-report-of-iron-and-freedom/ +yourls_shorturl: + - http://s.mehl.mx/suu6W +categories: + - English + - Stuff +tags: + - android + - event + - free software + - fsfe + - germany + - router + +--- +
+ orr2016_iron + +

+ Our Dutch iron fighters +

+
+ +Last weekend, I visited Oberhausen to participate in [OpenRheinRuhr][1], a well-known Free Software event in north-western Germany. Over two days I was part of [FSFE][2]’s booth team, gave a talk, and enjoyed talking to tons of like-minded people about politics, technology and other stuff. In the next few minutes you will learn what coat hangers have to do with flat irons and which hotel you shouldn’t book if you plan to visit Oberhausen. + +On Friday, [Matthias][3], [Erik][4], and I arrived at the event location which normally is a museum collecting memories of heavy industries in the Ruhr area: old machines, the history and background of industry workers, and pictures of people fighting for their rights. Because we arrived a bit too early we helped the (fantastic!) orga team with some remaining work in the exhibition hall before setting up FSFE’s booth. While doing so, we already sold the first tshirt and baby romper (is this a new record?) and had nice talks. Afterwards we enjoyed a free evening and prepared for the next busy day. + +But Matthias and I faced a bad suprised: our hotel rooms were build for midgets and lacked a few basic features. For example, Matthias‘ room had no heating, and in my bathroom someone has stolen the shelf. At least I’ve been given a bedside lamp – except the little fact that the architect forgot to install a socket nearby. Another (semi-)funny bug were the emergency exits in front of our doors: by escaping from dangers inside the hotel, taking these exits won’t rescue you but instead increase the probability of dying from severe bone fractures. So if you ever need a hotel in Oberhausen, try to avoid [City Lounge Hotel][5] by any means. Pictures at the end of this article. + +
+ orr2016_hall1 + +

+ The large catering and museum hall +

+
+ +On Saturday, André Ockers (NL translation coordinator), Maurice Verhessen (Coordinator Netherlands) and Niko Rikken from the Netherlands joined us to help at the booth and connect with people. Amusingly we again learnt that communication can be very confusing the shorter it is. While Matthias thought that he asked Maurice to bring a iron cloth hanger, Maurice thought he should bring a flat iron. Because he only had one (surprisingly), he asked Niko to bring his as well. While we wondered why Maurice only has one cloth hanger, our Dutch friends wondered why we would need two flat irons ;-) + +Over the day, Matthias, Erik, and I gave our talks: Matthias spoke about [common misconceptions about Free Software][6] and how to clear them up, Erik explained how people can [synchronise their computers and mobile phones][7] with Free Software applications, and I motivated people to become politically active by presenting some lessons learned from [my experiences with the Compulsory Routers and Radio Lockdown cases][8]. There were many other talks by FSFE people, for example by [Wolf-Dieter][9] and [Wolfgang][10]. In the evening we enjoyed the social event with barbecue, free beer, and loooooong waiting queues. + +Sunday was far more relaxed than the day before. We had time to talk to more people interested in Free Software and exchanged ideas and thoughts with friends from other initiatives. Among many others, I spoke with people from Freifunk, a Pirate Party politician, a tax consultant with digital ambitions, two system administrators, and a trade unionist. But even the nicest day has to end, and after we packed up the whole booth, merchandise and promotion material again, André took the remainders to the Netherlands where they will be presented to the public at FSFE’s [T-DOSE][11] booth. + + + + [1]: http://openrheinruhr.de/ + [2]: https://fsfe.org + [3]: https://fsfe.org/about/kirschner/ + [4]: https://fsfe.org/about/albers/ + [5]: http://cityhotel-oberhausen.de/ + [6]: http://programm.openrheinruhr.de/2016/events/445.de.html + [7]: http://programm.openrheinruhr.de/2016/events/494.de.html + [8]: http://programm.openrheinruhr.de/2016/events/496.de.html + [9]: http://programm.openrheinruhr.de/2016/events/527.de.html + [10]: http://programm.openrheinruhr.de/2016/events/526.de.html + [11]: https://www.t-dose.org/ \ No newline at end of file diff --git a/content/blog/2016-11-14-build-fsfe-websites-locally.md b/content/blog/2016-11-14-build-fsfe-websites-locally.md new file mode 100644 index 0000000..a20545d --- /dev/null +++ b/content/blog/2016-11-14-build-fsfe-websites-locally.md @@ -0,0 +1,179 @@ +--- +title: Build FSFE websites locally +author: Max +type: post +date: 2016-11-13T23:00:44+00:00 +url: /2016/build-fsfe-websites-locally/ +yourls_shorturl: + - http://s.mehl.mx/SiwTp +categories: + - English + - Tech +tags: + - bash + - free software + - fsfe + - gnu/linux + - guide + - howto + - script + - shell + - tutorial + +--- +_Note: This guide is also available [in FSFE’s wiki][1] now, and it will be the only version maintained. So please head over to the wiki if you’re planning to follow this guide._ + +Those who create, edit, and translate [FSFE websites][2] already know that the source files are XHTML files which are build with a XSLT processor, including a lot of custom stuff. One of the huge advantages from that is that we don’t have to rely on dynamic website processors and databases, on the other hand there are a few drawbacks as well: websites need a few minutes to be generated by the central build system, and it’s quite easy to mess up with the XML syntax. Now if an editor wants to create or edit a page, she needs to wait a few minutes until the build system has finished everytime she wants to test how the website looks like. So in this guide I will show how to build single websites on your own computer in a fraction of the FSFE’s system build time, so you’ll only need to commit your changes as soon as the file looks as you want it. All you need is a bit hard disk space and around one hour time to set up everything. + +_The whole idea is based on what FSFE’s webmaster Paul Hänsch has coded and written. [On his blog][3] he explains the new build script. He explains how to build files locally, too. However, this guide aims to make it a bit easier and more verbose._ + +Before we’re getting started, let me shortly explain the concept of what we’ll be doing. Basically, we’ll have three directories: _trunk_, _status_, and _fsfe.org_. Most likely you already have _trunk_, it’s a clone of the FSFE’s main SVN repository, and the source of all operations. All those files in there have to be compiled to generate the final HTML files we can browse. The location of these finished files will be _fsfe.org_. _status_, the third directory, contains error messages and temporary files. + +After we (1) created these directories, partly by downloading a repository with some useful scripts and configuration files, we’ll (2) build the whole FSFE website on our own computer. In the next step, we’ll (3) set up a local webserver so you can actually browse these files. And lastly we’ll (4) set up a small script which you can use to quickly build single XHTML files. Last but not least I’ll give some real-world examples. + +### 1. Clone helper repository + +Firstly, clone a [git repository][4] which will give you most needed files and directories for the further operations. It has been created by me and contains configuration files and the script that will make building of single files easier. Of course, you can also do everything manually. + +In general, this is the directory structure I propose. In the following I’ll stick to this scheme. Please adapt all changes if your folder tree looks differently. + +
trunk (~700 MB):      ~/subversion/fsfe/fsfe-web/trunk/
+status (~150 MB):     ~/subversion/fsfe/local-build/status/
+fsfe.org (~1000 MB):  ~/subversion/fsfe/local-build/fsfe.org/
+ +(For those not so familiar with the GNU/Linux terminal: _~_ is the short version of your home directory, so for example _/home/user_. _~/subversion_ is the same as _/home/USER/subversion_, given that your username is _USER_) + +To continue, you have to have _git_ installed on your computer (_sudo apt-get install git_). Then, please execute via terminal following command. It will copy the files from [my git repository][4] to your computer and already contains the folders _status_ and _fsfe.org_. + +
git clone https://src.mehl.mx/mxmehl/fsfe-local-build.git ~/subversion/fsfe/local-build
+ +Now we take care of _trunk_. In case you already have a copy of _trunk_ on your computer, you can use this location, but please do a _svn up_ beforehand and be sure that the output of _svn status_ is empty (so no new or modified files on your side). If you don’t have _trunk_ yet, download the repository to the proposed location: + +
svn --username $YourFSFEUsername co https://svn.fsfe.org/fsfe-web/trunk ~/subversion/fsfe/fsfe-web/trunk
+ +### 2. Build full website + +Now we have to build the whole FSFE website locally. This will take a longer time but we’ll only have to do it once. Later, you’ll just build single files and not >14000 as we do now. + +But first, we have to install a few applications which are needed by the build script (**Warning**: it’s possible your system lacks some other required applications which were already installed on mine. If you encounter any _command not found_ errors, please report them in the comments or by mail). So let’s install them via the terminal: + +
sudo apt-get install make libxslt
+ +Note: _libxslt_ may have a different name in your distribution, e.g. _libxslt1.1_ or _libxslt2_. + +Now we can start building.The full website build can be started with + +
~/subversion/fsfe/fsfe-web/trunk/build/build_main.sh --statusdir ~/subversion/fsfe/local-build/status/ build_into ~/subversion/fsfe/local-build/fsfe.org/
+ +See? We use the build routine from _trunk_ to launch building _trunk_. All status messages are written to _status_, and the final website will reside in _fsfe.org_. Mind differing directory names if you have another structure than I do. This process will take a long time, depending on your CPU power. Don’t be afraid of strange messages and massive walls of text ;-) + +After the long process has finished, navigate to the _trunk_ directory and execute _svn status_. You may see a few files which are new: + +
max@bistromath ~/s/f/f/trunk> svn status
+?       about/printable/archive/printable.en.xml
+?       d_day.en.xml
+?       d_month.en.xml
+?       d_year.en.xml
+?       localmenuinfo.en.xml
+[...]
+ +These are leftover from the full website build. Because _trunk_ is supposed to be your productive source directory where you also make commits to the FSFE SVN, let’s delete these files. You won’t need them anymore. + +
rm about/printable/archive/printable.en.xml d_day.en.xml d_month.en.xml d_year.en.xml localmenuinfo.en.xml
+rm tools/tagmaps/*.map
+ +Afterwards, the output of _svn status_ should be empty again. It is? Fine, let’s go on! If not, please also remove those files (and tell me which files were missing). + +### 3. Set up local webserver + +After the full build is completed, you can install a local webserver. This is necessary to actually display the locally built files in your browser. In this example, I assume you don’t already have a webserver installed, and that you’re using a Debian-based operating system. So let’s install _lighttpd_ which is a thin and fast webserver, plus _gamin_ which _lighttpd_ needs in some setups: + +
sudo apt-get install lighttpd gamin
+ +To make Lighttpd running properly we need a configuration file. This has to point the webserver to show files in the _fsfe.org_ directory. You already downloaded my recommended config file (_lighttpd-fsfe.conf.sample_) by cloning the git repository. But you’ll have to modify the path accordingly and rename it. So rename the file to _lighttpd-fsfe.conf_, open it and change following line to match the actual and absolute path of the _fsfe.org_ directory (~ does not work here): + +
server.document-root = "/home/USER/subversion/fsfe/local-build/fsfe.org"
+ +Now you can test whether the webserver is correctly configured. To start a temporary webserver process, execute the next command in the terminal: + +
lighttpd -Df ~/subversion/fsfe/local-build/lighttpd-fsfe.conf
+ +Until you press Ctrl+C, you should be able to open your local FSFE website in any browser using the URL http://localhost:5080. For example, open the URL in your browser. You should see basically the same website as the original [fsfe.org website][5]. If not, double-check the paths, if the lighttpd process is still running, or if the full website build is already finished. + +### 4. Single page build script + +Until now, you didn’t see much more than you can see on the original website. But in this step, we’ll configure and start using a Bash script (_fsfe-preview.sh_) I’ve written to make a preview of a locally edited XHTML file as comfortable as possible. You already downloaded it by cloning the repository. + +First, rename and edit the script’s configuration file _config.cfg.sample_. Rename it to _config.cfg_ and open it. The file contains all paths we already used here, so please adapt them to your structure if necessary. Normally, it should be sufficient to modify the values for _LOC_trunk_ (_trunk_ directory) and _LOC_out_ (_fsfe.org_ directory), the rest can be left with the default values. + +Another feature of the fsfe-preview is to automatically check the XML syntax of the files. For this, _libxml2-utils_ has to be installed which contains _xmllint_. Please execute: + +
sudo apt-get install libxml2-utils
+ +Now let’s make the script easy to access via the terminal for future usage. For this, we’ll create a short link to the script from one of the binary path directories. Type in the terminal: + +
sudo ln -s ~/subversion/fsfe/local-build/fsfe-preview.sh /usr/bin/fsfe-preview
+ +From this moment on, you should be able to call _fsfe-preview_ from anywhere in your terminal. Let’s make a test run. Modify the XHTML source file contribute/contribute.en.xhtml and edit some obvious text or alter the title. Now do: + +
fsfe-preview ~/subversion/fsfe/fsfe-web/trunk/contribute/contribute.en.xhtml
+ +As output, you should see something like: + +
[INFO] Using file /home/max/subversion/fsfe/fsfe-web/trunk/contribute/contribute.en.xhtml as source...
+[INFO] XHTML file detected. Going to build into /home/max/subversion/fsfe/local-build/fsfe.org/contribute/contribute.en.html ...
+[INFO] Starting webserver
+
+[SUCCESS] Finished. File can be viewed at http://localhost:5080/contribute/contribute.en.html
+
+ +Now open the mentioned URL and take a look whether your changes had an effect. + +### Recommended workflows + +In this section I’ll present a few of the cases you might face and how to solve them with the script. I presume you have your terminal opened in the _trunk_ directory. + +##### **Preview a single file** + +To preview a single file before uploading it, just edit it locally. The file has to be located in the _trunk_ directory, so I suggest to only use one SVN trunk on your computer. It makes almost no sense to store your edited files in different folders. To preview it, just give the path to the edited file as argument for _fsfe-preview_, just as we did in the preceding step: + +
fsfe-preview activities/radiodirective/statement.en.xhtml
+ +The script detects whether the file has to be built with the XSLT processor (.xhtml files), or if it just can be copied to the website without any modification (e.g. images). + +##### Copy many files at once + +Beware that all files you added in your session have to be processed with the script. For example, if you create a report with many images included and want to preview it, you will have to copy all these images to the output directory as well, and not only the XHTML file. For this, there is the _–copy_ argument. This circumvents the whole XSLT build process and just plainly copies the given files (or folders). In this example, the workflow could look like the following: The first line copies some images, the second builds the corresponding XHTML file which makes use of these images: + +
fsfe-preview --copy news/2016/graphics/report1.png news/2016/graphics/report2.jpg
+fsfe-preview news/2016/news-20161231-01.en.xhtml
+ +##### Syntax check + +In general, it’s good to check the XHTML syntax before editing and commiting files to the SVN. The script _fsfe-preview_ already contains these checks but it’s good to be able to use it anyway. If you didn’t already do it before, install _libxml2-utils_ on your computer. It contains _xmllint_, a syntax checker for XML files. You can use it like this: + +
xmllint --noout work.en.xhtml
+ +If there’s no output (–noout), the file has a correct syntax and you’re ready to continue. But you may also see something like + +
work.en.xhtml:55: parser error : Opening and ending tag mismatch: p line 41 and li
+      </li>
+           ^
+ +In this case, this means that the

tag starting in line 41 isn’t closed properly. + +### Drawbacks + +The presented process and script has a few drawbacks. For example you aren’t able to preview certain very dynamic pages or parts of pages, or those depending on CGI scripts. In most cases you’ll never encounter these, but if you’re getting active with the FSFE’s webmaster team it may happen that you’ll have to fall back on the standard central build system. + +Any other issues? Feel free to report them as they will help to improve FSFE’s editors to work more efficiently :-) + +##### Changelog + +29 November 2016: Jonas has pointed out a few bugs and issues with a different GNU/Linux distribution. Should be resolved. + + [1]: https://wiki.fsfe.org/TechDocs/Mainpage/BuildLocally + [2]: https://fsfe.org + [3]: http://blog.plutz.net/The_FSFE_org_buildscript.html + [4]: https://src.mehl.mx/mxmehl/fsfe-local-build + [5]: https://fsfe.org/contribute/contribute.en.html \ No newline at end of file diff --git a/content/blog/2017-02-14-i-love-astroid-ilovefs.md b/content/blog/2017-02-14-i-love-astroid-ilovefs.md new file mode 100644 index 0000000..0f906f6 --- /dev/null +++ b/content/blog/2017-02-14-i-love-astroid-ilovefs.md @@ -0,0 +1,94 @@ +--- +title: 'I love astroid! #ilovefs' +author: Max +type: post +date: 2017-02-14T07:30:51+00:00 +url: /2017/i-love-astroid-ilovefs/ +categories: + - English + - Stuff + - Tech +tags: + - astroid + - communication + - email + - free software + - fsfe + - gnu/linux + - ilovefs + - organisation + - thunderbird + +--- +

+ + +

+ Hugo and me declaring our love to astroid +

+
+ +You cannot imagine how long I’ve waited to write this blog post. Normally I’m not the bragging kind of guy but for this year’s edition of my „[I love Free Software][1]“ declaration articles (after [2014][2], [2015][3] and [2016][4]) I just want to shout out to the world: I have the world’s best mail client: [astroid][5]! + +

+ Update February 2018: Meanwhile I have published my mail config incl. astroid, notmuch, offlineimap etc. It is a rather complicated and special setup but perhaps it will help you. +

+ +Okay, maybe I’ll add two or three words to explain why I am so grateful to the authors of this awesome Free Software application. Firstly, I should note that until ~6 months ago I have used Thunderbird – extended with lots of add-ons but still a mail user agent that most of you will know. But with each new email and project it became obvious to me that I have to find a way to organise my tenthousands of mails in a better way: not folder-based but tag-based, but not to the expense of overview and comfort. + +Thanks to [Hugo][6] I became aware of astroid, an application that unites my needs and is open to multiple workflows. Let’s read how [astroid][5] describes itself: + +> Astroid is a lightweight and fast Mail User Agent that provides a graphical interface to searching, display and composing email, organized in thread and tags. Astroid uses the [notmuch][7] backend for blazingly fast searches through tons of email. Astroid searches, displays and composes emails – and rely on other programs for fetching, syncing and sending email. + +
+ + +

+ My currently unread and tagged emails +

+
+ +Astroid is roughly 3 years old, is based on sup, and is mainly developed by [Gaute Hope][8], an awesome programmer who encourages people – also non-programmers like me – to engage in the small and friendly community. + +### Why is astroid so cool? + +That’s one secret of astroid: it doesn’t try to catch up to programs that do certain jobs very well already. So astroid relies on external POP/IMAP fetching (e.g. offlineimap), SMTP server (e.g. msmtp), email indexing (notmuch), and mail editors (e.g. vim, emacs). This way, astroid can concentrate on offering a unique interface that unites many strenghts: + +
+ + +

+ Saved searches on the left, a new editor window on the right +

+
+ + * astroid encourages you to use tabs. Email threads open in a new tab, a newly composed message is a separate tab, as well as a search query. You won’t loose any information when you write an email while researching in your archive while keeping an eye on incoming unread mails. If your tab bar becomes too long, just open another astroid instance. + * It can be used by either keyboard or mouse. Beginners value to have a similar experience as with mouse-based mail agents like Thunderbird, experts hunt through their mails with the configurable keyboard shortcuts. + * Tagging of emails is blazingly fast and efficient. You can either tag single mails or whole email threads with certain keywords that you can freely choose. Astroid doesn’t impose a certain tagging scheme on its users. + * astroid already included the possibility to read HTML or GPG-exncrypted emails. No need to create a demotivatingly huge configuration file like with mutt. + * Theming your personal astoid is easy. The templates can be configured using HTML and CSS syntax. + * It is expandable by Python and lua plugins. + * It’s incredibly fast! Thunderbird or Evolution users will never have to bother with 20+ seconds startup time anymore. Efficiency hooray! +
+ + +

+ On startup, I see my saved search queries +

+
+ + Because it is open to any workflow, you can also easily use astroid with rather uncommon workflows. I, personally, use a mix of folder- and tag-based sorting. My mail server automatically moves incoming mails to certain folders (mostly based on mailing lists) which is important to me because I often use my mobile phone that doesn’t include a tagging-based email client, too. But with my laptop I can add additional tags or tag unsorted mails. Based on these tags, I again sort these mails to certain folders to reduce the amount of mails lying around in my unsorted inbox. Such a strange setup would have been impossible with many other email agents but with astroid (almost) everything is possible. + + Did I convince you? Well, certainly not. Switching one’s email client is a huge step because for most people it involves changing the way how most of theor digital communication happens. But hopefully I convinced you to have a look at astroid and think about whether this awesome client may fulfill some of your demands better than your existing one. If you already use notmuch, a local SMTP server, offlineimap, procmail or other required parts, testing astroid will be very easy for you. And if your way to using astroid will be longer, as mine was, feel free to ask me or the helpful community. + + PS: FSFE activists in Berlin carried out [two awesome activities for ILoveFS][9]! + + [1]: https://ilovefs.org + [2]: https://blog.mehl.mx/2014/i-love-znc-because-ilovefs/ + [3]: https://blog.mehl.mx/2015/i-love-taskwarrior-therefore-i-love-free-software/ + [4]: https://blog.mehl.mx/2016/i-love-free-software-apps/ + [5]: https://github.com/astroidmail/astroid + [6]: https://hroy.eu/ + [7]: http://notmuchmail.org/ + [8]: http://gaute.vetsj.com/ + [9]: https://fsfe.org/news/2017/news-20170214-01.html \ No newline at end of file diff --git a/content/blog/2017-05-29-idee-wiki-zu-gesellschaftspolitischen-positionen-von-prominenten.md b/content/blog/2017-05-29-idee-wiki-zu-gesellschaftspolitischen-positionen-von-prominenten.md new file mode 100644 index 0000000..1272bb7 --- /dev/null +++ b/content/blog/2017-05-29-idee-wiki-zu-gesellschaftspolitischen-positionen-von-prominenten.md @@ -0,0 +1,49 @@ +--- +title: 'Idee: Wiki zu gesellschaftspolitischen Positionen von Prominenten' +author: Max +type: post +date: 2017-05-29T10:15:45+00:00 +url: /2017/idee-wiki-zu-gesellschaftspolitischen-positionen-von-prominenten/ +categories: + - Deutsch + - Political +tags: + - education + - idea + - public opinion + +--- +
+ CC-BY-SA 3.0 Sandro Halank / CC-BY 2.0 Ronnie Macdonald + +

+ CC-BY-SA 3.0 Sandro Halank / CC-BY 2.0 Ronnie Macdonald +

+
+ +_Alles begann, als mein Mitbewohner Lars und ich uns eines morgens fragten: „Mit wem würden wir lieber ein Bier trinken gehen, Thomas de Maizière oder Jens Lehmann?“._ + +Zu de Maizière hatten wir beide eine recht eindeutige Meinung, aber bei Lehmann waren wir uns nicht sicher, ob wir uns mit ihm verstehen würden. Lars meinte sich zu erinnern, dass er ein merkwürdiges Gesellschaftsbild hätte, allerdings zeigte ein Blick auf [Lehmanns Wikipedia-Artikel][1], dass er gemeinnützig sehr engagiert ist. Was nun? Würden wir uns mit dem Ex-Nationaltorwart bei einem gemütlichen Bier gut verstehen oder schon nach wenigen Minuten in einer heftigen Diskussion über Geschlechterbilder enden? + +„Man bräuchte eine Wikipedia über gesellschaftspolitische Positionen von A-Prominenten“, sagte Lars, womit er meiner Meinung nach absolut Recht hat. Denn eine solche Sammlung zu politischen Einstellungen würde gleich mehreren Aufträgen dienen: + + * Prominente hübschen oft ihr Portfolio durch öffentlichkeitswirksame Aktionen wie Spendengalas oder ein paar Fototerminen mit armen Kindern in Drittweltländern auf, weichen aber in ihren Aussagen manchmal erkennbar von einem menschenfreundlichen Bild ab. Gerade bei politischen Akteuren ist eine gewisse Transparenz der gesellschaftlichen Grundeinstellungen wünschenswert. + * Aus wissenschaftlicher Sicht ist ein Vergleich der „inszenierten“ Außendarstellung und der (vermeintlichen) eigentlichen Einstellung höchst interessant. Auch ein Abgleich der öffentlichen Einschätzung zu bestimmten Prominenten und der eigentlichen Positionen wäre sicherlich spannend und mit einer entsprechenden Datenbank gut durchzuführen. + * Ein solches Wiki würde kritisches Denken fördern und etwa inhaltsleeren, rein auf Emotionen zielenden Wahlplakaten und Hochglanzbroschüren zumindest ein bisschen Macht entziehen. + * Es würde ebenfalls widersprüchliche Positionen von Prominenten oder deren Wertewandel aufzeichnen. + +Wie könnte ein solches Wiki gestaltet sein? Erste Ideen kreisten um eine Auflistung bestimmter gesellschaftspolitischer Fragen und wie die Person dazu eingestellt ist, also etwa Einstellung zu Geflüchteten, verschiedenen Geschlechterbildern, Hilfe von sozial schwächer Gestellten, Behinderung, Ehrenamt, Ehe und Partnerschaft, Religion und so weiter. Weiterhin wäre es spannend, eine Person auf einem zweiachsigen politischen Kompass einzuordnen (wie es etwa [politicalcompass.org][2] tut). + +Ganz offensichtlich bräuchte es ebenso wie das große Vorbild Wikipedia eine große Anzahl von Freiwilligen, die Inhalte einstellen und ab einem gewissen Level auch moderieren und organisieren. Und natürlich müsste es einen wohldefinierten Codex geben, in dem beispielweise festgehalten wird, welche Arten von Quellen überhaupt für die Einschätzung von politischen Positionen zulässig sind (etwa nur direkte Interviews und keine Aussagen von Dritten). + +Nichtsdestotrotz würde ein solches Wiki natürlich auch einige Risiken bergen: + + * Die Gefahr einseitiger oder gar verfälschter Eintragungen ist hoch. Man müsste große Warnungen anzeigen, wenn es bisher nur wenige Quellenangaben und Mitarbeitende an einem Eintrag gegeben hat. + * Man bräuchte viel Moderation, die gewährleistet, dass eine Interpretation einer gewissen schriftlichen Aussage auch tatsächlich korrekt ist. + * Die notwendigen Quellen sind nicht einfach zu beschaffen und auch sehr unübersichtlich, da wahrscheinlich hauptsächlich schriftliche Interviews oder Talkshows als Grundlage dienen müssten. + * Sind Aussagen in Interviews in Zeitungen, Boulevardblättern und Talkshows überhaupts ausreichend, um die gesellschaftspolitische Einstellung eines Menschen zu beurteilen? Gegenfrage: Wenn nicht, wie kann man denn dann überhaupt etwa einer Politikerin „trauen“? + +Man sieht, sehr kontrovers und ohne eindeutige Antwort. Was haltet Ihr von der Idee? Gibt’s sowas eigentlich schon? Und wo seht ihr Chancen und Risiken? + + [1]: https://de.wikipedia.org/wiki/Jens_Lehmann + [2]: https://politicalcompass.org/ \ No newline at end of file diff --git a/content/blog/2019-02-11-fsfe-planet-has-been-refurbished.md b/content/blog/2019-02-11-fsfe-planet-has-been-refurbished.md new file mode 100644 index 0000000..6a092a4 --- /dev/null +++ b/content/blog/2019-02-11-fsfe-planet-has-been-refurbished.md @@ -0,0 +1,31 @@ +--- +title: FSFE Planet has been refurbished +author: Max +type: post +date: 2019-02-11T10:33:11+00:00 +url: /2019/fsfe-planet-has-been-refurbished/ +categories: + - English + - Tech +tags: + - free software + - fsfe + - server + +--- +If you are reading these lines, you are already accessing the brand-new planet of the FSFE. While Björn, Coordinator of Team Germany, has largely improved the design in late 2017, we tackled many underlying issues this time. + +So what has changed under the hood? + + * The whole system runs in a Docker container now, with all code accessible on [our Git][1]. Yes, Docker has drawbacks, but in this case it eases maintenance for our volunteers and makes contributions to design and code very simple. + * The old planet ran on a very old Debian server which had issues with modern TLS versions. This basically erased a few blogs from the planet whose webservers do not support older encryption standards. + * The design has been improved once more. It now more closely aligns to the design of our main page [fsfe.org][2] and feels more natively to use and browse. + * Many blogs which were not accessible any more have been removed, and those which redirected to other URLs have been updated accordingly. + +So with the migration to the new system you will probably find a few new blogs and unread posts in your RSS feeds now. So please do not be confused about it but look forward to even more useful and interesting bits from the FSFE community! + +On this occasion I would like to thank Michael and Vincent for their contributions to the code, and the useful feedback from various people in the FSFE’s community. If you have ideas how to further improve our planet, please open an issue in the Git repository or [write an email to us][3]. + + [1]: https://git.fsfe.org/fsfe-system-hackers/fsfe-planet + [2]: https://fsfe.org + [3]: https://fsfe.org/contact/ \ No newline at end of file diff --git a/content/blog/2019-03-01-protect-freedom-on-radio-devices-raise-your-voice-today.md b/content/blog/2019-03-01-protect-freedom-on-radio-devices-raise-your-voice-today.md new file mode 100644 index 0000000..1942bf7 --- /dev/null +++ b/content/blog/2019-03-01-protect-freedom-on-radio-devices-raise-your-voice-today.md @@ -0,0 +1,61 @@ +--- +title: 'Protect freedom on radio devices: raise your voice today!' +author: Max +type: post +date: 2019-03-01T15:09:56+00:00 +url: /2019/protect-freedom-on-radio-devices-raise-your-voice-today/ +featured_image: /uploads/kaefig_einzel.png +categories: + - English + - Political + - Tech +tags: + - communication + - free software + - fsfe + - gnu/linux + - radio lockdown + - router + - security + +--- +**We are facing a EU regulation which may make it impossible to install a custom piece of software on most radio decives like WiFi routers, smartphones and embedded devices. You can now [give feedback][1] on the most problematic part by Monday, 4 March. Please participate – it’s not hard!** + +
+
+
+ +In the EU Radio Equipment Directive ([2014/53/EU][2]) contains one highly dangerous article will cause many issues if implemented: Article 3(3)(i). It requires hardware manufacturers of most devices sending and receiving radio signals to implement a barrier that disallows installing software which has not been certified by the manufacturer. That means, that for installing an alternative operating system on a router, mobile phone or any other radio-capable device, the manufacturer of this device has to assess its conformity. + +
+

+ [R]adio equipment [shall support] certain features in order to ensure that software can only be loaded into the radio equipment where the compliance of the combination of the radio equipment and software has been demonstrated. +

+ + Article 3(3)(i) of the Radio Equipment Directive 2014/53/EU +
+ +That flips the responsibility of radio conformity by 180°. In the past, you as the one who changed the software on a device have been responsible to make sure that you don’t break any applicable regulations like frequency and signal strength. Now, the manufacturers have to prevent you from doing something wrong (or right?). That further takes away freedom to control our technology. More information [here by the FSFE][3]. + +The European Commission has installed an [Expert Group][4] to come up with a list of classes of devices which are supposed to be affected by the said article. Unfortunately, as it seems, the recommendation by this group is to put highly diffuse device categories like „Software Defined Radio“ and „Internet of Things“ under the scope of this regulation. + +## Get active today + +But there is something you can do! The European Commission has officially opened a [feedback period][1]. Everyone, individuals, companies and organisations, can provide statements on their proposed plans. All you need to participate is an EU Login account, and you can hide your name from the public list of received feedback. A summary, the impact assessment, already received feedback, and the actual feedback form is available [here][1]. + +To help you word your feedback, here’s a list of some of the most important disadvantages for user freedom I see (there is a [more detailed list][3] by the FSFE): + + * **Free Software**: To control technology, you have to be able to control the software. This only is possible with Free and Open Source Software. So if you want to have a transparent and trustworthy device, you need to make the software running on it Free Software. But any device affected by Article 3(3)(i) will only allow the installation of software authorised by the manufacturer. It is unlikely that a manufacturer will certify all the available software for your device which suits your needs. Having these gatekeepers with their particular interests will make using Free Software on radio devices hard. + * **Security**: Radio equipment like smartphones, routers, or smart home devices are highly sensitive parts of our lives. Unfortunately, many manufacturers sacrifice security for lower costs. For many devices there is better software which protects data and still offers equal or even better functionality. If such manufacturers do not even care for security, will they even allow running other (Free and Open Source) software on their products? + * **Fair competition**: If you don’t like a certain product, you can use another one from a different manufacturer. If you don’t find any device suiting your requirements, you can (help) establish a new competitor that e.g. enables user freedom. But Article 3(3)(i) favours huge enterprises as it forces companies to install software barriers and do certification of additional software. For example, a small and medium-sized manufacturer of wifi routers cannot certify all available Free Software operating systems. Also, companies bundling their own software with third-party hardware will have a really hard time. On the other hand, large companies which don’t want users to use any other software than their own will profit from this threshold. + * **Community services**: Volunteer initiatives like Freifunk depend on hardware which they can use with their own software for their charity causes. They were able to create innovative solutions with limited resources. + * **Sustainability**: No updates available any more for your smartphone or router? From a security perspective, there are only two options: Flash another firmware which still recieves updates, or throw the whole device away. From an environmental perspective, the first solution is much better obviously. But will manufacturers still certify alternative firmware for devices they want to get rid of? I doubt so… + +There will surely be more, so please [make your points][1] in your individual feedback. It will send a signal to the European Commission that there are people who care about freedom on radio devices. It’s only a few minutes work to avoid legal barriers that will worsen your and others‘ lives for years. + +Thank you! + + [1]: https://ec.europa.eu/info/law/better-regulation/initiatives/ares-2018-6621038_en + [2]: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32014L0053 + [3]: https://fsfe.org/activities/radiodirective/ + [4]: http://ec.europa.eu/transparency/regexpert/index.cfm?do=groupDetail.groupDetail&groupID=3413 \ No newline at end of file diff --git a/content/blog/creating-a-new-theme.md b/content/blog/creating-a-new-theme.md deleted file mode 100755 index b6ae663..0000000 --- a/content/blog/creating-a-new-theme.md +++ /dev/null @@ -1,1127 +0,0 @@ ---- -author: "Michael Henderson" -date: 2014-09-28 -linktitle: Creating a New Theme -title: Creating a New Theme -highlight: true -draft: true ---- - - -### **Introduction** - -This tutorial will show you how to create a simple theme in Hugo. I assume that you are familiar with HTML, the bash command line, and that you are comfortable using Markdown to format content. I'll explain how Hugo uses templates and how you can organize your templates to create a theme. I won't cover using CSS to style your theme. - -We'll start with creating a new site with a very basic template. Then we'll add in a few pages and posts. With small variations on that, you will be able to create many different types of web sites. - -In this tutorial, commands that you enter will start with the "$" prompt. The output will follow. Lines that start with "#" are comments that I've added to explain a point. When I show updates to a file, the ":wq" on the last line means to save the file. - -Here's an example: - -``` -package main - -import "fmt" - -func main() { - fmt.Print("Hello") -} -``` - -> There are a few concepts that you need to understand before creating a theme. - -### Skins - -Skins are the files responsible for the look and feel of your site. It’s the CSS that controls colors and fonts, it’s the Javascript that determines actions and reactions. It’s also the rules that Hugo uses to transform your content into the HTML that the site will serve to visitors. - -You have two ways to create a skin. The simplest way is to create it in the ```layouts/``` directory. If you do, then you don’t have to worry about configuring Hugo to recognize it. The first place that Hugo will look for rules and files is in the ```layouts/``` directory so it will always find the skin. - -Your second choice is to create it in a sub-directory of the ```themes/``` directory. If you do, then you must always tell Hugo where to search for the skin. It’s extra work, though, so why bother with it? - -The difference between creating a skin in ```layouts/``` and creating it in ```themes/``` is very subtle. A skin in ```layouts/``` can’t be customized without updating the templates and static files that it is built from. A skin created in ```themes/```, on the other hand, can be and that makes it easier for other people to use it. - -The rest of this tutorial will call a skin created in the ```themes/``` directory a theme. - -Note that you can use this tutorial to create a skin in the ```layouts/``` directory if you wish to. The main difference will be that you won’t need to update the site’s configuration file to use a theme. - -### The Home Page - -The home page, or landing page, is the first page that many visitors to a site see. It is the index.html file in the root directory of the web site. Since Hugo writes files to the public/ directory, our home page is public/index.html. - -### Site Configuration File - -When Hugo runs, it looks for a configuration file that contains settings that override default values for the entire site. The file can use TOML, YAML, or JSON. I prefer to use TOML for my configuration files. If you prefer to use JSON or YAML, you’ll need to translate my examples. You’ll also need to change the name of the file since Hugo uses the extension to determine how to process it. - -Hugo translates Markdown files into HTML. By default, Hugo expects to find Markdown files in your ```content/``` directory and template files in your ```themes/``` directory. It will create HTML files in your ```public/``` directory. You can change this by specifying alternate locations in the configuration file. - -### Content - -Content is stored in text files that contain two sections. The first section is the “front matter,” which is the meta-information on the content. The second section contains Markdown that will be converted to HTML. - -#### Front Matter - -The front matter is information about the content. Like the configuration file, it can be written in TOML, YAML, or JSON. Unlike the configuration file, Hugo doesn’t use the file’s extension to know the format. It looks for markers to signal the type. TOML is surrounded by “`+++`”, YAML by “`---`”, and JSON is enclosed in curly braces. I prefer to use TOML, so you’ll need to translate my examples if you prefer YAML or JSON. - -The information in the front matter is passed into the template before the content is rendered into HTML. - -#### Markdown - -Content is written in Markdown which makes it easier to create the content. Hugo runs the content through a Markdown engine to create the HTML which will be written to the output file. - -### Template Files - -Hugo uses template files to render content into HTML. Template files are a bridge between the content and presentation. Rules in the template define what content is published, where it's published to, and how it will rendered to the HTML file. The template guides the presentation by specifying the style to use. - -There are three types of templates: single, list, and partial. Each type takes a bit of content as input and transforms it based on the commands in the template. - -Hugo uses its knowledge of the content to find the template file used to render the content. If it can’t find a template that is an exact match for the content, it will shift up a level and search from there. It will continue to do so until it finds a matching template or runs out of templates to try. If it can’t find a template, it will use the default template for the site. - -Please note that you can use the front matter to influence Hugo’s choice of templates. - -#### Single Template - -A single template is used to render a single piece of content. For example, an article or post would be a single piece of content and use a single template. - -#### List Template - -A list template renders a group of related content. That could be a summary of recent postings or all articles in a category. List templates can contain multiple groups. - -The homepage template is a special type of list template. Hugo assumes that the home page of your site will act as the portal for the rest of the content in the site. - -#### Partial Template - -A partial template is a template that can be included in other templates. Partial templates must be called using the “partial” template command. They are very handy for rolling up common behavior. For example, your site may have a banner that all pages use. Instead of copying the text of the banner into every single and list template, you could create a partial with the banner in it. That way if you decide to change the banner, you only have to change the partial template. - -## Create a New Site - -Let's use Hugo to create a new web site. I'm a Mac user, so I'll create mine in my home directory, in the Sites folder. If you're using Linux, you might have to create the folder first. - -The "new site" command will create a skeleton of a site. It will give you the basic directory structure and a useable configuration file. - -``` -$ hugo new site ~/Sites/zafta -$ cd ~/Sites/zafta -$ ls -l -total 8 -drwxr-xr-x 7 quoha staff 238 Sep 29 16:49 . -drwxr-xr-x 3 quoha staff 102 Sep 29 16:49 .. -drwxr-xr-x 2 quoha staff 68 Sep 29 16:49 archetypes --rw-r--r-- 1 quoha staff 82 Sep 29 16:49 config.toml -drwxr-xr-x 2 quoha staff 68 Sep 29 16:49 content -drwxr-xr-x 2 quoha staff 68 Sep 29 16:49 layouts -drwxr-xr-x 2 quoha staff 68 Sep 29 16:49 static -$ -``` - -Take a look in the content/ directory to confirm that it is empty. - -The other directories (archetypes/, layouts/, and static/) are used when customizing a theme. That's a topic for a different tutorial, so please ignore them for now. - -### Generate the HTML For the New Site - -Running the `hugo` command with no options will read all the available content and generate the HTML files. It will also copy all static files (that's everything that's not content). Since we have an empty site, it won't do much, but it will do it very quickly. - -``` -$ hugo --verbose -INFO: 2014/09/29 Using config file: config.toml -INFO: 2014/09/29 syncing from /Users/quoha/Sites/zafta/static/ to /Users/quoha/Sites/zafta/public/ -WARN: 2014/09/29 Unable to locate layout: [index.html _default/list.html _default/single.html] -WARN: 2014/09/29 Unable to locate layout: [404.html] -0 draft content -0 future content -0 pages created -0 tags created -0 categories created -in 2 ms -$ -``` - -The "`--verbose`" flag gives extra information that will be helpful when we build the template. Every line of the output that starts with "INFO:" or "WARN:" is present because we used that flag. The lines that start with "WARN:" are warning messages. We'll go over them later. - -We can verify that the command worked by looking at the directory again. - -``` -$ ls -l -total 8 -drwxr-xr-x 2 quoha staff 68 Sep 29 16:49 archetypes --rw-r--r-- 1 quoha staff 82 Sep 29 16:49 config.toml -drwxr-xr-x 2 quoha staff 68 Sep 29 16:49 content -drwxr-xr-x 2 quoha staff 68 Sep 29 16:49 layouts -drwxr-xr-x 4 quoha staff 136 Sep 29 17:02 public -drwxr-xr-x 2 quoha staff 68 Sep 29 16:49 static -$ -``` - -See that new public/ directory? Hugo placed all generated content there. When you're ready to publish your web site, that's the place to start. For now, though, let's just confirm that we have what we'd expect from a site with no content. - -``` -$ ls -l public -total 16 --rw-r--r-- 1 quoha staff 416 Sep 29 17:02 index.xml --rw-r--r-- 1 quoha staff 262 Sep 29 17:02 sitemap.xml -$ -``` - -Hugo created two XML files, which is standard, but there are no HTML files. - - - -### Test the New Site - -Verify that you can run the built-in web server. It will dramatically shorten your development cycle if you do. Start it by running the "server" command. If it is successful, you will see output similar to the following: - -``` -$ hugo server --verbose -INFO: 2014/09/29 Using config file: /Users/quoha/Sites/zafta/config.toml -INFO: 2014/09/29 syncing from /Users/quoha/Sites/zafta/static/ to /Users/quoha/Sites/zafta/public/ -WARN: 2014/09/29 Unable to locate layout: [index.html _default/list.html _default/single.html] -WARN: 2014/09/29 Unable to locate layout: [404.html] -0 draft content -0 future content -0 pages created -0 tags created -0 categories created -in 2 ms -Serving pages from /Users/quoha/Sites/zafta/public -Web Server is available at http://localhost:1313 -Press Ctrl+C to stop -``` - -Connect to the listed URL (it's on the line that starts with "Web Server"). If everything is working correctly, you should get a page that shows the following: - -``` -index.xml -sitemap.xml -``` - -That's a listing of your public/ directory. Hugo didn't create a home page because our site has no content. When there's no index.html file in a directory, the server lists the files in the directory, which is what you should see in your browser. - -Let’s go back and look at those warnings again. - -``` -WARN: 2014/09/29 Unable to locate layout: [index.html _default/list.html _default/single.html] -WARN: 2014/09/29 Unable to locate layout: [404.html] -``` - -That second warning is easier to explain. We haven’t created a template to be used to generate “page not found errors.” The 404 message is a topic for a separate tutorial. - -Now for the first warning. It is for the home page. You can tell because the first layout that it looked for was “index.html.” That’s only used by the home page. - -I like that the verbose flag causes Hugo to list the files that it's searching for. For the home page, they are index.html, _default/list.html, and _default/single.html. There are some rules that we'll cover later that explain the names and paths. For now, just remember that Hugo couldn't find a template for the home page and it told you so. - -At this point, you've got a working installation and site that we can build upon. All that’s left is to add some content and a theme to display it. - -## Create a New Theme - -Hugo doesn't ship with a default theme. There are a few available (I counted a dozen when I first installed Hugo) and Hugo comes with a command to create new themes. - -We're going to create a new theme called "zafta." Since the goal of this tutorial is to show you how to fill out the files to pull in your content, the theme will not contain any CSS. In other words, ugly but functional. - -All themes have opinions on content and layout. For example, Zafta uses "post" over "blog". Strong opinions make for simpler templates but differing opinions make it tougher to use themes. When you build a theme, consider using the terms that other themes do. - - -### Create a Skeleton - -Use the hugo "new" command to create the skeleton of a theme. This creates the directory structure and places empty files for you to fill out. - -``` -$ hugo new theme zafta - -$ ls -l -total 8 -drwxr-xr-x 2 quoha staff 68 Sep 29 16:49 archetypes --rw-r--r-- 1 quoha staff 82 Sep 29 16:49 config.toml -drwxr-xr-x 2 quoha staff 68 Sep 29 16:49 content -drwxr-xr-x 2 quoha staff 68 Sep 29 16:49 layouts -drwxr-xr-x 4 quoha staff 136 Sep 29 17:02 public -drwxr-xr-x 2 quoha staff 68 Sep 29 16:49 static -drwxr-xr-x 3 quoha staff 102 Sep 29 17:31 themes - -$ find themes -type f | xargs ls -l --rw-r--r-- 1 quoha staff 1081 Sep 29 17:31 themes/zafta/LICENSE.md --rw-r--r-- 1 quoha staff 0 Sep 29 17:31 themes/zafta/archetypes/default.md --rw-r--r-- 1 quoha staff 0 Sep 29 17:31 themes/zafta/layouts/_default/list.html --rw-r--r-- 1 quoha staff 0 Sep 29 17:31 themes/zafta/layouts/_default/single.html --rw-r--r-- 1 quoha staff 0 Sep 29 17:31 themes/zafta/layouts/index.html --rw-r--r-- 1 quoha staff 0 Sep 29 17:31 themes/zafta/layouts/partials/footer.html --rw-r--r-- 1 quoha staff 0 Sep 29 17:31 themes/zafta/layouts/partials/header.html --rw-r--r-- 1 quoha staff 93 Sep 29 17:31 themes/zafta/theme.toml -$ -``` - -The skeleton includes templates (the files ending in .html), license file, a description of your theme (the theme.toml file), and an empty archetype. - -Please take a minute to fill out the theme.toml and LICENSE.md files. They're optional, but if you're going to be distributing your theme, it tells the world who to praise (or blame). It's also nice to declare the license so that people will know how they can use the theme. - -``` -$ vi themes/zafta/theme.toml -author = "michael d henderson" -description = "a minimal working template" -license = "MIT" -name = "zafta" -source_repo = "" -tags = ["tags", "categories"] -:wq - -## also edit themes/zafta/LICENSE.md and change -## the bit that says "YOUR_NAME_HERE" -``` - -Note that the the skeleton's template files are empty. Don't worry, we'll be changing that shortly. - -``` -$ find themes/zafta -name '*.html' | xargs ls -l --rw-r--r-- 1 quoha staff 0 Sep 29 17:31 themes/zafta/layouts/_default/list.html --rw-r--r-- 1 quoha staff 0 Sep 29 17:31 themes/zafta/layouts/_default/single.html --rw-r--r-- 1 quoha staff 0 Sep 29 17:31 themes/zafta/layouts/index.html --rw-r--r-- 1 quoha staff 0 Sep 29 17:31 themes/zafta/layouts/partials/footer.html --rw-r--r-- 1 quoha staff 0 Sep 29 17:31 themes/zafta/layouts/partials/header.html -$ -``` - - - -### Update the Configuration File to Use the Theme - -Now that we've got a theme to work with, it's a good idea to add the theme name to the configuration file. This is optional, because you can always add "-t zafta" on all your commands. I like to put it the configuration file because I like shorter command lines. If you don't put it in the configuration file or specify it on the command line, you won't use the template that you're expecting to. - -Edit the file to add the theme, add a title for the site, and specify that all of our content will use the TOML format. - -``` -$ vi config.toml -theme = "zafta" -baseurl = "" -languageCode = "en-us" -title = "zafta - totally refreshing" -MetaDataFormat = "toml" -:wq - -$ -``` - -### Generate the Site - -Now that we have an empty theme, let's generate the site again. - -``` -$ hugo --verbose -INFO: 2014/09/29 Using config file: /Users/quoha/Sites/zafta/config.toml -INFO: 2014/09/29 syncing from /Users/quoha/Sites/zafta/themes/zafta/static/ to /Users/quoha/Sites/zafta/public/ -INFO: 2014/09/29 syncing from /Users/quoha/Sites/zafta/static/ to /Users/quoha/Sites/zafta/public/ -WARN: 2014/09/29 Unable to locate layout: [404.html theme/404.html] -0 draft content -0 future content -0 pages created -0 tags created -0 categories created -in 2 ms -$ -``` - -Did you notice that the output is different? The warning message for the home page has disappeared and we have an additional information line saying that Hugo is syncing from the theme's directory. - -Let's check the public/ directory to see what Hugo's created. - -``` -$ ls -l public -total 16 -drwxr-xr-x 2 quoha staff 68 Sep 29 17:56 css --rw-r--r-- 1 quoha staff 0 Sep 29 17:56 index.html --rw-r--r-- 1 quoha staff 407 Sep 29 17:56 index.xml -drwxr-xr-x 2 quoha staff 68 Sep 29 17:56 js --rw-r--r-- 1 quoha staff 243 Sep 29 17:56 sitemap.xml -$ -``` - -Notice four things: - -1. Hugo created a home page. This is the file public/index.html. -2. Hugo created a css/ directory. -3. Hugo created a js/ directory. -4. Hugo claimed that it created 0 pages. It created a file and copied over static files, but didn't create any pages. That's because it considers a "page" to be a file created directly from a content file. It doesn't count things like the index.html files that it creates automatically. - -#### The Home Page - -Hugo supports many different types of templates. The home page is special because it gets its own type of template and its own template file. The file, layouts/index.html, is used to generate the HTML for the home page. The Hugo documentation says that this is the only required template, but that depends. Hugo's warning message shows that it looks for three different templates: - -``` -WARN: 2014/09/29 Unable to locate layout: [index.html _default/list.html _default/single.html] -``` - -If it can't find any of these, it completely skips creating the home page. We noticed that when we built the site without having a theme installed. - -When Hugo created our theme, it created an empty home page template. Now, when we build the site, Hugo finds the template and uses it to generate the HTML for the home page. Since the template file is empty, the HTML file is empty, too. If the template had any rules in it, then Hugo would have used them to generate the home page. - -``` -$ find . -name index.html | xargs ls -l --rw-r--r-- 1 quoha staff 0 Sep 29 20:21 ./public/index.html --rw-r--r-- 1 quoha staff 0 Sep 29 17:31 ./themes/zafta/layouts/index.html -$ -``` - -#### The Magic of Static - -Hugo does two things when generating the site. It uses templates to transform content into HTML and it copies static files into the site. Unlike content, static files are not transformed. They are copied exactly as they are. - -Hugo assumes that your site will use both CSS and JavaScript, so it creates directories in your theme to hold them. Remember opinions? Well, Hugo's opinion is that you'll store your CSS in a directory named css/ and your JavaScript in a directory named js/. If you don't like that, you can change the directory names in your theme directory or even delete them completely. Hugo's nice enough to offer its opinion, then behave nicely if you disagree. - -``` -$ find themes/zafta -type d | xargs ls -ld -drwxr-xr-x 7 quoha staff 238 Sep 29 17:38 themes/zafta -drwxr-xr-x 3 quoha staff 102 Sep 29 17:31 themes/zafta/archetypes -drwxr-xr-x 5 quoha staff 170 Sep 29 17:31 themes/zafta/layouts -drwxr-xr-x 4 quoha staff 136 Sep 29 17:31 themes/zafta/layouts/_default -drwxr-xr-x 4 quoha staff 136 Sep 29 17:31 themes/zafta/layouts/partials -drwxr-xr-x 4 quoha staff 136 Sep 29 17:31 themes/zafta/static -drwxr-xr-x 2 quoha staff 68 Sep 29 17:31 themes/zafta/static/css -drwxr-xr-x 2 quoha staff 68 Sep 29 17:31 themes/zafta/static/js -$ -``` - -## The Theme Development Cycle - -When you're working on a theme, you will make changes in the theme's directory, rebuild the site, and check your changes in the browser. Hugo makes this very easy: - -1. Purge the public/ directory. -2. Run the built in web server in watch mode. -3. Open your site in a browser. -4. Update the theme. -5. Glance at your browser window to see changes. -6. Return to step 4. - -I’ll throw in one more opinion: never work on a theme on a live site. Always work on a copy of your site. Make changes to your theme, test them, then copy them up to your site. For added safety, use a tool like Git to keep a revision history of your content and your theme. Believe me when I say that it is too easy to lose both your mind and your changes. - -Check the main Hugo site for information on using Git with Hugo. - -### Purge the public/ Directory - -When generating the site, Hugo will create new files and update existing ones in the ```public/``` directory. It will not delete files that are no longer used. For example, files that were created in the wrong directory or with the wrong title will remain. If you leave them, you might get confused by them later. I recommend cleaning out your site prior to generating it. - -Note: If you're building on an SSD, you should ignore this. Churning on a SSD can be costly. - -### Hugo's Watch Option - -Hugo's "`--watch`" option will monitor the content/ and your theme directories for changes and rebuild the site automatically. - -### Live Reload - -Hugo's built in web server supports live reload. As pages are saved on the server, the browser is told to refresh the page. Usually, this happens faster than you can say, "Wow, that's totally amazing." - -### Development Commands - -Use the following commands as the basis for your workflow. - -``` -## purge old files. hugo will recreate the public directory. -## -$ rm -rf public -## -## run hugo in watch mode -## -$ hugo server --watch --verbose -``` - -Here's sample output showing Hugo detecting a change to the template for the home page. Once generated, the web browser automatically reloaded the page. I've said this before, it's amazing. - - -``` -$ rm -rf public -$ hugo server --watch --verbose -INFO: 2014/09/29 Using config file: /Users/quoha/Sites/zafta/config.toml -INFO: 2014/09/29 syncing from /Users/quoha/Sites/zafta/themes/zafta/static/ to /Users/quoha/Sites/zafta/public/ -INFO: 2014/09/29 syncing from /Users/quoha/Sites/zafta/static/ to /Users/quoha/Sites/zafta/public/ -WARN: 2014/09/29 Unable to locate layout: [404.html theme/404.html] -0 draft content -0 future content -0 pages created -0 tags created -0 categories created -in 2 ms -Watching for changes in /Users/quoha/Sites/zafta/content -Serving pages from /Users/quoha/Sites/zafta/public -Web Server is available at http://localhost:1313 -Press Ctrl+C to stop -INFO: 2014/09/29 File System Event: ["/Users/quoha/Sites/zafta/themes/zafta/layouts/index.html": MODIFY|ATTRIB] -Change detected, rebuilding site - -WARN: 2014/09/29 Unable to locate layout: [404.html theme/404.html] -0 draft content -0 future content -0 pages created -0 tags created -0 categories created -in 1 ms -``` - -## Update the Home Page Template - -The home page is one of a few special pages that Hugo creates automatically. As mentioned earlier, it looks for one of three files in the theme's layout/ directory: - -1. index.html -2. _default/list.html -3. _default/single.html - -We could update one of the default templates, but a good design decision is to update the most specific template available. That's not a hard and fast rule (in fact, we'll break it a few times in this tutorial), but it is a good generalization. - -### Make a Static Home Page - -Right now, that page is empty because we don't have any content and we don't have any logic in the template. Let's change that by adding some text to the template. - -```html -$ vi themes/zafta/layouts/index.html - - - -

hugo says hello!

- - -:wq - -$ -``` - -Build the web site and then verify the results. - -``` -$ hugo --verbose -INFO: 2014/09/29 Using config file: /Users/quoha/Sites/zafta/config.toml -INFO: 2014/09/29 syncing from /Users/quoha/Sites/zafta/themes/zafta/static/ to /Users/quoha/Sites/zafta/public/ -INFO: 2014/09/29 syncing from /Users/quoha/Sites/zafta/static/ to /Users/quoha/Sites/zafta/public/ -WARN: 2014/09/29 Unable to locate layout: [404.html theme/404.html] -0 draft content -0 future content -0 pages created -0 tags created -0 categories created -in 2 ms - -$ find public -type f -name '*.html' | xargs ls -l --rw-r--r-- 1 quoha staff 78 Sep 29 21:26 public/index.html - -$ cat public/index.html - - - -

hugo says hello!

- -``` - -#### Live Reload - -Note: If you're running the server with the `--watch` option, you'll see different content in the file: - -``` -$ cat public/index.html - - - -

hugo says hello!

- - -``` - -When you use `--watch`, the Live Reload script is added by Hugo. Look for live reload in the documentation to see what it does and how to disable it. - -### Build a "Dynamic" Home Page - -"Dynamic home page?" Hugo's a static web site generator, so this seems an odd thing to say. I mean let's have the home page automatically reflect the content in the site every time Hugo builds it. We'll use iteration in the template to do that. - -#### Create New Posts - -Now that we have the home page generating static content, let's add some content to the site. We'll display these posts as a list on the home page and on their own page, too. - -Hugo has a command to generate a skeleton post, just like it does for sites and themes. - -``` -$ hugo --verbose new post/first.md -INFO: 2014/09/29 Using config file: /Users/quoha/Sites/zafta/config.toml -INFO: 2014/09/29 attempting to create post/first.md of post -INFO: 2014/09/29 curpath: /Users/quoha/Sites/zafta/themes/zafta/archetypes/default.md -ERROR: 2014/09/29 Unable to Cast to map[string]interface{} - -$ -``` - -That wasn't very nice, was it? - -The "new" command uses an archetype to create the post file. Hugo created an empty default archetype file, but that causes an error when there's a theme. For me, the workaround was to create an archetypes file specifically for the post type. - -``` -$ vi themes/zafta/archetypes/post.md -+++ -Description = "" -Tags = [] -Categories = [] -+++ -:wq - -$ find themes/zafta/archetypes -type f | xargs ls -l --rw-r--r-- 1 quoha staff 0 Sep 29 21:53 themes/zafta/archetypes/default.md --rw-r--r-- 1 quoha staff 51 Sep 29 21:54 themes/zafta/archetypes/post.md - -$ hugo --verbose new post/first.md -INFO: 2014/09/29 Using config file: /Users/quoha/Sites/zafta/config.toml -INFO: 2014/09/29 attempting to create post/first.md of post -INFO: 2014/09/29 curpath: /Users/quoha/Sites/zafta/themes/zafta/archetypes/post.md -INFO: 2014/09/29 creating /Users/quoha/Sites/zafta/content/post/first.md -/Users/quoha/Sites/zafta/content/post/first.md created - -$ hugo --verbose new post/second.md -INFO: 2014/09/29 Using config file: /Users/quoha/Sites/zafta/config.toml -INFO: 2014/09/29 attempting to create post/second.md of post -INFO: 2014/09/29 curpath: /Users/quoha/Sites/zafta/themes/zafta/archetypes/post.md -INFO: 2014/09/29 creating /Users/quoha/Sites/zafta/content/post/second.md -/Users/quoha/Sites/zafta/content/post/second.md created - -$ ls -l content/post -total 16 --rw-r--r-- 1 quoha staff 104 Sep 29 21:54 first.md --rw-r--r-- 1 quoha staff 105 Sep 29 21:57 second.md - -$ cat content/post/first.md -+++ -Categories = [] -Description = "" -Tags = [] -date = "2014-09-29T21:54:53-05:00" -title = "first" - -+++ -my first post - -$ cat content/post/second.md -+++ -Categories = [] -Description = "" -Tags = [] -date = "2014-09-29T21:57:09-05:00" -title = "second" - -+++ -my second post - -$ -``` - -Build the web site and then verify the results. - -``` -$ rm -rf public -$ hugo --verbose -INFO: 2014/09/29 Using config file: /Users/quoha/Sites/zafta/config.toml -INFO: 2014/09/29 syncing from /Users/quoha/Sites/zafta/themes/zafta/static/ to /Users/quoha/Sites/zafta/public/ -INFO: 2014/09/29 syncing from /Users/quoha/Sites/zafta/static/ to /Users/quoha/Sites/zafta/public/ -INFO: 2014/09/29 found taxonomies: map[string]string{"category":"categories", "tag":"tags"} -WARN: 2014/09/29 Unable to locate layout: [404.html theme/404.html] -0 draft content -0 future content -2 pages created -0 tags created -0 categories created -in 4 ms -$ -``` - -The output says that it created 2 pages. Those are our new posts: - -``` -$ find public -type f -name '*.html' | xargs ls -l --rw-r--r-- 1 quoha staff 78 Sep 29 22:13 public/index.html --rw-r--r-- 1 quoha staff 0 Sep 29 22:13 public/post/first/index.html --rw-r--r-- 1 quoha staff 0 Sep 29 22:13 public/post/index.html --rw-r--r-- 1 quoha staff 0 Sep 29 22:13 public/post/second/index.html -$ -``` - -The new files are empty because because the templates used to generate the content are empty. The homepage doesn't show the new content, either. We have to update the templates to add the posts. - -### List and Single Templates - -In Hugo, we have three major kinds of templates. There's the home page template that we updated previously. It is used only by the home page. We also have "single" templates which are used to generate output for a single content file. We also have "list" templates that are used to group multiple pieces of content before generating output. - -Generally speaking, list templates are named "list.html" and single templates are named "single.html." - -There are three other types of templates: partials, content views, and terms. We will not go into much detail on these. - -### Add Content to the Homepage - -The home page will contain a list of posts. Let's update its template to add the posts that we just created. The logic in the template will run every time we build the site. - -``` -$ vi themes/zafta/layouts/index.html - - - - {{ range first 10 .Data.Pages }} -

{{ .Title }}

- {{ end }} - - -:wq - -$ -``` - -Hugo uses the Go template engine. That engine scans the template files for commands which are enclosed between "{{" and "}}". In our template, the commands are: - -1. range -2. .Title -3. end - -The "range" command is an iterator. We're going to use it to go through the first ten pages. Every HTML file that Hugo creates is treated as a page, so looping through the list of pages will look at every file that will be created. - -The ".Title" command prints the value of the "title" variable. Hugo pulls it from the front matter in the Markdown file. - -The "end" command signals the end of the range iterator. The engine loops back to the top of the iteration when it finds "end." Everything between the "range" and "end" is evaluated every time the engine goes through the iteration. In this file, that would cause the title from the first ten pages to be output as heading level one. - -It's helpful to remember that some variables, like .Data, are created before any output files. Hugo loads every content file into the variable and then gives the template a chance to process before creating the HTML files. - -Build the web site and then verify the results. - -``` -$ rm -rf public -$ hugo --verbose -INFO: 2014/09/29 Using config file: /Users/quoha/Sites/zafta/config.toml -INFO: 2014/09/29 syncing from /Users/quoha/Sites/zafta/themes/zafta/static/ to /Users/quoha/Sites/zafta/public/ -INFO: 2014/09/29 syncing from /Users/quoha/Sites/zafta/static/ to /Users/quoha/Sites/zafta/public/ -INFO: 2014/09/29 found taxonomies: map[string]string{"tag":"tags", "category":"categories"} -WARN: 2014/09/29 Unable to locate layout: [404.html theme/404.html] -0 draft content -0 future content -2 pages created -0 tags created -0 categories created -in 4 ms -$ find public -type f -name '*.html' | xargs ls -l --rw-r--r-- 1 quoha staff 94 Sep 29 22:23 public/index.html --rw-r--r-- 1 quoha staff 0 Sep 29 22:23 public/post/first/index.html --rw-r--r-- 1 quoha staff 0 Sep 29 22:23 public/post/index.html --rw-r--r-- 1 quoha staff 0 Sep 29 22:23 public/post/second/index.html -$ cat public/index.html - - - - -

second

- -

first

- - - -$ -``` - -Congratulations, the home page shows the title of the two posts. The posts themselves are still empty, but let's take a moment to appreciate what we've done. Your template now generates output dynamically. Believe it or not, by inserting the range command inside of those curly braces, you've learned everything you need to know to build a theme. All that's really left is understanding which template will be used to generate each content file and becoming familiar with the commands for the template engine. - -And, if that were entirely true, this tutorial would be much shorter. There are a few things to know that will make creating a new template much easier. Don't worry, though, that's all to come. - -### Add Content to the Posts - -We're working with posts, which are in the content/post/ directory. That means that their section is "post" (and if we don't do something weird, their type is also "post"). - -Hugo uses the section and type to find the template file for every piece of content. Hugo will first look for a template file that matches the section or type name. If it can't find one, then it will look in the _default/ directory. There are some twists that we'll cover when we get to categories and tags, but for now we can assume that Hugo will try post/single.html, then _default/single.html. - -Now that we know the search rule, let's see what we actually have available: - -``` -$ find themes/zafta -name single.html | xargs ls -l --rw-r--r-- 1 quoha staff 132 Sep 29 17:31 themes/zafta/layouts/_default/single.html -``` - -We could create a new template, post/single.html, or change the default. Since we don't know of any other content types, let's start with updating the default. - -Remember, any content that we haven't created a template for will end up using this template. That can be good or bad. Bad because I know that we're going to be adding different types of content and we're going to end up undoing some of the changes we've made. It's good because we'll be able to see immediate results. It's also good to start here because we can start to build the basic layout for the site. As we add more content types, we'll refactor this file and move logic around. Hugo makes that fairly painless, so we'll accept the cost and proceed. - -Please see the Hugo documentation on template rendering for all the details on determining which template to use. And, as the docs mention, if you're building a single page application (SPA) web site, you can delete all of the other templates and work with just the default single page. That's a refreshing amount of joy right there. - -#### Update the Template File - -``` -$ vi themes/zafta/layouts/_default/single.html - - - - {{ .Title }} - - -

{{ .Title }}

- {{ .Content }} - - -:wq - -$ -``` - -Build the web site and verify the results. - -``` -$ rm -rf public -$ hugo --verbose -INFO: 2014/09/29 Using config file: /Users/quoha/Sites/zafta/config.toml -INFO: 2014/09/29 syncing from /Users/quoha/Sites/zafta/themes/zafta/static/ to /Users/quoha/Sites/zafta/public/ -INFO: 2014/09/29 syncing from /Users/quoha/Sites/zafta/static/ to /Users/quoha/Sites/zafta/public/ -INFO: 2014/09/29 found taxonomies: map[string]string{"tag":"tags", "category":"categories"} -WARN: 2014/09/29 Unable to locate layout: [404.html theme/404.html] -0 draft content -0 future content -2 pages created -0 tags created -0 categories created -in 4 ms - -$ find public -type f -name '*.html' | xargs ls -l --rw-r--r-- 1 quoha staff 94 Sep 29 22:40 public/index.html --rw-r--r-- 1 quoha staff 125 Sep 29 22:40 public/post/first/index.html --rw-r--r-- 1 quoha staff 0 Sep 29 22:40 public/post/index.html --rw-r--r-- 1 quoha staff 128 Sep 29 22:40 public/post/second/index.html - -$ cat public/post/first/index.html - - - - first - - -

first

-

my first post

- - - - -$ cat public/post/second/index.html - - - - second - - -

second

-

my second post

- - - -$ -``` - -Notice that the posts now have content. You can go to localhost:1313/post/first to verify. - -### Linking to Content - -The posts are on the home page. Let's add a link from there to the post. Since this is the home page, we'll update its template. - -``` -$ vi themes/zafta/layouts/index.html - - - - {{ range first 10 .Data.Pages }} -

{{ .Title }}

- {{ end }} - - -``` - -Build the web site and verify the results. - -``` -$ rm -rf public -$ hugo --verbose -INFO: 2014/09/29 Using config file: /Users/quoha/Sites/zafta/config.toml -INFO: 2014/09/29 syncing from /Users/quoha/Sites/zafta/themes/zafta/static/ to /Users/quoha/Sites/zafta/public/ -INFO: 2014/09/29 syncing from /Users/quoha/Sites/zafta/static/ to /Users/quoha/Sites/zafta/public/ -INFO: 2014/09/29 found taxonomies: map[string]string{"tag":"tags", "category":"categories"} -WARN: 2014/09/29 Unable to locate layout: [404.html theme/404.html] -0 draft content -0 future content -2 pages created -0 tags created -0 categories created -in 4 ms - -$ find public -type f -name '*.html' | xargs ls -l --rw-r--r-- 1 quoha staff 149 Sep 29 22:44 public/index.html --rw-r--r-- 1 quoha staff 125 Sep 29 22:44 public/post/first/index.html --rw-r--r-- 1 quoha staff 0 Sep 29 22:44 public/post/index.html --rw-r--r-- 1 quoha staff 128 Sep 29 22:44 public/post/second/index.html - -$ cat public/index.html - - - - -

second

- -

first

- - - - -$ -``` - -### Create a Post Listing - -We have the posts displaying on the home page and on their own page. We also have a file public/post/index.html that is empty. Let's make it show a list of all posts (not just the first ten). - -We need to decide which template to update. This will be a listing, so it should be a list template. Let's take a quick look and see which list templates are available. - -``` -$ find themes/zafta -name list.html | xargs ls -l --rw-r--r-- 1 quoha staff 0 Sep 29 17:31 themes/zafta/layouts/_default/list.html -``` - -As with the single post, we have to decide to update _default/list.html or create post/list.html. We still don't have multiple content types, so let's stay consistent and update the default list template. - -## Creating Top Level Pages - -Let's add an "about" page and display it at the top level (as opposed to a sub-level like we did with posts). - -The default in Hugo is to use the directory structure of the content/ directory to guide the location of the generated html in the public/ directory. Let's verify that by creating an "about" page at the top level: - -``` -$ vi content/about.md -+++ -title = "about" -description = "about this site" -date = "2014-09-27" -slug = "about time" -+++ - -## about us - -i'm speechless -:wq -``` - -Generate the web site and verify the results. - -``` -$ find public -name '*.html' | xargs ls -l --rw-rw-r-- 1 mdhender staff 334 Sep 27 15:08 public/about-time/index.html --rw-rw-r-- 1 mdhender staff 527 Sep 27 15:08 public/index.html --rw-rw-r-- 1 mdhender staff 358 Sep 27 15:08 public/post/first-post/index.html --rw-rw-r-- 1 mdhender staff 0 Sep 27 15:08 public/post/index.html --rw-rw-r-- 1 mdhender staff 342 Sep 27 15:08 public/post/second-post/index.html -``` - -Notice that the page wasn't created at the top level. It was created in a sub-directory named 'about-time/'. That name came from our slug. Hugo will use the slug to name the generated content. It's a reasonable default, by the way, but we can learn a few things by fighting it for this file. - -One other thing. Take a look at the home page. - -``` -$ cat public/index.html - - - -

creating a new theme

-

about

-

second

-

first

- - -``` - -Notice that the "about" link is listed with the posts? That's not desirable, so let's change that first. - -``` -$ vi themes/zafta/layouts/index.html - - - -

posts

- {{ range first 10 .Data.Pages }} - {{ if eq .Type "post"}} -

{{ .Title }}

- {{ end }} - {{ end }} - -

pages

- {{ range .Data.Pages }} - {{ if eq .Type "page" }} -

{{ .Title }}

- {{ end }} - {{ end }} - - -:wq -``` - -Generate the web site and verify the results. The home page has two sections, posts and pages, and each section has the right set of headings and links in it. - -But, that about page still renders to about-time/index.html. - -``` -$ find public -name '*.html' | xargs ls -l --rw-rw-r-- 1 mdhender staff 334 Sep 27 15:33 public/about-time/index.html --rw-rw-r-- 1 mdhender staff 645 Sep 27 15:33 public/index.html --rw-rw-r-- 1 mdhender staff 358 Sep 27 15:33 public/post/first-post/index.html --rw-rw-r-- 1 mdhender staff 0 Sep 27 15:33 public/post/index.html --rw-rw-r-- 1 mdhender staff 342 Sep 27 15:33 public/post/second-post/index.html -``` - -Knowing that hugo is using the slug to generate the file name, the simplest solution is to change the slug. Let's do it the hard way and change the permalink in the configuration file. - -``` -$ vi config.toml -[permalinks] - page = "/:title/" - about = "/:filename/" -``` - -Generate the web site and verify that this didn't work. Hugo lets "slug" or "URL" override the permalinks setting in the configuration file. Go ahead and comment out the slug in content/about.md, then generate the web site to get it to be created in the right place. - -## Sharing Templates - -If you've been following along, you probably noticed that posts have titles in the browser and the home page doesn't. That's because we didn't put the title in the home page's template (layouts/index.html). That's an easy thing to do, but let's look at a different option. - -We can put the common bits into a shared template that's stored in the themes/zafta/layouts/partials/ directory. - -### Create the Header and Footer Partials - -In Hugo, a partial is a sugar-coated template. Normally a template reference has a path specified. Partials are different. Hugo searches for them along a TODO defined search path. This makes it easier for end-users to override the theme's presentation. - -``` -$ vi themes/zafta/layouts/partials/header.html - - - - {{ .Title }} - - -:wq - -$ vi themes/zafta/layouts/partials/footer.html - - -:wq -``` - -### Update the Home Page Template to Use the Partials - -The most noticeable difference between a template call and a partials call is the lack of path: - -``` -{{ template "theme/partials/header.html" . }} -``` -versus -``` -{{ partial "header.html" . }} -``` -Both pass in the context. - -Let's change the home page template to use these new partials. - -``` -$ vi themes/zafta/layouts/index.html -{{ partial "header.html" . }} - -

posts

- {{ range first 10 .Data.Pages }} - {{ if eq .Type "post"}} -

{{ .Title }}

- {{ end }} - {{ end }} - -

pages

- {{ range .Data.Pages }} - {{ if or (eq .Type "page") (eq .Type "about") }} -

{{ .Type }} - {{ .Title }} - {{ .RelPermalink }}

- {{ end }} - {{ end }} - -{{ partial "footer.html" . }} -:wq -``` - -Generate the web site and verify the results. The title on the home page is now "your title here", which comes from the "title" variable in the config.toml file. - -### Update the Default Single Template to Use the Partials - -``` -$ vi themes/zafta/layouts/_default/single.html -{{ partial "header.html" . }} - -

{{ .Title }}

- {{ .Content }} - -{{ partial "footer.html" . }} -:wq -``` - -Generate the web site and verify the results. The title on the posts and the about page should both reflect the value in the markdown file. - -## Add “Date Published” to Posts - -It's common to have posts display the date that they were written or published, so let's add that. The front matter of our posts has a variable named "date." It's usually the date the content was created, but let's pretend that's the value we want to display. - -### Add “Date Published” to the Template - -We'll start by updating the template used to render the posts. The template code will look like: - -``` -{{ .Date.Format "Mon, Jan 2, 2006" }} -``` - -Posts use the default single template, so we'll change that file. - -``` -$ vi themes/zafta/layouts/_default/single.html -{{ partial "header.html" . }} - -

{{ .Title }}

-

{{ .Date.Format "Mon, Jan 2, 2006" }}

- {{ .Content }} - -{{ partial "footer.html" . }} -:wq -``` - -Generate the web site and verify the results. The posts now have the date displayed in them. There's a problem, though. The "about" page also has the date displayed. - -As usual, there are a couple of ways to make the date display only on posts. We could do an "if" statement like we did on the home page. Another way would be to create a separate template for posts. - -The "if" solution works for sites that have just a couple of content types. It aligns with the principle of "code for today," too. - -Let's assume, though, that we've made our site so complex that we feel we have to create a new template type. In Hugo-speak, we're going to create a section template. - -Let's restore the default single template before we forget. - -``` -$ mkdir themes/zafta/layouts/post -$ vi themes/zafta/layouts/_default/single.html -{{ partial "header.html" . }} - -

{{ .Title }}

- {{ .Content }} - -{{ partial "footer.html" . }} -:wq -``` - -Now we'll update the post's version of the single template. If you remember Hugo's rules, the template engine will use this version over the default. - -``` -$ vi themes/zafta/layouts/post/single.html -{{ partial "header.html" . }} - -

{{ .Title }}

-

{{ .Date.Format "Mon, Jan 2, 2006" }}

- {{ .Content }} - -{{ partial "footer.html" . }} -:wq - -``` - -Note that we removed the date logic from the default template and put it in the post template. Generate the web site and verify the results. Posts have dates and the about page doesn't. - -### Don't Repeat Yourself - -DRY is a good design goal and Hugo does a great job supporting it. Part of the art of a good template is knowing when to add a new template and when to update an existing one. While you're figuring that out, accept that you'll be doing some refactoring. Hugo makes that easy and fast, so it's okay to delay splitting up a template. diff --git a/content/blog/goisforlovers.md b/content/blog/goisforlovers.md deleted file mode 100755 index e189c78..0000000 --- a/content/blog/goisforlovers.md +++ /dev/null @@ -1,347 +0,0 @@ -+++ -title = "(Hu)go Template Primer" -description = "" -tags = [ - "go", - "golang", - "templates", - "themes", - "development", -] -date = "2014-04-02" -categories = [ - "Development", - "golang", -] -highlight = "true" -draft = true -headerimage = "placeholder.jpg" -headercredits = "Unsplash, [Dlanor S](https://unsplash.com/photos/2xEQDxB0ss4)" -+++ - -Hugo uses the excellent [go][] [html/template][gohtmltemplate] library for -its template engine. It is an extremely lightweight engine that provides a very -small amount of logic. In our experience that it is just the right amount of -logic to be able to create a good static website. If you have used other -template systems from different languages or frameworks you will find a lot of -similarities in go templates. - -This document is a brief primer on using go templates. The [go docs][gohtmltemplate] -provide more details. - -## Introduction to Go Templates - -Go templates provide an extremely simple template language. It adheres to the -belief that only the most basic of logic belongs in the template or view layer. -One consequence of this simplicity is that go templates parse very quickly. - -A unique characteristic of go templates is they are content aware. Variables and -content will be sanitized depending on the context of where they are used. More -details can be found in the [go docs][gohtmltemplate]. - -## Basic Syntax - -Go lang templates are html files with the addition of variables and -functions. - -**Go variables and functions are accessible within {{ }}** - -Accessing a predefined variable "foo": - - {{ foo }} - -**Parameters are separated using spaces** - -Calling the add function with input of 1, 2: - - {{ add 1 2 }} - -**Methods and fields are accessed via dot notation** - -Accessing the Page Parameter "bar" - - {{ .Params.bar }} - -**Parentheses can be used to group items together** - - {{ if or (isset .Params "alt") (isset .Params "caption") }} Caption {{ end }} - - -## Variables - -Each go template has a struct (object) made available to it. In hugo each -template is passed either a page or a node struct depending on which type of -page you are rendering. More details are available on the -[variables](/layout/variables) page. - -A variable is accessed by referencing the variable name. - - {{ .Title }} - -Variables can also be defined and referenced. - - {{ $address := "123 Main St."}} - {{ $address }} - - -## Functions - -Go template ship with a few functions which provide basic functionality. The go -template system also provides a mechanism for applications to extend the -available functions with their own. [Hugo template -functions](/layout/functions) provide some additional functionality we believe -are useful for building websites. Functions are called by using their name -followed by the required parameters separated by spaces. Template -functions cannot be added without recompiling hugo. - -**Example:** - - {{ add 1 2 }} - -## Includes - -When including another template you will pass to it the data it will be -able to access. To pass along the current context please remember to -include a trailing dot. The templates location will always be starting at -the /layout/ directory within Hugo. - -**Example:** - - {{ template "chrome/header.html" . }} - - -## Logic - -Go templates provide the most basic iteration and conditional logic. - -### Iteration - -Just like in go, the go templates make heavy use of range to iterate over -a map, array or slice. The following are different examples of how to use -range. - -**Example 1: Using Context** - - {{ range array }} - {{ . }} - {{ end }} - -**Example 2: Declaring value variable name** - - {{range $element := array}} - {{ $element }} - {{ end }} - -**Example 2: Declaring key and value variable name** - - {{range $index, $element := array}} - {{ $index }} - {{ $element }} - {{ end }} - -### Conditionals - -If, else, with, or, & and provide the framework for handling conditional -logic in Go Templates. Like range, each statement is closed with `end`. - - -Go Templates treat the following values as false: - -* false -* 0 -* any array, slice, map, or string of length zero - -**Example 1: If** - - {{ if isset .Params "title" }}

{{ index .Params "title" }}

{{ end }} - -**Example 2: If -> Else** - - {{ if isset .Params "alt" }} - {{ index .Params "alt" }} - {{else}} - {{ index .Params "caption" }} - {{ end }} - -**Example 3: And & Or** - - {{ if and (or (isset .Params "title") (isset .Params "caption")) (isset .Params "attr")}} - -**Example 4: With** - -An alternative way of writing "if" and then referencing the same value -is to use "with" instead. With rebinds the context `.` within its scope, -and skips the block if the variable is absent. - -The first example above could be simplified as: - - {{ with .Params.title }}

{{ . }}

{{ end }} - -**Example 5: If -> Else If** - - {{ if isset .Params "alt" }} - {{ index .Params "alt" }} - {{ else if isset .Params "caption" }} - {{ index .Params "caption" }} - {{ end }} - -## Pipes - -One of the most powerful components of go templates is the ability to -stack actions one after another. This is done by using pipes. Borrowed -from unix pipes, the concept is simple, each pipeline's output becomes the -input of the following pipe. - -Because of the very simple syntax of go templates, the pipe is essential -to being able to chain together function calls. One limitation of the -pipes is that they only can work with a single value and that value -becomes the last parameter of the next pipeline. - -A few simple examples should help convey how to use the pipe. - -**Example 1 :** - - {{ if eq 1 1 }} Same {{ end }} - -is the same as - - {{ eq 1 1 | if }} Same {{ end }} - -It does look odd to place the if at the end, but it does provide a good -illustration of how to use the pipes. - -**Example 2 :** - - {{ index .Params "disqus_url" | html }} - -Access the page parameter called "disqus_url" and escape the HTML. - -**Example 3 :** - - {{ if or (or (isset .Params "title") (isset .Params "caption")) (isset .Params "attr")}} - Stuff Here - {{ end }} - -Could be rewritten as - - {{ isset .Params "caption" | or isset .Params "title" | or isset .Params "attr" | if }} - Stuff Here - {{ end }} - - -## Context (aka. the dot) - -The most easily overlooked concept to understand about go templates is that {{ . }} -always refers to the current context. In the top level of your template this -will be the data set made available to it. Inside of a iteration it will have -the value of the current item. When inside of a loop the context has changed. . -will no longer refer to the data available to the entire page. If you need to -access this from within the loop you will likely want to set it to a variable -instead of depending on the context. - -**Example:** - - {{ $title := .Site.Title }} - {{ range .Params.tags }} -
  • {{ . }} - {{ $title }}
  • - {{ end }} - -Notice how once we have entered the loop the value of {{ . }} has changed. We -have defined a variable outside of the loop so we have access to it from within -the loop. - -# Hugo Parameters - -Hugo provides the option of passing values to the template language -through the site configuration (for sitewide values), or through the meta -data of each specific piece of content. You can define any values of any -type (supported by your front matter/config format) and use them however -you want to inside of your templates. - - -## Using Content (page) Parameters - -In each piece of content you can provide variables to be used by the -templates. This happens in the [front matter](/content/front-matter). - -An example of this is used in this documentation site. Most of the pages -benefit from having the table of contents provided. Sometimes the TOC just -doesn't make a lot of sense. We've defined a variable in our front matter -of some pages to turn off the TOC from being displayed. - -Here is the example front matter: - -``` ---- -title: "Permalinks" -date: "2013-11-18" -aliases: - - "/doc/permalinks/" -groups: ["extras"] -groups_weight: 30 -notoc: true ---- -``` - -Here is the corresponding code inside of the template: - - {{ if not .Params.notoc }} -
    - {{ .TableOfContents }} -
    - {{ end }} - - - -## Using Site (config) Parameters -In your top-level configuration file (eg, `config.yaml`) you can define site -parameters, which are values which will be available to you in chrome. - -For instance, you might declare: - -```yaml -params: - CopyrightHTML: "Copyright © 2013 John Doe. All Rights Reserved." - TwitterUser: "spf13" - SidebarRecentLimit: 5 -``` - -Within a footer layout, you might then declare a `