![]() |
ENGLISH VERSION |
|
![]() |
Links | | | Forum | | | Kommentare | | | News melden |
![]() |
Chat | | | Umfragen | | | Newsticker | | | Archiv |
![]() |
amiga-news.de Forum > Suche | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
|
||||||
Holger
Nutzer
14.06.2011, 16:56 Uhr [ - Direktlink - ] |
Thema: Cloud Computing auf der Cebit
Brett: Get a Life Zitat:Ich bin bestimmt niemand, der den Anbietern eines Dienstes die Schuld für die Dummheit der Menschen in die Schuhe schieben will, insbesondere in diesem Fall, wo jeder die Wahl hat und auch ohne technisches Verständnis darauf kommen sollte. Also jetzt, nach der Klarstellung, dass es mir nicht um die Schuldfrage geht: glaubst Du wirklich, was Du da oben geschrieben hast? -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
14.06.2011, 16:15 Uhr [ - Direktlink - ] |
Thema: Cloud Computing auf der Cebit
Brett: Get a Life Zitat:Es ist ein Haufen verschiedenster Dinge, die unter dem Namen "Cloud" laufen. Wenn ich mir bei bei "Cloud-Computing" Anbietern (z.B. Amazon) Rechenleistung anmiete, dann ist das Webinterface sekundär. Es handelt sich dann also nicht um Web-Applikationen wie vor zehn Jahren, sondern um Rechenzentren wie vor dreißig/vierzig Jahren. Andererseits gibt es natürlich auch Anbieter von Webservices, die ihre "Web2.0" Angebote jetzt "Cloud" Angebote nennen. Und dann ist da noch die Microsoft-Marketing Tussi, die ihre Urlaubsbilder "ab in die Cloud" lädt, die dann magischerweise perfekt nachbearbeitet zurückkommen ... bzw. nach dem neuen Geschäftsmodell in der Cloud (und als quasi-Eigentum von Microsoft) verbleiben. Aber Microsoft wird schon noch merken, dass es keine gute Idee ist, ihre Cash-Cow, das klassische Desktop-Betriebssystem zu kannibalisieren. -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
10.06.2011, 17:47 Uhr [ - Direktlink - ] |
Thema: Gewinnwahrscheinlichkeit Spiel 77 - hab ich in Mathe gepennt?
Brett: Get a Life Zitat:Hat auch niemand behauptet. Du hast aber offensichtlich den wichtigsten Punkt nicht verstanden: statistisch gesehen gewinnt jeder mal, wenn er lange genug spielt. Nicht zwangsläufig einen Sechser, das ist klar. Aber trotzdem ist für die Frage, ob sich das Spielen langfristig lohnt, nur relevant, wie hoch der Gewinn ist, wenn man mal gewinnt, egal ob das nun ein Dreier oder Vierer ist. Zitat:Falsch. Auch wenn nur Gesamteinsatz/Quote ausgeschüttet wird, kann ein einzelner Spieler mehr als Einsatz/Quote gewinnen, wenn dafür andere deutlich weniger gewinnen. Und genau das ist der Fall, es gewinnt auch im Mittel nicht jeder Spieler gleich viel. Lies Dir einfach nochmal meine anderen Postings in Ruhe durch, bis Du es verstanden hast. -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
09.06.2011, 18:11 Uhr [ - Direktlink - ] |
Thema: Gewinnwahrscheinlichkeit Spiel 77 - hab ich in Mathe gepennt?
Brett: Get a Life Zitat:Hat diese Lotto-Simulation auch die anderen Millionen Mitspieler und deren Verhalten berücksichtigt? -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
09.06.2011, 12:41 Uhr [ - Direktlink - ] |
Thema: Gewinnwahrscheinlichkeit Spiel 77 - hab ich in Mathe gepennt?
Brett: Get a Life @DrNOP: Er hat ja nicht behauptet, dass die Bilanz für jeden Lottospieler zutrifft. Es ist ja vielmehr so, dass man tatsächlich mit einer positiven Bilanz herausgehen kann, wenn man sich verinnerlicht, dass man nicht gegen den Betreiber spielt (der gewinnt immer), sondern gegen die anderen Spieler. Solange es bei denen genügend gibt, die Geburtstage, Glückszahlen oder geometrische Formen auf dem Tippschein ankreuzen und sich somit ihre Quote im Falle eines Gewinnes versauen, kann man theoretisch mit einem Plus rausgehen, wenn man dagegenhält. Die anderen zahlen dann die Zeche. -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
08.06.2011, 15:47 Uhr [ - Direktlink - ] |
Thema: GUI Markup Language
Brett: Programmierung Zitat:Hey, wer hat denn was von „müssen“ gesagt? ![]() Sind doch nur Empfehlungen und die sind auch frei von irgendeiner Reihenfolge. Ich hab sie auch schon genannt. Das eine Thema ist XSL(T), um XML-Dateien mit bestehenden Tools umwandeln zu können. Dokumentation und Tutorials findet man zuhauf, wenn man sucht, z.B. auch hier: http://de.selfhtml.org/xml/darstellung/index.htm Ein mögliches Zwischenziel könnte es sein, die von mir geposteten Beispiele verstehen zu können. Ab da kann man sie auch für eigene Zwecke erweitern. (Natürlich auch gerne hier Fragen stellen) Interessant dürfte das vielleicht auch insofern für Dich sein, dass Du dann auch bemerkst, wo Dein XUI-API Design die Komplexität bei der Umwandlung in die Höhe treibt. Diese Komplexität trifft Dich teilweise auch dann, wenn Du den Prozess in einem eigenen Programm abbilden wolltest, statt einen XSLT-Prozessor zu verwenden. Das zweite Thema ist, wie man seine eigene XML-Sprache formal deklariert. Da gibt es zwei Möglichkeiten, DTD und Schema. Ersteres ist weniger komplex und auch weniger mächtig, hat aber vor allem den Nachteil, nicht XML zu sein. Schema ist dagegen äußerst leistungsfähig, dementsprechend komplexer, entspricht aber, wie bereits gesagt, in Grundzügen dem, wie Du es auch selbst gemacht hättest. Ich denke, Du findest schon passendes Material, wenn Du danach googlest. Zitat:Kommt drauf an, was Du hinterher draus machst. Als Kommunikationsmittel zwischen Programmierern können an Standards angelehnte, modifizierte Sprachen immer noch funktionieren. Existierende Werkzeuge mit Modifikationen zu verwenden, wird dagegen deutlich schwieriger. Aber eigne Dir erst einmal das Wissen an, bevor Du Dich mit der Frage beschäftigst, ob es für Dich ausreicht, modifiziert werden müsste oder womöglich gar nicht brauchbar ist. -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
03.06.2011, 23:05 Uhr [ - Direktlink - ] |
Thema: Backslash-Inflation
Brett: Forum und Interna 'Na' d'as' i'st' d'oc'h 'Su'pe'r. -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
03.06.2011, 23:00 Uhr [ - Direktlink - ] |
Thema: GUI Markup Language
Brett: Programmierung Zitat:Falsche Frage. Wenn Deine Mutter ein Kreuzworträtsel macht, versucht sie dann das Rätsel zu lösen, oder ein eigenes zu erstellen? Und wenn sie wider Erwarten letzteres macht, fängt sie dann an, Papier selber zu schöpfen und eigene Druckertinte zusammenzurühren? Zitat:Mmmh, ich weiß ja, dass Du nicht wirklich eine nützliche Anwendung anstrebst, sondern yet-another-gui-toolkit. Aber selbst für das frage ich mich, ob Du nicht doch Lust hast, selbiges innerhalb Deiner eigenen Lebenszeit fertig zu machen, statt jetzt noch eine XML-Softwaresuite anzufangen, die ebenfalls nie wirklich fertig sein wird. Zitat:Nicht mehr als in jeder anderen Programmiersprache für 68k zu entwickeln. Ob man damit etwas schafft, hängt nicht von der Sprache ab. Zitat:Hehe, machst Du das ganze nicht genau deshalb, um etwas zu lernen? Dann solltest Du aber auch bereit sein, etwas zu lernen. -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
03.06.2011, 17:39 Uhr [ - Direktlink - ] |
Thema: GUI Markup Language
Brett: Programmierung Zitat:Es geht nicht um die Namen, sondern darum, dass Du gerade dabei bist, das Rad neu zu erfinden. Du lehnst das eine ab, mit der Begründung, es sei Dir zu kompliziert (oder was auch immer) und erfindest etwas, dass am Ende dasselbe nur mit anderen Namen (und ein paar strukturellen Fehlern) ist. Der Vorteil, etwas vorhandenes zu nutzen, liegt doch auf der Hand: da haben eine paar Leute, die Ahnung davon haben, sich Gedanken zu gemacht und bereits Lösungen für Probleme geschaffen, die Du noch gar nicht erkannt hast. Du könntest Deine OXML-Beschreibung jemand anderes in die Hand drücken, ohne ihm noch erklären zu müssen, wie bestimmte Dinge gemeint sind, was soweit geht, dass XML-Parser die Beschreibung verstehen und die Richtigkeit einer Datei verifizieren können und XML-Editoren Dir sogar Auto-Completion u.ä. Gimmicks bei der Bearbeitung anbieten können. Klar, kann man auf alles verzichten, die Frage ist nur, warum? Wie bereits festgestellt, kommt bei Deinem eigenen Ansatz auch nichts besseres raus. Nicht mal etwas wirklich anderes. -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
03.06.2011, 17:31 Uhr [ - Direktlink - ] |
Thema: Backslash-Inflation
Brett: Forum und Interna Wenn man Beiträge mit Apostroph postet, wird im Beitrag ein Backslash davor gesetzt, den man aber erst zu Gesicht bekommt, wenn der Beitrag im Thread ist, nicht in der Vorschau. Antwortet man auf einen solchen Beitrag (oder bearbeitet ihn), stellt man hinterher fest, dass auch der Backslash mit einem Backslash versehen wird. Am Schluss sieht das dann so aus: Einmal bearbeitet: http://www.amiga-news.de/forum/thread.php?id=33968&BoardID=7#349616 Darauf dann geantwortet: http://www.amiga-news.de/forum/thread.php?id=33968&BoardID=7#349623 (ca. in der Mitte des Beitrags) Damit keiner sagt, Apostrophe kommen nur selten vor: http://www.amiga-news.de/forum/thread.php?id=33075&BoardID=2&start=91#349466 http://www.amiga-news.de/forum/thread.php?id=33075&BoardID=2&start=91#349592 (hier gleich drei in einem Beitrag) Und es gibt noch ein paar mehr, alles aus den letzten Tagen. Sonst wär's mir gar nicht aufgefallen. (Ups schon wieder...) -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
03.06.2011, 17:23 Uhr [ - Direktlink - ] |
Thema: Kommentare nur mit Login
Brett: Forum und Interna Zitat:Da es in der Vergangenheit auch schon Fälle gab, dass ein Administrator auf einen anonymen, noch nicht freigeschalteten Kommentar antwortete, und die "Normalsterblichen" eine Antwort zu einer noch nicht lesbaren Frage sahen, sehe ich das nicht so eng. Die Länge der Verzögerung wäre halt Glückssache. -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
03.06.2011, 17:18 Uhr [ - Direktlink - ] |
Thema: Test
Brett: Forum und Interna xyzabcxyz -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
03.06.2011, 17:13 Uhr [ - Direktlink - ] |
Thema: Test
Brett: Forum und Interna 'Bla' -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
03.06.2011, 17:11 Uhr [ - Direktlink - ] |
Thema: GUI Markup Language
Brett: Programmierung Zitat:Ersetze "ENTITY" durch "element" und "ATTR" durch "attribute" und bist sehr nah an dem, wie es in Schema definiert wird. Nur dass Schema all die Dinge berücksichtigt, die Du noch vergessen hast. Wie z.B., wie man definiert, dass ein bestimmtes Element auch unterhalb eines weiteren Elements erscheinen darf oder wie man ganz einfach deklariert, dass sich ein bestimmtes Element im wesentlichen genauso wie ein bestimmtes anderes verhalten soll, also zum Beispiel, wie man sagt, dass für "HORIZ" genau die gleichen Regeln wie für "VERT" gelten. -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
03.06.2011, 17:04 Uhr [ - Direktlink - ] |
Thema: GUI Markup Language
Brett: Programmierung Zitat:Bei XML-Sprachen kann es durchaus auch vorkommen, dass ein Element in mehr als einem Parent-Typen vorkommen darf. So darf z.B. Item sowohl in Menu als auch in Item vorkommen, sofern man kein spezielles SubItem Element einführt. Somit gibt es schon in diesem Beispiel zwei mögliche Parents. Ich bevorzuge beim Design solcher Schnittstellen, die Diversifizierung der Elemente zu reduzieren und dadurch weniger Regeln zu erzeugen. Weniger Regel heißt, weniger Code zum Überprüfen und weniger mögliche Fehler. Das heißt, wenn ein Item hier letztendlich ein Art von Aktion beschreibt, warum dann nicht ein Action-Element definieren, das je nach Kontext unterhalb von Menu ein Menu-Item, unterhalb von Toolbar ein Toolbar-Item und überall sonst ein Button erzeugt? Dann braucht man nicht drei unterschiedliche Elemente, die nur an bestimmten Orten erlaubt sind, sondern nur eines, das nahezu überall erlaubt ist: weniger Regel, weniger mögliche Fehler. Und wenn man noch die unsäglichen Präfixe abschafft, würde sich der Code auf einen Bruchteil reduzieren. Entweder Tags haben unterschiedliche Bedeutung und somit auch unterschiedliche Namen oder sie meinen das Gleiche und können auch gleich heißen. In jedem Fall kommt man ohne Präfixe aus. Also, wozu ein oxTA_text Tag und ein oxLabA_text Tag, wenn beide eh dasselbe meinen, nämlich Text, womit ein einziges ox_text ausreichen würde? Im Grund ist oxWA_title auch dasselbe in Grün. Wenn man dann noch eine konsistente Groß-/ Kleinschreibung einhalten würde, wäre das Skript zur XML-Asm Konvertierung schätzungsweise ein Fünfzeiler... -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
03.06.2011, 16:47 Uhr [ - Direktlink - ] |
Thema: GUI Markup Language
Brett: Programmierung Zitat:Welche Tools sollen das sein? Wenn Du bestehende Tools verwenden willst, musst Du auch eine bestehende Beschreibungssprache verwenden. Natürlich kannst Du auch auf die Verifizierung verzichten, dann erzeugt eine fehlerhafte GUI-Beschreibung eben auch fehlerhaften Code. In Projekten mit überschaubaren Rahmen kann man auch mit dem shit-in-shit-out Prinzip etwas zustande bringen. Zitat:Zu welchem Zweck? Um das selber zu programmieren, was die schon existierenden Tools mit dem hier schon geposteten Skript frei Haus liefern? Zitat:Dafür gibt's im Aminet sogar zwei, expat und libxml. Guckst Du einfach mal unter http://aminet.net/search?query=XML -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
02.06.2011, 10:50 Uhr [ - Direktlink - ] |
Thema: GUI Markup Language
Brett: Programmierung Zitat:Das kannst Du haben, halte ich aber nicht für sinnvoll. Was willst Du mit einem leeren Label? Wenn Du ihn mit Code füllen willst, solltest Du das in einer anderen Datei tun, als der, die bei der nächsten Änderung der XML-Datei übergebügelt wird. Zitat:Klar, aber momentan braucht es gar keine eigenen Regeln, von den Präfixen und ein paar Inkonsistenzen in Deiner Definition abgesehen. Zitat:Grundsätzlich denke ich schon, dass das geht. Es verkompliziert das Ganze allerdings und das ohne jeglichen Mehrwert. Wenn Du eine XML-Datei als Ausgangsbasis hast, solltest Du auch nur diese als Source-Code ansehen und den Assembler-Code als Zwischenschritt, der nicht unbedingt perfekter Lesbarkeit genügen muss. Zitat:Es lohnt sich durchaus, dafür Schema zu verwenden (erlernen). Wenn Du Deine Syntax mit einem XML-Schema beschreibst, kann der Parser auch überprüfen, ob die Eingangsdatei gemäß dieser Beschreibung korrekt ist. XSLT tut das nicht, was allerdings auch gut so ist, denn das vereinfacht die Transformation erheblich, weil man sich nur auf das jeweilige Ziel-Format konzentrieren kann. Zitat:Das ist für die Transformation gar nicht relevant, da deren Aufgabe, wie gesagt, nicht das Verifizieren der Struktur ist. Der Vorteil zeigt sich genau hier, weil die Erweiterung nur minimale Änderungen erfordert (rot hervorgehoben): code:<?xml version="1.0" encoding="iso-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="text" encoding="ISO-8859-1" indent="no"/> <xsl:template match="/"> <xsl:apply-templates select="." mode="tags"/> <xsl:apply-templates mode="strings"/> </xsl:template> <xsl:template match="*" mode="tags"> <xsl:variable name="n" select="name()"/> .<xsl:value-of select="concat($n,generate-id())"/> <xsl:apply-templates select="@*" mode="tags"/> <xsl:apply-templates mode="ref"/> dc.l TAG_END <xsl:apply-templates mode="tags"/> </xsl:template> <xsl:template match="@*" mode="tags"> dc.l ox<xsl:apply-templates select="parent::node()" mode="prefix"/>_<xsl:value-of select="concat(name(),',',.)"/> </xsl:template> <xsl:template match="@senschar" mode="tags"> dc.l oxChkA_senschar,"<xsl:value-of select="."/>" </xsl:template> <xsl:template match="@RELPTR" mode="tags"> dc.l OX_<xsl:value-of select="concat(name(),',',.)"/> </xsl:template> <xsl:template match="@title|@text" mode="tags"> dc.l ox<xsl:apply-templates select="parent::node()" mode="prefix"/>_<xsl:value-of select="concat(translate(name(), 'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ'), ',.',name(),generate-id())"/> </xsl:template> <xsl:template match="*" mode="ref"> dc.l OX_<xsl:value-of select="concat(name(),',.',name(),generate-id())"/> </xsl:template> <xsl:template match="MENU/ITEM|ITEM/ITEM" mode="ref"> dc.l ox<xsl:apply-templates select="parent::node()" mode="prefix"/>_item,.<xsl:value-of select="concat(name(),generate-id())"/> </xsl:template> <xsl:template match="*" mode="strings"> <xsl:for-each select="@title|@text"> .<xsl:value-of select="concat(name(),generate-id())"/> dc.b "<xsl:value-of select="."/>",0</xsl:for-each> <xsl:apply-templates mode="strings"/> </xsl:template> <!-- tag id prefixes --> <xsl:template match="WINDOW" mode="prefix">WA</xsl:template> <xsl:template match="HORIZ|VERT" mode="prefix">GA</xsl:template> <xsl:template match="FRAME" mode="prefix">FrA</xsl:template> <xsl:template match="TITLE" mode="prefix">TA</xsl:template> <xsl:template match="PLANEVIEW" mode="prefix">???????</xsl:template> <xsl:template match="CHECK" mode="prefix">ChkA</xsl:template> <xsl:template match="LABEL" mode="prefix">LabA</xsl:template> <xsl:template match="MENU" mode="prefix">MA</xsl:template> <xsl:template match="ITEM" mode="prefix">MIA</xsl:template> <!-- ignore text pi and so on --> <xsl:template match="node()" mode="ref" priority="-1"/> <xsl:template match="node()" mode="tags" priority="-1"/> <xsl:template match="node()" mode="strings" priority="-1"/> </xsl:stylesheet> -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
02.06.2011, 01:44 Uhr [ - Direktlink - ] |
Thema: GUI Markup Language
Brett: Programmierung Zitat:Ach, das geht schon. Der initiale Aufwand ist etwas hoch und die XSLT-Sprache etwas gewöhnungsbedürftig. Aber das Ding verarbeitet schon beliebige Elemente und Attribute und braucht nur geringfügige Änderungen für Erweiterungen. Ein weiteres textuelles Attribut muss z.B. nur an der richtigen Stelle namentlich eingefügt werden, ohne weiteren Code zu benötigen. Zitat:Ja, das hab ich, glaube ich, dreimal erwähnt ![]() Zitat:Du wirst es nicht glauben, aber genau das ist schon drin. Irgendwie habe ich das Kunststück fertig gebracht, den Output einer älteren Fassung zu posten, obwohl das XSLT darüber schon fertig und getestet war. Deshalb habe ich auch nicht noch mal auf den Output drauf geschaut. Aber wenn Du in das XSLT schaust, wirst Du etwas von "prefix" lesen. Und wenn Du es ausprobierst, wirst Du auch die gewünschten Attribute sehen. -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
02.06.2011, 01:30 Uhr [ - Direktlink - ] |
Thema: GUI Markup Language
Brett: Programmierung Zitat:Der Parser ist ein generischer XML-Parser und bekommt, so man denn verifizieren will, eine DTD oder ein Schema vom Programm, und akzeptiert somit nur, was das Programm verarbeiten kann. Prinzipiell kann man aber auch eine Syntax für beliebige Erweiterungen definieren, deren Code man dann laden kann. Wenn Programme beliebige Plugins laden können, die sich nur dadurch auszeichnen, dass ihr Code in einem bestimmten Verzeichnis liegt, warum dann nicht auch Erweiterungen, die anhand einer XML-Deklaration beschrieben werden... Zitat:Das ist eine grundsätzliche Frage. Vertraut man dem Benutzer, für den man das Programm ja schreibt, oder geht man den Apple-Weg. Angesichts dessen, was Benutzer auf dem Amiga schon via Patches Programmen untergejubelt haben, sind via XML konfigurierbare GUIs eher harmlos. Die Programmstabilität leidet nicht unter einem GUI, das via XML beschrieben wird. Das GUI besteht unabhängig von der Quelle seiner Beschreibung immer nur aus einem Layout von vordefinierten Komponenten. Ob Button A links oder rechts von Button B liegt, hat keine Auswirkungen auf die Programmlogik. Das Programm muss nur vor dem Übernehmen einer GUI-Beschreibung verifizieren, dass für alle in der XML-Datei definieren Bindungs (Aktionen, Datenquellen, etc.) auch wirklich eine Entsprechung im Programm bekannt ist und dass für bestimmte Programmaktivitäten auch ein zugehöriges GUI-Element definiert wurde. Mindestens das Zurücksetzen des GUIs auf den Default, bzw. das erneute Laden eines anderen GUIs sollte im jeweiligen GUI möglich sein. -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
02.06.2011, 01:16 Uhr [ - Direktlink - ] |
Thema: GUI Markup Language
Brett: Programmierung Nachtrag: Ich hab's natürlich auch mal auf nem Amiga getestet, Systemunabhängigkeit hin oder her ![]() Hiermit: http://aminet.net/package/text/misc/xsltproc funktioniert es. Es werden zwar im Vergleich zu anderen Prozessoren ein paar zusätzliche Zeilenumbrüche generiert, aber die tun ja nicht weh. -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
02.06.2011, 01:05 Uhr [ - Direktlink - ] |
Thema: GUI Markup Language
Brett: Programmierung Zitat:Das vermischt zwei Dinge. Schema wäre das, was in einer XML-Syntax beschreibt, welche Elemente und Attribute existieren und wo sie erlaubt sind, bzw. welche Werte für de Attribute gültig sind. XSLT beschreibt, wie eine gültige XML-Datei in eine andere Form transformiert werden soll. Für das, was Du oben beschrieben hast, sähe eine mögliche XSLT-Datei so aus: XSLT code:Sie weicht in ein paar Punkten ab. Zum einen überlässt sie das Generieren der Label-IDs dem jeweils verwendeten Prozessor, das müssen somit nicht zwangsläufig laufende Nummern sein. Zum anderen habe ich alle String-Definitionen an Ende hinter die Tags gelegt. Das halte ich für sinnvoller als Strings und Tags zu mischen und alle naselang potentiell Padding-Bytes einzufügen. Durch die Trennung sind alle Tags 4-byte aligned, sofern der erste 4-byte aligned ist und das ohne ein einziges padding-byte.<?xml version="1.0" encoding="iso-8859-1"?> <?xml version="1.0" encoding="iso-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="text" encoding="ISO-8859-1" indent="no"/> <xsl:template match="/"> <xsl:apply-templates select="." mode="tags"/> <xsl:apply-templates mode="strings"/> </xsl:template> <xsl:template match="*" mode="tags"> <xsl:variable name="n" select="name()"/> .<xsl:value-of select="concat($n,generate-id())"/> <xsl:apply-templates select="@*" mode="tags"/> <xsl:apply-templates mode="ref"/> dc.l TAG_END <xsl:apply-templates mode="tags"/> </xsl:template> <xsl:template match="@*" mode="tags"> dc.l ox<xsl:apply-templates select="parent::node()" mode="prefix"/>_<xsl:value-of select="concat(name(),',',.)"/> </xsl:template> <xsl:template match="@senschar" mode="tags"> dc.l oxChkA_senschar,"<xsl:value-of select="."/>" </xsl:template> <xsl:template match="@RELPTR" mode="tags"> dc.l OX_<xsl:value-of select="concat(name(),',',.)"/> </xsl:template> <xsl:template match="@title|@text" mode="tags"> dc.l ox<xsl:apply-templates select="parent::node()" mode="prefix"/>_<xsl:value-of select="concat(translate(name(), 'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ'), ',.',name(),generate-id())"/> </xsl:template> <xsl:template match="*" mode="ref"> dc.l OX_<xsl:value-of select="concat(name(),',.',name(),generate-id())"/> </xsl:template> <xsl:template match="*" mode="strings"> <xsl:for-each select="@title|@text"> .<xsl:value-of select="concat(name(),generate-id())"/> dc.b "<xsl:value-of select="."/>",0</xsl:for-each> <xsl:apply-templates mode="strings"/> </xsl:template> <!-- tag id prefixes --> <xsl:template match="WINDOW" mode="prefix">WA</xsl:template> <xsl:template match="HORIZ|VERT" mode="prefix">GA</xsl:template> <xsl:template match="FRAME" mode="prefix">FrA</xsl:template> <xsl:template match="TITLE" mode="prefix">TA</xsl:template> <xsl:template match="PLANEVIEW" mode="prefix">???????</xsl:template> <xsl:template match="CHECK" mode="prefix">ChkA</xsl:template> <xsl:template match="LABEL" mode="prefix">LabA</xsl:template> <!-- ignore text pi and so on --> <xsl:template match="node()" mode="ref" priority="-1"/> <xsl:template match="node()" mode="tags" priority="-1"/> <xsl:template match="node()" mode="strings" priority="-1"/> </xsl:stylesheet> Ein Resultat der Transformation (in diesem Fall mit Xalan) Deiner oben geposteten XML-Datei würde so aussehen: Assembler code:Übrigens können auch Webbrowser XML+XSLT verarbeiten. Wenn Du <?xml-stylesheet type="text/xsl" href="ui2asm.xsl"?> an den Anfang Deiner XML-Datei schreibst, versuchen sie die XSLT-Datei zu verwenden, um die XML-Datei darzustellen. Wenn obige XSLT-Datei unter dem Namen ui2asm.xsl abgespeichert wurde, zeigt der Browser also den Assembler-Code an (habe ich mit Firefox und Internet Explorer getestet)..WINDOWN65538 dc.l OX_RELPTR,g_pic_window dc.l oxWA_layout,TRUE dc.l oxWA_TITLE,.titleN65542 dc.l oxWA_undermouse,TRUE dc.l OX_VERT,.VERTN65545 dc.l TAG_END .VERTN65545 dc.l OX_TITLE,.TITLEN65547 dc.l OX_FRAME,.FRAMEN65550 dc.l OX_HORIZ,.HORIZN65559 dc.l TAG_END .TITLEN65547 dc.l oxTA_TEXT,.textN65548 dc.l TAG_END .FRAMEN65550 dc.l oxFrA_hprop,TRUE dc.l oxFrA_style,bevel dc.l oxFrA_vprop,TRUE dc.l OX_PLANEVIEW,.PLANEVIEWN65555 dc.l TAG_END .PLANEVIEWN65555 dc.l OX_RELPTR,g_picview dc.l TAG_END .HORIZN65559 dc.l oxGA_spaceprop,FALSE dc.l OX_CHECK,.CHECKN65562 dc.l OX_LABEL,.LABELN65567 dc.l TAG_END .CHECKN65562 dc.l OX_RELPTR,g_zoom_check dc.l oxChkA_hook,zoom_hook dc.l oxChkA_senschar,"z" dc.l TAG_END .LABELN65567 dc.l oxLabA_linechar,1 dc.l oxLabA_TEXT,.textN65569 dc.l TAG_END .titleN65542 dc.b "Memory Monitor",0 .textN65548 dc.b "bitplane",0 .textN65569 dc.b "zoom",0 -- Edit: Doppelung entfernt [ Dieser Beitrag wurde von Holger am 02.06.2011 um 09:56 Uhr geändert. ] |
|||||
Holger
Nutzer
01.06.2011, 22:52 Uhr [ - Direktlink - ] |
Thema: GUI Markup Language
Brett: Programmierung Zitat:Man kann es beispielsweise ändern, ohne das Programm neu übersetzen zu müssen. Das ermöglicht es auch, dass User für ihre Umgebung angepasste GUIs erzeugen können, somit kann ein Programm sowohl für 640x256, als auch 1680x1050 das optimale GUI anbieten. Zitat:Dafür gibt es IDs. Zitat:Ja, und genau diese Informationen musst Du liefern, wenn Dir jemand so einen Compiler schreiben soll. Zitat:Dann solltest Du die Art und Weise, wie Du den Compiler schreiben wolltest, noch mal überdenken. Ein XSLT-Prozessor mit verifizierendem XML-Parser liefert Dir das alles frei Haus, sofern Du eine DTD oder ein Schema und natürlich das XSLT-Skript definierst. -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
01.06.2011, 22:43 Uhr [ - Direktlink - ] |
Thema: GUI Markup Language
Brett: Programmierung Zitat:Nicht wirklich. Wenn man mal versucht hat, ein komplexes GUI damit zu bauen, merkt man sehr schnell, dass es eine Krücke ist, die ein Sprachelement, das nicht mal richtiges C ist (Präprozessor) für etwas zu missbrauchen, für das es niemals gedacht war (hierarchische Datenstrukturen definieren). Nicht falsch verstehen, dass ganze ist im Rahmen des Möglichen wirklich gut, der Rahmen des Möglichen ist halt leider sehr begrenzt. Eine sorgfältig entworfene XML-Anwendung wäre dafür definitiv sinnvoll, auch deshalb, weil es systemübergreifend diverse nützliche Werkzeuge dafür gibt, und eine Transformation innerhalb weniger Stunden implementiert, wenn man XSLT verwenden würde. Und aus einer Beschreibung Code für verschiedene Toolkits generieren zu können, wäre auch nicht unbedingt schlecht. -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
01.06.2011, 12:41 Uhr [ - Direktlink - ] |
Thema: OS 4.1 classic Bildstörungen auf Bildschirm
Brett: Amiga, AmigaOS 4 Zitat:Das wäre ja traumhaft, wenn es nur das wäre. Aber es kommt noch hinzu, dass er konstruktive Vorschläge nicht umsetzt, sondern stattdessen irgendwelche abstrusen Aktionen durchführt, zu denen niemand geraten hat, und dann mit neuen Problemen kommt, die vorhersehbare Folgen eben jener Aktionen sind und außerdem gerne mit einer ihm eigenen Logik widerspricht, wenn ihm jemand etwas zu erklären versucht. -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
31.05.2011, 11:57 Uhr [ - Direktlink - ] |
Thema: Facebook-Client
Brett: Amiga, AmigaOS 4 Zitat:Ein "Widget" ist auch nur eine Mini-Webseite in einem Mini-Webbrowser. -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
31.05.2011, 11:56 Uhr [ - Direktlink - ] |
Thema: Stargate Universe Petition
Brett: Get a Life Zitat:Ja, unter der Annahme ist das natürlich zweifelsohne richtig. Solange wir aber keine Vollbeschäftigung haben, kann man genausogut immer annehmen, dass für einen in Rente gehenden ein Ersatz zur Verfügung stünde, der dann, statt HartzIV zu beziehen, in die Rentenkasse einzahlen würde. Unter dieser Betrachtung wäre eine Anhebung des Rentenalters volkswirtschaftlich eher kontraproduktiv. In Wahrheit ist natürlich weder das eine noch das andere ausreichend, um alle zu erwartenden Effekte wirklich vorherzusagen. Ich würde es halten, wie in der Medizin: wenn man weder vorhersagen kann, ob und welcher Schaden ohne einen Eingriff zu erwarten ist, noch ob und welcher Nutzen wirklich durch den Eingriff entsteht, dann lässt man den Eingriff, der immer mit einem Risiko behaftet ist, bleiben. Und nutzt die gesparten Ressourcen für Änderungen, die wirklich etwas bringen. -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
31.05.2011, 11:49 Uhr [ - Direktlink - ] |
Thema: KillCD0 will nicht ...
Brett: Amiga, AmigaOS 4 Zitat:Das funktioniert nur, wenn die CDs kein eigenes Icon besitzen. Zitat:DefIcons gab es schon vor AOS3.5, d.h. es gibt eine AOS2.0-AOS3.1 Version. Die ist Bestandteil von NewIcons: aminet.net/package/util/wb/NewIcons46 Zitat:Kann ich nachvollziehen. Hast Du es schon mal mit ASSIGN CD0: DISMOUNT versucht? Ich weiß jetzt gerade nicht, ab welcher OS-Version das funktioniert... Zitat:Es ist kein Instruction Cache im allgemeinen Sinne. Er kann ausschließlich kleine Schleifen beschleunigen. Anderes würde bei dieser Größe auch keinen Sinn ergeben. Aber ich geh davon aus, dass er automatisch aktiv wird, wenn die CPU eine passende Schleife ausführt. -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
30.05.2011, 10:42 Uhr [ - Direktlink - ] |
Thema: Facebook-Client
Brett: Amiga, AmigaOS 4 Zitat:Ich glaube, das nennt sich "Webbrowser". Möglicherweise verwechselst Du den Amiga auch gerade mit iPhone/iPad. Beim Amiga braucht man nicht für jede Webseite eine eigene "Äpp". -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
30.05.2011, 10:38 Uhr [ - Direktlink - ] |
Thema: KillCD0 will nicht ...
Brett: Amiga, AmigaOS 4 Zitat:Und das ist nicht unbedingt gut. Meldet man denselben Datenträger mit verschiedenen Versionen oder Implementierungen desselben Dateisystems an, so haben die resultierenden Volumes den gleichen Namen und den gleichen Diskkey, dass heißt, können nur noch unterschieden werden, wenn man sie über den Namen des Laufwerks anspricht. Sollten sich auf der CD Programme, Icons, Skripte, etc. befinden, die absolute Pfade verwenden, funktionieren diese nicht dann mehr. -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
Holger
Nutzer
30.05.2011, 10:25 Uhr [ - Direktlink - ] |
Thema: Stargate Universe Petition
Brett: Get a Life Zitat:Und das vollkommen unabhängig davon, ob der Gesetzgeber Rente mit 65 oder Rente mit 67 als Standard festgelegt hat. Zitat:Warum hat er es denn gesagt? Selbstverständlich hat er es deshalb gesagt, weil er a) den Leuten einreden will, ein per Gesetz höher gelegtes Rentenalter hätte damit etwas zu tun und/oder b) die Leute ihm jetzt auch noch dankbar dafür sein sollen, dass sie jetzt zum höheren Renteneintrittsalter gezwungen werden. Zitat:Unter diesem Gesichtspunkt hat der Politiker wohl versagt, wenn man erst einmal jemanden wie Dich braucht, der den Leuten erklärt, wie die Rede zu verstehen ist, damit sie wirksam verarschen kann, statt, zumindest Deiner Meinung nach missverständlich, sofort durchschaut zu werden. -- Good coders do not comment. What was hard to write should be hard to read too. |
|||||
|
![]() |
Impressum |
Datenschutzerklärung |
Netiquette |
Werbung |
Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten. |
![]() |