Autor: Nathalie Pelz

Perl 6 ist da!

Eine gefühlte Ewigkeit ist es her, dass die Idee von Perl 6 geboren wurde. Zwischenzeitlich schon mit Duke Nukem Forever in einem Atemzug genannt, jetzt aber endlich da: Perl 6! Wobei Perl 6 eine Spezifikation einer Programmiersprache ist und nicht die Implementierung an sich. Gestern wurde Rakudo Star veröffentlicht, das Perl 6 auf Parrot. Damit gibt es erstmals eine benutzbare Implementierung von Perl 6. Rakudo Star ist aber noch langsam, es ist auch nicht für den Produktivbetrieb gedacht und es fehlt auch noch die Modulvielfalt von Perl 5, aber dank Rakudo gibt es jetzt eine Version, auf der man Modulentwicklungen aufbauen kann. Ich möchte hier keine weit ausschweifende Einführung in Perl 6 geben – denn dafür gibt es das Buch mit Rakudo und ein Tutorial in den $foo Ausgaben 4 bis 11-, sondern einfach ein paar kleinere Codebeispiele zeigen und Lust auf mehr machen. Perl 6 ist nicht einfach eine Weiterentwicklung von Perl 5, sondern eine eigenständige Sprache in der Perl-Familie mit vielen netten Features. Für Programmierer, die Perl 5 kennen, dürfte aber einiges bekannt …

Was ist neu in C# 4.0?

Zum Erscheinen unseres neuen C# 4.0 – kurz & gut und weiteren C# 4.0 Titeln hat der Übersetzer Lars Schulten einmal die Neuerungen von C# 4.0 zusammengetragen: Nachdem C# 3.0 die Arbeit mit Datenstrukturen zum Thema hatte, dreht sich bei C# 4.0 alles um die Interaktion mit dynamischen Programmiersprachen. Die Neuerungen scheinen zunächst weniger umfassend und tiefgreifend, sind auf andere Art aber ähnlich spektakulär. C# 3.0 öffnete die Sprache funktionalen und deklarativen Elementen, C# 4.0 öffnet sie dynamischen Elementen. Die neuen Sprachfunktionen fallen in vier Kategorien: • Dynamische Operationen • Optionale und benannte Parameter • Vereinfachung der COM-Interaktion • Kovarianz und Kontravarianz generischer Typen Dynamische Operationen stellen einen kleinen Paradigmenwechsel für C# dar. Sie lockern die strikte statische Typisierung der Sprache, um die Interaktion mit dynamischen Programmiersprachen und die Arbeit mit Datenquellen zu vereinfachen, die Objekte liefern, deren Typen zur Kompilierzeit nicht bekannt sind. Die Integration dynamischer Elemente hat zwei Bestandteile, einen neuen statischen Typ, dynamic, der dafür sorgt, dass die Prüfung und Auflösung der entsprechenden Operationen bis zur Laufzeit aufgeschoben wird, und einen neuen …

Das war der 1. Gadget Abend Köln

Am Freitagabend fand über den Dächern des Friesenplatz in den Räumlichkeiten von United Prototype der 1. Gadget Abend Köln statt. Ungefähr 70 Gäste drängelten sich nicht nur auf der Dachterrasse, doch viele nutzen die Möglichkeit, bei einem erfrischenden Bier und tollen Gesprächen den Himmel hinter dem Kölner Dom zu genießen. Doch neben Networking und Geplauder wurde natürlich auch über Gadgets gesprochen. So wurden vor Ort mehrere neue Smartphones und Kameras teilweise noch vor Markteinführung gezeigt und jeder Interessierte konnte sich ausführlich damit beschäftigen und viele Fragen stellen. Zusätzlich gab es auch etwas zu gewinnen – neben O’Reilly-Büchern zum Thema iPhone, iPad und Android auch noch zwei Kameras  und mehrere Gadget-Gutscheine. So wurde das Event beschrieben: Der Gadget Abend ist ein fröhliches Beisammensein interessierter Technik-Geeks, Web2.0-Nerds und sonstigen Early Adoptern, die sich über neue Gadgets, Applikationen, Web2.0, zukünftige Möglichkeiten und Chancen austauschen möchten. In ganz entspannter Atmosphäre, bei einem (oder zwei) Feierabendbierchen und kleinen Snacks.Keine Vorträge. Keine Anzüge. Keine Rollen. Dafür wahres Interesse, nette Gespräche und ehrliche Meinungen. Und genau das war es auch. Viele tolle …

jQuery-Rezept: Textfelder automatisch vervollständigen

Problem Es gibt zwei HTML-Eingabefeld-Typen, bei denen ein Anwender einen Wert aus einer Liste bestehender Werte auswählen kann: Radio Buttons und Selects. Radio Buttons sind für Listen mit bis zu acht Einträgen sinnvoll, während Selects bis zu 30 oder 150 Einträgen noch gut anwendbar sind – abhängig von der Art der Daten. Wenn der Anwender aber auch einen neuen Wert eintragen kann, helfen sie nicht weiter – meist wird ihnen dann ein Feld »Andere« beigestellt. Wird die Liste richtig groß – 500 oder sogar 500.000 Einträge, dann sind auch sie nicht mehr verwendbar. Lösung Das Autocomplete-Widget von jQuery UI kann die verschiedenen Situationen abdecken, in denen ein Select nicht ausreichend ist. Im einfachsten Fall sind die anzuzeigenden Daten in einem JavaScript-Array verfügbar: Wählen Sie einen Monat aus: var months = [’Januar’, ’Februar’, ’März’, ’April’, ’Mai’, ’Juni’, ’Juli’, ’August’, ’September’, ’Oktober’, ’November’, ’Dezember’]; $(„#month“).autocomplete({ source: months }); Hier wenden wir das Autocomplete-Plugin auf ein Eingabefeld für einen Monat an, wobei die Daten in einem einfachen JavaScript-Array bereitgestellt werden. Sind die Daten noch nicht auf Client-Seite vorhanden, …

Glück gehabt, Herr Zuckerberg! ;-)

Die Rückfragen meiner Fans und Leser haben mich dazu gebracht, immer weiter zum Thema Facebook zu bloggen, mein eBook zu veröffentlichen und schließlich auch „Das Facebook-Buch“ zu schreiben. Gemeinsam mit den Fragenden beginnt oft eine regelrechte Detektivarbeit bis man der Lösung ihrer Probleme auf die Spur kommt. Manchmal jedoch sind die Fragen auch reichlich skurril… So rief mich eines Tages eine Frau aus dem Schwäbischen an und bat mich ganz verzweifelt, Facebook zu sagen, es sei nicht in Ordnung, dass ihre Tochter ihre Facebook-Privatnachrichten lesen kann. Da hätte Facebook ja wohl nicht mitgedacht. Ich fragte sie, warum sie ihrer Tochter denn ihre Login-Daten gegeben hätte oder wie das Kind sonst in Mamas Postfach reinkäme. Die Frau verneinte vehement, dass die Tochter sich bei ihr einloggen könnte. Aber wie konnte sie dann die Privatnachrichten der Mutter lesen? Nach längerem Hin und Her stellte sich heraus, dass die ganze Familie ein und dieselbe E-Mail-Adresse benutzt und so die Tochter auch Muttis Benachrichtigungen von Facebook sehen kann. Ich erklärte der Frau also, dass das nicht an Facebook liege, …