Archiv ‘Web’

Mittwoch, 22. September 2010

Höhere Datenbankkunde mit Facebook

„We need some way of applying the changes that we missed after the copy was started,“ he said. OSC does so using database triggers. „When the copy finishing, we replay all of the changes that were logged by the triggers, and then we briefly – for a fraction of a second – block access to the table and then we switch the original table with the copy.“

Quelle: Facebook open sources live MySQL makeover • The Register

Jede populäre Web-Applikation kann an einen Punkt heranwachsen, bei dessen Überschreitung das mit den Datenbanken kein Spass mehr ist, sondern eine grosse, grosse Bürde. Inkrementelle Backups und Schema-Upgrades — halleluja. Aber meist gibt es halt keinen Weg drumherum.

Tags: , , ,
Labels: IT, Web

Keine Kommentare | neuen Kommentar verfassen

Mittwoch, 22. September 2010

CMS muss direkten Zugriff auf HTML-Code bieten

A CMS should never, ever output HTML that is beyond the control of the developer. Every single tag and attribute should be possible to change by modifying templates or providing settings in function calls. If you have to use regular expressions and output buffers to get the HTML you want, something is wrong with the CMS.

Quelle: A good CMS gives you total markup freedom | 456 Berea Street

Drupal lässt grüssen …

Mein eigenes kleines CMS, das eMeidi.smt, speichert seit jeher Plain-Text HTML. Oder PHP. In einer Datenbank (die letzten zwei Bemerkungen disqualifizieren mich als ernstzunehmenden CMS-Entwickler). Egal.

Tags: , ,
Labels: IT, Web

Keine Kommentare | neuen Kommentar verfassen

Dienstag, 21. September 2010

Peinlich: Marketing-Buden verschlafen immer noch das flashfreie iPhone

If you’re running a multimillion dollar business, as I assume most of these agencies’ clients are, why would you trust your marketing and advertising to a company that still, three years after its introduction, can’t design for the mobile computing device that dominates the popular discourse?

Quelle: Subtraction.com: The Digital Agencies of the Future!

Tags: , , ,
Labels: Apple, Funny, IT, Web

Keine Kommentare | neuen Kommentar verfassen

Dienstag, 21. September 2010

Facebook 2010 effizient nutzen

Nachfolgend einige Tipps vom Facebook-Power User, die einem den Umgang mit dem bisher ungeschlagenen sozialen Netzwerk im Web stark erleichtert:

RSS-Feeds

Als eifriger Leser und Abonnent von RSS-Feeds habe ich selbstverständlich keine Sekunde gezögert, auch die von Facebook angebotenen, auf mich personalisierten Feeds zu abonnieren. Es sind dies:

  • Mario Aeby’s Friends‘ Facebook Status Updates
  • Mario Aeby’s Facebook Notifications

Wofür das Abo der Status-Updates? Nun, zwei Gründe: Einerseits möchte ich nicht immer Facebook in meinem Browser aufrufen, um die neuesten Status-Updates meiner Freunde zu entdecken. Andererseits möchte ich kein Status-Update meiner Freunde verpassen, gleichzeitig aber auch schon gelesene Status-Updates nicht mehr angezeigt erhalten.

Sehr oft kommt es vor, dass ich am Ende eines Tages nach Hause komme, NetNewsWire aufstarte und mich dank dieses RSS-Feeds durch die Status-Updates des Tages durchackere. Vielleicht haben einige meiner Facebook-Freunde bemerkt, dass ich — wenn ich Kommentare auf ihre Status-Updates abgebe — oftmals wenige Sekunden später auch auf Status-Updates von anderen Personen kommentiere, auch wenn sie dieses Status -Update vielleicht bereits am Morgen aufgeschaltet haben. Die Erklärung dafür ist simpel: Da ich die Status-Updates an einem Stück abarbeite, benötige ich im Tag vielleicht fünf zusammenhängende Minuten, um über die Aktivitäten all meiner Freunde auf dem Laufenden zu sein. In diesen fünf Minuten entstehen in der Regel auch die Mehrheit meiner Kommentare.

Leider versteckt Facebook den Direktlink auf den persönlichen Feed der Status-Updates seit einiger Zeit. Im Netz gibt es aber einige Artikel, die einem helfen, den RSS2-Link zusammenzubasteln. Die Linkbasis lautet http://www.facebook.com/feeds/friends_status.php?id={ID}&key={FRIENDS_KEY}&format=rss20, {ID} und {FRIENDS_KEY} muss man mit der Anleitung von herausfinden (offensichtlich ist es heute ungemein kompliziert, den {FRIENDS_KEY} zu eruieren). Jedenfalls funktioniert mein Link seit Monaten, wenn nicht gar seit Jahren ohne Probleme.

Nachtrag: Wie Kollege Dänu in seinem Kommentar zu diesem Artikel schreibt, ist unter View Facebook Friends Status Update Feed In Any Feed Reader ein anderer Weg aufgezeigt, der auch heute (Dezember 2010) weiterhin zum Ziel führt. Kurzfassung: Man suche den Link „My Friends‘ Links“, kopiere die URL und ersetze share_friends_post.php mit friends_status.php. Tatsächlich hat dieser Blog-Autor einen (weiteren) Weg gefunden, wie man den {FRIENDS_KEY} herausfindet. Danke!

Die Notifications wiederum sind Spielerei und nicht zwingend nötig — ich lasse mir nämlich alle Kommentare und persönlich an mich adressierten Nachrichten auf mein privates Mailkonto weiterleiten. Dort habe ich einen Unterordner _FACEBOOK eingerichtet, in welchen die Nachrichten automatisch alle fünf Minuten hinverschoben werden. imapfilter sei dank! Der Beweggrund dahinter: Ich möchte soviele Informationen wie möglich aus Facebook rausholen, da ich der Bude bezüglich privater Daten nicht traue. Je mehr ich lokal abgelegt habe, desto sicherer ist es, dass ich auch in einigen Jahren noch auf die Aktivitäten zugreifen kann. Ich finde es trotzdem nett, die Notifications neben E-Mail auch noch über einen zweiten Kanal aufgelistet zu erhalten. Der Link auf den Notifications-Feed findet sich unter http://www.facebook.com/notifications.php.

Facebook-Chat

Wie grau die Welt doch war, als ich mit Adium nur ICQ- und MSN-Chats führen konnte. Kaum jemand meiner Kollegen benutzt diese beiden Urgesteine von Chatprotokollen noch, weshalb ich Gefahr lief, sozial zu verkümmern. Der „Pöbel“ war nämlich schon lange weitergezogen (respektive hatten sich die veralteten IMs gar nicht mehr erst angetan) und chattete munter und fröhlich auf Facebook.

Erst vor wenigen Wochen entdeckte ich nun, dass das omnipotente soziale Netzwerk einen Jabber-kompatiblen Chat anbietet! (Die Entwickler der Plattform sind halt auch nur Geeks und werden wie ich den Web-Chat fürchterlich verabscheuen). Seither bin ich permanent auf Facebook online und für Chats zu haben. Unglaublich, wie viele neue, im Grunde aber altbekannte Chat-Partner ich so in Reichweite habe.

Die Konfiguration ist recht simpel und in der Facebook-Hilfe detailliert beschrieben. Wissen muss man eigentlich nur:

Jabber ID emeidi@chat.facebook.com
Password *****
Connect Server chat.facebook.com

Die Chat-Nachrichten können aber leider nicht verschlüsselt werden.

Der Vorteil dieser Lösung: Ich muss nicht den verschissenen Web-Chat von Facebook benutzen (und so konstant Facebook in einem Browser-Fenster geöffnet haben), sondern kann meinen altbekannten und bewährten IM-Client verwenden. Desweiteren werden alle Gespräche auf der Festplatte abgespeichert und können später problemlos durchsucht werden.

Weitere Pluspunkte: Alle Chatpartner sind von Anfang an mit ihrem realen Namen in der Liste aufgeführt und werden sogar gruppiert angezeigt, wenn man seine Kontakte in Gruppen wie Arbeit, Studium, Politik etc. eingeordnet hat.

Facebook-Chat wird über kurz oder lang ICQ, AIM, MSN, Yahoo! Messenger und wie sie alle heissen in die Wüste schicken — oder zumindest für einen spürbaren Einbruch im Chatverkehr sorgen.

Und ja, falls mir Mal langweilig werden würde: Es liesse sich sicher auch ein kleiner Bot programmieren, der die An- und Abmeldungen meiner Freunde akribisch festhalten würde und dieses Verhalten anschliessend statistisch auswerten könnte. Aber lassen wir das.

Tags: , , , , ,
Labels: IT, Web

2 Kommentare | neuen Kommentar verfassen

Montag, 21. Juni 2010

Das neue (?) Web-App-Paradigma

On the other hand, if you’re starting a new project today, there is absolutely no good reason why you shouldn’t begin your design with an API

Quelle: Software, APIs and all the king’s men | The Accidental Businessman

Tags: ,
Labels: IT, Web

Keine Kommentare | neuen Kommentar verfassen

Dienstag, 18. Mai 2010

Thing und Data Tables

Instead, they keep a Thing Table and a Data Table. Everything in Reddit is a Thing: users, links, comments, subreddits, awards, etc. Things keep common attribute like up/down votes, a type, and creation date. The Data table has three columns: thing id, key, value. There’s a row for every attribute. There’s a row for title, url, author, spam votes, etc. When they add new features they didn’t have to worry about the database anymore. They didn’t have to add new tables for new things or worry about upgrades. Easier for development, deployment, maintenance.  The price is you can’t use cool relational features. There are no joins in the database and you must manually enforce consistency. No joins means it’s really easy to distribute data to different machines. You don’t have to worry about foreign keys are doing joins or how to split the data up. Worked out really well. Worries of using a relational database are a thing of the past.

Quelle: High Scalability – High Scalability – 7 Lessons Learned While Building Reddit to 270 Million Page Views a Month

Tags: , ,
Labels: IT, Web

Keine Kommentare | neuen Kommentar verfassen

Mittwoch, 14. April 2010

Helvetica wird unter Windows hässlich gerendert




Helvetica rendered like shit on Windows

Originally uploaded by emeidi

Heute habe ich ein Bildschirmfoto einer von mir entwickelten Web-Site zugeschickt erhalten — und musste mich angesichts des Font-Renderings fast übergeben. Wie sich nach einigen Nachforschungen herausgestellt hat, ist auf dem System des Kunden ein Helvetica-Paket in Form von TrueType-Schriften installiert. Diese Schriftart wird nun aber sowohl im Internet Explorer als auch im Firefox bei kleinen Schriftgrössen äusserst hässlich gerendert; sprich beispielsweise stimmt das Kerning bei „de“ und ähnlichen Buchstabenkombinationen nicht.

Wieso?

Helvetica is easily my favorite font, but it has one downside: it looks like crap on Windows. The way Windows handles the rendering of Helvetica makes a great font almost unreadable at small sizes.

Quelle: Better Helvetica Font Stack « Minimali.st

Offensichtlich kommt Helvetica ohne anständiges Hinting daher.

Die Lösung ist relativ simpel. Man nehme das Stylesheet und passe es dermassen an, dass anstelle von Helvetica nur noch Helvetica Neue gewählt wird, die auf Windows-PCs in 99 Prozent der Fälle nicht installiert ist. Stattdessen wird bei Windows-Computern dann einfach die gute, alte (und im Grunde hässliche) Arial verwendet. Konkret:

...
font-family: "Helvetica Neue", Arial, sans-serif;
...

Tags: , , , , , , , ,
Labels: Web

Keine Kommentare | neuen Kommentar verfassen

Samstag, 20. Februar 2010

webkit2png installieren und benutzen

Diese Woche wollte ich mir von einem guten Dutzend Web-Sites Screenshots erstellen. Unter Mac OS X ist das dank dem nützlichen Tool Paparazzi! absolut kein Problem. Die Applikation greift auf WebKit, Apples quelloffene Rendering-Engine zurück, um die Web-Seiten zu laden und fertigt danach ein Bildschirmfoto an. Leider lässt sich diese Applikation aber nicht automatisieren — für ein Foto einer bestimmten Seite mag sie sich durchaus eignen, doch ein dutzend Fötelis verlangt tüchtig Handarbeit.

Deshalb gibt es das pythonbasierte Kommandozeilen-Tool webkit2png. Um es unter Mac OS X 10.4 zum Laufen zu bringen, sind aber noch einige Vorbereitungen nötig. Namentlich muss pyObjC heruntergeladen, kompiliert und installiert werden, um auf Cocoa zurückgreifen zu können (Vorausbedingung: svn ist auf dem System bereits installiert — die neueste Version von Python schadet garantiert auch nicht):

# cd /tmp
# svn co http://svn.red-bean.com/pyobjc/branches/pyobjc-1.4-branch/
# cd pyobjc-1.4-branch
# python setup.py bdist_mpkg --open

Nachdem der Installer kompiliert wurde, öffnet sich automatisch ein von Apple-Installern gewohntes Fenster im GUI, das durch die Installation führt.

Sobald die „Python-Objective C-Brücke“ installiert wurde, kann man sich webkit2png herunterladen:

$ cd ~
$ wget "http://www.paulhammond.org/2009/03/webkit2png-0.5/webkit2png-0.5.txt"
$ mv webkit2png-0.5.txt webkit2png
$ chmod 755 webkit2png

Anschliessend fügt man die URLs der zu photographierenden Web-Sites zeilenweise in eine Textdatei ein und kickt die Foto-Session an:

$ cat urls.txt | xargs python ~/webkit2png -F

Nach wenigen Sekunden/Minuten ist das Verzeichnis mit Bildschirmfotos gefüllt.

Tags: , , , , ,
Labels: Web

Keine Kommentare | neuen Kommentar verfassen

Samstag, 20. Februar 2010

Zugriff auf SVN-Verzeichnisse im Web-Root verhindern

Vor einigen Monaten standen auf unzähligen Web-Sites von professionellen Web-Entwicklern die Tore sperrangelweit offen: Auf Grund der Nachlässigkeit der Entwickler waren deren mit SVN versionierten Projekte statt mit svn export mit svn checkout auf das Produktivsystem ausgecheckt worden — und so gelangten automatisch die .svn-Verzeichnisse mit ins Web-Root.

Da Apache nachlässig konfiguriert war, hatte anschliessend jedermann mit einer klitzekleinen spielerischen Ader Zugriff auf die Struktur und den Source-Code einer jeden so Web-Site. Versuchen wir es gleich mal: Man hänge an die Domain versuchsweise „.svn“ an, wie beispielsweise bei www.stromzukunft.ch/.svn. In diesem Fall ist ein .svn-Ordner vorhanden, weil nicht ein 404er, sondern ein 403er angezeigt wird. Der Server wurde aber glücklicherweise längst gegen solche „Schnupperattacken“ gesichert …

Auch ich gehöre zu jenen Entwicklern, die sich bis zu diesem Zeitpunkt kaum über die „Best Practices“ der Entwicklergemeinde geschert hatten — tatsächlich bin ich auch heute immer noch so faul und verwende oftmals das verpönte svn checkout auf Produktivsystemen.

Um sich dennoch nicht gleich mit heruntergelassenen Hosen im Netz zu präsentieren, sollten solche unbelehrbaren Entwickler immerhin ihre /etc/apache2/apache2.conf anpassen und in dieser den Zugriff auf jedes .svn-Verzeichnis grundsätzlich verwehren:

...
<DirectoryMatch \.svn>
   Order allow,deny
   Deny from all
</DirectoryMatch>
...

Tags: , , ,
Labels: Web

2 Kommentare | neuen Kommentar verfassen

Freitag, 19. Februar 2010

Internetseiten von Grossratskandidaten

Das Internet wird als Wahlkampfmedium immer wichtiger und beliebter. Viele Kandidierende für die bernischen Grossratswahlen sind denn auch aktiv auf eigenen Webseiten, Facebook oder Blogs. Nur: Der virtuelle Wahlkampf hat auch seine Tücken. Es gibt einige, wichtige Regeln zu beachten.

Quelle: Regionaljournal Bern Freiburg Wallis | Der Wahlkampf im Internet und seine Tücken | Schweizer Radio DRS

Von meinem Vater darauf hingewiesen, hörte ich mir vor einigen Tagen den Regionaljournal-Beitrag über Web-Sites von Grossratskandidaten aus dem Kanton Bern an. Obwohl der Beitrag über 4 Minuten lang ist, konnte ich bei bestem Willen kaum etwas nützliches daraus entnehmen.

Zusammengefasst wurden folgende Ratschläge erteilt:

  • Sich erst jetzt auf Facebook und Twitter zu registrieren ist sinnlos. Am Besten ist man seit Jahren im Netz aktiv und hat längst seine Spuren hinterlassen — und kann nun von der Publizität profitieren.
  • Hat man ein Benutzerkonto auf Facebook & Co., sollte man sich regelmässig um seine Kontakte kümmern und Informationen rausposaunen — wie halt im echten Leben mit echten Kollegen.
  • Was auch immer man von sich gibt, man sollte möglichst authentisch rüberkommen. Doch Achtung: Mit Obszönitäten um sich zu werfen und mit nicht-gutbürgerlichen Manieren zu prahlen wird nicht empfohlen — wie halt auch im echten Leben.
  • „Will man von einer Kandidatin wirklich das Sternzeichen wissen?“ Spontan kam mir dabei die Web-Site meines geschätzten Gegners auf kommunaler Eben in den Sinn: Oliver Schmid (SVP)

Tags: ,
Labels: Bern, Web

Keine Kommentare | neuen Kommentar verfassen