Sunday, 17. June 2007
Das Zeichnen von Niveaulinien sind nur eine Möglichkeit, den Graphen einer reellen Funktion in zwei Veränderlichen zu visualisieren. Beeindruckender, aber schwieriger zu erstellen, sind hierfür Oberflächendiagramme. Auch diese sind mit Graphpak einfach und schnell zu erstellen, allerdings nicht ganz so einfach wie zweidimensionale Plotts.
SURFACE heißt der Graphpak-Retter in der Not, sich dreidimensionale Graphen zu veranschaulichen:
'' SURFACE(0 TO 1,0.01)∘.F 0 TO 1,0.01
Ein wenig mehr Arbeit als für das Niveaulinien-Diagramm muss man in die Beschriftung der Achsen investieren:
50 100 SLBLX 0.5 1
50 100 SLBLY⌽0 0.5
Schön wäre es an dieser Stelle, ein wenig Interaktivität einführen zu können: Klick auf das Diagramm, um es dann per Ziehen mit der Maus um eine beliebige Achse zu drehen. Betrachtet man die Geschichte der Entwicklung von Graphpak, versteht man, warum dies wohl ein Traum bleiben wird.
Tuesday, 12. June 2007
Werden mehr als einmal Niveaulinien für Funktionen erstellt, empfiehlt sich die beschriebene Sequenz von APL2-Anweisungen in einem Operator zu verewigen. Als Operand dient die zu plottende Funktion, in der Regel also eine dyadische Funktion mit numerischen Argumenten und numerischem explizitem Ergebnis.
Damit hätten wir folgende Anweisungen zum Zeichnen der Linien für die Höhen c der Funktion f: x (c NIVEAU f) y oder (c NIVEAU f) x y oder (c NIVEAU f) x für x=y.
Im Operator selbst stecken neben Zeilen zum Verständnis der Argumente der abgeleiteten Funktion nur noch die bereits beschiebenen Statements für die Konturen und der beschrifteten Achsen.
Das vereinfacht die Erstellung dieser Höhenlinien doch erheblich:
c←0.02 0.04 0.06 0.08 0.1 0.12 0.140625
(c NIVEAU f) 0 TO 1, 0.01
Allerdings sind diese zwei Zeilen nicht vollständig für die Linien in nebenstehendem Diagramm verantwortlich. Mit SPLOT habe ich noch die beiden blauen Linien eingezeichnet. SPLOT ist PLOT mit linkem Argument, und dies ist in diesem Fall unverzichtbar:
"Operator mit Niveau" vollständig lesen
Monday, 11. June 2007
Einfache Liniendiagramme, die Erstellung von Graphen für Funktionen in einer reellen Variablen, sind mit Graphpak mehr als trivial. Ein oder zwei Zeilen, und schon sehe ich den Funktionsverlauf, so kompliziert die Funktion auch sein mag.
Die Darstellung von Funktionsfolgen ist kaum schwieriger:
x←¯10 to 10,0.1
PLOT x,⊃[1](⍳n)s¨⊂x
Das ist alles.
Bis hier braucht man kein Handbuch, für das Folgende ist die Konsultation des Graphpak Users's zu empfehlen: Der Visualisierung von reellen Funktionen in zwei Veränderlichen auf dem ebenen Bildschirm.
Da wäre als erste Darstellungsform das Höhenlinien- oder Niveaudiagramm, in Software gegossen als Graphpak-Funktion CONTOUR. Um die Konturen auf den Höhen -2,-1,0,1,2 für die Funktion f(x,y) zu zeichnen, gehe man wie folgt vor:
x←y←¯5 to 5,0.1
m←(x BY y) OF x∘.f y
m[1;1]←1
¯2 ¯1 0 1 2 CONTOUR m
AXES
LABEL
Zwei Nieveaulinien "fehlen". Warum wohl?
Mit einer anderen (mathematischen) Funktion kommen auch diese zum Zuge. Mit ein wenig mehr Arbeit lassen sich die Höhenlinien unterschiedlich einfärben: Variable pa setzen und CONTOUR mit jeweils einem Niveau im linken Argument aufrufen. Keine Sorge, dass passt solange svp unverändert bleibt.
Für welches f(x,y) sind das wohl die Niveaulinien?
Saturday, 9. June 2007
Tatsächlich wurde auch schon vor mehr als 30 Jahren richtig gute Software gemacht. Ausnahmsweise meine ich nicht APL, denn das wurde letztes Jahr sogar 40.
Nein, es ist Graphpak, eine Sammlung von APL-Funktionen für die Erstellung von Grafiken. Damit habe ich erstmals 1983 mit VSAPL auf einem IBM-Mainframe einige Balkendiagramme erstellt.
Viel später habe ich einige Fingerübungen mit Graphpak zur Darstellung von mehr oder weniger komplizierten mathematischen Fragestellungen unternommen. Ein wenig Animation beim Nachstellen von Fußballspielen war auch dabei. Aber für diesen Zweck erschien mir die Nutzung von Graphpak wie mit Kanonen auf Spatzen geschossen.
"Business Grafiken" werden heute kaum noch mit APL2 und Graphpak erstellt. Mir fällt spontan zumindest kein Anwendungsfall ein. Dies ist heute Aufgabe von Business Intelligence Software, aber vor allem und leider von Excel.
Trotzdem habe ich in den vergangenen Monaten die Kombination von APL2 mit Graphpak schätzen, wenn nicht sogar lieben gelernt. Gerade bei der Darstellung mathematischer Sachverhalte, wie z.B. von Funktionsverläufe im Reellen oder Komplexen, ist dieses Team für mich unschlagbar. Funktionen einer oder mehrerer Veränderlichen sind im Handumdrehen mit APL dem Computer nahe gebracht, mit PLOT kann man den Graphen dieser Funktion umgehend visualisieren:
x←¯10 to 10,0.1
PLOT x,[1.5] f x
Das war's schon.
"Gute Wein in alten Schläuchen" vollständig lesen
Thursday, 7. June 2007
Auf den ersten Blick erscheint diese Desktop-Würfelei eher als Spielerei. Doch inzwischen kann ich meinem Kubus mit vier Desktops auch mehr abgewinnen: ein wenig mehr Struktur und Ordnung in der Vielzahl gleichzeitig geöffneter Anwendungen und parallel bearbeiteter Themen.
Schade nur, dass der Yod'm 3D-Würfel nur vier Flächen hat, obwohl doch ein veritabler Würfel sechs vorzuweisen hat. Zumindest kann man nur vier für Desktops nutzen, während die Flächen "oben" und "unten" verborgen bleiben. Für Flatländer ist das normal, deren "Würfel" eben genau diese vier Seiten haben.
"3D" steht also gegenwärtig noch fälschlicherweise im Namen, es sollte besser 2,734D heißen. Der Beryl-Würfel dagegen stellt alle sechs Würfelseiten für jeweils einen Desktop zur Verfügung.
Noch vermisse ich die verborgenen Würfelseiten nicht, noch reichen die vier Desktops aus. Trotzdem juckt es mir regelmäßig in den Fingern, den Würfel nach vorn zu kippen, um die obere, allerdings nie sichtbare, Würfelseite anzuzeigen.
"Cube Mania, reloaded" vollständig lesen
Sunday, 3. June 2007
Jetzt bin auch ich auf den Würfel gekommen.
Bernd hat mich infiziert, nicht durch seine Blog-Einträge, sondern durch die Vorführung von Beryl auf seinen Linux-Desktop.
Leider ist Beryl für uns arme Windows-Nutzer nicht erreichbar. Aber die Idee ist grandios, also sollte es doch Adaptionen für Windows geben. Und tatsächlich, mit freundlicher Unterstützung von Google fand ich einen Artikel in der PC-Welt über Yod'm 3D. Keine Ahnung, warum dieser Artikel unter "Windows Vista" eingeordnet wurde.
Die Installation von Yod'm 3D ist geradezu trivial: Nach dem Download Dateien in ein Verzeichnis entzippen. Auch die Konfiguration stellt kein Problem dar: Die Yodm3D.exe starten, nach einigen Sekunden erscheint das Yodm3D-Icon im Systray, hier mit rechten Maustaste den Einstellungen-Dialog öffnen.
Nach Betätigung der Hotkeys geht's dann los. Der Desktop zieht sich ein wenig zurück. so dass man ihn als Seite eines Würfels erkennen kann. Mit den Pfeiltasten lässt er sich dann von einer Seite zur nächsten drehen oder "nach hinten" und "nach vorn" bewegen. Mit der Maus funktioniert die Drehbewegungen sogar "stufenlos".
Wie das "live" aussieht, kann man sich in bewegten Bildern auf YouTube ansehen. Hier zeigt sich im Vergleich zu Beryl-Filmchen, was der Linux Desktop-Manager dem Windows-Analogon alles voraus hat.
Saturday, 2. June 2007
Keine Angst vor der Übergabe großer Variablen als Argument einer Funktion! Es ist nämlich nicht so, dass sich nach Aktivierung der Funktion der Inhalt des Arguments gleich zweimal im Arbeitsspeicher ausbreitet. Statt eine Kopie anzulegen speichert APL nur einen Pointer.
Das spart Platz, aber nur solange bis in der aufgerufenen Funktion das Argument selbst modifiziert wird. Selbst die kleinsten Änderung (z.B. (↑Arg)←0 ) bewirkt eine umgehende Erstellung einer Kopie der ursprünglichen Variablen.
Das Gleiche gilt für ganz einfache Zuweisungen der Form C←B, selbst wenn B bereits nur einen Pointer zu A darstellt. Und was passiert nun mit dieser verpointerten Kette, wenn A bzw. B modifiziert wird?
"Sparsam" vollständig lesen
Wednesday, 30. May 2007
Interessant! Sehr große Tabellen scheinen MySQL an den Rand der Verzweiflung zu bringen. Diese Erkenntnis verdanke ich nicht eigener Praxis, sondern Bernds leidige Erfahrung:
"Ich trau aus Erfahrung keiner MySQL-Tabelle größer als 5 GB ..."
Hm, eigentlich sollten 5 oder 8 oder 10 GB keine Herausforderung für heutige DBMS sein, wohlgemerkt als Größe einer Tabelle. Solche und wesentliche größere Tabellen kommen in den besten Unternehmen vor.
Fragt man Vertreter von IBM oder Oracle danach, ob ihre DBMS diese Herausforderung bestehen, so werden sie gelangweilt mit Achseln zucken und "So what" fragen. Die wirkliche Herausforderung liegt im Terabyte-Bereich. Bis Bernds Tabelle den erreicht, fließt noch viel Wasser den Neckar herunter.
Möglicherweise wird er bereits davor seine Datenbank in ein anderes DBMS migriert haben.
Monday, 28. May 2007
Auch ein Larry Ellison kann nicht alles haben. Nicht den Titel des reichsten Mannes der Erde, auch nicht die Marktführerschaft bei ERP-Software und schon gar nicht den America's Cup.
Trotz horrendem Investment hat es gegen einen italienischen Gegner im Halbfinale nicht geklappt.
Die CW kommentiert das drastischer. Gut so! Es ist lächerlich, wenn ein Einzelner versucht, eine komplette Branche für seinen Egotripp zu missbrauchen.
Aber was erwartet sich bloß BMW von dem Co-Sponsering mit Oracle? Irgendwann mal den 2. Platz zu belegen. Dieses Mal hat es nicht gereicht.
Sunday, 27. May 2007
Das war aber einmal. Wir schreiben ein anderes Jahrtausend, die CW hat eine andere Redaktion. Ich habe den Eindruck, dass sie Marktbeherrschung anders bewertet als noch Anfang der 90er. Warum sollen heute wettbewerbsverhindernde Monopolstrukturen akzeptabler sein als noch vor 20 Jahren? Und wer will ernsthaft bestreiten, dass Microsoft seit Jahren bei Desktop-Betriebssystemen und Bürosoftware eine eindeutig marktbeherrschende Stellung hat - mehr als IBM jemals bei Mainframes.
Die CW-Redaktion der 90er Jahre hätte heute wohl eher eine Serie über Open Office oder Linux gebracht als über die Produkte des heutigen Monopolisten. Auch hat sich diese Redaktion hier nicht durch kommerzielle Argumente leiten lassen. Denn schließlich waren zu ihrer Zeit die Besitzer und Anwender der IBM-Großrechner eine gewichtige, wenn nicht sogar die wichtigste, Lesergruppe.
Denn es ging aus Sicht der damaligen CW-Redaktion um eine "gerechte Sache": für mehr Wettbewerb im IT-Markt zugunsten der Anwender, gegen die Beherrschung eines wesentlichen Teils des IT-Marktes und der damit einhergehenden Behinderung von Innovationen. Wohlgemerkt, das war die Motivation der damaligen CW-Schreiber.
Solch eine "gerechte Sache" kann ich mir auch heute noch vorstellen. In Sachen CW bedeutet das allerdings: Es war einmal.
In der gegenwärtigen Redaktion hat man sich in Sachen Microsoft-Elaborate wohl eher der nahezu meinungsfreien, vordergründig objektiven Berichterstattung verschrieben. Das ist glücklicherweise nicht überall so, man betrachte nur ihr Engagement zum aktuellen Thema Datenschutz.
Saturday, 26. May 2007
Zur Zeit läuft in der Computerwoche eine Serie über das neue MS Office 2007. Vier Folgen, sehr viel der Ehre, ich finde, zu viel der Ehre.
Natürlich hat MS Office sehr viele Anwender, von denen sich wahrscheinlich nicht wenige für die Neuerungen der aktuellen Version interessieren. Journalistisch und kommerziell sicher ausreichend Motivation für ein solches Engagement.
Ein entsprechender Einsatz für die Open Source Alternative Open Office? Nicht vorstellbar! Auf jeden Fall nicht zur Zeit. Open Office verfügt bei Weitem nicht über die Marktdurchdringung eines MS Office. Da kann einer Redaktion schon die kommerzielle Rechtfertigung für eine entsprechende Investition schwer fallen. Aber journalistisch sollte das keine Rolle spielen.
Ich kann mich noch gut an die Vista-Serie im September letzten Jahres erinnern, die ich mangels Dringlichkeit nicht gelesen habe. Eine entsprechende Serie in der Computerwoche über eine neue Linux-Version kann ich mir zur Zeit nicht vorstellen.
Das war mal anders: Ende der 80er Jahre hatte sich die CW-Redaktion dem Feldzug gegen das Mainframe-Monopol der IBM verschrieben. Es gab so gut wie keine Ausgabe mit kritischen bis hin zu kritikastrischen Artikeln gegen IBM. Andererseits wurde alles, was gegen IBM ins Feld geführt werden konnte - Unix, DOS, Windows, Microsoft, Intel oder Risc -, mit gut meinenden Artikeln unterstützt.
Friday, 25. May 2007
Ich meine den Zeitstempel für die letzte Änderung einer Funktion oder eines Operators, also die "Fix Time". Die Antwort ist doch ganz einfach und auch keine 500€ wert: 2 ⎕AT FOOname liefert als Ergebnis einen 7-stellingen ganzzahligen Vektor mit Datum und Uhrzeit des letzten "Fix".
Nein, das wäre zu einfach. Die Frage geht nach der Stelle, wo diese Angaben in der APL-Datei abgelegt sind, also der Datei, die den gespeicherten Workspace enthält.
Wer suchet, der wird was finden, so auch hier. Nun habe ich das gestern bereits das vierte Mal durchexerziert. Es ist also Zeit, das endlich niederzuschreiben. Hier die Erkenntnisse:
"Wo ist der Zeitstempel?" vollständig lesen
... die kostenfreie Express-Variante des SQL Server 2005 installieren: Das geht nicht!. Zumindest nicht unter XP, immerhin mit SP2.
Ständig hat das Setup etwas zu meckern: Mal fehlt das .NET Framework 2.0, mal passt ihm der vorhandene Windows Installer nicht. Als Setup hat man es schon schwer.
Da lobe ich mir DB2 und gerade die - auch kostenfreie - Express-C. Dort wird alles installiert, was benötigt wird, ohne Aufforderung, zuerst dies oder das zu installieren.
In Sachen SQL Server Express bin ich mir nicht mal sicher, dass nach erfolgreichem Setup die Datenbank auch arbeitet. Denn ich habe in diesem Rechner 2 GB RAM, und Microsoft beschränkt die Nutzung für die Express auf 1 GB. Muss ich jetzt 1 GB aus dem Rechner reißen? Oder beschränkt Express künstlich den verfügbaren Speicher für die Datenbank.
Auch in diesem Falle hat die DB2 Express-C einen klaren Vorteil: Hier liegt die Schranke auf 4 GB RAM. Dagegen sind die freien DBMS-Varianten von Oracle und Microsoft mit all ihren Beschränkungen Kinderkram.
Monday, 21. May 2007
Was war es doch schwierig. Jahrelang, nein sogar jahrzehntelang, haben APLer sich den Kopf darüber zerbrochen, wie sie ihre Funktionen (oder Operatoren) vernünftig drucken bzw. ausserhalb des jeweiligen APL-Systems als Textdokument darstellen oder bearbeiten können. Ich erinnere mich da an Begriffe wie Codepages, APL-fähige Drucker, Druckertreiber, Schriftarten ...
Und tatsächlich, es gibt ihn: den Fortschritt in der Computerei. Heute kann ich einfach per Mausklick eine APL2-Funktion als PDF-Dokument darstellen, und das sogar in Farbe.
Ich benötige dazu nur einen "Drucker", der kein Papier beschmiert, sondern PDF-Dokumente erstellt. Dies kann ich z.B. mit FreePDF erreichen.
Damit brauche ich nur im Editor das geöffnete APL2-Objekt auf diesen "Drucker" auszugeben. Ich erhalte eine PDF-Datei mit den "Ausdruck" des Objektes, sogar mit Zeilennummern und farbig- so wie der Editor APL2-Objekte darstellt.
Einfach und schön, einfach schön!
Sunday, 20. May 2007
In der Regel befassen sich APL-Tagungen mit Themen wie "Problem X leicht und schnell gelöst mit APL", "So geht es mit APL" oder "APL und der Rest der Welt". Und es ist tatsächlich so: Mit APL lassen sich wichtige Anwendungen leichter und schneller realisieren.
Aber manchmal lernt man bei besagten APL-Treffen interessante Dinge außerhalb des heilen APL-Universums, gute Dinge aus einer anderen Welt, in der normalerweise das Böse herrscht. So war es vor einer Woche in Bingen. Bernd zeigte, wie man APL2 über die Java-Schnittstelle mit Open Office verbinden kann. Ich bin ihm dankbar für die ausführliche Einführung in die Welt der alternativen, offenen Software für Büroanwendungen.
Denn es ist alles vorhanden, was ich brauche, und das zu einem wirklich günstigen Preis, nämlich kostenlos. Aus Sicht eines Anwenders ist auch die Kompatibilität mit den MS Office Formaten vollkommen zufrieden stellend. Leider spielt das auch für mich eine wesentliche Rolle.
"Open statt Microsoft" vollständig lesen
|