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
 Sunday, 26. June 2005 

Gestern abend bin ich ueber dieser Einfuehrung zu Ruby on Rails gehangen, speziell mit der Frage im Kopf, wo bei Helma die Vermittlungshuerden bzw. Eindruckbremser liegen. Offensichtlich ist natuerlich das implizite Object/Relational Mapping. Feine Sache, kann man ohne weiteres in ein zwei Tagen fuer Helma implementieren. Aber das ist gar nicht der groesste Brocken, nein nein nein. Es gibt Probleme, die schwerer wiegen und gleichzeitig viel tiefer drinnen liegen. Allen voran die Zwangshierarchisierung. Ich hab mich gegen die Einsicht gestraeubt, von wegen nice URLs und so, aber genau die stellen einen major Roadblock fuer die Bauphase dar. Nice URLs meinetwegen, aber bitte nur vorn draufgepappt, nicht tief drin im object mapping! Ebenso die Vermanschgerung von object model (aka business logic) und controller/web code, und zwar gleichermassen innen (Java-Code) wie aussen (JS). Generell das Problem, dass JavaScript in seiner gegenwaertingen Form kein standardmaessiges code layout hat, sprich include/import etc, und wir uns halt ein eher suboptimales/unflexibles erfunden haben. Und noch ein paar kleinere Sachen drumherum (z.b. Scaffolding: warum gibt es kein InspectableHopObject als Prototyp zum Subclassen fuer die Bauphase?).

Betrachtet jedenfalls meine Augen als geoeffneter, die Vision fuer Helma 2 als schaerfer denn zuvor. Und ich bin so froh, dass endlich mal wer daherkommt und meine Ideen von vor 10 8 Jahren validiert und korrigiert. Ein wunderbares Gefuehl, endlich was von wem abschauen zu koennen.


 kris , 28. June 2005 gegen 17:23 
du weißt gar nicht, wie geil helma ist. ich ärgere mich seit wochen mit hyperwave rum. die typen benutzen auch serverseitiges javascript, aber mit total komischem objektmodell und undurchschaubarer methapher. Hier mal ein Beispiel, um ein News-Item zu posten.
function newNewsItem() {
   var sequence="10";
   if (request.object.HW_ObjectName) {
     var coll=request.object.NewsCollection;
     // copy rights of of news collection
     out = server.object( { objectidentifier: coll } ); 
     rights = out.object.Rights;     
   } else {
      writeln('Attribute "NewsCollection" is not defined for '  + request.objectpath +".");
      return;
   }
   var out=hw_readFormValues();
   if (out.error.error()) {
      writeln ("Error reading form.");
   } else {
     //check submit button
     if (out.formValues["save"]) {
        var today = new HW_API_Date();
        var itemText=out.formValues["item_text"];
        var itemTitle=out.formValues["item_title"];
        if (itemText == "") {
           writeln ("No text entered. Go back and correct it!");
           return;
        }
        var name="item" + today.time;
        itemObj = new HW_API_Object(
           new HW_API_Attribute("Type", "Document"),
           new HW_API_Attribute("DocumentType", "text"),
           new HW_API_Attribute("Title", itemTitle ),
           new HW_API_Attribute("TitleBase64", encodeBase64(itemTitle) ),
           new HW_API_Attribute("BodyBase64", encodeBase64(itemText) ),
           new HW_API_Attribute("MimeType","text/html"),
           new HW_API_Attribute("Sequence", sequence),
           new HW_API_Attribute("NewsItem", "yes"),
           new HW_API_Attribute("HW_ManageLinks", "none"), 
           new HW_API_Attribute("HW_ObjectName", name),
           new HW_API_Attribute("Rights", rights)
           );
         content= "<HTML><HEAD><META HTTP-EQUIV=Content-Type CONTENT=\"text/html; charset=ISO-8859-1\"></HEAD>\n";
         content += "<BODY><h2>News Item\n";
         content += "You cannot edit this with the usual Hyperwave edit. Use the 'edititem' action.</BODY></HTML>";   
         out = server.insertDocument( { object: itemObj, 
           parentidentifier: coll, 
           content: new HW_API_Content (content) }); 
         if (out.error.error()) {
            writeln ("You do not have he right to post news items.");
         } else { 
            redirect("/"+coll);
         }
      } else {
         if (out.formValues["cancel"]) {
            redirect("/"+coll);
         } else {
            writeln (place("newsitempage"));
         }
      }
   }
}

 hns , 29. June 2005 gegen 13:57 
content = "Ich weiss, Helma ist die beste Erfindung seit den Internets. ";

content += "Aber sogar Helma kann noch besser werden!";
 klemens , 29. June 2005 gegen 19:06 

Keine Ahnung wie umständlich hyperwave is.
Helma is auf jeden fall genial, und Rail rockt das Haus - aber ordenlich!!!
Scaffolding erst recht.

 stephan.schmidt , 6. July 2005 gegen 18:22 

Helma goes Rails. PLEASE!

Log in to add your comment!

Not logged in. Click here to log in.

 comments