[Allegro] Vb.318 : V40.1 ist da

Bernhard Eversberg b-eversberg at gmx.de
Di Feb 4 09:09:44 CET 2020


Verlautbarung 318 zur allegro-Entwicklung                    2020-02-02
-----------------------------------------

V40.1 ist da und downzuloaden von  http://www.allegro-b.de
Das Paket a35 folgt noch diese Woche. (Dazu mehr weiter unten)

ACHTUNG: Es gibt keine sicherheitsrelevanten Gründe für die V40.1.
Das Windows10-Problem, vielleicht haben das noch nicht alle mitbekommen,
lag NICHT an allegro, sondern an einer Einstellung im Windows10-Server,
darüber wurde in Vb317 schon berichtet. Von daher kann man mit V39 
immer noch ruhig schlafen und auch arbeiten.
Somit ist keine Eile geboten, aber es gibt viele Verbesserungen im Detail,
besonders viele in den FLEXen und Hilfetexten:

INHALT
------

* Nochmals: Windows-10-Problem im Netzwerk gelöst - Es lag nicht an allegro!

* Problem mit FLEX: "close x" gelöst

* a35: Volltextsuche mit wahlfreiem Export

* srch: Suchbegriff aus Datei entnehmen

* fts.job : acon macht damit RegEx-Volltextsuche 

* cambio-flx (Währungskurse) jetzt https-fähig

* Und noch ein Knüller ...

* Nachgeplänkel: Denkanstoß zur Dekadenz des Datenwesens

 
Das Win10-Problem im Netzwerk ist gelöst! (Im Forum schon mitgeteilt am 11.12.2019)
-----------------------------------------
Mehrere Anwender hatten Ärger im Windows-Netz: Urplötzlich war in a99 kein
Zugriff mehr zur Datenbank und man mußte neu starten. Zwar ging dabei nichts
kaputt, aber es verursachte doch ein ungutes Gefühl...
Bei einer größeren Spezialbibliothek wurde die Ursache herausgefunden, wie 
Kollege Wolf aus Freiburg dankenswerterweise mitteilte.
Damit wäre ein Ärgernis vom Tisch, das wohl hier und da sogar - ohne daß man es 
belegen hätte können - dem System allegro angelastet wurde. 
Aber auch Windows ist unschuldig:
Die Ursache liegt in einer Einstellung bei der Windows-"Laufwerkszuordnung".
Das Problem tritt auf, wenn man mittels GPO (Group Policy Object: siehe zum 
Beispiel: https://de.wikipedia.org/wiki/Group_Policy_Object ) auf dem Server 
den Usern ein Laufwerk zuweist. 

Man findet das in den GPOs des Windows-Servers unter:

  Benutzerkonfiguration / Einstellungen / Windows Einstellungen / Laufwerkszuordnungen

In den "Eigenschaften" des Laufwerks gibt es die Eigenschaft "Aktion", und da 
ist dann leider "Ersetzen" eingestellt. Es sollte aber "Aktualisieren" sein. 
Dies braucht man nur zu ändern, dann ist das Problem weg. Denn:
"Ersetzen" führt zu einer kurzen Unterbrechung, die von Windows XP u. 7 ignoriert 
bzw nicht weiter dramatisiert wurde. Windows 10 quittiert das aber mit einem 
kurzzeitigen Schließen der Verbindung (so, als wenn man einen USB Stick abzieht
und der Explorer sich daraufhin schließt) und damit steht Allegro dann vor einer
zuen Tür. Mit der Einstellung "Aktualisieren" passiert das nicht.


FLEX: open x ... close x; write ...
-----------------------------------
Z.B. in a35-Jobs kann's vorkommen, daß man in eine Datei schreibt,
die man mit "open x dateiname" geöffnet hat. Nachdem alles geschrieben ist,
macht man "close x" und will danach mit "write ..." den eigentlichen output
für den Endnutzer fortsetzen. Das klappt dann nicht. Abhilfe: Zuerst 
nach dem "close x" den Befehl "open x stdout" geben. Damit wird
die "Standardausgabe" wieder geöffnet. Und das ist der Kanal, über den
acon mit avanti redet.
Im Hilfetext "h xopen" wurde unter "open x name" diese Besonderheit
ergänzt.


a35 : Volltextsuche mit wahlfreiem Export
-----------------------------------------
Für diese Aufgabe wurden verbesserte Möglichkeiten geschaffen.
   Wie es an der Oberfläche aussieht, kann man hier sehen:
   http://www.allegro-b.de/db/demo/a35-pc.php
       im Menü unter "Suchen / Volltextsuche mit Export"

Das a35-Paket wurde aktualisiert:
   http://www.allegro-b.de/download/a35.zip (Windows) und ...a35.gz (Linux)
Wichtig sind dabei auch die neuen Versionen von srch / srch64 und acon. Nur damit
kann man korrekte Resultate erzielen, wenn man UTF-8-Daten hat: z.B. gehen
dann reguläre Ausdrücke (s.dazu: h ftr) auch mit chinesischer Schrift.

Neu bzw. aktualisiert sind diese Dateien:

   Datei          Ordner           Funktion      

1. a35ftex.htm    db/dbname        Das Formular zum Start von a35ftex.job
                                      Mit wählbaren Exportparametern, siehe 2:
                                   Auch manueller Aufruf möglich:
                                     h a35tex.htm  eingeben in den roten Rahmen

2. htms.Xpr,      /allegro/db/...  Beispiele für Parameter zum Export der Ergebnisse
   a35ext.Xpr etc.                 In a35ftex.htm als <select>-Liste anzubieten                  
        X = cfg der Datenbank, Default ist a

3. a35ftex.job    db/scripts/jobs  Führt Suche mit RegEx und Export aus
                                     dazu wird  srch.exe  benutzt bzw. srch64 (Linux)

4. a35-*-menu.php db/dbname        Angebot von a35ftex.htm im a35-Menü unter "Suche" 
    Neu ist darin diese Zeile zum Laden von a35ftex.htm:
   <li><a href="javascript:reqHelp('a35ftex.htm');">Volltextsuche mit Export</a></li>

5. ajax4.php      /db              Kommunikation Browser <-> Server [avanti+acon]
                                     Startet Jobs mit eingegebenen Daten (aus Formularen)
                                     und sendet Ergebnisse zurück

6. a35.js         /db/scripts/     javascript zum Einbinden in *.php: a35-pc.php etc.
   a35-min.js                         Darin z.B. show(a) für externes Fenster

Nur in 1. und 2. sind Anpassungen nötig; die Exportparameter werden dabei die
meiste Arbeit machen: Beispiele für's A-Schema sind  htms.apr, e-htm.apr und a35ext.apr 
Die eigentliche Arbeit, also das Suchen, macht nicht acon, sondern srch(.exe)!
Es wird von acon aus dem a35ftex.job heraus gestartet und liefert dann
zuerst die internen Satznummern der gefundenen Sätze. Diese wandelt acon
dann in eine Erg.Menge, sortiert und exportiert diese.
Das Programm srch(.exe) bekam dafür eine neue Funktionsweise, mit der es einen
Suchbegriff mit UTF-8 Codes unverfälscht übernehmen kann, in diesem Fall von acon:


srch: Suchbegriff aus Datei entnehmen
-------------------------------------
Dem Volltext-Suchprogramm srch muß man bekanntlich einen Suchbegriff
übergeben, und zwar mit einer Option -s oder -r:
   srch -sbegriff ...  oder   srch -rbegriff ...   (RegEx)
Es kann sinnvoll sein, z.B. im a35-Kontext, den Suchbegriff auf dem
Umweg über eine Datei zu übergeben. Diese muß dann im Datenordner
liegen, d.h. vorher dort deponiert worden sein, z.B. von dem Job
a35ftex.job. Der Dateiname darf keinen . enthalten.
Man startet dann srch so:
   srch -s?fname ...   bzw.   srch -r?fname ...
wenn "fname" der Name der Datei ist (ohne Pfad, nur der Dateiname).
Das ? sagt dem Programm, daß dann ein Dateiname folgt und kein Begriff.
Hinweis: srch löscht danach die Datei fname - sie wird nicht mehr gebraucht.
So wird das auch im a35ftex.job gemacht, siehe oben. Als fname dient
dabei die Prozessnummer von acon. Das ist immer eine eindeutige Zahl,
weil jeder Job von einer eigenen Instanz von acon bearbeitet wird.
So kann es keine Konflikte geben.

Wichtig, wenn die Datenbank UTF-8-Codes verwendet:
Wenn nach UTF-8-Zeichen gesucht werden soll, muss man für srch eine
andere Datei s1.asp verwenden. Man legt sie in den Datenordner.
srch sucht s1.asp neuerdings dort zuerst - bisher nur auf dem ProgDir
von acon. Diese 3 Zeilen genügen in s1.asp, wenn man UTF-8 in der
Datenbank hat:

  X       Leerzeichen ersetzt durch X
. P       damit man einen Punkt findet (denn . ist Joker)
A/Z a     gross -> klein  (wirkt nicht auf Umlaute!)

(Hiermit sind dann aber z.B: Umlaute nicht aufgelöst suchbar. Derzeit
werden bereits chinesische Daten damit erfolgreich durchsuchbar.)


fts.job : RegEx-Volltextsuche mit acon - Aber nicht nur das...
--------------------------------------
Manchmal könnte man eine automatisierbare Volltextsuche brauchen,
die z.B.jede Nacht eine bestimmte Auswertung macht.
Oder auch schnell mal eben manuell eine Suche starten und relativ
rash eine Ergebnisdatei in Empfang nehmen. Unter Linux ist
das evtl. auch gut brauchbar. 
Ansonsten mag es als Lehrbeispiel für eine FLEX-Anwendung 
durchgehen. Das Ding ist nicht sehr groß und üppig kommentiert.
(Die Kommentare sind auf Englisch, weil gewisse Anwender das brauchen)

"ABER es gibt doch srch - reicht das nicht?" wird man sagen.
Schon, aber mit fts.job hat man noch mehr Möglichkeiten. Statt
der Volltext-Suche läßt sich darin jede beliebige in FLEX
programmierbare Aktion einbauen, die man mit Datensätzen 
durchführen will. Im fts.job ist das kommentiert: Es gibt
zwei mit *********** markierte Abschnitte für eigene Einbauten.
Gewiß, in a99 ist es leichter, zuerst auf beliebige Art eine
Erg.Menge zu erzeugen und dann einen FLEX darauf anzuwenden.
Es gibt jedoch Anwender, die nur unter Linux arbeiten und daher
kein a99 haben, sondern nur acon und a35. Und einen Job wie fts.job
kann man auch in eine a35-Oberfläche einbauen, statt mittels
Kommandozeile acon mit diesem Job zu starten.
Das Potential von a35 wird, nebenbei, noch nirgends annähernd ausgereizt. 
FLEX-Jobs werden da sozusagen zu "Apps", die man erstellen kann,
ohne irgendwas in C oder JavaScript oder PHP oder gar Java zu schreiben.

cambio.flx für https befähigt  [Währungskurse von EZB abrufen]
-----------------------------
Die EZB (die in Frankfurt) hat längst ihren Server auf https umgestellt.
Damit kommt der cambio.flx klar, wenn man ihn mit a99 startet. Mit acon
unter Linux aber ging's nicht mehr. Das liegt daran, daß Linux-acon die 
https-Zugriffe noch nicht kann. 
Das Problem ließ sich umschiffen, indem für den Abruf der EZB-Daten
das Hilfsprogramm "curl" eingesetzt wurde. Wer dieses noch nicht hat,
kann es sich leicht besorgen, es ist FreeWare und kann bei vielen
Aufgaben sehr nützlich sein:
   https://curl.haxx.se/windows/
Der neue  cambio.flx  funktioniert dann genauso schnell wie der alte.
UND jetzt eben auch mit acon. Geben Sie auf c:\allegro dann mal ein:
acon -jflex\cambio.flx   (bzw. Linux:  ./acon ... )
und sofort erscheint im DOS-Fenster bzw. Linux-Kommandofenster die
gesamte Liste der Währungskurse. 
Unter Linux ist dies der Befehl zum Abruf:
curl -s https://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml >ezb.xml
und Windows kann das auch. Jedoch Win'10 kann's auch mit  get I..., z.B.:
get Ihttps://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml 
und dann z.B. mit  ins $EZB   die Daten in einer Variablen ablegen.


Und noch ein Knüller
--------------------
Man sieht manchmal Datensätze, bei denen man nicht alles versteht.
Besonders bei solchen, die man aus DNB oder GBV oder sonstwo
übernommen hat. Und in Exemplar-, Bestell- und sonstigen Sätzen,
da kommt ein WirrWarr von Unterfeldern vor - was bedeuten die alle?
Seit 2004 gibt es da eine noch immer weithin unbekannte Abhilfe.
Geben Sie dann, mit so einem Satz vor Augen, mal diesen Befehl ein:
X cfga
Mehr dazu:  h vb179#188


**********************************************************************

Die 20er Jahre fangen interessant an! Ein Nachgeplänkel und Denkanstoß
----------------------------------------------------------------------
Blicken wir mal eine Dekade zurück:
Auf dem allegro-Expertentreffen 2009 wurde eine Präsentation gezeigt
zum Thema "allegro im Web":

  http://www.allegro-b.de/download/doku/allegro-web.pps

Darüber stand unsichtbar das Motto: (Quelle unbekannt)

"Das Neue ist des Guten Feind, und sei's auch gar nicht so gemeint.
Doch haben Neues wir empfangen, nach Neu'rem noch wir bald verlangen:
Setzt Schranken nicht und nicht Barrieren, den Dingen, welche wir begehren!"
(herangezogen wurde das auch schon in Vb.223)
Im Vortrag fiel dazu das Stichwort "Falle der Komplexität" ...

Diese Haltung, die wohl nicht erst mit dem Internet in die Welt gekommen ist,
führte letztendlich zu der hemmungslosen Überladung und -lastung der
Inhalte, mit denen uns so gut wie alle kommerziellen Websites was Gutes
zu tun sich Mühe geben. Aber auch Freibier-Angebote, wie z.B. die
"Discovery-Systeme", muten sich und uns weder Schranken noch Barrieren zu.
Schön, aber dadurch ist die Komplexität des Datenwesens und Netzbetriebs 
unablässig angewachsen und damit auch der Ressourcenverbrauch, also Netzlast,
Speichervolumen, Algorithmik, usw. und in der Folge dann auch Hardwareaufwand,
Stromverbrauch, Rohstoffbedarf und Elektronikschrott.
Thematisiert wurde die Sache vor kurzem z.B. hier:  (29.10.2019 in t3n)
   https://t3n.de/news/50-jahre-internet-dekadent-1213099/
unter dem Titel: "50 Jahre Internet - Wir sind dekadent".
Die zentrale These: "Unsere Nutzung des Internets und moderner Technologie 
wird immer dekadenter und wir verschwenden Ressourcen."

Neuerdings hat sich das Umweltbundesamt eingeschaltet, denn die
Bundesregierung will von 2020 an aller "energie-ineffizienten, kurzlebigen
und aufgeblähten Software den Kampf ansagen". Und zwar soll als Gütesiegel
der bekannte "Blaue Engel" auch für Software verliehen werden. 
Wir schauen dann mal, ob wir für "allegro" so einen kriegen können.
Denn auch Bibliothekssysteme werden sich diesem neuen Qualitätskriterium
zu stellen haben. Eine schöne Chance für Bibliotheken, Zeichen zu setzen.

https://www.heise.de/newsticker/meldung/36C3-Blauer-Engel-gegen-aufgeblaehte-Software-segelt-2020-heran-4624071.html

Das Kernproblem ist eigentlich ein sehr altes:
Frei verfügbare, aber doch begrenzte Ressourcen werden nicht effizient
genutzt, sondern hemmungslos ausgebeutet. Information aus dem Netz ist
im Bewußtsein des Endnutzers eine frei verfügbare, unerschöpfliche Sache.
Die Flatrate macht es dem Endnutzer sogar unmöglich, das Verschwendertum 
auch nur zu bemerken und tatsächlich sparsames Verhalten zu kultivieren! 
Es wäre also eigentlich die Flatrate abzuschaffen, d.h. der Endnutzer müßte 
sein verbrauchtes Volumen bezahlen, UND jede Anbietersoftware wäre kritisch 
zu evaluieren. 
Irgendwas wäre auch zu tun gegen die ausgeuferte Harvesterei, die das Netz
und alle Server bei Tag und Nacht größtenteils völlig nutzlos belastet.
Die Problematik als solche ist lange bekannt (engl. "Tragedy of the commons",
siehe Wikipedia), gute Lösungen aber gibt's wohl gar nicht. 
Siehe dazu auch: http://inetbib.de/listenarchiv/msg11448.html  [2003]
Wirksame Schranken und Barrieren zu setzen, das scheint noch immer 
weder technisch noch politisch machbar. Nicht nur im Internet, aber dort
vielleicht doch? Jede(r) mache sich seinen Reim.

      ***************** Ende des Nachgeplänkels ***************** 




Mehr Informationen über die Mailingliste Allegro