wnfKontakt

21.02.2014 - Lesezeit: ~1 Minute

wnfKontakt ist ein PIM der mit der Datenbank Firebird arbeitet.

getestet unter

  • Win7
  • (K)ubuntu mit Wine

22.04.2014 Version 4.2.1989

  • Zyklische Termine "drei wöchig" eingeführt.
Tags: wnfKontakt

Delphi beliebte Fehler: "Ungültige Zeigeroperation" bei Close eines Forms

30.01.2014 - Lesezeit: ~1 Minute

Beim Schließen eine Formulars, an dem ich schon seit Monaten keine Änderungen vorgenommen hatte, gab es plötzlich eine Schutzrechtsverletzung.

Nach mehreren Stunden Suche habe ich den Fehler gefunden.

Auf dem Formular gibt es eine TpFIBDataSet. Zu dieser TpFIBDataSet hatte ich neben anderen Feldern ein TStringField zugewiesen. (Weiß der Geier warum ich das mal gemacht hatte.) Nach einem Update der FIB-Komponenten auf die Version 7.51.2676 wurde das TStringfield beim Schließen des Formulars nicht mehr mit freigegeben und verursachte den Fehler "Ungültige Zeigeroperation".

Abhilfe: Das Feld löschen und als TFIBStringfield wieder anlegen.

Tags: Delphi-Programmierung

wnfKameradownload 1.12

26.01.2014 - Lesezeit: 4 Minuten

Das Script wnfkameradownload.py dient zum Herunterladen von Bildern von einer Digitalkamera für das Programm wnfAlbum.

$ sudo add-apt-repository ppa:r-dev/wnfkameradownload
$ sudo apt-get update
$ sudo apt-get install wnfkameradownload

Das Script wnfkameradownload.py kann

  • Bilder nach dem herunterladen entsprechend der exif-Daten des Bildes drehen. Dazu wir der Befehl [exifautotran](http://sylvana.net/jpegcrop/exif_orientation.html benutzt, welches in jeder Linux-Distribution vorinstalliert sein sollte. )
  • Bilder umbenennen, so dass die Dateinamen das Format vorsilbe_jjjj_mm_tt_hh_mm_ss_originalname.originalerweiterung erhalten. Das ist günstig für den Fall, dass ein Ereignis von mehreren Fotografen abgelichtet wurde. So kommen die Fotos auch für Programme, die die Fotos nach Dateinamen sortieren in die richtige Reihenfolge.
  • Bilder aus Unterverzeichnissen einer Digitalkamera herunterladen. (Also das Kameraverzeichnis am besten auf das DCIM Verzeichnis der Kamera stelle. Bei mir unter Kubuntu 9.10 ist es das Verzeichnis /media/disk/DCIM. Wenn das Programm über die KDE-Geräteüberwachung aufgerufen wird, geschieht das automatisch)
  • Bilder im Silvestermodus von der Kamera herunterladen. So werden zum Beispiel die Fotos vom Silvesterfeuerwerk nicht mehr auf den Neujahrstag verschoben.

Um das Script unter KDE 4.x einzubinden, muss für die Geräteüberwachung eine Aktion eingerichtet werden.

  • KDE-Systemeinstellungen-erweitert-Geräteaktionen-hinzufügen
  • Aktion: wnfKameraDownload
  • Befehl: pfad/wnfkameradownload.py %f
  • Parameter: Das Gerät muss ein Storagevolume (Massenspeicher) sein.

Um das Script unter Ubuntu - Gnome zu nutzen muss das Paket python-qt4 installiert sein.

Historie

26.01.2014 Version 1.12

  • Das zuletzt benutzte Zielverzeichnis zur Kamera wird sich gemerkt. (Das wirkt sich natürlich nur aus, wenn mit mehreren Kameras gearbeitet wird.)

26.12.2013 Version 1.11

  • PTP-Download umgestellt auf gphotofs (gphotofs ist beim Download schneller als piggyphoto)

19.11.2013 Version 1.09

  • Versteckte Verzeichnisse und Dateien werden jetzt ignoriert (Handys (Android) haben davon eine Menge)

17.11.2013 Version 1.08

  • Aufrufparameter -p Pfadname_auf_der_Kamera eingeführt
  • Es wird nur das DCIM verzeichnis eingelesen, wenn es als Unterverzeichnis vorhanden ist ansonsten wird das gesamte Verzeichnis eingelesen.

03.11.2013 Version 1.07

  • Der Parameter %f beim Aufruf über die KDE-Geräteüberwachung wird jetzt ausgewertet, so dass der Quellpfad beim Anschluss von verschiedenen Kameras automatisch gesetzt wird.

01.01.2011 Version 1.04

  • Aus aktuellem Anlass, wurde die Silvesterfunktion überarbeitet.

01.12.2010 Version 1.02

  • Erstveröffentlichung
Tags: Python Kubuntu 9.10 wnfAlbum wnfkameradownload Suse

Studentenfete 2014

23.01.2014 - Lesezeit: 4 Minuten


Inhaber Sven Clausnitzer

Altkötschenbroda 38

01445 Radebeul

Telefon 0351 838 68 65 Mobil 0173 200 69 28


---
- [Stadtrundfahrt](http://www.stadtrundfahrten-dresden.de)
  - Abholung Radebeul 
  - Jap. Palais 
  - Augustusbrücke 
  - Theaterplatz 
  - Postplatz 
  - Yenidze 
  - Terrassenufer 
  - Neumarkt mit Frauenkirche 
  - Synagoge 
  - Pirnaische Platz 
  - TU-Dresden Barkhausen-Bau mit Fotostopp 
  - Bürgerwiese 
  - Blüherpark 
  - Hygienemuseum 
  - Dynamostadion 
  - Großer Garten, Gläserne Manufaktur 
  - Güntzstraße Wohnheim mit Fotostopp 
  - weiter Richtung Strießen/Jugendstilvillenviertel -
  - Blaue Wunder - Elbufer mit Schlössern 
  - Waldschlösschenbrücke 
  - Neustadt mit Pfund's Molkerei 
  - Albertplatz 
  - Königstr. 
  - Augustsbrücke 
 - (Routenwünsche unserer Gäste werden mit integriert.)

---
- [Spaziergang](http://www.stepmap.de/karte/spaziergang-2014-1425744)
<script type='text/javascript' src='http://www.stepmap.de/js/stepmapexport.js'></script>
<div style='height:640px;'><div style='position:absolute;'><img src='http://www.stepmap.de/getmapimg.php?id=1425744&w=640&m=2&embed=de06367e5dd9f82688ac0f0056efd1bd705126d9' width='640' border='0' alt='Spaziergang 2014' usemap='#stepmapexportimg1425744_640' style='padding: 0; border: none;'/><br />Große Auswahl an <a href='http://www.stepmap.de/landkarte-weltkarte' target='_blank'>Weltkarten</a> auf stepmap.de<br /> <map name='stepmapexportimg1425744_640'><area shape='rect' coords='515,593,631,621' href='http://www.stepmap.de' alt='StepMap' title='StepMap' target='_blank' /> <script type='text/javascript' src='http://www.stepmap.de/getmapjs2.php?id=1425744&w=640'></script> <area shape='rect' coords='0,0,640,640' href='http://www.stepmap.de/karte/spaziergang-2014-1425744' alt='Spaziergang 2014' title='Spaziergang 2014' target='_blank' /></map></div></div><br /><br />
Tags: Studentenfete

bbb lighttpd und python

11.01.2014 - Lesezeit: 2 Minuten

Zum nachlesen

Kochbuch

$ sudo apt-get install lighttpd
  • diverse Änderungen in /etc/lighttpd/lighttpd.conf
    $ sudo nano /etc/lighttpd/lighttpd.conf
  • mod_cgi hinzufügen
    server.modules = (
        "mod_access",
        "mod_alias",
        "mod_compress",
        "mod_redirect",
    #       "mod_rewrite",
        "mod_cgi",
    )
  • Python dem cgi-Modul zur Verfügung stellen
    cgi.assign = ( ".py" => "/usr/bin/python" )
    static-file.exclude-extensions = ( ".php", ".pl", ".fcgi", ".py" )
  • Das Verzeichnis /var/www/cgi-bin anlegen
    $ sudo mkdir /var/www/cgi-bin
$ sudo /etc/init.d/lighttpd restart
  • In diesem Verzeichnis dieses Python Script ablegen (mit freundlicher Unterstützung von planzero.org
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#http://planzero.org/blog/2012/01/26/system_uptime_in_python,_a_better_way

from datetime import timedelta

print "Content-Type: text/html"
print
print "<title>Uptime des Beaglebone Black</title>"
print "<h1>Uptime des Beaglebone Black</h1>"

with open('/proc/uptime', 'r') as f:
    uptime_seconds = float(f.readline().split()[0])
    uptime_string = str(timedelta(seconds = uptime_seconds))

print(uptime_string)

Testaufruf mit http://bone.nfix.de/cgi-bin/wnfuptime.py

Tags: Python beaglebone

beaglebone black bbb und seafile

30.12.2013 - Lesezeit: 3 Minuten

Nach dieser Anleitung habe ich den seafile-server auf meinem Weihnachtsgeschenk installiert

$ sudo su
# useradd -r seafile
# cd /opt
# mkdir seafile
# cd /opt/seafile
# wget http://seafile.googlecode.com/files/seafile-server_2.0.3_pi.tar.gz
# tar -xvf seafile-server_2.0.3_pi.tar.gz
# rm seafile-server_2.0.3_pi.tar.gz
# mv seafile-server-2.0.3 seafile-server
# cd seafile-server/
# ./setup-seafile.sh
# mkdir /opt/seafile/logs
# chown seafile:seafile -R /opt/seafile/
# chown seafile:seafile -R /var/seafile-data/

Seafile Server

This is your config information:

server name:        bone2013
server ip/domain:   bone.nfix.de
server port:        10001
seafile data dir:   /var/seafile-data
seafile port:       12001
httpserver port:    8082

Seahub

Seahub is the web interface for seafile server.

-----------------------------------------------------------------
Your seafile server configuration has been finished successfully.
-----------------------------------------------------------------

run seafile server:     ./seafile.sh { start | stop | restart }
run seahub  server:     ./seahub.sh  { start <port> | stop | restart <port> }

-----------------------------------------------------------------
If you are behind a firewall, remember to allow input/output of these tcp ports:
-----------------------------------------------------------------

port of ccnet server:         10001
port of seafile server:       12001
port of seafile httpserver:   8082
port of seahub:               8000

When problems occur, Refer to https://github.com/haiwen/seafile/wiki for information.

Den server beim Booten starten

# nano /etc/init.d/seafile-server
#!/bin/sh

# Change the value of "user" to your linux user name
user=seafile

# Change the value of "script_path" to your path of seafile installation
seafile_dir=/opt/seafile
script_path=${seafile_dir}/seafile-server-2.0.4
seafile_init_log=${seafile_dir}/logs/seafile.init.log
seahub_init_log=${seafile_dir}/logs/seahub.init.log

# Change the value of fastcgi to true if fastcgi is to be used
fastcgi=false
# Set the port of fastcgi, default is 8000. Change it if you need different.
fastcgi_port=8000

case "$1" in
        start)
                sudo -u ${user} ${script_path}/seafile.sh start > ${seafile_init_log}
                if [  $fastcgi = true ];
                then
                        sudo -u ${user} ${script_path}/seahub.sh start-fastcgi ${fastcgi_port} > ${seahub_init_log}
                else
                        sudo -u ${user} ${script_path}/seahub.sh start > ${seahub_init_log}
                fi
        ;;
        restart)
                sudo -u ${user} ${script_path}/seafile.sh restart > ${seafile_init_log}
                if [  $fastcgi = true ];
                then
                        sudo -u ${user} ${script_path}/seahub.sh restart-fastcgi ${fastcgi_port} > ${seahub_init_log}
                else
                        sudo -u ${user} ${script_path}/seahub.sh restart > ${seahub_init_log}
                fi
        ;;
        stop)
                sudo -u ${user} ${script_path}/seafile.sh $1 > ${seafile_init_log}
                sudo -u ${user} ${script_path}/seahub.sh $1 > ${seahub_init_log}
        ;;
        *)
                echo "Usage: /etc/init.d/seafile {start|stop|restart}"
                exit 1
        ;;
esac
# /etc/init.d/seafile-server start
Tags: beaglebone