4eyes Lehrlingsprojekt: Znüni Projekt

5. Februar 2012 in Allgemein von Leo

Mitte 2011 kam es bei uns in der Firma zur Idee, dass es ein Lehrlingsprojekt geben soll. Das Lehrlingsprojekt ist ein Projekt welches von den Lehrlingen Programmiert werden soll, um ihre Programmierkenntnisse zu verbessern und insbesondere sich mit Extbase und Fluid anzufreunden. Wenige Tage nach der Idee kam es zur Projekt-Idee, das “Znüni Projekt 2.0″ wurde geboren.

Das Znüni-Projekt 2.0
Bereits vor dem Znüni-Projekt gab es bei uns in der Firma eine Webapp, mit welcher wir Znüni (Frühstück) Bestellungen aufgeben konnten. So konnte dies jeweils einer für alle holen. Da es als App gemacht wurde, wurden mühsame Einkaufslisten überflüssig. Die erste Znüni App war jedoch sehr einfach und schlicht, deshalb sollte das Znüni-Projekt 2.0 viele neue Features mit sich bringen und vieles grundlegend vereinfachen.

Main-Features des Znüni-Projekts 2.0:
- Userverwaltung
- Guthabenverwaltung
- Desktop- und Mobileview
- Nutzung von mehreren Firmen (erkennung via Code)

Startscreen:

Dies ist der Startscreen des Znüni-Projekts. Hat man sich als Firma bereits registriert kann man hier seinen Code eintippen. Ansonsten kann man den Firmennamen eintippen und gelangt zur Registrierung.

Registrierung:

Hier sieht man das Registrierungsformular. Unten wird ein eindeutiger Code generiert mit welchem man sich auf der Startseite identifizieren kann.

Einkaufsliste:

Hier sieht man die Einkaufsliste im Desktop-View. Alle Einkäufe werde inklusive Besteller, Anzahl und Alternativprodukt angezeigt.

Bestellung hinzufügen:

Das Bestellformular ist ein simples Formular wo eingetragene Produkte ausgewählt werden können, sowie alle anderen notwendigen Informationen.

Produktliste:

Die Produktliste besteht aus hinzugefügten Produkten. Neue Produkte müssen zurzeit manuell hinzugefügt werden da es noch keine Schnittstellen gibt.

Produkte-Sets:

Falls man öfters das selbe bestellt kann man sich auf Produkte-Sets erstellen. So kann man alle Produkte in einem Set der Einkaufsliste hinzufügen.

Orientierung:

Für eine bessere Effizienz beim Einkaufen haben Produkte eine Orientierung. Sprich es wird angegeben wo sich das Produkt befindet, z.b. zuerst kommen die Getränke und zuletzt das Gemüse. Diese Reihenfolge wird auch in der Mobileapp berücksichtigt.

Benutzer:

Hier sieht man die Benutzerübersicht. Hier können Benutzer hinzugefügt, bearbeitet und gelöscht werden. Ausserdem kann direkt Guthaben hinzugefügt oder abgezogen werden.

Zum Znüni Projekt

MAMP MySQL startet nicht mehr (trotz beenden des Prozesses)

14. Juni 2011 in Software von Leo

Seit ich ein Macbook habe nutze ich anstatt wie damals unter Windows XAMPP, nun MAMP. Teilweise gab es das Problem das der MySQL dienst nicht startete, das Problem war jedoch schnell gelöst nachdem der Prozess in der “Aktivitätsanzeige” (siehe Spotlight [cmd + Leertaste]) beendet wurde (mysql Prozess).

Als ich später ein neues Projekt erstellte und MAMP aufstartete, wollte der MySQL Dienst auch nach mehrmaligem Abschiessen immer noch nicht. Das Problem war das ich 2 Benutzeraccounts auf meinem Mac habe. Beim Anlegen einer Datenbank werden die Daten in /Applications/MAMP/db geschrieben. Da ich auf dem anderen Benutzeraccount arbeitete, hatte dieser keine Berechtigung für die anderen Datenbanken, wodurch MAMP anschienend nicht zu schlag kam. Kurz das Terminal geöffnet und folgendes eingegeben:

sudo chmod -R 0777 /Applications/MAMP/db

Fertig!

Git: Geänderte Dateien Zippen und Filestruktur beibehalten

10. März 2011 in Allgemein von Leo

Falls man für ein Projekt Git nutzt und nun die geänderten Dateien bündeln und als Zip haben möchte, kann dies ganz simpel mit ein paar Commands machen. Mit Git diff können wir einen Vergleich machen. Was hat sich geändert.

In unserem Zip welches in meinem Beispiel später wieder auf einen anderen Server gespielt wird und dort die Live Dateien überschreibt, muss natürlich die Filestruktur beibehalten werden.

Der Befehl der uns all diese Arbeit nun abnimmt sieht folgendermassen aus:

git archive --output=export.zip HEAD $(git diff --name-only --diff-filter=ACMR $(git rev-parse HEAD))

Kurz erklärt:

git archive --output=export.zip

Erstellt schlussendlich das Zip, also der Output.

git diff --name-only --diff-filter=ACMR

Dies würde einzeln ausgeführt eine Liste mit den geänderten Dateien anzeigen (diff).

git rev-parse HEAD

Dies ermittelt uns die ID des letzten Commits. Die ID ist hierbei ein Hash Wert.

Doxygen: Dokumentation aus Quellcode generieren

9. August 2010 in Java, PHP, Tutorials von Leo

Heute habe ich mir bei der Arbeit das Programm “Doxygen” angeschaut, welches wir nun nach guten Ergebnissen, wahrscheinlich immer nutzen werden. Doch was ist Doxygen?
Doxygen ist ein Programm welches in C++ geschrieben ist und lokal ausgeführt werden kann, um aus Quellcode Dokumentationen zu erstellen. Das Programm scannt die Dateien welche sich in einem ausgewählten Verzeichnis befinden und listet die Funktionen (etc.) auf und liest die Kommentare zu den Funktionen, welche z.B. eine Beschreibung, einen Autor oder andere beinhalten.

Vor allem für grössere Projekte ist dieses Programm meiner Meinung nach sowieso Pflicht, um die Übersicht auf Funktionen zu behalten und auch schnell nachschlagen zu können, vor allem halt auch als nicht beteiligter oder “Neuling” im Projekt.

Doxygen generiert uns also mit dem “Doxywizard” z.B. mehrere HTML-Dateien, welche wir dann gemütlich auf z.B. unseren Web-Server hochladen können.

Doch Doxygen kann nicht nur für PHP Projekte verwendet werden, nein, Doxygen verwendet viele verschiedene Programmiersprachen. Die aktuell Unterstützten Sprachen sind folgende: C++, C, Java, Objective-C, Python, IDL (Corba and Microsoft flavors), Fortran, VHDL, PHP und C#.

Um Doxygen richtig verwenden zu können, muss der eigene Code Kommentiert werden (am besten in englisch). Dies sieht dann z.B. so aus:

/**
* Beschreibung
*
* @author Max Mustermann
* @since Version 1.0
*
* @param string $string1 beschreibung
* @param bool $string2 beschreibung
* @return string beschreibung
*/
function something($string1, $string2) {
  return $stringX
}

All das wird dann von Doxygen gelesen und so ins Resultat, also die Dokumentation eingefügt.

Hier könnt ihr euch Doxygen herunterladen.

Als Beispiel für so eine Dokumentation, hier unsere öffentliche 4eyes API: www.api.4eyes.ch

Java RPG: Dragonjia

17. Juni 2010 in Java von Leo

In der Schule haben wir vor kurzem eine Arbeit Abgeschlossen, bei welcher jeder Schüler sein eigenes Java Projekt Programmieren musste. Dies konnte entweder ein Spiel sein oder ein Tool wie z.B. ein Taschenrechner. Das ganze musste jedoch mindestens 250 Zeilen Code haben, was ich mit meinen fast 500 Zeilen locker erreichte. Neben dieser Anforderung gab es natürlich noch die Anforderung Sachen zu Verwenden die wir im ersten Jahr nun gelernt hatten, sowie musste man seinen Quellcode 100%ig verstehen, was mir auch keine Mühe machte da ich alles komplett selber geschrieben habe.

Für mein Spiel gab es schlussendlich eine 5.5, also gar nicht mal schlecht ;) Ich habe mich aber entschieden wenn ich mal Zeit und Lust habe noch etwas weiter am Spiel zu Programmieren, da ich noch mehr draus machen möchte, denn leider reichte die Zeit bis zum Abgabetermin nicht aus etwas grösseres zu machen, da meine Idee schon sehr Umfangreich war.

Das Spiel werde ich übrigens noch nicht veröffentlichen, da es noch lange nicht Fertig ist und wahrscheinlich den meisten kaum Spass machen würde ;)

Wie auch immer… hier werde ich euch natürlich, falls es neuigkeiten gibt, davon Berichten. Sobald der Zeitpunkt gekommen ist werde ich es dann auch mal veröffentlichen.

Noch eine Anmerkung: Das Spiel ist ein Text basiertes Spiel, also nichts mit 3D und so :P

TYPO3 – Verschiedene CSS Files je nach treeLevel

5. März 2010 in Tutorials, TYPO3 von Leo

In einem aktuellen Projekt an welche ich gerade arbeite, musste ich je nach dem wo man gerade ist in der Navigation, verschiedene CSS Files einbinden. Das heisst, je nach treeLevel (so nennt man dies in TYPO3), wird ein anderes CSS File eingelesen, falls dies erwünscht ist.

Zu erst einmal, wie wird der treeLevel bestimmt?
Dies ist ganz einfach, man geht von der Hauptseite (root) aus, welcher 0 ist. Danach geht es mit 1, 2, 3 [...] weiter, je nach Untermenü.

Tudoyu – Zusammenfassung & Installation

5. Februar 2010 in Internet, Software von Leo

Vor kurzem gab mir Markus den Auftrag, ich soll das Open-Source Projekt Management System Todoyu installieren und testen, und sehen ob wir es im Geschäft vielleicht einsetzen können.
Als ich dies getan hatte – nachdem ich zuerst von Fehlermeldungen überhäuft wurde – testete ich das System und wollte sehen, ob es unsere jetzigen im Einsatz befindenden Systeme ersetzen kann.
Ich erstellte Markus einen zusätzlichen Admin Account, mit welchem er mir später auch ein paar Tasks (Aufgaben) zuteilte, und ich so das System im Einsatz testen konnte. Während ich nun auf einer Webseite arbeitete, lief Todoyu im Hintergrund – zumindest dachte ich dies. Jedoch stellte sich nach über einer halben Stunde heraus, dass die ganze Zeiterfassung nach nur wenigen Minuten stoppte.

Etwa eine Woche später (diesen Montag) installierte ich einen neuen Release von Todoyu, welcher einige Fixes enthielt. Zuerst reklamierte Todoyu bei der erneuten Installation jedoch wegen einem Datenbankfehler, also löschte ich die komplette Datenbank, was das Problem danach behebte.
Als alles abgeschlossen war testeten wir die neue Version, merkten zu beginn jedoch kaum wirkliche Unterschiede.

Nach einem Tag fassten wir dann unser Fazit:

Es ist auf jeden Fall eine coole Idee. Ausserdem könnten wir mit Todoyu alle jetzigen Funktionen, für welche wir zurzeit mehrere Systeme benutzen, alles in einem System vereinigen. Jedoch ist das ganze System noch nicht ausgereift, und weist auch einige Bugs auf. Wenn das ganze aber noch stetig weiter gepflegt und entwickelt wird, könnte man Todoyu sicher im professionellen Einsatz nutzen.

Installationsanleitung:

1. Todoyu herunterladen. [Hier]

2. Todoyu entpacken und auf den Server hochladen.

3. Währenddessen am besten eine Datenbank erstellen, auf welcher Todoyu dann läuft.

4. Wenn alles hochgeladen wurde, müssen den Verzeichnissen genügend Rechte gegeben werden (beim Aufruf kommen ansonsten Fehlermeldungen).

5. Nun das Todoyu Verzeichnis im Browser aufrufen.

6. Todoyu beginnt mit der Schritt für Schritt Installation, befolgen Sie diese (zu beginn müssen eventuell noch mehr Rechte vergeben werden).

7. Ist die Installation beendet, so können Sie sich gleich einloggen und loslegen.

Nach der Installation von Todoyu müssen noch einige Sachen angepasst, bzw. richtig eingerichtet werden.

Meine erste richtige TYPO3 Extension

4. Januar 2010 in TYPO3 von Leo

Nach meiner kleinen, aller ersten “Extension”  (Klick), habe ich vor kurzem nun eine richtige Extension erstellt. Und zwar habe ich in einem kürzlichen Projekt mit meinem Lehrmeister und teilweise der Hilfe von anderen eine erste “wirkliche” Extension erstellt. Die Extension nennt sich Testimonials und kann hier aufgefunden werden (siehe rechte Seite).
Die Extension zeigt zufällig eine der im backend ausgewählten Personen aus und zeigt sie an. Dabei wird der Name, Titel, sowie das Bild etc. aus der Personen Datenbank genommen.
Geschrieben ist die Extension extra für dieses Projekt und befindet sich bisher nur dort im Einsatz.

Angefangen haben wir wieder mit Kickstarter, um die einfachen Felder für die Eingabe im Backend zu erstellen. Danach mussten wir jedoch noch einiges mit PHP, HTML, sowie CSS anpassen, damit die Extension schlussendlich so aussah, wie es sich der Kunde gewünscht hat.
Die Extension ist in 2 Sprachen verfügbar, deutsch und englisch. Hierbei wird einfach jeweils die englische Übersetzung des Feldes aus einem XML File genommen, in welchem dies alles abgespeichert ist.

Nach dem Break erfahrt ihr noch alles im Detail.

IPERKA

7. Oktober 2009 in Schule von Leo

Was ist IPERKA? IPERKA ist eine Methode, welche jedes Projekt in 6 Arbeitsschritte unterteilt.

Hier sehen Sie die einzelnen Arbeitsschritte und jeweils eine kurze Beschreibung.