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.

Advertisement

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

Tastaturkürzel für NetBeans 6.0

Im Gespräch mit seapegasus 😉 auf den Sun Tech Days habe ich erfahren, dass Tastaturkürzel gar nicht so gebräuchlich sind. Für mich erhöhen diese aber signifikant die Entwicklung.

Daher hier die wichtigsten und wie diese vorher waren (NetBeans 5.5.1 -> NetBeans 6.0):

  • Umbenennen ‘Refactore’: STRG ALT R -> STRG R
  • Rechtes/Linkes Tab: ALT Links/Rechts -> STRG BildHoch/BildRunter
  • Formatiere Code: STRG SHIFT F -> ALT SHIFT F
  • Verbessere und Lösche Importe: ALT SHIFT F -> STRG SHIFT I
  • Gehe zur Deklaration: ALT G -> STRG B
  • Mit STRG SHIFT F findet man nun einen bel. Ausdruck im gesamten Projekt.
  • Mit dem Ausführen fortfahren (beim Debuggen) ist jetzt logischer: STRG F5 -> F5, denn F6 startet ein Programm.
  • Starten des Debuggers ist auch besser: F5 -> STRG F5, denn STRG SHIFT F5 Startet den Debugger für einen Test/eine Datei.
  • Gibt es einen Ersatz für ALT K in NB 6.0? ALT Links geht zur zuletzt editierten Datei und STRG Q geht zum zuletzt editierten Ort

Diese Kürzel bleiben:

  • ‘QuickFix’ eines Fehlers: ALT ENTER
  • Liste alle Methoden ‘code completion’ eines Ausdrucks: STRG SPACE und den Kursor direkt nach dem Wort das nb vervollständigen soll.
  • Öffne bel. Dokument: ALT SHIFT O
  • Öffne Kontextmenu: SHIFT F10; es könnte sein, dass dies nur bei mir (opensuse+windowmaker) funktioniert, da bei mac und win die F-Tasten von dem Betriebssys. belegt sein könnten. Es gibt da noch so ne Kontextmenu taste auf meiner Tastatur zwischen Win und STRG taste: damits gehts auch.
  • Vollansicht eines Dokuments: SHIFT ESC
  • Schließe Tab/Fenster: STRG W oder STRG F4
  • CTRL 7 dirigiert einen zum ‘Navigator’ wo man dann z.B. dieAnfangsbuchstaben einer Methode eingeben kann und so schnell zwischen Methoden hin und herspringen kann.

Hier eine alte Version dieses Themas in Englisch. (09. September 2007)

Hier die komplette Übersicht der Kürzel für:

Die pdf – Dokumente sind auch jeweils über Help -> Keyboard Shortcuts Card erreichbar und dort wahrscheinlich auch aktueller.
Wie kann man nun diese Kürzel ändern? Gehe zu: Tools -> Options -> Keymap! Dort könnte man die alten von nb 5.5 aktivieren oder sogar die von Eclipse. Wie druckt man sich dann eine Übersicht aus? Einfach ein Tastaturkürzel (z.B ALT STRG SHIFT E) der ‘Export Shortcut as HTML’ – Aktion zuordnen. Zu finden unter Tools -> Options -> Keymap: Window und dann die generierte Datei: /home/name/.netbeans/6.0/config/shortcuts.html ausdrucken! Dies Idee ist von Geertjan und man erhält damit auch einen guten Vergleich zwischen Eclipse, NetBeans 6.0 und 5.5.