Tag Archives: DIY

The Making of me.chschmid.com, Part 1: The Problem

Privacy is a hot topic these days and part of virtually every coffee break discussion I know of. How much do they know? The Googles, Facebooks, Dropboxes, Wunderlists and above all the NSA.
Actually a lot of people who have no idea about the technology side of things have started asking me these questions lately. I can see that their not knowing about the hidden magic in the background that enables the services they use on a daily basis makes them feel really uneasy. The truth is, its simple.

Privacy

Communication

First of all there is communication between computers, which, on a technical level, is the only thing the web itself allows us to do. When you ask google for search results, when you push your files to dropbox, when you have that Skype call with your mom – it’s all communication and exchange of information between two computers over the web.

Let’s take that Skype call for instance and lets picture the web as a city with you in your house (as a stand in for your computer) and the streets that connect all the houses as data highways. Lets also say there is one guy in every street who controls the street. What happens when you want to send a message to your mom is you tell the guy in your street (your provider) to dispatch the message – it’s wrapped in a nice envelope with your address and the destination on it so that he knows where it has to go. He will then walk to the next street, pass on your massage to the person controlling that street and this guy will do the same until the message arrives at your mom’s place.

There are two problems associated with this in terms of privacy

  1. Everyone who is part of the delivery chain might have opened the envelope and might have looked at message.
  2. Even if they have not read your message, they know that there was communication going on between you and your mom and they will also know how much data was exchanged.

Problem 1 can be solved by encrypting the message so that it does not make sense to anyone who might read it on its way. – There are still some issues here when it comes to technical implementations, but essentially, if you do it right, you can make your messages close to unreadable to the outsider. – This by the way is common practice in a lot of applications, which is good. E.g. always look for websites that come via “https” instead of “http”. The “s” really makes the difference!

Problem 2 is a little bit harder but still solvable. Say you transmit a secret message to your mom asking her to pass another message to someone else. If anyone wants to track your message to the final destination it will become really difficult as not knowing about the message to your mom asking her to dispatch something for you will make it unclear if any outgoing message from your moms was from you or from her or from anyone else. The more people you put between you and your final destination the harder it will be to track your messages. Essentially this is the idea that the Tor network is based on, however it is not widely used and not common practice.

Data

The second aspect apart from communication is data. You do not only exchange information when storing your files on Dropbox, but you ask them to hold on to that data for you as you ask Google to store your e-mails and Wunderlist to store your todos. They might even store data that you do not ask them to store, like your seach history. The problem here is that those companies sometimes leak data (e.g., PlayStation Network outage) and sometimes share your data with other organizations such as the NSA.

To use the analogy with the city and the streets: If there is someone at your mom’s place or at Dropbox’s place who watches over their shoulder while they decrypt your message, your data will be available to them, even when the data transmission through the streets of your city was safe due to encryption.

If all you want to do is storing your data at someone else’s place you can give it to them in an encrypted way. E.g. only store encrypted zip files on dropbox. Or you can opt out and don’t give any data to them in the first place.

Obviously this does not work for your search terms, that Google has to know about in order to give you results.

The Solution

There is not one size fits it all solution, but on central aspect is to be aware of what data you share online and how others may be able to use it. The analogy with the city and the streets will give you a pretty good idea of who can access what. I don’t think sharing stuff is bad per se, you just have to know about the implications. To give you some examples.

  • Stuff that you put on a website, e.g., your blog, can be seen by absolutely everyone.
  • Stuff that you post to social networks may not be seen by anyone who happens to stand between you and the computers of that social network, but by whoever you allow it to see, by the social network itself and by anyone who they share this information with – willingly or by accident.
  • Even when you are just looking at stuff online you let others know about what you are looking at. This means amazon will learn about what you like simply from you browsing their website. – But to be honest: the employees at your local grocery store also know what you buy on a daily basis.

To be better off in terms of communication

  • Look for encryption so that at least your communication is secure. E.g., look for https instead of http, configurate your e-mail client so that it uses encrypted instead of unencrypted mail transfer.
  • Don’t use things such as FTP to transfer files.
  • and  finally:

Use Your Own Cloud Storage

About 1.5 years ago I set up my own Ubuntu GNU/Linux server, that hosts all my git repositories, files (webdav), calendars (caldav) and contact data (carddav) via owncloud and many other services that I use. The Server is currently running on an AMD E-350 APU, which is soon to be replaced by something better. And that’s the reason why this is just part 1. I’ll post information about my new server setup in the next couple of days, so stay tuned!

Geeking Out Again

I just can’t help myself: I have to geek out from time to time. And no, by geeking out I don’t mean reading comics or watching Star Wars. I mean BUILDING SOMETHING that is related to technology and, well, that is utterly useless most of the time ;) Here’s a video I made about my newest projects: pilight and pimorse.

pilight and pimorse let me control the lights in my apartment + they let you and everybody else in the world send out their personal messages in Morse code via the lights in my apartment!

Technically pilight and pimorse are centered around a Raspberry PI, which is connected to an 868-MHz radio via SPI and to my local network + the Internet. The 868 MHz signals control the three dimmer switches in my apartment. But enough of the tech talk, let’s send some stuff out into the world at http://pimorse.chschmid.com.

A Personal WWW Story

From time to time I just can’t resist: My website / blog (whatever it is) has to change. The time has come again and the result is what you are looking at right now. This recent facelift triggered me to dig through my personal archives and old back-ups to take a look at the long way my website(s) has / have come. And truly a long way it is.

1999 – My First Lines of HTML

I found out that I wrote my first couple of HTML and JavaScript lines in 1999, a time when everybody was still using Netscape Navigator to browse the web and Altavista to google – obviously nobody called it “to google” at the time. I had no idea how to use computer graphics software, but paintbrush and my 56k modem – yep one of those that made the funny noises – was all I needed to upload my first piece of HTML art.

1999

Well, lots of typos and not exactly art. Fun fact: I used Labview to generate the buttons. By the way this is the only thing that I’ve ever found Labview to be useful for.

2000 – Flash and HTML

The next thing I discovered was a soon-to-be-dead technology known as Flash, which I used to create Version 2.0 of my personal website in 2000.

2000.1

Please note the cubes, which would stick with me for a couple of years. I did also get my own domain www.chschmid.com around that time. It was a free offer, all you had to accept was ads on your website, which I of course was able to hide via JavaScript. As not every computer supported Flash I also continued with HTML in parallel. The interesting aspect about HTML based websites is that you can always look at the source code. So what I did is I just copy-and-pasted an interesting design that I had found online and modified it to my needs. Yes this is stealing, but I just did not care at the time.

2000.2

Until the time came that I did care and so I designed a new website in 2001.

2001 – HTML Design

This actually was the first time that I did really design something in HTML. I had learned how to use the Corel Graphics Suite by then and the design was centered around icons and styles that remind me very much of the icon design language of the 90s.

2001.1

In the same year I did try to set up a website as joint project with a very good friend of mine. He’s doing a lot of photography these days.

2001: A joint project

2001/2002 – The Rise of PHP

In 2001/2002 I started using PHP and MySQL as server-side technologies to enhance my website. All of my PHP scripts were home-grown and for applications such as guestbooks and calendars. At the same time I also started to work for Fronius as web developer. Looking back it is funny to see how little I knew, and how much that was worth at a time, when it was common knowledge that the Internet is THE big thing yet virtually none of the 35+ knew much about the technologies behind it. So here’s my design from 2001/2002.

2002

There are some note-worthy aspects about this screenshot. First it shows that I ran Windows XP, second I was using IE (Ah!!!), third and most importantly: From the URL and the taskbar one can see that I had Apache running on my local machine for developing PHP scripts.

2002-2006 – PHP Nuke

In 2002 I found out that there were online communities that developed PHP Content Management Systems. Looking back I made a very bad choice and started using php-nuke. I did also code some modules for the system.

2006

I think some time in 2003 the free domain offer expired, and I began using www.chschmid.net.tf instead of www.chschmid.com. From then on I was also forced to be aware of CSS, which I had tried to avoid whenever possible. Interestingly this had worked quite well for a long time! In 2006 I did a minor facelift to account for the facts that screen resolutions were getting higher and that font rendering and anti-aliasing technologies had advanced. At the same time php-nuke had some serious security vulnerabilities and I found that the framework was more than I actually needed.

2006-2008 – HTML + PHP

So I did another redesign, again with almost static HTML and some home-brewed PHP + I did improve the design to be more photo-centric in 2007.

2007-2009

I didn’t change content regularly but uploaded all my music gigs.

2008+ – WordPress

When I went to UCLA in 2008 I needed a more flexible system for pushing information online regularly. With lots of exams and the bureaucracy of going to the US at hand I didn’t have too much time to set up the whole thing, so I went with a blog hosted at wordpress.com and minor default template modifications: chms.wordpress.com.

2008

I did get back “my domain” in 2009 and set up a self-hosted wordpress blog in 2010. I again used a pre-defined wordpress template with some individual modifications. Actually I did come to the decision that I wanted a new blog while on a plane from Hawaii to LA and set the whole thing up during my first night in LA. – You gotta fight jet lag somehow, right. In 2012 I did read and play around a lot with fonts, and so some font changes became inevitable.

2010-2012

What is interesting to see in all screenshots from 2006-2013 is that fonts have become more important, more beautiful and that there were a lot of pseudo-realistic design elements: Textures, shadows, lots of boxes – something that more and more designers are avoiding these days, e.g., if you think about the iOS 7 resign, or the bold and beautiful move that Microsoft has made with Windows Phone 7 and Windows 8 a few years back.

2013 – The Time is Now

This brings me to what you have in front of you today: A novel, minimalistic, content-centered approach. It’s a new theme for the same self-hosted wordpress system, that I have been using since 2010 (with all the latest updates of course)

2013

And so here come the most important questions: What do you think about it? What would you change? And maybe: What’s your personal Web story?
PS. My template can of course be downloaded from my github site.

Raspberry PI + Raspbian + Squeezeslave

I am not going to waste too many words this time, instead I am just posting the commands required to get squeezeslave run as deamon on a Raspbian Raspberry Pi.

  1. Download and untar latest Squeezslave for your Raspberry from https://code.google.com/p/squeezeslave/. As of today this can be done via
    wget https://squeezeslave.googlecode.com/files/squeezeslave-1.3-390-armhf-lnx32.tar.gz
    tar -zxvf squeezeslave-1.3-390-armhf-lnx32.tar.gz
    
  2. Move everything into the right places
    sudo mkdir /usr/local/squeezeslave
    sudo mv squeezeslave /usr/local/squeezeslave
    sudo chown root:root /usr/local/squeezeslave/squeezeslave
    sudo ln -s /usr/local/squeezeslave/squeezeslave /usr/local/bin/squeezeslave
    

    From here on you should already be able to run squeezeslave via

    squeezeslave -o 0 YOURSERVER
  3. To run squeezeslave as a deamon and at the system start you’ll need to add this file and get it to the right place.
    wget https://blog.chschmid.com/media/squeezeslave
    sudo mv squeezeslave /etc/init.d
    sudo chown root:root /etc/init.d/squeezeslave
    sudo chmod 755 /etc/init.d/squeezeslave
    sudo update-rc.d squeezeslave defaults
    
  4. Now all that is left is to create a config file
    sudo joe /etc/default/squeezeslave
    

    with the following content:

    SSMAC="xx:xx:xx:xx:xx:xx"
    SBSHOST= YOURSERVER
    SSOPTIONS="-o 0"
    

    Obviously you want to configure it to work with your server and add the MAC address which you find under HWaddr using

    ifconfig
    
  5. You can now either reboot your machine or start the service manually
    sudo service squeezeslave start
    

Another problem is that the Raspbian by default boots at a rather low audio volume. This can be fixed by

  1. setting the volume with the command line mixer
    sudo apt-get install alsa-utils
    alsamixer
    
  2. and storing the settings
    sudo alsactl store
    

The Life of My New Pi

Sorry to disappoint some of you: This is not about the great movie that I watched on an airplane on my way to Seattle just recently. This post is about my newest gadget. I just could not resist getting myself a Raspberry Pi, which is a low power (low power as in low electrical power but also as in low computational power) credit-card-sized single-board ARM computer. Meet my new toy:

wpid-20130707_184802.jpg

I did also buy

  • a transparent case,
  • an 8GB SD card,
  • and a micro USB charger as power supply.

If you order all of this stuff online you should be able to get it for around 50-60 €. – When it comes to the Raspberry Pi (RPi) low power also means inexpensive.

What I did not expect: I had it up and running in about 10-15 minutes. Raspbian was the obvious choice for me as Ubuntu user. After

  1. downloading the Raspbian image from http://www.raspberrypi.org/downloads
  2. extracting it via the terminal
    unzip 2013-05-25-wheezy-raspbian.zip
  3. copying it to the SD card via the terminal
    sudo dd bs=4M if=2013-05-25-wheezy-raspbian.img of=/dev/mmcblk0 && sudo sync
  4. plugging the SD card into the RPi and connecting the power supply / monitor / keyboard,

I could configure the RPi using the built in Raspbian tool. Again, 10-15 minutes + maybe 10 extra minutes for the first time configuration, absolutely hassle-free, and you’ll be greeted by the familiar Linux login. – I was impressed.

Now the obvious question that most people are likely to ask is: “What are you going to do with it” and I am guilty as charged. More often than not I do buy those gadgets without even knowing what I would need or use them for, just for the fun of playing around with them. With the RPi it’s quite similar tough I have two applications in mind, with one of them up and running already:

  1. RPi as music streaming device
  2. RPi as “bedroom light server”

2. will be a more elaborate project, which I am going to talk about some other day, 1. is more obvious. The thing is I am running a home server (Ubuntu 12.04 on some low power AMD E-350 hardware) which (amongst others) acts as Logitech Media Server for a Logitech Squeezbox Radio and a Logitech Squeezebox Touch. I do really love both devices and the whole Squeezebox concept. It lets you stream music from a local server as well as from Internet radio stations, synchronize multiple players, control everything via PCs / smartphones / tablets and much more.

Both pieces of hardware that I did get from Logitech were not cheap, but are worth every penny (or Euro cent in my case). Moreover all software, both the server and the client side, is cross-platform and open-source. This is probably mainly due to the fact that Squeezebox was not invented by Logitech but by Slimdevices which was later acquired by Logitech. Anyway, Logitech managed to ruin one of the most promising competitors in the audio streaming market and in 2012 announced that they would discontinue the Squeezebox line in favor of a new, over-priced and crappy product line with less features. No worries, I will stop complaining about Logitech’s completely crackbrained decision, because there is a solution: The RPi can stand in as perfect Squeezebox streaming device replacement!

In a later post I am going to explain how to configure the whole thing to run when the RPi starts up. For now (again from a terminal) it is just as easy as

  • wget https://squeezeslave.googlecode.com/files/squeezeslave-1.3-390-armhf-lnx32.tar.gz
  • tar -zxvf squeezeslave-1.3-390-armhf-lnx32.tar.gz
  • ./squeezeslave -o 0 -M “test.log” 192.168.1.200

That’s all that is needed to turn your RPi into a Squeezebox client in under 30 minutes and the beginning of the life of my new Raspberry Pi …

Maintenance and Repairs

Today was all about maintenance and repair. It started with me mounting the winter tires. Austrian laws require your car to be equipped with winter tires from November 1st in case of ice or snow, which starting with November is to be expected any time.

And lo and behold, we saw our first snow just hours after I had mounted the winter tires! – The perfect weather to go swimming and do some body maintenance.

That’s just one of the good things about visiting my parents on weekends: They have this great but underrated resort nearby: The Welldorado. Well it’s not as big or luxurious as the huge ones, but on Saturdays there is always enough space in the sports pool for doing some lanes. An hour later or so, I was heading back to Linz. At first I wanted to practice piano, but then I decided to stick to the day’s main theme.

My electric piano is a Yamaha S90 ES, which I really like for it’s great piano voices and all the other things that you can do with it. However it is 7 years old now and some keys started to get sticky and the key response began to become uneven. So I decided to open it up and do some cleaning.

You can actually take out every single key to clean or replace it. What is interesting is that the keys did not get sticky because of me or anybody else pouring something over the keyboard (although not aware of me doing so, I had thought that this was the reason). The real source was exuberant grease that Yamaha had used and that had started to creep between the keys. Anyway now the piano plays as smooth as on the very first day!

All in all not much revolutionary happened today. I mainly spent with maintaining and repairing some of my tools. – But this is important, because they are the things that might help me do more exciting stuff someday!

I am the Master of my own …

bladder – that’s what Sheldon want’s to be

PC – me. That’s why I started playing again with Linux. I have to admit, the whole Linux thing is with me for more than 10 years now. I have installed at least one Linux distribution every year and after some time found it: unusable to put it mildly. Most importantly: it never really supported my hardware. I should mention that I am talking about the two laptop computers that I’ve owned.

Which were both bulky 15 inch machines and I decided to go for a smaller computer about a month ago. So here I was with my brand new Lenovo ThinkPad x121e (AMD-450 Version), no operating system. In other words: Another round of Linux tryouts. I decided to try Ubuntu.

It was a lot of work and it involved things that my mother would totally not be capable off, but shit, I gotta say: It has convinced me this time!!! I got everything working!!!

Home Improvement – or – Welcome!

Long time no see! Sorry, I was pretty busy. I still am, but hey once in a while you gotta take a break!

This week was home improvement week,  some repairs here and there, new glass walls in my kitchen, and because Andrea always reminds me that my apartment looks to much like a guy’s place (no decoration and stuff) we decided what to do with the big plain wall in the entrance area. We ended up painting the German word “Willkommen!”  and the English translation “Welcome!” onto the  wall in big, orange letters (1 m=3.5 feet length!). Here’s photo of the result

… and another one with my sister, her boyfriend, another friend of hers and Richard. Notice of the self-made fruits picture in the back!

Lots of decoration work is still to come! Hope that we can “Welcome!” some of you soon, so that you can take a real life look at our pieces of art!