EncFS Portierungen

Bei EncFS handelt es sich um eine Implementierung eines Verschlüsslungssystems für bestehende Dateisysteme. Bei diesem System wird jede Datei für sich verschlüsselt und das darunter liegende Dateisystem genutzt. Neben der Originalimplementierung von EncFS gibt es auch Portierungen in andere Programmiersprachen. Mit diesen Portierungen können EncFS verschlüsselte Daten auch unter Java und .NET ausgelesen werden.

Die Javavariante von EncFS trägt dabei den Namen „encfs-java“ und ist auf GitHub zu finden. Neben dieser gibt es auch eine Variante für .NET welche in C# geschrieben ist und auf BitBucket zu finden ist. Ursprünglich handelt es sich bei „encfs-dotnet“ um eine Portierung von „encfs-java“. Mittlerweile wurde diese Implementierung aber komplett neu geschrieben. Wie bei der Originalimplementierung, handelt es sich auch bei den Portierungen um freie Software. Die Java-Portierung steht dabei unter der GPL, während die .NET Implementierung unter der LGPG steht, was deren Verwendung flexibler gestaltet.

Weitere Informationen gibt es unter:
https://de.wikipedia.org/wiki/EncFS

Evolution Chamber und Starcraft Fusion

Beim Spielen von Starcraft 2 wird man irgendwann den Begriff „Build Order“ oder Baureihenfolge gehört haben. Dabei handelt es sich um eine je nach Spielrasse verwendete feste Reihenfolge für den initialen Aufbau der Basis. Für die Standardvorgehensweisen gibt es dabei durchaus einige erprobte Strategien.

Interessant wird es wenn man eine eigene Build Order entwickeln möchte. Das kann man natürlich von Hand tun oder spezialisierte Tools dafür benutzen. Eine solche Build Order könnte dann z.B. so aussehen:

0:02,00: 50M 0G 3L 6/ 10S – Build Drone
0:13,63: 50M 0G 2L 7/ 10S – Build Drone
0:24,70: 50M 0G 2L 8/ 10S – Build Drone
0:29,75: 25M 0G 1L 9/ 10S – Build Extractor
1:07,65: 200M 0G 3L 8/ 10S – Build Spawning Pool
1:07,65: 0M 0G 3L 7/ 10S – Move Three Drones To Gas
1:25,56: 50M 26G 3L 7/ 10S – Build Drone
2:12,65: 160M 116G 3L 8/ 10S – Research Metabolic Boost
2:12,65: 60M 16G 3L 8/ 10S – Build Extractor
2:12,65: 35M 16G 3L 7/ 10S – Build Extractor
2:12,65: 10M 16G 3L 6/ 10S – Cancel Extractor
2:12,65: 29M 16G 3L 7/ 10S – Build Extractor
2:12,65: 4M 16G 3L 6/ 10S – Cancel Extractor
2:12,65: 23M 16G 3L 7/ 10S – Cancel Extractor
2:12,65: 42M 16G 3L 8/ 10S – Build Extractor
2:12,65: 17M 16G 3L 7/ 10S – Cancel Extractor
2:17,58: 50M 18G 3L 8/ 10S – Build Zergling
2:37,78: 100M 31G 3L 9/ 10S – Build Overlord
2:47,88: 50M 37G 2L 9/ 10S – Build Zergling
3:02,78: 74M 46G 2L 10/ 18S – Build Zergling
3:08,08: 50M 50G 2L 11/ 18S – Build Zergling
3:18,18: 50M 56G 1L 12/ 18S – Build Zergling
3:28,28: 50M 63G 1L 13/ 18S – Build Zergling
3:38,38: 50M 69G 1L 14/ 18S – Build Zergling

Waypoint 1 satisfied:
4:02,65: 120M 84G 1L 15/ 18S
Income: 297M 38G
Buildings: 1 Hatchery 1 Extractor 1 Spawning Pool
Units: 8 Drone 2 Overlord 14 Zergling
Research: Metabolic Boost

Bei jedem diesen Tools gibt man das Ziel an (z.B. 12 Zerglinge) und diese probieren das ganze so lange durch bis eine möglichst optimale Lösung gefunden wurde. Speziell für Zerg gibt es dabei das auf Java basierende Tool „Evolution Chamber“ welches unter http://code.google.com/p/evolutionchamber/ zu finden ist.

Starcraft Fusion beim Erstellen einer Build Order

Starcraft Fusion beim Erstellen einer Build Order

Für Windows gibt es das Tool „Starcraft Fusion„. Im Gegensatz zu „Evolution Chamber“ können mit „Starcraft Fusion“ auch Build Order für die Terraner und die Protos angelegt werden. Bei der Benutzung sollte man immer beachten, das jede Bedingung die man definiert sich auf die Rechenzeit auswirkt. Bei komplexen Zusammenstellungen kann eine solche Berechnung schon mal einige Wochen dauern, während es sich bei ein paar Zerglingen nur um einige Minuten handelt.

Popular Convention

Das schöne an zentralen Sammlungen ist das man sie relativ einfach auswerten kann. In diesem Fall geht es um die Auswertung der GitHub Repositories. Wie der Name „Popular Convention“ andeutet geht es darum aus den Quelltexten bestimmte Informationen über bevorzugte Konventionen wie z.B. Leerzeichen vs. Tabs zu extrahieren.

Popular Convention und Scala

Popular Convention und Scala

Das Ergebnis kann man sich auf der Webseite http://sideeffect.kr/popularconvention/ für die Sprachen Javascript, Java, Python und Scala anschauen. Die Software zur Auswertung ist dabei freie Software und steht unter der MIT Lizenz und kann unter https://github.com/outsideris/popularconvention bezogen werden.

Robocode

Sich einen Roboter bauen und diese gegen andere Roboter kämpfen zu lassen, kann relativ schnell ins Geld und Material gehen. Einfacher wird es dabei mit Robocode, wobei es sich um eine Softwareumgebung handelt, in welcher Roboter programmiert werden können. Anschließend treten diese in einer virtuellen Arena gegeneinander an.

Die Bots im Kampf gegeneinander

Die Bots im Kampf gegeneinander

Geschrieben werden die Roboter in Java. Dabei finden sich eine Menge Beispiele in der Robocode Installation. Bei Robocode selbst handelt es sich um Open Source Software welche unter der Eclipse Public License steht. Die offizielle Webseite ist unter http://robocode.sourceforge.net/ zu finden. Lauffähig ist das ganze unter Linux, Mac OS X und Windows.

Weitere Informationen gibt es unter:
http://de.wikipedia.org/wiki/Robocode

Probleme mit dem Starten von Minecraft unter Ubuntu

Da möchte man nichtsahnend Minecraft starten und bekommt nur folgende Fehlermeldung an den Kopf geworfen:

Exception in thread "main" java.awt.HeadlessException
        at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:173)
        at java.awt.Window.(Window.java:546)
        at java.awt.Frame.(Frame.java:419)
        at net.minecraft.LauncherFrame.(LauncherFrame.java:20)
        at net.minecraft.LauncherFrame.main(LauncherFrame.java:167)
        at net.minecraft.MinecraftLauncher.main(MinecraftLauncher.java:13)

In diesem Fall hilft ein beherztes:

apt-get install openjdk-6-jdk

auf der Konsole. Nach der Installation sollte Minecraft ohne weitere Probleme starten.