Blog Archiv - May 2010
Neue Fraktale mit Apophysis
Es gibt wieder ein paar neue Apophysis-Fraktale von mir.
Ich habe ja bereits einmal über meine Fraktale mit Apophysis geschrieben.
Ich habe mir eine neue Technik angeeignet, die mit den Variationen “splits” und “elliptic” arbeitet.
Die damit erstellten Bilder haben eine faserhafte, Blattähnliche Struktur.
Ich kann hierzu nur das Splits elliptic Tutorialvon SaTaNiA empfehlen.
Es werden zusätzlich die Plugins elliptic.dll
und splits.dll
(nicht mit split.dll
verwechseln!) aus dem Aposhack Plugin Pack benötigt.
Weitere Bilder von mir findet ihr auf meinem Profil auf DeviantArt und in meinem persönlichen Filespace.
Java: Typsicherheit bei generischen Datentypen
Ab Java 1.5 unterstützt die Programmiersprache Java die Verwendung von sogenannten “Generics” (auch generische Typen, parametrisierte Typen).
Die Idee dahinter ist es, dass sich viele Datenstrukturen, die Objekte von bestimmten Typen enthalten, für alle diese Typen gleich (oder zumindest ähnlich) verhalten.
Als Beispiel kann man hier die Listen ansehen: Egal von welchem Typ die Objekte sind, die in der Liste enthalten sind, die Liste verhält sich immer gleich (Operationen: Hinzufügen, Löschen, Iterieren, Größe bestimmen, etc.)
Umbenennen von Dateien nach Regulären Ausdrücken
Ich hatte heute ein paar Dateien, die ich nach einem regulären Muster umbenennen musste.
Das das manuelle Umbenennen für einen Informatiker unwürdig ist und bei vielen Dateien schnell nervig und zeitfressend werden kann, habe ich schnell ein Perl-Script geschrieben, welches das für mich übernimmt.
Humble Indie Bundle - 5 plattformübergreifende Indie-Spiele
Es gibt wieder mal eine “ Pay Whatever You Want” Aktion eines unabhängigen Software-Anbieters, diesmal ein Bunde mit den Spielen:
Das bedeutet, man bezahlt einen beliebigen Preis (= Spende), bekommt dafür fünf DRM-freie, plattformübergreifende Spiele, und kann entscheiden, zu welchen Teilen das Geld an die Entwickler oder an eine wohltätige Organisation geht.
Ich kenne bisher nur World of Goo, aber das ist bereits eines der besten Indie-Spiele (auf Linux), das ich je gespielt habe (unbedingt mal anschauen!)
Ich bin ja echt mal gespannt auf die Anderen!
Hoffentlich kommen solche Ideen in Mode und die großen Spielehersteller kapieren endlich, dass sie sich mit dem ganzen DRM-Dreck und anderen Kopierschutzverhackstückelungen (wie etwa die Zwangsauthentifizierung übers Internet beim Spielen) nur die eigenen Kunden vergraulen.
(via thinkJD)
Update:
Es wurd noch das Spiel Samorost 2 zum Bundle hinzugefügt.
Java Swing: Layout-Manager für HTML-ähnliches Blocklayout
Ich habe kürzlich für ein bestimmtes Projekt eine GUI (= graphische Benutzeroberfläche) mit den Java Swing-Klassen programmiert.
Dabei ist mir negativ aufgefallen, dass es scheinbar keine einfache Möglichkeit gibt, Elemente vernünftig untereinander anzuordnen.
Es gibt zwar massig Layout-Manager für sehr einfache oder sehr komplizierte Layouts (z.B: Elemente oben, unten, links, rechts und mittig ausrichten mit BorderLayout
oder beliebig komplizierte Tabellenlayouts mit GridBagLayout
).
Aber ein ganz simple Anordnung von Elementen untereinander mit jeweils wahlweise Zentrierung, linker oder rechter Ausrichtung oder Streckung über die volle Breite konnte ich irgendwie nicht so einfach erreichen.
Daher habe ich mich entschieden, einen eigenen LayoutManager zu schreiben, der diesen Aufgaben gerecht wird.
Ich kenne dieses Layout-Modell aus HTML/CSS bei Elementen, die die CSS-Eigenschaft display: block
besitzen.
Hierbei werden alle Elemente untereinander angeordnet, wobei die Höhe jedes Elementes vom Element selbst bestimmt wird (über getPreferredSize()
), wogegen wie Breite normalerweise auf die volle Breite des Containers gestreckt wird.
Der Container ist außerdem mindestens so breit, wie die minimale Breite des breitesten Elements, so dass alle Elemente korrekt angezeigt werden können (es empfiehlt sich, dieses Layout in Kombination mit einer JScrollPane
zu benutzen)
Für einzelne Elemente sind außerdem noch die vertikalen Ausrichtungen Zentriert, Linksbündig und Rechtsbündig möglich.
Zuletzt lassen sich auch noch die Abstände zwischen den Elementen und zum Rand (“margin”) frei einstellen.
Durch diesen Aufbau ist es leicht möglich, eine listenähnliche Struktur mit heterogenen Elementen (z.B: für einen Report mit Controls, Textblöcken und Bildern) zu erstellen.
Dieser LayoutManager ist kompatibel mit allen Java-Versionen seit Java 1.4 (daher: keine generics!)
Zur Anschauung ist noch eine Demo-Klasse vorhanden.
Dateien ausliefern mit Java Servlets
Wenn man dynamische Web-Applikationen programmieren möchte, stehen einem eine große Auswahl an Technologien zur Verfügung. Sehr verbreitet ist vor allem im Business-Bereich die Java-Servlet-Technologie.
Üblicherweise ist an vordester Front ein gewöhnlicher Webserver (z.B. Apache HTTPD) vorgeschaltet, der eingehende HTTP-Requests zunächst verarbeitet.
Verweist der Request auf eine dynamische Resource (also eine Seite der Web-Applikation), so wird der Request an den Servlet-Container (z.B. Apache Tomcat) weitergeleitet und dort von dem zugehörigen Servlet verarbeitet.