Vor kurzem habe ich von einer Kollegin folgenden Text bekommen:

Diese Erkentniss ist nicht gerade sehr neu, jedoch immer wieder eindrücklich wie ein Text trotz extremer Verunstaltung noch lesbar bleibt. (zumindest der Muttersprache mächtigen).
Vor kurzem habe ich von einer Kollegin folgenden Text bekommen:

Diese Erkentniss ist nicht gerade sehr neu, jedoch immer wieder eindrücklich wie ein Text trotz extremer Verunstaltung noch lesbar bleibt. (zumindest der Muttersprache mächtigen).
Im Moment befasse ich mich gerade mit dem Thema Podcast. Ziel ist es, möglichst einfach mit wenig Aufwand einen Vortrag als Podcast zur Verfügung zu stellen.
Die Idee:
Da ich die Welt nicht unbedingt neu erfinden will, habe ich nach Klassen für dieses Thema gesucht.
Mit der Feedcreator Class lässt sich ein Feed recht einfach erstellen. Die Anwendung ist sehr simple:
include("feedcreator.class.php");
$rss = new UniversalFeedCreator();
$rss->useCached(); // use cached version if age<1 hour
$rss->title = "PHP news";
$rss->description = "daily news from the PHP scripting world";
//optional
$rss->descriptionTruncSize = 500;
$rss->descriptionHtmlSyndicated = true;
$rss->link = "http://www.dailyphp.net/news";
$rss->syndicationURL = "http://www.dailyphp.net/".$_SERVER["PHP_SELF"];
$image = new FeedImage();
$image->title = "dailyphp.net logo";
$image->url = "http://www.dailyphp.net/images/logo.gif";
$image->link = "http://www.dailyphp.net";
$image->description = "Feed provided by dailyphp.net. Click to visit.";
//optional
$image->descriptionTruncSize = 500;
$image->descriptionHtmlSyndicated = true;
$rss->image = $image;
// get your news items from somewhere, e.g. your database:
mysql_select_db($dbHost, $dbUser, $dbPass);
$res = mysql_query("SELECT * FROM news ORDER BY newsdate DESC");
while ($data = mysql_fetch_object($res)) {
$item = new FeedItem();
$item->title = $data->title;
$item->link = $data->url;
$item->description = $data->short;
//optional
item->descriptionTruncSize = 500;
item->descriptionHtmlSyndicated = true;
$item->date = $data->newsdate;
$item->source = "http://www.dailyphp.net";
$item->author = "John Doe";
$rss->addItem($item);
}
// valid format strings are: RSS0.91, RSS1.0, RSS2.0, PIE0.1 (deprecated),
// MBOX, OPML, ATOM, ATOM0.3, HTML, JS
echo $rss->saveFeed("RSS1.0", "news/feed.xml");In meinem Fall habe ich zur Erstellung der einzelnen Einträge mit scandir das Podcastverzeichnis ausgelesen und die Dateien nach Informationen zerlegt.
Wichtig ist, dass der Feed anschliessend validiert wird: Feed Validator
Das Auslesen der ID3 Tags aus den MP3 Dateien erledige ich mit getID3(). Diese besteht aus diversen weiteren Modulen welche je nach Nutzung gelöscht werden können. Im Lieferumfang sind 13 Demo-Scripte für alle möglichen Anwendungen der Klasse dabei. So lassen sich damit zum Beispiel rekursiv Verzeichnisse auslesen und die Ergebnisse in einer DB speichern. Ein Beispiel wie die ID3 Tags geändert werden können und vieles mehr. Neben den ID3 Tags aus MP3 Dateien werden auch eine Reihe weiterer Formate unterstützt: .avi, .vob, .ogg, aac, .wav, .midi, .wma, .wmv, .mov Dateien. Zudem können Zip-Dateien ausgelesen und verarbeitet werden. Hier die Liste mit den unterstützten Formaten. Ein absolut tolles Projekt.
Der PHPGangsta hat zu diesem Thema einen Beitrag geschrieben in dem er verschiedene Scripts vergleicht.
Aktuell bin ich erst am Anfang meines Projekts, bin aber gespannt welche weiteren Perlen ich allenfalls noch dazu finden werde.
Seit kurzem bekomme ich ab und an sehr raffinierte Spam Mails, welche versuchen mittels offiziellem Anstrich ein Trojaner unterzujubeln. Ein Beispiel einer solchen E-Mail:
Guten Tag Lukas Blatter,
Vielen Dank für Ihren Auftrag bei alternate.de, nachfolgend finden Sie Ihre Bestellbestätigung.
Deine Bestellnummer: 719139766217
Artikel: Hewlett-Packard 6784684720 8371,40 Euro
Rechnungsname: Lukas Blatter
Zahlungsmethode: Auf Rechnung
Versandadresse und detaillierte Zahlungsaufforderung finden Sie wegen Sicherheitsmaßnahmen im Anhang.
Die Buchung wurde von Lukas Blatter autorisiert und wird innerhalb 2 Tage abgetragen. Kaufdetails und Widerspruch Mitteilung finden Sie im Anhang.
Ihr Support
Tozzi GmbH
Dunckersweg 62
89015 Hannover
Telefon: (+49) 825 5780448
(Mo-Fr 8.00 bis 18.00 Uhr, Sa 10.00 bis 18.00 Uhr)
Gesellschaftssitz ist Köln
Umsatzsteuer-ID: DE440686737
Geschäftsfuehrer: Uwe SchneiderAngehängt ist dem E-Mail jeweils eine Zip-Datei welche eine «Lieferung.exe» oder eine ähnlich benannte Exe Datei enthält. Wird diese Datei ausgeführt, so nistet sich der Trojaner im Computer ein.
Eine Breadcrumbs Navigation ist nützlich um dem Benutzer zu zeigen wo er in der hierarchischen Struktur einer Webseite befindet. Er kann über die Breadcrumbs Navigation zurück auf ein höheres Level wechseln.
Mit der CSS3 Breadcrumbs Navigation kann dies in ähnlichem Stil wie die Breadcrumbs Navigation von Apple ohne zusätzliche Grafikelemente umgesetzt werden.
Bis anhin war die Silbentrennung mit HTML nicht möglich oder nur durch den Umweg eines JavaScripts. Mit der CSS Eigenschaft «hyphens» kann die Silbentrennung nun aktiviert werden.
body {
-webkit-hyphens: auto;
-moz-hyphens: auto;
-ms-hyphens: auto;
hyphens: auto;
}Im Moment unterstützt noch kein Browser die Eigenschaft korrekt. Deshalb gibt es Vendor-Prefixes für Webkit, Microsoft und Mozilla.
Es spricht jedoch aus meiner Sicht nichts dagegen diese Eigenschaft bereits in allen Projekten einzusetzen. Derzeit unterstützt als einziger Opera diese Eigenschaft noch nicht. In Anbetracht seiner Marktverbreitung kann dies aus meiner Sicht vernachlässigt werden. Es ist zudem anzunehmen, dass auch Opera diese Eigenschaft über kurz oder lang unterstützen wird
Dieses Wochenende habe ich unseren Canon IP4500 wieder mal in Betrieb genommen. Mittlerweile gibt es bei uns ausschliesslich Win7 PCs. Nach dem Installieren von Canon PhotoPrint Ex kam die Meldung, dass kein passender Drucker installiert sei.
Dieses Problem kann wie folgt gelöst werden:
Bei mir funktionierte dies auch bei bereits installiertem PhotoPrint Ex.
(Quelle)
Diesen Sonntag hat mich ein minütliches Klingeln des Handys aus der trauten Ruhe geschreckt:
Server Name: qnap1
IP Address: 10.0.4.8
Date/Time: 2012/02/05 20:49:06
Level: Warning
Re-launch process [proftpd]
Diese Meldung kam im Minutenschritt reingedudelt. Ein Deaktivieren und Aktivieren des FTP Dienstes brachte keine abhilfe. Ein Hinweis im QNAP Forum brachte mich auf den richtigen Weg:
Es kann passieren, dass sich das SSL Zertifikat verhaspelt. In diesem Fall musste ich das SSL Zertifikat zurücksetzen. Danach funktionierte der FTP Dienst wieder zuverlässig. Für weiteres Debuggen kann man sich übrigens per SSH auf das QNAP NAS verbinden.
User: admin
Passwort: das welches man definiert hat
Danach kann man mit /usr/local/sbin/proftpd den ProFTPd selber starten und schauen mit welcher Fehlermeldung er abbricht.
Die meisten Webseiten enthalten einen Footer mit einem Copyright. Ist in diesem eine Jahreszahl enthalten, so sollte diese auch aktuell gehalten werden. Hier eine Lösung wie dies mit Smarty sehr einfach gelöst werden kann:
<p>© copyright 2010 - {'Y'|date}, <a href="http://www.blattertech.ch">blattertech informatik</a>, alle Rechte vorbehalten.</p>