Skip to content

Steffen Vogel

116 posts by Steffen Vogel

A New Home for My Open Source Projects: Embracing Codeberg

Codeberg Migration

More than 14 years ago, I migrated my 26 open source code project to GitHub. Back then GitHub was a fresh and modern platform pushing the boundaries of collaborative software development. Over the years, however, my perspective on GitHub has changed significantly.

I have recently migrated my by now 79 repositories from GitHub to Codeberg, a decision driven by several significant factors.

Freeing a Xiaomi Humidifier from the Cloud

Home Assistant Logo

I recently moved into a new apartment which I used as an opportunity to make our home a little smarter. As a big open source supporter I built my smart home platform with Home Assistant of course.

Unfortunately, there are still far too few products that are directly compatible with Home Assistant. Especially in the area of humidifiers where I only found products that rely on a proprietary app or cloud from the manufacturer. Something that I would like to avoid at all costs. For one thing, such dependence is a certain form of planned obsolescence, as the product becomes useless as soon as the app loses its compatibility with new smartphone operating system versions or the manufacturer’s cloud is no longer operated.


Therefore, it was important for me to find a smart humidifier that integrates directly with my Home Assistant setup. To achieve this goal, I identified two options:

  1. Add sensors / actuators to a classic humidifier to make it smart.
  2. Replace the firmware of a smart humidifier with my own source code.

I decided to use the second approach, because it required less effort, since I would have had to implement my own firmware anyway.

This blog has joined the Fediverse

ActivityPub Logo
ActivityPub Logo.

My blog noteblok.net has joined the Fediverse. You can follow my posts via this new handle: stv0g@noteblok.net.

This has been made possible by the Wordpress ActivityPub Plugin. With the ActivityPub plugin installed, the WordPress blog functions as a federated profile, along with profiles for each author. For example, my blog-wide profile can be found at @blog@noteblok.net. Authors like myself, on the other hand, would have their individual profiles at @stv0g@noteblok.net.

The integration allows following the blog from your own Fediverse platform and account like Mastodon. I return you can also react and comment to my blog posts via simply replying with your existing Fediverse account.

Fritz!DNS - An authoritative DNS server for AVM FRITZ!Box routers

Fritz!Box
Fritz!Box.

In my home network, I am using an AVM FRITZ!Box Cable 6690. It handles DHCP, DNS, Wifi and recently also interfaces my home network via WireGuard to my servers.


Just like the venerable Dnsmasq AVM’s FRITZ!OS uses hostnames learned from its DHCP leases and makes them resolvable via its internal DNS server.

Unfortunately, this feature in FRITZ!OS has some limitations:

  1. The name of the DNS Zone is hard coded to fritz.box and can not be adjusted. Hence, the resolvable names have the following schema: myhostname.fritz.box
  2. The internal DNS server only supports recursive DNS looks. It does not act as an authoritative DNS server. Hence the local zone can not be delegated.
  3. AXFR zone transfers are not supported.

My solution to these shortcomings is Fritz-DNS which:

  • Is a small tool written in the Go programming language.
  • Is a small authoritative DNS server which serves A / AAAA resource records for local hosts connected to an AVM Fritz Box home WiFi router.
  • Can be used in a hidden master configuration as it supports AXFR zone transfers.
  • Uses the custom extension (X_AVM-DE_GetHostListPath) of the TR-064 Hosts SOAP-API as documented here to retrieve a list of local hosts.
  • Supports the generation of AAAA (IPv6) resource records based on the hosts MAC addresses using 64-Bit Extended Unique Identifier (EUI-64) and a configured unique local address (ULA) prefix.
  • Does not yet support PTR resource records (to be implemented…)
  • Is licensed under the Apache 2.0 license

You can find Fritz-DNS at Codeberg: /stv0g/fritz-dns .

Here is a small figure illustrating the interaction of Fritz-DNS with the Fritz!Box and other DNS servers / clients:

Fritz!DNS Architecture
Fritz!DNS Architecture.
Terminal window
$ fritz-dns
Usage of fritz-dns
-ipv6-ula-prefix string
Fritz Box IPv6 ULA Prefix (default "fd00::/64")
-pass string
FritzBox password
-port int
Listen port (default 53)
-soa-expire duration
SOA expire value (default 744h0m0s)
-soa-mbox string
SOA mailbox value
-soa-minttl duration
SOA minimum TTL value (default 1h0m0s)
-soa-ns string
Authorative DNS server for the zone
-soa-refresh duration
SOA refresh value (default 2h0m0s)
-soa-retry duration
SOA retry value (default 1h0m0s)
-ttl duration
default TTL values for records (default 5m0s)
-url string
FritzBox URL (default "http://fritz.box/")
-user string
FritzBox username (default "admin")
-zone string
DNS Zone (default "fritz.box.")

Aachen wird Transparent!

Ich möchte Stadtpolitik in Aachen für alle verständlich machen. Mein aktuellstes Projekt aachen-transparent.de ermöglicht es, die öffentlichen Informationen aus dem städtischen Ratsinformationssystem modern und benutzerfreundlich aufzubereiten. Dazu habe ich das bereits existieren Open-Source Projekt Meine-Stadt-Transparent erweitert und für die Bedürfnisse in Aachen angepasst.

Screenshot von aachen-transparent.de
Screenshot von aachen-transparent.de.

Aachen Transparent ist ein Projekt, dass ich ehrenamtlich im Rahmen des Open Data Labs Aachen ins Leben gerufen habe. Es versucht einige der Unzulänglichkeiten des Ratsinformationssystems der Stadt Aachen zu umgehen. Dazu nutzt es dessen öffentliche OParl Schnittstelle um die dort hinterlegten Informationen über eine moderne Oberfläche zugänglich zu machen.

A highly available WireGuard VPN setup

WireGuard Logo

WireGuard is a communication protocol and free and open-source software that implements encrypted virtual private networks (VPNs), and was designed with the goals of ease of use, high speed performance, and low attack surface.

Tinc Logo
Tinc Logo.

I’ve been using it in my home lab setup since about 2020. When, in the end of 2021, it was finally merged into the Linux mainline with release 5.9, I started to replace my former Tinc-VPN setup with it. Tinc-VPN is another great open source VPN solution. Unfortunately, its development has stalled over the last years which motivated me to look for alternatives. In contrast to WireGuard, Tinc runs as a user-space daemon and uses tun / tap devices which adds a significant processing overhead. Like WireGuard, it is also using UDP for tunneling data, but falls back to TCP in situations where direct datagram connectivity is not feasible. Another big advantage of Tinc is its ability to form a mesh of nodes and to route traffic within it when direct P2P connections are not possible due to firewall restrictions. At the same time, this mesh is also used for facilitating direct connections by signaling endpoint addresses of NATed hosts.

Tinc's mesh capability
Tinc's mesh capability.

This mesh functionality made Tinc quite robust against the failure of single nodes as usually we could route traffic via other paths.

To counteract this shortcoming, this blog post will present a highly available WireGuard setup using the Virtual Router Redundancy Protocol (VRRP) as implemented by the keepalived daemon.

That said, it is worth noting that this setup does will not bring back some of the beloved features of Tinc. Both meshing, the peer and and endpoint discovery features of Tinc are currently and will never be supported by WireGuard. Jason A. Donenfeld the author of WireGuard focused the design of WireGuard on simplicity, performance and auditability. Hence advanced features like the ones mentioned will only be available to WireGuard by additional agents / daemons which control and configure WireGuard for you. Examples for such are Tailscale, Netmaker and Netbird.

The setup presented in this post is a so called active / standby configuration consisting of two almost equal configured Linux servers running both WireGuard and the keepalived daemon. As the name suggest only one of those two servers will by actively handling WireGuard tunneling traffic while the other one stands by for the event of a failure or maintenance of the active node.

VRRP Wireguard Setup
VRRP Wireguard Setup.

Before get started some requirements for the setup:

  • 2 Servers running Linux 5.9 or newer.
  • A working Wireguard configuration.
  • A local L2 network segment two which both servers are connected.
  • Upstream connectivity without NATing via gateway connected to the network segment (usually provided by your internet or hosting provider).
  • An unused address to be used as Virtual IP (VIP) which roamed between the two servers by VRRP.

An important point is here the assumption that we are running both servers in the same switched network segment as this is a requirement for VRRP. We are also assuming that the upstream gateway performs no NATing. This guide covers only IPv6 addressing. However all steps can be also adapted or repeated for a dual stack or IPv4-only setup.

Here are some of the specifics for my setup which need to be adapted by you:

  • Server Key (same use by both servers)
    • Private: YIEDx+A2ONo5+uv3mrk/p7ileL3T5QQ8hleQK0IYEEI=
    • Public: XGubrkGtuECdvoykKeUiNMigk2onfLCPfEo9Im+vmx8=
  • Peer Key (In this example we only have a single peer)
    • Private: OIbpWVIVVBOtWfwkmXkFRN7Q/jBdfYtsGt7j97aHx1Q=
    • Public: 3NGl6gTOGs6ai0RE91VmVFgF+N4gw1EBG11KOeiKJAg=
  • Public Server Subnet: 2001:DB8:1::/64
    • Gateway: 2001:DB8:1::1
    • Virtual IP: 2001:DB8:1::2
    • Server A: 2001:DB8:1:::3
    • Server B: 2001:DB8:1::4
  • WireGuard Tunnel Subnet: 2001:DB8:2::1/64
    • Server: 2001:DB8:2::1 (same used by both servers)
    • Peer: 2001:DB8:2::2
  • Interface names
    • Wireguard: wg1
    • Upstream: eno1
  1. Prepare servers

    We start of preparing the two servers by installing WireGuard and keepalived:

    Terminal window
    sudo apt install keepalived wireguard-tools iproute2

    Next we configure a WireGuard interface on both servers using exactly the same configuration file at /etc/wireguard/wg1.conf:

    [Interface]
    Address = 2001:DB8:2::1/64
    PrivateKey = YIEDx+A2ONo5+uv3mrk/p7ileL3T5QQ8hleQK0IYEEI=
    ListenPort = 51800
    [Peer]
    PublicKey = 3NGl6gTOGs6ai0RE91VmVFgF+N4gw1EBG11KOeiKJAg=
    AllowedIPs = 2001:DB8:2::2/128
    PersistentKeepalive = 25

    Similarly, a reciprocal configuration file is needed on the client side which skip here for brevity. Before proceeding, we activate the interface on both servers:

    Terminal window
    systemctl enable --now wg-quick@wg1
    wg show wg1 # Check if interface is up
  2. Configuring Keepalived

    Create a configuration file for keepalived at /etc/keepalived/keepalived.conf

    global_defs {
    enable_script_security
    script_user root
    }
    # Check if the server the WireGuard interface configured
    vrrp_script check_wg {
    script "/usr/bin/wg show wg1"
    user root
    }
    vrrp_instance wg_v6 {
    interface eno1
    virtual_router_id 52
    notify /usr/local/bin/keepalived-wg.sh
    state BACKUP # use BACKUP for Server B
    priority 99 # use 100 for Server B
    virtual_ipaddress {
    2001:DB8:1::1/64
    }
    track_script {
    check_wg
    }
    }
  3. Create a notification script for keepalived at /usr/local/bin/keepalived-wg.sh

    #!/usr/bin/env bash
    TYPE=$1
    NAME=$2
    STATE=$3
    PRIO=$4
    WGIF=wg1
    case ${STATE} in
    MASTER)
    ip link set up dev ${WGIF}
    ;;
    BACKUP|FAULT|STOP|DELETED)
    ip link set down dev ${WGIF}
    ;;
    *)
    echo "unknown state"
    exit 1
    esac

    Now start the keepalived daemon:

    Terminal window
    chmod +x /usr/local/bin/keepalived-wg.sh
    systemctl enable --now keepalived
  4. Testing the fail over

    In our configuration, Server A has a higher VRRP priority and as such will be preferred if both servers are healthy. To test our setup, we simply bring down the WireGuard interface on Server A and observe how the VIP gets moved to Server B. From the WireGuard peers perspective not much changes. In fact no connections will be dropped during the fail-over. Internally, the clients WireGuard interface renegotiate the handshake. However, that step is actually not observable by the user.

    Run the following commands on Server A while alongside test the connectivity from the client side through the tunnel via ping -i0.2 2001:DB8:2::1:

    Terminal window
    # Check that keepalived has moved the VIP to interface eno1
    ip addr show dev eno1
    # Bring down the Wireguard interface
    wg-quick down wg1
    # Keepalived should now have moved the VIP to Server B
    ip addr show dev eno1

In my personal network, I operate a Interior Gateway Protocol (IGP) to dynamically route traffic within and also towards other networks. Common IGPs are OSPF, ISIS or BGP. In my specific case, both Servers A & B run the Bird2 routing daemon with interior and exterior BGP sessions.

So how does the WireGuard HA setup interoperates with my interior routing? Quite well actually. As my notify script (keepalive-wg.sh) will automatically bring up / down the interface, the routes attached to the interface will be picked up by Bird’s direct protocol.

I am also planning to extend my WireGuard agent cunīcu ( /cunicu/cunicu ) to support the synchronization of WireGuard interface configurations between multiple servers.

Surprisingly, the setup works by using Keepalived and does not require any iptables or nftables magic to rewrite source IP addresses. I’ve seen some people mentioning that SNAT / DNAT would be required to convince WireGuard to use the virtual IP instead of the server addresses. However, in my experience this was not necessary.

Another concern has been that the backup Wireguard interface still might attempt to establish a handshake with its peers. This would quite certainly interfere with the handshakes originated by the current master server. However, also this has not been proven to be the case. I assume the fact that our notify script brings down the WireGuard interface on the backup server causes them to cease all communication with its peers.

SSH Access for Netgear's Nighthawk M5 Mobile LTE/Router

SSH Logo

In my previous post, I demonstrated how to gain root access by enabling a Telnet daemon via the routers AT-over-TCP interface. In this post I will close this gasping security hole by replacing the Telnet with a Secure Shell (SSH) daemon. Netgear’s firmware does not ship with a SSH daemon itself. So we first build a statically linked Dropbear instead of the rather heavy OpenSSH daemon.

Having a detailed look at the Netgear Nighthawk M5 Mobile LTE/Router

Dr. Watson

After gaining root access to the device in the first post of this series, we will have a closer look at the device and its firmware.

This post is documenting some internals of the device which is not the most exciting stuff to read. I mainly collected it here for documentation purposes.

All information in this post has been collected from a device running firmware version NTGX55_12.04.12.00.

A 3D-printed wall mount for Netgear Nighthawk mobile 5G/LTE routers

I have recently designed and printed a wall mount for Netgear’s Nighthawk mobile 5G/LTE routers. More specifically a Nighthawk M5 (MR5200).

I have been inspired by an existing commercial wall mount for the Nighthawk M-series routers by FTS Hennig GmbH:

My inspiration: the wall-mount and antenna adapter from FTS Hennig
My inspiration: the wall-mount and antenna adapter from FTS Hennig.

Unfortunately, the mount is with a price tag of around 50 € rather expensive. So I decided to use our new lab 3D-printer and try do design it myself usings AutoDesk’s Fusion 360 software.

My own 3D printed holder is released under a creative commons license at Codeberg: /stv0g/3d-printing/netgear-m5-wall-mount

Gaining Root Access on Netgear Nighthawk Mobile 5G/LTE Routers

This blog posts covers the required steps to gain root access via Telnet on Netgear Nighthawk Mobile 5G/LTE Routers. Its the first post in a small series covering my experiences playing around with this device.

Last month I obtained one of Netgear’s latest mobile 5G routers, the Netgear Nighthawk M5 (model MR5200-100EUS) . Being one of the most expensive consumer 5G routers, I was lucky to get a fairly good second hand deal from eBay.

Netgear Nighthawk M5 mobile 5G/LTE Router
Netgear Nighthawk M5 mobile 5G/LTE Router.

Open-Data Lab Aachen

Aachener Rathaus
Aachener Rathaus.
Logo des Open Data Lab Aachen
Logo des Open Data Lab Aachen.

Im September letzten Jahres hat sich in Aachen das Open Data Lab mit einer virtuellen Kick-off Veranstaltung gegründet.

Im Open Data Lab wollen wir ehrenamtlich Projekte rund um Offene Daten in Aachen voranbringen. Wir suchen dazu Personen, die daran generell interessiert sind, ob Entwickler*innen, Designer*innen, Datenjournalist*innen aus Verwaltung, Politik und Gesellschaft.

Wir wollen Daten und Ideen zusammenbringen und daraus Projekte generieren.


GoSƐ - A terascale file-uploader

GoSƐ Logo
GoSƐ Logo.

GoSƐ is a modern and scalable file-uploader focusing on scalability and simplicity.

It is a little hobby project I’ve been working on over the last weekends.

The only requirement for GoSƐ is a S3 storage backend which allows to it to scale horizontally without the need for additional databases or caches. Uploaded files a divided into equally sized chunks which are hashed with a MD5 digest in the browser for upload. This allows GoSƐ to skip chunks which already exist. Seamless resumption of interrupted uploads and storage savings are the consequence.

And either way both upload and downloads are always directed directly at the S3 server so GoSƐ only sees a few small HTTP requests instead of the bulk of the data. Behind the scenes, GoSƐ uses many of the more advanced S3 features like Multi-part Uploads and Pre-signed Requests to make this happen.

Users have a few options to select between multiple pre-configured S3 buckets or enable browser & mail notifications about completed uploads. A customizable retention / expiration time for each upload is also selectable by the user and implemented by S3 life-cycle policies. Optionally, users can also opt-in to use an external service to shorten the URL of the uploaded file.

Currently a single concurrent upload of a single file is supported. Users can observe the progress via a table of details statistics, a progress-bar and a chart showing the current transfer speed.

GoSƐ aims at keeping its deployment simple and by bundling both front- & backend components in a single binary or Docker image. GoSƐ has been tested with AWS S3, Ceph’s RadosGW and Minio. Pre-built binaries and Docker images of GoSƐ are available for all major operating systems and architectures at the release page: /stv0g/gose (Releases) .

GoSƐ is open-source software licensed under the Apache 2.0 license.

Live Demo
GoSƐ Demo
GoSƐ Demo.
  • De-duplication of uploaded files based on their content-hash
    • Uploads of existing files will complete in no-time without re-upload
  • S3 Multi-part uploads
    • Resumption of interrupted uploads
  • Drag & Drop of files
  • Browser notifications about failed & completed uploads
  • User-provided object expiration / retention time
  • Copy URL of uploaded file to clip-board
  • Detailed transfer statistics and progress-bar / chart
  • Installation via single binary or container
    • JS/HTML/CSS Frontend is bundled into binary
  • Scalable to multiple replicas
    • All state is kept in the S3 storage backend
    • No other database or cache is required
  • Direct up & download to Amazon S3 via presigned-URLs
    • Gose deployment does not see an significant traffic
  • UTF-8 filenames
  • Multiple user-selectable buckets / servers
  • Optional link shortening via an external service
  • Optional notification about new uploads via shoutrrr
    • Mail notifications to user-provided recipient
  • Cross-platform support:
    • Operating systems: Windows, macOS, Linux, BSD
    • Architectures: arm64, amd64, armv7, i386

I consider the current state of GoSƐ to be production ready. Its basic functionality is complete. However, there are still some ideas which I would like to work on in the future:

Also checkout the Codeberg Issue Tracker /stv0g/gose (Issues) for a detailed overview.

Running a Xilinx hw_server as Docker Container

Dockerized Xilinx hw_server Setup
Dockerized Xilinx hw_server Setup.

This article describes the necessary steps to run a Xilinx hw_server as a Docker container.

Xilinx’s hw_server is a command line utility which handles JTAG communication between a Xilinx FPGA board and usually the Vivado IDE. It can be used to configure the FPGA bitstream, connect to the embedded logic analyzer cores (ILA) or perform debugging of processor cores via GDB and the Xilinx System Debugger (XSDB). The hw_server is usually used when those tasks shall performed remotely as the connection between Vivado or XSDB is established via TCP connection and allows us to run it on a remote system.

Running the hw_server as a Docker container has the benefit that its installation is simplified to starting a Docker container by running:

Terminal window
docker run \
--restart unless-stopped \
--privileged \
--volume /dev/bus/usb:/dev/bus/usb \
--publish 3121:3121 \
--detach \
ghcr.io/stv0g/hw_server:v2021.2

It also allows us to run the hw_server on architectures which are not natively supported by Xilinx such as the commonly used Aarch / ARM64 and ARMv7 architectures found in Raspberry Pis.

This is enabled by Dockers support for running container images for non-native architectures. I am using the aptman/qus Docker image ( /dbhi/qus ) to setup this user-mode emulation. The qemu-user-static (qus) image is a compilation of utilities, examples and references to build and execute OCI images (aka docker images) for foreign architectures using QEMU’s user-mode emulation.

Run the following commands to run the hw_server on a embedded device:

Terminal window
# Install docker
sudo apt-get update && sudo apt-get upgrade
curl -sSL https://get.docker.com | sh
# Start Docker
sudo systemctl enable --now docker
# Enable qemu-user emulation support for running amd64 Docker images
# *Note:* only required if your system arch is not amd64!
docker run --rm --privileged aptman/qus -s -- -p x86_64
# Run the hw_server
docker run --restart unless-stopped --privileged --volume /dev/bus/usb:/dev/bus/usb --publish 3121:3121 --detach ghcr.io/stv0g/hw_server:v2021.2

This setup has been tested with a Raspberry Pi 4 running the new 64-bit Debian Bullseye Raspberry Pi OS.

The pre-built Docker image for the hw_server of Vivado 2021.2 is available via:

/stv0g/xilinx-hw-server-docker (Packages)

Detailed instructions can be found at Codeberg: /stv0g/xilinx-hw-server-docker .

Encrypted credentials for Amazon AWS command line client

In this quick post I will show you how to use the password manager “password-store1 to securely store your credentials used by the Amazon Webservices command line client.

AWS CLI Logo
AWS CLI Logo.

The installation for Mac and Linux system is fairly easy:

Terminal window
pip install awscli

The credentials are stored as key-value pairs inside a PGP-encrypted file. Every time you call the AWS CLI tool, your keys will be decrypted and directly passed to the aws tool.

Use pass to add your keys in the store:

Terminal window
pass edit providers/aws

An editor opens. Use the following format:

User: stv0g
Access-Key: AKB3ASJGBS3GOMXK6KPSQ
Secret-Key: vAAABn/PMAksd235gAs/FSshhr42dg2D4EY3

Add the following snippet to your ~/.bashrc:

Terminal window
function aws {
local PASS=$(pass providers/aws)
local AWS=$(which aws)
# Start original aws executable with short-lived keys
AWS_ACCESS_KEY_ID=$(sed -En 's/^Access-Key: (.*)/\1/p' <<< "$PASS") \
AWS_SECRET_ACCESS_KEY=$(sed -En 's/^Secret-Key: (.*)/\1/p' <<< "$PASS") $AWS $@
}

Then use the cli tool aws as usual:

Terminal window
aws iam list-access-keys { "AccessKeyMetadata": [ { "UserName": "stv0g", ...`
  1. I covered password-store already a few times earlier: Use YubiKey and Password-store for Ansible credentials, Workshop: Security Token.

Use Yubikey and Password-store for Ansible credentials

I spent some time over the last months to improve the security of servers and passwords. In doing so, I started to orchestrate my servers using a configuration management tool called Ansible. This allows me to spin-up fresh servers in a few seconds and to get rid of year-old, polluted and insecure system images.

Ansible loves Yubico
Ansible loves Yubico.

My ‘single password for everything’ has been replaced by a new password policy which enforces individual passwords for every single service. This was easier than I previously expected:

To unlock the ‘paranoid’ level, I additionally purchased a Yubikey Neo token to handle the decryption of my login credentials in tamper-proof hardware. ‘pass’ is just a small shell script to glue several existing Unix tools together: Bash, pwgen, Git, xclip & GnuPG (obeying the Unix philosophy). The passwords are stored in simple text files which are encrypted by PGP and stored in a directory structure which is managed in a Git repository.

Yubikey Neo und Neo-n
Yubikey Neo und Neo-n.

There are already a tons of tutorials which present the tools I describes above. I do not want to repeat all of it. So, this post is dedicated to solve some smaller issues I encountered.

Workshop: Security Token

Der Open Source Arbeitskreis (OSAK) der Fachschaft FSMPI, veranstaltet nun zum zweiten Mal eine Crypto Party auf der sich Interessierte über Verschlüsselung und verwandte Themen informieren können.

Ich möchte hier die Gelegenheit nutzen um etwas Werbung für diese Veranstaltung zu machen. Genaue Infos findet Ihr unten im Flyer.

Dieses Mal wird es auch einen kleinen Workshop von mir geben:

„I know none of my passwords“

Ich werde in circa 20 Min eine kurze Übersicht über Security Tokens wie beispielsweise den Yubikey oder die OpenPGP Smartcard geben. Dabei wird der Fokus auf verschiedenen Anwendungsszenarien wie One-Time-Passwords, Logins, sowie E-Mail Verschlüsselung liegen.

Update: Hier sind die Vortragsfolien und das Handout:

Download:Präsentation
Download:Handout
Cryptoparty im Sommersemester 2015
Cryptoparty im Sommersemester 2015.

Casting between Qt and OpenCV primitives

OpenCV & QT
OpenCV & QT.

As a follow-up to the previous post, I’d like to present some code which I think might be helpful for other Qt / OpenCV projects as well.

This code was written for Pastie. Pastie is a piece of software I wrote as part my image processing seminar. It makes use of the well known libraries:

  • Qt for the graphical user interface
  • OpenCV for image processing and computer vision

I wrote a C++ header file to facilitate the co-operation of those two libraries. This file enables the conversion / casting of OpenCV and Qt types e.g.:

#include <QImage>
#include <cv/core.hpp>
QImage qimg("filename.png");
cv::Mat cvimg = toCv(qimg);

The source code is available at Codeberg: /stv0g/snippets/c/qcv_cast.h .

The following conversions are supported:

QImagecv::Mat
QTransformcv::Mat
QPointcv::Point2i
QPointFcv::Point2f
QRectcv::Rect2i
QRectFcv::Rect2f
QSizecv::Size

You can find some examples in the real code here: /stv0g/pastie/filters/pattern.cpp and here /stv0g/pastie/cast.h .

Seminar: Camera-based PCB Analysis for Solder Paste Dispensing

Mini Kossel 3D Printer
Mini Kossel 3D Printer.

The lectures during my last semester were largely focused on digital image processing. Combining this with the inspiration for 3D printing, I gathered through my trip though South Korea, resulted in the following seminar paper. Seminars are a compulsory part of our curriculum which I like due the self-contained work and the ability to pick an individual topic.

Over the past year, I’ve built my own Kossel 3D printer. The Mini Kossel is based on a novel parallel delta kinematic which was developed by Johann C. Rocholl, a Google engineer from Germany.

This paper is targeting the automation of solder paste dispensing onto printed circuit boards by using computer vision and RepRap robots.

Download:Presentation Slides
Download:Full Paper
Source Code

Bachelor Thesis: Extended Abstract

Almost fourteen months ago, I started working on my bachelor thesis. Although I finished it half a year ago, it’s still part of my work as a student research assistant.

During my initial work, most of the code was written for an internal research kernel. I’m now happy that we were able to port it to an open source kernel called eduOS: /RWTH-OS/eduOS ). This minimal operating system is used for practical demo’s and assignments during the OS course at my university. There’s much more I could write about. So this will probably be another separate blog post.

The motive for this article is an abstract I wrote for the student research competition of the ASPLOS conference which is held this year in Istanbul, Turkey. Unfortunately my submission got rejected. But as a nice side-effect, I’ve now the chance to present my work to an English audience as well:

Download:Extended Abstract (PDF)

noteblok.{de,net,org,dn42}

noteblok

Dies ist das neue Logo und Name meines Blogs.

Bisher gab es hier nur wenige persönliche Beiträge. Da ich das auch so beibehalten möchte, habe ich mich entschlossen meinen Namen aus dem Titel zu streichen. Vielleicht findet so auch mal der ein oder andere Gastbeitrag seinen Weg hierher.

World IPv6 Launch Badge

Mit dem neuen Namen hat sich auch die Domain geändert. Der Blog ist nun erreichbar unter noteblok.{de,net,org,dn42}. Über meine persönliche Domain gelangt man nun direkt zu ein paar Infos über mich.

Neben den neuen Domains sind nun auch alle Webseiten/Blogs über IPv6 erreichbar 😊.

dn42 Logo

Zudem ist der Blog auf über des dn42 Darknet erreichbar. Das dn42 ist ein dezentrales und dynamisches VPN Netzwerk. Es besteht aus einem Verbund von Freiwilligen Admins, die jeweils Peer-to-Peer Verbindungen über VPNs herstellen. Es baut damit als Overlay Netzwerk auf dem bestehenden Internet auf. Zudem nutzt das dn42 mit BGP, DNS, Whois die gleichen Protokolle wie das reguläre Internet.

Als Teil von (/dev/nulll) betreibe ich das Autonome System AS4242422428 und unterhalte Peerings mit anderen Knoten des dn42 Netzwerkes.

Hier ist noch ein Screenshot meines Blog aus dem Jahr 2014:

Screenshot noteblok.net vom 2014-12-22
Screenshot noteblok.net vom 2014-12-22.

tileLED

tileLED
tileLED.

Und schon wieder habe ich ein kleines Hardwareprojekt, das ich hier vorstellen möchte. Auf eBay bin ich auf diese günstige LED Dot-Matrix Displaymodule gestoßen. Auf einer Größe von 3x3cm besitzen sie 8x8 rote oder grüne LEDs, die per Multiplexverfahren angesteuert werden.

Für diese Module habe ich eine kleine Platine designed, die nicht größer ist als das Modul selber. Die LEDs werden über einen kleinen ATmega8 Mikrocontroller direkt angesteuert. Auf Konstantstromquellen habe ich hier zugunsten der Platinengröße verzichtet. Auch wenn diese Beschaltung den ATmega etwas überlastet, funktioniert es super.

Platinen Layout
Platinen Layout.

EAGLE Libraries: Raspberry Pi

Für mein neuestes Projekt habe ich mir die Mühe gemacht und meine EAGLE Bibliotheken aufgeräumt. EAGLE ist ein CAD Programm der Unternehmen Cadsoft, das vornehmlich im Elektronik/DIY Bereich zum Designen von Schaltplänen und Platinen eingesetzt wird.

In den letzten Jahren haben sich einige selbst erstellte Bibliotheken angesammelt, die ich hier nun gesammelt veröffentliche. Mit ihnen können die bereits mitgelieferte Datenbank von Bauteilen (Footprints und Symbole) erweitert werden.

Diese Bibliotheken und noch einige Skripte, Einstellungen und CAM Jobs findet ihr auf Codeberg: /stv0g/eagle .

Ein Layout mit dem RPi Shield
Ein Layout mit dem RPi Shield.

Interessant ist vielleicht noch die Raspberry Pi Bibliothek. Bisher hab es noch keine EAGLE Bibliothek mit der man einfach Shields (vergleiche auch Arduino) für den Board-Computer layouten konnte. Die Bibliothek enthält die genauen Abmessungen des Pi’s und die Belegung aller GPIO Stiftleisten. Aber die folgenden Bilder erklären das sicher viel besser.

Viel Spaß damit!

/_astro/Raspberry_Pi_Dimensions.Bc-6JOk8.png /_astro/humble.C0SUg3lm.png /_astro/humble2.Doukzx1U.png /_astro/layout.UOAIzrtX.png /_astro/package.D0F1OIng.png /_astro/symbol.W221lSoK.png

Give Away: fnordlichtmini Platinen

GPL v3 Logo

Für das fnordlichtmini (flm) von Alexander Neumann gibt es nun auch ein EAGLE CAD Layout: /stv0g/hardware/fnordlicht/fnordlichtmini_v4 . Zuvor war leider nur ein Schaltplan offen verfügbar. Gleichzeitig habe ich auch meine restlichen Hardware Projekte ( /stv0g/hardware ) aufgeräumt und sie unter der OSHW Lizenz GPL veröffentlicht.

Vielleicht habt ihr ja Lust ein kleines Ambilight zu basteln? Ich habe noch ne Menge der Platinen übrig, die ich gerne in Aachen verschenken oder tauschen würde. Sind dir LEDs sind dir zu langweilig? Ich hab auch noch andere Platinen übrig…

/_astro/OpenHardwareLogo.Bu4nXpNz.png /_astro/flm_layout.BYPUw9gY.png /_astro/flm_night.BZ1NOriH.jpg /_astro/flm_platinen.CH4-XI7N.png

In meinen älteren Beträgen (hier und hier) gibt es auch noch ein paar kleine Anregungen was man alles mit dem flm so anstellen kann.

breadBUG

breadBUG ist ein kleines Mikrocontroller Modul, das direkt auf ein Breadboard aufgesteckt werden kann. Es ist als Prototyping-Werkzeug für tägliche Basteleien gedacht.

Es fasst das für den Mikrocontroller nötige “Vogelfutter” auf einer kleinen Platine zusammen:

  • ATmega8 Controller
  • 16 MHz Quarz und Keramikkondensatoren
  • 5 V Festspannungsregler
  • Reset Taster
  • ISP Stecker
  • LED zur Spannungsüberwachung

breadBUG ist während meiner Arbeit für die Mikrocontroller-AG des MMIs entstanden. Einige Teilnehmer wünschten sich ein einfaches, kleines und günstiges Modul, das sie als Alternative zu dem von uns verwendeten Evaluation Board für eigene Projekte nutzen können.

Fast alle von uns in der AG verwendeten Erweiterungsmodule sind daher Pin-kompatibel mit dem “breadBUG” Board. Bis auf den Controller selber haben wir nur Through-hole Komponenten verwendet um den Aufbau auch für Einsteiger möglichst einfach zu halten.

Das Board hat etwa eine Größe von 2.5x5 cm, sodass im Mehrfachnutzen genau zwei Boards auf eine 5x5cm Platine von seeedstudio.com passen. Damit liegt der Preis für eine einzelne Platine bei weniger als 50 Cent.

Platinen Layout des breadBUG
Platinen Layout des breadBUG.

EAGLE Schaltplan, Layout und Gerber Dateien gibt es auf Codeberg: /stv0g/hardware/breadBUG/v1 .

Mikrocontroller AG

Vor drei Jahren war ich selber Teilnehmer der Mikrocontroller AG und habe diese dann für die vergangenen zwei Jahre mit Hilfe zweier weiterer Kommilitonen, Markus Hamm und Mats Markus, geleitet.

Als Abschluss meiner dortigen Arbeit schreibe ich nun meinen Bericht und möchte diesen hier kurz zusammenfassen. Den kompletten Tutoriums Bericht könnt ihr euch hier herunterladen:

Download:Tutoriums Bericht Mikrocontroller AG

Das Institut für Mensch-Maschine-Interaktion (MMI) der RWTH bietet für Studenten des zweiten Semesters eine freiwillige AG zum Einstieg in die Mikrocontroller Programmierung an. Diese verknüpft theoretische Grundlagen der Vorlesung “Grundgebiete der Informatik 2” von Prof. Roßmann mit praktischen Beispielen und Aufgaben aus dem Bereich der Mikrocontroller. Es handelt sich um eine freiwillige Veranstaltung, die für die Teilnehmer nicht als Studienleistung anerkannt werden kann. Wie auch in der Vorlesung werden die ATmega Mikrocontroller der Firma Atmel verwendet.

fnordstripe

fnordstripe Modul
fnordstripe Modul.

In diesem und folgendem Beitrag geht es wieder um fnordlichter. Ja genau, ich habe schon vor einem Jahr mal darüber geschrieben.

fnordlichter sind kleine LED Module die über einen gemeinsamen Bus angesteuert werden können. Ich nutze diese Module zur intelligenten Beleuchtung unserer Wohnung. Sie können uns über neue Mails, den aktuellen Stromverbrauch, das Wetter oder den Serverstatus benachrichtigen oder einfach als Stimmungs-Licht oder Party-Beleuchtung genutzt werden.

Da die einzelnen Module leider nicht genügen um damit mein ganzes Zimmer zu beleuchten, habe ich mich entschieden für diesen Zweck eigene Hardware zu entwickeln.

Wie der Name dieses Betrages es bereits andeutet können meine fnordstripe Module ganze Bänder/Streifen von LEDs ansteuern. Ausgehend von dem fnordlichtmini Design habe ich die LEDs und Konstantstromquellen durch drei MOSFETs ersetzt, die jeweils einige hundert LEDs betreiben können. Im Bild oben wurden die MOSFETs aus Platzgründen auf der Unterseite der Platine verlötet.

Logic Analyzer

Logic traces on a computer screen
Ein Salea Klon
Ein Salea Klon.

Für Einsteiger können die ersten Schritte beim Basteln mit Mikrocontrollern häufig etwas frustrierend sein. Ja, das ist leider auch meine eigene Erfahrung. Der Fehler liegt dann meist im Verborgenen: Wackelkontakte, eine instabile Spannungsversorgung oder Softwarefehler helfen kann hierbei nur viel Geduld und geeignete Messgeräte. Dass dies aber nicht immer direkt ein teures Oszilloskop sein muss, möchte ich in diesem Beitrag zeigen.

Ich konzentriere mich dabei auf einige fast baugleiche Geräte: Saleae Logic & USBee AX. Beide basieren auf dem gleichen Mikrocontroller, dem Cypress FX2, und werden per USB an den Rechner angeschlossen. Bei eBay, AliExpress und co. sind sie für unter 10 € erhältlich.

transWhat

Die Telefonvermittelung bei den Simsons
Die Telefonvermittelung bei den Simsons.

transWhat ist ein XMPP Transport, der den WhatsApp Messenger in das Jabber Netzwerk einbindet.

Das Gateway simuliert dabei serverseitig die normale WhatsApp App von Android beziehungsweise iPhone. Der User benötigt nur noch einen normalen XMPP Client wie beispielsweise Adium, Gaijm, IM+ oder Pidgin. Damit ist es nun möglich WhatsApp auf nahezu allen Geräten und Betriebssystemen einzusetzen. Ich kann transWhat sehr in Kombination mit Pidgin auf Desktops und Laptops und mit IM+ auf Tablets empfehlen 😊.

Alle Details, Serverdaten, Logins, Tipps und Tricks findet ihr hier im Wiki.

Aus verschiedenen Gründen werde ich den Code nicht veröffentlichen sondern das Gateway nur als Service anbieten.

Ich habe mich nun doch dazu entschieden den Quelltext freizugeben. Er ist auf Codeberg zu finden: /stv0g/transwhat .

Nach dem Break gibt’s noch ein paar technische Details und Informationen zur Umsetzung.

calcelestial

Planets of the Solar System

/stv0g/calcelestial ist ein kleines Linux-Tool zum Berechnen von Auf- und Untergangszeiten sowie der Position sämtlicher Planeten unseres Sonnensystems.

Es ist der Weiterentwicklung von /stv0g/sun , das ursprünglich als kleines Bash-Skript für meinen Router startete. Mittlerweile ist das Tool zu einem weit umfangreicherem Werkzeug gewachsen, welches nicht mehr nur die Auf- und Untergangszeit der Sonne berechnen kann:

Es sind mit dem Mond, Mars, Neptun, Jupiter, Merkur, Uranus, Saturn, Venus und Pluto eine Menge neuer Planeten dazugekommen. Auch kann nun die Position dieser Himmelskörper zu jedem beliebigen Zeitpunkt oder dem Auf- und Untergang berechnet werden.

Nun bin ich selber kein kleiner Hobby-Astronom, sodass ich diese ganzen Berechnungen aus dem Ärmel schütteln könnte. Stattdessen nutze ich die Bibliothek libnova. libnova benutzt die sehr genauen Algorithmen “Variations Séculaires des Orbites Planétaires” (kurz VSOP-87), die Pierre Pratagnon 1987 entwickelte.

Terminal window
$ calcelestial
Usage:
calcelestial [options]
Options:
-p, --object calc for celestial object: sun, moon, mars, neptune,
jupiter, mercury, uranus, saturn, venus or pluto
-H, --horizon calc rise / set time with twilight: nautic, civil or astronomical
-t, --time calc at given time: YYYY-MM-DD [HH:MM:SS]
-m, --moment calc position at moment of: rise, set, transit
-n, --next use rise, set, transit time of tomorrow
-f, --format output format: see strftime (3) for more details
-a, --lat geographical latitude of observer: -90° to 90°
-o, --lon geographical longitude of oberserver: -180° to 180°
-q, --query query geonames.org for geographical coordinates
-z, --timezone override system timezone
-u, --universal use universial time for parsing and formatting
-h, --help show this help
-v, --version show version
A combination of --lat & --lon or --query is required.
Please report bugs to: post@steffenvogel.de

Die einfachste Variante nutzt das Unix Tool at:

Terminal window
echo ~/bin/enable-lightning | at $(calcelestial -p sun -m set -q Frankfurt -H civil)

Mit folgenden Cronjobs, lässt sich dieses Prinzip auch leicht auf andere Anwendungen übertragen:

0 0 * * * echo 'fnctl stop && fnctl fade -c 000000' | at $(calcelestial -m rise -p sun -q Aachen)
0 0 * * * echo 'fnctl start' | at $(calcelestial -m set -p sun -q Frankfurt)

Mit dem Tool nvram-wakeup, lässt sich so beispielsweise der Rechner jeden Tag 10 Minuten for Sonnenaufgang automatisch starten:

Terminal window
nvram-wakeup -s $(date -d "-10 min $(calcelestial -m rise -p sun -q Berlin)" +%s)

Oder möchtest du deinen Rechner nach Sonnenuntergang automatisch herunterfahren?

Terminal window
shutdown $(date -d +10 min $(calcelestial -m rise -p sun --lat=50.55 --lon=-6.2) +%H:%M)

Die aktuelle Position des Mondes kann beispielsweise so bestimmt werden:

Terminal window
calcelestial -p moon -q Aachen -f "az: §a alt: §h"

Detailiertere Dokumentation findet ihr in der Manpage calcelestial(1).

calcelestial ist wie immer auf Codeberg verfügbar /stv0g/calcelestial .

mountL2P: Mount L2P Shares on Linux

l2p-3d-klein

Vielleicht kennt ihr Sync-my-L2P? Es ist ein kleines Tool, das automatisiert Dateien vom Online Lernportal der RWTH herunterlädt und syncronisieren kann.

Eigentlich eine super Sache! Entgegen meiner ursprünglichen Erwartung ist das Tool auch unter Linux lauffähig. Ich habe mich trotzdem dazu entschieden das ganze etwas anders, aus meiner Sicht deutlich simpler, zu lösen.

Mein Skript nutzt die Möglichkeit einzelne Microsoft Sharepoint Ordner (hier: L2P-Lernräume) via WebDav einzubinden.

Dazu gibt es unter Linux zwei Varianten:

  1. [davfs2](https://savannah.nongnu.org/projects/davfs2 (nutzt FUSE, kompatibel mit mount und fstab)
  2. gvfs (stark in GNOME & Nautilus integriert, einfach)

Die zweite Variante ist für GNOME Nutzer deutlich einfacher, da hier nur eine entsprechende URI in die Adresszeile des Dateimanagers eingegeben werden muss.

Mein Tool hilft euch diese URIs zu finden, indem es sich unter eurem Namen im L2P einloggt und nachsieht in welchen Lernräumen ihr registiert seid.

Das Skript ist auf Codeberg verfügbar: /stv0g/snippets/bash/mount.l2p.sh .

Terminal window
$ mountl2p.sh
usage: mountl2p.sh [-f FORMAT] [-s SEMESTER] [-u L2P_USER] [-p L2P_PASS]
FORMAT is one of 'gvfs' or 'fstab'
SEMESTER is an optional regex to filter the semester
L2P_USER is your L2P account name like 'sv123242'
L2P_PASS is your L2P account password

Um schnell auf die aktuellen Lernräume zugreifen zu können, bietet es sich an diese als Lesezeichen im Dateimanager zu registrieren:

Terminal window
./mountl2p.sh -f gvfs -s "ws12|ss12" -u sv111090 >> ~/.gtk-bookmarks
L2P WebDAV Mount
L2P WebDAV Mount.

Mikrocontroller & Elektronik CheatSheet

Daniel

Wie war nochmal die Pinbelegung des Festspannungsreglers? Wie stark darf ich die Pins des Mikrocontrollers belasten? Wie viel Volt fallen an dieser LED ab?

Häufig sind es diese kleine Fragen, die gerade Anfänger den Einstieg in die Welt Elektronik oder Mikrocontroller erschwert.

Um diesen etwas zu erleichtern und auch den erfahrenen Bastlern einen Spickzettel zur Verfügung zu stellen, habe ich folgendes CheatSheet zusammengestellt:

Download:Mikrocontroller CheatSheet

Anmerkungen, Hinweise zu Fehlern oder Ergänzungen nehme ich gerne auf. Bitte kontaktiert mich dazu einfach.

Cron Jobs für Sonnenauf- & untergang

Nicht selten kommt es mal vor, dass sich ein Rechner nach astronomischen Zyklen orientiert. Die zur Berechnung der Osterfeiertage häufig verwendete Gaußsche Osterformel basiert so z.T. auf der Mondgleichung.

Unser Problem stellte sich etwas anders dar: Die LED-Flurbeleuchtung in unserem Flur wird durch den Router geregelt und lief bisher in der Regel 24/7. Mit dem hier vorgestellten Programm haben wir es nun geschafft die Laufzeit auf die Nachtstunden zu begrenzen, indem wir die von unserer geografischen Position abhängige Sonnenuntergangszeit nutzen um die Lampen erst bei Dämmerung einzuschalten.

UPDATE: Ich habe nochmal etwas Arbeit in das Tool investiert und es in ein eigenes Projekt ausgelagert. Das neue Tool liefert wesentliche genauere Ergebnisse und mehr Funktionen. Zu finden ist es hier: calcelestial.

Das neue Tool besitzt eine Reihe weiterer nützlicher Funktionen:

Terminal window
$ sun
usage: sun mode [options]
mode is one of: rise, set, noon, daytime, nighttime
following OPTIONS are available
-t, --twilight use special twilight (nautic|civil|astro)
-d, --date calculcate for specified date (eg. 2011-12-25)
-f, --format output format (eg. %H:%M:%S)
-a, --lat geographical latitude (-90° to 90°)
-o, --lon geographical longitude (-180° to 180°)
-q, --query query geonames.org for geographical position
-z, --zone use timezone for output
-h, --help show this help
-v, --version show version
A combination of --lat, --lon or --query is required!

Die einfachste Variante nutzt das Unix Tool at:

Terminal window
echo ~/bin/enable-lightning | at $(sun set -q Frankfurt -t civil)

Mit folgenden Cronjobs, lässt sich dieses Prinzip auch leicht auf andere Anwendungen übertragen:

0 0 * * * echo 'fnctl stop && fnctl fade -c 000000' | at $(sun rise -q Aachen)
0 0 * * * echo 'fnctl start' | at $(sun set -q Frankfurt)

Mit dem Tool nvram-wakeup, lässt sich so beispielsweise der Rechner jeden Tag 10 Minuten for Sonnenaufgang automatisch starten:

Terminal window
nvram-wakeup -s $(date -d "-10min $(sun rise -q Berlin)" +%s)

Oder möchtest du deinen Rechner nach Sonnenuntergang automatisch herunterfahren?

Terminal window
shutdown $(date -d +10min $(src/sun set --lat=50.55 --lon=-6.2) +%H:%M)

HIDeKey

HIDeKey USB Security Token
HIDeKey USB Security Token.

Als Abschlussprojekt und Vorbereitung auf meine Betreuer Tätigkeit für die Mikrocontroller-AG des MMI’s habe ich mich näher mit dem USB-Bus und dem darauf aufbauenden HID-Protokoll befasst.

HIDeKey ist ein kleiner USB-Stick, der als HID-Tastatur vom Rechner erkannt wird und beliebge Zeichenketten und Tastenkombinationen an den Host-Rechner senden kann.

Mein Ziel war es ein kleinen Hardware-Dongle zu entwickeln welcher Passwörter, TANs und Onetime-Tokens direkt an jeden beliebigen Rechner senden kann. Meine Passwörter sind im verschlüsselt EEPROM des Mikrocontrollers gespeichert. Beim Drücken, des Tasters auf dem Stick, wird das Passwort eingegeben.

Als Hardware nutze ich die zuvor vorgestellten USBasp Programmieradapter aus China, deren Firmware ich durch eine eigene ersetzt habe. Mit einem zusätzlichen Taster lässt sich so über ein kleines Menü zwischen 10 User-Passwort-Kombination wählen.

Neue Passwörter können mit einem kleinen Konsolen-Programm direkt über den Rechner einprogrammiert werden.

HIDeKey soll auch zur Generierung von One Time Passwords (OTP) genutzt werden können. Da er sich wie ein gewöhnliche USB-Tastatur verhält, kann er auch unterwegs am Schlüsselbund in Internet-Cafes und Rechner-Pools genutzt werden.

Quelltext und Schaltpläne gibt auf Codeberg: /stv0g/hidekey .

In meinem Wiki ist auch noch etwas Dokumentation gesammelt.

HIDeKey ist wie die meisten meiner Projekte als OpenSource veröffentlicht. Ich freue mich über jede Verbesserung, Erweiterung oder andere Beiträge zu diesem Projekt 😊.

CampusOffice Kalender synchronisieren

Campus Office & Google Kalender

Campus Office ist unser Studienplaner an der RWTH. Über ihn stellen wir uns unseren Stundenplan zusammen und melden uns zu Prüfungen an. Campus Office besitzt auch einen einfachen Kalender, der alle Termine des aktuellen Semesters individuell für jeden Studenten zusammenfasst. Glücklicherweise kann dieser Kalender auch im iCalendar-Format exportiert werden.

Leider ist jedoch keine automatische Synchronisation mit Google, Outlook & co möglich, da sich jeder Student zuvor mit seinen Daten angemeldet haben muss. Um dieses Problem zu umgehen habe ich ein kleines Skript geschrieben, welches als Proxy fungiert und diese Anmeldung übernimmt.

Folgende URL kann beispielsweise im Google-Kalender abonniert werden:

http://t0.0l.de/snippets/php/campus/cocal.php?u=[matrikelnr]&p=[passwort]

Alternativ kann man sich über das Frontend das Passwort in der URL auch noch etwas verschleiern lassen:

http://t0.0l.de/snippets/php/campus/cocal.php?hash=<base64_encode(matrikelnr + ':' + passwort)> => http://t0.0l.de/snippets/php/campus/cocal.php?hash=MzA0OTU3OmFzZGZzZGY=

So habe ich nun alle meine Uni-Vorlesungen, Übungen und Klausuren in meinem Android-Smartphone ohne mich jemals wieder um die Synchronisierung kümmern zu müssen.

Das 3 € ATmega Developement Board

USBasp Clone
USBasp Clone

Für gerade mal 2,95 € bieten chinesische Händler einen Klon des In-System-Programmers USBasp von Thomas Fischl auf eBay an. Das Board wurde ursprünglich zum Programmieren von AVR Mikrocontrollern entwickelt und basiert selbst auf einem ATmega8 Controller. Das Board bietet folgende Features, die auch für andere Zwecke genutzt werden können:

  • Software USB mit V-USB
  • Stromversorgung über Rechner
  • wahlweise 5V oder 3.3V
  • 2 LEDs
  • 1 Jumper
  • 6 IO-Pins (inklusive UART)

Dieses Angebot ist preislich unschlagbar. Es gibt kein anderes megaAVR Board, das inklusive Versandkosten für unter 3 € zu haben ist. Auch ein Selbstbau mit den günstigsten Bauteilen ist bei kleineren Stückzahlen (< 50) weit teurer. Fertige Leerplatinen sind aber auch über eBay verfügbar.

Der günstige Preis hat aber auch einen Nachteil: Mitunter muss man einen Monat warten, bis der Stick im eigenen Briefkasten liegt. Dafür gibt es in der REgel keine Probleme beim Zoll 😉.

Zusammenfassung: Grundgebiete der Informatik 3

Petri-Netz

Auch im dritten Semester hatten wir wieder eine Grundlagenvorlesung Informatik. Im Vergleich zu letztem Jahr, war diese leider weniger interessant:

  • balancierte Bäume
  • konvexe Optimierungsprobleme
  • Multi-Prozessorsysteme
  • OSI-Layer

Glücklicherweise handelt es sich um eine Kofferklausur. Das heißt man darf außer elektronischen Geräten so ziemlich alles mit in die Prüfung nehmen 😉.

Aber lasst euch nicht davon täuschen: einfacher wird es dadurch leider nicht. Die Klausur war so überladen, dass man zum Nachlesen im Skript praktisch gar keine Zeit hatte.

Da war es ganz praktisch ein Inhaltsverzeichnis des Skriptes und eine knackige Zusammenfassung dabei zu haben. Diese möchte ich hier mit euch teilen:

Download:Inhaltsverzeichnis
Download:Zusammenfassung

elektro:camp(«2012.05»)

Flyer
Flyer.

Mittlerweile zum vierten Mal seit zwei Jahren findet das elektro:camp nun bereits statt. Diesmal wird es von @justinotherguy (volkszaehler.org) organisiert und findet am 4. und 5. Mai in der Hochschule Offenburg statt. Thematisch bleibt sich das 2-tägige Barcamp treu. Geplant sind neben den offenen Vorträgen zu intelligenten Stromnetzen & Häusern auch Workshops und Zeit zum Basteln und diskutieren.

Offizieller Flyer
Offizieller Flyer.

Neben dem volkszaehler.org Projekt gesellen sich nun auch erstmals Gäste eines weiteren Open-Source Smart-Metering Projekts. Wir freuen uns auf OpenEnergyMonitor.

Schreibblockade?!

So, nun geht es auch hier wieder weiter! Nach 7 Monaten Pause neigt sich auch mein dritten Semester an der RWTH nun dem Ende entgegen und ich möchte hier wieder etwas regelmäßiger schreiben!

Dass es hier lange keine Beiträge gab, sollte nicht darauf schließen lassen, dass ich nichts zu berichten hatte 😉. In den vergangenen Monaten hat sich viel getan. Ich habe unter anderem an vzlogger und HIDeKey gewerkelt. Ab diesem Semester arbeite arbeite ich beim Institut für Mensch-Maschine-Interaktion. Dort betreue ich die Mikrocontroller AG und das Praktikum Informatik 1. Den Blog habe ich mal etwas aufgeräumt nutze nun Amazon Cloudfront als CDN.

In den nächsten Beiträgen möchte ich euch Erlang, eine funktionale Sprache zur parallel Programmierung, vorstellen und über meine ersten Erfahrungen mit digitalen Schaltungsentwurf auf FPGA’s berichten.

RWTH Rant
RWTH Rant.

GitHub Migration

Source: https://octodex.github.com

Heute habe ich meine 27 git-Repositories auf Github ( /stv0g ) umgezogen. Ich habe mich entschlossen sie so einer größeren Öffentlichkeit zugänglich zu machen und als zusätzliches Backup auf meinem Server zu spiegeln.

Seit kurzem hat github seine neue API v3 veröffentlicht. Auf dieser aufbauend habe ich ein PHP Script geschrieben, welches meine existierenden Repositories bei github anlegt und migriert.

  1. Das Script in das Wurzelverzeichnis aller Repositories ablegen
  2. github Username und Passwort im Skript anpassen
  3. php github.php

Das Script ist auf Codeberg verfügbar: /stv0g/snippets/php/github.php .

Ein paar weitere Features des Skriptes umfassen::

  • Es wird automatisch ein entsprechende github Remote im Repository hinzugefügt
  • Alle in der Datei gitweb.projects gelisteten Repositories werden als öffentlich markiert
  • Befindet sich im Repository eine Datei description wird deren Inhalt übernommen
  • Per Exclude-Filter können bestimmte Repositories ausgeschlossen werden

transcode

Digital Logic Diagram
Assembler code

Ich sitze im Zug nach Hause. Gerade komme ich von der letzten Vorlesung des zweiten Semesters: Informatik. Eigentlich bin ich auf dem Weg in die Semester-”Ferien”, ständen da nicht für den nächsten Monat noch 4 Klausuren in meinem Kalender 😉.

Informatik, Grundlagen des Digitalrechners. Klingt eigentlich recht trocken. Trotzdem ist es klar mein Favorit unter den Fächern dieses Semesters. Als Ergänzung zur Vorlesung richtete unser Professor einen kleinen Wettbewerb aus. Mein Beitrag zum Students Englightment Award ist ein Compiler Frontend für den GNU Compiler der Atmel AVRs.

Teil der Vorlesung war die Einführung des Mikrocontrollers ATMega8 von Atmel und dessen Programmierung mit Assembler. Dabei lernten wir zuerst die Schaltungstechnischen Grundlagen und die Minimierung von Schaltnetzen. Anschließend sind wir auf den Aufbau der Zentralen Recheneinheit eingegangen (Steuerwerk, ALU).

transcode kompiliert & assembliert ANSI C und Assembler in Maschinencode und umgekehrt. Dabei wird mit Hilfe von Debugging Informationen ein Bezug zwischen Zeilen im C-Code und den Mnemonics hergestellt. Durch Auswählen von Zeilen werden Bezüge direkt durch Hervorhebungen dargestellt. Für die Darstellung des Maschinencodes lässt sich zwischen binär, dezimal & hexadezimaler Form wählen.

elektro:camp(«2011.5»)

Wie letztes Jahr steht dieses Jahr wieder ein elektro:camp an.

elektro:camp 2011 in Stuttgart
elektro:camp 2011 in Stuttgart.

Nachdem wir uns vergangenen Oktober gemeinsam beim Fraunhofer ITWM in Kaiserlautern getroffen haben, geht es dieses Jahr nach Stuttgart in die Hochschule der Medien:

Freitag 27. + 28. Mai 2011, Hochschule der Medien, Stuttgart.

Zwei Tage lang treffen sich Entwickler/Hacker & Interessierte um über

  • Smart Metering
  • Home Automation
  • Renewable Energy
  • Home Displays & User Interfaces

zu diskutieren und in Form eines Barcamps kleine Vorträge zu halten. Ursprünglich wurde geplant das Camp jedes Jahr zu veranstalten. Mit dem Treffen im Mai läuft es vielleicht sogar bald auf einen halbjährigen Turnus hinaus 😉.

Aus aktuellem Anlass wird es hoffentlich auch eine Diskussion über Geigerzähler und den Aufbau eines unabhängigen Sensornetzwerkes geben.

Neben flukso.net und mysmartgrid.net wird auch unser Projekt, volkszaehler.org, wieder dabei sein.

Ich freue mich euch dort zu sehen 😉!

ROCK YOUR LIFE! in Aachen

ROCK YOUR LIFE! Logo

Über die Hälfte der Studierenden haben in ihrer Familie einen akademischen Hintergrund. Wir denken, dass auch sozial benachteiligte Schüler das Recht haben, ihre Potentiale zu entfalten und Chancen zu nutzen!

Dabei wollen wir Hauptschüler durch individuelle Coaching Beziehungen mit Studenten unterstützen.

Unsere Vision ist eine Gesellschaft, in der

  • Bildungsgerechtigkeit,
  • soziale Mobilität und
  • Integration

Realität sind.

Zusammen mit 9 weiteren Gründungsmitgliedern haben wir dazu den ROCK YOUR LIFE! Standort Aachen gegründet. Wir sind eingetragener Verein und Teil des Deutschland weiten Social Franchising Netzwerkes.

Wenn du Lust hast dich sozial zu engagieren, freuen wir uns dich bei einem unserer wöchentlichen Treffen am Mittwoch kennen zu lernen (aachen@rockyourlife.de). Wir suchen noch begeisterte Mitstreiter für die Organisation unseres Standortes. Werde Teil der Bewegung und sei einer der Ersten in Aachen.

Wir freuen uns auf dich 😉!

Willst du nur auf dem Laufenden bleiben kannst du dich gerne in unseren Newsletter eintragen.

Klausurvorbereitung: MMET

Square Wave

MMET: Das steht für Mathematische Methoden der Elektrotechnik und ist die erste Klausur meines Studiums. Glücklicherweise dürfen wir ganz offiziell einen “Spicker” benutzen. Ein DIN A4 Blatt beidseitig. Gedruckt oder handgeschrieben.

Es geht hauptsächlich um Signale, Systeme, FIR-Filter und Fourier Transformationen. Ich habe mir für die Klausur mal alle Definitionen mit LaTeX zusammengetragen. Das Formelblatt gibt es auf uni.ist.hirnlos.net.

Morgen ist die Klausur. Vielleicht können ja die folgenden Jahrgänge etwas damit anfangen 😉.

Download:Definitionen & Plots
Download:Formelblatt & MATLAB (nicht von mir)

Die LaTex Version gibt es auf Anfrage…

Inner workings of UNI-TREND UT61E Digital Multimeter

DMM IC (Cyrustek ES51922 Peak)
DMM IC (Cyrustek ES51922 Peak).

Ole hat mich in einem älteren Beitrag auf das Innenleben des “UNI-TREND UT61E Digital Multimeter” aufmerksam gemacht. Ole suchte nach einer Möglichkeit die serielle Datenübertragung zu deaktivieren. Ich schlug vor das Multimeter zu öffnen und nach einem Datenblatt des verwendeten IC’s zu suchen.

Das Multimeter besitzt einen Cyrustek ES51922P (P für Peak, Datenblatt ist verlinkt). Dessen Funktionalität geht etwas über die angegeben Features des UNI-TREND UT61E hinaus. So könnte man durch kleinere Modifikationen auch noch Temperatur messen, das Multimeter kalibrieren oder als Frequenzzähler nutzen.

Da ich derzeit diese Funktionen nicht benötige, entschied ich mich erst einmal hier nichts zu modifizieren. Aber vielleicht ist ja jemand Anderes auf der Suche nach genau diesen Features..

Das Datenblatt ist in verständlich in Englisch verfasst und enthält auch eine Spezifikation des seriellen Protokolls. Es ergänzt so die von Henrik Haftmann erarbeitete detaillierte Beschreibung des Protokolls,

Hier noch eine paar Bilder der Innereien (man könnte sie fast zum Nachbau verwenden 😉).

/_astro/DSC00343.Cjx5e0-A.jpg /_astro/DSC00347.BTXjFyiu.jpg /_astro/DSC00351.66qg4U3s.jpg /_astro/DSC00354.CN4455MI.jpg /_astro/DSC00355.D6V_435H.jpg /_astro/DSC00356.DBK-Kt8q.jpg /_astro/DSC00358.BG1Ise3E.jpg /_astro/DSC00360.DEERG2_U.jpg

PS: Die serielle Ausgabe ist durch das Ziehen von Pin 111 auf Masse permanent aktiviert und lässt nicht auch nicht Abschalten. Höchstens das Durchtrennen der Leiterbahn um Pin 111 würde Abhilfe schaffen.

volkszaehler.org Zählerbox

Die volkszaehler.org Zählerbox
Die volkszaehler.org Zählerbox.

Das volkszaehler.org Projekt nähert sich mit großen Schritten seiner ersten stabilen Version und damit dem ersten Release.

Ich möchte hier nur einen kurzen Überblick über den aktuellen Stand geben. Du kennst das Projekt noch gar nicht? Weiß nicht was Smart-Meter sind? Da steigst du besser auf unsere Projekt Website ein!

Für die Entwicklung am Projekt habe ich mir eine kleine Hutschienenbox gebaut. Sie eignet sich perfekt für den mobilen Einsatz und zum Testen neuer Firmware und Funktionen. Mal schnell den Verbrauch des eigenen Kühlschranks zu erfassen ist kein Problem. Derzeit ist mein Schreibtisch an die Box angeschlossen und liefert so aktuelle Daten für die Demo Installation des Projektes.

Die Box enthält folgende Komponenten:

  • ~230V Eingang über Kaltgerätestecker (geerdet, max. 10 Ampere)
  • ~230V Ausgang über Schukostecker (geerdet, max. 16 Ampere)
  • Sicherungsautomat (Ein-/Ausschalter)
  • B&G E-Tech DRS-154D S0-Zähler (einphasig, 2000 Impulse/kWh)
  • Udo’s S0-Server (basierend auf Atmel AVR’s & ethersex, 10 Mbit/s Ethernet, TFTP Bootloader)
  • Knopf zum manuellen Triggern von Impulsen
  • externer Anschluss von Zählern

MATLAB powered NXT omniwheel robot

MATLAB-powered NXT Omniwheel Roboter
MATLAB-powered NXT Omniwheel Roboter.

Kurz vor Weihnachten beendeten wir unser Erstsemester Projekt “MATLAB meets LEGO Mindstorms” an der RWTH Aachen.

Während dieser Pflichtveranstaltung sollten wir die Lerninhalte der Vorlesung “Mathematische Methoden der Elektrotechnik” durch Steuerung von LEGO Mindstorms NXT Robotern unter MATLAB vertiefen. Das Projekt ist eine Pflichtveranstaltung im ersten Semester meines Studienganges (Elektrotechnik, Informationstechnik und Technische Informatik) und wird durch alle Lehrstühle unserer Fakultät als 10-tägige Blockveranstaltung vor Weihnachten durchgeführt.

Ich wurde dem Institut für vernetzte System (MOBNETS) zugeteilt. Etwas verwundert war ich dann am ersten Tag, als wir auf Englisch begrüßt wurden. Aber naja, später werden wir vermutlich sowieso dazu gezwungen werden.

Während der ersten Woche lernten wir die eigens für das Projekt entwickelte “RWTH Mindstorms NXT-Toolbox” kennen und haben an einigen vorgegebenen Versuchen gearbeitet.

In der zweiten Hälfte des Projektes durften wir dann in einem Wahlversuch selber kreativ werden und einen eigenen Roboter konstruieren.

Meine beiden Kollegen und ich haben uns für einen Roboter mit omni-direktionalem Antrieb entschieden. Das Prinzip dieses etwas außergewöhnlichen Antriebes wird das folgende Video deutlich.

Die Konstruktion der “Omniwheels” war komplizierter als Anfangs angenommen. Dafür sind wir glücklicherweise recht schnell auf den nötigen Zusammenhang zwischen Fahrtrichtung und den drei Motorgeschwindigkeiten gekommen.

Als Projektabschluss mussten alle Gruppen ihren Roboter präsentieren. Unsere Präsentation gibt es hier:

Download:RWTH Omniwheel Bot (Präsentation)
  • Omniwheel-Antrieb
    • Bewegungsfreiheit in 360°
    • Drehen auf der Stelle
  • Intuitive Fernsteuerung über zweiten NXT-Brick
    • Durch Neigung des Controllers (Beschleunigungssensoren)
    • Schalter zur Steuerung des Programmablaufs
  • Signal-Hupe
  • Akustischer Abstandswarner
/_astro/DSC04214.RRBoXpNQ.jpg /_astro/IMG_9300.CIeUocJW.jpg /_astro/IMG_9302.bKvasTTu.jpg /_astro/IMG_9305.BgUpQKXL.jpg

Conway's Game of Life

Conway's Game of Life Screenshot
Conway's Game of Life Screenshot.

Als Übung für meine Informatik Vorlesung an der RWTH Aachen habe ich diese C Implementation von Conways Game of Life geschrieben.

Dieses simple “zero player” Game wird komplett im Terminal ausgeführt. Mit Mausunterstützung und Farben wurden mit libncurses realisiert.

Den Quelltext findet ihr inklusive eines Makefiles auf Codeberg: /stv0g/rwth-info1/src/conway.c .

  • p” pausiert das Spiel
  • q” beendet das Spiel
  • c” leert das Spielfeld
  • Leertaste setzt eine neue Zelle in das aktuelle Feld
  • Pfeiltasten bewegen den Cursor
  • Maus kann zum Bewegen des Cursors genutzt werden
  • 0” fügt ein chaotisches Anfangsmuster ein
  • 1” fügt einen Glider in das Spielfeld ein
  • 2” fügt einen Segler in das Spielfeld ein
  • 3” fügt einen Buffer in das Spielfeld ein
  • +” erhöht die Anzahl der Generationen pro Sekunde (frames per second)
  • -” erniedrigt die Anzahl der Generationen pro Sekunde (frames per second)

fnordlicht VU Meter

Last time, I presented some code for visualizing your power consumption using the Fnordlicht modules. Today, we continue the journey in a similar direction: I’ve written a small C program to control the modules according to the current audio volume.

The software monitors the audio signal of my system (Ubuntu 10.10 with Pulseaudio). So you can dance to everything that can play audio 😄…

Update: As preparation for an upcoming exam, I added a Discrete Fourier Analysis (DFT). Unfortunately, the serial bus is to slow to visualize the audio spectrogram in real time . The bars are colored with their complex phase->hue (HSV) equivalent.

fnordlicht FFT Visualization
fnordlicht FFT Visualization.

The software uses libfn a C-library for controlling fnordlichts and is available at Codeberg: /stv0g/libfn/src/fnvum.c .

Ich benutze PulseAudio um mich in die Soundkarte des Systems einzuklinken. Das Programm tarnt sich als Recording-Tool. Und kann dadurch den kompletten Audio-Output oder nur bestimmte Programme visualisieren. Sogar das Mikrofon kann ich benutzen 😜.

PulseAudio liefert mir einen einfachen PCM Stream (44,1kHz Samplingrate, Mono & 16-Bit signed Integers). Derzeit addiere ich immer nur x Werte dieses Byte Streams und mittele diese Summe dann über einen kurzen Zeitraum.

Geplant ist noch eine FFT-Analyse um die Amplituden verschiedener Frequenzen gemäß der “Ohrkurve”, der Empfindlichkeit des menschlichen Gehörs, gewichten zu können. Der Schritt zur Spektral Darstellung (jedes meiner 10 fnordlichter als VU-Meter für ein bestimmtes Frequenzband) ist dann hoffentlich auch nicht mehr so weit.

Ohrkurve
Ohrkurve.

elektro:camp(«2010»)

Dieses Wochenende fand in Kaiserslautern das erste elektro:camp(«2010»). statt.

elektro:camp Flyer
elektro:camp Flyer.

Im Fraunhofer ITWM veranstaltete Mathias Dalheimer, Leiter des Projekts “mysmartgrid”, das erste deutsche BarCamp zu den Themen:

  • Smart Metering
  • Demand-Side Management
  • Home Automation
  • Home Displays

Von Freitag bis Samstag trafen sich etwa 25, teils internationale, Teilnehmer und diskutierten fleißig über das aktuelle Themenfeld. Neben vielen neuen Gesichtern und interessanten Vorträgen bekamen wir auch die Möglichkeit uns das Gebäude und den Rechen-Cluster des ITWM zu besichtigen. Ach, und hierbei möchte ich mich gleich bei Mathias für die Organisation und das Catering bedanken 😉 War super!

Für alle, die es dieses Jahr leider nicht nach Kaiserslautern geschafft haben, sei gesagt, dass dies sicherlich nicht die letzte Veranstaltung dieser Art gewesen ist. Spätestens nächstes Jahr treffen wir uns sicherlich wieder.

Justin das gesamte Event als Timelapse-Video in 2 Minuten zusammengefasst:

Feedback und Ergebnisse dieses Wochenendes werden im Wiki gesammelt.

Feel free to join us!

Visualize your Power Consumption with fnordlicht LED Modules

fnordlicht Power Consumption Visualizer

Gerade zurückgekommen vom elektro:camp(<<2010>>) aus Kaiserslautern, blogge ich heute über mein neustes Spielzeug: zehn fnordlichtmini’s.

Vor ein paar Wochen bin ich auf das Projekt von Alexander Neumann aufmerksam geworden, um den Eingang neuer Mails, Nachrichten und meinen Stromverbrauch darzustellen. Meine 10 Module waren schnell aufgebaut. Sie bestehen aus je 3x3 LED’s (RGB) und einem ATMega8 Mikrocontroller, der die PWM-Ansteuerung und die Kommunikation über einen seriellen Bus übernimmt.

Leider gab es bisher nur kein in Ruby geschriebenen Code zum Testen der Ansteuerung der Lichter über einen Rechner ( /fd0/fnordlicht/tests ). Daher ergriff ich die Gelegenheit und schrieb eine kleine C++-Bibliothek zur Ansteuerung der fnordlicht Module über die serielle Schnittstelle. Die Bibliothek sowie ein Beispiel-Programm für die Linux-Konsole gibt es auf Codeberg: /stv0g/libfn .

Mit der Ethernet-RS232 Bridge von ethersex (Y-Port) konnte ich sogar die Ansteuerung über das Internet testen. Dies wird auch von der Library unterstützt.

/_astro/IMG_3749.B-334MuJ.jpg /_astro/IMG_3754.Bzfs4Xvn.jpg /_astro/IMG_3756.CHWvRnKD.jpg /_astro/IMG_3760.M_alROZc.jpg /_astro/IMG_3765.C_mUVNnl.jpg /_astro/IMG_3766.Z-Mb1uBh.jpg /_astro/IMG_3770.BDw74amh.jpg

Island in Bildern

Mit meinen Eltern und meiner Schwester war ich im August 2010 für zwei Wochen in Island unterwegs. Wir haben die Insel mit dem Auto umrundet und sind auch ins Hochland vorgedrungen. Dabei haben wir viele tolle Wasserfälle, Geysire, Vulkane und Gletscher gesehen. Natürlich durfte auch das obligatorische Bad in der heißen Quelle nicht fehlen.

Auf unserer zweiwöchigen Rundreise auf Island’s Küste und durch das Hochland konnten wir unsere neue Kamera gleich mal richtig einsetzen. 12 GB belegten diese drei Panoramas, eine Hand voll HD-Filme und knapp 1500 Fotos aus denen ich hier mal die Top 80 herausgepickt habe.

Natürlich habe ich mir die Chance nicht entgehen lassen und auch ein paar Geocaches gesucht.

Panorama 1
Panorama 1.
Panorama 2
Panorama 2.
Panorama 3
Panorama 3.

Weiter Fotos gibt es in der folgenden Galerie.

Steckbrettkabel

Steckbrettkabel
Steckbrettkabel.

Meinen heutigen Tag habe ich damit verbracht Kabel für mein Steckbrett anzufertigen. Ich war es Leid mit zu dicken Drähten oder Klingeldraht zu hantieren. Sie passen nicht, brechen ab oder lassen sich einfach nicht eindeutig von einander unterscheiden. So dauert das Aufbauen einer kleinen Schaltung auf dem Steckbrett ewig.

Schon länger habe ich nach einer Alternative gesucht. Kommerzielle Angebote sind meist recht teuer und in Europa nur schwer zu beziehen. Ich war auf der Suche nach einer günstigen und qualitativ hochwertigen Eigenbauvariante.

Meine Steckbrücken bestehen aus je zwei Stecknadeln mit farbigen Glaskopf und einer zwischen 7-25cm langen farbig codierten Ader einer LIYCY-Steuerleitung. Die Adern der Steuerleitung sind farblich gut voneinander zu unterscheiden. Sie werden einfach an die Stecknadeln gelötet und mit einem Stück Schrumpfschlauch gesichert.

Rundkabel Paarvers 36 Adern
Rundkabel Paarvers 36 Adern.

Es empfiehlt sich die Ader mittig auf der Nadel an zu löten. So kann sie mit der Spitze einfach in das Steckbrett gesteckt und entfernt werden. Der blanke Hals kann so gut zum Messen mit einer Messspitze oder Klemmprüfspitze genutzt werden.

Für etwa 120 Brücken mit verschiedenen Längen habe ich insgesamt etwa 5 Stunden gebraucht.

/_astro/IMG_3382.Cc-EG2St.jpg /_astro/IMG_3408.K_oBoRTO.jpg /_astro/IMG_3424.BkxqGhMK.jpg /_astro/IMG_3430.D9S44wzc.jpg /_astro/IMG_3436.DE8tCsXu.jpg /_astro/IMG_3440.akZLuzws.jpg /_astro/IMG_3443.BEk8fpn-.jpg

FöJ Erfahrungsbericht

Zielflagge

Zwei Tage noch! Dann habe ich mein freiwilliges ökologisches Jahr abgeschlossen. Ich bin bereits dabei meinen Schreibtisch aufzuräumen, Sachen zu packen, die neuen FöJ’ler einzuarbeiten.

Micha hat sich bereits vor zwei Wochen nach Tarifa verabschiedet. Für mich geht es dann Sonntag mit der Familie für zwei Wochen nach Island bevor ich in Aaachen richtig mit Studium beginnen kann.

Nun aber zum eigentlichen Inhalt dieses Posts: gerade habe ich meinen Erfahrungsbericht über das FöJ fertig gestellt. Diesen habe ich für das LVR geschrieben um mein Zeugnis zu bekommen 😉. Es ist mal wieder mit acht Seiten etwas länger als geplant geworden. Daher habe ich das ganze mal in ein PDF gepackt:

Download:FöJ Erfahrungsbericht

Ich schreibe hier etwas allgemein über das FöJ und meine persönlichen Erfahrungen, die ich während diesem Jahr gesammelt habe.

Vielleicht kann ich ja hier die Chance nutzen etwas Werbung für das FöJ zu machen. Ich empfehle es jedem! Nutzt die Chance, beginnt nicht gleich zu studieren und macht lieber ein FöJ 😊.

Es hat sich gelohnt. 100%ig

Präsentation: Das Welternährungsproblem

Weltweit sind knapp 900 Millionen Menschen chronisch unterernährt.

FAO Statistics Division 2006

Diesem Problem widmete ich meinen Mini-Vortrag “Das Welternährungsproblem - Probleme, Lösungen und ein Ausblick”, den ich im Rahmen des letzten Seminars meines freiwilligen ökologischen Jahres gehalten habe.

Urban Gardening/Agriculture
Urban Gardening/Agriculture.

Den Inhalt dieses Vortrags habe ich direkt aus der Forschung abgeleitet. Gutachten des TA-Projekts „Welchen Beitrag kann die Forschung zur Lösung des Welternähurngsproblem leisten?” sowie einige Zusammenfassungen andere Studien waren meine Quellen. Das KATALYSE Institut, meine Einsatzstelle, hat für das TA-Projekt selbst ein Gutachten über den “globalen Ernährungswandel” verfasst Hier habe ich mich auch etwas spezialisiert. Mal ohne Wikipedia, Google & Co zu Recherchieren kann ganz schön anstrengend sein.

Das Welternährungsproblem nimmt sich dem Problem der Verteilung und Produktion von lebenswichtigen Nahrungsmitteln an. Dabei kann sowohl die Verteilung als auch die Produktion wieder in eine Vielzahl von Teilproblemen zerlegt werden:

  • Verteilung
    • globaler Ernährungswandel
    • Bevölkerungsentwicklung
    • Dominanz der Industriestaaten über die Rohstoffe der Entwicklungsländer
    • Flächenkonkurrenz
      • Nahrung vs. Viehfutter vs. Energiepflanzen
      • Politisch/wirtschaftliches “Landgrabbing”
      • Wasserverteilung
  • Produktion
    • Biodiversität
    • Produktivitäts- & Ertragssteigerung
      • Gentechnik
      • neue Technologien
    • Klimawandel
Download:Das Welternährungsproblem (Präsentation)

Ausblick

Jetzt schreibe ich mal wieder etwas über mich, diesen Blog und meine Zukunft 😉.

Bevor ich jedoch damit beginnen kann muss ich erst einmal die Vergangenheit aufholen:

  • Mein freiwilliges ökologisches Jahr ist so gut wie vorbei. Ich komme gerade von meinem letzten Seminar in Overath. Nun habe ich nur noch zwei Wochen Arbeit in Köln vor mir.
  • Vor knapp vier Monaten Ich habe eine neue WG gefunden und so langsam wird es endlich mal wieder etwas wärmer in Köln 😊.
  • Die SIGINT Konferenz 2010 war ein echter Knaller. Viel neues kennen gelernt und neue Bekanntschaften geknüpft.
  • Ich war auf dem Hurricane in Scheeßel, dem c/o Pop und habe Phoenix live gesehen 😉. Endlich mal wieder etwas Musik in Köln 😉.
  • Ich habe mich entschieden an der RWTH Aachen Elektrotechnik, Kommunikationstechnik und Technische Informatik zu studieren und befinde mich gerade mitten in der Wohnungssuche.
  • Im August geht es erst mal nach Island 🗻.
/_astro/10-hrr-01-028.CsZ7cubS.jpg /_astro/200px-Logo_CCC.svg.By6zLqta.png /_astro/425px-Export3_480.CRazIlfo.png /_astro/9857.4c2495c78a7ce.CyAQcLId.jpg /_astro/copop_logo_rgb.Bu6yFi34.jpg /_astro/rwth_logo.DDhE2mLz.svg

volkszaehler.org

volkszaehler.org Logo
volkszaehler.org Logo.

volkszaehler.org ist ein freier Smart Meter (hier: intelligenter Stromzähler) im Selbstbau. Die anfallenden Stromprofile bleiben dabei unter der Kontrolle des Nutzers.

Seit dem 1. Januar 2010 müssen Stromversorger ihren Kunden für Neubauten so genannte “intelligente Stromzähler” (Smart Meter) anbieten. Der Kunde soll dadurch seinen Stromverbrauch analysieren und optimieren können.

Die dabei anfallenden Daten (“Stromverbrauchsprofil”) erlauben einen sehr detaillierten Einblick in den Tagesablauf des Nutzers (wann steht er auf? wann geht er in’s Bett? wann kocht er? wie oft verwendet er seine Spülmaschine? verändert sich sein Verhalten? …). Darum sollten die Daten ausschließlich für den Nutzer selbst zur Verfügung stehen - und das geht nur, wenn man sich den Smart Meter selbst baut. Mit einem Materialeinsatz von etwa 100 €, etwas Geschick und Zeit lässt sich das mit Hilfe eines Standard-µC-Moduls aufbauen.

Auf der SIGINT 2010 konnte ich mir den Vortrag von Justin Otherguy über das noch recht junge Projekt anhören und fand anschließen die Gelegenheit mit ihm über das Projekt zu sprechen. Schnell war für mich klar, dass ich hier helfen möchte.

Bisher gibt es nur einen funktionsfähigen Prototypen. In den letzten Wochen habe ich mit ein paar weiteren Entwicklern begonnen den Code des Prototypen neu aufzubauen.

Die Architektur von volkszaehler.org ist dreigeteilt:

  1. Die Controller und Sensor Ebene erfasst mithilfe eines Mikrocontrollers die Daten leitet sie an den Backendserver weiter.
  2. Der Backendserver besteht aus einem PHP-Skript und einer Datenbank. Hier werden die Daten weiter verarbeitet und ausgewertet. Er kommuniziert ausschließlich über eine standardisierte JSON API.
  3. Das Frontend stellt die Daten für den Benutzer übersichtlich dar und ist für die Ausgabe der Analysen verantwortlich.
Systemübersicht volkszaehler.org
Systemübersicht volkszaehler.org.

Diese Darstellung verrät uns auch, dass nur der Stromverbrauch erfasst werden kann. Geplant sind sämtliche Messgrößen (Temperatur, Luftdruck, Luftfeuchtigkeit, Strahlung, Niederschlag, …).

Bisher gibt es noch keine stabile, lauffähige Version des Quellcodes. Im Wiki, der Mailing-Liste und im GitHub Repository ( /volkszaehler/volkszaehler.org ) findet ihr weitere Informationen zu meinem neuen Projekt.

Wir freuen uns über jede Unterstützung 😊. Besonders Entwickler mit PHP und Javascript Kenntnissen wären hilfreich 😉.

Traktor Pro unter Linux

VMWare Logo

Es läuft! Nachdem ich über Google & Co nicht weitergekommen bin, habe ich selber mal etwas experimentiert. Die sonst üblichen Methoden über Wine, Cedega und CrossOver brachten mich leider nicht weiter.

Das Zauberwort lautet “VMWare Workstation”. Erstaunlicherweise ist eine virtualisierte Maschine schnell genug um Traktor akzeptabel nutzen zu könnten. Jedoch muss man bei internen Soundkarten mit einer höheren Latenz rechnen. Mit meinem neuen Audio-Interface konnte ich die Latenz durch ASIO-Treiber und die direkte Anbindung per USB noch deutlich senken. Der Anschluss über sorgt dafür, dass das die Ansteuerung in der virtualisierten Maschine erfolgt. Es ist kein Umweg mehr über das Linux Soundsystem (ALSA) nötig. Es wird nur der Windows Treiber benötigt.

Um das ganze stabil nutzen zu können solltet ihr jedoch schon einen aktuellen Rechner mit ausreichend RAM (> 2GB) und mindestens zwei CPU-Kernen haben. Für den Produktiveinsatz kann ich es nur bedingt empfehlen, da ich zwischenzeitlich ein paar Performance Probleme hatte und die Audio Wiedergabe kurzzeitig aussetzte. Aber diesem Fall kann man natürlich auch mal Windows booten 🫤.

Waveform

USB Audiointerfaces für Linux

Musik ist meine Freizeitbeschäftigung. Mittlerweile höre ich sie eigentlich in jeder Lebenslage. Zuhause, beim Laufen, Fahrrad fahren, auf der Arbeit und in der Bahn. Man könnte fast sagen ich bin süchtig geworden 🫤. Die Qualität der Onboard-Soundkarte meines Dell Latitude ist einfach nur miserabel. Von dem Mikrofon Eingang ganz zu schweigen. Ganz klar hier muss was besseres her.

Vorne weg: ich habe das Terratec PHASE 26 USB und das Cakewalk UA-1G getestet und mich schließlich für das Terratec entschieden. Meine Entscheidung habe ich nicht nach keinem bestimmten Gesichtspunkt getroffen. Hauptsächlich nutze ich das Interface aber zur Wiedergabe. Vielleicht gibt es demnächst auch mal wieder einen Audiobeitrag von mir 😉.

Kriterien waren neben der Linux-Unterstützung ein digitaler Ausgang, ein Mikrofon- und Line-Eingang sowie herausragende Audioqualität. Preislich habe ich mir eine Grenze von 100 € gesetzt.

/dev/nulll - Eine Plattform für Entwickler und Tüftler

/dev/nulll Logo

Micha und Steffen haben, wie viele Bastler, im Laufe der Zeit viele kleine Tools entwickelt, die bei mehr oder weniger alltäglichen Problemen helfen. Wir fanden, dass sie zu schade sind, um willkürlich verteilt auf verschiedenen Festplatten herum zu liegen und schließlich in Vergessenheit zu geraten. Uns fehlte oft die Übersicht und eine angemessene Dokumentation. Oder wir wollten bestimmte Projekte einfach nicht auf unseren eigenen Websites veröffentlichen.

Tiny DNS & URL aka SDDNS

SDDNS Favicon

Zusammen mit Micha besuchte ich Ende letzten Jahres das U23 des C4 in Köln. Dort habe ich viel über die Techniken des Internets gelernt. Unter anderem ging es hier auch um das Domain Name System, das für die Namensauflösung im Internet verantwortlich ist.

Mittlerweile betreibe ich einen eigenen DNS Server für meine Domains (0l.de, steffenvogel.de, griesm.de & vogel.cc).

Zudem biete ich euch kostenloses DNS Hosting. Gerne übernehme ich auch die DNS Administration eurer Domains. Jedoch könnt ihr sicherlich verstehen, dass ich euch dafür dann nichts garantieren kann.

Mit der Zeit habe ich ein Webinterface für den DNS Server Bind entwickelt auf das nun jeder Zugriff hat. Ihr könnt eigene Subdomains registrieren, Records setzen und URL Weiterleitungen einrichten. Dynamisches DNS wird ebenso unterstützt.

Es ist auch möglich URLs zu verkürzen und so beispielsweise die URL: https://maps.google.com/maps/ms?ie=UTF8&hl=en&msa=0&msid=100237997621038330776.000468b0a95f89721a96e&ll=18.646245,15.820313&spn=120.933723,198.632813&z=3 auf http://a.0l.de abzukürzen Das ist vergleichbar mit dem Service von TinyURL. Jedoch sind meine URLs dann um 7 Zeichen kürzer 😊. Im Gegensatz TinyURL sind meine URLs auch nur über die Subdomains erreichbar. Eine direkte Unterscheidung zwischen eigenem DNS Record und einer simplen URL Weiterleitung ist also nicht möglich.

Service Wiki/Doku

UNI-TREND UT61E Digital Multimeter

Der Testaufbau
Der Testaufbau.

Seit ein paar Wochen habe ich schon nun mein neues Multimeter: ein UT61E von UNI-TREND. Bisher bin ich rundum zufrieden damit. Gekauft habe ich es über das Internet bei Pinsonne-Elektronik. Lieferung und Bezahlung verlief schnell und problemlos. Den Laden kann ich also nur weiterempfehlen.

Ein besonderes Highlight der neuen Messgeräte ist die RS232 Schnittstelle für die Auswertung am Rechner. Über diese per Optokopler isolierte Schnittstelle ist es möglich in aktuelle Messergebnisse am Rechner auszuwerten und weiter zu verarbeiten.

Leider haben die in China ansässigen Hersteller die Linux-Gemeinde aber mal wieder vergessen. Nach einigen Recherchen und etlichen Stunden später habe ich es dann jedoch geschafft ein kleines Tool für Linux zu entwickeln, welches mir die Messergebnisse im CSV Format liefert. In diesem Format kann ich sie nun in Open Office, MatLab und vielen anderen Programmen öffnen und auswerten.

Als besonderes Gimmick habe ich auch noch ein kleines Script geschrieben, das mit Hilfe gnuplot Graphen der Messergebnisse zeichnet. Diese werden dann 1-2 in der Sekunde aktualisiert. Mit einem Oszilloskop ist das jedoch lange noch nicht vergleichbar. Aber für Langzeit-Messungen durchaus sehr praktisch.

Die Live-Darstellung der Messergebnisse mit gnuplot
Die Live-Darstellung der Messergebnisse mit gnuplot.

Ich bedanke mich bei Henrik Haftmann für die detaillierte Beschreibung des Protokolls, welche mir beim Entwickeln dieses Tools unheimlich geholfen hat.

Update: Ich habe das Datenblatt es verwendeten IC’s gefunden. Es enthält auch eine Spezifikation des serielle Protokolls. Hier geht es zum neuen Eintrag mit Bildern des Chips und der restlichen Platine.

Das Tool sowie das gnuplot Script habe ich hier in einem Archiv zusammengefasst:

Download:dmmut61e-0.01.tar.gz (C++ Quelltext + gnuplot Script)

Die Installation ist sicherlich nicht die einfachste. Aber die nötigen Kenntnisse setzte ich bei dieser Zielgruppe einfach mal voraus 😜.

Anregungen, Patches und Bug Reports sind per Mail immer willkommen.

Hier noch ein kleines Beispiel wie die Daten von meinem Tool ausgegeben werden. Für das Verständnis hilft sicherlich ein Blick in den Quelltext.

1;0.0589;0.0589;0;0.0589;V;AC;Manual
2;0.07184;0.07184;0;0.06537;V;AC;Manual
3;0.12869;0.12869;0;0.0864767;V;AC;Manual
4;0.07876;0.12869;0;0.0845475;V;AC;Manual
5;0.06458;0.12869;0;0.080554;V;AC;Manual
6;0.09626;0.12869;0;0.0831717;V;AC;Manual
7;0.17355;0.17355;0;0.0960829;V;AC;Manual
8;0.17487;0.17487;0;0.105931;V;AC;Manual
9;0.13565;0.17487;0;0.109233;V;AC;Manual
10;0.10726;0.17487;0;0.109036;V;AC;Manual
11;0.16506;0.17487;0;0.114129;V;AC;Manual
12;0.14415;0.17487;0;0.116631;V;AC;Manual
13;0.15238;0.17487;0;0.119381;V;AC;Manual
14;0.17396;0.17487;0;0.123279;V;AC;Manual
15;0.11834;0.17487;0;0.12295;V;AC;Manual
16;0.2117;0.2117;0;0.128497;V;AC;Manual
17;0.18906;0.2117;0;0.132059;V;AC;Manual
18;0.17674;0.2117;0;0.134542;V;AC;Manual
19;0.08354;0.2117;0;0.131857;V;AC;Manual
20;0.053;0.2117;0;0.127915;V;AC;Manual
21;0.0688;0.2117;0;0.1251;V;AC;Manual
22;0.12796;0.2117;0;0.12523;V;AC;Manual
23;0.14954;0.2117;0;0.126287;V;AC;Manual
24;0.17535;0.2117;0;0.128331;V;AC;Manual
25;0.1381;0.2117;0;0.128722;V;AC;Manual
26;0.1588;0.2117;0;0.129878;V;AC;Manual
27;0.13258;0.2117;0;0.129979;V;AC;Manual
28;0.097;0.2117;0;0.128801;V;AC;Manual
29;0.04637;0.2117;0;0.125958;V;AC;Manual
30;0.06749;0.2117;0;0.124009;V;AC;Manual
31;0.09002;0.2117;0;0.122913;V;AC;Manual
32;0.07575;0.2117;0;0.121439;V;AC;Manual
33;0.0711;0.2117;0;0.119914;V;AC;Manual

gesundheitsmanagement-schule.de

Heute freue ich mich euch einen weiteren Auftrag präsentieren zu dürfen, mit der ich mein etwas knappes FÖJ Taschengeld aufbessern konnte 😋 Basierend auf der Website rueckgrat-beweisen.de, die ich für meinen ehemaligen Sportlehrer entworfen habe, ist nun eine weitere Website zum Thema Gesundheitsmanagement in Schulen entstanden.

Screenshot von gesundheitsmanagement-schule.de
Screenshot von gesundheitsmanagement-schule.de.

Das Design der Page wurde aufgrund einiger Fotos weitestgehend von mir selbstständig entworfen und umgesetzt. Funktionell wurde die Seite recht einfach gehalten. Es gibt die üblichen Funktionen zum Bearbeiten des Inhalts und ein Kontakt/Mail Formular. Hierbei habe ich mich hauptsächlich auf den Quelltext von rueckgrat-beweisen.de gestützt und diesen weiterentwickelt. Wie immer ist die Seite 100% selbst entwickelt und 100% W3C XHTML und CSS konform.

Zusätzlich zum Design und der Programmierung der Website habe ich auch die komplette Verwaltung des Web Spaces inklusive Domainumzug übernommen.

Die Website ist erreichbar unter:

www.gesundheitsmanagement-schule.de

Pimp your Louie

Unsere lustigste Beschäftigung auf dem Southside Festival 2009 war sicherlich Looping Louie ein Kinderspiel von MB. Ziel des Spiels ist es seine eigenen Chips vor den Mitspielern und vor allem vor Louie zu verteidigen. Louie sitzt in seinem batteriebetriebenen Flugzeug und versucht deine Chips vom Halter herunter zu stoßen. Wer als erstes alle seine Chips verloren hat muss/darf trinken. Also ein typisches Trinkspiel 😜.

Aber eine kleines Video sagt bestimmt mehr als 1000 Worte:

Play

Das Spiel gibt es mittlerweile ab circa 18 € bei Amazon. Ich habe es noch nachträglich etwas optimiert. Mit einem regelbaren und stabilisierten Stecker Netzteil lässt sich so sogar die Geschwindigkeit von Louie regeln. Von den, bei Batteriebetrieb, normalen 18 Umdrehungen/Minute konnte ich die Geschwindigkeit auf 55 Umdrehungen/Minute mit dem Stecker Netzteil steigern.

Abischerz

Getreu dem Abimotto:

HolLIOwood
HolLIOwood.

fand 25. Mai 2009 unser Abischerz statt. Wir haben unseren “Zuschauern” eine abwechslungsreiche Oscar Gewinnspiel Live-TV-Show geboten, die professionellen Shows in fast nichts nach stand.

Unsere Planungen begannen bereits Wochen zuvor. In einem kleinen Team versuchten wir zunächst alles geheim zu halten, um den für einen Abischerz typischen Überraschungseffekt bei zu erhalten. Ich persönlich war für Technik verantwortlich. Mit zwei Live Leinwänden, 2 Kameras, einem Verfolger-Spot, einer komplett verdunkelten Bühne, einem erhöhten Laufsteg mit rotem Teppich und vielen weiteren technischen Details konnten wir das komplette Publikum begeistern.

Die dazu nötige technische Ausrüstung konnten wir uns von MKM-Showtechnik und dem LIO Theater ausleihen. Mit unserem großzügigen Budget konnten mussten wir an keinem Ende sparen und konnten auf viele Details achten. Um alles rechtzeitig bis zur zweiten Schulstunde aufgebaut zu haben, trafen wir uns bereits Mittwoch abends und Zelteten in der Schule.

Wir bekamen eigentlich nur durchgängig gutes Feedback. Sogar unser Direktor lobte uns während unserem Abiball. Mit dem besten Abischerz seit 1997 werden wir allen Lehrern und viel Schülern hoffentlich lange in Erinnerung bleiben.

Quiz Buzzer

Der Buzzer
Der Buzzer.

Für die einige Spiele unseres Abi-Scherzes benötigten wir Buzzer wie man sie aus den TV-Shows “Schlag den Raab” oder “Familien Duell” kennt. Als Techniker war es meine Aufgabe diese zu besorgen. Schnell stellte ich fest, dass diese gewöhnlichen Buzzer, die eigentlich für den industriellen Einsatz bestimmt sind, für unseren Ramen viel zu teuer waren. Bei Preisen von circa 50 € pro Buzzer brauchten wir eine Alternative.

Ich entschied mich den kompletten Buzzer inklusive Elektronik selbst zu bauen. Die Auswertung wird hierbei von einem Computer übernommen. Die Buzzer simulieren eine USB-Tastatur mit nur einer Taste. Dank des Projekts V-USB, ein Software USB Stack für Atmel AVR Mikrokontroller, der auch das USB-HID Protokoll beherrscht, konnte die Platine recht übersichtlich gehalten werden. Es wird nur ein TinyAVR45 und etwas “Vogelfutter” benötigt 😊. Die Mikrokontroller Firmware konnte ich leicht abgewandelt von Flip übernehmen.

Der Taster an sich besteht aus zwei Plastik-Muffen und einer Plastikkugel aus dem Bastelbedarf, die rot lackiert wurde. Ein Stoßdämpfer aus dem Modellbau sorgt für die nötige Rückstellkraft.

Abitur

LIO Logo
LIO Logo.

Nun heißt es:

Auf Wiedersehen, Liebe LIO!

Mittlerweile muss ich schon nicht mehr die Schulbank drücken.. Seit dem 15. Mai habe ich offiziell keinen Unterricht mehr, Seit dem 26.6 bin ich nicht mehr Schüler der LIO 😊. Mit der Vergabe der Abitur Zeugnisse am Abi Ball habe ich meine Schülerlaufbahn offiziell beendet.

Zu unserem Abi-Ball, den wir in der Darmstädter Orangerie feierten, kamen neben unseren Eltern, Geschwistern und Verwandten auch ein Teil unserer ehemaligen Lehrer. Zu dieser “hoch offiziellen” Veranstaltung kamen wir natürlich alle schick im Anzug und Kleid. Anschließend ging es noch bis in die Morgenstunden ins Stella. Auftritte unseres Abi-Chores und der Abi-Band konnten das ansonsten durch Reden geprägte Programm auflockern.

Da der Abiball für einige mit Abschied verbunden ist, möchte ich an dieser Stelle noch an das nächste Ehemaligentreffen und eine Emailadresse verweisen. Benedikt und Niko haben eine Email Adresse eingerichtet um den Kontakt im Jahrgang weiterhin aufrecht zu erhalten: lioabi2009@googlemail.com

Meine Abiturprüfungen verlief weitestgehend nach Plan. Montag begann es gemütlich mit einer dreistündigen Prüfung in meinem dritten Prüfungsfach, Deutsch. Dienstag stand Physik auf dem Plan. Nach vier Stunden, 18 Seiten, 1247 Wörtern (circa 200 mehr als in Deutsch) hatte ich ein deutlich besseres Gefühl als am Tag zuvor. Freitag hätte ich mit Mathe eigentlich meine letzte schriftliche Prüfung haben sollen. Leider freuten wir uns zu früh 🙁. Aufgrund eines kleinen Fehlers in einer Grundkursaufgabe wurde das Abitur Landesweit wiederholt. Das hielt uns jedoch nicht davon ab in den Osterferien kräftig zu feiern 😊. Schließlich konnten wir uns in der zweiten Matheklausur nur noch verbessern. Glücklicherweise schaffte ich es dann noch ohne Vorbereitung mich nochmal um einen Punkt zu verbessern 😉.

Die beiden mündlichen Prüfungen in PW und Sport verliefen auch zufriedenstellend. Mein erster Eindruck nach der PW war eher schlecht. Hat sich dann aber nach der Sportprüfung und der Bekanntgabe der Prüfungsergebnisse gebessert.

Nachdem wir am 25. Mai unsere schriftlichen Noten und nun auch unsere mündlichen Noten bekommen haben, konnte ich mit dem Abinotenrechner von FMBjoern bereits meinen vorläufigen Abischnitt ausrechnen. Wirklich sehr hilfreich 😉. Bin dann leider doch nur bei 2.2 gelandet 🫤 Mir hätten nur noch 4 Punkte zum nächst besseren Schnitt gefehlt. Alles in allem bin ich trotzdem sehr zufrieden und freue mich nun nie wieder die Schulbank drücken zu müssen.

Unterstützung durch meine Schwester 😉
Unterstützung durch meine Schwester 😉.

Freiwilliges ökologisches Jahr in Köln

Wappen von Köln

Ja! Endlich habe ich eine Stelle für meinen Wehrdienstersatz gefunden. Ab August werde ich für ein Jahr meinen Zivildienstersatz in einem Umweltinstitut in Köln ableisten. Zusammen mit meinem Freund Micha, der bei der gleichen Einsatzstelle angenommen wurde, suchen wir nun zusammen eine WG in Köln.

Ich freue mich auf ein Jahr voller neuer Erfahrung in einer der größten Städte Deutschlands 😉. Leider sind dementsprechend auch die Mieten relativ teuer 🙁. Unsere Einsatzstelle, die Katalyse e.V., liegt im Zentrum Kölns und ist zum Glück relativ gut erreichbar, sodass wir auch etwas ausserhalb Kölns noch gut eine WG suchen können.

Nach diesem Jahr plane ich eigentlich wieder nach Darmstadt zurückkehren um dort dann mit meinem Studium beginnen zu können. Wahrscheinlich werde ich Elektrotechnik und Informationstechnik an der TU Darmstadt studieren…

So das war jetzt aber genug von mir 😊. Die nächsten Beiträge sind mal wieder etwas technischer 😜.

Frühjahrskonzert in der Orangerie

Unser Mischpult
Unser Mischpult.

So ich möchte die Chance mal nutzen um etwas Werbung für das heutige Frühjahrskonzert der Darmstädter Schulen in der Orangerie zu machen. Jährlich geben sechs Schulen aus Darmstadt dieses Konzert. Wie jedes Jahr betreut die Justus-Liebig Schule die Tontechnik. Nachdem wir heute bereits seit 8 Uhr hier mit dem Aufbauen beschäftigt waren, sind wir nun dabei die Proben zu begleiten. Begleitet von den üblichen Problemen werden wir damit auch noch den ganzen Tag beschäftigt sein. Planmäßig soll das Konzert um 19:30 Uhr beginnen. Der Eintritt ist kostenlos. Auch am Donnerstag werden wir wieder in der Orangerie im Einsatz sein. Diesmal veranstaltet die LIO ihr Schulkonzert.

Downtime nach Festplattencrash bei HostEurope"

Headcrash einer Festplatte

Vielleicht habt ihr es ja schon selber gemerkt, dass unserer Server die letzte Woche nur sehr eingeschränkt verfügbar war. Die Blogs von Micha und mir sowie die Website meines Handball Vereins waren nicht mehr erreichbar.

Schuld daran war ein Festplattencrash bei unserem Provider HostEurope. Ausgerechnet die Festplatte unseres VPS gab am Morgen des 9. Mai 2009 den Geist auf 🙁. Führt man sich vor Augen, dass im HE Rechenzentrum bis zu 24000 Server stehen können, die meist auch mal mit mehr als nur einer Festplatte bestückt sind, ist es wirklich ein verdammt großes Pech, das wir hatten.

Unser Provider setzte ohne vorher sich mit uns Kontakt zu setzten den Server komplett auf. Alle Daten, und Einstellungen waren verloren. Viel Arbeit liegt nun wieder vor uns. Alles in allem also sehr ärgerlich.

Zwar hatten wir extra Backups gemacht, die dann aber nur lokal auf dem Sever gesichert… Nach diesem Vorfall werden wir uns noch einen zusätzlichen externen FTP zulegen.

Informatik Präsentation: Künstliche Intelligenz

Schwarm
Schwarm.

Im letzten Halbjahr haben wir unserer komplette Informatiknote durch eine Präsentationsprüfung ersetzt. Die Themen konnten wir uns weitestgehend selbst aussuchen. Die sechs Schüler aus unserem Kurs teilten sich in drei Zweiergruppen auf, die jeweils 20 Minuten Zeit hatten ihr Thema vorzustellen. Mit dem anschließenden Kolloquium war die Zeit für uns also alle knapp bemessen. So musste ich mich mit meinem Teil wirklich sputen.

Unsere Präsentation kann mal wirklich als sehr allgemeine und kurze Einführung in die KI verstehen. Nach einer kurzen Definition der Begriffe Intelligenz und künstliche Intelligenz berichten wir kurz über die Geschichte der KI Forschung und deren Anwendungsgebiete. Anhand von einem Beispiel, der Particle Swarm Optimization, wollen wir einen kurzen Einblick in die vielfältigen Anwendungen von KI geben. Ein kurzer philosophischer Ausblick in die Zukunft schließt die Präsentation ab.

Download:Künstliche Intelligenz (Präsentation)

Musik Präsentation: Popstars - Ein Vergleich

popstar

Für die letzten Wochen unseres Musikunterrichts sollten wir wieder kleine Präsentationen rund um das Thema Musik, Künstler und Fans vorbereiten. Bei der Themenwahl haben wir eine große Freiheit bekommen. Wir entschieden uns für einen Vergleich zweier Bands der deutschen Castingshow “Popstars”.

Für den Vergleich wählten wir die jeweils erfolgreichste und nicht erfolgreichste Band der Show: die NoAngels und Room2012. Ziel war es Gründe für die stark unterschiedliche Rezeption der Bands bei den Fans zu finden.

In der Präsentation gibt es zwei Folien, auf denen hier nur ein großes graues Fragezeichen zu sehen ist. Hier haben wir zwei Videos der Bands eingebunden.

Download:NoAngels vs Room2012 (Präsentation)

Die Videos und eine OpenOffice Impress Version gibt es wie immer auf Anfrage.

rückgrat-beweisen.de

In diesem Blog Beitrag möchte ich euch eine weitere von mir erstellte Website und abgeschlossenen Auftrag vorstellen. Diesmal ist es eine bewusst einfach gehaltene Seite für eine Rückenschule aus Darmstadt. Den Auftrag habe ich von meinem ehemaligen Sport Lehrer aus dem Justus-Liebig-Gymnasium erhalten.

Die Website ist bis auf das Logo komplett von mir entwickelt und entworfen worden. Natürlich wie gewohnt ohne Coldfusion oder andere ähnliche WYSIWYG Editoren.

Die Website ist erreichbar unter:

www.rueckgrat-beweisen.de

Die Seite ist XHTML 1.0 valid valid und nach anfänglichen Problemen nun auch auf allen Browsern betrachtbar.

Hier noch ein Screenshot der Website:

Screenshot von rueckgrat-beweisen.de
Screenshot von rueckgrat-beweisen.de.

Skifahrt Großarl: skiline.cc

Logo Großarl
Logo Großarl.

27515 Höhenmeter, 64 Liftfahrten, 162 km Abfahrten und 81 Km im Lift habe ich die vergangene Woche beim sonnigem Wetter im Großarl Tal auf Skiern zurückgelegt. Als Betreuer begleitete ich zusammen mit zwei anderen Schülern die achten Klassen der Justus-Liebig Schule. Vor fünf Jahren war ich damals selber in der achten Klasse in Großarl. Seitdem hat sich viel verändert. Glücklicherweise meist zum Positiven. Zehn Tage waren wir im Jugendgästehaus Schornhof untergebracht. Neben dem Skifahren konnten wir die Zeit gut nutzen um uns auf unser Abitur vorzubereiten.

Aber nun zu dem eigentlichen Inhalt dieses Beitrags: skiline.cc ist ein Dienst der die Skipassdaten aus fast 75 Skigebieten sammelt und grafisch aufbereitet. Jeder Skipass besitzt eine eindeutige ID, mit der man sich auf der Website von skiline.cc anmelden kann. Jede Liftfahrt wird am Drehkreuz registriert und gespeichert. Durch die Kombination von Zeit, Ort und Skipass ID kann skiline.cc dann Höhenprofile und Skirouten der einzelner Skifahrer berechnen. Fast schon mit einem Verkehrsleitsystem vergleichbar können die Betreiber so die Auslastung ihrer Skigebiete beobachten und entsprechend reagieren.

Präsentiert werden die Daten durch einfache Bilddateien. Jeder Skitag wird mit einem Zeit/Höhen Diagram dargestellt. Detailiertere Auswertungen (Ø Geschwindigkeiten, Tagesübergreifende Statistiken) sind leider nicht möglich. Obwohl jedes Skigebiet in einer Karte verzeichnet ist, kann man sich leider nicht seine Skiroute in einer Karte anzeigen lassen 🙁. Eine Integration von Projekten wie OpenPisteMap/OpenStreetMap wäre hier noch wünschenswert.

Leider wurde auf die Sicherheit weniger Wert gelegt. Jeder der die ID eines Skipasses kennt, kann sich so im Internet dessen Tagesablauf anschauen. Dies lässt sich auch nicht ohne weiteres verhindern. Die Statistiken sind noch nicht einmal mit einem Passwort geschützt.

Eine Top 100 Liste der Skifahrer mit den meisten Höhenmetern rundet das Angebot ab.

Dieser Service ist ein Paradebeispiel für neue innovative Web 2.0 Dienste mit noch Potential in der Auswertung. Schön das er (noch) kostenlos ist.

Skiline.cc Grafik. Leider habe ich nach unserem Servercrash meine original Bilder verloren. Hier ein kleiner Ersatz
Skiline.cc Grafik. Leider habe ich nach unserem Servercrash meine original Bilder verloren. Hier ein kleiner Ersatz.

Geschichte Hausarbeit: Die atomare Bewaffnung der Bundesrepublik Deutschland

Lagervorrichtung für Atomwaffen in Deutschland
Lagervorrichtung für Atomwaffen in Deutschland.

Mal wieder kann ich euch eine Arbeit vorstellen, die ich im Rahmen der Schule erarbeiten musste. Diesmal handelt es sich um eine Hausarbeit die ich Fach Geschichte als Klausurersatz leisten musste. Thema ist die atomare Bewaffnung der BRD seit 1945. Nun leider liegt mir Geschichte nicht so sehr. Also habe ich es diesmal mit einer Hausarbeit anstatt der sonst fälligen Klausur versucht. Mal sehen was bei rauskommen wird.

Abgabetermin ist erst morgen. Vielleicht stößt meine Lehrerin so ja bei der Suche nach Plagiaten auf mein Original 😉.

Update: Und wie vermutet ist meine Lehrerin auf diesen Artikel gestoßen 😊. Auf meine Hausarbeit habe ich 10 Punkte bekommen.

Download:Die atomare Bewaffnung der BRD (Hausarbeit)

Bitte achtet auf die Lizenz im Footer der Seite. Es wäre nicht das erste mal das jemand meine Arbeit als seine ausgibt (und das sogar an meiner Schule 😊).

OpenStreetMap

OpenStreetMap is a free editable map of the whole world. It is made by people like you.

JOSM Editor
JOSM Editor.

So betitelt OpenStreetMap.org das eigene, Wikipedia-ähnliche Projekt.

OpenStreetMap hat es sich zum Ziel gesetzt, freie geographische Daten wie zum Beispiel Straßenkarten zu erstellen und allen zur Verfügung zu stellen. Dieses Projekt wurde begonnen, weil so ziemlich alle Karten, von denen man glaubt, dass sie von jedem für alle Zwecke und kostenlos verwendbar sind, tatsächlich aus technischen und rechtlichen Gründen leider nur eingeschränkt nutzbar sind. Dadurch wird verhindert, dass Leute diese Karten in kreativer und produktiver Weise einsetzen können. OpenStreetMap möchte diesem unglücklichen Zustand abhelfen.

Das Projekt besitzt ein sehr umfangreiches Wiki. Es hat mir bei meinen ersten Schritten viel geholfen.

Im IRC Channel #osm-de auf irc.oftc.net wird einem auch oft gerne geholfen.

Wie auch bei Wikipedia kann jeder dazu beitragen. So habe ich meine durchs Mountainbiken und Geocachen gewonnen GPS Tracks (Spuren) in das Projekt eingefügt und damit das Kartenmaterial in meinem Heimatort Griesheim verbessert:

Animierter GPS Track
Animierter GPS Track.

Um die gewonnen GPS-Daten auch im Browser, auf dem GPS oder im Navigationssystem nutzen zu können müssen sie jedoch noch in die OSM-Datenbank eingearbeitet werden. An regnerischen Tagen kann man auch auf das Erfassen der GPS Tracks verzichten und von frei verfügbaren Karten abzeichnen.

Dazu werden Mapping Programme wie Potlatch oder JOSM benötigt. Mit ihnen ist es möglich die GPS-Datenmithilfe von Luftbildern in das OSM-Format zu vektorisieren.

Ein Screenshot von JOSM ist ganz oben zu sehen.

Jeden Mittwoch werden dann aus den Vektordaten die Karten berechnet, die man über die Website von OSM betrachten kann.

Dies sieht dann etwa so aus:

Gerenderte Map
Gerenderte Map.

Die OSM Daten liegen in einem offenen Format vor. Jeder kann sie für seine Verwendungszwecke benutzten. Vielleicht gelingt es mir ja mal meinen TSP Algorithmus mit den OSM Daten zu testen 😊.

Es gibt sogar schon einige routing-fähige Navigationsprogramme.

Alleine in Griesheim gibt es neben mir noch 6 andere Mapper, Tendenz steigend.

Bereits nächstes Jahr rechnet man damit Deutschland flächendeckend erfasst zu haben.

Oft mit einer besseren Qualität als die Konkurrenten Tele Atlas und NavTeq. Dies zeigt auch der Vergleich zwischen Google Maps (welches Tele Atlas Daten benutzt) und OSM.

OpenStreetMap maps are licensed under the Creative Commons CC-BY-SA license:

Creative Commons License
Creative Commons License.

TetraBot, selfmade Omniwheels

Der TetraBot soll sich effektiv und schnell bewegen können. Das gelingt ihm am besten durch einen Omnidirektionalen Antrieb. Dieser basiert auf speziellen Rädern, den “Allseitenrädern“, die ich euch hier vorstellen werde. Die dafür nötigen Servos habe ich in einem anderen Beitrag bereits gemoddet.

Raul Rojas and Alexander Gloye Förster verfassten auch eine wissenschaftliche Arbeit zum omni-direktionalen Antrieb.

Kommerzielle Omniwheels gibt es hier: www.omniwheel.com. Preislich liegen sie aber nicht in meinem Bereich und sind wegen der hohen Portokosten auch gleich ausgeschieden…

Also hab ich mich selber ans Werk gemacht. Preislich bin ich mit meiner Variante bei ca 10 € für alle vier Räder gelandet.

Super Nintendo Controller am USB Port

Heute hab ich es letztendlich doch geschafft das SNES Controller 2 USB Projekt ( /raphnet/4nes4snes ) von Raphaël Assénat nachzubauen. Nach einem erfolglosem Anlauf (ich hab wohl den MCU beim Löten zerstört) musste ich nochmal komplett von vorne beginnen 🫤.

SNES Controller mit USB Port
SNES Controller mit USB Port.

Es können bis zu vier SNES oder NES Kontroller aufeinmal mit dem Rechner verbunden werden.

Vor etwa einem Jahr baute ich bereits das Gehäuse und versah die Kontroller mit neuen Steckern. Damals benutzte ich aber noch den LPT Port um die Kontroller abzufragen. Mein neuer Laptop besitzt aber nur noch USB Ports. Also musste ich das ganze etwas umfunktionieren.

Also noch einmal das Breadboard ausgepackt, der Mikrocontroller programmiert und wieder ein schönes Layout für meine Lochrasterplatine entworfen. Diesmal aber mit IC-Sockel für den kleinen ATMega8.

Dieses Projekt kommt ohne einen extra Wandler-IC für die USB Verbindung aus und besteht deshalb nur aus einer Hand voll Bauteilen. Es wurde V-USB eine Software USB Implementierung von Objective Development eingesetzt.

SNES Controller USB Platine
SNES Controller USB Platine.

Die angeschlossenen SNES Kontroller gibt es günstig bei eBay.

Unterbrechungsfreies, passives Wiretap Sniffing mit LSA-Verbinder

Vor etwa einem Monat berichtete ich euch bereits vom passiven Abhören mit einem Wiretap. Damals nutzte ich zwei RJ-45 Buchsen, die ich entsprechend durch kontaktiert wurden.

Unterstellt man einem Hacker nun böswillige Absichten. Ist es für ihn nötig unerkannt zu bleiben. Ein Unterbrechen der Netzwerkverkabelung, wenn auch nur für Sekunden, würde ihn verraten.

Eine unterbrechungsfreie Variante dieser Sniffing-Technik lässt sich also nur ohne das Umstecken oder Durchtrennen von Kabeln realisieren. Hier stieß ich auf einen in der Ethernet Verkabelung sehr verbreitete Technik: Die Schneid- und Klemmtechnik. Auch unter der Abkürzung LSA bekannt. LSA steht für “löt-, schraub- und abisolierfreie Technik”. Sie kommt meist in Patchfeldern oder Netzwerkdosen zum Einsatz.

Lasst euch nicht von der Farbmarkierung irritieren. Es handelt sich um ein etwas älteres Kabel mit einer eher seltenerer Kodierung: IEC 189 und IEC 708
Lasst euch nicht von der Farbmarkierung irritieren. Es handelt sich um ein etwas älteres Kabel mit einer eher seltenerer Kodierung: IEC 189 und IEC 708.

Auf dem Bild kann man oben das angezapfte Twisted-Pair Kabel erkennen. Es wurde nicht durchtrennt. Sondern lediglich von seiner Isolierung und Abschirmung befreit. Es werden nur die Adern Paare 2 (Pin 3,6) & 3 (Pin 1,2) benötigt. Diese werden über den oberen LSA-Verbinder gelegt und können nun vom unteren entsprechend abgegriffen werden (siehe unten-rechts auf dem Bild).

Ich habe diese Technik erfolgreich getestet. Während ich live über mein Streaming-Client Internetradio hörte zapfte ich das Kabel an. Und konnte mit Wireshark den Netzwerkverkehr mitlesen.

Jedoch sollte man die Kabellängen möglichst gering halten. Bei größeren Entfernungen (> 8m) brach die Verbindung teilweise ab.

Radio Beitrag: Swing Jugend (Musik)

Entartete Musik
Entartete Musik.

Für unser derzeitiges Musikthema sollten wir einen Radiobeitrag zum Thema Jazz produzieren. Bastian Hauk und ich entschieden uns erst für den Jazz im dritten Reich. Nach einiger Recherchen spezialisierten wir uns auf die Swing-Jugend. Zeitzeugen zu finden war schwer. Schließlich stießen wir auf den Swing Experten und Zeitzeugen Günter Discher, der früher in Hamburg selbst Teil der Swing Jugend war. Leider haben wir keinen Interview Partner gefunden und mussten so auf vorhandene Interviews auf CDs ausweichen. Insgesamt hat unser Kurs etwa 6 Interviews produziert, die wir nun an andere Schulen schicken wollen. Wenn rechtlich alles in Ordnung ist werden die Beiträge auch von Radio Darmstadt gesendet 😊.

Tanzen Verboten
Tanzen Verboten.

World Smallest Passive Ethernet Tap

Hello folks!

This is my first English blog post. Excuse me for my hopefully not so bad English 😊.

During my reverse engineering on the Terratec Noxon 2 Audio I had to sniff the network traffic between the Noxon and the Internet. First, I just sniffed the wireless traffic with a simple ARP spoofing attack in my switched network. But I couldn’t be sure whether I sniffed the whole traffic or if I just missed some internal traffic in my network.

After some internet research, I decided to build my own passive Ethernet tap to do a MITM (man-in-the-middle) attack.

Passive Ethernet Tap
Passive Ethernet Tap.

Last.fm & Noxon Audio 2

Anlässlich meines 8000. “gescrobbeltetn” Tracks auf www.last.fm habe ich mich entschlossen mal etwas über dieses Social-Music Netzwerk zu berichten.

Mein Last.fm Profil vom 9. Septemer 2008
Mein Last.fm Profil vom 9. Septemer 2008.
Last.fm auf dem Noxon 2 Audio
Last.fm auf dem Noxon 2 Audio.

Die Philosophie und der Aufbau von Last.fm ist in Wikipedia näher beschrieben.

Meistens höre ich die Radio Streams von Last.fm über mein Terratec Noxon 2 Audio. Dieser Hardware Audiostreaming Client bietet standardmäßig keine Möglichkeit das proprietäre Streamingformat von Last.fm wiederzugeben. Dazu ist eigentlich der Last.fm Player nötig. Dieser ist für diverse Plattformen verfügbar (Mac, Linux, iPhone und Windows).

Noxon 2 Audio Interna

Nachdem ich mich im vorherigen Beitrag über die Verwendung des Noxon’s als Last.fm Client ausgelassen habe, werde ich mich diesmal tiefer in die Interna des Streaming Clients wagen.

Genauer geht es um das Ersetzten/Erweitern der vTuner Stations Liste und das Hinzufügen eigener Services in das “My NOXON” beziehungsweise “Podcasts” Menü.

Terratec Noxon 2 Screen
Terratec Noxon 2 Screen.

Englisch Präsentation: Victoria (Australien)

Flag of Victoria

In 13/1 wird im Englisch Grundkurs Australien als Themenschwerpunkt vorgeschrieben. Jedem unseres Englischkurses wurde in Kleingruppen ein australischer Staat beziehungsweise “Territory” zugeteilt, den er Präsentieren sollte.

Wir (Jonas und ich) entschieden uns für Victoria. Jonas hatte durch Verwandte in dieser Gegend ein paar Bilder und Informationen besorgen können.

Außerdem setzten wir einen Schwerpunkt auf Melbourne mit seiner Kultur und Infrastruktur.

Wie jedes mal gibt es auch wieder ein Handout.

Download:Victoria (Presentation)
Download:Victoria (Handout)

Sommerferien - Spanien, Grönland & Roboter

In den letzten vier Wochen war ich viel unterwegs. Zunächst verbrachte ich zwei Wochen in Spanien, genauer gesagt in Andalusien. Direkt im Anschluss ging es weiter nach Grönland, wo ich eine Woche mit dem Schiff entlang der Westküste Grönlands unterwegs war.

In diesen Blogbeitrag möchte ich über diese Reisen berichten und außerdem einen Ausblick auf mein nächstes Projekt im Bereich Robotik geben.

Der etwas andere Login Prompt

Mein nun 30. Artikel ist das Resultat einer Idee aus meinem Spanien-Urlaub. Es handelt sich um einen etwas anderen Login Prompt, der bei weitem nicht die nötige Sicherheit für kritische Anwendungen bietet, dafür aber von jedem “Insider” ohne vorherige Absprache zu lösen sein sollte.

glider

Eigentlich ohne jeden Verwendungszweck hab ich einfach mal los entwickelt.

Rein rechnerisch müsste es 2^9 = 512 verschiedene Kombinationen geben. Nehmt euch mal ne halbe Stunde Zeit und probiert alle Kombinationen aus .

Viel Spaß beim drauf los Probieren. Ich will euch mal keine weiteren Hinweise geben.

Keine Angst! Es gibt einfachere Methoden. Jeder, der es schafft, hat die Kombination auch schon einmal gesehen.

Quelltext

Das n-Damen Problem

Für meine morgige Informatik-Klausur habe ich mich mal wieder an C++ gewagt um einen Algorithmus zu implementieren. Die Hauptthemen der Klausur werden das n-Dame Problem und das Josephus Problem sein.

JS, PHP & CSS Frontend
JS, PHP & CSS Frontend.

Für das n-Damen-Problem habe ich eine iterative Backtracking-Implementation in C++ geschrieben. Zudem ist es auch mein erstes funktionsfähiges und komplexeres C++ Programm 😉.

Um euch meine Ergebnisse zeigen zu können, habe ich mich bei der PHP, JS & CSS Version meines Freundes Micha bedient und sie leicht angepasst.

Das PHP-Script ruft über den Backtick-Operator das C++ Programm auf und stellt es anschließen mit JS und CSS dar.

Um den Server zu schonen habe ich die maximale Feldgröße auf 13 beschränkt. Das sind zu mindestens schon mal fünf Damen mehr als bei der PHP-Version.

Ohne die Beschränkung sind auch Problemgrößen bis 16 in einem angemessenen Zeitrahmen zu bewältigen. An den Weltrekord (25 Damen) komme ich jedoch noch nicht 😉.

Den Quellcode des C++ Programms findet ihr auf Codeberg: /stv0g/snippets/c++/ndame

Dell Latitude D630 ist da!

In den vergangenen Osterferien habe ich jeden Tag um die Ankunft meines neuen Laptops gefiebert. Als er dann sechs Tage verfrüht bei mir auf dem Tisch lag freute ich mich riesig. Hier ein Kompliment an Dell. Diese pessimistische Lieferzeiteinschätzung ist wirklich eine gute Marketing Strategie.

Meine ersten Erfahrungen mit dem D630 unter Debian Etch waren grauenvoll. Anfange lief gar nichts. Erst nach mehreren Stunden konnte ich die wichtigsten Komponenten zum Laufen bringen.

Meine Rettung war die neue LTS (Long Term Support) Version von Ubuntu, Hardy Heron, die fast zeitgleich mit dem Eintreffen meines Laptops veröffentlicht wurde.

Zu Ubuntu gibt es nicht viel zu sagen: Es läuft einfach alles!

Und das nach circa 20 minütiger Installation, ohne weitere Konfiguration.

Musik Präsentation: The Clou (Filmmusik)

Soundtrack Cover: The Sting
Soundtrack Cover: The Sting.

Im zweiten Halbjahr der zwölften Klasse wurde unsere Musik-Klausur durch eine Präsentation zum Thema Filmmusik ersetzt. Ich behandelte die Musik zum Film “The Sting” (USA 1973) welchen ich ein paar Wochen zuvor im Ersten lief.

Scott Joplin komponierte große Teile der Filmmusik im “Rag Time”-Stil. In der Präsentation gehe ich näher auf diese spezielle Form ein und analysiere den “Entertainer” von Scott Joplin. Ein weiterer Schwerpunkt liegt auf der Synthese von Musik und dem bewegten Bild (leider aufgrund der fehlenden Ausschnitte nicht nachvollziehbar). Joplin komponierte auch den bekannten Titelsong “The Entertainer” des Films (siehe Video). Für den Film wurden einige Stücke an den Film angepasst (adaptiert).

Glücklicherweise habe ich ihn auch aufgezeichnet und konnte so einige Filmausschnitte in die Präsentation einbauen, welche ich leider aus Rechts- und Ressourcengründen nicht online veröffentlichen kann. Diese sind in der Präsentation durch ein großes graues ”?” ersetzt worden.

Play

Zu unserem Klausurersatz gehörte auch ein Handout, welches ich hier auch veröffentlicht habe:

Download:The Sting (Präsentation)
Download:The Sting (Handout)

Blog Update

Eigentlich warte ich ja immer noch auf die Wordpress Version 2.5, die ursprünglich für den 10.3.08 angekündigt wurde. Nachdem bis heute noch keine neue Version veröffentlicht wurde, habe ich mich dazu entschieden meinen Blog erst einmal auf die aktuellste stabile Version zu aktualisieren. Einige Plugins benötigten ebenfalls ein Update.

Drei neue Plugins gibt es nun auch für mein Blog-System:

  • Google Analyticator
  • Search Unleashed
  • Sociable

Und hier noch der altbekannte Rest:

  • AdSense Manager
  • Akismet
  • All in One SEO Pack
  • Get Recent Comments
  • Google XML Sitemaps
  • Link Indication
  • Viper’s Video Quicktags
  • WP-Syntax

Das Plugin WordPress Database Backup werde ich demnächst durch eine systemweite Backup Lösung ersetzten.

Eigentlich bin ich gerade sehr zufrieden mit dem Blog-System. Vielleicht werde ich deswegen das Upgrade auf 2.5 etwas verzögern, bis es einigermaßen Bug-free und stabil ist.

InteractivePHP

InteractivePHP ist ein kleines Experiment mit PHP, GD & Javascript.

Dabei habe ich versucht mit PHP & GD animierte Bilder zu erstellen. Das Generieren von animierten GIFs mit GD ist kompliziert und langsam. Das Generieren eines einzelnen Frames ist dagegen denkbar einfach. InteractivePHP besteht aus zwei Komponenten:

  1. Dem Bild, das mit PHP & GD immer dynamisch generiert wird. Per GET wird dem Bild-Script die aktuelle Position der Animation mitgeteilt.
  2. Der Oberfläche, die mit HTML und Javascript das animierte Bild anzeigt und mit einem Timer das Bild alle par Millisekunden neu lädt.

In der Oberfläche habe ich einige Slider implementiert. Mit diesen kann man den Text drehen und verschieben.

Den Code gibt es hier auf Codeberg: /stv0g/snippets/interactive_php

Screenshot of InteractivePHP
Screenshot of InteractivePHP.

Dell Portables POST Bitmap Update Program

Da ich leider noch sehnsüchtig auf mein Notebook warte, verbringe ich die Zeit damit, mich über es zu informieren:

Dell Portables POST Bitmap Update Program soll es laut Dell ermöglichen die Dell-Werbung, die beim Booten angezeigt, wird zu entfernen und durch ein eigenes Bild zu ersetzten:

The POST Bitmap Update Program allows you to replace the image that is displayed during the Power-On Self Test (POST) of your Dell Portable computer. By default, the image displayed during POST is the Dell logo. This image can be replaced by a specially formatted image loaded into non-volatile memory (NVRAM) using SPLASH.EXE. The image remains in memory even when power has been removed from the system.

The image which is loaded into NVRAM must be in bitmap (.bmp) format. The image can be no larger than 640 pixels wide by 480 pixels high and must use 16 colors.

Dell Boot Logo
Dell Boot Logo.

Ferien! Auf zum Cachen!

Juhu endlich sind wieder Ferien. Also wieder mehr Zeit zum Cachen. Cachen? Ja Geocachen, eines meiner Hobbies. Meine Caching-Saison wurde am Donnerstag, leider zeitgleich mit meinem Geburtstag, mit dem “GrünDönerstag” eingeleitet. Wie letztes Jahr veranstalteten auch die Darmstädter Geocacher wieder ein Event zum Gründonnerstag. Durch das Wortspiel hat man sich deutschlandweit geeinigt am Gründonnerstag Döner essen zu gehen. So haben sich in allen größeren Deutschen Geocaching-Metropolen die Geocacher zum gemeinsamen Essen & Cachen getroffen. In Darmstadt hat man wie letztes Jahr wieder das “Ye BaBam Ye” als gemeinsamen Treffpunkt gewählt.

Gründönerstag 2008
Gründönerstag 2008.

Auf dem Foto bin ich übrigens auch zu sehen. Leider nicht sehr schön getroffen 🙁. Weitere Bilder gibt es in BlueGerbil’s Album!

18 und mehr...

Ja endlich bin ich es auch! Volljährig!

Lange habe ich nun schon darauf hin gefiebert. Schließlich war es doch ein wenig ernüchternd. Meine Führerschein hab schon, bin aber bisher noch nicht alleine gefahren 🙁. Ansonsten hat sich auch nicht viel geändert. Zugegebenermaßen hatte ich das auch nicht erwartet. Bank, Versicherung & Verwandte stehen Schlange…

Nur das Wetter spielt dieses Jahr etwas verrückt. Bei uns schneit es täglich, und das in Hessen während Ostern!

Dafür gibt es diesmal ein fettes Geburtstagsgeschenk:

Dell Latitude D630
Dell Latitude D630.

Nach einigen Recherchen habe ich mich schließlich für einen Dell Latitude D630, und gegen ein Modell der Inspiron Serie, entschieden. Mein Vater besitzt ein ähnliches Modell als Dienst-Notebook. So fiel mir die Entscheidung etwas leichter.

Search highlighting via Referrer

Für die Website der Handball Abteilung des TuS Griesheims habe ich eine Suchfunktion inklusive Hervorhebung (engl. highlighting) der Suchergebnisse in PHP implementiert.

Die Funktionen dieser Highlighting Funktion umfassen:

  • Die Suchoperatoren der booleschen Volltextsuche von MySQL werden entfernt
  • Durch Leerzeichen getrennte Suchbegriffe werden einzeln hervorgehoben
  • Die Suchbegriffe werden mit verschieden Farben hervorgehoben
  • Sonderzeichen werden escaped
  • Aus dem Referrer verschiedener Suchmaschinen werden die Suchbegriffe extrahiert und hervorgehoben

Neue IP für Zyxel Router mit curl

Einige dürften das Problem gut genug kennen: Viele File Hoster begrenzen den Download Traffic einer IP auf wenige hundert Megabytes pro Tag. Um diese Begrenzung zu umgehen bedarf es einer neuen IP. Hier zeigt sich der wohl einzige Vorteil der dynamischen IP Adressen für Privatkunden. Die begrenzte Verfügbarkeit von IP Adressen zwingt die Access Provider die IP Adressen dynamisch aus einem Pool an die Router zu verteilen. Bei einem erzwungenen Reconnect ändert sich die IP Adresse dann mindestens jeden Tag einmal. Diese Dauer ist aber nur nach oben begrenzt. Prinzipiell wäre es möglich seine IP Adresse jede 10 Minuten zu ändern. Oder wenn das Download Limit des File Hosters erreicht wurde. Dazu bedarf es normalerweise ein paar Klicks im Admin Menü des Routers. Für das “Arcor-DSL WLAN-Modem 100” hinter dem sich ein Zyxel Prestige HW660 verbirgt habe ich folgendes Bash Script geschrieben.

Casio FX 9750G Plus

Im Mathematik Leistungskurs haben wir uns für einen Grafischen Taschen Rechner (GTR) von Casio entschieden. Die wesentlichen Features des FX 9750G Plus sind auf der Herstellerseite aufgelistet.

Die für mich interessanteste Neuerung war die Möglichkeit den GTR über ein Kabel an den Rechner anzuschließen. Mit dem Kabel ist es möglich alle Ergebnisse, Graphen und Programme zu überspielen. Das sonst sehr umständliche Eingeben von Programmen und Spielen wird nun zum Kinderspiel. Im Internet gibt es bereits zahlreiche Sammlungen von GTR-Programmen.

LIO SV Website

Unter www.lio-underground.de.vu ist seit einigen Monaten die erste offizielle Website der LIO Schülervertretung online. Die zuerst statische HTML Seite wurde durch Micha und mich durch ein dynamisches Content Management System mit Forum ersetzt. Die neue Website basiert auf Clansphere. Micha hat mit seinen Kenntnissen als Hauptentwickler von Clansphere das System an die Bedürfnisse der SV angepasst.

Auf der neuen Seite soll über neue Projekte der SV informiert werden. Mit dem Forum soll das Diskutieren über die aktuelle Schulthemen ermöglicht werden. Vielleicht bildet sich ja auch mal eine kleine Schul Community. Für die Zukunft haben wir uns das Integrieren des Vertretungsplan in die Seite vorgenommen. Leider müssen dafür noch einige Hindernisse überwunden werden.

Screenshot der LIO SV Website
Screenshot der LIO SV Website.

Neue Website der Handballabteilung des TuS Griesheims

Seit ein paar Wochen ist die neue Website der Handball Abteilung des TuS Griesheims online. Nach etwa einem halben Jahr Entwicklungszeit habe ich das Grundgerüst der Seite komplett neu implementiert. Das Content Management System (CMS) der Vorgänger Seite stellte sich als zu komplex dar uns sollte durch ein einfaches und intuitives System ersetzt werden.

Die Website stellt grundlegende Informationen über die Abteilung und die Mannschaften sowie liefert aktuelle Ergebnisse und Berichte.

Mein Ziel war es ein selbstständiges System zu entwickeln, welches den Admin entlastet. So werden zum Beispiel zu Saisonende alle Berichte der vergangenen Saison archiviert.

Eine interessante Funktion ist auch die Synchronisierung der Spielpläne und Ergebnisse externen Datenquellen. Oder auch z.b. die Foto Gallerie, welche die Bilder automatisch in verschiedenen Größen generiert. Besucher der Seite können bestimmte Beiträge kommentieren oder sich im Gästebuch verewigen.

Screenshot TuS Griesheim Handball Website
Screenshot TuS Griesheim Handball Website.

TF1 Logo für den Bundes-Fremdsprachen Wettbewerb 2007

Wie letztes Jahr habe ich wieder eine TF1 Senderlogo Animation für das Team der LIO der 12 Klasse designed. Dazu musste ich sogar mal wieder Windows reaktivieren um 3ds Max benutzten zu können.

Diesmal gab es eine Weihnachtssendung des Senders. Also musste es etwas weihnachtlicher werden:

Hier noch die 3ds Max Dateien:

Download:TF1 Landschaftsanimation
Download:TF1 Logoanimation

Chemie Präsentation: Brennstoffzelle

Die Präsentation ist eine Einführung in das Thema der Brennstoffzelle. Ich hielt sie als Abschluss zum Themenkomplex der Elektrolyse, der in der elften Klasse in Chemie behandelt wird.

Die Präsentation war wohl meine bisher beste und längste Präsentation. Ich wurde mit 15 Punkten bewertet und mit lautstarkem Applaus und Anerkennung belohnt. Die Präsentation dauert etwas mehr als eine Stunde. Die anschließende Diskussion noch mal etwa eine viertel Stunde. Über meinen Vater bekam ich zwei Elektroden Platten einer Brennstoffzelle, mit denen ich die Funktionsweise sehr schön erklären konnte. Auch die Vorbereitung auf die Präsentation hat richtig Spaß gemacht.

Download:Die Brennstoffzelle (Präsentation)

DVBViewer FAQ - Wettbewerb

Vor einiger Zeit, als ich noch aktiver DVBViewer User war, habe ich dort an einem Dokumentations Wettbewerb teilgenommen. Dieser wurde von Steffen Klausing ausgerichtet. Damals habe ich sogar gewonnen. Leider wohl nur wegen der Tatsache, dass ich der einzige Teilnehmer war. Aber schon wegen des Gewinns (eine Flasche Whisky) hat sich die Mühe gelohnt. Leider wurden meine beiden Artikel nie veröffentlicht 🙁. Vielleicht lag es an ihrer Qualität? Oder ich habe den geforderten Artikeltyp verfehlt. Ursprünglich hätten die eingesendeten Artikel auf www.dvbviewerfaq.de veröffentlicht werden sollen. Trotzdem möchte ich sie wenigstens über meinen Blog veröffentlichen.

In DVBViewer - IR FAQ beschreibe ich den Aufbau eines Infrarotempfängers für den Rechner und dessen Konfiguration.

Und in DVBViewer - LCD FAQ zeige ich wie man ein Dot-Matrix LCD an den Rechner anschließt und konfiguriert. Hier könnte auch noch meine jaLCDs Config für dich interessant sein.

Beide Artikel sind schon etwa ein Jahr alt und deswegen vielleicht nicht mehr auf dem aktuellsten Stand.

jaLCDs Config für DVBViewer

Zu den Zeiten, als Windows noch mein bevorzugtes OS war, benutzte ich regelmäßig den DVBViewer. Der DVBViewer ist ein Programm zum Ansteuern von DVB Hardware. Es unterstützt sämtliche DVB Karten mit BDA-Treiber, Technotrend Karten und schon einige HDTV Karten. Besonders auf die Aufnahmeplanung und Verwaltung wird sehr viel Wert gelegt. Dabei bleiben leider die Grundfunktionen eines Media Centers etwas auf der Strecke (Dafür wurde die Software eigentlich ja auch nicht entwickelt). Zwei große Vorteile des DVViewers ist dessen Plugin Unterstützung und die wirklich große Community. Der DVBViewer wird von einem kleinen Team von Entwicklern als Closed Source Projekt entwickelt und ist für 15 € als Download auf der DVBViewer Website (http://www.dvbviewer.info) zu erhalten.

Als Windows Nutzer war ich regelmäßig im Forum aktiv und habe beim Aufspüren von Fehlern und dem Unterstützen neuer Usern geholfen. Leider basiert die Software sehr auf den Windowseigenen DirectShow Filtern. Eine Portierung zu Linux ist deswegen praktisch unmöglich. So musste ich durch meinen Wechsel zu Ubuntu Linux leider eine andere Software benutzten. Noch heute vermisse ich den DVBViewer 😊.

Aber nun endlich zu meiner jaLCDs Konfiguration: Wie schon vorhin erwähnt besitzt der DVBViewer eine Plugin Schnittstelle. Für Dot-Matrix LCDs gibt es ein Plugin für die Anbindung an jaLCDs. Die dem Standardkonfiguration des Plugins ist sehr einfach gehalten und schöpft nicht die Möglichkeiten von jaLCDs voll aus. Nachdem in der Community mehrmals einige Ansätze aufgetaucht sind, habe ich mich entschlossen selber einen Versuch zu wagen.

Meine jaLCDs Konfiguration habe ich damals auch im DVBViewer Forum veröffentlicht.

Das ist dabei herausgekommen:

jaLCDs Config for DVBViewer by Steffen Vogel

Version: 1.5.1

Contact:

Some more infos: http://www.dvbviewer.info/forum/index.php?showtopic=12270

  1. Copy dvbviewer.cfg in your jaLCDs Folder
  2. Copy dvbv.char in your jaLCDs Folder
  3. Restart jaLCDs for reloading the char file
  4. Choose the cfg file from jaLCDs menu
  • Broadcast Logos
  • Better description displaying
  • Some more futures (unfortunately the jaLCDs Plugin does not provide more futures)

mfg Steffen

Download:jaLCDs Config für DVBViewer (Chars + Config)
DVBViewer Forums Signatur
DVBViewer Forums Signatur.

My first Lines of Quick Basic

Beim Aufräumen sind mir gerade meine ersten Zeilen Code auf den Mauszeiger gefallen. In der fünften Klasse begann ich mit Quick Basic meine ersten Programmier Erfahrungen zu sammeln. Meine erste Zeile dürfte wohl ein einfaches beep gewesen sein. Danach ließ es mich nicht mehr so schnell los und ich schrieb zahlreiche kleine Programme in Quick Basic. So war mein erstes umfangreicheres Programm eine Lichtorgel, die über den LPT-Port eine Relais-Karte ansteuerte und zahlreiche vorprogrammierte Abläufe wiedergab.

Zum Entwickeln habe ich mir eine kleines LPT LED Modul gebastelt:

LPT LED Modul
LPT LED Modul.
Download:Lichtorgel

Mein zweites Projekt war ein Programm zum Erfassen von Rundenzeiten. Anfangs benutzte ich es für meine Carrera Bahn dann für mein RC-Car. Je nach dem wurde die Zeit per Laserlichtschranke oder per Reed-Relais gemessen. Anfangs wurden die Signale über eine umgebaute Tastatur eingelesen. Später habe ich dann schließlich den COM-Port verwendet. Das Programm wird teilweise noch heute für die Carrera Bahn benutzt und wird deswegen manchmal auch noch weiterentwickelt. Die gemessenen Zeiten werden auf dem Bildschirm ausgegeben und zusätzlich in eine Datei geschrieben. Auch eine Ampel ist integriert. Diese kann ihre Signale auch akustisch und über den LPT-Port ausgeben. Mit der entsprechenden Relais-Karte von der Lichtorgel lässt sich so eine größere Ampel realisieren.

Download:RaceTime
Screenshot der RaceTime GUI
Screenshot der RaceTime GUI.

Abschließend will ich hier noch ein paar andere, kleine Programme aus dieser Zeit festhalten:

Download:First Lines

PW Mindmap: Globalisierung

Hier kann ich euch mal wieder ein Ergebnis aus einer meiner Präsentationen in Politik und Wirtschaft zeigen.

Als Abschluss des Themas Globalisierung war es meine Aufgabe das Erlernte noch einmal zusammen zufassen.

Dazu wählte ich eine Mindmap:

PW Mindmap: Globalisierung
PW Mindmap: Globalisierung.

PW Präsentation: Das Leben in der Leere

In der elften Klasse sollten wir eine Präsentation über die demographische Entwicklung Deutschlands halten. Dieses wurde ich Themenverwandtes Essay ergänzt.

Präsentation: Das Leben in der Leere Essay: Demographischer Wandel in Deutschland

Delphi 2D-Autorennen

Als Abschluss des Informatik Grundkurses der elften Klasse möchte ich hier nun unsere Implementierung eines 2D Autorennspiels in Delphi vorstellen. Anfangs bestand die Aufgabenstellung darin ein ein-dimensionales Rennspiel zu entwickeln, bei dem der Spieler mit den schnelleren Fingern gewinnt. Also quasi ein einfaches Geschicklichkeitsspiel. Anfangs sind wir daher nur auf einer Linie gefahren. Aber wer hätte es gedacht? Nach einer Zeit wurde das ziemlich langweilig. Und da wir noch genügend Zeit hatten, strukturierten wir unseren Code grundlegend neu und fügten die Simulation von Beschleunigung und Verzögerung hinzu.

Screenshot des 2D Autorennens
Screenshot des 2D Autorennens.

Trotzdem sind wir noch nicht über die erste Dimension hinaus gekommen. Nachdem nach der vierte Doppelstunde immer noch nicht alle fertig waren und wir schon dabei waren Extras und Cheats einzubauen, habe ich mich dann entschlossen in die zweite Dimension zu gehen. Die kleine Physik-Engine behielten wir bei und fügten die Möglichkeit hinzu die Autos zu lenken. Aber nun hatten wir ein Problem: wie wird die nun zwei-dimensionale Strecke begrenzt? ine Strecke mit Canvas Objekten zu zeichnen war uns zu aufwendig und auch nicht gerade sehr schön. Wir bedienten uns daher einer Technik die auch als “Colorcoding” bekannt ist: verschiedene Farben in einer Bitmap markieren, fahrbare Bereich und Barrieren. Einen Rundenzähler und eine Konfigurationsdatei rundeten schließlich das Projekt ab.

Color Coding der Fahrbahn
Color Coding der Fahrbahn.

Wir legten diesmal viel Wert auf die objektorientierte Entwicklung des Codes, da dies das aktuelle Unterrichtsthema ist.

Ein Frontend für die Einstellungen sparten wir uns, um uns mehr auf die “Physik” konzentrieren zu können. Die Einbindung eines INI-Files lernte ich nebenbei auch noch. Das Autorenn Program ist also als Gegenstück zum Potenzübungs Program zu sehen. Hierbei legten wir mehr Wert auf ein schönes GUI mit Hilfe und Installer.

Ihr könnt den Quellcode gerne für eure Projekte weiterverwenden. Ich bitte jedoch um einen kurzen Kommentar und einen Hinweis im GUI, Danke

Download:2D Delphi-Autorennen

Des Weiteren ist das Projekt auch auf Codeberg zu finden: /stv0g/2d_autos .

Delphi Potenzübungsprogramm

Im Rahmen unseres Informatikunterrichts in der zehnten Klasse wurde unsere Leistung durch eine Projektarbeit bewertet. In kleinen Gruppen arbeiteten wir an jeweils unterschiedlichen Projekten.

Das Potenz Übungsprogramm war unser erstes kleines Delphi-Projekt. Wir steckten unsere ganze Motivation hinein und fügten sogar eine Hilfe mit Bildern und einen Installer hinzu. Wir teilten unsere Gruppe in Programmierung, Packaging und Dokumentation auf 😉. Jeder hatte ja seine eigenen Vorlieben und Fachgebiete.

Das Hauptprogramm
Das Hauptprogramm.

Die Aufgabenstellung bestand darin ein kleines Potenzübungsprogramm zu entwickeln, welches beim Lernen der Potenzregeln helfen sollte. Wir fügten eine Fehlerkorrektur, einen Webkampfmodus mit Onlineranking hinzu (ist leider nicht mehr online). Wir legten viel Wert auf eine intuitive und schnelle Bedienung. Das Programm ist komplett über die Tastatur bedienbar. Der User bekommt eine akustische Rückmeldung seines Ergebnisses und abschließend eine statistische Auswertung seiner Übung.

Hier wurde nichts vergessen
Hier wurde nichts vergessen.

Mit dem Projekt lernten wir alle Möglichkeiten von Delphi kennen. Und natürlich mussten wir fast alle Features und Gimicks (App-Icon, Hilfe, etc) einmal ausprobieren. Also unser Programm ist eine “Eierlegende Wollmilchsau” und daher wohl auch eher eine Art Machbarkeitsstudie, um unseren lieben Informatiklehrer zu beindrucken 😉.

Ihr könnt den Quellcode gerne für eure Projekte weiterverwenden. Bitte beachtet jedoch die GPL.

Download:Delphi Potenzübungsprogramm (`.msi` Installer mit Quellcode)

Alternativ gibt es den Quellcode auf Codeberg: /stv0g/potenz .

/_astro/potenz-about.lpwiOXmJ.png /_astro/potenz-help-contents.C2LdTVMw.png /_astro/potenz-help.DEbawPon.png /_astro/potenz-icon.CTtqCCI6.png /_astro/potenz.HKtLroAG.png

Kryptex als Geocaching Behälter

Hier will ich jetzt mein Kryptex vorstellen, welches ihr gerne als Cachebehälter verwenden dürft. Später wird hier auch noch eine Bauanleitung zu finden sein. Nun fragt ihr euch vielleicht warum der ganze Aufwand? Grundsätzlich ging mir es nur darum ob es möglich ist ein eigenes Kryptex zu basteln. Inspiriert wurde ich von diesen Designer Kryptexen: https://www.cryptex.org. Dabei kam ich dann auch sehr schnell auf die Idee das Kryptex als Geocachebehälter zu verwenden und den Code einfach in das Rätsel einzubauen. Von dieser Idee war ich so begeistert, dass ich sofort in den Baumarkt gerannt bin und die billigsten Materialien für einen ersten Versuch gekauft habe. Die Materialien die ich schließlich auch verbaut habe kosten nur um die 3 bis 4 €. Also wirklich um die hundert mal billiger als die käuflich zu erwerbenden.

Im grünen Geocaching Forum gibt es noch einen Thread über mein Kryptex.

Neue Website

Tja, mich hat es mal wieder nicht lange bei meiner alten Website gehalten. Der Hauptgrund dafür dürfte wohl die umständliche Handhabung des Inhalts über den Quelltext gewesen sein. Ich hoffe nun mit dem Blog endgültig eine Informationsplattform für mich gefunden zu haben.

Ich will hier versuchen nützliche Informationen, Tipps, Tricks und Erfahrungen aus meinem Alltag zu veröffentlichen

Auf der Suche nach der richtigen Blog-Software habe ich mich einfach mal von anderen Blogs inspirieren lassen. Viele von ihnen ähneln sich sehr 🙁. Teilweise wird auch der Inhalt stur von anderen Seiten kopiert ohne einen Verweis einzufügen. Das halte ich für ziemlich rücksichtslos und unsinnig. Deshalb werde ich nicht über Themen berichten, die schon in zig anderen Blogs vor mir behandelt wurden. Ich möchte einzigartig sein und mich mit informativen und einzigartigen Beiträgen von der Blogosphäre abheben. Mein Ziel ist es nicht viele Beiträge zu schreiben oder meinen Blog als Tagebuch zu missbrauchen. Ich auch will keine Community hinter einem Blog aufbauen wie es in anderen großen Blogs gemacht wird. Jedes mal wenn ich im Internet zu einer bestimmten Problemstellung nicht fündig werde, wird es einen neuen Beitrag geben.

Also auf ein neues. Ich hoffe euch mit meinen Beiträgen weiterhelfen zu könen…

Steffen