Tag archive: Download

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

Cover vom fünften Studioalbum "Living Things" von Linkin Park

Linkin Park: „Living Things“

Es ist soweit. Das mittlerweile fünfte Studioalbum der kalifornischen Band Linkin Park ist erhältlich und trägt den Titel „Living Things“. Nach der Single-Auskopplung von „Burn It Down“, die bereits einen kleinen Einblick in den erneuten Stilwechsel der Band gab muss ich zugeben, dass das Album alles richtig macht und erneut einen Meilenstein in der Geschichte der Jungs um Chester Bennington darstellt.

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/

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?

Leuchtstoffröhren in der Form des englischen Wortes "Words"

PHP-Klasse für Strings

Information:
Es steht eine neue Version der Klasse zur Verfügung: String-Klasse: Version 1.1.0

Inspiriert von C++ habe ich eine generische Klasse geschrieben, mit der man Strings in PHP in Objekte umwandeln kann.

Einer meiner Hauptgründe für diese Entwicklung ist die Tatsache, dass ich in der Arbeit schon diverse Projekte auf UTF-8 umgestellt habe. Um UTF-8 möglichst weit zu unterstützen hat man momentan eine sehr einfache Möglichkeit, nämlich die Multibyte String-Funktionen von PHP. Damit der Code des Portals nun auch mit UTF-8 umgehen kann sucht man sich die Funktionen von der Seite des PHP-Manuals, sucht danach portalweit und ersetzt alle Vorkommen mit dem neuen Funktionsaufruf.

Continue reading

Verbindungsbrücke zwischen zwei Gebäuden von innen fotografiert.

Links, Verweise, was auch immer… (4)

Du kennst noch weitere interessante Link zu Websites, die jeder ambitionierte Webdeveloper kennen sollte?Dann immer her damit!

Logo der Firma Zend im Nackenbereich eines schwarzen T-Shirts

Entwickeln mit dem Zend Framework

Heute habe ich mich mal daran gewagt etwas mit dem Zend Framework zu experimentieren. Meine Idee war bzw. ist mein Buchungssystem auf Basis dieses Frameworks aufzubauen und damit etwas mehr zu professionalisieren.

Weit gekommen bin ich noch nicht, da ich mehr damit beschäftigt war in der Dokumentation und im QuickStart Guide nach bestimmten Dingen zu suchen als Logiken zu schreiben. Bis jetzt habe ich gerade mal die Validierung von übergebenen Daten geschafft. Aber das soll nicht Gegenstand dieses Beitrags sein.

Continue reading