Die utimative 256 Byte Demo. 3D per raycasting, animiert, Fischaugeneffekt, Ambient Occlusion. Whoa.
B0 13 53 BA C8 03 CD 10 88 D8 84 CB 7A 05 F6 E8
C1 E8 07 F6 EB 88 E0 EE B2 C9 E2 EC B1 03 4B 75
E9 68 CE 9F 07 B7 56 DB E3 83 00 58 DF 00 D9 FB
DC F9 DF 00 D8 0C D9 FE DE 0C 66 5A 06 55 60 89
1F 8B 05 DF 05 F7 E8 29 17 4F 7B F5 DF 07 66 81
05 CD CC 00 00 D8 CC D9 C0 D8 CE D9 CA D8 CD DC
EA D8 CE DE C1 D9 CA 47 7B EB 4F 6B 10 0A DF 19
89 17 02 34 00 FB 73 F6 99 B4 E6 11 D9 E8 15 00
28 CC D5 04 04 46 89 45 FC 61 45 26 88 02 75 AE
E4 60 48 75 92 B3 00 8B 29 D3 FD 31 D5 01 2F 00
FB 73 F4 D6 DF 10 51 D3 E9 80 C5 25 8B 10 F7 18
69 E8 00 80 2B 29 79 02 F7 DD D1 ED 01 EA 89 2F
00 FB 73 EC 39 CA 40 72 25 B3 02 7A DF 2B 10 40
2B 10 80 EE 60 6B D2 0D 8B 14 70 02 40 99 2B 2F
79 02 F7 DD 01 EA 8B 2F 00 FB 73 F2 39 CA 59 19
D2 F5 18 D1 10 D1 80 F9 06 73 04 00 D4 75 96 C3
```
Ich spiel grad mit <canvas> rum und wollte eine Kurve möglichst flieĂend durch Punkte fĂŒhren:

Viele Algorithmen laufen entweder nicht durch jeden Punkt oder setzen voraus, dass man die Pixel selbst malen will, was gerade bei Anti-Aliasing recht mĂŒhselig wird. Ich fand dann einen netten Algorithmus von Jean-Yves QuĂ©inec, der BĂ©zier-Splines so hinbiegt, dass eine durchgehende schöne Kurve entsteht. Manchmal gibts noch leicht merkwĂŒrdige Kurventeile aber insgesamt funktioniert es gut.
Der Code: smooth_path.js
Die Funktion bekommt ein Array von Punkten und erstellt einen Pfad, den man dann selbst malen kann.
path - Ein Punkte-Array der Form [{x:0, y:0}, {x:10, y:10}, ...]
smoothness - Der Grad der Biegung. 0 glÀttet nichts, 1.05 macht aus einem Quadrat einen Kreis und auch sonst schöne Kurven, alles andere erzeugt lustige Formen.
joinPath - Falls true werden die Kurven am Anfang und Ende des Pfades aufeinander ausgerichtet, sodass eine durchgehende Form entsteht, wenn Anfangs- und Endpunkt aufeinander liegen.
c - der canvas-Kontext
Wer Fehler findet oder Verbesserungen hat, immer her damit :)
Beispiel:
var canvas = document.getElementById('canvas');
var c = canvas.getContext('2d');
var path = [{x: 100, y: 100}, {x: 20, y: 150}, {x: 200, y: 200}, {x: 100, y: 100}];
var smoothness = 1.05;
var joinPath = true;
c.beginPath();
smoothPath(path, smoothness, joinPath, c);
c.stroke();
c.closePath();
Und eine kleine Demo. Per Maus die Punkte setzen, mit dem Slider die smoothness verÀndern.
1814: London Beer Flood, 9 people were killed when 323,000 imperial gallons (1 468 000 L) of beer in the Meux and Company Brewery burst out of their vats and gushed into the streets.
1919: In the Boston Molasses Disaster, 21 people were killed and 150 were injured when a tank containing as much as 2,300,000 US gal (8 700 000 L) of molasses exploded, sending a wave traveling at approximately 35 mph (56 km/h) through part of Boston, Massachusetts.
2008: Gerald Mellin, a U.K. businessman, committed suicide by tying one end of a rope around his neck and the other to a tree. He then hopped into his Aston Martin DB7 and drove down a main road in Swansea until the rope decapitated him. He supposedly did this as an act of revenge against his ex-wife for leaving him.
2009: Martin Cassidy, a 44-year-old stand-up comedian from Blackburn, England, died from asphyxia caused by breathing in large quantities of laughing gas while watching pornography on his laptop computer, according to a coroner. The coroner ruled a case of "Death by misadventure".
Einen schönen Screencast eines iPhone-Programms zu machen ist umstĂ€ndlicher als ich dachte. WĂ€hrend Steve Jobs seinen Untergebenen einfach befiehlt, einen Display-Anschluss ins DemogerĂ€t zu löten, mĂŒssen sich schnöde User mit suboptimalen Hacks begnĂŒgen. Die Optionen sind, in aufsteigender VideoqualitĂ€t:

Das ganze GerÀt mit einer Kamera abfilmen.
Veency ĂŒber WLAN + Screencast-Software.
Ein VNC-Server fĂŒr gejailbreakte (jailbreaked, befreite, geknackte, ...?) iPhones. EmpfĂ€ngt also Maus- und Tastatursignale und liefert ein Bild zurĂŒck. Man könnte damit z.B. das iPhone komfortabel in der Schublade lagern und per VNC-Client SMS verschicken. Oder Websiten vom Desktop aus in Mobile-Safari testen. Sicher nĂŒtzlich, wenn die Schublade sehr weit vom Schreibtisch entfernt ist. Oder man sich jeden Finger brach und nicht mehr tippen, nur noch ganzhĂ€ndig klicken kann.
ScreenSplitr + Screencast-Programm.
Sendet den Bildschirminhalt per Bonjour an den Rechner. Dazu einfach das Programm starten und in Safari unter Alle Lesezeichen einblenden > Bonjour das iPhone auswÀhlen. Das Bild dann mit einem Screencast-Programm filmen.
Veency ĂŒber USB + Screencast-Software.
Wie WLAN, nur schneller.
XCode iPhone Simulator + Screencast-Software.
App-Entwickler erstellen so meist ihre schicken Werbe-Screencasts (Classics, Things, Tweetie).
Mein bescheidener Plan bestand darin, ein Programm aus dem AppStore zu filmen. Der iPhone Simulator fĂ€llt also raus und ĂŒbrig bleibt das nĂ€chstbeste, VNC ĂŒber USB. Die folgende Anleitung ist nur ein Weg von vielen, hat bei mir jedoch als einziger funktioniert. Und wird beim nĂ€chsten iPhone- oder iTunes-Update, bei unmerkbar verĂ€nderten Netzwerkeinstellungen oder Halbmond sicherlich komplett zusammenbrechen. Aber es schadet kaum, es trotzdem zu dokumentieren. Wenigstens, damit ich mich spĂ€ter noch dran erinnere.
Wir brauchen:
Dann:
Falls noch nicht getan, iPhone jailbreaken. Dazu gibts genug Anleitungen. Kurz: redsn0w laden, die passende .ipsw-Datei finden oder laden, den Anweisungen folgen.
Veency installieren. Gibts in Cydia oder Icy.
iTunnel funktioniert nicht auf Anhieb, also: iTunnels iTunesMobileDevice.dll wegschmeiĂen und dafĂŒr Apples nehmen. Die liegt in C:Program FilesCommon FilesAppleMobile Device Supportbin bzw. C:ProgrammeGemeinsame DateienAppleMobile Device Supportbin
iPhone oder iPod touch anschlieĂen.
iTunnel auf der Commandline starten und den VNC-Port 5900 auf den USB-AnschluĂ umleiten:
> iTunnel.exe 5900 5900

VNC-Client starten und 127.0.0.1:5900 öffnen. Gibts Fehler, evt. andere Server stoppen (XAMPP, MAMP, ...)
Tadaa! iPhone VNC in brauchbarer Geschwindigkeit. Das ganze dann per Screencast-App filmen.
Ok, doch gar nicht so kompliziert...
Wer jetzt noch einen Weg findet, das ganze direkt unter Mac OS X zu machen, kriegt einen leckeren Keks per Post.

1. fĂŒr alberne Werte von "gut"
Ich öffne das Fenster und mir entgegen kommt heiĂere Luft als im Raum ist. Meine Cola ist lauwarm. In der Ferne verbrennen Tauben im Flug. Ich leg mich jetzt in meine mit Eis gefĂŒllte Badewanne und erwarte das Ende aller Tage.

Schicker Regex-Tester zum live ausprobieren von Rubys regulĂ€ren AusdrĂŒcken. Auch nicht ĂŒbel ist RegExr, benötigt allerdings Flash und benutzt Action Scripts Regex-Engine.