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.

Advertisements

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

CrossVC. Grafische Versionskontrolle mit CVS und Subversion

Wer braucht das Buch:

Grafische Versionskontrolle mit CVS und Subversion ???

Noch original verpackt und hier ein paar Probekapitel.

Ihr bekommt es für 20 EUR + Versandkosten (ihr spart 15 EUR!), da ich es bei den Sun Tech Days in Frankfurt geschenkt bekommen habe, werde ich dieses Geld spenden. Und zwar hierhin:

http://www.handinhand-ev.org (Ihr könnt eine Email von denen bekommen, denke ich, damit ihr seht, dass ich nicht lüge …)

5 EUR mehr und ihr bekommt noch einen Stoffbeutel, eine Solaris Express Dev. Edition DVD, einen Kofferanhänger und einen Kuli von Sun!

Falls es mehrere Interessenten gibt, bekommts der Schnellste!