Feeds als Mail

Immer aktuelle Nachrichten und Firmen interne Mitteilungen überall da, wo Mail verfügbar ist.

Vorgestellt habe ich den Service schon (Link).

Nicht nur praktisch um allgemein auf dem Laufenden zu bleiben, es kann auch als Firmen internes Mitteilungsorgan genutzt werden. Eine Nachricht an die konfigurierte Mail Adresse wird sicher verteilt und archiviert.

r2e holt also den RSS Feed ab und sendet ihn als gewöhnliche EMail. Im IMAP Server (hier Dovecot) ist die Lebenszeit der Nachrichten auf 48h konfiguriert. Wichtig, damit die Übersicht erhalten bleibt und der Nutzer nicht selbst löschen muss. Das EMail Postfach gehört Mailman und verteilt die Nachrichten in die Postfächer der entsprechenden Abbonenten und hält ein Archiv vor.

Das nur als Alternative zum ECM System. Welche Lösungen habt Ihr im Betrieb?

Apache2: SAP webgui und mod_proxy

Das Apache2 Modul mod_proxy zur Anbindung des SAP ITS an die Aussenwelt funktioniert recht problemlos wenn es um WebDynpro’s geht.

Will man darüber hinaus auch die WebGUI Online nutzen, gibt es einen Stolperstein. Im Verbindungsaufbau zum WebGUI wird die Session ID (SSO) als POST in der URL ausgetauscht. Das sprengt die Direktive im Filter „/sap“ des Apache welcher dann das „/sap(“ nicht erkennt. Der Prozess bleibt für den User scheinbar stehen.

So funktioniert Verbindungsaufbau und Nutzung einwandfrei. Keine schöne Lösung – ich würde das nur für WebDynpro’s nutzen.

C: RND mit Millisekunden Seed

Das generieren von Zufallszahlen kann schwierig sein, wenn der Zyklus der Generierung mehrmals in einer Sekunde aufgerufen wird. Die Zufallszahl wird innerhalb der Sekunde gleich sein, benutzt man als rnd seed die Unixzeit.

Die Unixzeit ist eine 32Bit Zahl mit Vorzeichen und repräsentiert die Anzahl Sekunden seit 1.1.1970 00:00:00 Uhr. Im Klartext: 32Bit -1 Bit Vorzeichen = 31Bit. 2**31 = 2147483648 -1 (wir rechnen von 0 an) = 2147483647 als maximale Integer Zahl. Die Standardfunktionen srand und rand sind ebenfalls Funktionen welche eine 32Bit Zahl zurück geben. 32Bit Integer als rnd-seed ist die Unixtime, welche erst mit der Sekunde wechselt, weshalb die Vorgehensweise in dem Fall nicht empfehlenswert ist.

In der C Library stdlib.h existieren u.a. die Funktionen srand48 und lrand48. Für die Programmierung macht das keinen Unterschied: Das Seed bleibt 32Bit, genau so der Rückgabewert der Funktionen. Innerhalb der Funktion wird dem 32Bit Wert, 16Bit hinzu gefügt. Das Seed entspricht dann intern einem 13 stelligem Integer (mit Vorzeichen) – die drei zusätzlichen Stellen entsprechen den Millisekunden zur Unixzeit. Funktionsbeispiel:

1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <unistd.h>
 
int zufall(void)
{
  char zu;
  srand48((long int)time(NULL));
  zu = (lrand48()/rand()) %3 + 1;
  return zu;
}

So erhalte ich sehr schnell eine einstellige Zufallszahl zwischen 1 und 3.

Hat jemand eine andere Idee?