Dienstag, 30. Dezember 2014

Javasourcen mit regulärem Ausdruck zur Diamond-Notation konvertieren

Vielleicht etwas brachial, aber mit der Eclipse File-Suche und einem ungefähr passenden, regulären Ausdruck lässt sich ein Projekt leicht auf Diamond-Notation umstellen. Also von
List<String> l = new ArrayList<String>()
zu
List<String> l = new ArrayList<>()
Das geht mit Eclipse einfach über das Menü Search -> File und dem Regulärem Ausdruck
(=\s*new\s.*<)(\w+)(>\(). Das Häkchen der Checkbox Regular Expression muss aktiviert sein. Anschließend den Dialog mit Replace bestätigen und Replace with auf $1$3 setzen. Der Mittelteil zwischen den Klammern wird dann ausgelassen. Einzig anonyme Klassen muss man nochmal von Hand anfassen, weil die dann doch gern den Typen in der spitzen Klammer sehen wollen.

Mittwoch, 17. Dezember 2014

Werbefreies Android mit der Fritzbox

Zumindest im heimischen Wlan keine Werbung mehr auf dem Android-Gerät anzeigen zu lassen geht ganz einfach, wenn man eine Fritzbox oder einen anderen Router mit Blacklist-Funktion hat.

Schritt eins, einen Traffic-Mitschnitt von der Wlan-Schnittstelle anfertigen. Das geht bei der Fritzbox unter der URL fritz.box/html/capture.html Out-of-the-Box. Auf dem Smartphone eine oder mehrere Apps aufrufen, die Werbung enthalten und anschließend das Capture-File von der Fritzbox mit Wireshark einlesen. Es gibt dazu eine Kurzanleitung bei Chip.de.

Jetzt im Wireshark nach den DNS-Abrufen gucken bzw. am besten nach DNS filtern und man hat vermutlich mindestens einen Verdächtigen. In den meisten Fällen dürfte admob.com unter den Einträgen sein. Das ist das Werbenetzwerk von Google und die meisten Werbeeinblendungen in Android-Apps machen Gebrauch davon.

In der Fritzbox kann die Blacklist unter Internet -> Filter -> Listen gepflegt werden. Hier die unerwünschten Adressen einpflegen. Für die Fritz-Box muss man anschließend unter Internet -> Filter -> Zugangsprofile das Blacklisting für das Standard-Profil aktivieren.

Folgende Google-Einträge haben es auf die Schnelle als unerwünschte Spy- und Werbe-Adressen bei mir in die Blacklist geschafft. Da geht natürlich noch mehr, für die Deaktivierung vieler Werbeeinblendungen reicht das aber erstmal.

doubleclick.net
admob.com
googlesyndication.com
google-analytics.com
googleadservices.com
googletagservices.com

Samstag, 7. Juni 2014

Eclipse Luna, was gibt es neues für Java-Entwickler

Eclipse Luna 4.4 steht vor der Tür, das Release ist für den 25.6 geplant und der Release Cadidate sieht schon sehr gut aus. Auch wenn es einiges neues gibt, fühlt sich die IDE wie gewohnt an. Viele kleine Details wurden geändert, die im einzelnen kaum ins Auge fallen. Ein neuer Button hier, leicht veränderte Symbole dort, die übrigens vollständig auf png umgestellt wurden und nun weniger kantig wirken. Ins Auge hingegen sticht das veränderte Source-Highlighting, dass nun zum Beispiel auch lokalen Variablen eine Farbe verpasst und Konstanten in fettem Blau präsentiert. Dazu passt das, dem Trend folgende und lang erwartete Dark-Theme, das ich ausnehmend gut gelungen finde. Hierzu ergänzend ist das Eclipse Color Themes-Projekt eine gute Anlaufstelle, um die Oberfläche noch weiter zu individualisieren. Weiter wurden Leerräume entfernt, so dass die Oberfläche auch gleich Raumsparender daherkommt. Das Quick Access-Feld lässt sich nun ebenso wie der Perpective-Switcher oder gleich die gesamte Toolbar-Leiste ausblenden.

Die Änderungshistorie im Editor bleibt auch nach dem Schließen und wieder öffnen erhalten. Somit endet die Undo-Funktion nicht mehr mit dem Zustand mit dem die Datei geöffnet wurde, was ein zurückrollen zu vorherigen Bearbeitungssessions ermöglicht.

Eines der meist nachgefragten Features mit 205 Votes ist eine Split-View für Editoren. Dieses ist nun endlich umgesetzt. Im Hauptmenü unter Window → Editor gibt es zwei neue Menüpunkte Toggle Split Editor (Horizontal) und Toggle Split Editor (Vertical) mit denen sich der aktive Editor teilen lässt.

Neue Quick-Fixes zum Erzeugen von for-Loops erlauben das automatische erzugen von Schleifen-Konstruktionen. Das ging bisher nur eingeschränkt und wurde nun ausgebaut. (Siehe Bug 43018). Überhaupt hat sich in der Kategorie Code-Completion eine menge getan und so kommt Luna mit Intelligent Code Completion daher, dass mittels Statistik- und Community-Funktionalität zu erraten versucht, welche Aufrufe, bis hin zu Aufrufketten, vorzuschlagen sind.

Sehr schick ist der Marketplace Client (MPC) unter Help → Eclipse Marketplace mit dem sich Plugins, ganz ähnlich wie unter Firefox & Co., finden und installieren lassen.



Natürlich gilt nicht zuletzt die Java 8 Unterstützung als Grund schlichthin, um das neue Luna zu installieren. So lässt sich zum Beispiel eine anonyme Klasse per Quick-Assist in einen Lambda-Ausdruck umwandeln. Das neue Eclipse ist in vielen Details besser als das alte und es stellt sich das Gefühlt ein, dass man sich endlich vieler Kleinigkeiten angenommen hat, die ein abgerundeteres Bild zur Folge haben. Für mich seit langem das erste Mal, dass ein Eclipse-Update so frustfrei vonstatten geht und trotz Verwendung eines Vorabreleases keine groben Bugs das Nutzungsempfinden trüben. Einzig das Logo erscheint mir ein Griff ins Klo. Das Icon erweckt mit dem orange abgesetztem Halbkreis den Eindruck einer verschobenen Blau-Synchronisierung. Zumindest ist da für die nächste Version noch viel Luft nach oben.

Sonntag, 11. Mai 2014

Java auf dem Desktop 12

Dieses Mal geht es bei meiner Randgruppenserie "Java auf dem Desktop" mit LightZone in die zwölfte Runde. LightZone ist eine sehr schick und übersichtlich geratene Open-Source Darkroom-Software für Windows, Mac und Linux. Darauf aufmerksam geworden bin ich durch einen Spon-Artikel, der LightZone als Bildverarbeiter und Organisator vorstellt. Bereits nach wenig herumprobieren muss ich sagen, dass mir der Programmaufbau gut gefällt. Er ist mit der Verzeichnis-Seitenleiste intuitiv und erlaubt einen quasi Sofort-Einstieg. Hat man das Bildmaterial erst vor sich, sind die gängigen Bild-Veränderungs- und Verbesserungsfunktionen einsetzbar. Alles in seiner Bedienung sehr konservativ, was ich jedoch als angenehm empfinde. Mit den gängigen Bezahlprodukten, wie AfterShot oder gar Lightroom kann sich LightZone nicht messen, dafür ist es aber kostenlos und für all jene einen Blick wert, die eben kein bereits bezahltes Profi-Werkzeug ihr eigen nennen.

Im gleiche Zug möchte ich noch auf ein Jayatana aufmerksam machen, dass Menüs von Java-Anwendungen in Ubuntu-Unity einpasst, sprich das Menü Unity-Typisch in die Leiste auf dem oberen Bildschirmrand verschiebt. Eine Installationsanleitung gibt es bei debinux.