Als ich eines Tages versucht habe, mit Html5 eine Navigation zu erstellen, die auch bei langsamer Leitung noch einigermassen läuft, bin ich auf die Html5 History Api gestossen. Diese ist dazu gemacht, nichts zu machen (oder nicht viel). Das wichtigste dieser History Api ist folgende Funktion:
window.history.pushState(null, null, "./test2.htm");
Diese Zeile Code bewirkt auf den ersten Blick beinahe gar nichts: Sie ändert nur die Adresse in der Adresszeile der Browsers. Es wird aber nicht wirklich zu dieser Seite hin navigiert. Wenn man nun die Seite neuladet, so erhält man eine 404 Seite, es sei denn es gibt wirklich eine test2.htm Seite. Wer sich nun fragt, wo hier der Sinn ist, für den ist das folgende positive Beispiel einer Seite, die genau diese Funktion nutzt, geeignet: http://www.jungschi-kaenerkinden.ch/. Ich gebs zu: Ich habe die Webseite samt suboptimalem Design erstellt. Wie dem auch sei, wer mit einem anständigen Browser* durch die Seite navigiert, für den sieht alles wie auf einer ganz normalen Seite aus. Nur einfach geht das Ganze ziemlich schnell. Und wenn man dann den Quellcode ansieht, sieht man, dass der nach jeder Navigation immer noch genau gleich aussieht. Das Ganze funktioniert folgendermassen:
- Die Seite wird mit Inhalt aufgerufen. Bis hier macht JavaScript nichts an der Navigation.
- Beim Klicken auf eine Url wird, wenn der Browser kompatibel ist, mittels Html5 die Url angepasst.
- Mittels Ajax wird dann diese Seite, bzw. das was davon benötigt wird, nachgeladen.
Unter dem Strich hat man eine Navigation, die schnell ist, von Suchmaschinen komplett indexiert wird (im Gegensatz zu einfachem Ajax), eine schöne Url hat und auch die Abwärtskompatibilität ist gewahrt.
Wer mehr zum Thema wissen möchte, findet hier eine gute Ressource: Dive into Html5
Sollte sich wirklich jemand entgegen jedem guten Menschenverstand durch meinen Quellcode kämpfen wollen, so kann er das tun: http://www.jungschi-kaenerkinden.ch/Source.zip.
*anständige Browser sind nach dieser Definition Opera, Chrome, Firefox oder IE 10. Safari konnte ich nicht testen.
Und da ist er schon – der Release candidate 5.4 RC1 aus der PHP Softwareschmiede. Sie bietet unter anderem einige Verbesserungen in der ‘Shortisierung’, dh. in der Kurzsyntaxfähigkeit. Unter anderem bieten sich nun die folgenden Kurzformen an:
[Weiterlesen …]
Bereits im letzten Mai habe ich auf meiner privaten Website eine kleine “Tutorial-Klasse” veröffentlicht, welche zeigt wie einfach es ist, ein simples GUI mit Swing in Java zu realisieren. Da ich diese selbstverständlich auch euch Leserinnen und Lesern dieses Blogs nicht vorenthalten möchte, habe ich die Klasse noch verbessert, ausführlicher kommentiert (ich hoffe ihr versteht Englisch) und optisch so angepasst, dass auch hier auf dem Blog alles schön dargestellt wird (gewisse “Formatierungs-Tricks” entsprechen sicherlich nicht der Konvention, sollten aber trotzdem lesbar sein).
[Weiterlesen …]
Früher, in guten alten Zeiten konnte man einfach ein Programm für Windows schreiben und wusste, 99% aller Benutzer können das Programm ausführen. Ich als C# Programmierer wünschte mir manchmal es wäre immer noch so.
[Weiterlesen …]
Da es extrem im Trend liegt, über Dinge zu schreiben, die niemanden interessieren, habe ich mich entschieden einen Artikel über Windows Phone zu schreiben. In der Regel landen uninteressante Artikel ja auf Twitter, aber da habe ich zu wenig Platz. Wie dem auch sei: Wer braucht schon ein Windows Phone wenn man das perfekte Android hat? Nun erstens Microsoft und zweitens Nokia, und drittens ist Windows Phone gar nicht mal so schlecht. Die Bedienung eines Windows Phone ist absolut genial einfach und ist dem Modell von Android und iOS überlegen. Ja klar, man hat für alles eine App, aber mehr als 500 hat, die überhaupt nicht zusammenarbeiten, wirds langsam unübersichtlich. Wer Windows Phone nicht kennt, kann sich folgende Demo ansehen.
Ich persönlich hoffe auf jeden Fall, dass Windows Phone einen grösseren Marktanteil bekommt, schon allein der Konkurrenz wegen. Und auch, weil ich den Grundaufbau von Windows Phone sehr gut finde. Aber eines ist auch klar: Windows Phone muss in vielen Bereichen noch zulegen. Und ich komme momentan auch mit Android gut aus
Und nun mal was für iPhone-only:
©®™ Theoretisch sollten das nur iPhone-Besucher oder WhatsApp-Besitzer sehen können. Um diese selbst auch zu gebrauchen, empfielt sich der Emoji Enabler. Much fun
Apple verklagt Samsung. Microsoft verklagt Motorola. Oracle verklagt Google. Bei all diesem Meldungen haben viele das Gefühl, es ginge bei all diesen Patentklagen tatsächlich darum, geistiges Eigentum zu schützen. Dem ist mitnichten so, das Ganze verhält sich nämlich weitaus komplexer. Wie in anderen Branchen gibt es auch in der Informatik schwarze Schafe, die irgendwo untergebracht werden müssen. Da es in den meisten Informatikfirmen kein Investmentbanking gibt, hat man Rechtsabteilungen geschaffen. Damit diese wiederum etwas zu tun haben, hat man ein Spiel entwickelt, welches durchaus Spass machen soll und extrem im Trend liegt: Patentklägerlis.
Für alle die mitspielen wollen, hier die Anleitung:
[Weiterlesen …]
So, Zeit für ein wenig URL-Shortener-Flooding.
Neulich wollte ich testen, wie viele API-Calls pro Minute bei einem grossen Webdienst eigentlich möglich sind. Also habe ich mir kurzerhand einen URL-Shortener mit API gesucht, welcher eine unbeschränkte Anzahl an Calls zulässt. Eigentlich vermutete ich, dass ich nicht fündig werde, denn viele Dienste schränken ihre APIs durch Keys und einer begrenzten Anzahl an Aufrufen ein. Nicht so der bekannte Shortener tinyurl.com. Durch seine API kann ich nun mit meinem Java-Tool etwas mehr als 3’000 verschiedene, generierte Adressen pro Minute kürzen. Das wären dann also 50 in der Sekunde, und 180’000 in der Stunde.
Fazit:
Wenn ihr mal einen eigenen Dienst mit API implementieren solltet – arbeitet unbedingt mit API-Keys, sonst kann euch die DB so was von schnell zugespamt werden.

Für die meisten von euch wird der nachfolgende Content bereits ein alter Hut sein …
[Weiterlesen …]