In my spare time I do programming. Programming languages, I am using (roughly sorted by skill):
- Shell scripting + AWK
- dc (everyone loves arcane syntax)
- MATLAB / GNU Octave
- Pascal / Delphi
- Assembler (a bit x86, a bit more AVR ATMega)
See also my GitHub account
Here is a list of some programs / libraries, I've written:
Yet another relaunch
w00t! The blog was relaunched! Again! This is probably the 6th iteration or something like that :).
So, welcome back! New URL, new blog software. Last time it was a wonderful patchwork of CGI shell and awk scripts running under Apache. It was super cool, super nerdy and super impossible to fill with content from within the browser. If I wanted to post new stuff, I needed to edit files on my computer and update the blog by running
make. Was quite handy for some mass edit actions but made it impossible to edit the blog from my smartphone, which became more and more important to me.
I've written a small tool that generates an Atom-Feed from a Twitter-Account. All recent (re-)tweets of an account get transfromed into an atom feed. I don't really use my twitter account for posting and want to close it. But there were some people I couldn't get upates from other platforms than twitter, so I've written this tool.
Instead of using twitter's API, it just scrapes the HTML. This has the advantage that I don't need an API key. I don't think twitter would like to see such a program anyway, so they might refuse to give me a key. Of course this also means that I will have to update the tool from time to time, if they decide to change the markup.
I needed to tag some MP3 files to transfer them to my Hi-MD player (I know, I'm a technological caveman sometimes...). Since I have the most important music infos encoded in the directory structure, I could write a little shell script to automate this.
This is why a Unix-ish system beats Windows: You can combine simple tools with a simple, yet powerful programming language to automate almost everything if you want to. On Windows you probably would have to download a 3rd party program for that.
Apparently not many big things have happened in the field of programming in the last 40 years. This talk shows many awesome techniques that were invented back then. They still aren't in widespread use.
Via Rob Pike's Twitter
Jay! simplechat, my websocket-based chat application, got an overhaul.
Mostly an UI improvement. The chat now looks much better IMHO.
You can either install it on your own server or use my public installation.
Woo! Today I released version 1.0 of my compiling template engine STE!
Russ Cox talks about automatically transforming the Go compiler from C to Go.
This video explains the magic behind the fantastic Cruisin 3 demo (here is the original video).
onekb.net offers ultra cheap hosting... if you can fit your stuff into 1024 bytes!
I decided to write a mandelbrot renderer in 1kb. mndlbrt is the result! You can zoom and even share the current image with others (the URL automtaically updates to represent the current area). Also learned a bit about the HTML canvas in the process, which has a surprisingly sane API for webstandards.
A new noindex proposal
So, today I improved my blog by adding more semantic markup, in hope that this will improve the indexability of my page. The blog now uses XHTM5 instead of XHTML1. It heavily uses
rel attributes, has some
<meta/> tags in the
<head/> area and properly uses
<aside/> and tons of other new HTML5 features. (I already wrote about it here)
This should help webcrawlers properly indexing this blog.
But here's another problem: The header (of course, properly marked up as a
<header/> tag) includes a cool (well, at least I think so...) random text that changes with every visit. Unfortunately crawlers seem to think, that this text is part of the actual content.
So I needed a way to tell a crawler to not index that one element.
Shitton of updates for the blog!
w00t! I've added quite a lot of updates to the blog:
A great talk from Rob Pike about concurrency and the Go programming language. Definietely worth the 30 minutes.
It provides throwaway chatrooms: A chatroom is identified by it's URL, it will be spawned when the first one enters the room (visits the URL) and is deleted when the last one leaves the room. Nothing is stored permanently and no login is required.
Here is my public installation
Some small Go libraries
I've published buzhash (a rolling hash implementation) and binproto (a binary protocol). Both were part of a larger project that I will probably never publish or finish. But perhaps these libraries will be useful for someone.
I've published a simple todo list webapp. I started this project to learn using the awesome Fat-Free Framework (I've already written about it on this blog).
To be a turing complete language means that anything can be constructed, but we can’t even vertically center a div yet.
I discovered the Fat-Free-Framework last week and fell in love with it. I am usually not a big fan of frameworks, since most of them enforce too many restrictions, but this one is really nice.
Cool idea for designing options in Go.
(found on /r/ProgrammerHumor)
So, my small
youtube-feed tool is really useful. I am not subscribed to any channels any more (since I prepare to delete my Google-Account) and I still get all the new videos from my favourite YouTubers. Great!
youtube-feed is a small tool I've written in Go to combine multiple YouTube user feeds into one. Since I want to cancel my YouTube account soon, I needed this program as a replacement for subscribing to channels.
What do you call a group of 8 hobbits?
I have made some improvements to biomed, my biome editor for Minecraft maps:
Dave Baggett describes the horror of hardware bugs. Very interesting read!
Updates for STE (and Ratatöskr)
Some more updates to STE:
I have updated STE, my PHP template engine.
I'm slowly moving away from Facebook. Most fanpages were either useless or could be easily replaced with an RSS/Atom feed or a newsletter subscription.
Unfortunately ruthe.de didn't offer any way of getting the latest cartoons via RSS or newsletter. So I build this simple Shell script.
I recently updated my CMS Ratatöskr.
I've written a web-based service that allows you to send yourself an email based on a schedule: mailremind.
Why? Because I often send myself an email to remind me of something and I thought it would be useful if I could send mails in the future or based on a schedule (e.g. useful for birthdays).
If you also think this is useful, you can have your own installation (it is quite easy to configure), or you can use my public mailremind installation: mailremind.silvasur.net