Geschrieben von skaldrom am 18. October 2007
Voraussetzungen
Office 2007 greift um sich! Immer öfters begegnet man den docx Dateien im OpenXML Format. Die vorgestellte Lösung erlaubt das Öffnen und Ansehen dieser Dateien in OpenOffice. Ob sie allerdings echt Layouttreu sind, habe ich nicht gecheckt. Damit es läuft sollte ein OpenOffice > 2.0 installiert sein → bei mir hats mit 2.2.1 gefunzt.
Vorgehen
Zum Glück wird dee Translator weiterentwickelt. Die entsprechenden Dateinamen müssen einfach angepasst werden. Der Downloadlink sollte generisch sein.
- Download des OpenOffice OpenXML Translator - RPM’s von Novell.
- Im Verzeichnis drin das RPM entpacken (Dateinamen bitte anpassen):
rpm2cpio odf-converter-1.0.0-5.i586.rpm | cpio -iv --make-directories
- OpenOffice schliessen und die entsprechenden Erweiterungen ins richtige Verzeichnis kopieren:
cp -r usr/lib/ooo-2.0/* /usr/lib/openoffice/
- Die Doku kopieren:
cp -r usr/share/doc/packages/odf-converter /usr/share/doc/
- Mime-XML kopieren:
cp usr/share/mime/packages/odf-converter.xml /usr/share/mime/packages/
- Mime-Datenbank updaten:
update-mime-database /usr/share/mime
- KDE3 Mime:
cp opt/kde3/share/mimelnk/application/* /usr/share/mimelnk/application/
- Gnome Mime:
cp opt/kde3/share/mimelnk/application/* /usr/share/mimelnk/application/
- Dann noch die Icons:
cp -r opt/gnome/share/icons/* /usr/share/icons/
- Sich freuen!!!
Addition Mai 2008:
Zamzar macht das nun auch online! Ganz stark, und vorallem mit allen Formaten, also auch xlsx (Excel 2007)!
Ähnliche Artikel
Eingeordnet in Desktop, Linux | 4 Komentare »
Geschrieben von skaldrom am 27. September 2007
Problem

Some hosting providers do not grant the MySQL-userright CREATE TEMPORARY TABLES to their customers. Maybe because it’s full moon at the moment and everyone seems a bit crazy. But a href=”http://drupal.org/”>Drupal really wants this right and so a workaround is needed
…
The error during the installation could be something like this:
user warning: Access denied for user: 'drupal@%' to database 'drupal' query: CREATE
TEMPORARY TABLE missing_nids SELECT n.nid, n.created, n.uid FROM node n LEFT
JOIN node_comment_statistics c ON n.nid = c.nid WHERE c.comment_count IS NULL in
/var/websites/drupal/includes/database.mysql.inc on line 167.
Kind of a Solution
I have written a patch for Drupal 5.2 which should kinda solve the problem. In Drupal, CREATE TEMPORARY TABLES is only used in the db_query_temporary function, found in the file includes/database.mysql.inc, which is a very clean progamming style! Basically, this patch creates a real table instead of a temporary one. The name and the creationdate is stored in an extra table called temporary_table. The cron.php removes these tables on a regular base. If the table already exists, it is dropped.
This patch only works for MySQL and MySQLI and may be a performance loss. I have tested this patch only on a low traffic site and I do not know if there are race conditions. Use it on your own risk…
Addendum
Another solution has been posted at Drupal.org.
Here it is: Patch to use Drupal without the CREATE TEMPORARY TABLES.
To apply it, change into the Drupal base directory and issue patch -p0<drupalwotemptables.patch on the commandline.
Ähnliche Artikel
Eingeordnet in Web | Keine Kommentare »
Geschrieben von skaldrom am 26. September 2007
Unter Elearning wird oftmals noch das dröge Lernen von verbugten, sturen CD’s seiner selbst willen verstanden. Einen Schritt weiter geht das Blended Learning und die Learning Management Systems (lms) wie zum Beispiel Moodle.
Es geht aber auch ganz einfach und ganz spassig: AK Kappenberg hat mit WinChemie eine Programmsammlung mit einigen Perlen gratis zum Download ins Web gestellt, und das nicht nur für Chemie!

Bei Der grosse Preis wird die Klasse in mehrere Gruppen eingeteilt, die live und abwechslungsweise gegeneinander Fragen beantworten, die mit dem Beamer projiziert werden. Dabei können die Gruppen Punkte einsetzen, sich beraten, ärgern oder freuen. Der Lerneffekt ist riesig, weil es einfach Spass macht. Die Fragen können mit einem Editor geändert und für jedes Fachgebiet angepasst werden.
Achtung: Damit das Teil läuft müssen die EconNSoft Core Components von AK Kappenberg vorgängig installiert werden, ansonsten gibt es eine nichtssagende Fehlermeldung!
Als nächstes werde ich AK Riddle austesten. Das scheint über das Netzwerk zu funktionieren. Ein Erfahrungsbericht dürfte folgen…
Ähnliche Artikel
Eingeordnet in Desktop, eLearning | Keine Kommentare »
Geschrieben von skaldrom am 18. September 2007
Geschlossenes Mediawiki
 |
Ein Mediawiki im Intranet muss unter Umständen abgeriegelt und ausschliesslich einer geschlossenen Benutzergruppe zugänglich gemacht werden. Wenn man wissen will, welcher Benutzer welche Wikiseite bearbeitet hat, reichen leider die schönen Basic-Authentication Features von Apache nicht aus. Damit Mediawiki alle zur Anmeldung zwingt muss die Datei LocalSettings.php folgendermassen ergänzt werden: |
############## Handmade ################
# Specify who can edit: true means only logged in users may edit pages
$wgGroupPermissions['*' ]['createaccount'] =
false;
$wgGroupPermissions['*' ]['edit'] =
false;
$wgGroupPermissions['*' ]['read'] =
false;
$wgGroupPermissions['sysop']['createaccount'] =
true;
$wgGroupPermissions['user' ]['edit'] =
true;
$wgGroupPermissions['user' ]['read'] =
true;
# Logo
$wgLogo =
"/images/bbbq.gif";
# Pages anonymous (not-logged-in) users may see
$wgWhitelistRead =
array ("Spezial:Userlogin",
"Wikipedia:Help");
Benutzer
Am Einfachsten ist sicher das Kopieren eines bestehenden Users (eventuell in MySQL). Dabei müssen user_id unduser_name eindeutig sein. Normalerweise braucht es keine weiteren Rechtemanipulationen. Sollen die Benutzer trotzdem gewissen Gruppen zugeteilt werden, gibt die Mediawiki-Dokumentation Auskunft über die Rechte und die Zuteilung zu Gruppen.
Passworte
In Mediawiki 1.10 ist die Passwortverschlüsselung in der Funktion includes/GlobalFunctions.php definiert:
function wfEncryptPassword
( $userid,
$password ) {
global $wgPasswordSalt;
$p =
md5( $password);
if($wgPasswordSalt)
return md5( "{$userid}-{$p}" );
else
return $p;
}
$wgPasswordSalt kann in LocalSettings.php umdefiniert werden, aber normalerweise ist es in includes/DefaultSettings.php auf true gesetzt. $userid ist die user_id aus der Tabelle user.
Das Passwort kann mit php ausgegeben werden (angenommen für user mit id 15):
Oder direkt in Mysql:
UPDATE bi_user SET user_password=md5(concat(user_id,'-',md5('PASSWORT'))) WHERE user_id=15;
Ähnliche Artikel
Eingeordnet in Web | Keine Kommentare »
Geschrieben von skaldrom am 18. September 2007
Upgrade von 1.7 auf 1.10
Um die installierte Version zu checken kann folgende Spezialseite aufgerufen werden: http://wiki.yourhost.ch/mediawiki/index.php/Spezial:Version.
Zuerst muss man mal upgraden und das Baby installieren:
apt-get update
apt-get install mediawiki mediawiki1.10
Danach sollte man zu folgenden Dateien kommen:
LocalSettings.php
Ist bei Version 1.7 an einem anderen Ort:
cp /var/lib/mediawiki1.7/LocalSettings.php /etc/mediawiki1.10/
Eventuell muss in der Datei das Verzeichnis angepasst werden.
AdminSettings.php
Hat bei mir noch nicht existiert:
cp /usr/share/doc/mediawiki1.10/examples/AdminSettings.sample /etc/mediawiki1.10/AdminSettings.php
Und danach die Datei editieren und Usernamen/Passwort setzen.
Verzeichnisse: extensions und images
Gibt es bei uns nicht… Sie werden sich aber höchstwahrscheinlich im Verzeichnis /var/lib/mediawiki1.7 befinden und müssen unter Umständen in /var/lib/mediawiki1.10 kopiert werden.
apache.conf
/etc/mediawiki1.7/apache.conf und /etc/mediawiki1.10/apache.conf müssen der lokalen Konfiguration angepasst werden.
Nun muss die Datenbank von der Kommandozeile aus geupdated und Apache neu gestartet werden.
cd /var/lib/mediawiki1.10/maintenance
php5 update.php
/etc/init.d/apache2 reload
Ein Aufrufen der Seite provozierte bei mir den Fehler: failed to open stream: Permission denied in /usr/share/mediawiki1.10/includes/WebStart.php on line 86. Dagegen half folgendes:
chown www-data.www-data /etc/mediawiki1.10/*
chmod a+r /etc/mediawiki1.10/*
Ähnliche Artikel
Eingeordnet in Web | Keine Kommentare »
Geschrieben von skaldrom am 8. September 2007
Die Freuden des Bloggens
Blogging ist genial. Im Beitrag Struktogramme (Nassi Shneiderman) mit dem Computer zeichnen habe ich leider Structorizer nicht zum Laufen gebracht. Dem Autor zu schreiben traute ich mich nicht ganz, da ich sicher war, dass es nur an meiner eigenen, angebohrenen Blödheit gelegen hat. Vielleicht stimmt das auch, aber Bob Fisch hat höchtpersönlich einen Kommentar unter das Posting gesetzt, mit der Bitte ihm zu mailen. Das habe ich gemacht und innerhalb weniger Stunden hat er eine neue Version auf der Website publiziert. Genial, unglaublich, sowas erlebt man nicht mal bei hochbezahlten Serviceverträgen.
Structorizer

Structorizer läuft nun wunderbar und hat seinen positiven Eindruck den ich von den Screenshots hatte bestätigt:
- Structorizer unterstützt alle Sinnbilder nach DIN 66261:
- Inklusive Mehrfachauswahl, Unterroutinen (Call) mit “Sub”-Darstellung, Aussprung (jump), …
- Structorizer ist mehrsprachig:
- Er unterstützt Englisch, Deutsch, Französisch, …
- Exports:
- Export als BMP-Bilder und direktes Ausdrucken.
- Einfärben:
- Verschiedene Farben können die Übersichtlichkeit erhöhen.
Die Bedienung ist mittels Drag-und-Drop sowie sprechenden Tooltips nach ein paar wenigen Minuten intuitiv. Es läuft stabil und das Kreieren von Struktogrammen macht einfach Spass.
Bob Fisch gebührt grössten Respekt. Ein solches Projekt in Angriff zu nehmen und auch bis zu einer verwendungsfähigen Version voranzutreiben, es der Allgemeinheit gratis zur Verfügung zu stellen (inklusive Quellcode) und dann erst noch Support für DAUs wie mich zu übernehmen ist eine Leistung die Anerkennung verdient!
Ähnliche Artikel
Eingeordnet in Desktop, Linux, Theorie und Schnipsel | 6 Komentare »
Geschrieben von skaldrom am 30. August 2007
Wie schon ein paar mal erwähnt: Websvn ist ein geniales Tool! Es ermöglicht das Browsen von verschiedenen Repositories übers Web mit dem Browser. Manchmal möchte man aber nicht alle Verzeichnisse freigeben und anzeigen.
Ich habe einen Patch erstellt, der eine neue Option in /etc/websvn/config.inc erlaubt: $config->excludeRepository(”name”);. Diese Option kann mehrfach angegeben werden und alle excludeten Repositories werden nicht mehr dargestellt…
Beispiel:
// Select Repositories to exclude
$config->excludeRepository("Geheime-Codes");
$config->excludeRepository("Jokes");
Und hier der Patch: Websvn exclude Repositories Patch.
Viel Spass… Eine Rückmeldung bei Anwendung würde mich freuen…
Ähnliche Artikel
Eingeordnet in Web | 1 Kommentar »
Geschrieben von skaldrom am 28. August 2007
Struktogramme
Struktogramme sind einiges platzsparender als Flussdiagramme. Gerade für Programmierneulinge ist es eine gute Möglichkeit Abläufe zu visualisieren.
NSDs können natürlich von Hand mit Stift auf Papier gezeichnet werden. Allerdings nur, wenn man ein Mensch mit exakter Schreibweise und ruhigem Strich ist. Bei Sauklauen wie mir erinnern die Struktogramme eher an moderne Kunstwerke als an Algorithmen. Computerapplikationen helfen gut in diesen Fällen und so habe ich ein Programm dafür gesucht, welches Struktogramme sauber darstellen kann und unter Linux lauffähig ist.
Structorizer
Structorizer sieht schön aus, läuft unter Linux und Windows und ist open Source.
Er hat wegen speziellen Umständen sein eigenes Posting bekommen.
Nessi
Nessi ist in zwar Java geschrieben, läuft aber trotzdem recht flott. Es besteht aus einem einzigen JAR das mit java -jar Nessi.jar gestartet werden kann und somit eigentlich keine Installation und/oder Gemurkse benötigt. Mit ein Bisschen Zielen kann man die Blöcke gut platzieren und verschieben. Der einzig richtige Nachteil ist die fehlende Mehrfachauswahl.

Neben der Darstellung bietet Nessi auch noch ein “Processing” der Diagramme. Hier eine Implementierung des Hasenbein-Algorithmus, der für einen Hühner-Hasen-Bauer aus der Anzahl der Tiere und Beine die Anzahl der Hühner und Hasen errechnet. Dieser Ablauf kann “ausgeführt” werden und liefert elegant das Resultat.

Für Fortgeschrittene
Ein Projekt für irgendwanneinmal ist DEViL. DEViL ist ein Editor für visuelle Sprachen und die NSDs sind nur eine Implementierung davon. Damit zu arbeiten wäre echt spannend, leider fehlt mir grad die Zeit dazu
.
Ähnliche Artikel
Eingeordnet in Desktop, Theorie und Schnipsel | 1 Kommentar »
Geschrieben von skaldrom am 27. August 2007
Aufgabenstellung
In einer Umfrage wurde gefragt, wie viele Minuten für den Arbeitsweg gebraucht und mit welchem Verkehrsmittel sie zurückgelegt werden:
| Wieviel Zeit in Minuten benötigen Sie für den Schulweg? |
Welches Verkehrsmittel benützen Sie? |
| 15 |
Individualverkehr |
| 25 |
Öffentlicher Verkehr |
| 5 |
zu Fuss |
| 40 |
Individualverkehr |
| 30 |
Sonstiges |
| 55 |
Kombiniert |
| 80 |
Sonstiges |
| 45 |
Öffentlicher Verkehr |
| … |
… |
Wie stellt man das als Diagramm dar? Jede einzelne Minute kann es nicht sein, das würde wohl etwas unübersichtlich… Man müsste Bereiche bilden können (bis zu einer Viertelstunde, zwischen einer Viertelstunde und einer halben Stunde, …). Genau hier kommen die Histogramme ins Spiel…
Vorgehen
Für die Diagrammdaten muss eine Tabelle nach folgendem Schema erstellt werden:
|
A |
B |
C |
D |
E |
F |
G |
| 1 |
Zeit [Min] |
Individualverkehr |
Kombiniert |
Öffentlicher Verkehr |
Sonstiges |
Obergrenze |
Insgesamt |
| 2 |
0-15 |
|
|
|
|
|
15 |
| 3 |
16-30 |
|
|
|
|
|
30 |
| 4 |
31-45 |
|
|
|
|
|
45 |
| 5 |
46-60 |
|
|
|
|
|
60 |
| 6 |
61-75 |
|
|
|
|
|
75 |
| 7 |
76-90 |
|
|
|
|
|
90 |
| 8 |
91-120 |
|
|
|
|
|
120 |
| 9 |
>121 |
|
|
|
|
|
9999 |
Da wir nach Art und Weise wie der Schulweg zurückgelegt wird gruppieren möchten, muss die Tabelle mit den Rohdaten zuerst danach sortiert werden: Daten > Sortieren….
Nun wirds tricky. Folgendes wiederholen für alle leeren Spalten (Individualverkehr, Kombiniert, Öffentlicher Verkehr, …):
- Den leeren Zellen eines Bereichs markieren (Beispielsweise B2-B9 für Individualverkehr)
- Einfügen > Funktion… > Statistik > HÄUFIGKEIT (FREQUENCY in Englisch). Daten sind die Quelldaten (die Minuten für den Individualverkehr) und die Klassen sind die Obergrenzen (bei diesem Beispiel G2:G9). Und nun (!) die drei Tasten ctrl+shift+Enter (Deutsch: strg+umschalt+Eingabe) gleichzeitigdrücken.

Nachdem alle Arten von Verkehrsmitteln so eingereiht sind, kann ein Diagramm erstellt werden mit den Daten ohne die Obergrenze (A2:F9).

Weiteres
Es gibt auch ein Add-In (Analyse-Funktionen), aber als Kontrollfreak mach ichs gerne von Hand…
Learn-Line hat eine sehr gute Einführung und Arbeitszimmer hat sie auch noch bebildert.
Ähnliche Artikel
Eingeordnet in Desktop | Keine Kommentare »
Geschrieben von skaldrom am 15. August 2007
Websvn kann mehrere Repositories in verschiedenen Unterverzeichnissen darstellen, allerdings muss man sich entscheiden: Alle Repositories aller Unterverzeichnisse aufs mal oder nur Repositories eines einzelnen Unterverzeichnisses.
Bei uns im Betrieb hat jede Abteilung (Informatik, Physik, …) ihre Repositories in eigenen Verzeichnissen auf dem Server. Websvn unterstützt zwar mehrere parentPath und stellt alle SVN-Repositories in diesen Verzeichnissen dar, will man aber auch noch einzelne Ansichten für die Abteilungen machen wird es schwer. Lösung: Der parentPath wird an Hand der URL gesetzt.
Unter Debian kann die Datei /etc/websvn/svn_deb_conf.inc direkt missbraucht werden. In anderen Distributionen muss eventuell am Schluss der Datei config.inc folgendes Codesnippet eingefügt und danach für die Änderungen gebraucht werden:
<?php
if ( file_exists("/etc/websvn/svn_sup_conf.inc") ) {
include("/etc/websvn/svn_sup_conf.inc");
}
?>
Nun soll an Hand des Pfades der /etc/websvn/svn_deb_conf.inc parentPath gesetzt werden:
- /websvn
- Alle Repositories
- /websvn/informatik
- Alle Repositories der Abteilung Informatik
- /websvn/physik
- Alle Repositories der Abteilung Physik
Dafür muss man in der oben konfigurierten Datei folgendes zum Besten geben (bei mehr Abteilungen einfach intelligent erweitern):
<?php
$repository=
dirname($GLOBALS['HTTP_SERVER_VARS']['PHP_SELF']);
// echo "::: $repository :::";
switch($repository) {
case "/websvn/informatik":
case "/websvn/physik":
$reppath=
"/data/svn/repositories/".
substr(dirname($GLOBALS['HTTP_SERVER_VARS']['PHP_SELF']),
8).
"/";
// "/websvn/" entfernen
//print "::: $reppath :::"; exit(1);
$config->
parentPath($reppath);
break;
default:
$config->
parentPath("/data/svn/repositories/informatik");
$config->
parentPath("/data/svn/repositories/physik");
break;
}
?>
Der Apache muss dies natürlich auch noch mitkriegen. Die /websvn/ URL-Teile müssen dort konfiguriert werden (site-available oder .htaccess) und das wärs dann:
# Websvn is installed in /usr/share/websvn
Alias /websvn /usr/share/websvn
Alias /websvn/informatik /usr/share/websvn
Alias /websvn/physik /usr/share/websvn
<Location /websvn>
# DO FUNKY (AUTHENTICATION) STUFF HERE
<IfModule mod_php4.c>
php_flag magic_quotes_gpc Off
php_flag track_vars On
</IfModule>
</Location>
Ähnliche Artikel
Eingeordnet in Linux, Web | Keine Kommentare »