crusy.net

  • home.
  • photos.
  • about.

 

09
Jan

Kommentare, die die Welt nicht braucht – XXII

By crusy|Coding, Lustig|Be the first to comment!

Sprechende Konstantennamen sind die halbe Miete.

07
Jan

EaselJS: Lift-off und OOP [UPDATE]

By crusy|Coding, Javascript|Be the first to comment!

Also zuerst mal sollte diese EaselJS-Geschichte nun nicht mehr nur auf der Startseite funktionieren – mea culpa!

Was EaselJS für mich so richtig interessant macht, ist die Tatsache, dass jedes Objekt auf dem Canvas eigenständig bleibt – so wie ich das Canvas-Element verstehe (als eine Art Bitmap/BitmapData), ist das nicht immer so? Dadurch kann man diesem kleinen Ball aus meiner Demo zum Beispiel einen Click-Handler geben, wie soeben geschehen.

Dabei ist mir Folgendes aufgefallen: Wenn ich tatsächlich nach und nach mehrere (ausgefeiltere) Demos bauen will, dann würde es der Übersichtlichkeit dienen, wenn ich diese voneinander separieren könnte. Am Liebsten in ihrem jeweils eigenen Objekt, von denen ich dann jeweils eines instanziiere. Nur: Wie funktioniert objektorientiertes Programmieren in JS? Meine JS-Kenntnisse sind etwas eingerostet, aber hier gibt es eine nette Basic- (!) Einführung.

Das Ergebnis kann man sich im Quellcode ansehen: Alle Variablen, die nur zur (bisher einzigen) Demo gehören, sind in “Klasse” “A” ausgelagert… I like! Nun könnte es eigentlich/vielleicht losgehen.

UPDATE:

Hm, andererseits wäre es auch interessant, “richtiges” OOP zu sehen, z.B. das Beerben von EaselJS’ Klassen. Angenommen, ich möchte ein TicTacToe-Spiel bauen, dann hätte ich Kreuze und Kreise, die beide (mir fällt grad kein besserer Begriff ein) Spielsteine (engl. “Tile”)sind, der wieder meinetwegen ein Shape ist. Wenn ich diese etwas ausgefeiltere Einführung als Ausgangspunkt nehme, sieht das so aus:

Tile.prototype = new Shape();
Tile.prototype.constructor = Tile;
Tile.prototype.g;
function Tile()
{
	this.g = new Graphics();
	Shape.prototype.initialize.call( this, this.g );
}

Circle.prototype = new Tile();
Circle.prototype.constructor = Circle;
function Circle()
{
	this.g.setStrokeStyle( 1 );
	this.g.beginStroke( Graphics.getRGB( 0, 0, 0 ) );
	this.g.drawCircle( 0, 0, 10 );
}

Cross.prototype = new Tile();
Cross.prototype.constructor = Cross;
function Cross()
{
	this.g.setStrokeStyle( 1 );
	this.g.beginStroke( Graphics.getRGB( 0, 0, 0 ) );
	this.g.moveTo( 0, 0 );
	this.g.lineTo( 18, 18 );
	this.g.moveTo( 0, 18 );
	this.g.lineTo( 18, 0 );
}

Potential für Verbesserung sehe ich hier:

  • Kreis und Kreuz nur je einmal zeichnen und wiederverwenden (siehe Doku zu Shape), statt jedes mal im Konstruktor.
  • DisplayObject.cache() verwenden.

Meinungen?

07
Jan

Walk off the Earth – Somebody That I Used to Know

By crusy|Musik, Video|Be the first to comment!

via Steffen und Tomma.

06
Jan

EaselJS: Kickoff

By crusy|Coding, Javascript|Be the first to comment!

So ein Blog ist ein tolles Spielzeug. Eigentlich wollte ich nur meine Tweets anzeigen. Dafür brauchte ich ein neues Theme (das alte hatte keine Sidebar^^). Das neue ist schick, aber hat da oben diesen grauen Header, für den ich eigentlich keine Verwendung habe… lange Rede, kurzer Sinn: Ich benutze es jetzt als Canvas für EaselJS, mit dem ich gerade rumspiele.

Mittelfristig möchte ich da random das anzeigen, was bei meinen Spielereien so abfällt. Bis auf weiteres muss es aber eine Abwandlung einer Demo von Mike Chambers tun.

05
Jan

Twitter für WordPress

By crusy|Web|Be the first to comment!

Es gibt viele Plugins für WordPress, um seine Tweets anzuzeigen.

Das Problem von fast allen: Sie rufen serverseitig ab, und zwar dynamisch. Ein Problem ist das deshalb, weil Twitter die Anfragen auf 150/Stunde/IP beschränkt. Wenn man, wie ich, keinen dedizierten Server mit eigener IP hat, dann sind die 150 Requests schnell aufgebraucht. Sehr schnell. Ich habe gerade (unter der Woche, gegen 23 Uhr) etwa 7 Minuten gebraucht. Wenn das Plugin nun serverseitig die Nachrichten abruft, dann kommen also keine Ergebnisse – und darüber hinaus hängt die Seite schlimmstenfalls, weil das PHP-Skript auf Twitter wartet.

Eine schlechte Eigenschaft von vielen Plugins darüber hinaus: Sie zeigen keine Retweets an.

Mindestens das folgende Plugin umgeht die oben beschriebenen Probleme: Tweet Blender. Erstens zeigt es auch Retweets an. Dann legt es einen Cache an, und verwendet diesen, statt jedes mal Twitter anzupingen. Dieser Cache wird nach dem Laden der Seite per Javascript geholt; die Seite hängt also nicht.

Außerdem zeigt es den aktuellen Serverstatus in Bezug auf verbleibende Requests an (siehe Bild; das hat mich überhaupt erst auf das Thema gebracht); auf Wunsch auch als Nachricht für den Nutzer. Es unterstützt übrigens auch mehrere Accounts (was mir persönlich schnurz war).

Das Ergebnis seht ihr rechts; morgen (oder so) werde ich das mal ein wenig skinnen.

02
Jan

Blindes Huhn

By crusy|Lustig, Video|Be the first to comment!

trinkt auch mal n Korn:

via

02
Jan

Street Art

By crusy|Apropos, Photo|Be the first to comment!

Unglaublich tolle Graffiti gibt’s bei STREET ART UTOPIA: 1, 2, 3

01
Jan

Vorsätze

By crusy|Apropos|Be the first to comment!

Vor einiger (Achtung:) Zeit gab es einen Artikel in (genau!) der Zeit, der auch durch Facebook geisterte. Eine der Thesen dort: Langeweile sei gut, weil sie gewisse geistige Prozesse fördere, allen voran die Kreativität.

Ich teile diese Ansicht, und würde sie nicht mal auf die Kreativität beschränken; außerdem teile ich die (implizite) Aussage, dass “Langeweile” immer noch Definitionssache ist. Denkt man zum Beispiel an (das zugegebenerweise Modewort) Burnout, könnte den Betroffenen ein wenig gepflegte “Langeweile” hier und da sicher nicht schaden, dazu müssen sie hinterher nicht mal kreativer sein.

Aber wie dem auch sei, nicht zuletzt dieser Artikel ist verantwortlich für zwei meiner drei “Guten Vorsätze” für ’12:

  1. Weniger gehetzt sein, bzw. weniger hetzen lassen. Man kann auch mal langsam zur U-Bahn gehen, statt ständig genervt von Im-Weg-Rumsteher zu sein (um nur ein Beispiel zu nennen). Wäre allgemein gut für mein Nervenkostüm.
  2. (Außerhalb des Büros) weniger oft online sein, insbesondere bei Facebook und Co. Statt ständig up-to-date zu sein, kann man auch mal auf der Couch liegen und “nur” Musik hören. Zum Beispiel.
  3. Sparsamer sein :-)

Frohes Neues, und lest mal den Artikel!

01
Jan

Neue Musik

By crusy|Musik|Be the first to comment!

Dank Spiegel Online ist der Abend gerettet: Wenn die Sachen auf Awesome Tapes from Africa nur halb so cool sind wie Alhaji K Frimpong, dann bin ich erst mal versorgt. Und falls nicht, lege ich einfach Secret Stash’s Kind of Blue auf :-)

30
Dec

Remap Caps Lock in OS X

By crusy|Computer, OS X|Be the first to comment!

Vorweg #1: Dieser Eintrag ist zu 100% geklaut von Mac OS X Hints! Aber ich muss das Prozedere unbedingt für mich selber backupen.

Vorweg #2: Ja, man kann Caps Lock auch in den Systemeinstellungen (Tastatur -> Sondertasten) ummappen – aber nicht beliebig.

Also: Man sollte Caps Lock erst mal mit Bordmitteln (siehe oben) auf irgendwas mappen, meinetwegen CTRL. Dann erscheint die Taste in der unten beschriebenen Datei, was die Arbeit erleichtert. Dann öffne man ein Terminal und:

  1. navigiere cd Library/Preferences/ByHost
  2. kopiere die Datei, die mit “.GlobalPreferences” beginnt, in’s eigene Homeverzeichnis: cp $FILE ~/keys-binary.plist
  3. konvertiere das Ganze in eine XML: plutil -convert xml1 -o ~/keys-xml.plist ~/keys-binary.plist
  4. öffne die XML, und suche nach com.apple.keyboard.modifiermapping
  5. Dort finde man ein Wertepaar*, bestehend aus HIDKeyboardModifierMappingSrc (=Tasten-ID) und HIDKeyboardModifierMappingDst (=ID der Zieltaste)
  6. Man ändere die Zuweisung nach eigenem Gusto, speichere, und konvertiere zurück: plutil -convert binary1 -o ~/keys-binary.plist ~/keys-xml.plist
  7. Man kopiere zurück: cp ~/keys-binary.plist $FILE
  8. und logge sich 1x aus.

Danach ist alles bene :-)

*PS: Die Tasten-IDs lauten:

Caps Lock 0
Shift (Left) 1
Control (Left) 2
Option (Left) 3
Command (Left) 4
Keypad 0 5
Help 6
Shift (Right) 9
Control (Right) 10
Option (Right) 11
Command (Right) 12
Kernel Panic 16

PPS: Das Ganze unter Windows.

PPPS: Nein, ich weiß nicht, was “Kernel Panic” für eine Taste ist

← 1 2 3 4 5 6 … 42 →

Suche:

Schubladen:

  • Apropos (62)
  • Computer (222)
    • Arduino (4)
    • Coding (166)
      • CSS (5)
      • Flash (88)
      • Java (4)
      • Javascript (17)
      • PHP (6)
    • Firefox (19)
    • OS X (19)
  • Lustig (90)
  • Musik (52)
  • Photo (30)
    • Photoshop (16)
  • Video (58)
  • Web (95)
  • Werbung (29)

@crusy:

Lord Helmchen! (Der war bestimmt schon, oder?) #cl
20 hours ago from Twitter for Windows Phone
Fußball gucken ist ein bisschen wie Al Bundy gucken: Der Sprecher ist zwar unlustig, aber das Publikum klatscht trotzdem.
21 hours ago from Twitter for Windows Phone
Wenn man heiratet, ist man dann ent-ledigt?
1 day ago from web
Sach ich doch
3 days ago from Twitter for Windows Phone
SHER
3 days ago from Twitter for Windows Phone

Kommentare:

  • Christian on WSDL2Java: Axis2 in Eclipse Indigo
  • crusy on Deutschlandweite Verteilung Deines Namens
  • Jotteh on Deutschlandweite Verteilung Deines Namens
  • Fogwulf on Abgerundete Ecken
  • crusy on Van Gogh meets Monkey Island (und mehr!)

Tags:

Actionscript Actionscript 3 Addon Adobe AIR Ant Apple AS AS3 Coding Comment Cover CSS Design Eclipse Facebook FDT Film Firefox Flash Flex Google Internet iOS iPad iPhone Java Javascript Kommentar Mac music Musik Obama OSX OS X Photoshop PHP Plugin Star Wars Video Web Werbung Wordpress XML Youtube

Projekte

  • Bent Larsen
    DAS Film Noir Point-and-Click-Adventure
  • crusy goes sf
    Photoblog aus San Francisco
  • Insignia
    Aufbau. Handel. Herrschaft.
  • nerdeln.de
    Nörgeln für Nerds
  • Photos
    Mein Photoblog
  • Tourtagebuch
    Von sechs Menschen, einer Stadt und keiner Wohnung

Powered by the inLine Minimal WordPress Theme