This is an apology to all the people who have sent me an e-mail over the course of the past 5 months and have not received the response they expected in time. I was swamped at work, with my PhD project, IEEE activities and other challenges in my private life. But now I am on top of things again. I’ve reached “Inbox Zero”.
jdotxt is an open source, cross-platform Desktop tool for managing your todo list. It’s geared towards Gina Trapani’s todo.txt file format and stores all of your stuff in two human readable text files. Having these files on your owncloud, dropbox or any other cloud storage makes it easy as pie to keep your todos in sync across multiple devices.
Download and Installation
Download installer. When you launch jdotxt, you may be asked to download and install Java, which you should do in that case.
Mac OS X
Ubuntu >= 12.10 (Repository)
Open a terminal and execute the following three commands (line by line):
sudo add-apt-repository ppa:chms/jdotxt sudo apt-get update sudo apt-get install jdotxt
Ubuntu 12.04 LTS
First you must get JRE >= 7 by executing the following two commands (line by line):
sudo apt-get install openjdk-7-jre sudo update-alternatives --config java
After executing the second line you will be asked, which version of Java you would like to use by default. Select the one that has version number 7 or higher in its path name.
Now continue with the instructions for Ubuntu >= 12.10 (see above)
Download and install the jdotxt Debian file. Of course this works on Ubuntu too, but it is highly recommended to use the repository, for automatic updates.
Generic (Works on Windows, GNU/Linux and Mac OS X)
Download the jar file and execute it using Java JRE >= 7 (http://www.java.com)
Mastering jdotxt in 110 Seconds
You are more than welcome to drop me a line via one of the online platforms I use, or to contribute by reporting bug reports or feature requests via github. The source code is also hosted on github.com so feel free to contribute!
Christian M. Schmid
jdotxt is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.
Since blogging apparently doesn’t work for me lately I’ll try microblogging for 30 days. Here’s my twitter feed.
Thank you all for dropping by in 2014! For those who care, here are the blog stats that wordpress sent me for 2014: http://jetpack.me/annual-report/16165614/2014/
I wish you and your loved ones all the best for 2015! Hope to see you again this year!
Public-Key Cryptography is a truly magical thing and I often wonder why we don’t use it more often. We go on and complain about how it is too easy for government agencies to look into our digital lives, while we do have all the tools to prevent it. Only we don’t use them and we don’t seem to ask facebook, gmail and so on to use them – not that they would. The funny part is that it would not require a lot of effort, because computers could automatically do all of that stuff in the background. All that would be needed is that we were able to securely store one, long password (the private key).
In a nutshell public-key cryptography is a mathematical concept that allows us to encrypt a message that is intended to be read by just one person and to sign something to guarantee that it really came from you.
Let’s take a closer look: public-key cryptography is based on a pair of keys, lets call them #1 and #2. When one uses key #1 to encrypt a message one can only decrypt it again using key #2. The same is true for a message encrypted with key #2 – it can only be decrypted using key #1. In other words the two keys are kind of reversible operations that work in both directions. For instance
- Plain text -> Apply Key #1 -> Cypher Text -> Apply Key #2 -> Original Plain Text
- Plain text -> Apply Key #2 -> Cypher Text -> Apply Key #1 -> Original Plain Text
- Plain text -> Apply Key #2 -> Cypher Text -> Apply Key #2 -> Nonsense
- Plain text -> Apply Key #2 -> Cypher Text -> Try something -> Nonsense
In addition to that it is important to know that it is (almost) impossible to find the keys from the Plain text and/or the Cypher Text.
Usually a person or entity (lets call this entity Alice) creates a pair of keys, where one is made public (the public key) and where the other key is kept secret. There are two typical use cases:
- Anyone can encrypt a message using the public key and send it to Alice. Only Alice and nobody else (e.g., someone who intercepts the cypher text) will be able to read the plain text when only Alice knows her secret key. – This use case is also called “Public-key encryption”.
- Alice can encrypt a message using her private key and send it to anyone. If it can be decrypted using the Alice’s public key, one has a guarantee that the original message really came from Alice. – This use case is also called “Digital signing”.
The secret key is Alice’s crown jewel that she must not lose or share with anyone, because anyone in possession of the secret key can do what Alice can do. Well that is why it’s called the secret key.
Again, all of this can stay in the background and as it can be done for you by software on your computer/phone/…, that has access to your locally stored secret key. If you are interested in implementing some of this stuff in your life, you might want to take a look at
- GNU Privacy Guard (e.g., for protecting your e-mails)
- Threema (for protecting texting on your phone)
Just by reading this article and by understanding it, you should have a pretty good idea about what level of protection encryption can give you and where potential problems may lie. Again, never forget: your secret key is your crown jewel that you must never share and that your software must never leak. By the way, this is something that is especially hard to check with closed source software and also something that the heartbleed bug may have caused.
About two years ago I blogged about setting up the website of Austrian singer Harald Baumgartner. In an attempt to make his work more well known to the public he’s now part of a reality television-music competition series called “Herz von Österreich” (“Heart of Austria”). It’s only airing in Austria, so you might not have heard of it, it’s similar to the Idols TV series. – As I don’t watch television, I didn’t know about it either until he called me last week.
The show in which he’s going to appear is going to air this week on Friday and so some updates to his website became inevitable. I guess that’s the kind of stuff you’re supposed to do on an idle Sunday afternoon. Helping an old friend.
See for yourself http://www.haraldbaumgartner.com – and please don’t forget to vote for him on Friday.
I did some statistics a while ago. Today I can give you an updated version. My term as IEEE Region 8 Student Representative lasts for 388 days now and on average I have received about 18 e-mails per day and I have sent out about 3.5 e-mails per day. – My work and private e-mails go through different accounts, so that is just the IEEE stuff.
The way I try to deal with my mail is simple. – Nothing is allowed to stay in my e-mail Inbox, unless it is unfinished buissness. If I receive some invitiation to some conference that I don’t care about -> it goes into my Ads folder. If I receive some ads -> again Ads folder.
Other mail goes into project related folders unless it requires some action that I am for some reason not willing to put on my todo list. In that sense my Inbox is also a kind of todo list, which should be as empty as possible. From time to time I fall a little behind, so it was time to do some serious housekeeping today.
We had the very first IEEE Region 8 SAC online chat session this year. About 40-50 participants from all over Region 8 (Africa, Europe, Middle East, Russia) dialed in. We (Piotr, Femia, Maciej, Rui Costa) tried to give them an update on
- the upcoming awards nomination deadline
- the awesome IEEE Academic program
- and the 2014 IEEE Region 8 Student and Young Professional Congress in Krakow.
I guess there are a lot of exciting things coming up in 2014. Some people started sharing screenshots from the online session on facebook. I can’t resist to share with you the screenshot of this pink desktop by Christine Avdikou.
Thank you all for dropping by in 2013! For those who care, here are the blog stats that wordpress sent me for 2013: http://jetpack.me/annual-report/16165614/2013/
I wish you and your loved ones all the best for 2014 and enjoy today’s party!
So far the server was in a protected environment, but it’s time to let it see the world! This involves three things:
- Setting up the server firewall
- Configuring the dyndns stuff
- Setting up the router
You only want those ports to be open that you really need. I’d recommend using ufw for configuring your firewall. In my case
sudo ufw allow ssh sudo ufw allow http sudo ufw allow https sudo ufw deny proto udp to any port 137 from 192.168.22.1 sudo ufw deny proto udp to any port 138 from 192.168.22.1 sudo ufw deny proto tcp to any port 139 from 192.168.22.1 sudo ufw deny proto tcp to any port 445 from 192.168.22.1 sudo ufw deny proto tcp to any port 9000 from 192.168.22.1 sudo ufw deny proto tcp to any port 5901 from 192.168.22.1 sudo ufw deny to any port 3483 from 192.168.22.1 sudo ufw allow proto udp to any port 137 from 192.168.22.0/24 sudo ufw allow proto udp to any port 138 from 192.168.22.0/24 sudo ufw allow proto tcp to any port 139 from 192.168.22.0/24 sudo ufw allow proto tcp to any port 445 from 192.168.22.0/24 sudo ufw allow proto tcp to any port 9000 from 192.168.22.0/24 sudo ufw allow proto tcp to any port 5901 from 192.168.22.0/24 sudo ufw allow to any port 3483 from 192.168.22.0/24
which means allowing access to SSH, HTTP and HTTPS from anywhere in the world and to the squeezebox server and the Samba server only from the local network but not from the router.
My provider gives my router a new IP (= unique address on the web) from time to time. To be able to find my router/computer from the outside world, I have to report my IP to someone who can help me find it any time.
Here is how it works: me.chschmid.com points to chschmid.mooo.com and chschmid.mooo.com I have tell what my current IP is when it has changed. It’s less complicated than it sounds
- Get an account at http://freedns.afraid.org/
- Download the latest IPdetect from http://ipdetect.sourceforge.net/
- and set it up as described in the readme file ;)
By the way if your router is running on a modified firmware such as DD-WRT, this task can also be handled by your router and configured via its web interface. Just search for Dynamic Domain Name Service (DDNS). Sadly DD-WRT is not an option for me as the 5 GHz support is broken for my router :(
First I had to tell my router that my server should always get the same local IP 192.168.1.200 based on its MAC address.
And secondly ports 22, 80 and 443 have to be forwarded to that local IP. Here’s a screenshot what this looks like in my case.
Now this calls for some champaign! The server is set up and online! You can take a look at some server stats at https://me.chschmid.com.