Ok, wenn du Javascript mit PHP vergleichst, hast du entweder wenig Ahnung von PHP oder wenig Ahnung von Javascript. Und die Ausführung auf dem Client ist doch gerade das Nette an Javascript, es ist rational betrachtet nämlich einfach nur dämlich, bei minimalen Änderungen an der GUI diese komplett neu zu verschicken.Dauerbaustelle hat geschrieben:Beides; wobei zweiteres gewichtiger ist. Javascript (ExtJS) ist saulahm. Und ohne JS gings dann janich.lunar hat geschrieben: Meinst du als Sprache oder stört dich einfach nur die Tatsache, dass es auf dem Client ausgeführt wird?
Admin Interface für SQLAlchemy mit ExtJS
- veers
- User
- Beiträge: 1219
- Registriert: Mittwoch 28. Februar 2007, 20:01
- Wohnort: Zürich (CH)
- Kontaktdaten:
Hi Dauerbaustelle,Dauerbaustelle hat geschrieben:Admininterface für sqlalchemy hört sich gut an. Aber warum Javascript? Das ist doch fast so grottig wie PHP -.-
Hast du dich einmal wirklich mit Javascript befasst und damit eine grössere Anwendung geschrieben? Wenn ja, wo traten praktische Probleme die an Javascript als Sprache lagen auf?
Mit der Aussage das Javascript saulahm ist wäre ich vorsichtig. Zuerst einmal ist Javascript eine Sprache, Sprachen sind nicht lahm oder schnell.
Zum anderen sind derzeit einige sehr schnelle Javascript Implementierungen in Entwicklung. Googles V8 ist vermutlich jetzt schon schneller als Python.
Das Hauptproblem mit Ext, was du vielleicht als "saulahm" bezeichnest ist die Grösse. So kann ich volles ext-build schon 500kb erreichen. Das ist für ein Admin Interface jedoch nicht wirklich ein Problem, zumal ja gecacht wird. Wenn Ext mal geladen ist lässt sich die Anwendung jedoch im ein vielfaches schneller bedienen als eine herkömmliche Webanwendung. Für ein Admin Interface finde ich es auch durchaus ok einen Browser welcher Javascript unterstützt vorauszusetzen.
Jonas
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
-
- User
- Beiträge: 996
- Registriert: Mittwoch 9. Januar 2008, 13:48
@veers, lunar: Ich habe mich durchaus schon ausführlich mit PHP und Javascript befasst und vergleiche die beiden in ihrer Grottigkeit. Wobei Javascript einen Ticken besser ist als PHP. Natürlich ist Javascript oftmals gut, wenn man es sparsam einsetzt, zum Beispiel an Stellen, wo eine Sortierung einer Tabelle stattfindet, oder das Abschicken eines kleinen Formulares, um zum Beispiel einen Eintrag hinzuzufügen usw. Aber das komplette UI mit JS zu erstellen, finde ich aus Barrierefreiheits-Gründen eine schlechte Idee.
Natürlich hat eine Sprache keine Geschwindigkeit. Allerdings dauert zum Beispiel der Aufbau eines Javascript-GUI sehr viel länger, als wenn das Ganze als HTML kommt. Ich meine damit nicht die *Versendezeit*, sondern die *Renderingzeit*.
Natürlich hat eine Sprache keine Geschwindigkeit. Allerdings dauert zum Beispiel der Aufbau eines Javascript-GUI sehr viel länger, als wenn das Ganze als HTML kommt. Ich meine damit nicht die *Versendezeit*, sondern die *Renderingzeit*.
- veers
- User
- Beiträge: 1219
- Registriert: Mittwoch 28. Februar 2007, 20:01
- Wohnort: Zürich (CH)
- Kontaktdaten:
Was ist den an Javascript so grottig?
Kannst du mir erklären warum Javascript nicht Barrierefrei sein soll und wie viele Administratoren mit einer Behinderung als Admin mit deinen Webanwendungen arbeiten?Dauerbaustelle hat geschrieben:Aber das komplette UI mit JS zu erstellen, finde ich aus Barrierefreiheits-Gründen eine schlechte Idee.
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
Glücklicherweise muss ich nicht einer Meinung mit dir sein ...Dauerbaustelle hat geschrieben:@veers, lunar: Ich habe mich durchaus schon ausführlich mit PHP und Javascript befasst und vergleiche die beiden in ihrer Grottigkeit.
-
- User
- Beiträge: 996
- Registriert: Mittwoch 9. Januar 2008, 13:48
Die Semikola, die geschweiften Klammern, die schlechte OO,...veers hat geschrieben:Was ist den an Javascript so grottig?
Schonmal was von MIDs gehört? Von Menschen, die aus Sicherheits bzw. Leistungsgründen JS deaktiviert haben?veers hat geschrieben:Kannst du mir erklären warum Javascript nicht Barrierefrei sein soll und wie viele Administratoren mit einer Behinderung als Admin mit deinen Webanwendungen arbeiten?
Don't hurt the web :'(
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Die Syntax kann man vielen anderen Sprachen auch vorwerfen, jedoch ist JavaScript im zusammenspiel mit HTML sehr praktisch, weil HTML die Whitespaces nicht beachtet. Wenn JavaScript das täte, wäre Entwicklung damit 300% schlimmer. Und die OO ist schlecht weil sie Prototypbasiert ist? Also ist das OO in Io und Self automatisch auch schlecht, obwohl sie OO weiter treiben als Python es tut? Der Argumentation kann ich nicht folgen.Dauerbaustelle hat geschrieben:Die Semikola, die geschweiften Klammern, die schlechte OO,...veers hat geschrieben:Was ist den an Javascript so grottig?
Es geht um ein Admin-Interface da ist es IMHO egal. Wenn deine Seite gefähliches JS einsetzt, dann hast du was falsch gemacht. NoScript hat übrigens auch Whitelists. Und ehrlich, der Leistungsunterschied ohne JS gegenüber dem mit JS ist eher minimal, verglichen mit der Renderzeit der DOM-Elemente.Dauerbaustelle hat geschrieben:Schonmal was von MIDs gehört? Von Menschen, die aus Sicherheits bzw. Leistungsgründen JS deaktiviert haben?
Ich habe zwar auch Einwände gegenüber ExtJS, aber diese sind nicht ideologisch sondern betreffen eher die Erweiterbarkeit. Aber das habe ich mit veers schon off-site diskutiert und wenn sich herausstellt, dass es da akzeptable Lösungen gibt dann bin ich daran schon allein deswegen interessiert weil es ein neuer Ansatz ist, den ich noch nicht gegangen bin.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Der JavaScript-Hass kommt aus den alten guten Tagen, als die Menschen JS nur eingesetzt haben, um nervige Meldungen und blinkenden Text zu erzeugen... Als der Einsatzzweck von Javascript noch relativ... nervig war, sagen wir's mal so. Die Sprache selbst ist total toll oO Find ich... und hat sogar was von Python. Früher hab ich's gehasst, weil JS nur für Mist eingesetzt wurde... jetzt sehe ich Netvibes, die Sachen auf extJS und denke nur noch "Wow". Natürlich hat JavaScript immernoch Einsatzzwecke wo's toll ist... und manche wo's doof ist.
Ich würde jetzt einen Blog nicht voll damit machen... höchstens bei Sachen (wie aufklappbare Listen aus Kategorien oder sowas...) wo man drauf verzichten kann... So das die Seite auch ohne JavaScript benutzbar bleibt.
Aber es gibt eben auch richtige JS-Applikationen. Für die kann man dann Js anschalten oder man benutzt sie nicht. ... der Sprache selbst ist aber imho fast nix vorzuwerfen. Höchstens... sie ist manchmal ein bissel schwer zu lesen, wenn'n Idiot sie schreibt. Aber bei welcher Sprache is's nich so ?
Ich würde jetzt einen Blog nicht voll damit machen... höchstens bei Sachen (wie aufklappbare Listen aus Kategorien oder sowas...) wo man drauf verzichten kann... So das die Seite auch ohne JavaScript benutzbar bleibt.
Aber es gibt eben auch richtige JS-Applikationen. Für die kann man dann Js anschalten oder man benutzt sie nicht. ... der Sprache selbst ist aber imho fast nix vorzuwerfen. Höchstens... sie ist manchmal ein bissel schwer zu lesen, wenn'n Idiot sie schreibt. Aber bei welcher Sprache is's nich so ?
+ Neben genau solchen Einsatzzwecken sieht man auch oft sehr grauenhaften Javascript Code. Ich habe zum Beispiel erst vor kurzem ein einzeiliges und *extrem* langes eval() Monster Monster gesehen. Das macht dann natürlich unheimlich Spaß.Der JavaScript-Hass kommt aus den alten guten Tagen, als die Menschen JS nur eingesetzt haben, um nervige Meldungen und blinkenden Text zu erzeugen... Als der Einsatzzweck von Javascript noch relativ... nervig war, sagen wir's mal so.
Ansonsten wird es auch oft dann eingesetzt, wenn es gar nicht nötig wäre. Bei einem Blog zb will ich kein Javascript sehen. Da will ich bloß eine gute Übersicht haben. Genauso wie ich kein riesengroßes Flash Fenster vor der Nase haben will, wenn ich eine Website öffne. Vielleicht bin ich einfach zu minimalistisch / puristisch für "Web 2.0, die Demokratisierung des Netzes" .
Außerdem ist in dem Sprachennamen "Java" drinne, was einen intuitiv natürlich an eine gewisse Sprache denken lässt, die sicher nicht jedem gefällt
Von Javascript selbst habe ich allerdings keine Ahnung, aber mit Java scheint sie nicht viel gemein zu haben, wenn ich das hier so lese.
Und den Prototypenbasierten OOP Ansatz finde ich toll
Wieso den nicht? Also ich finds genialBlackVivi hat geschrieben:Ich würde jetzt einen Blog nicht voll damit machen...
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Hat es auch nicht. Wurde eigentlich eher als Scheme für den Browser von Brendan Eich entwickelt aber vor dem Release wurde die Syntax verändert. Und aus Mocha wurde erst LiveScript und dann JavaScript um auf den Java-Hype damals aufzuspringen.str1442 hat geschrieben:Von Javascript selbst habe ich allerdings keine Ahnung, aber mit Java scheint sie nicht viel gemein zu haben, wenn ich das hier so lese.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Statt unsäglicher und unnötiger Diskussion über JavaScript würde ich lieber wissen, ob etwas Neues zu diesem Thema gibt. Ich finde die Idee nach wie vor spannend und lieber über mögliche Umsetzungsstrategien reden.
Stefan
Stefan
- veers
- User
- Beiträge: 1219
- Registriert: Mittwoch 28. Februar 2007, 20:01
- Wohnort: Zürich (CH)
- Kontaktdaten:
Ok, Status:sma hat geschrieben:Statt unsäglicher und unnötiger Diskussion über JavaScript würde ich lieber wissen, ob etwas Neues zu diesem Thema gibt. Ich finde die Idee nach wie vor spannend und lieber über mögliche Umsetzungsstrategien reden.
Stefan
Ich hab einen Namen: adminalchemy, oder wie Leonidas vorgeschlagen hat admiralchemy Ich denke der ist passend, es ist sofort klar worum es geht, ohne das es zu offiziell tönt.
Ich hab eine Vorstellung vom UI:
- Header oben, da kann man dann einen Titel oder ein Logo rein packen.
- Links ein Baum, in dem die einzelnen Module (User Management), und Models (User) auswählen kann.
- Rechts ist Platz für ein Grid, mit Toolbar für Aktionen wie Add, Remove, Edit möglicherweise noch weitere. Später könnten hier noch weitere Views wie Trees folgen.
Ich habe eine Vorstellung vom Interface:
- AdminInterface
- Application (Serviert ein AdminInterface via WSGI)
- Model (Abstraktion von SQLAlchemy Mapper)
- Grid (Eine View welche Rechts angezeigt wird)
- Form
- FieldSet
- Field
- NavigationNode
Ich habe ein Modul um aus Python Javascript Objektstrukturen zu erstellen, wovon ich gerade gemerkt habe das ich dieses nicht mehr finden kann.
Und ich habe eine Vorstellung wie sich das Ganze Implementieren lässt. Jedoch bin ich mir nicht so sicher wie gut das ganze dann so funktioniert. Aber das wird sich dann ja zeigen.
Wo ich mir nicht so ganz sicher bin ist ob ich die Logik zum generieren des ExtJS Code in die Daten Objekte packen will, oder in einen separaten Renderer.
Soweit so gut, der nächste Schritt wäre nun mal das Zusammenhacken eines Prototyps, und eines Beispiels. Damit werde ich dann Anfangen sobald ich wieder einigermassen fit bin
- Jonas
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
-
- User
- Beiträge: 13
- Registriert: Sonntag 23. November 2008, 16:18
Hi!
Schaut Euch mal RUM an.
http://rumdemo.toscawidgets.org/
http://toscawidgets.org/documentation/rum/
Ich bin einer der Mitentwickler.
Ich habe vorher schon in DBMechanik/DBSprockets als Contributor/Coautor Erfahrung gesammelt.
RUMs Hauptautor Alberto Valverde hat ein absolut geniales Design entwickelt,
dass es erlaubt RUM-Applikationen leicht anzupassen.
Als JavaScript Framework setzen wir auf Dojo.
Bevor Ihr was Neues anfangt, würde ich Euch herzlich einladen, an dem Projekt mitzuwirken.
Gruß,
Michael
Schaut Euch mal RUM an.
http://rumdemo.toscawidgets.org/
http://toscawidgets.org/documentation/rum/
Ich bin einer der Mitentwickler.
Ich habe vorher schon in DBMechanik/DBSprockets als Contributor/Coautor Erfahrung gesammelt.
RUMs Hauptautor Alberto Valverde hat ein absolut geniales Design entwickelt,
dass es erlaubt RUM-Applikationen leicht anzupassen.
Als JavaScript Framework setzen wir auf Dojo.
Bevor Ihr was Neues anfangt, würde ich Euch herzlich einladen, an dem Projekt mitzuwirken.
Gruß,
Michael
Hm, die Demo-Seite ist gerade unglaublich langsam und wirft bei meinen Versuch, einen Datensatz anzulegen, HTTP 500.
Der Webseite entnehme ich, dass das ganze noch nicht offiziell gelauncht wurde. Mein Tipp wäre, unbedingt eine kurze Feature-Beschreibung und Screenshots und vielleicht ein kleines Tutorial hinzuzufügen. Beantwortet werden sollten die Fragen "Was ist ToscaWidgets" und "Was unterscheidet es von anderen ähnlichen Projekten". Warum ist es besser? Was macht es besonders? Warum sollte ich es einsetzen?
Klicke ich jetzt auf Dcumentation, muss ich mich für eines der gelisteten Projekte entscheiden, ohne eine weitere Entscheidungshilfe geboten zu bekommen. Wähle ich den ersten Link, sehe ich ein Inhaltsverzeichnis, bei dem ich lerne, dass man von "tw.api" importieren soll (nur was?) und das es z.B. unter Core Widgets eine Klasse Widget gibt, doch wozu dient die? Unter Examples sehe ich glue code für verschiendste Rahmenwerke, aber nicht den eigentlichen Beispielcode! Spätestens damit habt ihr mich verloren.
An der Idee mit dem Admin UI für SQLalchemy fand ich übrigens den ExtJS-Aspekt am interessantesten. Somit wäre ToscaWidgets mit Dojo jetzt eher ein Seitenzweig. Gerne würde ich aber hier mehr über das "absolut geniale Design" hören, das da entwickelt wurde.
Stefan
Der Webseite entnehme ich, dass das ganze noch nicht offiziell gelauncht wurde. Mein Tipp wäre, unbedingt eine kurze Feature-Beschreibung und Screenshots und vielleicht ein kleines Tutorial hinzuzufügen. Beantwortet werden sollten die Fragen "Was ist ToscaWidgets" und "Was unterscheidet es von anderen ähnlichen Projekten". Warum ist es besser? Was macht es besonders? Warum sollte ich es einsetzen?
Klicke ich jetzt auf Dcumentation, muss ich mich für eines der gelisteten Projekte entscheiden, ohne eine weitere Entscheidungshilfe geboten zu bekommen. Wähle ich den ersten Link, sehe ich ein Inhaltsverzeichnis, bei dem ich lerne, dass man von "tw.api" importieren soll (nur was?) und das es z.B. unter Core Widgets eine Klasse Widget gibt, doch wozu dient die? Unter Examples sehe ich glue code für verschiendste Rahmenwerke, aber nicht den eigentlichen Beispielcode! Spätestens damit habt ihr mich verloren.
An der Idee mit dem Admin UI für SQLalchemy fand ich übrigens den ExtJS-Aspekt am interessantesten. Somit wäre ToscaWidgets mit Dojo jetzt eher ein Seitenzweig. Gerne würde ich aber hier mehr über das "absolut geniale Design" hören, das da entwickelt wurde.
Stefan
@brickenstein: Guck dir mal ein CSS-Tutorial zum Thema Floats an Auf der Seite http://toscawidgets.org/documentation/rum/ soll "Table of Contents" bestimmt als rechte Spalte um den restlichen Inhalt fließen.
-
- User
- Beiträge: 13
- Registriert: Sonntag 23. November 2008, 16:18
Hi!
Da die Demoseite so langsam ist, verweise ich mal auf ein paar schicke Screenshots:
Toscawidgets sind Seitenelemente und kapseln CSS, HTML/Template und Javascript Resourcen. CSS/JS werden automatischen in den Header hinzugefügt.
Verschiedene Einheiten z.B. Darstellung/Editierung von Werten in RUM werden durch Widgets realisiert.
Insbesondere lassen sich so leicht fortgeschrittene Elemente eingliedern.
In diesem Beispiel, wurden für die Tabelleneinträge
"ExpandableSpans" benutzt:
Klappt auf, wenn man drauf klickt (funktioniert bei enstsprechender Konfiguration auch
für formatierte Inhalte).
http://toscawidgets.org/trac/rum/wiki/E ... ?version=3
Ein anderer schöner Screenshot ist dieser hier:
http://toscawidgets.org/trac/rum/attach ... 12/pil.jpg
Ein binäres Feld wurde als Bild konfiguriert:
Mittels Peak Rules ist der Controller Code erweiter.
Einige dieser Regeln besagen, dass für Binärfelder ein spezieller Controller
eingerichtet wird, der download-Möglichkeiten bietet, bzw. für Bilder sogar
den download einer Preview-Version anbietet (verkleinert mittels PIL).
Dieses System ist komplett durch den Benutzer erweiterbar.
RUM ist in drei Teile geteilt:
Im Herzen:
- RUM, controller, zentrale Architektur, Festlegung des Zusammenspiels
- RUMAlchemy, Implementation eines RUM-Repositories (Datenquelle) mittels SQLAlchemy
- tw.rum, view basierend auf Toscawidgets.
@sma
Wenn Dich der ExtJS am meisten interessiert und Du vielleicht sogar zu Rich Clients neigst, kannst Du auch ohne tw.rum, die serverseitigen Komponenten verwenden, eine Rich Client Anwendung auf RUM aufzubauen. RUM ist darauf designed auch das möglich zu machen:
JSON-Unterstützung ist miteingebaut.
Gruß,
Michael
Da die Demoseite so langsam ist, verweise ich mal auf ein paar schicke Screenshots:
Toscawidgets sind Seitenelemente und kapseln CSS, HTML/Template und Javascript Resourcen. CSS/JS werden automatischen in den Header hinzugefügt.
Verschiedene Einheiten z.B. Darstellung/Editierung von Werten in RUM werden durch Widgets realisiert.
Insbesondere lassen sich so leicht fortgeschrittene Elemente eingliedern.
In diesem Beispiel, wurden für die Tabelleneinträge
"ExpandableSpans" benutzt:
Klappt auf, wenn man drauf klickt (funktioniert bei enstsprechender Konfiguration auch
für formatierte Inhalte).
http://toscawidgets.org/trac/rum/wiki/E ... ?version=3
Ein anderer schöner Screenshot ist dieser hier:
http://toscawidgets.org/trac/rum/attach ... 12/pil.jpg
Ein binäres Feld wurde als Bild konfiguriert:
Code: Alles auswählen
fields.JPEGImage('poster', label=_('Poster in JPEG format'))
Einige dieser Regeln besagen, dass für Binärfelder ein spezieller Controller
eingerichtet wird, der download-Möglichkeiten bietet, bzw. für Bilder sogar
den download einer Preview-Version anbietet (verkleinert mittels PIL).
Dieses System ist komplett durch den Benutzer erweiterbar.
RUM ist in drei Teile geteilt:
Im Herzen:
- RUM, controller, zentrale Architektur, Festlegung des Zusammenspiels
- RUMAlchemy, Implementation eines RUM-Repositories (Datenquelle) mittels SQLAlchemy
- tw.rum, view basierend auf Toscawidgets.
@sma
Wenn Dich der ExtJS am meisten interessiert und Du vielleicht sogar zu Rich Clients neigst, kannst Du auch ohne tw.rum, die serverseitigen Komponenten verwenden, eine Rich Client Anwendung auf RUM aufzubauen. RUM ist darauf designed auch das möglich zu machen:
JSON-Unterstützung ist miteingebaut.
Gruß,
Michael
- veers
- User
- Beiträge: 1219
- Registriert: Mittwoch 28. Februar 2007, 20:01
- Wohnort: Zürich (CH)
- Kontaktdaten:
So, es wird einmal wieder Zeit für ein Status Update.
Zuerst zu RUM: Internal Server Error.
Auch von der Instabilität abgesehen gefällt mir der Ansatz aus verschiedenen Gründen weniger. Wäre aber durchaus Interessiert daran wenn es dann mal toll Funktioniert. Danke für den Hinweis auf jeden Fall!
Ansonsten befinde ich mich immer noch in der Experimentier-/Prototypen- Phase. Mal sehen was daraus wird!
- Jonas
Zuerst zu RUM: Internal Server Error.
Auch von der Instabilität abgesehen gefällt mir der Ansatz aus verschiedenen Gründen weniger. Wäre aber durchaus Interessiert daran wenn es dann mal toll Funktioniert. Danke für den Hinweis auf jeden Fall!
Ansonsten befinde ich mich immer noch in der Experimentier-/Prototypen- Phase. Mal sehen was daraus wird!
- Jonas
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann