Saturday, December 15, 2012

Annotate a JPG with its EXIF date and time

If you need to annotate a bunch of JPG pictures the following simple bash script could come in handy. Script uses pictures EXIF date and time information but could be easily patched to include any other text. The only dependencies script has are Image Magic and awk:

Tuesday, October 16, 2012

Simple example of Yahoo Pipes usage

I've been using Yahoo Pipes (or YP for short) since the very beginning. This is a very powerful and easy to use tool to collect and process data from various sources for free. With its simple user interface one doesn't have to be a programmer or IT professional to create a pipe. Unfortunately it looks like that YP is very much forgotten today. Maybe it is related to the Yahoo financial and marketing problems they are facing at the moment. Anyway, I'd like to show a very simple use case and how easy it could be solved using YP. If you're familiar with the YP you may skip the further reading. If not - continue under the cut.

Sunday, October 14, 2012

Design of a corner TV table

Several years ago I wanted to buy a TV table that I could place into a corner. I went to every nearby furniture store but couldn't find any model designed for corners! So I had to build one myself.

Sunday, August 19, 2012

A little bit about Hilbert space-filling curve


As a student I have investigated properties of different scanning algorithm to unwrap an N-dimensional array into one dimensional. One of the algorithms was  Hilbert space-filling algorithm. This algorithm can be applied to an array of any dimension and it is known as one of the unwrapping algorithms that preserves spatial relations between array's neighbors very well.

Monday, July 16, 2012

AVR-Stick as an infrared receiver and logger


I have already described a project based on the AVR-Stick hardware. The next thing I wanted to try with that hardware is to create an infrared receiver and logger. In fact I wanted to emulate the dongle I described some time ago. But to emulate it I needed to know the protocol that is used. The easiest way to find out what protocol is used is to analyze signals with an oscilloscope of course but I didn't have one. So first of all I needed to implement a signal logging functionality.

Friday, June 29, 2012

AVR-stick as a temperature logger

I've stumbled recently upon a little gem called AVR-Stick and bought two of them for about 7€ per stick. I also had a thermoregulated fan controller salvaged from a recycled computer. I decided to desolder a thermistor from that controller and put it onto the stick to use it as a USB temperature logger. Stick's ATtiny85 has an internal temperature sensor too but it should be calibrated otherwise its precision is ±10°C. Thermistor that I'm using is equivalent to the NTCLE100E3103JB0 and its resistance is 10K at 25°C. Any other NTC thermistor that has resistance around 10K at room temperature could also be used but it should be checked if manufacturer specifies Steinhart-Hart equation coefficients for it.

Thursday, June 7, 2012

Using of the xfce4-messenger-plugin

I was looking for a way to display an icon on a xfce desktop panel on some event. One possible solution is to use the xfce4-messenger-plugin. The plugin listens to messages on the D-Bus and displays them in a pop-up window or in the panel. Additionally it can display an icon if the message sent is prefixed with a identifier.

Tuesday, June 5, 2012

dnsmasq cache size tuning

dnsmasq is a lightweight DNS forwarder and DHCP server used primarily in embedded systems (like routers) where resources are limited. DNS queries are small in size but latency introduced can be significant depending on the proximity of a DNS server that can answer the query. DNS queries are usually cached either by a web browser of by the operating system but if several clients are connecting to the Internet through a router they would all need to send 'possibly' same DNS requests over again. That's why dnsmasq running on a router has a local cache for DNS queries.

Saturday, June 2, 2012

Mount WebDAV resources with davfs2 and secure it with encfs

Number of online resources offering free remote storage facilities has seriously increased in the recent time and it continue to grow taking a good share from the Dropbox's marketspace. Dropbox has been on the cloud storage market since the early days but for many people a proprietary client offered by Dropbox is not acceptable. There are of course attempts to overcome such a drawback by implementing an open source client that is configurable to use different types of cloud storage facilities transparently to the user. An example for such a client is I've been waiting for the project to reach a mature state for months but it seems like they are not making it in the near future. So I started to look for other possibilities to utilize cloud storage facilities using only standard means available on the operating system's level that would require no dedicated client to be installed. The rest of the article is devoted mainly to users of Unix-like OS's but there is a section in the end explaining how to mount and encrypt WebDAV resources on Windows platform.

Sunday, February 26, 2012

Digital Picture Frame as a router status display

A 320x240 cheap (2,90€ by digital picture frame attached to a router is a very useful addition to show router's status information. The DPF display driver is already integrated into the lcd4linux project that makes it easy to use the frame. This for example is how it works for me:


Some details regarding DPF hacking can be found here (the page is in German)
Although lcd4linux is a powerful tool I'm still looking for a way to build complex dynamic menu structures to be able to control MPD from my remote, i.g to be able to navigate visually through the MPD database and select items into the playlist. And it seems like the lcd4linux is not powerful enough to do such things. I'll add some additional notes if I find a solution.

Update: my lcd4linux.conf for this layout is here
Update2: the digit's font is Impact, 48 points
Update3: I was asked to add some info about weather parsing

Well, first of all I have a script that is called when WAN interface goes up: