W3C Releases Mobile Web Best Practices

W3C Releases Mobile Web Best Practices: „

The World Wide Web Consortium (W3C) today released the 1.0 version of their Mobile Web Best Practices document. The guidelines offer mobile web developers a consistent set of best practices to apply when creating content for consumption on mobile devices. ‘The principal objective is to improve the user experience of the Web when accessed from [mobile web] devices,’ according to the W3C.

In Japan, there are already more mobile web users than PC users, and the rest of the world is catching up. Jupiter Research expects that mobile Web 2.0 revenues will hit $22.4 billion by 2014, with the biggest growth areas in mobile social networking and user generated content.

Developing content across such a wide array of mobile devices and creating a consistent and enjoyable user experience is not an easy task. The W3C hopes that its new mobile best practices guidelines will make it easier for developers to create content and applications for cell phones and other mobile devices.

‘Mobile Web content developers now have stable guidelines and maturing tools to help them create a better mobile Web experience,’ said Dominique Hazaël-Massieux, W3C Mobile Web Activity Lead in a press release. ‘In support of the W3C mission of building One Web, we want to support the developer community by providing tools to enable a great mobile Web user experience.’

The W3C also announced the release of the XHTML Basic 1.1 Recommendation today as the preferred markup language for the best practices document. ‘Until today, content developers faced an additional challenge: a variety of mobile markup languages to choose from,’ said the W3C. ‘With the publication of the XHTML Basic 1.1 Recommendation today, the preferred format specification of the Best Practices, there is now a full convergence in mobile markup languages, including those developed by the Open Mobile Alliance (OMA).’“

(Via SitePoint Blogs.)

»Drizzle« – Abspaltung von MySQL für Webanwendungen

Unter dem Namen „Drizzle“ haben MySQL-Entwickler eine neue Version der freien Datenbank angekündig, die sich auf die aus ihrer Sicht wesentlichen Aspekte konzentriert. Brian Aker nennt in seinem Blog als Einsatzmöglichkeiten dieses abgespeckten MySQL-Servers Webanwendungen, Datenbanken ohne eingebaute Geschäftsprozesse, Cloud-Umgebungen und Multi-Core-Architekturen.

Viele Features, die in den letzten Jahren auf Druck von MySQL-Nutzern aus Unternehmen hinzukamen, fehlen in Drizzle: Stored Procedures, Trigger, Prepared Statements und Views. Auch der Query Cache fällt weg; er beschleunigt das wiederholte Ausführen derselben SQL-Befehle. Möglicherweise würden in Zukunft einige dieser Funktionen wieder eingeführt, es sei jedoch keine vollständige Kompatibilität mit MySQL geplant. Wichtiger sei es, Drizzle als echtes Open-Source-Projekt zu betreiben. Die Entwickler wollen wann immer möglich freie Bibliotheken benutzen; als Datenbank-Engine soll das transaktionsfähige InnoDB zum Einsatz kommen.

MySQL verharrt seit Längerem bei der Versionsnummer 5.0, die 2005 als Produktionsversion erschien. Seit zweieinhalb Jahren arbeiten die Entwickler an dem Nachfolger 5.1, der bislang wegen zahlreicher Fehler nicht zum Produktionseinsatz freigegeben ist. Vor Kurzem rief der Chef-Entwickler Monty Widenius MySQL-Anwender zur Hilfe bei der Fehlersuche auf. Parallel zur Arbeit an 5.1 verläuft seit Mitte letzten Jahres die an Version 6, die die selbstentwickelte transaktionsfähige Storage-Engine Falcon enthält. Deren Chef-Architekt Jim Starkey hat das Projekt jedoch vor Kurzem verlassen.

Bislang gibt es keine produktionsreife Version von Drizzle. Interessenten können sich den Code von Launchpad herunterladen. Zu den Entwicklern gehören neben Brian Aker Zak Greant, Monty Taylor und Jay Pipes. „Drizzle“ ist das englische Wort für Nieselregen, der besonders häufig in Akers Heimatstadt Seattle auftreten soll.

Via heise online

Working With History in Bash

Working With History in Bash: „

Yesterday we talked about favorite bash features (on the ##textmate IRC channel). I figured it was worth posting mine to this blog, they mostly revolve around history, hence the title.


My shell history collects a lot of complex command invocations which take time to figure out. To ensure that I have access to them at a later time, I have the following 3 lines in my bash init:

export HISTCONTROL=erasedups
export HISTSIZE=10000
shopt -s histappend

The first one will remove duplicates from the history (when a new item is added). For example if you switch between running make and ./a.out in a shell, you may later find that the last 100 or so history items is a mix of these two commands. Not very useful.

The second one increase the history size. With duplicates erased, the history already holds a lot more actual information, but I still like to increase the default size of only 1,000 items.

The third line ensures that when you exit a shell, the history from that session is appended to ~/.bash_history. Without this, you might very well lose the history of entire sessions (rather weird that this is not enabled by default).

History Searching

Now that I have my history preserved nicely in ~/.bash_history there are a few ways to search it.

Using Grep

The most crude is grep. You can do:

history|grep iptables

For me (on this particular Linux server) I get:

4599  iptables -N http-block
4600  iptables -A http-block -s -j DROP
4601  iptables -A INPUT -p tcp --dport 80 -j http-block
4602  iptables -L http-block
4603  iptables-save -c
4604  history|grep iptables

I do this often enough to have an alias for history (which is just h).

From the output I can either copy/paste the stuff I want, or repeat a given history event. You’ll notice that each history event has a number, you can repeat e.g. event number 4603 simply by running:


I will write a bit more about referencing history events in History Expansion.

Prefix Searching

Similar to how you can press arrow up for the previous history event, there is a function you can invoke for the previous history event with the same prefix as what is to the left of the insertion point.

This function is called history-search-backward and by default does not have a key equivalent. So to actually reach this function, I have the following in ~/.inputrc (or /etc/inputrc when I control the full system):

'\ep': history-search-backward

This places the function on P (escape P). So if I want to repeat the iptables-save -c history event we found in previous section, all I do is type ipt and hit P. If it finds a later event with the same prefix, hit P again to go further back.

This functionality is offered by the readline library, so if you setup this key, you have access to prefix searching in all commands which use this library.

Incremental Search

It is possible to press ⌃R to do an incremental (interactive) search of the history.

Personally I am not a big fan of this feature, so I will leave it at that :)

Update: The reason I dislike ⌃R is both because the interactive stuff just seems to get in the way (when P is what I need 99% of the time) and because it fails in cases where I ‘switch shell’, for example I may do: ssh mm press return, then instantly type: fP and again hit return (to execute free -m on the server called mm). I enter this before the connection to the server has been fully established, and here ⌃R would have been taken by the local shell, but it is the shell history at the server I want to search.

History Expansion

History Expansion was what we did above when we ran !4603. It is a DSL for referencing history events and optionally run transformations on these.

Anyone interested in this should run man bash and search for History Expansion, but just to give you a feel for what it is, I will reference a subset of the manual and provide a few examples.

Event Designators

First, an event designator starts with ! and then the event we want to reference. This can be:

«n»      Reference event number «n».
-«n»     Go «n» events back.
!        Last line (this is the default).
#        Current line.
«text»   Last event starting with «text».
?«text»  Last event containing «text».

So if we want to re-run our iptables-save -c we can do: !ipt.

What’s more useful though is to use history references as part of larger commands.

For example take this example:

% which ruby
% ls -l $(!!)
lrwxr-xr-x  1 root  wheel  76 30 Oct  2007 /usr/bin/ruby -> ../../System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby

Or something like:

% make some_target
(no errors)
% path/to/target some arguments
(no errors)
% !-2 && !-1

Word Designators

In the previous section we referenced entire history events. It is possible to reference just a subset of a history event by appending a : to the event designator and then the word of interest, the two most useful are:

«n»      Reference the «n»’th word.
$        Reference the last word.

So for example we can do:

% mkdir -p /path/to/our/www-files
(no errors)
% chown www:www !$
(no errors)

Here we reference last word of last line. We can also reference stuff on the same line, e.g.:

% cp /path/to/important/file !#:1_backup

To reference the last word of last line one can also press _ which will immediately insert that word.


To make history substitution even more useful (and harder to remember), one can also add a modifier to the event designator.

The most useful modifiers are in my experience :h and :t, these are head and tail respectively or better know as dirname and basename.

An example could be:

% ls -l /path/to/some/file
(listing of file)
% cd !$:h
(change directory to that of file)

Brace Expansion

Somewhat related to the backup example where we reference the first argument as !#:1 and append _backup to this, another approach is bracket expansion.

Anywhere on a command line, one can write {a,b,c} which will expand to the 3 words a, b, and c. If we include a prefix/suffix, that will be part of each of the expanded words. We can also leave the word in the braces empty, and have it expand to just the prefix/suffix, so for example we can do:

% cp /path/to/important/file{,_backup}

This is functionally equivalent to:

% cp /path/to/important/file !#:1_backup

But lack of hardcoded word number is IMO an improvement.

(Via TextMate Blog.)

Leben und Arbeiten mit Social Software und Web 2.0

Anlässlich der tiefgreifenden Veränderungen, die Social Software und Web 2.0 mit sich bringen, hat die MFG Innovationsagentur für IT und Medien des Landes Baden Württemberg die Publikation „a digital lifestyle – leben und arbeiten mit social software“ herausgebracht, die wesentliche Aspekte dieses Wandels beleuchtet.

Auf über 80 Seiten gehen namhafte Autoren aus Wissenschaft und Praxis der Frage nach, wie sich unser Lebensstil und unsere Arbeitswelt in Punkto Kooperation, Interaktion und Partizipation in der digitalen Zukunft entwickeln werden.

Die informative und zugleich interessant gestaltete Publikation wird kostenlos zum Download angeboten und ist zudem als Printversion für eine Schutzgebühr von 15 Euro erwerbbar. Sie eignet sich als Einstieg in das Thema für interessierte Privatpersonen und Unternehmen als Überblick über Möglichkeiten, die das Web 2.0 bietet.


Web Form Factory: Open Source Formular-Generator

Formulare ermöglichen einen direkten Kontakt zu den Besuchern einer Seite und erfragen zum Beispiel Daten für Newsletter, Kommentare und Adressen. Das Design ist schnell erledigt, doch ohne PHP-Kenntnisse wird daraus kein nützliches Formular. Wer gerade keinen PHP-Entwickler zur Hand hat, der kann auf die Web Form Factory zurückgreifen.
Web Form Factory: Open Source Generator für Formulare

Die Erstellung von Formularen für eine Webseite bleibt in aller Regel entsprechend geschulten Entwicklern vorbehalten. Die optische Gestaltung stellt für viele Publisher keine große Hürde dar, bei der Programmierung der Formulare sieht das schon anders aus. Hier sind spezielle Kenntnisse gefragt, um die Formulareingaben in einer Datenbank speichern oder per E-Mail versenden zu können.

Mit der Web Form Factory (WFF) gibt es jetzt eine Open-Source-Lösung zur Erstellung von Formularen für das Web. Die einfach zu bedienende Web-Applikation untersucht eine selbst erstellte HTML-Datei auf verwendete Eingabetypen wie Textfelder, Drop-Down-Listen, Checkboxen sowie Radio-Buttons und generiert daraus automatisch ein an PHP-gebundenes HTML-Formular. Das Ergebnis lässt sich dann in Form einer Zip-Datei herunterladen, auspacken und in die eigene Webseite integrieren.

WFF befindet sich derzeit im Beta-Stadium. Momentan wird nur die Anbindung von HTML-Dateien an PHP (wahlweise 4, 5 oder 5.1) unterstützt, was sich aber in naher Zukunft ändern soll. Außerdem ist die Erstellung eines E-Mail-Formulars möglich, bei dem die erhobenen Daten nicht in eine Datenbank fließen, sondern an eine E-Mail-Adresse geschickt werden.

Eine Hilfestellung für die Arbeit mit WFF inklusive der Erstellung der HTML-Datei bietet ein Einführungsvideo im Tutorial-Bereich.

via t3n

Internet Explorer 8: Beta 1 in deutscher Sprache

Internet Explorer 8: Beta 1 in deutscher Sprache: „Microsoft bietet ab sofort die Beta 1 des Internet Explorer 8 auch in deutscher Sprache an. Anfang März 2008 erschien die erste Vorabversion des kommenden Microsoft-Browsers zunächst nur in englischer Sprache. Bis auf die Lokalisierung unterscheiden sich die beiden Beta-Fassungen nicht. Der Browser unterstützt unter anderem CSS 2.1 sowie erste Teile von HTML 5 und mit Hilfe von ‚Web Slices‘ lassen sich einzelne Teile einer Website gesondert über die Favoriten-Leiste abrufen. (MSIE, Microsoft)“

(Via Golem.de.)

Erste Beta des Internet Explorer 8 veröffentlicht

Erste Beta des Internet Explorer 8 veröffentlicht: „Microsoft hat im Rahmen seiner Web-Konferenz Mix08 eine erste öffentlichte Beta-Version des Internet Explorer 8 (IE8) veröffentlicht. Der Browser unterstützt unter anderem CSS 2.1 und erste Teile von HTML 5. Darüber hinaus er schneller sein als sein Vorgänger und bringt mit ‚Web Slices‘ eine Technik mit, mit der Nutzer einzelne Teile einer Website aktuell halten können.“

(Via Golem.de.)

Adobe verpasst Flash-Kopierschutz

Bald können Online-Filmseiten ihren Zuschauern restriktiver vorschreiben, wie, wo und wann sie die Clips zu gucken haben. Adobe bietet digitales Rechtemanagement fürs Flash-Video-Format: Die Maßnahme richtet sich gegen geklaute Filmchen bei YouTube und Co. Das und mehr im Nachrichtenüberblick.

Egal, wo ein Websurfer auf Videotauschportalen einen Film anklickt – meist wird die Bewegtbilddatei als „Flash Video“ abgespielt. Das FLV-Format hat sich in kurzer Zeit zum Standard entwickelt und Videobastler haben meist leichtes Spiel, wenn sie verschiedene Dateien zu einer Komposition zusammenmixen wollen.

Nun möchte auch Adobe, der Anbieter der Flash-Technologie, ein Wörtchen bei der Nutzung von „Flash Video“ mitreden. Die Software-Schmiede wird mit der neuen Version 9 ihres Flash Players ein digitales Rechtemanagement (DRM) einführen, welches die Kommunikation zwischen Server und Flashplayer verschlüsseln und alternative Player aussperren kann.

Für Anwender könnte die Einführung von DRM für Flash bedeuten, dass Schluss wäre mit dem beliebten Remixen von Flash-Filmen. Einzige Ausnahme: Man ist bereit, den Kopierschutz zu knacken oder anderweitig zu umgehen – und das gilt als Straftat.

(Via SPIEGEL Online)

Google Gadgets for the Mac

Google Gadgets for the Mac: „Posted By Mike Pinkerton, Software Engineer

Earlier this year, I posted here to introduce Google Desktop for Mac OS X. Today, on behalf of my team, I’m happy to unveil the latest feature of Desktop: Google Gadgets for Mac OS X Beta.

This feature brings hundreds of existing Google Gadgets to Dashboard. You can add fun gadgets (such as bowling, virtual flower pot, or YouTube), useful gadgets (weather maps, driving directions, and news), and others that offer daily wisdom for the ages (Confucius, horoscopes, and even a joke of the day!). These gadgets look and behave just like any other Dashboard widget, so you don’t have to learn anything new.

With hundreds of gadgets available and more being added every week, you might wonder how to get started. No problem! The Google Gadgets application is your one-stop shop for all available gadgets, complete with search to quickly find what you’re looking for. If you’re concerned you might miss out on new gadgets as they come along, don’t be. The Google Gadgets application regularly updates itself so the list of available gadgets is never out of date.

You can download the new software at http://desktop.google.com/mac/.

The best part is that anyone can create a gadget. If you are interested in developing your own Google Gadget, check out the Desktop Gadget API homepage. There you’ll see how to create a cross-platform gadget that runs on both Mac OS X and Windows. If you’re already a gadget developer, download the Beta today to test your gadget on a Mac and ensure that it works correctly.

We need your help and your feedback to make this Beta an even better product. Please come visit our forum and let us know how we can do that.“

(Via Official Google Mac Blog.)

Screenshot-Software SnagIt kostenlos

Screenshot-Software SnagIt kostenlos: „Das Softwarehaus TechSmith verschenkt seine Screenshot-Software SnagIt für die Windows-Plattform. Zwar ist nicht die aktuelle Version 8.2 kostenfrei zu bekommen, sondern nur die Vorversion 7.25, doch bietet die Software einiges. Dazu zählen DirectX-Kompatibilität und die vollständige Aufnahme von Browserfenstern, die größer sind als der Bildschirm des Benutzers. (Grafiksoftware)“

(Via Golem.de.)