also ich hab jetzt quake live ausprobiert, und ich muss sagen: top:
- die webpage ist super
- anmeldung nur 3 steps:
- step1 verlangt name, nickname, email und passwort
- step2 ein captcha
- step3: click auf download -> ladet ein 850k grosses browser-plugin runter. Installation war super einfach. hab nur das plugin-icon per drag&drop in den 100pixel daneben liegen browser-plugins-verzeichnis link ziehen muessen. kein browser-restart, sondern gleich die bestaetigung, dass alles geklappt und der weiter button hat geleuchtet.
- dann ca 5mins warten (download) und los gings. spieler aussuchen, und schwups ist man im spiel
- hier fuehrt einen dann eine freundliche dame ein bisserl rum, und nach ca 1min startet dein erstes match mit besagter frau, die wiederrum gleich deine skills rausfindet
- tja, und dann hat man einen account, mit dem man online auf seine skills angepasste matches spielen kann.
also ich war wirklich beeindrukt, eine voellig neue art wie man einem spiel begegnet, und das voellig fehlerfrei, intitiv und kurzweilig.
Das Spiel ist aehnlich quake3, mit nicht allzuvielen features, und sehr schnell!
hab jetzt grad wieder beim stoebern auf der festplatte ein programm entdeckt, welches ich letztens um weihnachten rum geschrieben hab. naja.. hier das ergebnis:
video1 video2 (ist auch sound dabei, also lautsprecher ein)
letzteres hat z.b. ca. 3h stunden zum rendern gebraucht.
zum programm:
- eingabe ist ein soundfile und ein ziel in der mandelbrot-menge
- ausgabe ist ein video, welches rotierend ins mandelbrot abtaucht
- das mandelbrot hab ich in c programmiert (der perl algorithmus war ca. faktor 100 langsamer)
- die AudoDatei Fourier Transformation (fuer die beat-detection), welche die rotationsgeschwindigkeit (und im ersten video auch den blur-faktor) beinflusst ist in perl.
- dieses script erzeugt dann 1000ende einzelbilder, welche mit ffmpeg zum video gemacht werden.
tja, es ist passiert. ich hab meinen ipod mini in der waschmaschine mitgewaschen.
hab dann einschalten probiert... nix
dann hab ich ihn an den strom angesteckt, und tatsaechlich ist das apple logo erschienen,
und nach dem booten funktionierte er wieder einwandfrei!
das einzige, die obere plastikabdeckung (wo der hold button integriert ist) ist ein wenig verformt (wahrscheinlich vom heissen wasser)
also echt, ich bin baff!
man glaubt es kaum, aber ich hab mich seit 10 jahren wieder mal auf eine windows installation gefreut. nun ja und somit hab ich heut windows7 unter vmware fusion2 installiert. als host-system hab ich "windows server 2008" gewaehlt und tatsachlich nach max. 10 clicks, bzw 20min war windows7 installiert. noch schnell die vmware-tools und los gings.
und ich muss sagen, ich bin nicht schockiert! finds zwar immer noch nicht so toll wie os x, aber "so ein schas" kann man sicher nicht dazu sagen!
naja... mein test ist immer als erstes, ob jetzt endlich ein neues besseres terminal verfuegbar ist --> leider fehlanzeige..
weiters, ist waerend ich diesen beitrag geschrieben hab windows mit einem bluescreen gecrashed, ok es ist vmware und windows-beta, darum will ich das ignorieren und windows weiterhin eine cache geben.. :)
wie alle, so hab auch ich jetzt webtek auf github gehostet, warum?
- weils alle verwenden
- weil ich zu faul war trac aufzusetzten (und ich es schon oefters gebraucht haett)
- ist lustig wieder mal was neues auszuprobieren... und hat auch alles gut funktioniert
also ab jetzt bitte:
git clone git://github.com/prozessor13/webtek.git WebTek
also folgendes script:
for (var i=0; i<2; i++) {
var j = i;
setTimeout(function() { alert("i:" + i + ", j:" + j) }, 1);
}
was wuerde man hier erwarten: also ich:
- 2 alerts
- wobei im einen i:2 j:0
- und im andern i:2 j:1 steht
wieso?
- also die variable i wird ausserhalb vom for scope deklariert, d.h. die zaehlt durch und bleibt bei der 2 stehen.
- und die variable j wird innerhalb vom for scope deklariert, d.h. dadurch dass ich bei setTimeout eine closure uebergebe, sollte der wert einmal 0 und dann 1 aufweisen.
aber! das ergebnis ist zweimal i:2 j:1, und dass versteh ich ueberhaupt nicht. kann mir das jemand erklaeren? oder ist das so eine nicht ganz logische JS optimierung der browser (damit die j variable nicht jedesmal deklariert werden muss ????).
kommt am montag, den 29. um 21.00 auf arte. fuer alle die den film noch nicht gesehen haben, zahlt es sich echt aus ihn anzusehen!

sind etwas sehr tolles, aber eben doch so stark mit gewohnheiten belastet. darum passiert es mir immer wieder, dass ich:
https://trac.knallgrau.at/maptoolkit
anstatt:
https://trac.toursprung.com/maptoolkit
schreibe (wer findet den fehler). und, by the way, liebe knallgrau's: ich hab noch immer trac/svn zugang zu euren servern, vielleicht sollte man mich mal rausschmeissen :)
UPDATE: ok, der zugang war eh nimmer da! unnoetig laute schreie meinerseits, aber lang ist's noch nicht her, dass mich rausgehaut habts ;)
hab jetzt grad auf ajaxian einen artikel ueber sproutcore gelesen, und dann auch gleich das tutorial durchgemacht, und ich muss sagen. ich bin begeistert. man kann wie gewohnt eine MVC applikation entwickeln, die dann aber client-seitig laeuft, und die verbindung zum backend passiert einfach ueber JsonRPC. das ganze erinnert mich sehr an das extjs framework, nur dass das look&feel eher an eine apple applikation erinnert!
so denn, ich rate allen man das tutorial durchzumachen, denn u.a. fuer admin-tools ist das ein wirklich tolles framework.
The only way to enforce unique constraints on a database table is by asking the database to do it. Create the table, create the unique constraint, do an insert, and parse the error message if the insert failed, to see if it was a unique constraint violation. Any kind of "select count(*)" before an insert will not work.
This is now available automatically from WebTek.
If the underlying table has any unique constraints, if they are violated, you want to let the user know of this. Unfortunately databases provide unhelpful constraint violation messages such as:
ERROR 1062 (23000): Duplicate entry 'abc' for key 2
In case of multiple constraints on the table, the only way to know which one has been violated is the "key 2" part of the message. The front-end needs to know which field should be highlighted with the error, so the UNIQUE_CONSTRAINTS method in a Model should be defined in your model having a relationship from the "key" in the error message to the column which should be highlighted as having the error in the front-end. For example:
sub UNIQUE_CONSTRAINTS { { 2 => 'name' } }
In the case that the above error is received, an error will be displayed on the "name" field. If the model being defined is MyModel then the following message key will be searched for:
Model.MyModel.name.alreadyexists
(by Adrian)