OpenStreetMap - Wikipedia für Karten

Nach dem ich OpenStreetMap schon länger auf meinem Radar habe, hab ich’s jetzt mal ausprobiert. Also natürlich erstmal den Heimatort anschauen. Mmh, während die Innenstadt für mich überraschend gut kartographiert ist, fehlt natürlich die Straße vor meiner Haustür. Naja, bevor ich etwas kaput mache, ändere ich erstmal nix. Aber ein paar Meter weiter ist ein Straßenname falsch geschrieben. Also klicke ich auf “Edit”, melde mich an und ändere ihn. Am nächsten Tag ist die Änderung auf der offiziellen Karte. Wow.
Danach schalte ich in den “Play”-Modus und spiele ein bischen rum. Nach dem ich mir das Hilfevideo reingezogen hab, kann ich meine Straße einfügen und gleich den ganzen Stadtteil überarbeiten.

OpenStreetMap macht unheimlich viel Spaß. Es ist absolut simple zu bedienen. Außerdem rennt oder radelt man draußen nicht nur rum, um frische Luft zu holen, ist in Gedanken aber in Podcast versunken, sondern geht raus um die (Um-)welt zu entdecken.

Das ganze hat dann auch noch einen Sinn: Die resultierende Karte kann man dann ohne Copyrechtprobleme überall verwenden, z. B. für Stadtpläne oder die eigene Homepages.

26.06.2008. Schlagworte: , , . Uncategorized. Keine Kommentare.

Generiere E-Mail-Liste aus GAL

Folgendes kleines Skript ließt alle Konten mit E-Mail-Adressen aus der ADS aus und zeigt sie zum Ausdrucken im Browser an.

Das Skript zeigt wie der Zugriff von PHP per LDAP auf die ADS funktioniert. ldap muss allerdings in PHP aktiviert sein.

<?php
# gal.php: Globale Adresseliste aus ADS auslesen
#
# (c) 2008 by Florian Richter <Florian_Richter@gmx.de>

# Zeichenkodierung auf UTF8 setzten (LDAP-Standard)
header('content-type: text/html; charset=utf-8');

# Konfiguration
$server = "domainserver";
$userdn = "cn=benutzer,dc=domain,dc=net";
$passwd = "password";
$basedn = "dc=domain, dc=net";

$ldap_query = "(showInAddressBook=*)";

# Verbindung öffnen
$connectionId = ldap_connect("ldap://".$server)
		or die("Konnte keine Verbindung mit LDAP-Server herstellen");

# ADS Options setzen
ldap_set_option($connectionId, LDAP_OPT_REFERRALS, 0);
ldap_set_option($connectionId, LDAP_OPT_SIZELIMIT, 2000);
ldap_set_option($connectionId, LDAP_OPT_PROTOCOL_VERSION, 3);

# Authentifizieren
ldap_bind($connectionId, $userdn, $passwd)
	or die("Authentifizierung fehlgeschlagen");

# Suche starten
$sr = ldap_search($connectionId, $basedn, $ldap_query);

# sortieren
ldap_sort($connectionId, $sr, "displayname");

# Ergebnisse holen
$info = ldap_get_entries($connectionId, $sr);

?>
<html>
  <head>
    <title>GAL Klinikum Esslingen</title>
    <style>
      tr.gerade {
        background-color: #EEEEEE;
      }
    </style>
  </head>
  <body>
    <h1>Globale Adressliste des Klinikums Esslingen</h1>
    <table>
      <tr>
        <th>Name</th>
        <th>Abteilung</th>
        <th>E-Mail-Addresse</th>
      </tr>
      <?php
        for ($i=0; $i
      <tr
        <?php
          if($i%2 == 0) echo ' class="gerade"';
        ?>
      >
        <td>
          <?php
            echo $info[$i]["displayname"][0]
          ?>
        </td>
	<td>
          <?php
            if(isset($info[$i]['department'])) echo $info[$i]['department'][0];
          ?>
        </td>
	<td>
          <?php
            echo $info[$i]["mail"][0]
          ?>
        </td>
      </tr>
      <?php
        }
      ?>
    </table>
    <p>Anzahl: <?php echo $info["count"]; ?></p>
  </body>
</html>

26.06.2008. Schlagworte: . Uncategorized. Keine Kommentare.

TYPO3 Testsystem erstellen

Zum Ausprobieren neuer Extensions, zum Programmieren, für Schulungen und zum allgemeinen Rumprobieren brauch man eine 1:1 Kopie des TYPO3-Systems. Da das Kopieren immer etwas aufwendig und fehleranfällig war, hab ich ein kleines Batch-Skript geschrieben:

@echo off

set SEDTOOL=sed

set SERVER=INTRANETSERVER
set LIVEDIR=C:\WEBS\intranet
set TESTDIR=C:\WEBS\intranet-test
set LIVEDBNAME=intranet
set TESTDBNAME=intranettest
set DBUSER=username
set DBPASSWORD=password

echo Checking Server
IF %COMPUTERNAME%==%SERVER% GOTO server_ok
echo Bitte Skript nur auf %SERVER% ausführen!
pause
GOTO ende

:server_ok

echo "kopiert den Inhalt, Dateien und Datenbank von intranet nach intranet-test"
echo ""
pause

echo "==>Lösche alte Dateien..."
RMDIR /S /Q %TESTDIR%

echo "==> Lösche alte Datenbank..."
mysql -e "DROP DATABASE %TESTDBNAME%" -u%DBUSER% -p%DBPASSWORD%
mysql -e "CREATE DATABASE %TESTDBNAME%" -u%DBUSER% -p%DBPASSWORD%

echo "==> Kopiere Dateien..."
XCOPY %LIVEDIR% %TESTDIR% /E /I

echo "==> Erstelle MySQL-Dump von Intranet.."
mysqldump -u%DBUSER% -p%DBPASSWORD% %LIVEDBNAME% >tmp.sql

echo "==> Füge Dump in intranettest ein..."
mysql -u%DBUSER% -p%DBPASSWORD% %TESTDBNAME% <tmp.sql
del tmp.sql

echo "==> Passe Konfiguration an..."
type %TESTDIR%\typo3conf\localconf.php |%SEDTOOL% "s/typo_db =
'typo3'/typo_db = '%TESTDBNAME%'/g" >tmpconf.php
move tmpconf.php %TESTDIR%\typo3conf\localconf.php
copy testlogo.gif %TESTDIR%\fileadmin\images\logo.gif

echo "==> Fertig!"
pause

:ende

Im selben Verzeichnis muss noch sed.exe und testlogo.gif sein. Das Testlogo dient der besseren Unterscheidung.

Bitte nur benutzen, wenn du verstehst, was Code macht!!

26.06.2008. Schlagworte: , , . typo3. Keine Kommentare.

Steuerhinterziehungserklärung

http://zeus.zeit.de/online/2008/09/steuerbescheinigung.pdf

Schon ihre Steuerhinterziehungserklärung ausgefüllt?

Den Haken vor “Beide Augen ganz fest zumachen” setzt man aber am besten schon selber…

26.04.2008. Schlagworte: . fun. Keine Kommentare.

Morelink direkt zu Datei

Problem:
Ich hab eine TYPO3-Webseite mit einem Newsplugin. An viele News sind PDF-Dateien angehängt, die den eigentlichen Inhalt der News darstellen. Wie erreiche ich es jetzt, dass wenn man auf den More-Link klickt, direkt die PDF-Datei geöffnet wird. Wenn keine PDF-Datei angefügt wurde soll natürlich die normale Single-View kommen

Lösung:

plugin.tt_news.displayList{
        subheader_stdWrap {
                # Hier wird der anzuzeigende Text in der Listenansicht zugeschnitten und ein "Mehr"-Link
                # hinzugefügt:
                crop = 400 | ... | 1
                stripHtml = 1
                append = COA
                append {
                        10 = TEXT
                        10.data = register:newsMoreLink
                        10.wrap = <span class="news-list-morelink">|</span>
                        10.if {
                                isTrue.field = news_files
                                negate = 1
                        }

                        20 = TEXT
                        20.field = news_files
                        20.wrap = <span class="news-list-morelink"><a href="/uploads/media/|">[mehr]</a></span>
                        20.if {
                                isFalse.field = news_files
                                negate = 1
                        }
                }
        }


Dummerweise will das mein Chef doch nicht. Naja, vielleicht kann man es wo anderes verbauen…

07.04.2008. Schlagworte: , , , . typo3. Keine Kommentare.

Hallo Welt!

In diesem Blog will ich so ein paar Gedanken, die mir wichtig erscheinen oder die man für die Nachwelt aufheben sollte eintragen. Dabei geht’s um Computerzeugs auf der einen Seite und Gott und die Welt auf der anderen.
Ich bin mal gespannt was daraus wird.

07.04.2008. Schlagworte: , . Uncategorized. Keine Kommentare.