henso.com
Home
Archive
Search

rss feed for this page

DELI
HLM

LNGR
EURN
OON
CHLM
POOL
ELPH
RIST
SOFA
SENS
P3K
FM4
SCRP
MAL
RNS
GDNY
ELEG
OSNS
SLSH

Mozilla, baby!

antville.org
 Thursday, 12. June 2008 

Greasemonkey builds für Firefox 3. Ich bin schon fast wahnsinnig geworden, weil weder ohne Greasemonkey noch ohne Firefox 3 halt ichs noch aus.

lnk ~ cmt
 Friday, 6. June 2008 

I bins, der Konrad Plautz!

lnk + 3 cmt (chris, snivlem, hns)
 Tuesday, 3. June 2008 

Juhu!

lnk + 6 cmt (...s...t...e...f...a...n..., matthias, robi42, hns, rolandk)
 Sunday, 11. May 2008 

var __global__ = this; var scope = {}; scope.__parent__ = null; scope.__proto__ = __global__; eval("var foo = 'bar'", scope); scope.foo;

lnk ~ cmt
 Friday, 9. May 2008 

Das mit der Portierbarkeit schaut gar nicht so schlecht aus. Und noch nie habe ich mich über Testergebnisse mit so viel Rot drin so gefreut. Scherz beiseite, ich glaube es ist ein grosser Vorteil, ein Test-Framework (fast) vom Anfang an dabei zu haben.

lnk ~ cmt

Das heutige Code-Snippet zeigt ein paar neue feine NG-Features: Das Scripten von Java-Klassen (courtesy of Jürg Lehnis Code), vernünftiges Loopen durch den Inhalt einer Java-Map mittels Iterator und Array Comprehension. Here we go, Fragen in den Kommentaren sind wie immer willkommen.

hannes@x20:~/svn/helma-ng$ java -jar shell.jar 
helma> importModule('helma.rhino');
helma> var Map = helma.rhino.extendJavaClass(java.util.Map);
helma> Map.prototype.__iterator__ = function() { 
     >   return Iterator(this.entrySet());
     > };
helma> var map = new java.util.HashMap();
helma> map.put("foo", "bar");
helma> map.put(1, 2);
helma> map.put("me", "you");
helma> map
{1.0=2.0, me=you, foo=bar}
helma> [entry.key for (entry in map)];
1,me,foo
helma> [entry.value for (entry in map)];
2,you,bar

(Nicht sachdienliches Feedback von der Shell hab ich weggelassen, das nur zur Information.)

Ich glaub mit dem Javateil bin ich fertig für 0.2. Jetzt testen und dokumentieren und das eine oder andere Modul portieren. Es gibt übrigens eine Mailingliste für NG (die alte helma-dev Liste wird stillgelegt), und das trac ist auch bereit.

Noch ein cooles Beispiel, destructuring assignment in for loops, direkt von hier geklaut:

helma> var obj = { width: 3, length: 1.5, color: "orange" };
helma> for (var [name, value] in Iterator(obj)) {
     >   writeln(name, "is", value);             
     > }
color is orange
width is 3
length is 1.5
lnk + 6 cmt (matthias, hns)
 Thursday, 8. May 2008 

Antville 1.2. Sehr schön, und Gratulation an Tobi, der das alles alleine durchgezogen hat.

lnk ~ cmt
 Wednesday, 7. May 2008 

Das Treffen gestern war super. Danke allen, die dabei waren.

Lustigerweise habe ich heute was am Laufen, wovon ich gestern sagte dass es nicht gehen würde. Es ist nämlich so, dass mich heute Chris Zumbrunn im Büro besucht und bei einer Melange die fehlende Kompatibilität zwischen Helma 1 und NG beklagt hat, und da haben wir uns entschlossen, etwas zu probieren.

Ein paar Stunden später hatten wir eine kleines Modul, das alle Scripts in einem Verzeichnis reinschlürft, daraus einen Prototypen baut und einen Constructor zurückliefert. Die damit erzeugten Objekte können actions ausführen, haben eine renderSkin()-Methode, die skins im Prototype-Verzeichnis rendert und Macros im selben Objekt mittels _macro suffix aufspürt.

Was halt noch fehlt ist wie gehabt das ganze ORM-Zeug. Aber hey, für ein paar Stunden Arbeit ist das schon vielversprechend. 100%ige Kompatibiltät wird's nicht geben, und das ist auch nicht das Ziel. Aber eine Portierung kleinerer Apps oder einzelner Module mit vertretbarem Aufwand, das sollte drin sein.

All das ist noch nicht im SVN. Performance ist übrigens vergleichbar mit Helma 1.6.2.

lnk ~ cmt

Not logged in. Click here to log in.

 comments