KNF Kongress ’15


Flattr this

Motivation

Ich war heute auf dem KNF Kongress ’15 weil ich gestern per eMail informiert wurde das dieser heute stattfindet. Nun gut es ist Sonntag und ich konnte mein WE nicht so schnell umplanen aber immerhin ich bin gegen 14:00 Uhr dort aufgeschlagen und habe spätestens 18:00 Uhr festgestellt, dass sich der Besuch gelohnt hat. Daher werde ich hier meine Eindrücke kurz wiedergeben. Evtl. sollte ich noch erwähnen, dass ich den Verein bis zur eMail nicht einmal kannte.

Das Programm

An dieser Stelle könnte ich einfach einen Verweis auf das Programm hinterlegen aber da sich Verweise im Internet schnell ändern gebe ich den Programminhalt kurz als Tabelle wieder:

Uhrzeit Hörsaal E013 Hörsaal E014
10:00 Bau und Installation von Android-Apps aus verfügbaren Sourcen im Internet. “Domain Driven Design” bei kleinen Projekten – geht das?
11:00 Mit Daten leben und sterben. UML für Hobbyprojekte
12:00 Mittagspause Mittagspause
13:00 Wie man seine DIY 3D-Drucker, Fräsen, Folienschneider und LASER-Plotter mit Open Source-Software, Firmware und sogar Hardware aufbauen kann. Warum bruachen wir eine neue Programmiersprache wie Perl6? Haben wir nicht schon genug Programmiersprachen? Jetzt kommt Perl 6.
14:00 Freifunk, ein dezentrales Wireless Mesh-Netz Doppelvortrag: “Konfiguration durch Konvention: Warum Dinge ganz einfach funktionieren und trotzdem flexibel sind” und “Sprachgepflogenheiten beim Umgang mit Computern”
15:00 Kaffeepause Kaffeepause
15:30
  • Fehler bei der GNU PG Konfiguration vermeiden
  • vi in 5 + 10 Minuten – alles was man wissen muss.
GitLab Einführung
16:30 KNF Jam Session

Expertentipps in jeweils 5 Minuten

Quelle: http://www.franken.de/veranstaltungen/knf-kongress/2015/

 

Wie bereits erwähnt ich traf kurz vor 14:00 Uhr ein und hörte mir die Vorträge im E013 an, also Freifunk, GNU PG und vi.

Der Vortrag über Freifunk hat mir sehr gefallen. Dabei habe ich endlich mal erfahren was im groben alles hinter dem Router in unserem Flur steckt und wie das so grob zusammen arbeitet. Auch Themen wie Störerhaftung wurden angesprochen. Das Ganze aus einer sehr praktischen Perspektive in der auch durchaus auf aktuelle Problemstellungen wie das gerade im Umbruch befindliche Monitoring hingewiesen wurde.

Den Vortrag über GNU PG habe ich dann soweit verpasst als das ich noch die letzten 5 Minuten mitgenommen habe. Vorher war ich noch in Gesprächen zu Freifunk – sorry dafür.

Dafür hab ich dann viel Neues über den bei mir manchmal aus Versehen startenden vi Editor erfahren. Vor allem aber ein sicheres “Keine Panik” Rezept für Unix DAUs wie mich bekommen. Ich nutze zwar Linux bin aber letztlich Java Programmierer und IDEs wie Eclipse gewöhnt und wenn sich dann ein Wesen öffnet welches mir eine Datei anzeigt und beim ersten Tastendruck irgendwelche mit unbekannten Kommandos ausführt bin ich immer etwas verunsichert:) Das wird sich in nächster Zeit wohl ändern, denn ich habe heute durchaus erkannt das ein Beherrschen dieses Editors durchaus seine Vorteile haben kann.

Ganz spannend fand ich dann auch die KNF Jam Session. Zunächst dachte ich mich würde etwas wie ein Poetry Slam für ITler oder eine Art Quiz erwarten. Dem war aber nicht so. Bei der Veranstaltung handelte es sich einfach um die Möglichkeit sein persönliches Projekte in 5 Minuten vorzustellen und um Mitstreiter zu werben. Hier wurden sehr interessante Projekte vorgestellt. Das größte lokale war vermutlich ein Perl 6 Treffen in Nürnberg im nächsten Jahr (2016). Ein weiteres Projekt war Open Sea, welches scheinbar gut läuft aber auf seinem youtube Kanal aktuell noch 80 Abonnenten benötigt um eine sprechende Kanal-URL erhalten zu können.

Fazit

Soweit also die Infos zum heutigen KNF Kongress. Aus meiner Sicht eine Veranstaltung deren Besuch sich lohnt – zumindest für mich. Hier ist es möglich schnell regionale (evtl. sogar überregionale) Kontakte für alle möglichen Themen rund ums Internet zu finden. Gut für den Ausbau eines Netzwerkes das man benutzen möchte um konkrete Hilfe im persönlichen Gespräch zu erhalten.

 

Getting Class values from Annotations in an AnnotationProcessor


Ein sehr hilfreicher Blogeintrag zum Verarbeiten von Annotationen ab Java6

Peter Mount's Blog

In annotation processors one common use case is to read the values contained within an Annotation. In most cases this works fine, however there are some caveats when it comes to accessing values within Annotations that are either Class or a Class array. It’s even worse if you are trying to access an annotation on a method within a super type of the class you are processing. Here I’ll go through how to access those Class values and how to get those values when they are in a super type – specifically when a method has been overridden.

First why?

Well inside retepTools we have an AnnotationProcessor that checks to ensure that certain annotations are used correctly, specifically the @ReadLock and @WriteLock annotations. It’s invalid for those annotations to be used together on the same method. It’s also invalid for a method to be annotated with one and then overridden…

Ursprünglichen Post anzeigen noch 2.958 Wörter

Videos vom Desktop erstellen


Flattr this

Motivation

Ab und zu benötigt man zur Erklärung von Programmen ein kleines Video. Meine Video’s stelle ich auf youtube zur Verfügung. Tools zur Erstellung gibt es einige und die Erfahrungen welche ich damit sammle werde ich in diesem Post nach und nach ergänzen.

Screen Recorder

Zunächst muss man in der Lage sein die eigenen Aktionen auf dem Computerbildschirm als Film aufnehmen zu können. Unter Windows eignet sich dazu CamStudio sehr gut. Das Programm lässt sich auch unter Linux nutzen allerdings ist dann das Paket wine zu installieren und es geht etwas Performance drauf. Aus Angst vor Performanceeinbussen und Problemen wie Hängen und Absturz habe ich CamStudio nicht unter wine ausprobiert. Unter Windows allerdings hat es mir lange Zeit sehr gute Dienste geleistet.

Aktuell nutze ich Ubuntu und habe mir dort Kazam installiert. Der erste Eindruck ist sehr gut aber ein richtiges Video für meinen Kanal habe ich damit noch nicht erstellt. 

Audio Recorder

Einen Audio Recorder habe ich noch nicht benötigt aber ich halte es für das Beste einen zu verwenden welcher mp3 Format als Ausgabe liefert.

Schneiden

Zur Bearbeitung von Urlaubsvideos habe ich auf Windows gern als Toolchain die Werkzeuge dvdx, cuttermaran und dvdstyler genutzt.


Cheaten per Sheet


Flattr this

Motivation

Jeder von uns benutzt täglich eine Vielzahl an Werkzeugen. Nach längerer Pause werden die Tastenkürzel oder Kommandos vergessen. Dann greift man sich ein Cheat Sheet und schon läuft’s wieder. Auf manchen Cheat Sheets fehlt etwas, was man daher manuell per Stift ergänzt hat. Der Zettel ist nun leider weg aber ein eigenes Cheat Sheet zu entwerfen dafür fehlte immer die Zeit. Erst ein Template bauen und dann noch den Inhalt ausdenken – gibts da nicht was von der Stange? Und so fand ich Cheatography.

Cheatography

~, dies ist eine Plattform auf welcher sich auf einfachste Art einfache Cheat Sheets erstellen lassen. 

Zunächst muss man sich registrieren😦 Ja ohne Daten geht es leider nicht und ein brauchbares Video ob sich die Registrierung lohnt war auch nicht im Netz zu finden. Darum hab ich das für Sie mal ausprobiert und muss sagen es lohnt sich.  Nach der Registrierung kann man direkt loslegen. Anzahl der gewünschten Spalten festlegen und Hintergrundfarbe definieren und los geht es.

Im ersten Versuch habe ich mich für ein 4 Spalten Layout entschieden – nach der Veröffentlichung war es mir aber doch zu doof und dann habe ich noch auf ein 3 Spalten Layout gewechselt. Alles kein Problem. Veröffentlichen geht nur einmal ab da wirken sich die Änderungen direkt aus. Also vor der ersten Veröffentlichung lieber 10 mal überlegen und Andere nach ihrer Meinung fragen. Nach der Veröffentlichung ist es wie bei einer Webseite, wenn der erste Eindruck schlecht ist, kommt niemand wieder. 

Inhalte erstellt man einfach als Blöcke welche man in den Spalten beliebig anordnen kann. Jeder Block ist von einer bestimmten Art zwischen denen man aber live wechseln kann. Der Inhalt der alten Art bleibt eine Weile erhalten. Falls die neue Art nichts ist wechselt man einfach zurück und hat nix an Inhalt verloren – sehr gut gelöst. Es werden folgende Arten angeboten:

  • Plain: Text oder Code
  • Lists: Ein bis Vier spaltige Listen, Bar Chart, Q&A Style
  • Media: Image/Photo oder Video (Video wird nicht ins PDF exportiert)
  • Live Content: URL zu einer dynamisch erzeugten Ressource im Netz
  • Column Break (erzeugt eine neue Spalte im PDF)
  • Page Break (erzeugt eine neue Seite im PDF)
Damit lies sich jeder meiner Wünsche erfüllen und so denke ich braucht es kein anderes Tool um mal schnell einen Spickzettel zu erstellen.

Anbei mein erstes Cheat Sheet für Apache-Karaf:




Code mittels NDepend analysieren


Ein sehr guter Post von Johnny Graber – sehr lesenswert.

Johnny's Blog

Um möglichst schnell in ein komplexeres Projekt einzusteigen hilft einem eine gute Übersicht. Visual Studio bietet je nach Ausgabe eine recht gute Code Analyse. Will man mehr wissen oder ist man an bestimmten Konstellationen im Code interessiert, stösst man aber schnell an Grenzen. Hier benötigt man einmal mehr die Werkzeuge und Ergänzungen von Drittherstellern.

Als ich vor einigen Wochen gebeten wurde mir NDepend anzuschauen kam mir dies sehr gelegen. NDepend ist ein Tool zur statischen Code Analyse für .Net. Damit lässt sich der Code nicht nur auf vorgefertigte Qualitätskriterien überprüfen, sondern man kann auch eigene Abfragen definieren.


Download und Installation

Auf NDepend.com kann man die Demo-Version als Zip herunterladen. Die Installation beschränkt sich aufs entpacken der Datei und einem Doppelklick auf die Installationsdatei.

Wenn einem die Möglichkeiten von NDepend gefallen bekommt man eine entsprechende Lizenz ab 299€. Leider gibt es keine GUI-basierende Möglichkeit um den Lizenzschlüssel einzugeben. Die Lizenzdatei…

Ursprünglichen Post anzeigen noch 527 Wörter

Einheitliche IDE erstellen


Flattr this

Motivation

Kennen Sie das auch? Sie haben gerade eine Open Source Software installiert, alles funktioniert einwandfrei und doch eine Kleinigkeit könnte angepasst werden. Ein Blick in die Quellen verrät Ihnen es ist ganz einfach und kein großer Aufwand. Sie starten ihre IDE laden die Sourcen herunter und … kämpfen mit nicht aufgelösten Abhängigkeiten. Ok, hier noch ein Plugin nachinstalliert und dort noch ein Plugin aktualisiert. Die meisten Probleme sind jetzt behoben aber ein oder zwei Probleme bleiben hartnäckig und es gelingt Ihnen erst nach intensiver Suche in Foren und im Web oder nach einer Kontaktaufnahme mit dem Projektgründer. Nach ein paar Tagen geben Sie auf und nutzen lieber eine andere Software. 

Oder Sie sind Mitglied in einem Entwickler Team und dürfen einen neuen Kollegen einarbeiten. Also zunächst einmal den Arbeitsplatz einrichten, eclipse aufsetzen und konfigurieren, Projekt auschecken und Server starten und … Mist irgendetwas läuft nicht. Das ging aber bisher immer und keiner hat damit Probleme! Ja klar seit dem letzten Zugang ist die Architektur oft geändert wurden aber das dürfte nicht diese Auswirkungen haben – es beginnt eine Fehlersuche welche manchmal Tage dauert und auf die Performance des Teams drückt. 

Im Eclipse Umfeld gab und gibt es Projekte welche sich dieses Thema’s annehmen. Als Beispiele seien hier die folgenden genannt:

Erste vollständige Lösung

Bis auf den untersten Eintrag erbrachten alle in obiger Liste aufgeführten Projekte nur Teillösungen. Kick your eclipse in the cloud ist das erste Projekt welches aus meiner Sicht eine vollständige Lösung zur Herstellung identischer Entwicklungsumgebungen bietet. Dabei wurde wirklich an alles gedacht. Zunächst wird im Web nach einem Baukasten System die gewünschte Eclipse zusammen geklickt. Dann wird das ganze Paket mit einem Namen versehen und zusammengeschnürt. Nach ca. 15 Minuten steht das Paket zum Download bereit. Das herunter geladene Paket kann plattformunabhängig gestartet werden (Window Vista und Lubuntu habe ich selbst ausprobiert). Es erscheint ein Installer welcher die lästigen Arbeiten übernimmt. Er erkennt auch wenn das Paket früher schon installiert wurde und stellt dann die Optionen: Aktualisieren, Reparieren, Löschen und Beenden bereit. Nach Durchführung der Installation steht eclipse in Ihrer Wunschkonfiguration zum Start bereit. Jetzt können noch weitere administrative Tasks durchgeführt werden. So können noch weitere Plugins installiert werden, Einstellungen in den Preferencen vorgenommen oder Projekte ausgescheckt und konfiguriert werden. Mit einem einfachen Klick lässt sich danach die in der Cloud liegende Konfiguration um die durchgeführten Tätigkeiten aktualisieren. Beim nächsten Download steht die Eclipse dann in der neuen Konfiguration bereit. Bestehende Installationen können über die Update Suche ebenfalls auf den aktuellen Konfigurationsstand gebracht werden. 

Teilen im Web

Die so erstellte Konfiguration kann dann per URL im Web verbreitet oder gezielt anderen Team Mitgliedern zur Verfügung gestellt werden. Dabei ist zu beachten, dass jeder den den URL besitzt ebenfalls das Recht besitzt die Konfiguration selbst zu ändern. Generell kann ein Passwort gesetzt werden. Dadurch wird die Installation nur für Personen die das Passwort kennen möglich. Allerdings hat jeder der eine Installation besitzt auch das Recht die Konfiguration in der Wolke zu ändern. Dies kann nach meinem Verständnis aktuell nur durchNutzung einer privaten Cloud geändert werden. 

Die eigene Wolke

Verständlicherweise werden Systemhäuser oder Behörden den oben beschriebenen Weg nicht einfach so nutzen können. Immerhin würden diese dann eine nicht gewollte Abhängigkeit zur Verfügbarkeit der Webseite erzeugen. Eine Nichtverfügbarkeit der Seite würde dann zu einem massiven Blocker im Kerngeschäft, ganz abgesehen von diversen Sicherheitsproblemen welche eine solche Online Lösung aufwirft. 

Für die Bedürfnisse des Goverments steht eine eigene Cloud Lösung zur Verfügung. Dazu ist ein Programm im Firmennetz zu installieren. Dieses stellt einen Server bereit welcher die einzelnen Eclipse Konfigurationen im Firmennetz bereitstellt. Um diesen Server zu Betreiben ist keine Online Verbindung zum Hersteller notwendig. Alles was auf dem Server passiert steht vollständig unter der Kontrolle des eigenen Firmennetzes. 

Während die Online Lösung kostenfrei ist, fallen für die eigene Wolke Lizenzgebühren an. Diese gestalten sich aus meiner Sicht jedoch recht moderat so das diese auch für Mittelstandsunternehmen interessant sein dürften – Preisliste.

Ausprobieren

Wer jetzt Lust bekommen hat seine eigene Konfiguration zu erstellen und einen Startpunkt sucht, kann sich gern versuchsweise meine Beispielkonfiguration installieren.


=-=-=-=-=
Powered by Blogilo

Code Generation using Annotation Processors in the Java language – part 2: Annotation Processors


Zu diesem Thema habe ich auch ein kleines Beispiel Projekt aufgesetzt. Dies findet sich unter: https://github.com/FunThomas424242/annotation-processor-plugin.example

dr. macphail's trance

This post is the second part in my series about Code Generation using Annotation Processors in the Java language. In part 1 (read it here) we introduced what Annotations are in the Java language and some of their common uses.

Now in part 2 we are going to introduce Annotation Processors, how to build them and how to run them.

Code Generation using Annotation Processors in the Java language – part 2: Annotation Processors

Annotations are great, sure. You can set any kind of metadata or configuration with them, with a well defined syntax and different types to use.

From what we have seen until now, annotations have advantages compared with Javadocs but not enough to justify their inclusion into the language. Therefore, is it possible to interact with annotations and get the most from them? Sure it is:

  • At runtime, annotations with runtime retention policy are accessible through…

Ursprünglichen Post anzeigen noch 1.656 Wörter

Jahresrückblick 2013


Die WordPress.com-Statistik-Elfen fertigten einen Jahresbericht dieses Blogs für das Jahr 2013 an.

Hier ist ein Auszug:

Ein New York City U-Bahnzug fasst 1.200 Menschen. Dieses Blog wurde in 2013 etwa 4.700 mal besucht. Um die gleiche Anzahl von Personen mit einem New York City U-Bahnzug zu befördern wären etwa 4 Fahrten nötig.

Klicke hier um den vollständigen Bericht zu sehen.

BitCoin in der Praxis


Heute einfach nur der Hinweis auf einen kleinen Artikel über meine ersten Gehversuche mit BitCoins auf meinem Partner Blog. Letzterer befasst sich weniger mit technischen als eher mit sozial politischen Themen.

Doch sowie ich die technischen Konzepte von BitCoin besser verstanden habe, werde ich auch über diese hier auf meinem Entwickler Blog berichten.

Huluvu's Blog (de)

Flattr this

Motivation

Schon seit einiger Zeit habe ich BitCoins erworben und suche nach Möglichkeiten diese wieder auszugeben. Ich halte diese Währung nicht für ein Allheilmittel – im Gegenteil – aber ich finde es gut, dass an dem veralteten Währungssystem eine Neuerung vorgenommen wurde, die Dezentralisierung. Viel Leid und Elend auf dieser Welt entsteht durch eine zentrale Kontrolle von Weltwährungen. Obgleich sich jeder demokratische Staat über den Zentralismus in sozialistischen Staaten aufregt so stört es doch keinen, dass das Geld stets zentral vom Staat kontrolliert wird. Sogar weltweit gibt es zentrale Banken von denen in der Regel nicht einmal bekannt ist wer eigentlich die wirklichen Eigentümer (Aktionäre) im Hintergrund sind – siehe Federal Reserve System .

Daher suche ich also ein Geldsystem bei dem ich Geld erwerben, lagern und ausgeben kann ohne das Risiko eingehen zu müssen das man mir morgen erklärt das mein Geld wegen einer Finanzkrise nicht mehr verfügbar…

Ursprünglichen Post anzeigen noch 845 Wörter

GUIs deklarativ – never ending story


Flattr this

Motivation

Der Traum eine Programmoberfläche möglichst einfach, mit wenig Text und doch mit exakter Anordnung der GUI Elemente beschreiben zu können ist schon sehr alt. Immer wieder tauchten dazu Konzepte auf – doch diese konnten sich am Markt nie wirklich fortsetzen, nicht zu Letzt auch mangels der Unterstützung großer Firmen. Das letzte mir bekannte Exemplar ist JavaFX Script welches nun auch schon fast als ausgestorben bezeichnet werden kann.

Für alle die sich dennoch eine deklarative Sprache für die GUI Entwicklung wünschen zeigt dieser Artikel Projekte und mögliche Fortsetzungen auf.

Thinlet

Das erste mir bekannte Projekt welches seine GUI deklarativ beschrieb war Thinlet. Ich nenne es mal Thinlet one denn der Autor hat das Projekt inzwischen eingestampft und hat unter gleichem Namen ein völlig neues Framework herausgebracht. Letzteres konnte mich aber nicht weiter begeistern.

Das ursprüngliche Projekt war im Prinzip ein Jar mit einer Klasse. In dieser Klasse war die gesamte Logik. In der eigenen Anwendung waren die Oberflächen dann per xml zu beschreiben. Das Framework unterstützte sogar bereits das Binding von GUI Elementen an Java Klassen. Allerdings war das Eventhandling irgenwie nicht optimal gelöst – ich hatte damit jedenfalls Probleme – ich glaube mit der Richtung aus Java Klasse zum GUI Element oder von GUI Element zu GUI Element. Das kann ich leider nicht mehr genau sagen.

Dokumente zum ursprünglichen Projekt lassen sich kaum noch finden – man muss halt ein bisschen googeln denn die URLs wechseln stetig – aber offensichtlich gibt es noch genug Leute welche die Dokumentation retten. Hier ein Beispiel: http://wolfpaulus.com/thinlet/doc/widget/overview.html

Canoo

Diese Firma muss ich hier einfach aufzählen, weil sie mit ULC (Ultra Light Client) das fertiggestellt hat von dem alle Welt träumt. Allerdings proprietär und teuer😦 Das war der Grund weshalb ihr Framework für den Open Source Bereich nicht in Frage kommt. Aber die Technologie ist genial – Half Object Plus Protocol (HOPP) Entwurfmuster. Das wäre das Ziel nur eben frei und Oracle hat es mit JavaFX eindeutig vermasselt. Hier ein Beispiel wie leicht alles gehen könnte.

GUI4J

Das GUI4J Projekt funktionierte ähnlich wie Thinlet wurde aber von mehr Leuten entwickelt und länger durchgehalten.

Zu guter Letzt gibt es natürlich tausende Projekte die in Richtung XML deklarierte Oberfläche gehen aber keine welches wirklich später dafür relevant wurde. Hier eine von vielen Listen die im Internet findbar sind: http://www.java2s.com/Product/Java/XML/XML-UI.htm

JavaFX

JavaFX in der ersten Version hatte mit JavaFX Script wirklich Potential den Sprung in Richtung Canoo zu schaffen. Doch Oracle hat es getötet aus welchen Gründen auch immer: http://www.heise.de/developer/meldung/Das-endgueltige-Aus-fuer-JavaFX-Script-1444903.html

JavaFX selbst hat Oracle dennoch zur Schlüsseltechnologie erhoben. Bislang steht diese allerdings irgendwo außerhalb des aktiv von Oracle gepushten ADF. ADF selbst setzt weiterhin auf Swing und eine dirty Click and Drop Oberfläche. Letztere hinterlässt in der Praxis nach einiger Zeit auch gern mal korrupte Arbeitsstände. Dann darf der Entwickler wieder zurück auf LOS ohne einen Erfolg einzustreichen. Wie soll man also die Signale aus dem Hause Oracle deuten? Möglicherweise ist sich Oracle intern selbst uneins und setzt später einfach auf die Technologie die sich durchsetzt. Einige Entwickler greifen daher selbst zur IDE und bauen schon wieder ihre eigenen RIA Frameworks:

Captain Casa Framework

Da ich dieses RIA Dilemma schon einige Zeit betrachte setzte ich immer wieder meine Hoffnung auf das Captain Casa Framework. Captain Casa ist eine Firma welche für den lokalen Mittelstand diverse Softwarelösungen erarbeitet hat. Diese basieren alle auf dem Captain Casa Framework. Diese wiederum setzte bis vor einigen Jahren ausschließlich auf Swing, sprang aber nach Erscheinen von JavaFX sofort auf diesen Zug auf. Aktuell steht wieder ein Community Treffen an und ich hoffe das es mir dieses Jahr endlich wieder möglich ist teilzunehmen und meinem kurzfristigen Urlaubsantrag zugestimmt wird. Falls ja werde ich natürlich wieder über das Treffen berichten.

Anbei ähnliche Artikel zum RIA Dilemma

Folgen

Erhalte jeden neuen Beitrag in deinen Posteingang.

Schließe dich 197 Followern an