Technik, Gothic und Anderes

Technik ist Spiel, Gothic ist ernst und Zeit hat man zuviel

  • Kategorien

  • Tags

  • Archiv

  • Links

    zu Bee5

    blog.oncode.info läuft bei Cyon und ich bin sehr glücklich damit.

Archiv

Switchconf: Ein kleines, feines aber geniales Tool um die Konfiguration umzuschalten

Geschrieben von skaldrom am 14. August 2007

Das Tool

Laptops sind (meistens) (mehr oder weniger) portabel. Sie müssen sich also viele verschiedene Dinge in ihren Netzwerkanschlüssen gefallen lassen; Andere Konfigurationen, Netze die mit PEAP gesichert sind, Luftnetze, wechselnde Drucker und Windowsshares, etcetc.

Auch zu Hause gibt es unter Umständen Konfigurationen mit und ohne externem Monitor, in verschiedenen Netzwerkzonen (jaa, das gibts wirklich auch zu Hause …) etcetc pipapo.

Natürlich kann man sich das automagisch erledigen lassen. Unter Debian mit ifupdown, etc… Ich mags aber unter meiner Kontrolle auf mein Kommando. Switchconf ist ein kleines, feines Tool, dass die Aufgabe elegant und einfach löst. Es kann für sich angewendet oder von einem, anderen Skript getriggert werden.

Funktionsweise

In einem konfigurierbaren Verzeichnis (normalerweise /etc/switchconf) werden Verzeichnisse für die Konfigurationen angelegt. Beispielsweise home und work. Dort kann nun ein kompletter Verzeichnisbaum mit den Dateien die zu dieser Konfiguration gehören aufgebaut werden; beispielsweise ein /etc/switchconf/home/etc/network/interfaces und ein /etc/switchconf/work/etc/network/interfaces. Das Kommando

switchconf home

grast nun das Ganze /etc/switchconf/home ab und erstellt symbolische Links (konfigurierbar, es kann auch hardlinken und kopieren) vom System auf diese Konfiguration. Also:
/etc/network/interfaces/etc/switchconf/home/etc/network/interfaces

Auf die Arbeitskonfiguration schaltet es um mittels:

switchconf work

Und der Link sieht so aus:
/etc/network/interfaces/etc/switchconf/work/etc/network/interfaces

Weiter gibt es noch die Verzeichnisse /etc/switchconf/before.d und /etc/switchconf/after.d. Alle Skripts in before.d werden vor, alle in after.d nach der Umstellung ausgeführt, damit können Daemons (Cups, PCMCIA, XSupplicant, …) neu gestartet werden damit sie die neue Konfiguration einlesen.

Mögliche Lösungen

Netzwerk
Die Datei /etc/network/interfaces für jede Konfiguration anpassen. Bei statischem DNS eventuell noch /etc/resolv.conf.
Windows Shares
Die Datei /etc/fstab und eventuell die Credentials für jede Konfiguration anpassen.
Zweitmonitor, X-Auflösung, etc…
Die Datei /etc/X11/xorg.conf für jede Konfiguration anpassen.
Drucker
Die Datei /etc/cups/printers.conf für jede Konfiguration anpassen.
XSupplicant, WPA_Supplicant
Die Datei /etc/default/xsupplicant für jede Konfiguration anpassen. ENABLED auf 0 oder 1 setzen, je nachdem ob man ihn will oder nicht…

Es wäre noch mehr denkbar wie SMTP-Host, Hintergrundbild, …

Switchconf kann auch von Netzwerkdetektoren wie laptop-netconf oder Guessnet angestossen werden. Ich finde sein Konzept etwas transparenter wie die eingebauten Monster dieser Produkte… Und vorallem kann man immernoch von Hand umschalten…

Eingeordnet in Linux | Keine Kommentare »

5 Wege für ProgrammiererInnen die Zeit intelligent zu verdödeln

Geschrieben von skaldrom am 8. August 2007

1. Corewars

Die Corewars ArenaOldie but Goldie! Corewars ist ein Programmierspiel in welchem sich Programme in einem zyklischen Speicher bekämpfen. Diese kleinen Kämpfer sind in einer Assemblerartigen Programmiersprache geschrieben und beherrschen sogar eine Art Multithreading. Bei jedem der Kampfprogramme wird abwechslungsweise ein Befehl ausgeführt. Das Programm das am Schluss noch ausführbar ist hat gewonnen.

Einfachstes Beispiel: der Imp. Er gewinnt zwar nie, aber verliert auch nicht. Alles was er tut ist den Code aus Speicherstelle 0, also sich selber (in Corewars sind alle Speicherangaben relativ zur eigenen Position) eine Speicherstelle weiterkopieren. Als nächstes wird diese kopierte Version ausgeführt und er rast geschwind durch den ganzen Speicher und überschreibt viele, sehr ausgeklügelte aber träge Giganten.

; The imp: Er kopiert sich selbst immer einen Schritt weiter
mov 0, 1

Etwas vielfältiger ist der Dwarf. Er schiesst Steine (unausführbare DAT-Anweisungen) durch den Speicher:

add #4, 3 ; Addiere 4 zur DAT-Anweisung
mov 2, @2 ; Kopiere die DAT-Anweisung an die Speicherstelle auf die sie zeigt
jmp -2    ; Von vorne
dat #0

Grundsätzlich gibt es drei Strategien die sich grundsätzlich zyklisch gegenseitig schlagen:

Papers:
Papers sind Replikatoren. Sie kopieren sich selbst über das Spielfeld und führen ihre Kopien dann aus.
Stone:
Stones schmeissen unausführbare dat Anweisungen über das Spielfeld.
Scissors:
Scannen das Spielfeld und versuchen andere Warriors zu finden und mit sinnlosem Code zu beschäftigen.

Ganz wilde Naturen wenden genetische Algorithmen an um sich Krieger zu züchten! Ganz verrückte Sache!

Die Idee ist schon über 10 Jahre alt und die “Arenen” sind relativ ausgereift, inklusive Debuggingfunktionen. Es gibt sie online als Applet und einige Implementationen wie ARES, Corewin oder den Klassiker pMars (inklusive Quellcode) den es auch für Linux gibt (wenn man nicht selber kompilieren will). Die Sprache (redcode) ist genormt und es gibt Turniere (sogenannte Hills) auf denen ständig Kampfprogramme gegeneinander antreten. Sogar ein Benchmark gibt es.

Eine gute Deutsche Einführung gibt W. Zimmer. Auf Englisch gibt es ganz viele verschiedene (einfach mal googeln oder wikipedien).

2. NetLogo

Die NetLogo Oberfläche

Kennt Ihr noch Logo? Die Sprache mit der Schildkröte (turtle) die man hemmungslos herumkommandieren konnte? NetLogo ist Logo auf Speed, denn mit ihm kann man fast beliebig viele Schildkröten kommandieren. Das ermöglicht sehr interessante Simulationen für verschiedene Fänomene wie Gerüchteausbreitung, Jäger/Beuteverhältnis, Seggregation, Partikelverhalten und besoffene Seemänner :-) . Über NetHub ist NetLogo Client/Server fähig. Eine spassige und äusserst fesselnde Sache.

3. Robocode

Robocode Arena

Bei Robocode geht es darum in Java einen Roboter zu entwickeln. Dabei leitet man von einer Grundklasse ab und lässt die Roboter in einer grafisch schön gestalteten Arena gegeneinander antreten. Ursprünglich wurde das Spiel von IBM entwickelt, baer heute macht eine deutsche und eine englische Community weiter. Robocode ist eine geniale Möglichkeit, Java und objektorientiertes Design zu lernen.

package msc;
import robocode.*;
//import java.awt.Color;

/**
 * StupidZonk - a robot by (your name here)
 */

public class StupidZonk extends Robot
{
        /**
         * run: StupidZonk's default behavior
         */

        public void run() {
                // After trying out your robot, try uncommenting the import at the top,
                // and the next line:
                //setColors(Color.red,Color.blue,Color.green);
                while(true) {
                        // Replace the next 4 lines with any behavior you would like
                        ahead(100);
                        turnGunRight(360);
                        back(100);
                        turnGunRight(360);
                }
        }

        /**
         * onScannedRobot: What to do when you see another robot
         */

        public void onScannedRobot(ScannedRobotEvent e) {
                fire(1);
        }

        /**
         * onHitByBullet: What to do when you're hit by a bullet
         */

        public void onHitByBullet(HitByBulletEvent e) {
                turnLeft(90 - e.getBearing());
        }

}

4. CodeRuler

Das Coderuler-Land

CodeRuler ist ein weiteres IBM Glanzstück: Sie, beziehungsweise Ihr Programm, ist eine Königin oder König und Herrscht über Land, Burgen, Ritter und Untertanen. Sie kämpfen gegen eine oder mehrere böse Königinnen und Könige in feindlichen Schlössern. Ritter können Bauern metzeln und Schlösser einnehmen, Bauern bestellen das Land und bringen Punkte um neue Bauern oder Ritter zu machen und im Schloss werden diese dann produziert.

Technisch bedeutet dies, dass man wieder eine Javaklasse ableitet und bestimmte Methoden überschreibt. Es macht unglaublich Spass und ganz nebenbei lernt man viel über Java.

Hier ein Beispiel eines etwas dementen Rulers:

import com.ibm.ruler.*;
import java.util.Random;

public class MyRuler extends Ruler {
    public String getRulerName() {
        return "Simple Ruler";
    }

    public String getSchoolName() {
        return "IBM developerWorks";
    }
    public void initialize() {
    }
    protected Random rand = new Random();
    public void orderSubjects(int lastMoveTime) {

    IPeasant[] peasants = getPeasants();
    for (int i = 0; i < peasants.length; i++) {
                move(peasants[i], rand.nextInt(8) + 1);
        }
    }  
}

5. Kara

Kara der Käfer

Kara wurde von Swisseduc entwickelt und sieht schnufflig aus. Der “jööö”-Effekt soll aber nicht täuschen, denn beim Marienkäfer handelt es sich um eine ausgewachsene Zustandsmaschine. Mit dieser lassen sich einfachere und Komplexere Aufgaben lösen die im Programm vorgegeben sind. Das GUI ist sehr anwenderfreundlich und ermöglicht schnelle trial-error-Zyklen. Bis zum Schluss kann man die Grenzen von Zustandsmaschinen erfassen und bekommt ein gutes “Gefühl” für die Dinge.

Kara hat viele weitere Projekte: Multikara ermöglicht mehrere Zustandsmaschinen kooperativ zu betreiben, mit LegoKara kann ein richtiger Roboter Kara übernehmen und des Weiteren sind Anbindungen an viele Programmiersprachen vorhanden. Diese ermöglichen dann die Verbindung von der Zustandsmaschine zum Coden.

Zu Kara gibt es auch gute Unterrichtsmaterialien für eine Einführung in die Programmierung.


Buchempfehlung

Ein sehr beeinflussendes und eindrückliches Werk sind: A.K. Dewdney. Computer-Kurzweil und Computer-Kurzweil 2. Diese Bücher sprühen vor Ideen..! Leider gibt es keine Neuauflage und sie sind nur noch gebraucht zu erwerben…

Eingeordnet in Coding, Desktop | 8 Komentare »

4 plattformübergreifende Alternativen zu Powerpoint

Geschrieben von skaldrom am 3. August 2007

Powerpoint ist nett für Präsentationen, unbestritten. Leider ist es nicht plattformübergreifend. Auch Webtechnisch macht es sich nicht so gut. Nundenn, was gibt es für Alternativen?

1. Openoffice Impress

Unbestritten, OpenOffice Impress ist ein beeindruckendes Produkt. Intressant ist, dass die Präsentation als PDF und als Flash Animation exportiert werden kann. Die Bedienung ähnelt der von PowerPoint und die Präsentationen können auch in diesem Format geladen und gespeichert werden.

Mit ein paar Templates von Zwahlen Design, OO-Extras, OO-Support, OpenOffice oder Chih-Hao Tsa ist der Einstieg auch leichter.

Dies ist ein Screenshot von OO-Impress:
Screenshot OO-Impress

Als kleiner Test:

2. KeyJnote

KeyJnote (original Download von Sourceforge scheint ausser Betrieb zu sein) ist für interaktive Präsentationen gedacht. Es parst PDF-Dateien und erlaubt das Vorführen wie eine Präsentation. Es kann Zoomen, Herausheben, Seitenübergänge gestalten, etcetc. Die Einstellungen können in einer Extradatei abgespeichert werden. Eine besonders attraktive Methode wenn Unterrichtsskripts als PDF vorhanden sind und man nicht nur die nackten Blätter beamen will… Was tut man nicht alles um die Lernenden am Einschlafen zu hindern :-)

Das Spotlight-Feature

3. S5

S5 ist eine einfach geniale Entwicklung. Die Präsentation wird in einer HTML-Datei erstellt und mittels Stylesheets und Javascript formatiert. Das geht, und mit interessanten Features wie Inkrementeller Anzeige von Text und Grafiken, direktes Anspringen von Folien, viele Tastaturkommandos, etc. Am Besten schaut man sich die Intro-Präsi von S5 selbst an.

Ein Stylesheet ist schnell erstellt und mit ein bisschen Gewöhnung können auch einfache Präsentationen in annehmbarer Zeit gemacht werden. Der einzige Nachteil ist, das sich die Präsentation nicht in einer einzigen Datei speichern lässt.

4. LaTeX

Für LaTeX gibt es verschiedene Stylefiles, so zum Beispiel Prosper, oder mein Favorit: Beamer. Die Präsentationen die damit erstellt werden sind fantastisch und bieten viel Komfort wie das Anspringen von Folien, ein Themenüberblick, etc… Sie werden in ein PDF kompiliert und wenn man auf Fullscreen stellt, dann sieht es aus wie aus dem Ei gepellt: Ein geniales Tool!
Eine Beamer Präsi

Eingeordnet in Desktop | Keine Kommentare »

Unicodezeichen als Gag in Nicknames verwenden

Geschrieben von skaldrom am 3. August 2007

Unicode ist nicht nur übel… Weil immer mehr Programme (MSN Messenger, ICQ, Emailclients, Webbrowser, …) Unicode verwenden können, darf man diese Spezialzeichen langsam auch benutzen, bzw. missbrauchen :-) . Unten gibt es eine Liste von ähnlich aussehenden Zeichen zu unserem Alphabet die ein Schuss Style in die Sache bringen können… Sieht $қª|ðϒ°м ψ. Șðяǧ nicht besser aus als Skaldrom Y. Sarg?

Dies ist übrigens auch ein Test wie gut Euer Browser UTF-8 versteht. Leider unterstützen nicht alle Programme alle Zeichen :-( . Wenn irgendwo Vierecklein auftauchen, ja dann kann ers halt nit…

Messenger Tools und MSN Nick Names haben was Ähnliches. Unicode und HTML Entity Zeichenauflistungen gibt es beispielsweise bei Tiscali und utf8-chartable.

Um einen Namen zu kreieren einfach hier rauscopy-pasten und mir melden, wenn Ihr noch geilere Zeichen findet…

KleinGross
a A@ ª ð å ã ǻΔ Λ Å Â Ä Á À Ã Ǻ Д ∀
b Bб 6 ♭ß
c Cç ¢ <Ç © 〈 〈
d Dð ƏÐ
e E∉ ϱ έ ë é ê è Ə əع € £ Ë É Ê È ∑ ∃ Ξ
f Fƒ
g GǧǦ
h Hђ ƛ ӈ
i I¡ ï í î ì| ¦ Ï Í Î Ì I
j Jſ ℑ
k Kκ қҜ
l L| ¦£ ¿
m Mм
n Nñ ή ףא Ñ Ѝ ℵ
o Oø º ° ¤ ⊗ ✡Ø Õ Ơ Ώ Θ
p Pþ ρ ק ℘Þ ¶ ❡
q Q
r Rϒ® я Я ℜ
s Sș§ $ Ș
t T†τ ⊥ ✝ ✞ ✟
u Uü ú û ù µÜ Ú Û Ù ∪
v Vϋ ύ ٧
w WωШ
x X× ж ✖χ
y Yÿ ¥ψ
z Zź žŹ Ž
Komb.æ ЫÆ Œ №
0o O Ø ø º °
1¹ ① ❶
2² ② ❷
3³ ③ ❸
4④ ❹
5⑤ ❺
6⑥ ❻
7⑦ ❼
8⑧ ❽ θ ∞
9⑨ ❾
10⑩ ❿
Satzz.¿ ¡
Sonst.☎ ☛ ☞ ✉ ✌ ✍ ☹ ☺ ☻ ♥

Eingeordnet in Webapplikationen | 6 Komentare »

Youtube bzw. flv Videos speichern und Audio extrahieren

Geschrieben von skaldrom am 30. July 2007

ExtractAufgabe von nahen Verwandten: Könntest Du mir den Sound dieses Youtube-Videos auf CD brennen?

Hmmm, intressant. Nach viel Sucherei hat sich der folgender Weg als am schmerzfreisten erwiesen:

Dies geniale Website VideoDownloadX (Früher Youtubex) kann Youtube-Videos direkt online in ein speicherbares .flv umwandeln (hat allerdings nur mit dem Internet Explorer funktioniert). AOA Media Audio Extractor kann dann daraus Audios extrahieren, dies leider nicht online, dafür als mp3, wav und AC3… Genial…

Nun nur noch ein Audioprojekt im CD-Brenner starten, brennen und juhu, alle freuen sich….

Nachtrag Juni 2008
Mittlerweile sind diese Services ja wie Pilze aus dem Fuss gewachsen. Aber sie haben meistens einen Schuss: Zu Lange, Site überlastet, YouTube überlastet, etc etc… Mein Favorit ist flv2mp3. Der benamst sogar die Dateien (meistens) mit dem Titel des Videos.

Die Lautstärke der mp3 Dateien unterscheidet sich sehr stark. Es gäbe die Möglichkeit mp3gain:

mp3gain -r Youtube/* Youtube\ 2/*

Mit Normalize-Audio hatte ich leider keinen Erfolg:

normalize-audio -b Youtube/* Youtube\ 2/*

Nachtrag April 2009
Ein Link wurde verpornt… Vielen Dank für den Hinweis, Listen to Youtube macht dafür seine Arbeit nicht schlecht…

Eingeordnet in Webapplikationen | 4 Komentare »