Bahnhof der DB

Da ich gerade einmal dabei bin meine alten Handyphotos zu durchstöbern … hier noch zwei, die ich auf der ungeplanten Zwischenstation Kirchenlaibach Ende Oktober 2009 gemacht habe. Der Franken Sachsen Expresse sollte eigentlich von Dresden direkt nach Bayreuth fahren. Er fuhr jedoch kurzfristig geändert dann doch über Kirchenlaibach um pünktlich in Nürnberg einzutreffen, da wie immer  – die Neigetechniken kaputt war. (Kurzfristig geändert und das obwohl das Problem schon vorher bekannt war.)

So weit so gut für die Bahn. Der einzige Haken an der Sache für mich war: der Anschlusszug der auf keinen anderen Zug hätte warten müssen, hat nicht mal 10 Minuten auf unseren Franken-Sachen-Express aus Dresden gewarten. So dass ich dann mit Kind 50 Minuten in der Kälte (!) warten durfte. Aber zum Glück gab es ja noch die Wartehalle …

… dann entdeckte ich am gleichen Gebäude noch folgendes …

PS: Der Zug aus Kirchenlaibach nach Bayreuth fuhr dann pünktlich ab. Der nächste Zug aus Dresden hatte >10 min Verspätung (und? deja vu?).

Pünktlichkeit ist das oberste Gebot der Bahn.

Miefendes Internet

Heute mal ein paar weiche Fakten ohne Quellenangabe zur Umweltbilanz des Internets:

  • Einmal Googeln benötigt so viel Strom wie eine Energiesparlampe in einer Stunde.
  • Eine Figur in der virtuellen Welt “Second Life” verbraucht so viel Energie wie ein lebendiger Brasilianer.
  • Die Stromerzeugung für das gesamte Internet soll so viel CO2 hervorbringen wie der globale Luftverkehr.

[Zitat aus einer Email von Strato]

Diplomarbeit

Heute hab ich meine Diplomarbeit abgegeben:

Maker-Fringe-Messungen an Gallium-Selenid- und Saccharose-Kristallen.

Interessant für den Java Programmierer ist dann evtl. mein Messprogramm Nonlinear Optic Tools (nlo) – in Java und C mit NetBeans geschrieben.

Auf Anfrage kann ich gerne die Quellen für Latex, gnuplot und die Bilder (mit inkscape bzw. xfig erstellt) veröffentlichen.

Job

English

Has somebody a job for me? For my curriculum vitae and further information about myself look here. I would prefer a job as a programmer (or leader) or as a software architect. I learned several things about developing large application in several open source projects I created:

  • object oriented desing and desing patterns (My wife bought me this here. ;-))
  • junit testing
  • creating ant task
  • lookup concept

One of my dreams would be to develop a timetabling suite like my open source project gstpl. It would be a plus, if I can do this in Java with NetBeans. But I am flexible at this point and I like to learn new things.

In one year I will be flexible to change my current location (Bayreuth, Germany). But at the moment it should be either Bayreuth or cities close to it. Another solution would be working from home office or working only half a full timejob, because of my family.

If you are interested, please contact me!

Deutsch

Haben Sie einen Job für mich? Hier finden Sie meinen Lebenslauf und weitere Informationen über mich. Eine Arbeit als Programmierer (evtl. leitender Programmierer) oder als Software Architekt würde mir gefallen. In zahlreichen ‘open source’ Anwendungen habe ich viele nützliche Dinge gelernt die mich befähigen auch große Anwendungen zu schreiben. Als Physiker habe ich es gelernt komplexe Abläufe und Zusammenhänge zu analysieren und Konzepte für eine Lösung zu erstellen.

Einer meiner Träume wäre es die Dinge, die ich während der Programmierung von gstpl erlernt habe, anzuwenden bzw. das Programm zu erweitern.

Wenn in ihrer Firma mit Java bzw. NetBeans gearbeitet wird, bitte sprechen Sie mich an! Aber in dieser Hinsicht bin ich flexibel und ich lasse mich gerne und schnell auf neue Dinge ein.

Leider bin ich erst in einem Jahr örtlich flexibel. Momentan würde nur Bayreuth und Umgebung in Frage kommen. Halbtags oder von zu Hause aus wären auch Möglichkeiten die ich mir vorstellen könnte.

Hier finden Sie meine Kontaktinformationen.

Neonazi

It is annoying, there is another Peter Karich in Germany. And he is a Neonazi. But this is not me!!!! And I am not a Neonazi! I know the barbarity of the second world war and I am NOT xenophobic or anit-Semitic.

Es nervt wirklich, wenn man ‘Peter Karich’ unter Google.de sucht kommen Meldungen über einen Neonazi immer an erster Stelle. Aber das bin nicht ich!!! I kenne die Grausamkeiten des 2. Weltkrieges und ich bin weder fremdenfeindlich noch antisemitisch!

Lizenztext und Benutzername | Custom License-text and User-name for NetBeans

Ich habs endlich hinbekommen: jede neue Datei trägt meinen Name als @author und meine eigene Lizenz im Dateikopf.

(For the english version see below)

Eigener Lizenztext

Zuerst müsst ihr den Lizenztext z.B. nach /home/user/quell/license-lgpl.txt kopieren. Der Name dieser Datei ist dabei wichtig.

Als nächstes in der projekt-spezifischen Datei nbproject/project.properties

project.license=lgpl

einfügen. Z.B. innerhalb NetBeans: Einfach euer Projekt in der Dateiansicht ‘File’ öffnen.

Jetzt müssen wir NetBeans noch sagen wo die Datei license-lgpl.txt steckt:

Wähle in Tools->Templates den Knoten ‘Licenses’ aus und

suche mittels ‘Add..’ die vorher kreierte Datei /home/user/quell/license-lgpl.txt.

Diese sollte dann unter Licenses hinzugefügt worden sein.

Nun einfach mittels Rechtsklick auf ein Java Paket ausprobieren:

New->Java Interface auswählen und ‘Constraint’ eingeben.

Veränderter Benutzername

Dies ist ein Trick von Geertjan. Die User.properties öffnen:

in Tools->Templates->User Configuration Properties->User.properties

Dort einfach einfügen

user=Peter Karich, peat_hal ‘at’ users ‘dot’ sourceforge ‘dot’ net

English Translation

I have solved the problem in the latest NetBeans 6.1: every new file has my name as a value for the @author attribute and my own license text as header.

Your own license text

First of all you have to copy your license text e.g. to /home/user/quell/license-lgpl.txt. The name of this file is important.

As a next step go into the project specific file nbproject/project.properties and add

project.license=lgpl

E.g. with the files window within NetBeans.

Now you have to specify that you want to use this file as license text:

Go to Tools->Templates and choose ‘Licenses’ then search via ‘Add..’ the previously created file /home/user/quell/license-lgpl.txt.

To test it right click on a java package and choose:

New->Java Interface auswählen; then type ‘Constraint’ and you should see the license header.

Here is an example of an adapted apache header:

<#if licenseFirst??>
${licenseFirst}
</#if>
${licensePrefix}This file is part of the TimeFinder project.
${licensePrefix}Visit http://www.timefinder.de for more information.
${licensePrefix}Copyright ${date?date?string(“yyyy”)} the original author or authors.
${licensePrefix}
${licensePrefix}Licensed under the Apache License, Version 2.0 (the “License”);
${licensePrefix}you may not use this file except in compliance with the License.
${licensePrefix}You may obtain a copy of the License at
${licensePrefix}
${licensePrefix} http://www.apache.org/licenses/LICENSE-2.0
${licensePrefix}
${licensePrefix}Unless required by applicable law or agreed to in writing, software
${licensePrefix}distributed under the License is distributed on an “AS IS” BASIS,
${licensePrefix}WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
${licensePrefix}See the License for the specific language governing permissions and
${licensePrefix}limitations under the License.
<#if licenseLast??>
${licenseLast}
</#if>

Change your user name

This trick is from Geertjan. Open User.properties in Tools->Templates->User Configuration Properties->User.properties

Replace all stuff with

user=Peter Karich, peat_hal ‘at’ users ‘dot’ sourceforge ‘dot’ net

and you are done.

Dankeschön NetBeans und Co

…. und ein großes Dankeschön geht an ….

NetBeans!

Warum?

Ich arbeite schon seit ein paar Jahren an einem Stundenplaner – ein Open Source Projekt names gstpl. Und NetBeans war immer an meiner Seite (in schweren wie in guten Zeiten … :-), Java natürlich auch…

Vor ein paar Monaten began ich dann einen Algorithmus aufzuschreiben (einige der Ideen hatte ich schon ein paar Jahre vorher) um an einem Wettbewerb teilzunehmen. Die ‘Deadline’ dafür war heute Mittag und ohne NetBeans hätte ich wohl nie auch nur annähernd recht gute Ergebnisse erziehlt. Und neben meiner Physik-Diplomarbeit und anderen wichtigen Dingen im Leben hatte ich eigentlich gar keine Zeit 😉 Die Produktivität ist mit Java+NetBeans (‘javne’) im Gegensatz zu ‘früher’ mit C++ – für mich gesprochen – um den Faktor 4 gestiegen.

Was heißt nun gute Ergebnisse? Wenn man mit ‘Stundenplanen’ anfängt so stellt sich die Frage: ‘Gibt es den optimalen Stundenplan’ für ein bestimmtes Problem? Ja, den gibt es! Nur würde es ziemlich lange dauern diese zu finden. Man muss ja alle Lösungen durchgehen und dann auch verifizieren, dass es die Beste ist… Man versucht also Methoden zu finden die in annehmbarer Zeit (auf meinem PC hatte ich im Wettbewerb ca. 11 Minuten) eine möglichst gute Lösung finden können. Sie sollten also ein ausgewogenes Maß an ‘aktuelle Version verbessern’ und ‘gänzlich neue Lösung finden’ besitzen.

Etwas konkreter: Es gab ein paar Personen (z.B. 1000) die Fächer (insgesamt z.B. 400) gewählt hatten. Ist es nun möglich einen Stundeplan zu bauen der keine Konflikte beinhaltet? Ein Konflikt kann z.B. auftreten, wenn eine Person zwei Fächer zur selben Zeit besuchen soll oder wenn zwei Fächer in einem Raum (ach ja die gab es ja auch noch, z.B. 10) stattfinden sollten. Bei bestimmten Fächern musste man auch noch deren relative Reihenfolge zueinander beachten und bestimmte Fächer hatte auch noch Anforderungen an Räume (Chemie kann ja nur in Räumen mit mind. einem Bunsenbrenner stattfinden). Wenn all dies passt – für alle Personen und Räume – so nennt man den Stundenplan konfliktfrei (no hard constraint violations) – er ist aber noch lange nicht optimal. Man sollte bei dem Wettbewerb auch noch die ‘weichen’ Nebenbedingungen optimieren: Z.B. sollten Personen möglichst nicht nur ein Fach pro Tag haben usw.

Ihr seht eine Menge Dinge gab es zu Beachten und zu tun. Ich musste außerdem noch die Geschwindigkeit optimieren (mit nem Profiler) da ich wahrscheinlich nur C++/C – Projekte als Konkurenz haben werde bzw. ‘hatte’.

Nebenbei habe ich versucht möglichst viele Sachen mit JUnit zu testen, damit die Jury nicht irgendwelche Bugs findet bzw. das Programm auch bei den noch nicht zugänglichen Dateien (hidden datasets) funktioniert.

Mit NetBeans alles kein Problem… Ein besonders cooles Feature ist die Local History, die mir ganz schnell die Unterschiede einer Datei zu versch. Zeitpunkte (auch von vorvorvorgestern) anzeigen konnte:

Local History

Außerdem hat die ‘unused Variable’-Warnung einige Bugs verhindern können, da ich dann z.B. gemerkt hatte, dass in einer Schleife nicht die lokale Variable, sondern der Variablenzähler genutzt wurde:

Unused Variables

Außerdem geht ein Dankeschön an folgende Projekte:

  • GNU screen – damit ich an einem schnelleren Rechner Tests starten konnte und diese auch Laufen würden, wenn mein Rechner aus ist. Siehe dazu auch ältere Blogeinträge.
  • YourKit Profiler – Eine propritäre Konkurenz zum NetBeans Profiler.
  • KDE svn ein Linux subversion client

Kein Editor in NetBeans

Oh Schreck! Kein Editor und das beim Programmieren!

Also ich benutze NetBeans 6.0 und hab da heute lauter Module installiert: C++, UML, Collaboration, TaskList, Maven und JavaME+Mobility.

Nach dem Neustart sah NetBeans dann aber so aus:

Kein Editor

Auch mehrmaliges Strg 0 half nix (Windows -> Editor). Man kann im Nachhinein eventuell erahnen, dass der Editor im ‘Norden’ versteckt sein könnte. Jedoch ist mir das erst nachher aufgefallen. Ich hab das Problem dann einfach gelöst indem ich ein paar Fenster hin und her geschoben habe. Danach erschien dann plötzlich irgendwann der Editor (im Norden) – zum Glück, denn ich hab heute noch was vor 😉

Editor im Norden