Statische und metrische Codeanalyse (java, eclipse)

Ein äußerst umfangreiches Tool habe ich heute vorzustellen: Eclipse Metrics Plugin. Zwar taucht es in einigen Google Ergebnissen auf, aber teilweise auf eine alte Eclipse-3.1-Version verlinkt. Das ist nicht nur dumm, es funktioniert auch nicht mehr mit 3.4.

Der Updatevorgang via UpdateSite funktionierte leider nicht; aber das manuelle Herunterladen der entsprechenden Plugindatei dagegen schon. Es ist eine Jar-Datei, welche einfach in den plugins-Ordner geschubst wird.

Anschließend (nach einem Neustart Eclipse‘) muss in den Projekteinstellungen „Metrics“ zunächst aktiviert werden; danach lässt sich via Export->Metrics eine entsprechende umfangreihe Statistik generieren. Aber eine beherzte Warnung: Ohne Vorkenntnisse kommt man nur bedingt weit.

Was etwa eine zyklomatische Zahl oder was etwa „Feature Envy“ ist, sollte man entweder wissen oder sich das Wissen zeitnah aneignen. Eine spontane Suche ergab diese kleine Arbeit, sollte für den Anfang reichen.

Stand der Diplomarbeit: Knapp 17 KLOC. Refactoring noch nicht abgeschlossen.

iPhone-Webapps bauen (unvollständig entschlüsselt)

Ja, es gibt sie noch. Mittlerweile gibt es natürlich zuhauf iPhone-Apps (also richtige Programme), aber vereinzelt gibt es auch noch die kleinen Webseiten, die entweder nur eine oder eine spezielle iPhone-Version anbieten. So auch Glyphboard. Damit lassen sich sehr spezielle Sonderzeichen kopieren – iPhone OS 3.0 kann ja Copy ’n‘ Paste – und überall einfügen. Da das ganze mit HTML5 gecached wird, ist es sogar offline verfügbar.

Technisch gesehen ist es nun deswegen interessant, weil man die Webapp nur auf dem Homescreen ablegen muss. Danach öffnet sich das Programm plötzlich anders; ohne Url-Zeile, mit eigener Überschrift und Informationsbutton. Huch? Und das soll der Safari sein?

Tja, dokumentiert sind sie.. wusste ich aber noch nicht. Die Seite hat eine Reihe von interessanten Meta-Tags sowie Javascript-Zeilen.

<meta name=“viewport“ content=“width=320; initial-scale=1.0; maximum-scale=1; user-scalable=0;“ />
<meta name=“apple-mobile-web-app-capable“ content=“yes“ />
<meta name=“apple-mobile-web-app-status-bar-style“ content=“black“ />
<link rel=“apple-touch-icon“ href=“app-icon.png“ />
<link rel=“apple-touch-startup-image“ href=“default.png“ />

<meta name=“viewport“ content=“width=320; initial-scale=1.0; maximum-scale=1; user-scalable=0;“ />
Das ist nicht neu; damit stellt man die Größe, Skalierung und mögliche Zoomrate (durch den User) ein. Dabei ist 320 die gängige Größe, ist dies doch die native Größe.

<meta name=“apple-mobile-web-app-capable“ content=“yes“ />
Die Anwendung wird im Fullscreen (eigentlich ja witzreich, dass beim iPhone so zu nennen) gestartet, Konsequenz ist: Keine Titelleiste, keine Url-Leiste, keine Suche. Diesen auch Standalone genannten Modus wird im DOM unter window.navigator.standalone hinterlegt.

<meta name=“apple-mobile-web-app-status-bar-style“ content=“black“ />
Verändert die Hintergrundfarbe des Statusbalken (der Balken ganz oben); es hat den einzigen Zweck, dass der Balken mit der restlichen Anwendung farblich harmonisch sein soll, deshalb muss dafür der Standalone-Modus aktiv sein.

<link rel=“apple-touch-icon“ href=“app-icon.png“ />
Damit definiert man das eigentliche App-Logo. Nun ja, das war ja auch irgendwie klar? Es wird nahegelegt, das Icon apple-touch-icon.png zu nennen, denn dann sucht Safari automatisch danach. Ein Suffix -precomposed im Namen verhindert eventuelle Effekte.

<link rel=“apple-touch-startup-image“ href=“default.png“ />
Definiert, was während des Ladens angezeigt werden soll. Falls nicht angegeben, wird der letzte Screenshot der Seite verwendet.

Auch interessant:
-webkit-transform: translateY(460px);
-webkit-transition: -webkit-transform .3s ease-in-out;

Damit wird eine sehr effektvolle Slide-Animation ausgeführt. Wow. Kein Stückchen Javascript.

Dagegen sieht der obligatorische Browsercheck

Ist dies ein iPhone?
if (navigator.appVersion.indexOf(‚iPhone OS ‚) < 0)

Ist dies ein iPhone OS 3.0?
if (parseInt(navigator.appVersion.substring(navigator.appVersion.indexOf(‚iPhone OS ‚) + 10, navigator.appVersion.indexOf(‚iPhone OS ‚) + 11)) < 3)

Ist dies eine Standalone-Anwendung (s.o.)?
if (!window.navigator.standalone)

schon irgendwie langweilig aus, oder?

Was ist ein Browser?

Unglaubliche, strunzdumme Leute.. Fazit: Googles Umfrage auf dem TimeSquare brachte das Ergebnis, das nur 8% der Befragten überhaupt wussten, was ein Browser ist. Geschweige denn, was für ein Browser sie nutzen – oder was denn „Google Chrome“ sei.

Ich war ja nun schon einiges gewohnt, wie etwa das legendäre Ergebnis der Kinderreporter. Aber das schlägt dem Fass doch den Boden aus. Das kann doch nicht wahr sein.

Quelle: thenextweb.com

Umstrittene KiPo-Gesetzgebung mehrheitlich beschlossen

Ich habe wenig Lust, das noch weiter zu kommentieren.. falls also jemand noch weitere Dinge lesen möchte, eine kommentarlose kommentierte Sammlung von interessanten Statements, Daten und Fakten:

  • Kurzmeldung von netzpolitik, beinhaltet u.a.
    • KstA: CDU’ler sagt keine 2 Stunden später, dass es „über die Sperrung kinderpornographischer Seiten im Internet“ hinausgeht. (Der KstA hat eh in letzter Zeit einen Knacks in „Das Netz ist nicht grenzenlos“.)
    • Sowohl Antwort des Herrn Dörmann an den AK Zensur und die unmittelbare Gegenantwort – das ist insofern prägnant, als das er Brief wenige Minuten nach Abstimmung einging. Wohlgemerkt ist er inhaltlich bereits abstimmungsfreundlich verfasst. Ein Schelm, wer böses denkt…
  • Rote Welle im entsprechenden Kommentarbereich des Newsbeitrags über die Abstimmung
  • Die Sitzung des Deutschen Bundestages kann man in Phoenix live verfolgen – leider scheint es aber keine Archivaufnahmen (offiziell) zu geben, zudem haben die leider auch den relevanten Teil gecuttet (aber nicht wegen dem Thema, sondern weil einfach die Zeit vorbei war.. ist halt Pech). Irgendwer hat im Netz doch sicher den Stream gesichert? Mitschnitte? Ja, hier!
  • Nichtsdestotrotz, die Statements/Reden von Martina Krogmann und der anderen waren einzigartig. Wer auch nur ein Fünkchen Wissen hat, der fragt sich, wie die es sich überhaupt trauen, so viel Unsinn in der Öffentlichkeit zu verbreiten. Das ist nicht mehr nur noch peinlich..
  • Herr Tauss hat sich zu sehr gegen den Strom gestellt, und wurde kalt gestellt. Da dies ja nun die letzte Sitzungswoche ist, war dies auch seine letzte (relevante) Sitzung, die er beiwohnen konnte – aus bekannten Gründen wird er nicht mehr in den Bundestag zurückkehren. Daher sein Statement, zugleich auch Abschlussworte (wo? Link bekannt?). Vor 2 Tagen bereits ein Brief an die Fraktion. Und die BILD-Reaktion kam prompt.
  • Bundesdatenschutzbeauftragte (mehr eine Behörde als eine Person) will, kann, darf nicht prüfen: Und soll’s dennoch machen. Sehr ignorant, er hat das aus der Presse erfahren.. jaja, so eilig ging das alles.
  • Löschen statt Sperren
    • Angeblicher Zeitverzug durch das BKA ist albern, weil: Lt. Gutachten könnte das BKA durchaus schneller handeln. Und Zeit ist ein Grund für dieses (Spezial)Gesetz; weil: AK Zensur macht vor, wie schnell Löschen geht
    • Angebliche Zahlen, die keiner bestätigen kann: Werden widerverlegt, *zum Beispiel*: hier
  • Folgeprobleme
    • Deutschland und die Störerhaftung: Ist den Providern bald technisch möglich zu sperren (statt STOPP! könnte man es ja HALT! nennen), dann werden Abmahnungen und Co. demnächst ganz verlaufen können. Bisher konnte sich der Provider in diesen Dingen immer mit der technischen Unmachbarkeit rausreden (die tatsächlich auch gegeben ist).
    • Auch ein Spezialgesetz kann missbraucht werden, a la „Das haben wir da bereits erfolgreich durchgeführt.“ und „Dies ist kein rechtsfreier Raum.“ und „das ist strafbar“.. got it?
    • Ach ja, die SPD scheint ihren „Online-Beirat“ jetzt wohl verloren zu haben, oder wie sieht das nun aus? Alleine kompetent genug wurde die Meinung des Beirats komplett ignoriert.

Puh, jetzt ist doch mehr daraus geworden, als es eigentlich werden sollte.

Bleibt die Zeit für etwas Humor, denn über irgendwas muss der Mensch noch lachen können 🙁

Lest weiter gute Internetquellen.. und wenn Bild, dann allerhöchstens Bildblog. Die Beziehungen von BILD und Politik sind bekannt? Stimmungsmache, Stimmungsmache.

Microsoft hat einen an der Klatsche.

Oder aber die Marketing-Abteilung lehnt sich derzeit etwas zu sehr aus dem Fenster.

Bereits gestern machte ein Link die Runde, in dem Microsoft verspricht, 10.000$ irgendwo im Netz versteckt zu haben. Die Hinweise kann man selbstverständlich nur mit dem IE8 finden und lösen.

Die Seite im Safari..
Die Seite im Safari..

Nutzt man denn einen anderen Browser, so wird es erstmal dreist. Entweder man nutzt einen „langweiligen Safari“ oder einen „alten Firefox“. Nun ja, die Definition von langweilig und alt scheint man im Hause Microsoft etwas anders zu definieren als im üblichen Sprachgebrauch. Interessant ist auch, dass der Link dauernd offline geht, anstattdessen wird man zur Bing-Suche geleitet. Und das auch zeitgleich: Im gestrigen Test war der Link unter Windows7 (Parallels) immer tot, aber unter Mac OS X (Safari und Firefox) stets erreichbar. Ahja..

Der Knaller ist aber die Seite, die angeblich die Knallerfakten zum Internet Explorer 8 präsentiert. Wer einigermaßen auf dem Stand der Technik ist, wird bei dem ein oder anderen Punkt doch ins Grübeln kommen.. ich habe mir daher doch mal die Mühe gemacht, und die Aufstellung korrigiert. Nahezu jeder Punkt musste korrigiert werden, MS lügt ungeniert und hat – wohl sicher aus Mitleid Versehen – sogar einen Browser vergessen. Und Opera? Nun ja, den Nischenbrowser kann man tatsächlich weglassen. Nische=Anteil wohlgemerkt.

Korrigierte Fassung von den MS IE8-Facts

Java Update für Mac OS X – endlich!

Nachdem einige zu viele Wochen eine schwere Lücke in Java für Mac OS X offen war, gibt es nun endlich das Updaterelease: Java Update 4 (Updates für Java 4, 5 und 6). Im Falle von Java 6 ist dies nun Java 1.6_13. Es ist bereits seit geraumer Zeit in einer Betaversion im Dev-Bereich verfügbar gewesen, jetzt ist es final.

Nun denn, wird bei Heise bestimmt auch noch gemeldet; wenn die morgen aufwachen 😉