Category Archives: Allgemeines

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 2.958 weitere Wörter

Advertisements

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.


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 527 weitere Wörter

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 1.656 weitere 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 845 weitere Wörter

Enhanced RCP: How views can communicate – The e4 way


Gerade habe ich angefangen mich in Eclipse e4 einzuarbeiten. Was soll ich schreiben wenn es andere schon viel besser beschrieben haben.
Zunächst eine kleine Beispielanwendung erstellen nach dem Tutorial von Lars Vogel: http://www.vogella.com/articles/EclipseRCP/article.html#tutorial_maps
Und dann die Communikation zwischen den einzelnen Parts implementieren nach dem Beitrag vom Tomsondev Blog.

Wünsche allen viel Spaß beim Ausprobieren

Tomsondev Blog

Some weeks ago I published how views can communicate using the EventAdmin-Service. To get things working in an 3.x application one has to write some glue code but more importantly one has to know about all those nifty things about event publishing, getting access to OSGi-Services, … .

One of the main topics of the Eclipse 4 Application Platform was to make easy things easy by removing the need to know about all the concepts by hiding them using DI. The service responsible to deliver events in application built on top the Eclipse 4 Application Platform is the EventBroker-Service:

This is all we need to know (assuming we have already understood how DI-works) to implement our sender and receiver views:

These are some fewer lines of code which is good but IMHO the more important fact is that you are independent from OSGi running now so the code you…

Ursprünglichen Post anzeigen 251 weitere Wörter

Jahresrückblick 2012


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

Aus der Statistik muss ich leider schlussfolgern, dass die Qualität der Artikel abgenommen hat. Die Zugriffe sind zwar relativ konstant geblieben allerdings interessierten sich die Besucher in aller Regel für ältere Postings. Demnach kommen die Reblogs und embedded Slides beim Leser nicht so angenehm rüber wie die mühevoll selbst geschriebenen Artikel.

Das ist natürlich schön, weil ja die Reblogs nur Verweise auf Postings anderer Blogger darstellen und mir nur als „Bookmark“ auf interessante Themen oder Lösungen dienen. Allerdings hatte ich gehofft, dass nicht nur ich diese Artikel interessant finde.

Bei den Slides gebe ich zu, dass ich mir noch nicht wirklich anständig Zeit dafür genommen habe um diese umzusetzen. Allerdings sollte die Qualität der Slides im Jahr 2013 deutlich besser werden da ich nun mit EclipseSlide-View ein enorm effizientes Werkzeug in den Händen halte. Auch hatte ich im Jahr 2012 sehr viele anregende Gespräche mit interessanten Gesprächspartnern, so dass ich bei einigen Themen deutlich neue Impulse und teilweise auch ganz andere Ansichten entwickeln konnte.

Ein für mich sehr wichtiger Meilenstein war das Verständnis weshalb Martin Fowler bereits 2004 Dependency Injection als eine Realisierungsform des Konzeptes Inversion of Control bezeichnet hat. Wer den Slide von mir kennt weiß was ich damit meine. Allerdings hat die Präsentation damit genau auch ihren Zweck erfüllt. Im großen und ganzen war klar worum es ging nur das Wording passte einfach nicht. Für einen nicht englisch sprechenden Entwickler ist es tatsächlich schwer einige Dinge herauszubekommen, da die meisten Zeitgenossen zum einen recht gut englisch verstehen und zum anderen keine brauchbaren Beispiele zur Erklärung liefern. Doch wie gesagt ich hatte dieses Jahr das Glück jemanden zu Treffen der mir ein brauchbares Beispiel lieferte (möglich wurde das nur da ich mit meiner Präsentation schnell zeigen konnte wo mein Verständnisproblem liegt).

Damit ist auch das Ziel für 2013 klar. Vordergründig sollen die bestehenden Artikel überarbeitet werden und nur wenige mit neuen Themen hinzukommen. Allerdings sehe ich jetzt schon, dass dies ein wenig schwierig werden wird weil meine Neugierde mich doch immer wieder hin zu neuen Themen drängt. Auf  jeden Fall freue ich mich jetzt schon auf die Zusammenfassung von 2013 🙂 Doch hier zunächst der aktuelle Jahresrückblick den wordpress.com dankenswerterweise über meinen Blog angefertigt hat.

Hier ist ein Auszug:

600 Personen haben 2012 den Gipfel des Mount Everest erreicht. Dieser Blog hat 2012 über 4.900 Aufrufe bekommen. Hätte jede Person, die den Gipfel des Mount Everest erreicht hat, diesen Blog aufgerufen, würde es 8 Jahre dauern, um so viele Aufrufe zu erhalten.

Klicke hier um den vollständigen Bericht zu sehen.


Ok, einen Telekom Mast wird man natürlich nicht ersetzen – schon von der Leistung her wird das wohl schwer möglich sein. Aber wenn man diese Idee geschickt zum Aufbau von Mesh Netzen anwendet braucht es möglicherweise auch gar nicht mehr diese Leistung, da es dann viele Repeater mit kleiner Leistung gibt. Also irgendwie schon eine Überlegung wert. Ein anderes Beispiel, dass es funktionieren kann ist der Bau eines Freedom Towers beschrieben auf: http://commons.thefnf.org/index.php/FreedomTower/ConstructionDocs


Ein sehr interessantes Eclipse Plugin welches ich mir bereits mittels BuildBoost compiliert und hier zum Download abgelegt habe: https://github.com/FunThomas424242/EclipseSlideshow-Build/downloads

Eclipse Hints, Tips, and Random Musings

I briefly mentioned some presentation software I’ve been working on on-and-off for a while a few postings back. Eclipse Slideshow has gotten to the point where others are expressing interest, so I thought it was time to make it available. I’ve been holding back only because there are already two other examples waiting in the queue for inclusion in the Examples project, and I didn’t want to make things more difficult. However, it seems that those two other candidates for inclusion have stalled somewhat, so I’ve decided to plow ahead (hint, hint: you know who you are).

I’ve attached what I have so far to Bug 261590 and have posted a little video that shows it in action.

To make it work, you’ll need the org.eclipse.mylyn.wikitext.core and org.eclipse.mylyn.wikitext.mediawiki.core from the Mylyn sandbox (have I spoken recently of the love I have for Mylyn?) and the latest drop of draw2d from

Ursprünglichen Post anzeigen 447 weitere Wörter