Archiv ‘Web’

Dienstag, 26. Oktober 2010

Darf ein Web-Entwickler seine geliebte Scripting-Sprache aufgeben?

How do you hire a programmer if you’re not one yourself? Some things to look for …

1. How opinionated are they?

Ask them about a juicy programming topic (e.g. Ruby or Python?). The tone and reasoning of the answer will reveal a lot. In our recent podcast on programming, Jeff said, “When people have strong opinions about things — when they can talk at length about something — it’s a good indication that they’re passionate about it.”

Quelle: How to hire a programmer when you’re not a programmer – (37signals)

Genau dies habe ich letzte Woche erlebt. Ich auf der Seite des Programmierers, auf der anderen Seite ein Headhunter, der für ein „internationales“ Unternehmen in Zürich einen Web-Entwickler suchte. Er war über Xing an meine Kontaktangaben gelangt.

Auf die Frage, ob ich Erfahrung in ASP.NET hätte, erwiderte ich ein klares Nein, um anzufügen, dass ich das letzte Mal im Jahr 2000 ASP programmiert hätte. ASP war damals mein erster Einstieg in webbasierte Scriptingsprachen. Innert weniger Monate wurde ich dann aber äusserst rasch auf die gute Seite der Macht gezogen — und entwickelte fortan auf den LAMP-Stack aufbauend.

Der Headhunter hakte nach: Ob ich es mir denn vorstellen könne, ASP.NET zu erlernen? Darauf erwirderte ich ein klares und dezidiertes „Nein“. Ich, der Mac OS X/Linux-Fan, der plötzlich in Visual Studio rumeiert? Das wäre wie wenn ein Kommunist zur SD überlaufen würde. Oder ein Wechselstromverfechter ins Camp der Gleichstromfreaks übertreten würde.

Ich habe mich noch ein/zwei Male gefragt, ob ich wirklich die richtige Antwort gegeben habe — doch mit obiger Bemerkung von Seiten der Web-Entwicklerprofis bin ich ein für allemal sicher, dass ich mich richtig entschieden habe.

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

Keine Kommentare | neuen Kommentar verfassen

Donnerstag, 23. September 2010

Facebook, ein (finanzielles) Fass ohne Boden

Facebook has been around for seven years. It has 500 million users. If you can’t figure out how to make money off half a billion people in seven years, I’m going to go out on a limb and say you’re unlikely to ever do.

Quelle: Facebook is not worth $33,000,000,000 – (37signals)

Leider hat er Recht.

Tags: , , ,
Labels: Web

Keine Kommentare | neuen Kommentar verfassen

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