TWDiät  TWDiät

Das TWDiät Programm wird erstellt um leichter abzunehmen und einen Überblich zu haben was man so isst und sollte für mich als Motivation dienen.
Was mir hilft, kann evl. auch anderen helfen. Auch kann man sehen, wie ein Java Programm nach und nach entsteht und wie man das eine oder andere Problem löst. Anregungen sind willkommen.
Hier auf dieser Seite werde ich den Fortschritt und die Gründe für das "Warum" in Form eines Blogs erläutern.

17.05.2008 Wie alles begann.

Ich habe festgestellt, das ich nur abnehmen kann, wenn ich mir aufschreibe was und wieviel ich esse. Wenn ich als ein Tagebuch führe. Das Tagebuch soll einfach zu bedienen sein. Nur die Informationen und Funktionen enthalten die ich
wirklich benötige. Auch neue Techniken wollte ich ausprobieren.

Gesagt, getan. Also zuerst ein kleines Javaprojekt mit Eclipse erstellt und zwar ein Maven Projekt. Die Verzeichnisstruktur
ist also schon mal durch Maven vorgegeben und erzeugt. Dann eine einfach Javabean Klasse erstellt, die die nötigen Datenelemente enthält.

Ich brauch erst einmal das Datum, das Gewicht in kg, die Laufdauer in Minuten und die Summe der Kilokalorien als Instanzvariable der Einsatz Klasse.
Dann die Getter und Setter mit Eclipse und die equals und toString mit dem CodeSugar Plugin generieren.

JUnit Testklasse für weitere Entwicklung der Einsatz Klasse schon mal angelegt.

18.05.2008 Es lebe die GUI.
Um die vier Datenelemente anzuzeigen brauch ich einen kleinen Eingabedialog.
Also mit dem Jigloo SWT/Swing GUI Builder einen kleinen Dialog zusammen klicken.
Der Dialog sieht dann wie folgt aus:

Photo von der ersten Version von TWDiaet


Die Button << und >> sollen durch die Datensätze navigieren.
20.05.2008 Speichern als JSON.
Schnell das Speichern ermöglichen damit ich sofort mit dem Programm arbeiten kann und schon mal Daten erfassen kann.
Dazu wollte ich mal ein neues Dateiformat ausprobieren und zwar JSON. Um das zu realisieren verwende ich XStream.
Ein erste JSON Datei sieht dann so aus:
    {"de.wenzlaff.twdiaet.lauftagebuch.EinsatzListe":
    {"einsatzListe":{"de.wenzlaff.twdiaet.lauftagebuch.Einsatz":[
    {"datumGelaufenAm":"2008-05-17 00:00:00.0 CEST","zeitGelaufenDauer":"1970-01-01 00:00:00.0 CET","gewicht":"97.5","kiloKalorien":"0.0"},
    {"datumGelaufenAm":"2008-05-18 00:00:00.0 CEST","zeitGelaufenDauer":"1970-01-01 00:30:00.0 CET","gewicht":"95.1","kiloKalorien":"0.0"},
    {"datumGelaufenAm":"2008-05-19 00:00:00.0 CEST","zeitGelaufenDauer":"1970-01-01 00:00:00.0 CET","gewicht":"95.2","kiloKalorien":"0.0"},
    {"datumGelaufenAm":"2008-05-20 00:00:00.0 CEST","zeitGelaufenDauer":"1970-01-01 00:00:00.0 CET","gewicht":"95.2","kiloKalorien":"0.0"},
    {"datumGelaufenAm":"2008-05-21 00:00:00.0 CEST","zeitGelaufenDauer":"1970-01-01 00:45:00.0 CET","gewicht":"94.5","kiloKalorien":"0.0"},
    {"datumGelaufenAm":"2008-05-22 00:00:00.0 CEST","zeitGelaufenDauer":"1970-01-01 00:00:00.0 CET","gewicht":"94.4","kiloKalorien":"0.0"},
    {"datumGelaufenAm":"2008-05-23 00:00:00.0 CEST","zeitGelaufenDauer":"1970-01-01 00:00:00.0 CET","gewicht":"94.4","kiloKalorien":"0.0"},
    {"datumGelaufenAm":"2008-05-24 00:00:00.0 CEST","zeitGelaufenDauer":"1970-01-01 00:00:00.0 CET","gewicht":"94.4","kiloKalorien":"0.0"},
    {"datumGelaufenAm":"2008-05-25 00:00:00.0 CEST","zeitGelaufenDauer":"1970-01-01 00:40:00.0 CET","gewicht":"94.7","kiloKalorien":"0.0"},
    {"datumGelaufenAm":"2008-05-26 00:00:00.0 CEST","zeitGelaufenDauer":"1970-01-01 00:40:00.0 CET","gewicht":"94.7","kiloKalorien":"0.0"}
    ]}}}
    

Die vier Datenelemente in einer Liste abspeichern und nach dem Starten wieder einlesen.
22.05.2008 Speichern als XML als Sicherung.
Parallel dazu lege ich noch eine Sicherungskopie im XML Format ab, da ich jetzt noch nicht weiß, wie ich später die Auswertungen machen will.
Und evl. lasse ich das JSON Format wieder fallen.
Auf jeden Fall soll es zukünftig eine Grafik geben die das Gewicht und den Kilokalorien Verbrauch darstellt.

Ein Interface soll die Schnittstelle beschreiben, also erst einmal zwei Methoden:
        void speicherEinsatzListe(EinsatzListe einsatzListe, File datei);
        
        EinsatzListe leseEinsatzListe(File datei);



23.05.2008 Dialog Zentriert.
Die Anwendung soll wenn sie startet in der Mitte des Bildschirms erscheinen. Kleine Helper Klasse zum zentrieren verwendet.
JUnit Test für die equals Methode geschrieben, da die Einsatz Objekte nach dem Datum verglichen werden solle.
24.05.2008 Navigieren.
Anzeigen aller Datensätze durch die vor und zurück Button, damit man sich auch noch alte einträge anschauen kann.
26.05.2008 Online.
So, heute erst einmal diese Seite erstellt, um den weiteren Fortschritt hier zu dokumentieren. Ich habe übriges bis heute schon fast 4 kg abgenommen :-)))

Also weiter programmieren und nicht essen. Was habe ich als nächste noch vor:
- Nicht nur Joggen auch andere Sportarten wie Laufen auswählbar machen.
- Menü für Speichern und Laden - Programm in Subversion einchecken.
- Erste Version zum Downloaden zusammenstellen.
- Grafik.
- Nährstoff Tabelle

28.05.2008 Nur Joggen.
Heute war so schönes Wetter, da bin ich mal joggen gegangen. Bewegung soll auch gut sein für das Gewicht.
29.05.2008 Massage
Heute mal zur Massage gegangen. Das tut auch gut. Für TWDiät habe ich heute mal ein Links auf diese Homepage gesetzt, damit TWDiät auch gefunden wird.
Und das ganze Projekt in Subversion eingescheckt.
Um Java Code auf dieser HTML Seite anzuzeigen habe ich auch noch das Java2Html Plugin installiert.
Evl. finden sich da auch ein paar Leute die Lust haben die bisher erstellte Version zu testen. Schreib mir!
Mir fällt gerade ein, ich habe auch Lust das TWDiät Programm in verschiedenen Sprachen zu erstellen.
Hat jemand Lust, zu übersetzen? Schreib mir?

30.05.2008 Internationalisierung.
Um das Programm in verschiedenen Sprachen zu erstellen habe ich erstmal einen property Editor in Eclipse installiert. Und zwar den JInto. Jetzt kann ich in einer View alle Property-Dateien bearbeiten. Das Auslagern der Strings geht bei Eclipse ja ganz einfach über das Kontexmenü Source | Externalize Strings. Englisch würde jetzt so ausehen, mir fehlen nur noch die einige passende Übersetzungen:

Photo von der englischen Version von TWDiaet

Um die Struktur zu visualisieren habe ich auch gleich mal Byecycle" installiert und getestet. Sieht ganz gut aus.
Ein Startscript und Maven für die Auslieferung habe ich auch schon mal erstellt. Also die erste Version könnte schon mal ausgeliefert werden. Aber nicht mehr heute.
01.06.2008 Internationalisierug.
Im neuen Java-Magazin steht ein Artikel über IzPack. Das will ich auch mal testen. Über JSon ist dort auch ein Artikel, also liege ich mit diesem Datenformat ja voll im Trend.
02.06.2008 IzPack.
Die zwei XML Dateien für den Installer geschrieben. Das mit den Shortcut auf dem Desktop klappte nicht so wie gedacht. Aber ohne Umlaute gehts. Der ANT-Task ist einfach:
    <taskdef name="izpack" classpath="${izpack.lib.dir}/standalone-compiler.jar"
        classname="com.izforge.izpack.ant.IzPackTask"/>
        
        <izpack input="install-definition.xml"
            output="${projekt.jar}"
            installerType="standard"
            inheritAll="true"
            basedir="${basedir}"
            compression="deflate"
            compressionlevel="9"/>         
    

05.06.2008 Google.
Heute mal bei Google und Live Search TWDiaet eingegeben. Jetzt wird die Seite auch gefunden. Als einzige Seite zu diesen Suchbegriff. Das ist ja schon mal was. Bei MetaGer und Yahoo noch nicht, das dauert da wohl etwas länger.
07.06.2008 Version 0.0.1
So, jetzt habe ich mal die erste Version mit Installationsprogramm in 26 Sprachen erstellt.
Eine Menüleiste mit zwei Einträgen zum Beenden und Hilfe läuft auch schon.
Ein Systemicon wird jetzt auch links oben im Dialog angezeigt. Da hätte ich aber noch einen mit einer Waage. Da könnte mir ja mal jemand ein schönes Icon zeichnen und zusenden oder?

Installation:
Download der twdiaet-setup.jar mit rechts Klick und Speichern unter. Das Jar ist ein selbstausführendes Jar, also die Datei einfach mit einen Doppelklick starten und wie im Setup-Dialog angegeben den Setup-Prozess durchführen. Sollte nach einem Doppleklick kein Setup-Prozess starten dann in das Verzeichnis mit der Konsole gehen und java -jar twdiaet-setup.jar ausführen. Der Setup-Prozess startet dann automatisch mit:

Photo vom Setup von TWDiaet

Nach der Installation im Installationsverzeichnis die start-twdiaet-gui.bat ausführen, und es startet die Version 0.0.1:

Photo von der 0.0.1 Version von TWDiaet

Download von TWDiät Download: TWDiät    PAD Factsheet von TWDiät

11.06.2008 Erfolge
Bis heute schon 5 kg weniger. Die TWDiät hilft.
Ja, wer am programmieren ist, hat keine Zeit zu essen.

In MetaGer und Yahoo ist unter dem Stichwort TWDiät diese Seite auch schon zu finden. Also über die wichtigsten Suchmaschienen ist diese Seite zu erreichen. Aber wer sucht schon nach dem Stichwort TWDiät? Evl. hilft auch dieser Permanentlink.

Ok, was kommt jetzt als nächstes? Kein Fussball, sondern das erstellen einer PAD Datei, damit das TWDiät erfasst werden kann. Ich verwende dazu den DeuPAD Editor.
Aus der generiere ich dann eine Übersichtsseite und den Seitenindex. Aber dazu später mehr.

12.06.2008 Fussball
Heute Fussball geschaut und dabei eine Pizza gegessen, 900 kcal. Das wirft mich wieder zurück. Aber ich mach weiter.
Also erst einmal die PAD Datei erstellt. Und daraus dann mit ANT die PAD Übersichtsseite, die Inhalt und die Download Seiten generiert.

13.06.2008 0.0.2
Schon mal alle Scripte auf Version 0.0.2 gestellt und einen Splashscreen eingebaut.
Und ein QR Barcode muss auch sein:
Url von TWDiaet als QR Barcode

18.06.2008 Dank und Feedback
Mit Tee geht es auch noch schneller voran. Habe wieder etwas zugelegt. War ein hartes Wochenende. Kuchen, Kuchen, Kuchen...
26.06.2008 Navi
Heute mal an TWGpx weiter gearbeitet. Das Tool wandelt Favoriten oder POI Dateien von Navigationsgeräten in HTML Dateien um. Die erste Version läuft schon mal.

Gelaufen bin ich heute auch. Die TWDiät wirkt. Programmieren statt essen.
02.07.2008 Ganymed
Heute das neue Eclipse Ganymed geladen (160MB) und installiert. Gut das ich alle externen Libs als User Libraries eingerichtet habe. So konnte ich alle Einstellungen exportieren und in Ganymed wieder importieren. Meine besonderen Plugins hatte ich schon über den Link mechanismus eingebunden, so musste nur das Verzeichnis mit den Links kopiert werden. Dann noch das fehlende Maven Plugin installiert und schon konnte alles wieder wie gewohnt laufen.
09.07.2008 Gpx
Heute mal an TWGpx weiter gearbeitet und das Distributions Package gebaut. Brauche jetzt nur noch eine passende GPX Datei und dann kann es ausgeliefert werden.
Gelaufen bin ich heute auch. Gewicht steht oder besser gesagt steigt leicht.
18.07.2008 Gewicht
Gewicht jetzt schon ein paar Tage auf 91 kg. Das klappt ja mit dem Gewicht, wenn auch nicht so schnell wie erwartet.
An TWGpx weiter gearbeitet, und die erste Version eben ins Netz gestellt.
13.08.2008 TWKonferenz
Gewicht jetzt schon ein paar Tage auf unter 90 kg. Das klappt ja mit dem Gewicht, wenn auch nicht so schnell wie erwartet.
An TWDiaet habe ich bisher nicht mehr weitergearbeitet, da TWKonferenz priorität hat, aber bald geht es weiter.
19.10.2008 Javadoc
Also das Gewicht ist wieder etwas nach oben gegangen. Habe auch privat nicht mehr so viel programmiert. Heute mal ein neues Doclet für Javadoc ausprobiert. Das ApiViz von Google kann mit Hilfe von Graphviz schöne UML Diagramme in den Javadoc generieren. So hat bekommt man schnell einen Überblick. Graphviz muss auf dem System installiert sein und in der Path Variable eingetrage sein. Dann kann mit Maven: mvn site oder mvn javadoc:javadoc die Dokumentation generiert werden. Ein Diagramm Beispiel:

UML der 0.0.2 Version von TWDiaet


28.11.2008 TWFixEdit
Heute mal an TWFixEdit gearbeitet und aktualisiert. Dann auch gleich mit einem Installationsprogramm versehen. Habe heute ein Belegexemplar per Post bekommen "Software für den Funkamateuer 2009" mit einen kleinen Artikel über TWWeltzeituhr das Programm wurde auch auf der CD-ROM veröffentlicht. Ist aber in C++ geschrieben. Bald geht es auch mit der TWDiaet in Java weiter.


[Spende] - [Top] - [Home] - [Tools] - [Text] - [Suche] - [Kontakt]  RSS wenzlaff.de XML Feed [Valid Wenzlaff RSS XML feed] Valid HTML 4.0!
Copyright © 2017 by Thomas Wenzlaff. Alle Rechte vorbehalten. http://www.wenzlaff.de