Sonntag, Oktober 05, 2008
Tilllate enttäuscht mit Redesign
Nach Jahren im Uralt-Kleid aus der Zeit der Dotcom-Blase ging Tilllate.com am 1. Oktober 2008 mit einem kompletten Redesign online (Dank: Daniel).
Nachdem die meines Erachtens am professionellsten betriebene schweizerische Party-Community im Mai 2008 den Wechsel auf Zend Framework bekannt gab, wollte und musste man wohl die mit MVC neu hinzugewonnene Flexibilität zur Schau zeigen. Wohl kaum zufällig wurde nur wenige Monate nach dem erfolgreichen Relaunch der Codebasis ein Redesign präsentiert. Der umgekehrte Weg wäre aus Sicht eines Entwicklers unlogisch gewesen, jedenfalls dann, wenn man es mit Uralt-Code zu tun hat.
Mit Tech-Blog mit Entwickler-Community in Kontakt
Dank der vorbildlichen Öffentlichkeitsarbeit durch das Tilllate Techblog (auf Twitter halten sich die Entwickler um Silvan Mühlemann leider allzustark zurück) wissen Beobachter, welche und wie viele (mit Betonung auf viele) Personen für die Technik hinter der Web-Site verantwortlich sind, auf welche Probleme sie treffen und welche Tools diese einsetzen.
Der Wechsel von selbstprogrammierten Spaghetti-Code auf das PHP-Framework vom PHP-Entwickler Zend höchstpersönlich zeigt das Bestreben der Entwickler, dort auf Open-Source-Software zu setzen, wo dies angebracht ist und Ressourcen schont. Wieso das Rad hunderte Male neu erfinden oder wieso die Gefahr eingehen, mit selber geschriebenem und schlecht getestetem Code unnötige Sicherheitslücken in die Web-Applikation reinzuschmuggeln? Zend Framework bildet eine - zugegebenermassen voluminöse und teilweise einarbeitungsintensive - Basis, auf der man erfolgreich objektorientierte Web-Applikationen mit dem MVC-Konzept realisieren kann.
Andere Artikel auf dem Blog geben zudem Hinweise auf die Verwendung von SVN zur Versionierung von Applikations-Code sowie auf intensive automatisierte Tests. Tilllate kann selbstbewusst vorgeben, welche Mittel Mitbewerber zum Unterhalt der technischen Infrastruktur bereitstellen müssen, um konkurrenzfähig zu bleiben.
Löbliches ...
Eines muss man Tilllate lassen: Die Site bricht vollständig mit dem alten Design - angesichts deren Alters ein löbliche Entscheidung. Auch zeigt ein Blick auf den Quelltext der Homepage, dass kein einziger Tabellen-Tag gefunden wird. Ein Hinweis darauf, dass man mit den längst verpönten tabellenbasierten Layouts aus der Zeit der Jahrhundertwende in den wohlverdienten Ruhestand geschickt hat. Stattdessen setzt man intensiv auf CSS, was unter anderem auch die vielen Listen zeigen, die sich im Quellcode finden. Aus meiner Sicht die semantisch korrekte Anwendung von HTML-Elementen.
Endlich wurde auch einer meiner innigsten Wünsche erhört: Die Dimensionen der Bilder wurde gegen oben angepasst. Heute surft niemand mehr mit einer Auflösung von 800x600 Pixeln, die Internetleitungen sind äusserst schnell und Datenspeicher wie auch Traffic sollte auch für Tilllate nicht mehr aller Welt kosten, um Bilder mit brauchbaren Dimensionen und ansprechender Bildqualität abzulegen. Leider scheint es bei der Qualität immer noch Abstriche zu geben. Favorit ist und bleibt in dieser Hinsicht Usgang.ch.
Die Bedienung über die Tastatur war längst überfällig und ist tadellos gelöst. So macht das durchstöbern von Event-Gallerien Spass! (Falls es denn zuverlässig klappen würde - mit dem Blocken der Ad-Server wird anscheinend oftmals kein Foto angezeigt, sondern nur ein schwarzes Loch)
... negatives
Dennoch bin ich bezüglich des Gesamteindruckes enttäuscht: Vor drei, vier Jahren hätte ein solches Redesign die Benutzer vielleicht noch entzückt. Doch leider ist mittlerweile 2008 und es gibt längst einen grossen Platzhirsch, um den man auch hier in der Schweiz nicht mehr herumkommt: Facebook.
Diese Bude zeigt mit ihrem Produkt, wie Social Apps fürs Web 2.0 (Buzzword-Alarm!) heutzutage daherkommen müssen, damit diese eine breite Masse ansprechen und sogar von Mammi und Pappi benutzt werden können.
Vergleicht man das "neue" Facebook (auch kürzlich online gegangen) mit dem Vorschlag von Tilllate, gewinnt Facebook klar nach Punkten. Selbstverständlich muss man beifügen, dass Facebook über ein vielfach grösseres Budget verfügen konnte als Tilllate und deshalb dementsprechend eine Heerschar an Entwicklern anheuern konnte.
Man darf aber nicht vergessen, dass gerade das Frontend ebenfalls von (genügend) Profis (Usability-Gurus, Interaktions-Spezialisten, Psychologen und was es fürs GUI-Design alles für Experten gibt) bewirtschaftet werden sollte. Falls Tilllate hier wirklich prominente Unterstützung hatte (wer? wie viele?), müsste ich den UI-Designern bei Tilllate ein äusserst schlechtes Zeugnis ausstellen.
Spezifische Kritikpunkte
Was genau stört mich am Redesign?
- Schwarzer Hintergrund. Ich kenne keine besucherstarke Web-Site, die über einen schwarzen Hintergrund verfügt (spontan: eBay, Amazon, aber auch das ebenfalls kürzlich redesignte Newsnetz mit BernerZeitung und Tagi). Die altbekannte Leier vom Kontrast - ich möchte keine fünf Minuten lang auf eine Web-Site mit solchen Farben schauen.
- Serifen-Schrift Was bei Newsnetz durchaus Sinn macht - man liest dort im Normalfall Medienartikel - ist für eine Party-Community irrelevant. Hier zählt die einfache Bedienung - für Buttons und andere Bedienelemente ist Sans Serif - allen voran die für die Bildschirmanzeige optimierten Microsoft-Fonts - die bessere Wahl. Ganz hässlich: Tilllate mixt Serif- und Serifenlose Schriften ohne ein für mich klar erkennbares Konzept. Wenn wir gerade beim Schriften-Bashing sind: Wieso findet sich die in der Print-Werbung verwendete Schrift nirgends auf der Web-Site wieder? Und wieso nur ist das Logo weiterhin mit der Impact gesetzt?
- Schrift-Grösse Auch wenn Jugendliche in der Regel über gutes Augenlicht verfügen - die Standardschriftgrösse ist einfach viel, viel zu klein!
- Whitespace Die ganze Site macht den Eindruck, als sei sie förmlich mit der Müllpresse komprimiert worden. Motto: Möglichst viel auf einen Screen - und zwar (auch) möglichst viel Werbung. Web-Design im 2008 muss aber atmen können, und Whitespace ist der Schlüssel dazu (Ich gebe mich als Fan von Oli und seinen Information Architects zu erkennen, die für tamedia Newsnetz gestaltet haben - übrigens per Zufall auch die Mutterbude von Tilllate)
- Asset-itis Beim Betrachten einer Photo-Gallery werden um die zwanzig Javascript-Dateien nachgeladen. Muss das sein? Was für den Entwickler angenehm ist, um die einzelnen Libraries abzukapseln, ist für den Browser mühsam. Auch verstehe ich nicht, wieso die Javascript-Dateien alle mit einem GET-Parameter geladen werden? Somit können diese (meines Wissens) vom Browser nicht gecachet werden.
It's the business model, stupid!
Zugegeben - einen frappanten Unterschied gibt es zu Facebook: Tilllate verfügt über einen deutlich besseren Business-Plan, was die nachhaltige Profitabilität anbelangt. Die Überflutung der Titelseite mit Werbung (ich blocke zu Hause Ad-Server auf DNS-Ebene, weshalb die Titelseite recht ruhig erscheint) zeigt deutlich, wie Tilllate die Löhne seiner Mitarbeiter bezahlt.
Zukunftsaussichten
Dennoch bin ich gespannt, ob Party-Communities auch die nächsten Jahre ihre Daseinsberechtigung beibehalten können. Schlussendlich wären Party-Föttelis nur ein Facebook-Feature unter vielen.
So komisch es vor einigen Jahren klang: Doch heute scheint sich der Web-Benutzer daran gewöhnt zu haben, mit dem realen Namen im Web aufzutreten. Aus dieser Warte erscheint die Identifikation der Benutzer mit Nicknames und die Unmöglichkeit, Personen mit ihrem richtigen Namen zu suchen, als zunehmend grosses Manko von Tilllate & Co.
Labels: Medien, Party, Schweiz, Web, Web-Entwicklung
Freitag, August 22, 2008
Wenn MySQL unter Mac OS X nicht automatisch startet
Ich habe seit längerem das offizielle MySQL 5.0.45 auf meinem MacBook (Intel mit Mac OS X 10.4.11) installiert. Alles wunderbar - doch bis zum heutigen Tage wurde MySQL bei einem (Re-)Boot nicht automatisch gestartet. Ich musste mich dann immer mühsam zum Preference Pane durchhangeln und dort auf "Start MySQL Server" klicken (für einmal per GUI, nicht per CLI).
Heute habe ich mir nun zur Aufgabe gesetzt, dieses Problem zu beheben und kann folgenden Lösungsweg aufzeichnen:
- Download der neuesten MySQL-Version bei SWITCH: mysql-5.0.67-osx10.4-i686.dmg
- Mounten des Disk Images
- Doppelklick auf MySQLStartupItem.pkg
# rm -rf /Library/PreferencePanes/MySQL.prefPane
- Download des Ersatzes von MySQL.prefPane-leopardfix.zip
- Installation des neuen Preference Panes mittels Doppelklick auf MySQL.prefPane
Seither läuft MySQL bei jedem (Neu-)Start.
Via: Bug-Report mit Erläuterungen zum Problem
Labels: Mac, MySQL, Web-Entwicklung
Mittwoch, August 20, 2008
1 Pixel hohe Rahmen mit DIVs realiseren - im Internet Explorer 6
Vor einigen Tagen arbeitete ich an der Umsetzung des Screendesigns für eine neues Web-Projekt. Unter anderem sollte das DIV mit den Inhalten am unteren Rand einen (speziellen) Rahmen erhalten. So speziell, das border-bottom:1px solid #AAAAAA; nicht möglich war. Denn der Rahmen sollte - um einen 3D-Effekt zu ermitteln - mit Versatz beginnen.
"Nichts leichter als das!", dachte ich mir, und machte mich an die Umsetzung. Unterhalb des Content-DIVs wollte ich ein DIV platzieren, das 1px hoch war und mittels margin-left:4px Links um 4px eingerückt war.
Unter Safari und Firefox gab es keine Darstellungsprobleme. Doch als ich mir das Design mit dem MSIE6 anschaute, fiel ich wieder einmal aus allen Wolken: Der graue Balken war nicht etwa ein, sondern etwa 20 Pixel hoch.
Die Lösung? Natürlich wusste Google rat:
If you need to have a div tag smaller than 20px, then you will find it a bit hard to get on IE. Just add “overflow: hidden” to it’s style and you’re good to go.
Quelle: DIV height issue on IE
Wie ich vor kurzem bereits einmal getwittert habe:
Ich hoffe mir nichts sehnlicher, als das Hostel 3 mit Microsoft Internet Explorer-Entwicklern als Backpacker verfilmt wird.
Guet Nacht!
Labels: CSS, Internet, Microsoft, Web, Web-Entwicklung
Mittwoch, August 13, 2008
Wie aufgekaufte Startups häufig enden
Whenever a large software company acquires a startup, the first order of business is often an attempt to move the startup's application onto the larger company's technology infrastructure so that it can get benefits of "economies of scale" or some other buzzword that is typically a euphemism for "we bought you so now you're our bitches" that is not grounded in business realities. This often requires application rewrites that have the unfortunate consequence of causing the shipped application to stagnate as all efforts are poured into recreating the same application using a different technology.
Labels: IT, Web, Web-Entwicklung
Freitag, August 08, 2008
Winkelrieds Fundamental-Kritik an Newsnetz.ch
Man fühlt sich an die Memoiren von Stalin erinnert - als diese kleiner ausgefallen sind als die von Lenin, hat man einfach die Buchstabengrösse vergrössert.
Quelle: Tagi mit neuer Webseite | WINKELRIED.INFO
Einspruch, Linkenjäger! Newsnetz verbreitet ... News. Das sind gemeinhin Texte (ab und zu auch Bilder und Videos). Texte müssen gelesen werden. Je grösser die Bildschirmschrift, desto einfacher sind Texte lesbar. Ich selbst (27-jährig, meistens mit Brille im Web unterwegs) lese Artikel in einer sehr, sehr grossen Schriftart (dank Safaris Apfel-+ fällt es äusserst leicht, die Schrift zu vergrössern. Mit Betätigung der Leertaste springt man einen ganzen Bildschirm nach unten).
Der Entscheid des Tagi (und der anderen Newsnetz-Seiten) ist somit gerechtfertigt. Im Internet surfen längst nicht mehr nur 18-jährige Jungspunde mit bester Sehkraft, die sich widerstandslos Texte in Schriftgrösse 12px antun ...
Die Wahl der Schrift ist zudem vollkommen falsch. Die haben das Ding an einem Mac entwickelt und erst dann geschaut, wie es auf Windows und anderen Betriebssystemen funktioniert.
So entwickle ich auch Web-Sites - mit Safari und Firefox unter Mac OS X (ich hoffe, dass dies heute sehr, sehr viele Web-Entwickler tun). An dem ist nichts auszusetzen.
In der Tat läuft unter Windows aber etwas mit dem Antialiasing (ClearType ahoi) der gewählten Schrift falsch (bei mir unter Parallels 3.0 und Windows XP getestet). Die Schrift wirkt gerade bei Strichen (f, l etc.) zu fein, das Bild "flackert" irgendwie.
Labels: Blogosphäre, Medien, Schweiz, Web, Web-Entwicklung
Montag, August 04, 2008
Benachrichtigung bei Neuveröffentlichungen der Lieblingsband
Heute trudelte folgende Anfrage ein:
Ich suche nach einer Möglichkeit, wie ich automatisch benachrichtigt werden kann, wenn von bestimmten Bands ein neues Album erscheint. ...
Gibt es ev. schon so einen Service oder hast du eine Idee, wie man selber so etwas sich einrichten/programmieren könnte? (Bin Informatiklehrling, also kein Laie).
Meine Antwort lautete:
Ein solcher Service ist mir nicht bekannt, könnte aber durchaus irgendwo da draussentm existieren.
Ich würde mit der Amazon API/den Amazon Web-Services versuchen - imgriff.com hat dazu einen erhellenden Artikel:
RSS-Tricks: Neue Bücher bei Amazon per Feed
Anscheinend kannst du dir so personalisierte RSS-Feeds zusammenstellen (bspw. mit Keyword "Rammstein") und danach mit deinem Feed-Reader abonnieren.
Wenn es unbedingt ein E-Mail sein soll (ich bevorzuge Feeds, da meine Arbeit so nicht unterbrochen wird), kannst du ja versuchen, mit den Yahoo! Pipes was zusammenzubasteln. Ob die E-Mail-Versand unterstützen, weiss ich nicht.
Alternativ: Wenn du einen Web-Server dein eigen nennst, kannst du den Feed auch mittels Cron-Job und MagpieRSS parsen lassen und dir mit einem PHP-Script ein Mail senden, sobald ein gesuchter Artikel dort erscheint.
Weiterführende Links
- RSS-Feeds für Bestseller, Neuerscheinungen und die Aufsteiger des Tages
- New Releases RSS-Feed: Count of Results
Mittwoch, Juli 30, 2008
Wenn Leute die URL in das Google-Suchfeld eintippen ...
... ernten diese von mir nur ein müdes lächeln. Wenn sie gar keine URLs mehr eintippen, sondern nur noch Begriffe der gesuchten Web-Site, sage ich diesen Leuten einen wegweisenden Charakter voraus:
With the icons and text that draw one’s attention toward the Google search bars, the address bar fades more and more into the background. And since non-techie people are usually afraid of “breaking the computer”, they stick to a method that works well, which is to keep using Google.
Quelle: Do you still use URLs? Normal people no longer do | Wisdump
Seit längerem überlege ich mir, Leuten, die sich die URL meiner Web-Site nicht merken können, einfach zu sagen: "Gehen Sie auf Google und suchen Sie nach Mario Aeby. Klicken Sie auf den ersten Link der Resultate. Voila!" Zwar gelangen Sie so "nur" auf mein Blog, aber immerhin sind sie dem Ziel schon einmal deutlich näher als wenn sie die URL falsch eingegeben hätten ...
Labels: Google, Web, Web-Entwicklung
Donnerstag, Juli 10, 2008
Online Color-Picker
Wer möchte schon Bloatware wie Photoshop starten, um nur rasch einige RGB-Farbwerte für seine CSS-Styles auszuwählen? Das Web hat natürlich auch für diesen Anwendungsfall etwas parat:
Labels: Design, Programmierung, Software, Web, Web-Entwicklung
Mittwoch, Juli 09, 2008
cURL versendet POST- als GET-Request
... und zwar genau dann, wenn man CURLOPT_NOBODY aktiviert.
Dieser Erkenntnis hatte ich nach ca. einer Stunde debuggen meines Twitter-Cron-Jobs. Eine Google-Suche führte dann auch schnurstracks zur Erläuterung des "Bugs", der eigentlich ein Feature ist/sein soll:
Setting CURLOPT_NOBODY to FALSE will now switch the HTTP request method to GET simply because previously when you set CURLOPT_NOBODY to TRUE first and then FALSE you'd end up in a broken state where a HTTP request would do a HEAD by still act a lot like for a GET and hang waiting for the content etc.
If you issue a POST request and then want to make a HEAD or GET using the same re-used handle, you must explicitly set the new request type using CURLOPT_NOBODY or CURLOPT_HTTPGET or similar.
Quelle: [ 2010735 ] setting a CURLOPT_NOBODY option forces GET request
Labels: IT, Linux, Programmierung, Web-Entwicklung
Donnerstag, Juli 03, 2008
Bye, bye Microsoft Internet Explorer 6!
Hoffen wir, dass dieses Vorgehen endlich Schule macht:
As of August 15th, 2008, future features and any improvements made to existing features may not work with IE 6. If you are using IE 7, Firefox 2 or 3, or Safari, you don't have to do anything — everything will continue as is for you. However, if you are using IE 6, and you want to make sure everything works, you will need to upgrade your browser to either IE 7, Firefox, or Safari. All of these browsers are free and all of them will deliver a much better overall experience. The web will be a lot better for you.
Labels: Browser, IT, Microsoft, Web, Web-Entwicklung
Mittwoch, Juli 02, 2008
Hostpoint-Problem des Monats: Zeichensalat
Kein Monat vergeht, in dem Hostpoint nicht eine Überraschung parat hat. Während ich im Juni das erste Mal seit langem etwas Positives berichten durfte, war klar, dass im Juli garantiert wieder etwas kaputt gehen musste.
Und tatsächlich: Heute erhalte ich ein Mail eines Kunden, der über komische dargestellte Sonderzeichen flucht. Nach dem ich die Homepage angesurft habe, kann ich das Problem bestätigen: Irgendwie scheinen da UTF-8 und ISO-8859-1 durcheinander gekommen zu sein. Seit sechs Jahren hat die Web-Site keine Probleme mit Zeichensätzen aufgewiesen, doch nun ist über Nacht wohl etwas "kaputt" gegangen.
Soweit ich erkennen konnte, liegt das Problem darin begründet, dass mysql_query() neu nicht mehr ISO-8859-1-kodierte Zeichensätze zurückliefert, sondern UTF-8. Das HTML-Dokument sagt von sich aber, dass es in ISO-8859-1 kodiert ist - und htmlentities() erwartet auch ISO-8859-1. Ah, und die Tabellen-Spalten weisen ebenfalls latin1_german1_ci als Kodierung auf (jedenfalls sagt mir das phpMyAdmin so).
Temporärer Workaround
mysql_query("SET NAMES latin1");
... zuoberst in der index.php (natürlich nach dem Initialisieren der Datenbankverbindung!)
Jetzt klappt es wieder mit den Zeichensätzen.
Mal schauen, was sich Hostpoint für den kommenden Monat einfallen lässt.
Labels: Hosting, MySQL, PHP, Schweiz, Web-Entwicklung
Donnerstag, Juni 26, 2008
PHP wartet auf RoR-Entwickler
The maintainers published the code for the security patches on the 18th, thus giving crackers almost a week head start in finding an exploit in older versions. They then shipped broken releases on the 20th, making it impossible for anyone to upgrade to an official version. And we haven't heard anything since. What's going on?
Quelle: Ruby 1.9.0/1.8.7/1.8.6/1.8.5 new releases (Security Fix) - Ruby Forum
Da ist die Eisenbahn wohl entgleist ... Macht nichts, alle Wege enden irgendwann bei PHP!
Labels: Programmierung, Web, Web-Entwicklung
Mittwoch, Juni 25, 2008
Tomcat - die perfekte Wahl für Web-Applikationen
Over the last few weeks my photo collection application has been struggling seriously with its performance. The Tomcat server would sometimes crash, which isn't so serious, as my monitoring script would restart it at most 30 minutes later.
Quelle: On robots, URL design, and bad optimization | Larsblog
Toll! Mein Apache-Server stürzt wegen PHP-Scripts auch hie und da ab, aber dank eines Scripts ist er nach spätestens 30 Minuten wieder im Netz. Hey, im Internet stört es niemanden, wenn Server für 30 Minuten offline gehen *höhö*
Nun mal im Ernst: Wieso Tomcat, wenn es AMP längst tun würde? Ich erschlage Fliegen hier im Haus ja auch nicht mit dem Sturmgewehr.
Labels: Programmierung, Web, Web-Entwicklung
Dienstag, Juni 24, 2008
Xdebug-Meldungen verfeinern
Wie man Xdebug installiert, habe ich hier bereits beschrieben. Doch mit der Installation alleine ist es noch nicht getan; das Teufelswerkzeug muss nun auch noch derart konfiguriert werden, dass es dem Entwickler alle wichtigen Informationen liefert.
Die Jungs drüben bei IBM haben sich die Mühe gegeben, die (bezüglich INI-Einstellungen schwer durchschaubare) Dokumentation zu lesen und ihre Konfigurationsparameter im Netz zu publizieren:
xdebug.dump_once = On xdebug.dump_globals = On xdebug.dump_undefined = On xdebug.dump.SERVER = REQUEST_METHOD,REQUEST_URI,HTTP_USER_AGENT xdebug.dump.REQUEST=* xdebug.show_exception_trace = On xdebug.show_local_vars = 1 xdebug.var_display_max_depth = 6
Quelle: Squash bugs in PHP applications with Xdebug
Tönt gut und produziert äusserst detaillierte Fehlermeldungen.
Wer nichts vom korrekten Initialisieren von Variablen hält, sollte xdebug.dump_undefined vielleicht lieber auf Off schalten ...
Wer auf Exceptions setzt und diese sauber abfängt, sollte vielleicht auch xdebug.show_exception_trace auf Off schalten ...
Labels: Linux, PHP, Web, Web-Entwicklung
Freitag, Juni 20, 2008
Fertig lustig für den Microsoft Internet Explorer 6
IE 6 is definitely the most painful browser for us to support – it’s seven years old and doesn’t even fully support the CSS 1.0 standard created in 1996. Microsoft’s done an incredibly poor job of getting users to upgrade. It looks like it’s going to take pressure from big apps like MobileMe to seal the deal.
Quelle: Apple's MobileMe drops support for IE 6 - (37signals)
Labels: Apple, Internet, Microsoft, Software, Web, Web-Entwicklung, Windows
Donnerstag, Juni 19, 2008
PHP schöner Debuggen mit Xdebug
Um unter Mac OS X 10.4 mit dem mitgelieferten Apache (1.3.x) und PHP 5.2.4 von Entropy PHP-Scripts "schön" (sprich effizient) zu debuggen, installiert man sich am Besten Xdebug.
Kurz-Kurzanleitung:
- Download von Komodo 4.4 • PHP Remote Debugging • Mac OS X / x86 unter Komodo Debugger Extensions
- Kopie von xdebug.so aus dem 5.2-Ordner (gemäss installierter PHP-Version!) in den Ordner /usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/
- Erstellen einer Datei /usr/local/php5/php.d/80-extension-xdebug.ini und Einfügen von
[xdebug] zend_extension="/usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/xdebug.so"
- Apache neu starten
Tipp: vardump() produziert nun HTML-formatierte und ohne Blick auf den Quelltext der aufgerufenen Seite lesbare Dumps - so wie es schon längst sein sollte.
Dank: Pierre & Alain
Labels: Web-Entwicklung
Mittwoch, Juni 18, 2008
Reddit unter Windows Vista installieren
How to get reddit running on a clean Mac OSX Leopard install
Quelle: fixxit
Wieso nur findet sich nirgends eine Anleitung, wie man reddit unter Windows Vista, dem Betriebssystem der Wahl für alle Web-Entwickler da draussen, installiert? Skandal!
Labels: Microsoft, Web-Entwicklung
Dienstag, Juni 17, 2008
Wie Hostpoint PHP beschleunigt
... kann ich auch nicht so genau sagen. Nachfolgend sollen erste Hinweise auf die Technologie gegeben werden, die ich über einige dort gehostete Web-Präsenzen in Erfahrungen bringen konnte:
- FastCGI: incomplete headers (0 bytes) received from server "/var/run/hcgi/4444" So lautete die Fehlermeldung, die sich bei einer meiner Präsenzen im Apache error.log wiederfand. hcgi scheint der Name des im Einsatz stehenden PHP-Beschleunigers zu sein. Ob es sich bei 4444 um die PID oder die Kundennummer handelt, weiss ich nicht.
- Es scheint sich um eine Eigenentwicklung zu handeln:
Hostpoint mit PHP-Website-BeschleunigerDas Hostpoint-Engineering-Team hat einen PHP-Website-Beschleuniger entwickelt. Websites, welche auf PHP-Script aufgebaut sind, laufen nun massiv schneller.
- php.ini-Dateien im Web-Root werden nun nicht mehr interpretiert. Hierzu muss man im Hostpoint Control Panel auf Explorer/Web-Einstellungen wechseln, wo man einerseits sog. PHP-Profile (im Grunde nichts anderes als ein GUI für php.ini-Einstellungen) erstellen/anpassen, sowie diese Profile bestimmten Web-Verzeichnissen zuweisen kann. Leider führte eine von mir "from Scratch" erstellte Konfiguration zu einem HTTP 500er, weshalb ich schlussendlich eine Kopie des Profils typo3 anlegte und dort allow_url_fopen aktivierte. Für professionelle Web-Entwickler ist diese Oberfläche deutlich komplizierter zu bedienen, als eine gewöhnliche php.ini im Text-Editor anzupassen und dann via FTP auf den Server zu laden.
- Das PHP-Profil wird über .htaccess-Dateien aufgerufen, die folgenden Inhalt erhalten:
HcgiPhpProfileName php5 typo3 #@__HCP_END__@# # Anything after the comment above is left alone ...
Für einmal darf ich Hostpoint gratulieren: Seit der Beschleuniger im Einsatz ist, sind auf PHP basierende Web-Applikationen (in meinem Fall: MediaWiki, so sehr man sich über die Code-Qualität und Performance-Eigenschaften des Produktes streiten kann) spürbar schneller geworden.
Labels: Hosting, Schweiz, Web, Web-Entwicklung
Mittwoch, Juni 11, 2008
Firebug für Microsoft Internet Explorer ...
... gibt es selbstverständlich nicht.
Wer aber JavaScript-Fehler in dem unangefochten besten und standardkonformsten aller je programmierten Browser debuggen muss, der eigentlich gar nie Fehler produzieren sollte, geht folgendermassen vor:
- Download des Microsoft Script Debuggers (via Scripting Debugging in Internet Explorer)
- Installation
- Konfiguration des Internet Explorers gemäss der Anleitung HOW-TO: Debug JavaScript in Internet Explorer
Nachtrag
Mittlerweile gibt es zusätzlich noch die Internet Explorer Developer Toolbar, die frappant an Firebug erinnert. Selbstverständlich niemals so brauchbar wie das quelloffene Original - Microsoft halt ...
Labels: Internet, JavaScript, Microsoft, MSIE, Web, Web-Entwicklung
Dienstag, Juni 10, 2008
jQuery-Update unter Drupal 5: Murks
Keine grosse Sache, die jQuery-Library aus dem 2006 mit der neuesten 1.2.6 zu ersetzen - wer will schon eine mehr als zwei Jahre alte JavaScript-Library benutzen? Doch ein klitzekleines Detail stört nach dem Upgrade: Nun fehlt plötzlich die "Check all"/"Select all"/"Alles auswählen"-Checkbox bei Tabellen (z.B. um alle Seiten auszuwählen, die man löschen möchte).
Glücklicherweise habe nicht nur ich mich durch die Drupal-Foren gekämpft, sondern auch andere Zeitgenossen. Und einer davon hat sich der darbenden Community angenommen und bietet folgende Lösung für die Datei ./misc/tableselect.js:73 an:
$('form table:has(th.select-all):not(.tableSelect-processed)').each(Drupal.tableSelect);
(Andere Drupal-Entwickler hingegen stehen eher darauf, jQuery zu patchen und veraltete APIs nachzubauen - verstehe ich nicht ganz. Henusode.)
Labels: Drupal, IT, JavaScript, Web, Web-Entwicklung
Dienstag, Juni 10, 2008
Apache 1.3, MySQL 5 und PHP 5 unter Mac OS X auf UTF-8 trimmen
Mittlerweile habe auch ich den AMP-Stack auf meinem MacBook installiert und entwickle damit Web-Applikationen. Damit es bezüglich den Zeichensätzen koscher zu und her geht, musste ich folgende zwei Anpassungen an der Konfiguration vornehmen:
Apache 1.3
(Ich verwende aus Faulheit den mit Tiger mitgelieferten Apache - leider halt noch nicht 2.x)
In der /etc/httpd/httpd.conf wird mit folgendem Befehl eingestellt, dass im Header der HTTP-Antwort UTF-8 als Zeichensatz angegeben wird:
AddDefaultCharset UTF-8
MySQL
In der /etc/my.cnf
init-connect='SET NAMES utf8'
Bei jeder Verbindungsaufnahme (bspw. mysql_connect() via PHP) wird der Zeichensatz der ausgelieferten Daten damit auf UTF-8 geschaltet.
Selbstverständlich muss man aber immer noch aufpassen, in welchem Zeichensatz man Datenbank-Dumps exportiert und wieder einspielt ...
Labels: Apache, LAMP, Linux, Mac, MySQL, PHP, Web, Web-Entwicklung
Dienstag, Mai 27, 2008
Das ultimative Mantra der Software-Entwicklung
"How will this software get my users laid" should be on the minds of anyone writing social software (and these days, almost all software is social software). [...]
Quelle: It's Clay Shirky's Internet, We Just Live In It
Labels: Funny, Programmierung, Software, Web, Web-Entwicklung, Zitat
Sonntag, Mai 11, 2008
MySQL INSERTs und UPDATEs mit Subselects
Kürzlich durfte ich nachträglich zwei Datenbanktabelle normalisieren. Obwohl ich längst von den Subselect-Fähigkeiten von MySQL wusste, hatte ich es bis dato noch nie ausprobiert. Wie es sich herausgestellt hat, ist das Prozedere deutlich einfacher, als ich es mir erträumt hatte.
Rubriken neu in separater Tabelle
Die Tabelle daten enthält bspw. Adressen, die jeweils einer bestimmten Rubrik zugewiesen sind. Selbstverständlich kann man die Rubrik in dieselbe Tabelle hardcoden - doch deutlich hübscher ist es, die Rubrik in eine eigene Tabelle auszulagern und diese mittels eines Foreign Keys zu verknüpfen. Einer der Vorteile: Muss der Name einer Rubrik angepasst werden, geschieht dies an einem einzigen Ort, die Änderung wird aber gleich für alle Adressen übernommen.
Folgender Befehl nahm die hardcodierten Rubriken und fügte diese (jeweils einmal!) in die Tabelle rubriken ein:
INSERT INTO daten_rubriken (rubrik) SELECT DISTINCT(rubrik) FROM daten
Wichtig ist die SELECT ... Klausel - bis dahin handelt es sich beim SQL-Query um einen ganz normalen INSERT. DISTINCT bewirkt, dass der Rubrikennamen nur einmal ausgelesen wird (es können ja dutzende oder tausende Einträge dieselbe Rubrik haben).
Rubriken-IDs in Ursprungstabelle
Nachdem wir also nun die Rubriken in eine eigene Tabelle ausgelagert haben, möchten wir diese wieder mit der Ursprungstabelle verknüpfen. Hierzu verknüpfen wir die Textfelder der Ursprungs- mit der Rubriken-Tabelle und fügen in die Ursprungstabelle in ein neu erstelltes Feld die ID der Rubrik ein:
UPDATE daten d SET d.`daten_rubriken-id` = (SELECT r.id FROM daten_rubriken r WHERE r.rubrik = s.rubrik)
Labels: MySQL, PHP, Web-Entwicklung
Donnerstag, März 06, 2008
MSIE8 sucks!
Wie ich das schon jetzt wissen kann? Na, der Browser kommt von Microsoft. Noch Fragen?
Of course, there are those who might suggest it's only Microsoft that has problems hitting standards around interoperability and is trying to change the debate and buy time for IE 8 by putting the onus on the industry to revisit standards. [...]
Referring to IE 7, Hachamovitch said: "My kids would hear stories about how the web isn't working as it should, and they'd ask me: 'Daddy, did you break the web?' Developers would answer the question a little differently," which prompted one keynote audience member sitting behind Reg Dev to growl "much differently."
Quelle: Microsoft jump starts IE 8 with community push
Labels: Browser, Microsoft, Web, Web-Entwicklung
Dienstag, Februar 19, 2008
Formulare mit CSS (und ohne Zeilenumbrüche) layouten
Wie man Formulare heutzutage layoutet (nämlich mit CSS und nicht etwa Tabellen), verzapfen unzählige Artikel im Netz. Einen sauberen Einstieg bietet beispielsweise Quirksmodes Tableless forms.
Auch hier wird wieder belohnt, wer die HTML-Spezifikationen kennt und spezifische Tags so einsetzt, für was sie eigentlich erdacht wurden. Bestes Beispiel in diesem Zusammenhang: Der <label>-Tag, welcher immer noch nicht allen professionellen Web-Entwicklern bekannt ist.
Eine Sache wird in vielen Artikeln hingegen nicht ausreichend erläutert: Wie kriege ich das Formular-Layout hin, ohne dabei <br>-Tags zu benutzen? (Zeilenumbrüche, für HTML-Unerfahrene - in der Regel <tt clear="all">, um mit dem Floats zurecht zu kommen ...)
Heute nun habe ich mich noch einmal mit der Umbruch-Thematik auseinandergesetzt und kann folgende Lösung präsentieren, die zumindest in Firefox 2.x und Safari 3.x zu funktionieren scheint (ich schliesse mich Conrast.ie an und hasse MSIE6 ab heute öffentlich):
label {
display:block;
float:left;
width:200px;
clear:left;
}
input {
display:block;
float:left;
clear:right;
}
Wichtig sind die clear-Anweisungen, die das Umbrechen der Floats steuern.
Labels: CSS, HTML, Web, Web-Entwicklung
Dienstag, November 20, 2007
Design vs. Web Design
[...] Google. Amazon. Facebook. eBay. Yahoo. Craigslist. YouTube.
Do they have “gravitas, praise, or memorability”? Yes, they certainly do in the minds of web designers.
Will they be praised by print designers and put into large coffee table books? No, of course not. You can’t appreciate a web site in the same way you appreciate a logo or a poster.
[...] Who do we credit for building Google? Larry and Sergei? How about Amazon? Jeff Bezos? People in the web development community know this is silly…thousands and thousands of people have worked on those sites, tweaking the user experience over many years. There is no single person we can point our accolades to.
Quelle: Do Canonical Web Designs Exist?
The less sophisticated lament on our behalf that we are stuck with ugly fonts. They wonder aloud how we can enjoy working in a medium that offers us less than absolute control over every atom of the visual experience. What they are secretly asking is whether or not we are real designers. (They suspect that we are not.) [...]
Web design is the creation of digital environments that facilitate and encourage human activity; reflect or adapt to individual voices and content; and change gracefully over time while always retaining their identity.
Quelle: Understanding Web Design
Labels: Design, Web-Entwicklung
Dienstag, November 13, 2007
Microsoft Internet Explorer 3.0 bis 6.0
Wer als Web-Entwickler tätig ist, fürchtet sich täglich vor dem Zeitpunkt, wo sein Werk im Microsoft Internet Explorer getestet werden muss. Eins ist klar: Es wird wird sich immer irgendein Darstellungsfehler finden, der auf einen Bug in der Rendering-Engine des Krüppel-Browsers aus Redmond zurückzuführen ist.
Entweder, weil nicht standardkonform gecodet wurde (als Monopolanbieter hat man für Standards nur ein müdes Lächeln übrig, denn schliesslich setzt man durch seine Marktmacht diskussionslos "Standards"), oder weil eine Kombination von verschiedenen Seitenelementen zu ganz kuriosen Darstellungsresultaten führt (Stichwort: Peek-a-boo Bug, stand auch heute wieder auf dem Programm).
Egal - da wohl immer noch so gegen 80% der Interbenutzer das Browser-Scheusal von Kleinweich benutzen, muss man diese Tests zwangsweise über sich ergehen lassen.
Damit man Web-Sites auf einem einzigen Gerät gleichzeitig mit dem Microsoft Internet Explorer 6.0 und 7.0 testen kann, sei folgende Anleitung empfohlen:
IE 6 und IE 7 parallel installieren
Kurzzusammenfassung
- Internet Explorer 7 installieren
- Internet Explorer All Versions Installer herunterladen
- Installer ausführen und Browser selektieren, welche standalone installiert werden sollen
Der Anbieter des Installations-Päckchens lautet Tredosoft, die Hintergründe zum Paket werden auf einer eigenen Seite beschrieben.
Nachtrag
Nachfolgende Web-Dienstleistungen sind für einen Web-Entwickler kein guter Ersatz für eine lokale Installation des Internet Explorers - schliesslich arbeitet man oft auf einem über das Internet nicht zugänglichen Testsystem. Auch kann ich mir vorstellen, dass Reloads nach Anpassungen im Code äusserst träge - wenn nicht gar limitiert - sind:
Dennoch "Danke!" für die Hinweise!
Labels: Web-Entwicklung
Abonnieren
