News
DV-Beratung Dieter Bender
Diese Seite ist ständig im Aufbau! - deshalb heisst sie auch News und nicht Olds
Nun ist mein Transparent Gateway schon soweit fertig, dass man damit bereits fast alles mit entfernten Datenbanken machen kann, wenn auch noch nicht der komplette Sprachumfang von SQL abgedeckt ist, aber bei SQL gibt es ja zuweilen mehrere Wege zum Ziel. Im Programm und am interaktiven prompt sieht das genauso aus, als ob man auf die Datenbank einer anderen AS/400 per SQL zugreifen will, man macht zuerst einen CONNECT und ab da geht es weiter, wie mit der lokalen Datenbank. Selbst mit Query und QMQRY kann man jetzt auf MySql, Oracle, MS SQL Server und jede andere Datenbank für die es einen JDBC Treiber gibt, zugreifen, fast als ob es die lokalen Daten wären. Das Projekt ist in einem Tempo durchgerauscht, dass es nicht einmal einen Namen hat und publiziert habe ich es als Beta auf SourceForge im Projekt appserver4rpg.
Seitdem das Projektteam Zuwachs bekommen hat, stehen die Quellen des aktuellsten Standes der Entwicklung immer im CVS auf SourceForge zur Verfügung. Als Reaktion auf eine Anfrage, die ich per eMail zu AppServer4RPG unlängst bekommen habe, habe ich den AppServer4RPG zur WebAnwendung erweitert und ein Deployment als war Archive zusammengestellt. Damit gibt es jetzt auch die Möglichkeit AppServer4RPG in einen WebContainer zu deployen, z.B.: Tomcat, oder WebSphere. Hört sich auf dem ersten Ohr kompliziert an, hat aber was; man kopiert das AppServer4RPG.war Archiv in das Verzeichnis webapps und der WebServer erstellt automatisch die lauffähige Anwendung und startet sie. Werden weitere Komponenten, wie zum Beispiel JDBC Treiber benötigt, kopiert man diese in das Verzeichnis WEB-INF/lib der Anwendung und Tomcat findet das automatisch. Die alte Form als eigenständige Java Anwendung wird für Versionen weiter bereit gestellt. Außerdem habe ich eine Anregung von Aaorn Bartell aus seinem Artikel im System i Network AppServer4RPG: Open-Source Communication Between RPG and Java aufgenommen und den RPG Teil zusätzlich zu den Quellen als SaveFile bereit gestellt und das ganze mit dem war Archiv zusammen gezipt. Nach der Umstellung des Deployments auf Ant, werde ich jetzt in kürzerem Turnus deployen und diese Zip Files mit Datum versehen. Die Installations Doku ist erweitert und in die Begrüßungsseite der Tomcat Applikation gewandert, ist aber auch im Zip File als index.html leicht zu finden. Die Distribution erfolgt jetzt über Sourceforge, auf meiner Webseite ist nur einAusschnitt oder link vorgesehen.
Die Installations und Konfigurations Anleitung ist in englisch verfasst und gegenwärtig liegt dort auch die Priorität, es sei denn, es finden sich noch weitere Mittäter, ich freue mich auch über "Praktikanten", womit ich RPG/Java Umsteiger verstehe, die sich Praxis in einem professionellen Projekt erarbeiten wollen. Deutsche Unterlagen sind in jedem Fall im Herbst zu erwarten, da ich gegenwärtig plane Ardgate auf der Common Jahreskonferenz vorzustellen. Wem das Ardgate zu schwierig erscheint, oder wer sich zu sp&aet; entschließt, ich plane durchaus weiter Applikationen auf der Basis von AppServer4RPG bereit zu stellen und performantere und stabilere Alternativen zur Einbindung von Java Funktionalitäten anzubieten, als das embedded Java in RPG leisten kann. Konzeptionell ist eMail Unterstützung bereits skizziert, aber es bietet sich da sicherlich noch mehr an, nicht zuletzt WebServices! Naja, mit den Projektnamen hapert es jetzt immer noch, bei mir heißt das ArdGate mal weiterhin Hammerfest - und als logo kann ich ja dann vielleicht den Eisbär nehmen, als Ehrenmitglied des zugehörigen Clubs darf ich das ja sicherlich.
(August 2010)
Rein beruflich beschäftigt sich unsereins ja überwiegend mit absurden
Dingen, schließlich werden mit EDV überwiegend Probleme gelöst,
die
man ohne EDV nicht hätte. Deshalb muss man ab and an was vernünftiges
machen, wie zum Beispiel 2 Tage lang ein Essen vorzubereiten, das dann in 2
Stunden
gegessen ist. Oder in 3 Wochen 3315 km mit dem Fahrrad fahren. Weil es mir zu
langweilig erschien 8281 und eine halbe Runde auf der Aschenbahn des
Sportplatzes zu drehen, ich habe mich da keineswegs verrechnet, sondern 1,2
km Weg zum Sportplatz und den Rückweg nach Hause einberechnet, habe ich
lange nachgedacht wie man diese
Strecke zusammen bekommen kann.Neapel ist für die einfache Strecke nicht weit genug und dann ist da noch dieses Sprichwort Neapel sehen und dann sterben und das bei meinen Erfahrungen mit dem Fahrrad und italienischen Lastwagen, da hätte mich beinahe schon einmal einer platt gefahren. Brindisi habe ich auch verworfen, das reicht immer noch nicht, hin und zurück ist etwas zu reichlich und außerdem weiß man ja nicht, ob einen die italienische Mafia zur Russenmafia zurück lässt, eine deutsche Mafia gibt es ja nicht, das brauchen wir nicht, bei uns ist auch das Verbrechen von Hause aus schon besser organisiert.
300 mal von Krofdorf-Gleiberg nach Gießen und zurück hätte zwar gepasst und wer beides kennt, fährt auch immer wieder zurück, was dagegen sprach war der zu hohe Radweg Anteil, das Geholper ist für die Gelenke nicht gut und die Glasscherben, mit denen die Radwege bei uns übersät sind, sind für die Reifen schädlich und die zu erwartende Anzahl der Platten schadet wieder dem Budget für solche Unternehmungen. Deutsche Radwege sind Reperaturfrei, selbige unterbleiben einfach, werden nur an Ostern, aber nicht an Feiertagen gekehrt, Schnee wird nur im Sommer geräumt, dafür wird das Gras bevorzugt im Winter gemäht. Wichtig ist nur die Beschilderung, damit Benutzungspflicht vorliegt, ganz im Sinne der Erfinder der Radwege und der Benutzungspflicht „Zeigen wir dem staunenden Ausländer einen neuen Beweis für ein aufstrebendes Deutschland, in dem der Kraftfahrer nicht nur auf den Autobahnen, sondern auf allen Straßen durch den Radfahrer freie, sichere Bahn findet.“ (Aus einer Presseerklärung des Reichsverkehrsministeriums zur Einführung der allgemeinen Radwegebenutzungspflicht in der RStVO vom 1. Okt. 1934).
Was nach Süden nicht passt, nach Westen erst recht nicht, geht vielleicht nach Norden, also entstand bereits vor vielen Jahren die Idee für das Projekt Hammerfest, das dann trotz noch vorhandener zeitlicher Spielräume vor knapp 2 Jahren auf die Agenda 2010 gesetzt wurde. Dabei spielte nicht nur eine Rolle, dass ich mit dem Projekt Hammerfest und dieser Terminierung dazu beitragen wollte, das Jahr 2010 und dessen Agenda etwas zu rehabilitieren, was kann das Jahr 2010 schließlich dafür, was ihm da alles so auf die Agenda gesetzt wurde.
Meine Entscheidung für Hammerfest, wo andere zum Nordkapp fahren, hat bei mir schon Tradition; als ich mit meinem Bruder vor 40 Jahren mit einer alten 16 PS Ente gen Norden fuhr, entschieden wir uns auch gegen das touristische Kunstziel und für die Traditionsreiche alte Stadt Hammerfest. Mir hat diese Entscheidung dieses Jahr sogar die Ehrenmitgliedschaft in The Royal and Ancient Polar Bear Society eingebracht, so angetan waren die von der Anreise mit dem Fahrrad und dem von Bender-DV gesponsorten Trikot.
Zu meinem Glück ist Google Earth noch kein Life Dienst, dann kann man solche Projekte nicht mehr durchführen, wenn meine Familie mich auf manchen Abschnitten der schwedischen E4 mit dem Fahrrad gesehen hätte, die hätten sich ein Netz eingepackt, ins Auto gesetzt und den Verückten sofort eingefangen. Wobei zur Ehrenrettung der Skandinavier gesagt sei, dass man auf den meist Verkehrsarmen Landstraßen dort sehr gut Rad fahren kann - man merkt dort deutlich, dass es wenig Radfahrer gibt und diese dort eher auf der roten Liste stehen, als zum Abschuss frei gegeben sind und es drängt die Verkehrspolitiker auch weniger etwas gegen die Radfahrer zu unternehmen, wie zum Beispiel Radwege bauen.
Die Königsetappe, wenn man denn die unangenehmste so nennen will, war übrigens bereits am dritten Tag zu absolvieren. Hamburg wird weitgehend unterschätzt und schlägt alles. Paris Roubaix hat nur 49,8 km Kopfsteinpflaster, eine Durchquerung von Hamburg weist auf Hamburgs Radwegen, selbst ohne die für Ortsfremde obligatorischen Umwege mehr als 50 km davon auf, und was die zu absolvierenden Höhenmeter angeht, bereits 5 cm Geholper pro Meter Radweg, ergeben pro Kilometer 50 Höhenmeter, was bei 50 km 2500 m ausmacht, das Stilfser Joch, mein bisher höchster Pass, den ich mit dem Fahrrad bewältigt habe, hat dagegen nur 1400 m Höhendifferenz auf 14 km aufzuweisen. Als ich diese Etappe bezwungen hatte, wusste ich: Hammerfest - ich komme!
(Juli 2010)
Der Ansatzpunkt bei dem Gateway ist, eine Datenbank auf der AS/400 über das Remote Database Directory verfügbar zu machen, so dass man anschließend per Connect an diese Datenbank verbinden kann und mit anderen SQL Anweisungen auf diese Datenbank zugreifen kann. Problempunkt der ganzen Angelegenheit ist allerdings die fehlende Unterstützung wichtiger Datenbanken für diesen Weg. Ein vielversprechender Weg ist hier auf den ersten Blick Derby, das DRDA unterstützt und JDBC spricht. Das hält zwar dem zweiten Blick nicht Stand, aber die Idee eines Transparent Gateway for DB2/400 to JDBCwäre nicht nur für Zugriffe aus RPG auf (fast) beliebige Datenbanken, sondern auch für Java Aufrufe aus RPG der Königsweg.
Bei solchen Ideen frage ich mich immer, warum in Rochester niemand auf solche Ideen kommt und immer dann ist der Schmäh, der keine Wiener Erfindung ist, sondern aus Hessen dorthin verbracht wurde und seitdem hier seltener geworden ist, nicht fern.
Beim einfügen des Links in die Leitseite vom Textarchiv habe ich selbiges auch mit meinen älteren Beiträgen vervollständigt.
hier geht's zum (aktualisierten) Text Archiv
(Mai 2010)
API heißt ja eigentlich auf deutsch Programmierschnittstelle, ist also nichts anderes als ein aufrufbares Programm, aber wozu braucht man dann ganze Kurse für Fortgeschrittene dafür, wie man ein Programm aufruft? Das muss was mit dem angeblich doch der Vergangenheit angehörenden kalten Krieg zu tun haben, war doch früher eine Universalbegründung für umständliche Programmierung just to fool the Russians, die sind allerdings heute ohnehin verwirrt genug, aber vielleicht wird das ja heute immer noch beibehalten, oder erneut gepflegt, just to fool the Taliban! Heute fühlte ich mich gleich doppelt an APIs erinnert, nicht nur aus dem bereits dargelegten Grund, sondern auch, weil das Thema API in einem Forum direkt adressiert wurde. Bei dieser Gelegenheit erinnerte ich mich daran, dass ich vor einiger Zeit mal ein Serviceprogramm APILIST geschrieben hatte, das den ganzen Userspace Krempel kapselt.
Das habe ich dann jetzt mal ausgegraben, ein Verwendungsbeispiel dazu geschrieben und ab damit auf die Open Source Seite, damit die RPG Fraktion auch wieder mal was neues bekommt, weil soviel neues kommt da im Augenblick von mir jedenfalls nicht nach. Beim Thema Neues: V7R1 sieht nicht schlecht aus, da tut sich im Rahmen der Plattform Konsolidierung scheints einiges, vielleicht mache ich da doch mal ein kritisches Resumee zu, wenn ich zwischen bezahlter Arbeit und Radsport Training mal dazu komme.
Bei der Gelegenheit habe ich gleich noch einen Bugfix meines Vectors auf meine Webseite übertragen. Einem Kollegen der meine Hashtable schon länger als Ersatz für ein Subfile in einem Guiifizierten (vielleicht besser DDS-desinfizierten) Programm benutzt, habe ich kürzlich den Vector als performantere Variante für diesen Zweck empfohlen und er hat mir dann kurz später zum Dank eine Fehlermeldung per Mail zukommen lassen, die ich mit einem Hotfix beantwortet habe, was ich nunmehr hier nachziehen möchte.
(April 2010)
Zu Beginn des Java Zeitalters auf der AS/400 kam ich mir zuweilen als einsamer Rufer in der Wüste vor, wenn ich die zu damaliger Zeit unverschämt miese Performance von Java auch als solche bezeichnete. Da wurden dann oft von Leuten, die noch nie selber ein anderes Java Programm als HelloWorld geschrieben hatten die abenteuerlichsten Rezepte und Stories verbreitet, die mich immer an Knast erinnerten, obwohl ich nie in selbigem gesessen hatte, assoziierte ich mit JVA immer Justiz Vollzugsanstalt. Je mehr CRTJVAPGM, DSPJVAPGM und WasWeissIchNochAllesJVAPGM durch die heiße Luft schwirrte, dachte ich damals bei mir, solange Java auf der AS/400 als was besonderes dargestellt wird, ist diese Maschine noch nicht auf Java gelandet. Nunmehr neigt sich diese Phase wohl endgültig dem Ende zu, Java ist in Sicht! Nachdem Aaron Bartell meinen AppServer4RPG in seinem Blog vorgestellt hatte, was ich an den sprunghaft gestiegenen Downloadzahlen auf SourceForge bemerkte, schaue ich ab und zu mal bei ihm vorbei. Dabei fiel mir dann kürzlich das Programm einer Tagung in Amiland auf (es war nicht Common), das ich mir aus Interesse ansah, wo ich gerade dabei war, schaute ich auch mal bei Common in Amiland vorbei und da war ein Vortrag angekündigt, der sich damit beschäftigte die JVM bei IBM Rechnern für die Hardware zu vereinheitlichen, was für die AS/400 heißt, dass die Sonderlocken verschwinden und die AS/400 die (hoffentlich unkastrierte) JVM der p (besser bekannt als RS 6000) bekommt. Land in Sicht, herzlich willkommen auf Java!
Meine Marketing Abteilung hat wieder mal interveniert und mir gesagt, dass wir diese Webseite ja nicht aus Jux und Dollerei machen, oder zu meiner persönlichen Selbstdarstellung, sondern dass wir mit interessanten Inhalten und nützlichen Informationen Imagewerbung betreiben und da seien solche Döntjes nicht ausreichend für die Erzielung nachhaltiger Effekte und ich solle doch gefälligst wieder mal in meinen Schubladen kramen und ich habe gekramt und diesmal in der Schublade, die manchmal KnowHow und manchmal gewusst wie heißt.
Integration von WebServices in RPG Anwendungen
(Februar 2010)
Bei den Themen Java Einsteiger, ILE RPG, SQL Basis Themen plane ich wieder einmal Kurse für Einzelbuchungen wobei ich für Frühbucher Preskriptionen attraktive Konditionen anzubieten habe, Anfrage per Mail willkommen.
(Januar 2010)
Mein letzter Beitrag in dieser Rubrik und da insbesondere der Vector, den ich als Bonbon dort mit verpackt hatte, führte erst einmal dazu, dass sich Mihael Schmidt, eine der positivsten Erscheinungen der AS/400 OpenSource Scene in diesem unseren Lande (wie der Dicke einst seinen Sprachfehler kaschierte - Deutchland hätte für einen Bundeskanzler doch ein wenig albern geklungen) mit mir in Verbindung setzte, da er ebenfalls einen Vector (und viele andere interessante Komponenten) als Open Source veröffentlicht hat. Es ist uns zwar (noch) nicht gelungen unsere Komponenten zu konsolidieren und zusammen zu legen, aber die Diskussion in der deutschen Freeware Scene gewinnt langsam neue Qualitäten und ich bin schon ein wenig stolz darauf, dass es mir dieses Jahr gelungen ist sowohl Mihael als auch Thomas Raddatz zu Vorträgen auf der Common Jahreskonferenz zu gewinnen und damit die Konferenz auch zu einem Treffpunkt und zur Plattform des Open Source Gedankens zu machen. Wo ich gerade dabei war, habe ich auch noch Baldur Fürchau dazu überredet dort einen Vortrag zu präsentieren, Birgitta Hauser und Holger Scherer waren ja schon öfter dort vertreten und somit hatten wir neben der Spitze der Open Source auch noch die Aktivsten des AS/400 Forums ebenfalls auf der Konferenz. Vielleicht gelingt es mir ja auch noch in diesem Dreieck von Common, Forum und Open Source eine Portal als Einstiegspunkt für nicht kommerzielle Angebote im AS/400 Umfeld zu etablieren.
Eine Anfrage bezüglich Aufruf von AS/400 Programmen als stored Procedure aus .Net nutzte ich dazu mich etwas intensiver mit C# auseinander zu setzen, nachdem ich zuvor bereits einmal ein VB Programm nach RPG portiert hatte. VB haftet für mich als gelernten Fortran Programmierer, auch wenn das fast ewig her ist, immer noch der Geruch eines Fortran für Arme und Kranke an, während C# auf mich eher den Eindruck eines Java Plagiats machte, wobei auch hier, wie so oft, das Plagiat nicht an das Original heranreicht. Was mich schon ein wenig erschütterte war die Einbindung des Datenbanktreibers in die Applikation, nicht nur bedingt durch den ADO Treiber von V5R4 musste dieser bereits zur Compile Zeit geoutet werden, was doch deutlich hinter den Java Möglichkeiten zurück bleibt. Mit dem V6R1 Treiber soll das wohl besser werden, da dieser die aktuelle ADO.NET Spezifikation unterstützt; getestet habe ich das noch nicht, aber an die selbstregistrierenden Treiber von Java reicht dies nicht ran.
Die Folgezeit gab mir wieder Gelegenheit mit meinem AppServer4RPG weiter zu arbeiten, der Hintergrund dazu war die Einbindung von WebServices in die grün gefärbte Welt; nachdem es sich mittlerweile sogar in der tief blau gefärbten Welt herumgesprochen hat, dass es mit der RPG java Integration ala Toolbox und RPG Java Calls per JNI nicht so weit her ist, ist die Suche nach griffigeren Alternativen doch naheliegend. Immer wieder interessant ist es das aufeinander treffen zweier Welten zu erleben, wenn man RPG und Java Leute an einen Tisch bekommt; die Denke ist schon sehr unterschiedlich und die Ansätze der AS/400 Fraktion setzen selbst mich immer wieder in Erstaunen; ein Beispiel dafür ist die Frage in einem Workshop ob man die DataQ des AppServer4RPG nicht größer machen könnte, man denke da so an 20.000 statt 512, oder vielleicht noch ein wenig mehr, damit man auch breitere Datenschnittstellen implementieren könne; dieser Frage gedenke ich künftig zu entgehen, indem ich einen Paketierungsmechanismus einbaue und RPG seitig eine zusätzliche variable Schnittstelle einbaue. Einen kleinen Schub bekamen die Download Zahlen bei SourceForge durch die Vorstellung von AppServer4RPG durch Aaron Bartell in seinem Blog und SourceForge scheint doch auch im AS/400 Umfeld seine eigenen Klientel zu haben, obwohl für sie die Menge der Angebote doch sehr begrenzt ist.
Als Belohnung für das lange warten auf die nächste Aktualisierung dieser Seite, habe ich auch wieder ein Bonbon zugepackt und aus einer meiner Schubladen ein kleines Tool in den Open Source Bereich gestellt. Es ist zwar schon ein wenig älter und nur wenig überarbeitet, aber immer noch gerne von mir verwendet, wenn ich wieder mal als DB Admin tätig bin und zuweilen leistet es mir auch gute Dienste bei der Suche nach Fehlern in Programmen und vielleicht trägt dieses kleine Tool auch ein wenig dazu bei, dass Journalisierung auf der AS/400 eine größere Verbreitung findet. ANZJRN dient nämlich dazu Journaleintäge lesbar aufzubereiten, so dass man anschließend Datenänderungen auf Feldebene nachvollziehen kann.
(Januar 2010)
Als ich noch am überlegen war, ob ich nicht einfach mal meine Enkelin ein Bild malen lassen sollte, oder einen neuen Artikel für die Lästerecke schreibe, über den sensationell gewachsenen Bekanntheitsgrad des Rechners, der mal AS/400 hieß, immerhin ist das jetzt der populärste Rechner; seitdem das I auch noch das System verloren hat und die 5 mit erscheinen des Prozessors p6 weg ist, ist die Trefferquote im google nach oben geschnellt und selbst bing, die bevorzugte Suchmaschine des msn (nicht zu verwechseln mit MfS, das schreibt sich mit großem M) hat mehr als das 10fache an Treffern für I als für Windows zu vermelden. Bei Google rangiert dann zwar eine Kontaktbörse, die Justiz in Bayern und die Bahai vor IBM, aber der erste Schritt ist getan und der Platz hinter der Kontaktbörse sollte bis p17, wenn der dann nicht Intel heißt, zu schaffen sein.
Justament in diesen Überlegungen ereilte mich eine eMail, in der es erst mal um einen Bug in meiner RPG Hashtable ging, dahinter steckte wieder mal eine meiner Spielereien mit binden zur Laufzeit und inkonsistenten Ständen auf meiner Open Source Seite. Eingesetzt werden sollte meine Hashtable dann als Ersatz für ein Subfile in einer Anwendung, in der das 5250 Frontend durch ein Java basiertes ersetzt wird. Da ich nun mal Zwischengesichter Spinnengesichtern vorziehe und mit meiner Meinung selten hinter dem Berg halte, entspann sich rund um die Hashtable eine Fachdiskussion per eMail. Zu den Resultaten gehörte bei mir, dass man die Hashtable vom Speichermanagement her für diesen Zweck aufbohren sollte, dass ein Vector dafür eigentlich noch besser geeignet sein sollte, dass ich diese Diskussion interessant fand, der Fragende dann gerne selber Hashtables programmieren können wollte und wir diese Diskussionen dann als Marek und Vacek an einer emulierten AS/400 Tastatur fortsetzten.
Nach dieser 4 händigen Session hatte mein Diskussionspartner seine bisherige Art zu programmieren in weiten Teilen verlernt, vergessen ist die Basis allen lernens, und ich hatte selten einen besseren Schüler und ich hatte wieder viel Stoff zum überlegen und weiterentwickeln meines Gedanken Projektes RPG für Java Programmierer, oder musste es hier Java Design für RPG Programmierer heißen? Ganz nebenher habe ich meine Hashtable noch vom Speicher Management her optimiert und mein hidden Project log4rpg, das auf meiner Webseite ohne einen einzigen Link vor sich hin wartet, ein wenig überarbeitet und eingebaut. Ach ja, und den Vector, den gibt es jetzt auch und dabei habe ich mal versucht die bisherigen Ansätze und Varianten der Programm gesteuerten Mehrfach Aktivierung auf ganz konservative Art neu zusammen zu fassen und im Code zu verdichten. Eigentlich müsste ich das in fast alle Komponenten einbauen, dann kann man das ganze Aktivierungsgruppen Gedöns (fast) wieder vergessen, kauft sich dafür natürlich die Pointeritis ein und eine Idee zum kapseln dieses Mechanismus habe ich nicht, es sei denn... C++ hat schließlich auch mal als Pre Compiler angefangen der C generiert hat, aber RPG++, das geht wohl doch ein wenig weit, dann würde die Sprache am Ende überleben wegen jemandem, der sie im Grunde nicht wirklich mag, ein Treppenwitz der Geschichte, aber das wäre nicht der erste.
(Mai 2009)Vom Egoismus zum Altruismus, es tut sich bedeutendes auf meiner Webseite und das hat seine Zeit gebraucht. Nach nunmehr fast 10 Jahren heißt mein Projekt, das manchmal als SQLGATE durch meine Webseiten huscht, Gleiberg (einen Silbersee haben wir hier nicht), ist zum Framework geworden und hat einen Beta Stand erreicht, der mit diesen Zeilen in meiner open Source section veröffentlicht wird. Nachdem die ersten Zeilen an langweiligen Abenden in ebensolchen Hotels entstanden und Sektionen daraus in kleinere Projekte Eingang fanden, die Daten Satzweise von und zu anderen Datenbanken fließen lassen, verdichtete sich der Nebel langsam dazu, dass man das als Framework machen kann und ein Workshop, den ich Common zum Thema RPG Java Integration anbot, eigentlich mehr eine Schulung mit praktischen Übungen, brachte dann nochmal eine Art Feuertaufe, wie denn andere mit sowas zurecht kommen. Die Fachdiskussionen bei dieser Veranstaltung (Dank insbesondere an M*S und M*K) brachten dann nochmals ein paar Aspekte in die momentan letzte Überarbeitung und bei SourceForge habe ich das Projekt dann ebenfalls untergebracht, was dazu führte, dass das erste Howto.html in englischer Sprache verfasst ist. Und letzteres obwohl die erste Veröffentlichung nun doch auf meiner HomePage erfolgt; mein knapper Platz reicht doch aus und mit dem upload nach SourceForge klemmt es noch ein wenig.
(September 2008)
Hashtable a la Java in ILE RPG überarbeitet
Header für GENFRAME
Header CEE4RAGE wird für die generierten Programme benötigt
(Januar 2007)
Das SQL Gateway hat sich wieder etwas nach hinten priorisiert, an der Java Ecke beschäftige ich mich in Vorbereitung eines geplanten Workshops zu Web Anwendungen momentan wieder etwas intensiver mit Eclipse und dem aktuellen Stand des Web Tools Projects. Die Arbeiten an dem RPG Framework sind eher zum erliegen gekommen, aber meine Web Seite schreit nach aktuellerem Material.
Eigentlich wäre wieder etwas lästerhaftes fällig gewesen, aber das neue Release ist sowas von langweilig, dass selbst mir die Lust am Spott vergeht. Embedded SQL im Freeformat, neue BIFs und Ewald jetzt auch mit Korrosion, wenn die so weiter machen, dann wird RPG noch das beste COBOL aller Zeiten, erinnert mich ein wenig an Ford in den 80er Jahren, als die die besten Opels gebaut haben, nur haben wollten die Leute damals alle Mercedes und BMW.
Bei einer meiner Fachdiskussionen über Binder Language und anderes überflüssiges kam mir das sensationelle Insider Gerücht zur Kenntnis (Psst! nicht weitersagen), dass IBM sogar darüber nachdenkt einen Command zu entwickeln mit dem man ein Service Programm in einem Rutsch erstellen kann, so eine Art Pendant zu CRTBNDRPG; bisher ist das hauptsächlich daran gescheitert, dass CRTBNDRPGSRVPGM als Command Name zu lang ist und CRTBNDRPGI zu sehr an CRTSQLRPGI erinnert, das ja nicht so ganz zu den Highlights gehört. An dem immensen Aufwand von 4 Stunden soll das ganze jedenfalls nicht scheitern, den könnte man ja mit einer Art Praxisgebühr von 10 Teuro für die Inanspruchnahme von bezahlten Serviceleistungen finanzieren; schließlich ist ja ein Bug im Betriebssystem nicht viel was anderes wie eine Krankheit eines Sozialversicherten, der ja auch schon für die Krankenkasse bezahlt hat. Vielleicht sollte ich mal in die Tasten greifen, oder in meinen Sourcen kramen und eine verbesserte Variante meines Pre Compilers als Open Source rausbringen, der dafür sorgt, dass zusammen wächst, was zusammen gehört, auch wenn daraus manchmal keine blühenden Landschaften entstehen. Oder vielleicht hat ja jemand von euch...???
Bei der Durchsicht der Programme meiner Webseite ist mir aufgefallen, dass sich da ein paar Komplexitäten eingeschlichen haben, die von diversen Versuchen herrühren das dynamische Binden zu automatisieren, zudem spiegeln einige der Programme Stadien meines experimentellen Schaffens wieder, die aus unterschiedlichen Perioden stammen. Um das ganze etwas übersichtlicher zu gestalten haben ich ein paar überarbeitete Versionen und ein paar neue Beispiele eingestellt. Die komplette Linkliste befindet sich weiter auf der Freeware Seite.
In der Link Section ist ein neuer link auf die Seiten des dänischen Kollegen Leif Guldbrand enthalten, der dort die Fahne der AS400 Freeware hochhält. Eine amerikanische Seite mit interessanten Ansätzen entpuppte sich mittlerweile eher als toter Briefkasten - ein Angebot dort Open Source Programme von mir einzustellen blieb bislang unbeantwortet.
Properties a la Java in ILE RPG überarbeitet
Beispiel und Testprogramm für Properties
Propertie Datei für Beispiel
Hashtable a la Java in ILE RPG überarbeitet
Beispiel und Testprogramm für Hashtable
(März 2006)
Es liegt in der Natur der Sache, dass Projekt Arbeit sowohl befruchtet als auch einengt und so entsteht immer wieder neues Potential und es kommen neue Ideen, die man in den Projekten selber oft nur in Ansätzen umsetzen kann. Und das ist letztlich die Quelle aus der Freeware entsteht und aus der sich Beiträge mit technischen Informationen speisen. Meine Schwerpunkte der letzten Zeit hatten meist mit der Verarbeitung großer Datenmengen zu tun und bewegten sich sowhl im klassischen Umfeld, als auch in der Welt von Java.
Was meine Freeware Aktivitäten angeht, ist mein Framework Projekt etwas in den Hintergrund gerückt, da mein RPG Bedarf momentan eher abnehmend ist und ich auch zuviel unterwegs bin und abends im Hotel dann eher zwischen Einstein, Schiller, Java und einem Glas Rotwein die zuweilen nicht ausschließende Wahl treffe und eher auf Bier, RPG und sicher Zigaretten verzichte. Momentan arbeite ich da an einem SQL Gateway, das auch noch als Java Server fr RPG Anwendungen dienen könnte. Das Ganze entpuppt sich aber doch wieder mal als ein größeres Vorhaben, das auch den Rahmen meiner eigenen Webseite sprengen könnte - vielleicht landet das dann bei Sourceforge.
Bei der intensivierten Java Arbeit habe ich dann auch wieder mal was
unvollendetes aus meiner Programmierer Kiste ausgegraben, das
ich jetzt so langsam mal fertig machen könnte. Jeder Java Programmierer
kennt log4j, kaum ein RPG Programmierer vermisst sowas,
da man noch nie ein logging Framework verwendet hat. Als Vorstufe fr mein
LOG4RPG stelle ich jetzt einfach mal mein PROPERTIES Service
Programm auf meine Webseite, das wird nämlich für die Konfiguration
meines Logging Frameworks für ILE gebraucht.
Properties ala Java für RPG Programme
Beim Aufräumen habe ich dann auch noch einen Bug in meinem Rahmen
Generator gefunden und ausgebaut.
Bug Fix Procedures ohne Rückgabe (Oktober 2005)
Ich habe Freeware auf meine Seiten gestellt, um meine Seiten attraktiv zu machen, meine Arbeit überprüfbar zu machen und damit für mich und mein Knowhow, wie man Wissen heute nennt, zu werben und - um mein Copyright zu schützen, woran viele Freelancer viel zu wenig denken, sonst gäbe es mehr Open Source im AS400 Bereich.Und ich habe mir dann die Web Statistiken meines Providers angesehen, um die Effekte sichtbar zu machen. Das meiste Interesse haben oft zu meinem Erstaunen sehr einfache Dinge hervorgerufen, wie das FTP Tool, obwohl es dazu zahlreiche Freeware Vertreter gibt. Programme, die für mich selber weit höhere Wichtigkeit haben, wie der Pre Compiler und das ServiceProgramm zum dynamischen Binden wurden zwar angesehen, aber weit weniger intensiv, oft nur Teile davon, was dafür spricht, dass es kaum jemand verwendet.
Zuweilen habe ich mir einfach Dinge von meiner schwarzen Seele geschrieben und damit bei Freunden teilweise schieres Entsetzen hervorgerufen. Der Kommentar Was sagen eigentlich Deine Kunden zu diesem Gerüttel? über meine Reflektion über den Stand von RPG, als Reaktion auf einen Common Workshop RPG - eine moderne Programmiersprache bleibt mir unvergessen und der Artikel brachte sehr vielfältige Wirkungen. Die Rubrik Schmäh wird immer noch gerne gelesen, manche Kunden sind offener zu mir geworden, meine Aufträge im Bereich Könntest du uns mal einen Vortrag halten, über RPG und umsonst sind weniger geworden. Und ich werde frei nach Roberto Blanco Ein bisschen Spass muss sein auch diese Rubrik fortführen, wenn es mir danach ist.
Seit kurzem haben meine Seiten einen neuen Spitzenreiter, der sich stabil nach
vorne entwickelt, zu meiner persönlichen Freude.
Meine FAQ zu Java auf der AS400 setzen sich langsam aber stetig von den anderen
Seiten ab. Nachdem ich über lange Zeit das
enfant terrible in der amerikanischen java400-l, einer Mailingliste auf den
MidrangeComputing Webseiten gespielt habe und mir dort
mehrere gelbe Karten des Moderators geholt habe, habe ich kurzer Hand diese
Aktivitäten auf meine WebSeite konzentriert;
zuerst eher aus Verlegenheit, eigentlich wäre wieder einmal Freeware
drangewesen, dann aus innerem Drang und nun kommt das
Ganze wieder mit dem Kern der Angelegenheit zusammen, es steigert die Resonanz
auf meiner Web Präsenz und nicht zuletzt
deshalb sitze ich ja wieder einmal hier und schreibe.
Wie beginnen mit Java? (März 2005)
Der zweite Arbeitspunkt der letzten Wochen war die Erweiterung der Java FAQ,
ein Projekt, das sich noch weiter als roter Faden durch die
nächsten Wochen ziehen wird
Technische Informationen (Februar 2005)
In der Freeware und Open Source Ecke ist das noch nachvollziehbar: da gibt es Internet Seiten mit Java Freeware vom Feinsten, die von Organisationen gepflegt werden, die von allem unterstützt werden, was Rang und Namen hat, da kann ich als Nischen Bewohner nicht mithalten, wiewohl mein kleines Transfer Utility mittlerweile international seine Liebhaber gefunden hat. Aber selbst im Theorieteil meiner Seiten dominiert RPG, wohl eher als Bestandteil meiner Vergangenheits Bewältigung erklärbar.
Das soll sich ändern und ich werde ab sofort anfangen eine Rubrik Java auf
der AS400 auf meinen Webseiten zu eröffnen. Themen
gibt es genug, geschriebenes von mir auch, in Schulungsmaterialien, in Skripten
von Veranstaltungen und in Beiträgen in Newsgroups,
Foren und Mailinglisten, es muss nur aufgearbeitet werden.
Java auf der AS400 (Januar 2005)
Mir kam die Reklame Hacker verzweifeln in den Sinn und direkt daneben hatte ich die eine oder andere AS400 vor Augen, mit Public Berechtigung *ALL für alle Produktionsdaten, deren Kennwörter lustig über offene Datenkanäle übertragen werden im Vertrauen auf den sichersten Rechner der Welt, den Menüschutz und irgendwelche Tools, die Exit Schnittstellen der AS400 mit einem Benutzer basierten Regelwerk überwachen. Dieses Bild sorgte dann für eine lebhafte Diskussion.
Was hat das alles mit Programmier Richtlinien zu tun? Nun gut, nicht wenige halten RPG für die Krone des Software Engineering, obwohl es dafür genauso wenig gemacht wurde, wie die AS400 als Hochsicherheitsrechner designed wurde. RPG wurde entwickelt mit der mittlerweile gescheiterten Idee im Hinterkopf, dass jeder Friseur Anwendungsprogramme schreiben kann. Gescheitert, weil die Programme dann aussahen wie die Frisur mancher Leute. Zu Ehrenrettung der Friseure sei gesagt, dass Haare, die von mir geschnitten werden, dann wohl aussehen würden wie manches RPG Programm.
Das Bild des sichersten Rechner der Welt vor Augen, verleitet zum Leichtsinn, der Glaube mit der Krone des Software Engineering zu programmieren verführt dazu drauf los zu programmieren ohne Rücksicht auf Design und Lesbarkeit und gerade das ist in RPG fatal. Viele Altlasten wären so nicht entstanden, wenn adäquate Richtlinien beim schreiben der Programme beachtet worden wären und mit ILE RPG sind die Ausreden weniger geworden. Und dennoch, wenn man Beiträge in Foren und Newsgroups liest, dann werden oft gerade im Bereich von Ausbildung gravierende Mängel sichtbar; gerade Anfänger lernen viel zu oft als erstes die Steinzeit von RPG kennen und hämmern ihre ersten Programme notgedrungen im Lochkartenstil mit Hammer und Meißel in Steinplatten.
Ich habe versucht dem entgegen zu wirken und einen Entwurf für Programmier
Richtlinien geschrieben.
Programmieren mit Stil (Dezember 2004)
Um diesen Defiziten mit abzuhelfen, habe ich mein Angebot an Workshops erweitert und insbesondere neue Angebote für die AS400 Klientel aufgenommen, die etablierte Java Standards und Methoden, insbesondere aus dem Open Source Bereich behandeln.Neue Java Workshops
Die Freeware Sektion bekommt langsam, sehr langsam Eigendynamik, Neu ist in dieser Ecke ein verbessertes Release für das ZIP Tool, das ich als Rückmeldung von einem Verwender bekommen habe und gleich dem Rest zur Verfügung stellen will. Ein freundlicher Mensch hat da ein wenig Error Handling eingebaut.
ZIP mit verbessertem Error Handling(November 2004)
Zum Thema Common Jahreskonferenz fällt mir noch ein: find ich immer wieder spannend, dieser Mix von IBM Marketing Show und Fachdiskussion unter Kollegen und das ganze immer im Spannungsfeld von RPG Hardlinern und einigen bösen Buben, die das alles nicht so bitter ernst nehmen und auch Verständnis für Leute haben, die keine AS400 haben wollen. Aber bei aller Schmäh' ist es natürlich für mich Ehrensache zu einem solchen Event was beizutragen, schließlich verdanke ich auch Common einen Teil meines fachlichen Rufes und bei aller Kritik, die ich zuweilen an zu großer IBM-Nähe geäußert habe, ein Problem aller User Groups, erfüllen solche Benutzer Vereinigungen wichtige und vielfältige Aufgaben für ihre Mitglieder. In erster Linie freue ich mich allerdings auch auf ein Treffen mit vielen lieben Kollegen und interessante Diskussionen am Rande der Veranstaltung.
So langsam fallen mir wieder die eigentlichs ein und ich stelle jetzt einfach mal wieder ein paar neue Sourcen in meine Freeware Abteilung, denn eigentlich, interessiert das die meisten Besucher am meisten, obwohl meine bissigen Randbemerkungen in dem einen oder anderen Artikel dieser Webseiten auch so ihre Trefferquote hat...
RPG InputStream ala Java(Oktober 2004)
Beim Thema Open Source fällt mir noch ein: woran es wohl liegen mag, daß das kein so richtiges Thema in der AS400 Community ist, an i-Series oder i5 kann es nicht liegen, schon eher an der mangelnden Bereitschaft was dazu beizutragen, das betrifft allerdings sowohl Anbieter als auch Verwender. Zu den Anbietern und deren Motive will ich hier nichts schreiben, schließlich bin ich selber einer und da soll sich jeder sein eigenes Bild machen, aber was die Verwender angeht, da vermisse ich zumindest Rückkopplung und auch Unterstützung. Ab und an mal eine Mail mit der Mitteilung: ich habe diese oder jene Komponente verwendet oder hilfreich gefunden, oder auch: dieses oder jenes gefällt mir nicht, ich habe es verbessert und möchte andere daran teilhaben lassen würde die ganze Open Source Abteilung schon lebhafter machen.
RPG OutputStream ala Java(September 2004)
ZIP auf der AS400 (Juni 2004)
i5 - Innovation hat einen Namen(Mai 2004)
Bisher habe ich versucht dieser Problematik zu entgehen, indem ich versucht habe in RPG Techniken vorzustellen, die für diese Programmiersprache ungewöhnlich oder neu sind. Das macht es dann allerdings wieder für den ein oder anderen schwierig die Programme zu verstehen. Je mehr Erläuterungen ich hinzufüge, umso mehr artet das in Arbeit aus und befindet sich dann auch im Wettbewerb mit meiner sonstigen Schreiberei für Zeitschriften und die Kontingente zum Schreiben sind begrenzt, das Projektgeschäft soll Schwerpunkt bleiben. Also wird getrennt: was als Codebeispiel für einen Artikel zu lang ist, wandert auf die Freeware Seite, was für einen Artikel in einer Zeitschrift zu offen und damit zu hart ist, landet auf meiner Webseite.
Heute will ich mal versuchen eine neue Rubrik, die dazwischen angesiedelt ist, aufzumachen, so eine Art von technischen Tips - in Codeform. Als Thema habe ich mir heute SQL Procedures vorgenommen
SQL User Defined Functions (April 2004)
Nachdem ich mich neulich schon so über das unsinnige tippen von /free und /end-free Einträgen geärgert habe, dass ich einen kleinen Generator geschrieben habe, fiel mir in der nächsten Sitzung auf, dass ich schon wieder unsinnige Tätigkeit verrichten musste. Mein Compiler, ich fürchte Ihrer genauso, wollte immer alles doppelt haben. Nachdem ich den Prototyp geschrieben hatte, wollte es, dass ich dasselbe nochmal als Procedure Interface eintippe; auch das Argument, dass das in Java intelligenter gelöst sei, hielt es nicht davon ab immer wieder zu kontrollieren, dass ich mich nicht vertippt hatte. Es wusste also, was ich dahin tippen musste, ließ es aber mich machen, um dann mit gehässigen Fehlermeldungen zu reagieren, wenn ich es nicht wusste, oder mich vertippte.
Gute Ideen sollte man ausschlachten, man hat so selten welche, dachte ich mir und schrieb einen kleinen Generator. Der ist zwar erst Beta und auf meine Arbeitsweise zugeschnitten, aber ich habe ihn mal in die Freeware Section gestellt, nicht zuletzt, damit ich unterwegs bei meinen Kunden selber besser drankomme.
Generieren geht über programmieren (März 2004)
Für mein Freeware Projekt eines Model View Controller Frameworks wird wohl ohnehin ein kleiner Generator benötigt und da habe ich mir gedacht, dass man ja vorab mal einen kleinen Generator schreiben könnte, der mir die stumpfsinnige Arbeit abnimmt die /free und /end-free Einträge zu generieren. Das Teil hat zwar noch ein paar Einschränkungen, aber für den Anfang... jedenfalls besser als immer wieder tippen.
Vielleicht findet sich ja mal jemand, der die Semikolons generiert, oder der den Generator so umbaut, dass er mit CRTCPP mitläuft, das kann er nämlich gegenwärtig nicht, weil er einen CPYF aus der QTEMP braucht. Aber da gibt es doch sogar Preprocessor APIs...
Freiheit in der Programmierung ohne Zwang (Februar 2004)
Programm Erstellungs Tool (Januar 2004)
RPG Hashtable (August 2003)
TransferData (Mai 2003)
Reflection in RPG (September 2002)