Martin Lantzsch
Software Entwickler
3. Dezember 2011

Morse Beeper

3. Dezember 2011 - Geschrieben von Martin - Ein Kommentar

Eben habe ich ein wenig mit der Console.Beep Funktion von C# gespielt und folgendes ist dabei rausgekommen:

Man kann Text ins Feld eingeben, welcher nach einem klick auf „Übersetzten“ in Morse Code übersetzt wird. Alternativ kann über die 3 Knöpfe „Kurz“, „Lang“ und „Pause“ selbst etwas zusammen gemorst werden. Bisher werden nur Buchstaben unterstützt, falls jemand will kann aber gern auch noch Zahlen implementieren.

Hier kann die .exe heruntergeladen werden: MorseBeeper.exe

Aber wie gesagt, nur eine Spielerei von mir, ich übernehme keine Garantie dafür, das der produzierte Morse Code fehlerfrei ist!

24. November 2011

Kein Kommentar

24. November 2011 - Geschrieben von Martin - 4 Kommentare

Anfänger wird immer und überall eingebleut „Kommentiert alles“, „Schreibt viele Kommentare, damit auch andere euren Code verstehen“.

Sorry, aber das ist Schwachsinn! Wenn mein Code schon so schlimm ist, das ich kommentiere muss was ich mache, sollte ich lieber zurück an ans Papier und alles noch mal überdenken. Code kann sprechen. Code kann sich selbst erklären. Wer sagt denn, das ich „kryptische“ Funktionsnamen vergeben oder lauter Abkürzungen schreiben muss? Am Ende holt es mich doch eh wieder ein, denn

  • Code lesen ist ansträngender
  • Klassenexplorer nahezu sinnlos
  • ständig am Suchen der entsprechenden Funktionen und Methoden um nachzuvollziehen was gemacht wird
  • Einarbeiten in den Code nur möglich wenn man alle Kommentare liest und versteht!

Warum also

// erzeuge neues Fenster Objekt aus dem System Objekt s
$win = $s->cwin();

da schreibt man doch gescheiter

$window = $system->createNewWindow();

Wer nun noch sagt aber der Kommentar ist auf Deutsch den versteh ich wenigstens, dem kann ich nur sagen – falscher Job ;-)

Das ganze soll aber nicht heißen, das man gar nichts mehr Kommentieren sollte. Stellen, die etwas Tricky oder vielleicht noch nicht ganz ausgereift sind, können gern mit einem kurzen und knackigen Kommentar versehen werden, der das Anliegen gut rüberbringt.

14. November 2011

Notepad++ Menü anpassen

14. November 2011 - Geschrieben von Martin - Ein Kommentar

Eben habe ich eine lang von mir gesuchte Erweiterung für Notepad++ entdeckt Customize Toolbar. Damit kann man das Menü hervorragend abspecken und lauter „nutzlose“, bzw. ungenutzte Funktionen los werden.

So sieht das schon viel besser aus.

13. November 2011

Hobby Browsergame Entwicklung – noch sinnvoll?

13. November 2011 - Geschrieben von Martin - 7 Kommentare

Wie die meisten hier sicher wissen entwickle ich mit Elan Hobbymäßig Browsergames und bin auch ziemlich aktiv in der Szene. Zumindest war ich das bisher immer. In letzter Zeit hingegen frage ich mich immer öfter ob es das überhaupt „bringt“. Ich meine es gibt so viele kommerzielle Browsergame Firmen – gut, ich kenne zwei an der Zahl – die ein ganzes Großraumbüro voller Entwickler haben, die Tag ein, Tag aus nichts anderes machen als Browsergames zu programmieren, Designer die Bilder einer Qualität machen die mich selbst mit den Ohren schnackeln lässt.

Die Browsergame Zielgruppe von heute (meiner Erfahrung nach Kinder zwischen 10 und 16) fahren voll auf so was ab. Spielinhalt der so primitiv wie nur irgendwie möglich sein kann, bombasitische realitätsfremde Bilder und Integration zu Fratzenbuch und Co mit an Bord.

Bei uns Hobby Entwicklern sieht es ganz anders aus. Wir Schustern an unseren Spielen ein paar Stunden die Woche, malen Bilder mit den selben Händen aus denen auch vorher der Code entsprang und wir betreiben Linux Server die wir uns gerade so von unserem Einkommen leisten können.

Doch wir stampfen Spiele aus dem Boden, die Spaß machen – vielleicht sind sie nicht so schön anzusehen, tut uns leid, wir sind nun mal keine Grafiker doch wir haben eine Idee, eine Vision, ein Ziel. Und das lautet nicht so viel Kohle mit den Nutzern wie nur irgendwie möglich zu machen, sondern ein Spiel an den Mann zu bringen das sich lohnt zu Spielen.

Aus diesem Grund, JA es lohnt sich Hobbymäßig Browsergames zu entwickeln. Einerseits hat die Welt dann wieder Spiele die sich lohnen zu spielen, andererseits lernt man dabei sehr viel, da dieses „Geschäft“ sehr Facettenreich ist.

9. November 2011

Joomla eigenes Basis Template – Teil 1

9. November 2011 - Geschrieben von Martin - Ein Kommentar

In der folgenden Serie werde ich euch anhand eines Praxisbeispiels zeigen wie man sich sein eigenes „Basis“ Template für Joomla schmiedet. Dieses Template kann dann später als Grundlage für eigene Entwicklungen verwendet werden. Meine verwendete Joomla Version ist übrigens 1.5, in wie fern man das auf andere Versionen abwälzen kann, weiß ich nicht.

Die Joomla Template Struktur
Die Templates werden bei Joomla – wie sollte es auch anders sein – im Unterordner „templates“ des root Verzeichnisses abgelegt. Jedes Template bekommt seinen eigenen Ordner in den später alle Stylesheets, JavaScript Dateien, Bilder und natürlich die Views kommen. Als Ausgangspunkt legen wir uns folgende Ordner an:

- templates
-- basis_template
--- css
--- images

Natürlich nützen uns die Ordner allein noch nichts, deshalb kommen hierzu noch folgende Dateien:

- templates
-- basis_template
--- css
---- template.css
--- images
-- index.php
-- templateDetails.xml

In den CSS Ordner kommt das Stylesheet namens „template.css“, in das Root Verzeichnis packen wir die „index.php“, welche später das HTML Gerüst beinhält und die „templateDetails.xml“, die Joomla benötigt um mit dem Template arbeiten zu können. Der images Ordner bleibt erst mal leer.

Das HTML Grundgerüst
Ich gehe jetzt einfach mal davon aus, das meine Leser ein Grundverständnis von HTML mitbringen, wenn nicht, solltet ihr euch erst mal in dessen Thematik einarbeiten.

Wir füllen nun die „index.php“ mit folgendem Inhalt:

<?php defined( '_JEXEC' ) or die( 'Restricted access' );?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" >
    <head>
        <jdoc:include type="head" />
        <link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/system/css/system.css" type="text/css" />
        <link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/system/css/general.css" type="text/css" />
        <link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/css/template.css" type="text/css" />
    </head>
    <body>
        <div id="wrapper">
            <div id="header">
                <h1><?php $conf =& JFactory::getConfig(); echo $conf->getValue('config.sitename'); ?></h1>
            </div>
            <div id="sidebar">
                <jdoc:include type="modules" name="sidebar" />
            </div>
            <div id="content">
                <jdoc:include type="component" />
            </div>
            <div id="footer">
                <jdoc:include type="modules" name="footer" />
            </div>
        </div>
    </body>
</html>

Ist euch das zu schnell gegangen? Gut, dann noch mal langsam.

<?php defined( '_JEXEC' ) or die( 'Restricted access' );?>

Dieses PHP Konstrukt verbietet den direkten Zugriff auf das „pure“ Template, indem es die Ausführung abbricht, wenn die Konstante „_JSEXEC“ nicht definiert ist.

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" >

Hier definieren wir den HTML Tag und geben ihm die Systemsprache mit, bzw. die Sprache, die der User im Joomla gerade eingestellt hat.

<jdoc:include type="head" />

Dieser Pseudo HTML Tag der Joomla Template Engine bindet alle Geschichten wie title Tag, JS Files, etc. automatisch ein.

<link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/system/css/system.css" type="text/css" />

Hier binden wir das System Stylesheet ein. Besonders ist der PHP Teil „$this->baseurl“, hier wird die URL zum aktuellen Joomla ausgegeben, gut zu wissen wenn man später selbst noch etwas einbinden möchte.

<link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/css/template.css" type="text/css" />

Hier wird das Herzstück unseres Templates geladen. Das Stylesheet. Eigentlich wie oben, nur wird hier noch der Name des Templates verwendet um den richtigen Ordner zu finden „echo $this->template“

<jdoc:include type="modules" name="header" />

Der altbekannte Pseudo Tag mit anderen Attributen. Hier Laden wir den typ modules mit dem Name header. Das heißt, wir laden alle Module die im System an der Position „header“ Registriert sind.

<jdoc:include type="component" />

Hier rufen wir die Inhaltskomponente der aktuellen Seite auf. Also z.B. „com_content“, „com_contacts“, etc..

Was wir bisher haben
Jetzt haben wir ein eigentlich bereits Funktionsfähiges Template. Doch es fehlt noch die „tempalteDetails.xml“, die mit einer manifest.xml zu vergleichen ist. Hier werden alle verwendeten Dateien aufgeführt, im Template verwendete Positionen registriert, Authorangaben gespeichert und noch ein paar Schmankerl mehr. Doch das machen wir im nächsten Teil, der im Anschluss erscheint.

Joomla eigenes Basis Template – Teil 2

7. September 2011

Android SDK unter Windows Installieren

7. September 2011 - Geschrieben von Martin - 2 Kommentare

Wer unter Windows für Android entwickeln will muss ein paar Dinge beachten, um das SDK zum laufen zu bekommen.

  • Eclipse Classic installieren
  • Android SDK Installieren (und benötigte Pakete herunterladen)
  • Eclipse Android Developer Plugin installieren
    Falls es zu Abhängigkeitsfehlern kommt das Eclipse Helios Repo via Window -> Preferences -> Install/Update -> Available Software Sites hinzufügen
    http://download.eclipse.org/releases/helios/

  • Unter Window -> Preferences -> Android folgende SDK Location verwenden
    C:\PROGRA~1\Android\android-sdk

    Unter x64 Windows diesen hier

    C:\PROGRA~2\Android\android-sdk

    Denn der Pfad zum SDK darf keine Leerzeichen enthalten, ansonsten funktioniert der Android Emulator nicht.

17. Juli 2011

C# einer TextBox den Fokus geben

17. Juli 2011 - Geschrieben von Martin - Keine Kommentare

Eben bin ich fast verzweifelt, denn die Focus Methode der TextBox wollte einfach nicht.

name.Focus();

Nach einiger Zeit hab ich dann gerafft, das man den TabIndex dieses Elements auf 0 setzen muss, damit man es direkt nach dem Öffnen des Fensters fokussieren kann.

Und was ich da gerade mit C# bastle erfahrt ihr bald ;-)

21. Januar 2011

Netbeans – immer für eine Überraschung gut

21. Januar 2011 - Geschrieben von Martin - 7 Kommentare


Netbeans überrascht mich doch immer wieder, eben habe ich ein Template entworfen, welches ich in selben Zug auch gleich mit Classes gefüllt habe und zack zeigt mir Netbeans diese im CSS Editor. Sogar mit Hervorhebung, wenn sie bereits niedergeschrieben wurden.