DevDiary

Code – Ein Kalender

Ich habe heute mal aus Spaß angefangen eine kleine Kalender Applikation zu entwickeln.
Ist zwar noch nichts besonderes, sie erfüllt aber trotzdem ihren Zweck und zeigt eine Übersicht über die Wochentage des aktuellen Monats an.
Die Anwendung nutzt die Bibliotheken von Gnome 3 und ist in Python geschrieben sodass sie sich leicht erweitern und an die eigenen Bedürfnisse anpassen lässt.
Die Basis besteht derzeit aus knapp 100 Zeilen Quellcode sowie ein Icon dass ich mithilfe von Gimp erstellt habe.

Es sind im Grunde nur ein Haufen Labels in einem Grid.
Die erste Reihe in dem Grid ist immer für die Namen der Wochentage reserviert.
Namen der Wochentage werden dabei automatisch in der Systemsprache angezeigt.
Zusätzlich wird die Schrift von dem Samstags- und dem Sonntags-Feld Rot gefärbt um sie als freie Tage besser zu erkennen.

Ich plane noch eine Funktion zur Verwaltung von Aufgaben und Events einzubauen sodass man für jeden Tag diese einzeln festlegen kann.

Hier ein Bildschirmfoto wie die Software aktuell aussieht:

Quelle - Marc Volker Dickmann

Quelle – Marc Volker Dickmann

KurzeTipps – Markdown Syntax Übersicht

Letztens wollte ich mir ein Paar Dinge aufschreiben und hatte vor dafür den Markdown Syntax zu verwenden.
Da ich diesen jedoch nicht im Kopf hatte habe ich mir gedacht dass eine Übersicht auf meinem Blog nützlich wäre und so eine kleine Übersicht des
Markdown Syntax ausgearbeitet.
Dabei habe ich mich an dem Wikipedia Beitrag von Markdown orientiert.

Hier die Übersicht:

# Markdown Syntax

* Absatz
* Zeilenumbruch
* Schrift verändern
		* Kursiv
		* Fett
		* Fett kursiv
* Text markieren
* Listen
		* Ungeordnete Liste
		* Geordnete Liste
* Überschriften
		* HTML-Überschriften
		* Alternativen
* Zitate
* Links
* Bilder

Absatz
======

Markdown ist ein einfacher Weg Notizen übersichtlich zu gestalten.

Eine Leerzeile erzeugt dabei einen Absatz.

Zeilenumbruch
=============

Zwei oder mehr Lehrzeichen am Ende der Zeile  
erzeugen eine Zeilenumbruch.

Schrift verändern
=================

Kursiv
------

*Kursiv* oder _Kursiv_

Fett
----

**Fett** oder __Fett__

Fett kursiv
-----------

***Fett kursiv*** oder ___Fett kursiv___

Text markieren
==============

Markierter `Quelltext`

Listen
======

Ungeordnete Liste
-----------------

* Ein Punkt in einer ungeordneten Liste.
		* Ein unterpunkt von dem Punkt über diesem.
* Ein weiterer Punkt.

Geordnete Liste
---------------

1. Punkt eins in einer geordneten Liste.
2. Punkt zwei.

Überschriften
=============

HTML-Überschriften
------------------

# Überschrift von der ersten Ebene
## Überschrift der zweiten Ebene

Alternativen
------------

Überschrift der ersten Ebene
============================

Überschrift der zweiten Ebene
-----------------------------

Zitate
======

> Ein Zitat welches in ein HTML-Blockquote-Element gepackt wird.

Links
=====

[Beschriftung des Links](http://devdiary.org/ "Titel, der beim überfahren mit der Maus angezeigt wird")

Bilder
======

![Alternativtext](Bild-URL "Bildtitel")

PythonGames – Name gefunden und auf Launchpad verfügbar

Ich habe dem neuem Spiel nun einen Namen gegeben, KingsCross.
Zusätzlich zu den Änderungen, Fixes und neuen Features habe ich auf Launchpad nun ein Projekt dafür gestartet.
Ich weiß noch nicht wie lange ich dass Spiel weiterentwickeln werde jedoch habe ich erst mal die Lizenz GNU GPL v3 gewählt sodass jemand anders es nach mir weiterentwickeln kann.

Falls jemand Bugs findet oder Ideen dazu hat kann mir diese auf der Launchpad Seite mitteilen und ich werde nach Möglichkeit diese in dass Spiel einbauen.

Hier noch ein Bildschirmfoto:

Quelle - Bildschirmfoto von KingsCross

Quelle – Bildschirmfoto von KingsCross

PythonGames – Neues Spiel

Ich arbeite derzeit mal wieder an einem Spiel welches ich in Python programmiere.
Es soll ein Aufbauspiel wie Anno oder Sim City werden und ist bereits spielbar, auch wenn ich noch nicht alle Features eingebaut habe die ich mir für die erste Veröffentlichung Ausgedacht habe.

Ich nutze dafür die Bibliothek Pygame für die ich mir auch einen kleinen Wrapper geschrieben habe.
Den Wrapper nutze ich unter anderem für die GUI Elemente wie Buttons.

Wie man auf dem Bildschirmfoto bereits erkennen kann spielt dass Spiel in der Vergangenheit wobei ich später noch mehrere Epochen einbauen möchte.
Ähnlich wie die Siedler ist dass Spiel jedoch runden basiert sodass man zwar in einer Runde unendlich viel Bauen kann aber beispielsweise die Gebäude nur pro runde die Materialien produzieren.

Um die Geschichte zu erzählen habe ich mir ein Quest System ausgedacht wobei es bei jeder Quest auch unterschiedliche Belohnungen gibt.
Die Belohnungen passen dabei immer zu der Aufgabe und werden in dem jeweiligem Quest Text genauer erklärt.

Die Grafiken und der Code stammen dabei von mir jedoch plane ich es später einmal unter einer Open Source Lizenz zu veröffentlichen.

Hier ein erster Eindruck:

Quelle - Marc Volker Dickmann

Quelle – Marc Volker Dickmann

Wallpaper – Pimp my DevDiary

Ich habe wiedermal einen neuen Wallpaper designt.
Diesmal habe ich mich von dem Logo der bekannten TV Show Pimp my Ride inspirieren lassen jedoch als Schrift Ubuntu, welche etwas schlichter ist, gewählt.
Als Auflösung habe ich wie immer 1920×1080 gewählt und über einen klick auf dass Vorschaubild kann der Hintergrund in dieser Auflösung heruntergeladen werden.

Quelle - Wallpaper von Marc Volker Dickmann

Quelle – Wallpaper von Marc Volker Dickmann

Viel Spaß damit.

Code – Kleine ToDo Liste für den Webbrowser

Da ich öfter eine kleine ToDo Liste brauche und dafür nicht jedes mal extra ein Programm installieren möchte habe ich mir eine HTML Datei angelegt die eine bietet.
Dafür habe ich HTML, CSS und JavaScript verwendet sodass sie eigentlich auf jedem JavaScript fähigem Gerät benutzt werden kann.
Allerdings ist diese nicht mal fähig die Daten zu speichern wobei dies mit HTML5 sich auch nachträglich hinzufügen lässt.

Hier der Code:

<!-- Copyright 2014 Marc Volker Dickmann -->
<html>
	<head>
		<title>ToDo's</title>
		<meta charset="UTF-8">
		<script language="javascript">
			function add_todo() {
				var mainlist = document.getElementById("mainlist");
				var text = document.getElementById("todo").value;
				mainlist.innerHTML = mainlist.innerHTML + "<li>" + text + "</li>";
			}
		</script>
		<style>
			div.main {
				width: 80%;
				background: #fcffb4;
				border-left: 1px solid #e3e6a2;
				border-right: 1px solid #e3e6a2;
				border-top: 1px solid #e3e6a2;
				margin-left: auto;
				margin-right: auto;
				font-family: ubuntu;
			}
			ul.todolist {
				list-style: none;
			}
			ul#mainlist {
				min-height: 600px;
				padding-bottom: 0px;
			}
			ul#input input {
				width: 90%;
				height: 64px;
				background: #54362d;
				border: 2px solid #70483c;
				color: black;
				text-align: center;
				font-size: 60px;
			}
			ul#input button {
				background: #54362d;
				border: 2px solid #70483c;
				color: black;
			}
			ul.todolist li {
				width: 90%;
				height: 64px;
				background: #5f3d33;
				border: 1px solid #70483c;
				color: black;
				margin-left: 3.5%;
				margin-right: 3.5%;
				margin-top: 3.5%;
				text-align: center;
				font-size: 60px;
			}
		</style>
	</head>
	<body>
		<header>
			<h1>ToDo's</h1>
		</header>
		<div class="main">
			<ul id="mainlist" class="todolist">
			</ul>
			<ul id="input" class="todolist">
				<li><form action="javascript:add_todo();"><input id="todo" type="text"><button type="submit">+</button></form></li>
			</ul>
		</div>
	</body>
</html>

Hardware – Raspberry Pi gekauft und nun?

Der Raspberry PI ist ein 30 Euro Mini Computer auf dem Linux läuft und der über Ein und Ausgänge ähnlich dem Arduino verfügt.
Zusätzlich ist die Hardware Open Source und somit kann jeder sich einen Raspberry Pi selber Zusammenlöten falls Interesse besteht.
Mit 30 Euro eignet er sich also Ideal für Projekte bei denen der Einsatz eines großen PCs entweder vom Stromverbrauch oder der Verlust durch einen Fehler zu teuer werden.
Damit man sofort Loslegen kann möchte ich hier alles über den ersten Start damit zusammenfassen.

20140206-114039.jpg

Quelle – Foto von Marc Volker Dickmann

Vorbereitung

Damit nach der Lieferung der Spaß sofort beginnen kann sollten einige Dinge zuvor geprüft werden.
Ein Beispiel ist die Notwendigkeit eines HDMI Monitors oder einen Monitor mit Chinch Eingang (Gelb) der zumindest für die Installation notwendig sein wird.
Der Monitor muss danach aber nicht weiter an den Pi angeschlossen sein da nach der Installation des Betriebssystems alles weitere über dass Netzwerk erledigt werden kann.

Daneben ist eine USB Tastatur für die Installation ebenfalls erforderlich welche genau wie der Monitor nur für die Installation des Betriebssystems erforderlich ist und danach wieder dem Ursprünglichen Zweck zurückgeführt werden kann.

Der PC und der Kartenleser wird für dass Kopieren der Betriebssystemdaten auf die SD Karte gebraucht.
Nach der Installation wird der PC für die weitere Konfiguration und Steuerung des Raspberry Pi’s verwendet.

Voraussetzungen

– Einen Monitor mit HDMI oder Video Chinch (Gelb)
– Ein HDMI oder Video Chinch (Gelb) Kabel
– Eine USB Tastatur
– Einen SD Kartenleser für den PC
– Einen PC

Quelle - Foto von Marc Volker Dickmann

Quelle – Foto von Marc Volker Dickmann

Einkauf

Wer noch Raspberry Pi gekauft hat kann sich beispielsweise einen bei Reichelt bestellen.
Damit dass einfacher geht habe ich hier eine Liste mit Erklärung sowie einen Link über den alle nötigen Teile in den Warenkorb von Reichelt gelegt werden können.

Bei dem Raspberry Pi handelt es sich um einen Einplatinencomputer was bedeutet dass auf der Mainboardplatine bereits alles Komponenten wie CPU und GPU fest installiert sind.
Einplatinencomputer sind meist klein und für einen erschwinglichen Preis im Fachhandel oder über dass Internet beziehbar.
Besonders für Leute die Elektronik mit dem Computer steuern wollen sind Einplatinen Computer Ideal und im Internet findet man eine breite Auswahl an Projekten wie beispielsweise eine Kaffeemaschine die über dass Internet gesteuert werden kann.

Für den Raspberry Pi gibt es aktuell 3 Versionen die ihre eigenen Vorteile haben allerdings ist die 3. Version (B+) noch ganz neu und daher nicht überall erhältlich und somit empfehle ich erst mal die Version B.
Die dritte Version gleicht der B was die Systemleistung angeht und bringt nur einige Verbesserungen wie mehr GPIO Pins, 2 USB Buchsen mehr usw. mit.
Die Version B bietet immerhin 512 MB Arbeitsspeicher, 10/100 MB Ethernet sowie einen 700 MHZ schnellen Prozessor.
Die GPU ist dabei in dem Prozessor eingebaut jedoch leistungsfähiger als die CPU und somit ideal für komplizierte Berechnungen.

Vorsicht ist bei dem Kauf über Amazon und dergleichen da es einen Qualitativ minderwertigen Nachbau aus China gibt der dort oft vertrieben wird.

Um den Raspberry Pi mit Strom zu versorgen ist ein Netzteil mit Micro USB Ausgang und 5V Spannung sowie etwa 1000mA erforderlich.
Wer viele USB Geräte an dem Raspberry Pi betreiben möchte sollte je nach Anzahl einen USB-Hub mit eigener Stromversorgung oder ein Stärkeres Netzteil (1500mA usw.) kaufen.

Was im Computer eine Festplatte ausmacht wird beim Raspberry Pi auf ein SD Karte verlagert und daher sollte man bei dem Kauf auf eine Schnelle SD Karte von einem Markenhersteller wie beispielsweise ScanDisk zurückgreifen.
Da fast alle Daten auf der SD Karte lagern sollte eine der Datenmenge entsprechende Speicherkapazität gewählt werden.
Für die meisten Fälle reicht eine 8GB große SD Karte vollkommen aus.
Damit der Raspberry Pi schnell genug läuft habe ich mir eine SDHC Karte von ScanDisk mit bis zu 30MB Lesegeschwindigkeit und 8GB Speicherkapazität ausgesucht.

Um den Pi vor Elektrostatischer Aufladung (zb. Haustieren) zu schützen empfehle ich ein Gehäuse gleich mit zu bestellen.
Wer plant seinen Pi offen an Wänden oder der gleichen aufzuhängen sollte vielleicht auch auf ein Gehäuse welches zu seinem Geschmack passt zurückgreifen.
Ich habe hierbei ein Gehäuse auf dem ein Taschenrechner aufgedruckt ist ausgewählt.

Den Link zu dem Warenkorb bei Reichelt findet ihr hier ansonsten sind die Produkte sicher auch über den Namen bei eurem Lieblingsshop auffindbar.

Materialliste

– Raspberry Pi Rev. B – 29.95 Euro
– TEK-BERRY CALC – 5.95 Euro
– ANS DUAL MICRO – 6.50 Euro
– SanDisk Ultra – Class 10 (8GB, SDHC, 30MBs) – 7.40 Euro

Gesamt – 49.80 Euro (+ 5.60 Euro Versand = 55.40 Euro)

Quelle - Foto von Marc Volker Dickmann

Quelle – Foto von Marc Volker Dickmann

Installation

Der Aufbau des Raspberry Pi ist einfach und schnell vollbracht die SD Karte kommt oben rein und der HDMI, Strom etc in die jeweiligen Ports.
Um dass Betriebsysten später von der SD Karte installieren zu können müssen nun die dafür erforderlichen Daten auf diese Kopiert werden.
Als Beispiel für diesen Artikel habe ich dass auf Debian basierende Raspbian genommen welche über die Raspberry Pi Webseite hier heruntergeladen werden kann.

Unter Linux kann dass Kopieren der Dateien aus der img Datei über den Praktischen Befehl

dd bs=4M if=wheezy-raspbian.img of=/dev/sdd

Bitte /dev/sdd an den Ort eurer SD Karte und wheezy-raspbian.img an die img Datei anpassen.
geschehen.

Danach müssen Monitor und USB Tastatur mit dem Raspberry Pi verbunden und die SD Karte eingelegt werden.
Ab jetzt kann der erste Start des Pi’s losgehen.

Nachdem der Pi hochgefahren ist wird bei dem ersten mal automatisch ein Dialog zur Konfiguration gestartet mit dem wir wichtige Dinge einfacher erledigen können.
Als erstes klicken wir auf Expand Filesystem um auch wirklich den gesamten Speicherplatz auf der SD Karte benutzen zu können.

Nun können wir noch unter Advanced SettingsHostname einen Namen für den künftigen Pi festlegen und über Finsh ihn Neustarten.
Danach kann man sofort Loslegen und beispielsweise ein Projekt starten.

Quelle - Foto des Raspberry Pi Model B+ von Marc Volker Dickmann

Quelle – Foto des Raspberry Pi Model B+ von Marc Volker Dickmann

Erstes Projekt

Als erstes Projekt habe ich mir die Bereitstellung von einer Speichermöglichkeit in dem lokalen Netzwerk, also einer NAS, ausgedacht welches ziemlich nützlich sein kann.

Materialliste

– 1x USB Stick (Größe ist unwichtig)
– 1x Raspberry Pi Aufbau (von eben)
– 1x PC

Als erstes wird der USB Stick mit dem Raspberry Pi verbunden und der Pi gestartet.
Von nun an kann schon über dass Protokoll SFTP auf den USB Stick über dass Netzwerk zugegriffen werden und dort Daten abgelegt sowie abgerufen werden.

Auf einem Linux System kann über die meisten Dateimanager über die folgende Adresse auf den Pi zugegriffen werden.

sftp://[nutzername]@[ip des pi's]

Danach kann man die Dateien über den Dateimanager auf den Pi hoch und herunterladen.

Tipp:
Den USB Stick solltest du unter dem folgendem Pfad finden.

/media/[nutzername]/[gerät]

Fragen und Antworten

F: Wofür kann der Raspberry Pi ideal verwendet werden?
A: Er eignet sich bedingt durch seinen geringen Preis und dem niedrigen Stromverbrauch ideal um Elektronische Geräte beispielsweise über dass Internet zu steuern.
Weiter kann durch ihn auch der erste Einstieg im sogenannten Cluster Rechnen (Supercomputer) gewonnen werden.

F: Wie niedrig ist der Stromverbrauch des Raspberry Pi’s wirklich?
A: Der Raspberry Pi verbraucht etwa soviel wie ein Handyladegerät was im Vergleich zu den Möglichkeiten ziemlich niedrig ist.

F: Wie Groß ist der Raspberry Pi?
A: Der Raspberry Pi ist etwa so groß wie eine Kreditkarte.

F: Welches Betriebssystem läuft auf dem Pi?
A: Es läuft ein Linux System wie beispielsweise Raspbian die speziell für arm Geräte entwickelt worden sind.

Fazit

Der Raspberry Pi’s ist ein wirklich nützlicher Begleiter vor allem für Bastler, Entwickler und co die hier einen vollwertigen Computer mit extrem wenigem Stromverbrauch für kleines Geld gestellt bekommen.
Durch die winzige Größe und GPIO Pins eröffnen sich nahezu unendliche Möglichkeiten und dank des Internet gibt es laufend neue Projekte sowie die passenden Anleitungen dazu.
Ich finde die Investition lohnt sich auch für Leute die noch neu in dem Bereich Technik sind und schnell etwas lernen wollen.

Hardware – Raspberry Pi Modell B+

Heute ist die überarbeitete Version des erfolgreichen Raspberry Pi Modell B bei mir angekommen.
Auch wenn in dem Modell B+ der gleiche Prozessor und die Größe des RAMs sich nicht verändert hat muss ein Kauf nicht gleich ausgeschlossen werden.
Die Vorteile sind jedoch vor allem für Nutzer des Pi’s als Computers wobei für die Bastler als größte Neuerung die Erweiterung der GPIOs um ganze 14 neue Pins gelten darf.

Quelle - Foto des Raspberry Pi Model B+ von Marc Volker Dickmann

Quelle – Foto des Raspberry Pi Model B+ von Marc Volker Dickmann

Neuerungen

Um die bisherigen Zubehöre wie beispielsweise Displays und Co nicht unbrauchbar für dass Modell B+ zu machen habe die Jungs von Raspberry Pi die ersten 26 Pins identisch mit dem Modell B belegt.
Besonders Nutzer von USB Geräten sollte die Überarbeitung freuen da hier gleich 2 neue USB Buchsen hinzugekommen sind.
Dass erübrigt den Einsatz eines USB-Hubs bei Verwendung von Maus, Tastatur und beispielsweise einem USB Stick.

Dass alte Design des Pi’s hatte die Ein- und Ausgänge Kreuz und quer über der Platine verteilt was ein Ordentliches Verkabeln des Pi’s deutlich erschwerte.
Da neue Gehäuse spätestens durch die doppelte Anzahl USB-Ports notwendig wurden haben die Designer gleich den Kabelsalat aufgeräumt sodass nur noch Vorne und Links Anschlüsse zu finden sind.
Daneben wurden auch gleich die Bohrungen für die Befestigung neu positioniert und nun quadratisch auf der Platine vorzufinden sind.
Wer verzweifelt den Chinch Ausgang sucht wird bei dem Audioausgang fündig da dort nun über ein vierten Kanal dass analoge Videosignal ausgegeben wird.

Die klobige SD Karte die meist aus dem Gehäuse herausragt wurde durch eine MicroSD Karte ersetzt welche nun nicht mehr großartig aus dem Gehäuse herausragen sollte.
Weiter wurde der Stromverbrauch des Pi’s um 20-30% gesenkt was den Pi nun weniger als 1 Watt verbrauchen lässt und die Audioqualität leicht durch den Einsatz von DSP verbessert

Fazit

Ob ein Modell B+ gekauft werden muss sollte jeder selbst entscheiden ob ihm der momentane Preis von 39.90 Euro (Reichelt) die neuen Features wert sind.
Wer den Pi beispielsweise als Server nutzt bekommt außer der Möglichkeit mehr USB Geräte anzuschließen nicht wirklich etwas neues dazu dafür vor allem Bastler die nun mehr Möglichkeiten haben.
Bis ein neuer Pi raus kommt wird es allerdings auch noch bis etwa 2017 dauern daher kann ich sobald dieses Modell etwa dass gleiche wie ein B kosten empfehlen den B+ statt B zu kaufen.

Software – Whiskermenu aus den Paketquellen

Wer XFCE gerne nutzt ist sicher schon mal über dass alternative Menü Whiskermenu gestoßen und gefallen daran gefunden.
Leider war vor Ubuntu 14.04 es nicht möglich Whiskermenu aus den offiziellen Paketquellen zu installieren jedoch ist es nun endlich möglich.
Nebenbei ist bei Xubuntu dass Whiskermenu schon vorinstalliert und wird standardmäßig verwendet.

Quelle - Screenshot von Whiskermenu

Quelle – Screenshot von Whiskermenu

Mithilfe dieses Befehls wird Whiskermenu installiert.

sudo apt-get install xfce4-whiskermenu-plugin

Danach muss dass neue Element nur in die Leiste eingefügt werden und an seinen neuen Platz verschoben sowie dass Element des alten Menüs entfernt werden.
Ich persönlich bevorzuge dass Whiskermenu gegenüber dem vorinstallierten da es viele Komfort Funktionen wie beispielsweise eine Suche mitbringt.

KurzeTipps – Webserver ohne Pakete zu installieren

Wer gerne mit Technik spielt braucht ab und zu einen kleinen Webserver um etwas zu Testen jedoch möglichst ohne weitere Pakete auf dem System zu installieren.
Wer Python bereits auf seinem System installiert hat braucht nur einen simplen Befehl einzugeben und schon steht ein rudimentärer HTML Server bereit.
Gefunden habe ich diesen Tipp in dem Wiki von Ubuntuusers.de.

Schritt 1

Zuerst muss die Version des installierten Python Paketes durch die Eingabe folgendes Befehls herausgefunden werden.

python --version

Schritt 2

Danach sollte man in dass gewünschte Verzeichnis gehen und den folgenden Befehl für die jeweilige Version von Python.

Pyhton 2.x

cd ~/Downloads && python -m SimpleHTTPServer 8082

Python 3.x

cd ~/Downloads && python3 -m http.server 8082

In diesem Beispiel wird der Webserver in dem Ordner Downloads des aktuellen Benutzers gestartet sodass zb. über einen weiteren Computer Dateien von dort über dass Netzwerk heruntergeladen werden können.
Nützlich ist dies zum Beispiel bei einem Raspberry Pi wenn gerade nur dass lokale Netzwerk verwendet wird.