Tag archive: Release

Foto von diversen farbigen Lutschern

Lollipop. Erfahrungen mit Android 5.0

Vor einer Woche, am 12.11.2014, wurde die neue Version des mobilen Betriebssystem Android von Google veröffentlicht. Version 5.0 alias Lollipop hat bereits einen Tag später den Weg auf mein Nexus 5 gefunden. Seither konnte ich bereits einige Erfahrungen damit sammeln.

Continue reading

Cover des neuen Albums "Ewig" der deutschen Band Letzte Instanz

Letzte Instanz: „Ewig“

„Jeder Schuldige hat eine Zukunft. Jeder Heilige hat eine Vergangenheit. Und das wird ewig so sein.“ Mit dieser Anlehnung an ein Zitat von Oscar Wilde beginnt die Reise im neuen Album „Ewig“ der deutschen Band Letzte Instanz und stimmt auf die darauffolgende Stunde ein. Die Trilogie aus den drei Alben „Schuldig“, „Heilig“ und „Ewig“ kommt mit dieser Scheibe zu einem Ende und verabschiedet sich mit teils sehr starken, teilweise mit etwas einfallslosen Songs.

Continue reading

Screenshot einer Canon-Kamera nachdem ein Update eingespielt wurde.

Software-Updates und dergleichen

Wir leben in einer vernetzten Welt und das inzwischen nicht mehr nur am Rechner. Nahezu alle unsere Gerätschaften, die wir im täglichen Leben benutzen sind irgendwie mit dem Internet verbunden. Sei es ganz klassisch der Rechner daheim, das Handy, die Spielkonsole, der Fernseher, der MP3-Player, ja sogar der Kühlschrank kann manchmal bereits online gehen.

Continue reading

Foto der Beilage des neuen Rammstein-Songs Pussy, welches die Bandmitglieder nackt und in, teilweise schwangeren, Frauenkörpern zeigt.

Rammstein: „Liebe ist für alle da“

Vier lange Jahre mussten wir warten seit dem letzten Album von Rammstein. Nun ist es endlich auf dem Markt und trägt den brav klingenden Titel Liebe ist für alle da.

Doch so brav wie es scheint ist das Album nicht. Den Anfang hat die Singleauskopplung Pussy gemacht und gleich mit einem Hardcore-Porno als Video für Aufsehen gesorgt. Das obige Bild ist übrigens von dieser Single. Doch ich will hier nicht nur einen Song betexten, sondern das komplette Album beleuchten.

Continue reading

Das Wort Vote, welches auf eine Straße gemalt wurde und dessen erster Buchstabe aus Füßen gebildet wird.

WordPress Plugin: dB Twtpoll

Just to say it before anyone complains. This is my first public released plugin for WordPress and I´m not used to write english posts as you can tell if you look around a bit.

What´s this all about?

I like to create polls with Twtpoll, a neat little service to create votings with your account from Twitter.

These polls can be embedded in a website by using two lines of javascript code. That´s not a difficult thing to do, but it´s somehow inflexible. After embedding a poll you have javascript code directly in your post. That´s a bad thing because of three simple reasons:

  1. It´s not to easy to read. Especially for people that don´t speak HTML.
  2. If the code for embedding a poll gets changed in future you have to look through all your posts with polls and update it.
  3. Your feed subscribers could by chance not be able to view the poll, because script tags are filtered by their feedreader. If this is the case and you are using this plugin a fallback will be shown with a link to the original post.

So, where to get the plugin?

At this very moment it isn´t listed in the Plugin Directory at WordPress. So you can only download it from here.

DOWNLOAD

How do I install the plugin now?

That´s as easy as always with WordPress. Unpack the archive, upload it to your wp-content directory and activate it at the plugins page.

I installed it. How do I embed polls?

That´s really easy. Just add the shortcode [ twtpoll] with the attribute id anywhere in your post (without spaces). After this the poll will be shown at this exact position.

For now it is not possible to read and copy the ID of your poll from anywhere on Twtpoll. Sounds confusing, but you can get the ID if you take a look at the URL in your browsers address bar. The last part of it is the ID you need to include your poll. Just copy it and paste it within the shortcode, e.g. [ twtpoll id="d6iby3"] (without spaces).

Something else?

Nope. Not really. I just hope you have fun with this plugin and my English wasn´t too bad. If you encounter any spelling or grammar errors please share this knowledge with me in the comments.

One more thing. If you have a nice idea to extend the plugin don´t hesitate to let me know in the comments. I appreciate every feedback.

Ein altes, verwittertes Buch neben einem ebenso altertümlich wirkenden Eimer.

String Klasse: Version 1.1.0

Diese Version gammelt nun schon seit weit über einem Monat auf meinem PC herum, hat aber erst heute ihre Vollendung gefunden dank dem Kommentar von Phil. Er hat mich darauf gebracht zwei magische Methoden einzubauen, mit denen die Möglichkeiten der Klasse enorm gestiegen sind.

Neue Features

Da dieses Release neue Features beinhaltet und nicht nur Bugs und Optimierungen enthält verdient es auch den Sprung von Version 1.0.1 auf 1.1.0. Welche Features das genau sind werde ich jetzt versuchen zu erläutern.

String erweitern

Es gibt jetzt gleich vier neue Methoden einen String zu erweitern: add(), addMore(), insert(), insertMore().

Mit der add()-Methode ist es möglich einen anderen String oder auch ein String-Objekt an das bisher bestehende anzufügen oder voranzustellen. Man kann auch mit einem Parameter angeben, was zwischen den Strings stehen soll. Mit addMore() kann man im Grunde genommen genau das Gleiche machen, nur kann man hier ein Array aus Strings oder String-Objekten übergeben.

Mittels insert() kann man einen String oder auch hier wieder ein String-Objekt in das bisherige String-Objekt einfügen. Dabei gibt man über einen Parameter den Offset an. Hier macht insertMore() auch wieder das Gleiche, nur dass es die in einem Array übergebenen Strings nacheinander einfügt.

String kopieren

Es ist nun auch möglich ein String-Objekt zu kopieren mittels der Methode copy(). Zurückgegeben wird ein neues String-Objekt, welches den gleichen Inhalt hat, wie das, welches kopiert wurde.

Magische Methoden

Mit PHP 5 wurden magische Methoden in Objekten eingeführt. Wie eingangs erwähnt habe ich heute erste die beiden Methoden __call() und __toString() eingebaut.

Erstere ist dafür zuständig die Möglichkeiten dieser Klasse enorm zu erweitern, da man dadurch jede beliebige String-Funktion aufrufen kann und diese dann auf das Objekt angewendet wird. Beispiel:

// Gibt 'is is the new st' aus
$string = new String('This is the new string.');
$string->substr(2, 16)->show();

Wie man sieht ist diese Methode ein wirklich mächtiges Werkzeug und auch Simon sollte jetzt zufrieden gestellt sein

Die Methode __toString() sorgt dafür, dass das Objekt direkt ausgegeben werden kann. Normalerweise würde eine Warnung auftreten, doch jetzt wird schlicht und ergreifend der String zurückgegeben. Das kann dann so aussehen:

// Gibt 'This is the new string.' aus
$string = new String('This is the new string.');
echo $string;

Vererbbarkeit

Als letzte gravierende Änderung ist es nun möglich von der String-Klasse abzuleiten, um eigene Erweiterungen dafür zu schreiben. Man kann in den abgeleiteten Klassen jede Methode verwenden, die die String-Klasse selbst hat, da alles entweder von außen zugänglich, also public ist oder geschützt (protected).

Diese Möglichkeit habe ich mir auch direkt zunutze gemacht und eine Ableitung geschrieben: JavascriptString. Mit dieser Klasse ist es möglich viele String-Funktionen, die in Javascript zur Verfügung stehen auch in PHP zu nutzen.

Dokumentation

Dieser Artikel ist nicht allzu ausführlich und das soll er auch gar nicht sein. Ich muss nicht jede einzelne Zeile oder Methode ausführlich erklären, denn die Klasse selbst ist ausführlichst dokumentiert und mit Beispielen versehen. Wer jedoch einen schnellen Blick riskieren will findet hier eine ausführliche Dokumentation, die mit phpDocumentor erstellt wurde.

Subversion

Da ich inzwischen Subversion auch privat nutze war es nur logisch das Projekt auch damit zu versionieren. Den aktuellen Entwicklungsstand findet man ab sofort immer unter dieser URL: http://dbsvn.agitos.de/public/string/trunk/

Committen darf momentan nur ich, aber um den aktuellen Stand auschecken zu können gibt es den User anonymous mit dem gleich lautenden Passwort.

Download

Zu guter Letzt kommt schließlich noch der Download der aktuellen Version. Download.

Wer auch hier Subversion nutzen möchte kann dies über den von mir angelegten Tag erledigen:http://dbsvn.agitos.de/public/string/tags/1_1_0/

Eine Säule inmitten eine Stadt mit der Aufschrift Subversión. Dahinter sind Gleise erkennbar.

Subversion – Was ist´s, was bringt´s?

Mal ganz ehrlich. Viele Programmierer fangen nach einer Idee direkt und ohne Umschweife das Schreiben ihres Codes an. Dabei entsteht ein ganzer Wulst an Funktionen und Logiken. Manche davon sind besser, andere schlechter und so wird von der einen Stelle zur anderen kopiert, gelöscht und neu geschrieben. Stellt man jetzt jedoch irgendwann einmal fest, dass die letzten Schritte nicht dem entsprechen, was man sich vorstellt macht man diese rückgängig. Ist das nicht möglich hat man ein Problem und muss versuchen sich das Geschriebene wieder irgendwie zusammenzureimen.

Dieses eben beschriebene Szenario kenne ich aus meiner eigenen Erfahrung nur allzu gut und hätte ich zu diesen Zeitpunkten Subversion eingesetzt, hätte ich mir einiges an Stress und Verkomplizierungen sparen können.

Was ist Subversion?

Subversion ist eine Software zur Versionsverwaltung. Mit ihr ist es möglich jederzeit nachzuvollziehen wer wann was an einer Datei geändert hat. Wird der Log richtig gepflegt wird auch sofort klar, warum die Änderung erfolgt ist. Abgesehen davon kann man mit Subversion nach einer fehlerhaften Entwicklung auch ältere Versionsstände, sogenannte Revisionen, wiederherstellen. Und zu guter letzt kann man mit diesem Tool noch fertige Release-Stände auszeichnen.

Subversion unterstützt also Entwickler nicht nur dabei ihren eigenen Code unter Kontrolle zu halten, sondern ist vor allem für Teams aus mehreren Entwicklern gedacht. Man hat die Möglichkeit, dass sich mehrere Personen die aktuelle Revision eines Projektes oder einer Datei herunterladen (Checkout), daran arbeiten und sie anschließend wieder hochladen (Commit) und somit eine neue Revision erstellen. Dadurch ist es möglich, dass mehr als eine Person an einer Datei arbeitet. Beim Commit werden die verschiedenen Codestände wieder zusammengeführt (Merge), selbst dann wenn von der aktuellen Datei schon eine neue Version existiert. Probleme treten nur dann auf, wenn an der gleichen Stelle im Code etwas geändert wurde (Conflict). Hier müssen sich die betroffenen Entwickler zusammensetzen und einen gemeinsamen Nenner finden.

Was bringt Subversion?

Alles bis jetzt geschrieben ist ja ganz nett und hört sich gut an, aber wo bleibt jetzt der praktische Nutzen von alldem?

Im Grunde genommen kann ich nur wiederholen, was bereits geschrieben ist. Subversion unterstützt Entwickler in der Kontrolle und Entwicklung ihres Codes. Nicht mehr und nicht weniger. Subversion ist keine eierlegende Wollmilchsau. Es hilft nicht dabei besseren Code zu schreiben. Es tut einfach das, was es kann und das ist verschiedene Entwicklungsstände zu speichern und zugänglich zu machen.

Allerdings kann Subversion bei richtiger Verwendung ein extrem mächtiges Tool darstellen. Und das nicht nur bei der Entwicklung von Software, sondern auch bei der Verwaltung von Dokumenten, Bildern, Musik, Videos, usw. Hier nehme ich einfach mal die Wikipedia als Beispiel. Jeder dort eingestellte Artikel besitzt verschiedene Versionen, z.B. der Subversion-Artikel. Anhand dieser Versionen kann weltweit jeder Interessierte nachsehen wann welche Änderung gemacht wurde und warum. Baut jemand Mist wird einfach eine ältere Version wiederhergestellt und schon geht es weiter. Der Nutzen bei Wikipedia sollte jetzt wohl jedem klar geworden sein.

Durch die Tatsache, dass man mit Subversion nahezu alles verwalten kann und das an einer zentralen Stelle wird das Tool erst richtig nützlich. Hierzu ein praktisches Beispiel aus der Arbeit. Ein Projekt steht an, an dem eine Person entwickelt. Gegen Ende des Projektes wird die Zeit üblicherweise etwas knapp und ein zweiter Entwickler steigt ein. Diese zweite Person muss jetzt nicht lange darauf warten, dass er den Code vom Kollegen geschickt bekommt, sondern kann sofort anfangen, indem er sich das Projekt auscheckt. Durch den Log kann er sich auch schnell über den aktuellen Stand informieren und direkt loslegen. Natürlich müssen sich die beiden Entwickler absprechen wer was erledigt. Die persönliche Komponente kann und darf nicht verloren gehen für den Erfolg eines Projektes.

Das war jetzt nur ein Beispiel von vielen Tausend, die man finden könnte, aber ich denke hierdurch ist zumindest ein Nutzen dieses Tools klar geworden. Wer noch Fragen hat kann diese gerne in den Kommentaren stellen

Standard-Wallpaper von Windows 7

Windows 7

Lange musstet ihr warten, doch nun ist es endlich soweit. Ich schreibe tatsächlich am, vor Ewigkeiten angekündigten, Artikel zu Windows 7, der meine gesammelten Erfahrungen mit diesem Betriebssystem schildern soll.

Download und Installation

Am 9. Januar diesen Jahres wurde die Betaversion zum Download freigegeben. Auch ich war an diesem Tag dabei und habe nahezu 24 Stunden auf einen erfolgreichen Download gewartet. Als sich dann endlich das Image auf meiner Platte befand dauerte es nicht lange bis es seinen Weg auf eine DVD fand und ich anfing das System auf eine neue Partition zu installieren. Schon zu diesem Zeitpunkt stand für mich fest, dass Windows 7 ganz anders als Windows XP ist, da allein die Installation sehr schnell und bedienerfreundlich ablief.

Anschließend erfolgte der erste Start und man kann hier wirklich von einem Start sprechen, da der Desktop innerhalb kürzester Zeit zu sehen war und ich loslegen konnte. Zuerst wurde natürlich ein Antivirenprogramm installiert, welches ich bereits auf einer meiner Festplatten abgelegt hatte. Man will sich ja nicht ungeschützt ins Netz begeben. Dann fing ich an die neuen Features zu erkunden.

Was ist alles neu und was bleibt beim alten?

Screenshot der neuen Taskleiste von Windows 7

Die Taskleiste wirkt aufgeräumt und ist beliebig mit Programmen bestückbar, ähnlich der bisher verfügbaren Schnellstartleiste.

Das Erste, was direkt ins Auge sticht, ist natürlich der Style, der sich, soweit ich das beurteilen kann, nicht allzu sehr von Windows Vista unterscheidet. Auf der Suche nach einem startbaren Programm kommt man anfangs nicht um das Startmenü herum und das ist der Moment in dem man die komplett geänderte Taskleiste entdeckt. Sie ist höher als bei Vista, aber ihre wahren Fähigkeiten offenbart sie erst, wenn man ein Programm startet.

Der Programmstart selbst überrascht, da dieser rasend schnell vonstatten geht. Hier habe ich mich sehr wie bei einem frisch aufgesetztes Windows XP gefühlt. Doch bei diesem System geht die Performance mit ansteigender Betriebszeit allmählich vor die Säue und es dauert eine halbe Ewigkeit bis ein Programm einsatzbereit ist. Bei Windows 7 ist das nicht der Fall. Hier bleibt die Performance auch nach Monaten konstant.

Nun wieder zur Taskleiste. Sucht man seine heißgeliebte Schnellstartleiste sucht man diese vergeblich. Sie ist verschwunden, aber immer noch da, auf eine andere Art und Weise. Will man ein Programm in die „Schnellstartleiste“ bringen zieht man einfach die Verknüpfung auf die Taskleiste und schon steht das Programm immer und überall zur Verfügung. Auf dem Screenshot sieht man meine Schnellstartleiste mit den für mich wichtigsten drei Programmen. Startet man nun ein Programm wird um das Icon herum ein Rahmen gezeichnet. Startet man andere Programme gesellen sich diese rechts neben die immer vorhandenen Programmicons.

Ein weiteres sehr nützliches Feature der Taskleiste ist, dass man nun endlich die offenen Programme sortieren kann. Jeder kennt das doch. Man arbeitet wie wild und ein Programm stürzt ab, wenn nicht sogar der Explorer selbst und alle Fenster sind durcheinander gewürfelt. Mir geht es in der Arbeit dann immer so, dass ich alle Programme schließen muss um zum Gewohnten zurückzukommen, da ich mich ansonsten dauernd verklicke. In Windows 7 zieht man nun einfach das gewünschte Programm an die gewünschte Position und schon gehts weiter.

Screenshot der Fenstervorschau der neuen Taskleiste in Windows 7

Die einzelnen Tabs des Internet Explorer 8 lassen sich bequem in einer Vorschau anzeigen.

Gemeinsam mit der Betaversion und auch mit dem Release Candidate wird der Internet Explorer 8 ausgeliefert. Ich will jetzt allerdings nichts über den Sinn und Unsinn dieses Browsers erzählen. Das kann man auch an anderer Stelle tun. Ich will hier auf ein sehr schönes Feature hinweisen, welches im Zusammenspiel zwischen IE8 und Windows 7 sichtbar wird. Hat man im Browser mehrere Tabs geöffnet und fährt in der Taskleiste auf das Programmicon sieht man ebendiese Tabs als wären sie eigenständige Fenster (siehe Screenshot). Hier hoffe ich stark, dass auch andere Softwareschmieden sich diese Möglichkeit zunutze machen.

Taskleiste hier, Taskleiste da. Weg damit!

OK, ich habe wirklich viel über das Anhängsel am unteren Bildschirmrand geschrieben, doch ich muss ganz ehrlich zugeben, dass ich allein dafür Windows 7 kaufen würde, sobald es auf den Markt kommt. Doch nun zu anderen Features.

Wie zuvor bereits angedeutet ist die Performance dieses Betriebssystems beachtlich. Ganz subjektiv betrachtet kommt mir selbst der Release Candidate schneller als mein altes Windows XP vor, jedoch habe ich dieses leider nicht auf meinem neuen PC installieren können. Was aber ganz sicher anders ist, ist die Geschwindigkeit beim Booten. Ich habe jetzt nicht die Zeit dabei gestoppt, aber innerhalb kürzester Zeit kann man zu arbeiten anfangen. Sobald der Desktop angezeigt wird kann man auch schon Programme starten. Bei Windows XP und Vista wartet man erst mal noch eine Weile bis wirklich alles geladen ist.

Ein weitere sehr erfreulicher Punkt sind die Systemanforderungen. Diese sind im Gegensatz zu Vista enorm gesunken. Für Windows 7 benötigt man gerade einmal:

  • Prozessor: 1 GHz (32 und 64 Bit)
  • Arbeitsspeicher: 1 GB (32 Bit), 2 GB (64 Bit)
  • Speicherplatz: 16 GB (32 Bit), 20 GB (64 Bit)
  • Grafik: 128 MB Speicher und DirectX 9-Fähigkeit
  • DVD-Laufwerk

Im Grunde genommen ist das nicht viel mehr als man benötigt, um ein halbwegs flüssiges Windows XP zu bekommen. Wer mehr hat, hat es natürlich gut, da erst ab einer besseren Leistung auch bestimmte Features aktiviert werden, z.B. die Desktopeffekte von Aero. Hier versucht Microsoft wohl auch stark in den Markt der Netbooks drängen zu wollen, die momentan entweder mit Linux oder Windows XP ausgeliefert werden.

Screenshot der Bibliotheken-Verwaltung in Windows 7

Die Bibliotheken in Windows 7 sind äußerst praktisch, wenn man mehrere Ordner für gleiche Datetypen, z.B. Musik, nutzt.

Sehr praktisch sind die neu eingeführten virtuellen Ordner, Bibliotheken genannt (siehe Screenshot rechts). Das sind spezielle Ordner, in die man andere Ordner integrieren kann und somit beispielsweise eine verteilte Musiksammlung an einen Ort zusammenbringen kann. Physikalisch werden die Ordner nicht angerührt, sie werden im Explorer einfach zusammen ausgelesen.

Abgesehen davon hat Microsoft nochmal stark an der Sicherheit des System gearbeitet. Vor allem Nutzer von Windows Vista dürften sich darüber freuen nicht mehr alle fünf Minuten eine Warnung zu erhalten. Das Media Center wurde ebenfalls überarbeitet, Multi-Touch wird unterstützt und DirectX 11 wird veröffentlicht.

Fazit

Da ich Windows 7 als Produktivsystem verwende, hatte ich inzwischen mehr als genug Möglichkeiten mir eine Meinung zu diesem Betriebssystem zu bilden. Ich bin begeistert! Es ist schnell, schön, nicht überladen, hat nützliche Features und macht einfach Spaß. Auch wenn ich es ungern zugebe, aber hier hat Microsoft wirklich ganze Arbeit geleistet. Hut ab. Bis zur Veröffentlichung, die angeblich bereits im Oktober sein soll, dauert es zwar noch ein bisschen und bis dahin muss ich mich noch mit kleinen Minibugs herumschlagen, aber ich bestelle es mir, sobald es zum Verkauf steht.

Und wer es tatsächlich geschafft hat alles bis hier unten zu lesen hat doch bestimmt nichts dagegen noch einen kleinen Kommentar zu schreiben, oder?