You are here

Debian

Problems with IPv6 and Bridging/Xen

I've been using IPv6 on my rootserver for some time now. Last week I migrated to a new rootserver and copied my domU/VM instances over to the new hardware. Everything is working fine so far - except IPv6. The network setup is the same as on the old server: the external interface is eth0. The domU/VMs are hooked up to a bridge, called xenbr0. There's another bridge for internal communication: xenbr1.

The dom0/Xen host itself seems reachable via IPv6. The /48 subnet is provided by Sixxs and is using a static 6-to-4 tunnel. But the VMs are not reliable reachable, although it is setup in the same way as it was on the old server and where it was working like a charme.

The configs of the hosts are these: 

Xen dom0
config old server new server
System Debian Etch
2.6.18-6-xen-amd64
linux-image-2.6.18-6-xen-amd64
linux-modules-2.6.18-6-xen-amd64
xen-hypervisor-3.0.3-1-amd64
xen-ioemu-3.0.3-1
xen-linux-system-2.6.18-6-xen-amd64
xen-tools
xen-utils-3.0.3-1
xen-utils-common

Debian Squeeze
2.6.32-5-xen-amd64
libxenstore3.0
linux-image-2.6.32-5-xen-amd64
xen-hypervisor-4.0-amd64
xen-linux-system-2.6.32-5-xen-amd64
xen-tools
xen-utils-4.0
xen-utils-common
xenstore-utils
xenwatch

/etc/sysctl.conf net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1
net.ipv4.conf.default.proxy_arp=1
net.ipv4.ip_forward=1
net.ipv4.ip_syncookies=1
net.ipv4.conf.all.rp_filter=1
net.ipv4.icmp_echo_ignore_broadcasts=1
/etc/xen/xend-config.sxp (network-script network-route)
(vif-script     vif-bridge)
(dom0-min-mem 196)
(dom0-cpus 0)
(vif-script vif-bridge)
(network-script network-route)
(dom0-min-mem 196)
(enable-dom0-ballooning yes)
(total_available_memory 0)
(dom0-cpus 2)
(vncpasswd '')
/etc/network/interfaces

# device: eth0
auto eth0
iface eth0 inet static
  address 85.10.209.30
  broadcast 85.10.209.31
  netmask 255.255.255.224
  up route add -net 85.10.209.0 netmask 255.255.255.224 gw 85.10.209.1 eth0 || true
  up ip route add 85.10.209.0/28 via 85.10.209.1 src 85.10.209.30 || true
  up route add default gw 85.10.209.1 || true

auto xenbr0
iface xenbr0 inet static
        address 85.10.209.30
        netmask 255.255.255.224
        pre-up brctl addbr xenbr0
        up route add -net 78.47.85.144/29 dev xenbr0  || true
        up ip -6 r a 2001:6f8:90e:145::1/64 via 2001:6f8:90e:1:216:3eff:fe55:197c dev xenbr0 ||true
        up ip -6 r a 2001:6f8:90e:146::1/64 via 2001:6f8:90e:1:216:3eff:fe2f:481d dev xenbr0 || true
        up ip -6 r a 2001:6f8:90e:147::1/64 via 2001:6f8:90e:1:216:3eff:fe60:68be dev xenbr0 || true
        up ip -6 r a 2001:6f8:90e:a100::1/64 via 2001:6f8:90e:1:216:3eff:fe70:be dev xenbr0 || true

auto xenbr1
iface xenbr1 inet static
        address 192.168.x.254
        netmask 255.255.255.0
        pre-up brctl addbr xenbr1
        # some internal IPv4 routing


auto sixxs
iface sixxs inet6 v4tunnel
        address 2001:6f8:900:c6e::2
        netmask 64
        endpoint 212.224.0.188
        local 85.10.209.30
        ttl 64
        up ip link set mtu 1280 dev sixxs || true
        up ip route add default via 2001:6f8:900:c6e::1 dev sixxs || true
        up ip -6 route flush dev eth0 || true
        up ip -6 r a 2001:6f8:90e::/48 dev xenbr0 || true
        down ip -6 route flush dev sixxs || true

 # device: eth0
auto  eth0
iface eth0 inet static
  address   178.63.83.84
  broadcast 178.63.83.127
  netmask   255.255.255.192
  gateway   178.63.83.65
  # default route to access subnet
  up route add -net 178.63.83.64 netmask 255.255.255.192 gw 178.63.83.65 eth0

auto xenbr0
iface xenbr0 inet static
        address 178.63.83.84
        netmask 255.255.255.192
        pre-up brctl addbr xenbr0
        up route add -host 178.63.83.104 dev xenbr0  || true
        up route add -host 178.63.83.105 dev xenbr0  || true
        up route add -host 178.63.83.106 dev xenbr0  || true
        up ip route add 178.63.123.128/26 dev xenbr0 || true
        up ip -6 r a 2001:6f8:90e:145::1/64 via 2001:6f8:90e:1:216:3eff:fe89:6c31 dev xenbr0 ||true
        up ip -6 r a 2001:6f8:90e:146::1/64 via 2001:6f8:90e:1:216:3eff:fedc:af5f dev xenbr0 || true
        up ip -6 r a 2001:6f8:90e:147::1/64 via 2001:6f8:90e:1:216:3eff:fe08:8f40 dev xenbr0 || true
        up ip -6 r a 2001:6f8:90e:a100::1/64 via 2001:6f8:90e:1:216:3eff:fe70:be dev xenbr0 || true


auto xenbr1
iface xenbr1 inet static
        address 192.168.x.254
        netmask 255.255.255.0
        pre-up brctl addbr xenbr1
        # some internal IPv4 routing

     
auto sixxs
iface sixxs inet6 v4tunnel
        address 2001:6f8:900:c6e::2
        netmask 64
        endpoint 212.224.0.188
        local 178.63.83.84
        ttl 64
        up ip link set mtu 1280 dev sixxs || true
        up ip route add default via 2001:6f8:900:c6e::1 dev sixxs || true
        up ip -6 route flush dev eth0 || true
        up ip -6 r a 2001:6f8:90e::/48 dev xenbr0 || true
        down ip -6 route flush dev sixxs || true

The config of one of the Xen domUs is this: 

sample domU config
config old server new server
system Debian Lenny
2.6.18-6-xen-amd64
Debian Lenny
2.6.32-5-xen-amd64
/etc/sysctl.conf net.ipv4.conf.default.rp_filter=1
net.ipv4.tcp_syncookies=1
net.ipv4.conf.default.forwarding=1
net.ipv6.conf.default.forwarding=1
net.ipv4.conf.eth0.proxy_arp=1
net.ipv4.conf.default.proxy_arp=1
kernel.shmmax=268435456
net.ipv4.conf.default.rp_filter=1
net.ipv4.tcp_syncookies=1
net.ipv4.conf.default.forwarding=1
net.ipv4.conf.all.forwarding=1
net.ipv6.conf.default.forwarding=1
net.ipv4.conf.eth0.proxy_arp=1
net.ipv4.conf.default.proxy_arp=1
kernel.shmmax=268435456
/etc/network/interfaces

# The primary network interface
auto eth0
iface eth0 inet static
        address 78.47.85.145
        netmask 255.255.255.248
        up ip route add 85.10.209.0/27 dev eth0
        up route add default gw 85.10.209.30 dev eth0
        up ip -6 address add 2001:6f8:90e:145::1/64 dev eth0 || true
        up ip -6 route add default via 2001:6f8:90e:1::1 || true       
        up iptables -t nat -A POSTROUTING -s 192.168.x.96/27 -o eth0 -j MASQUERADE || true

iface eth0 inet6 static
        address 2001:6f8:90e:145::1
        netmask 64
        gateway 2001:6f8:90e:1::1

auto eth1
iface eth1 inet static
        address 192.168.x.1
        netmask 255.255.255.0

# The primary network interface
auto eth0
iface eth0 inet static
        address 178.63.83.104
        gateway 178.63.83.84
        netmask 255.255.255.192
        broadcast 178.63.83.127
        up ip -6 address add 2001:6f8:90e:145::1/64 dev eth0 || true
        up ip -6 route add default via 2001:6f8:90e:1::1 src 2001:6f8:90e:1:216:3eff:fe89:6c31 || true
        up iptables -t nat -A POSTROUTING -s 192.168.x.96/27 -o eth0 -j MASQUERADE || true

iface eth0 inet6 static
        address 2001:6f8:90e:145::1
        netmask 64
        gateway 2001:6f8:90e:1::1

auto eth1
iface eth1 inet static
        address 192.168.x.1
        netmask 255.255.255.0

The dom0 seems to be reachable via IPv6 just perfectly fine. When trying to reach the domU I see packets going through the xenbr0 bridge and reaching the domU eth0 interface. The ICMP6 echo request packets (proto 58) are unanswered there, no echo replies. Strange enough it seems to work from time to time, but mostly not. I've also tried to set a generic default route like ip -6 route add default dev eth0, but still no improvement.

Did I miss something when migrating to the new server? Is there any mistake in the configs? Any suggestions are appreciated! :-)

UPDATE:
This is a tcpdump from the domU, doing a ping from dom0: 

07:35:29.308261 IP6 fe80::e46d:25ff:fe1f:317b > ip6-allnodes: ICMP6, router advertisement, length 56
07:35:29.329411 IP6 gate-hro.ip6.windfluechter.net > vserv.windfluechter.net: ICMP6, echo request, seq 45, length 64
07:35:30.329439 IP6 gate-hro.ip6.windfluechter.net > vserv.windfluechter.net: ICMP6, echo request, seq 46, length 64
07:35:30.451991 IP6 2001:418:4001:3::c657:b0c5 > vserv.windfluechter.net: ICMP6, echo request, seq 52836, length 64
07:35:30.481124 IP6 fe80::e46d:25ff:fe1f:317b > ff02::1:ff70:be: ICMP6, neighbor solicitation, who has 2001:6f8:90e:1:216:3eff:fe70:be, length 32
07:35:31.329906 IP6 gate-hro.ip6.windfluechter.net > vserv.windfluechter.net: ICMP6, echo request, seq 47, length 64
07:35:31.481645 IP6 fe80::e46d:25ff:fe1f:317b > ff02::1:ff70:be: ICMP6, neighbor solicitation, who has 2001:6f8:90e:1:216:3eff:fe70:be, length 32
07:35:32.329284 IP6 gate-hro.ip6.windfluechter.net > vserv.windfluechter.net: ICMP6, echo request, seq 48, length 64
07:35:32.481114 IP6 fe80::e46d:25ff:fe1f:317b > ff02::1:ff70:be: ICMP6, neighbor solicitation, who has 2001:6f8:90e:1:216:3eff:fe70:be, length 32
07:35:33.329951 IP6 gate-hro.ip6.windfluechter.net > vserv.windfluechter.net: ICMP6, echo request, seq 49, length 64
07:35:34.329705 IP6 gate-hro.ip6.windfluechter.net > vserv.windfluechter.net: ICMP6, echo request, seq 50, length 64

UPDATE #2:
The issue is finally solved. The solution can be found here.

Kategorie: 
 

Converting AVCHD Videos

When we were going on holiday lately we took some 2-3 hours of videos. It's a Panasonic HDC-SD600 camcorder we bought for that matter. Usually I'm connecting the camera to my Mac and import the videos into iMovie or such. During the holiday I copied the clips to an external USB drive to save the space on the 16 GB SD card. The plan was to copy it back to the card and import it later. This usually works, but somehow it did not for one backup. Sadly iMovie is so dumb that it can't import directly from those file. So I needed another way to import the movies. Kdenlive is able to import the movies as well as Handbrake on OSX is able to convert them. In the end I used ffmpeg on Debian to convert the clips: 

for i in *.MTS ; do echo $i ; ffmpeg -i $i -deinterlace -threads 4 -sameq /srv/video/iMovie/ffmpeg/${i}.mp4 ; done

This converts the MTS files from the camera into some MPEG4 format that iMovie is able to import by itself. The quality seems to be ok on a first quick view. Or do I miss something and there's a command switch that will result in better quality? Basically I want the same video and audio quality as the source files have.

Kategorie: 
 

OS X, Linux and netatalk

After coming back from holiday where I made lots of photos and videos, I needed the possibility to import all those from SD cards to my fileserver running Debian unstable. To import the photos I used Digikam on Linux, that was no problem. But for the videos I needed iMovie and/or FinalCut Express on my Mac. I've looked into Kino and Cinelerra, but those Linux apps are awful.

The problem was that iMovie is able to directly import from our Panasonic HD camcorder to the network storage. I was always forced to first import the fotoage to the drive in my MacBook Pro and copy it then to the Linux box onto a Samba share. The solution for that problem is to use netatalk/AFP. The Linux box appears as a Mac Xserve then.

However, I quickly found some HowTos for configuring netatalk. One HowTo is from Mike Hughes and the other one can be found on disgruntled-dutch.com. If you follow these two HowTos you're quite close to have a working AFP service to interact with your Mac via Bonjour/Avahi.

There are mainly two problems when you follow them. First, Mike Hughes has some illegal chars in his sample /etc/avahi/services/afpd.servicefile:

<!DOCTYPE service-group SYSTEM “avahi-service.dtd”>
<service-group>
<name replace-wildcards=”yes”>%h</name>

The quotation marks are the problem. Instead of ” you'll need normal " quotation marks. Or you can use the file on disgruntled-dutch.com.

Next problem is the configuration of the shares. On both sites the examples are using cdb as CNID backend: 

~/                      "Home Directory"        cnidscheme:cdb options:usedots,upriv

But this will give the following error:

Aug  3 23:30:29 muaddib afpd[8151]: Can't open volume "/home/ij" CNID backend "cdb"
Aug  3 23:31:26 muaddib afpd[8151]: Cannot find module named [cdb] in registered module list!

The solution can be found on forum.ubuntuusers.de (German): you'll need to change the cdb to dbd. So, the Home Directory share will look like this then: 

~/                      "Home Directory"        cnidscheme:dbd options:usedots,upriv

Quite simple and easy. Now restart your avahi-daemon and netatalk services and have fun! When you want to use a share on your Linux server for TimeMachine backups, you'll need to add a "tm" to the options of your share.

 

Kategorie: 
 

Getting hit by a spammer with Exim

Yesterday I was warned by Nagios that something is going on with my server. The number of processes has been gone beyond the limit. The reason for this were a bunch of Exim processes trying to deliver a lot of mails. Apparently a spammer made it happen to send spams via my server. How could this happen?

I was seeing a lot of those log entries: 

2010-06-28 16:29:25 1OTFKt-0004cZ-1R <= vsvc@euhu.com H=(qknlvj.com) [58.212.194.230] P=esmtpa A=cram_md5:inna S=1455 id=0ec5ff00b06c43369e2582fc4269839e@e12c17c51ec546bf9e7a23e6f9875941
2010-06-28 16:29:27 1OTFKw-0004cZ-KZ <= ebms@ylmdbm.com H=(qknlvj.com) [58.212.194.230] P=esmtpa A=cram_md5:inna S=1520 id=58913c34bde64e908310db7e1280eff5@2dc8ed5998b64e8485c472cae5ef98c3
2010-06-28 16:29:28 1OTFKy-0004cZ-1p <= wiyscy@hegyogz.com H=(qknlvj.com) [58.212.194.230] P=esmtpa A=cram_md5:inna S=1436 id=814a7bdcbe85447a9283d4a0a074830b@0ada3cde4a4c41c38c65bc912639afb6

Apparently the spammer has successfully found a way to bypass the authenticators in Exim. By default only authenticated users can send mails via my mailserver, of course. But this spammer found a way around that problem. A user "inna" is not known, so the spammer shouldn't be able to send mails at all. But he can. Something is broken apparently.

The spammer sent an empty password ('') and the database didn't find an user by this name and returned an empty resultset (''). Both sides of the comparison matches and the mail is allowed in. Let's have a look at my Exim config: 

cram_md5:
  server_debug_print = "running smtp auth $1 $2"
  driver = cram_md5
  public_name = CRAM-MD5
  server_secret = ${lookup pgsql{select clear from passwd where passwd.usr='$1' limit 1}{$value}}
  server_set_id = $1

On #exim@freenode there was just another user with the very same problem with exactly the same spammer. Apparently the lookup is true for empty passwords or users. The solution is to add a "fail" in the lookup statement: 

server_secret = ${lookup pgsql{select clear from passwd where passwd.usr='$1' limit 1}{$value}fail}

That's pretty all to do to prevent the spamming. But how could this happen at all? Back then when I was configuring my mailserver (around 2003 or so) I can remember that I tried a "fail" statement in the server_secret as it is described in the Exim documentation, but it didn't work as expected. So I ended up with no "fail". This worked fairly well over the years and I remember that I tested this lookup by trying to send with user/password combinations of all different sorts. So it went into "production".

Apparently it doesn't work anymore today. The other guy on the #exim channel said that he found no database lookup example with "fail" at all. Even the example in one of his books was without "fail". So I believe that something changed either in Exim or in PostgreSQL to make submitting an empty password string a positive match for bypassing authentication nowadays.

For the records: the spammer send approx. >10.000 mails. Another bunch of 8000 mails were rejected, but this is just slightly over the daily average.

Kategorie: 
 

Slow Import with Digikam

Scheinbar gingen in den letzten Tagen wieder ein paar Invites für Flattr.com raus. Zumindest wenn man die Twittermeldungen dazu liest. ;-)
Neue Dinge sind natürlich hipp und man will ja auch dabei sein, wenn was neues kommt, um mitreden zu können. Aber was ist die Motivation derjenigen, die Flattr nutzen? Wollen sie selber von anderen geflattred werden, was ja nicht nur schmeichelhaft für das Ego ist, sondern im Zweifel auch noch ein bißchen Geld bringt? Oder wollen sie primär gute Artikel selber flattren und anderen damit etwas Wertschätzung zeigen und sind somit auch bereit, für gute Artikel im Netz etwas zahlen?
Dazu hab ich mal auf Anraten von Tobias Gies einen Twtpoll aufgesetzt. Bitte schön:

Kategorie: 
 

Drupal and PostgreSQL - SELECT DISTINCT, ORDER BY

Gestern habe ich einen Artikel über Abmahnungen bei Stefan Niggemeier, der ebenfalls wie ich aus Georgsmarienhütte stammt, gelesen.
Niggemeier ist derzeit wohl ziemlich unter Beschuß von Anwälten und hat auch schon die eine oder andere Abmahnung hnter sich. Einzelheiten kann man ja in seinem Artikel lesen. Aber der eigentliche Punkt, auf den ich hinaus will, ist dieser:

Diese Leute — nicht nur dieser Anwalt oder sein Mandant, sondern viele andere — haben das elementare Prinzip der Meinungsfreiheit nicht verstanden. Sie haben nicht verstanden, dass sie ein Wert an sich ist. Dass sie auch Beiträge schützt, die nach irgendwelchen subjektiven oder objektiven Maßstäben wertlos sind. Artikel 5, Absatz 1, Satz 1 des Grundgesetzes lautet nicht: „Jeder hat das Recht, seine Meinung in Wort, Schrift und Bild frei zu äußern und zu verbreiten, solange es sich um ein wichtiges Thema handelt und ein Interesse der Öffentlichkeit an dieser Meinung besteht.”

[......]

Durch den Gang zum Anwalt und zum Gericht wird aus einer Auseinandersetzung um Wahrheit zu einer, in der regelmäßig nicht derjenige gewinnt, der Recht hat, sondern der sich die Auseinandersetzung leisten kann. Der Mächtige gewinnt.

Wer schon einmal mit solchen Leuten zu tun gehabt hat, der wird sicherlich auch abgewogen haben, ob er sich die Durchsetzung seiner Meinungsfreiheit leisten kann? Gerade die Tatsache des fliegenden Gerichtsstands macht die Sache für die Abmahner einfach. Sie können sich einfach irgendwo in Deutschland ein Gericht suchen, von dem sie glauben, daß es in ihrem Sinne entscheiden wird. So werden häufig die Berliner oder Hamburger Gerichte ausgewählt, vor denen dann geklagt wird. Auch wenn weder Kläger noch Beklagter aus Hamburg oder Berlin kommen.

Wer also ein Blog betreibt oder anderweitig im Internet seine Meinung publiziert, muss schon immer sehr genau darauf achten, was er schreibt. Letztendlich führt das zu einer Schere im Kopf. Einer vorauseilenden Selbstzensur. Man schreibt nicht mehr seine Meinung ins Netz, sondern das, von dem man selber denkt und hofft, daß es auch andere so sehen, was rechtlich gesehen unbedenklich sein könnte. Das aber hat, wie Niggemeier anmerkt, wenig mit dem Grundrecht auf Meinungsfreiheit zu tun. Er zitiert ja auch das Bundesverfassungsgericht und seine Stärkung der Meinungsfreiheit neuestem. Bleibt also zu hoffen, daß dieses höchstrichterliche Urteil auch in Berlin und Hamburg Eingang in die dortige Rechtssprechung findet.
Denn das Grundrecht auf Meinungsfreiheit beinhaltet (zumindest für mich) auch, daß ich diese frei äußern darf. Ein solches Grundrecht ist keines, wenn ich eine Meinung lediglich haben darf, diese aber nicht teilen, kommunizieren oder veröffentlichen darf. "Die Gedanken sind frei", heißt es. Aber erst wenn ich diese Gedanken und somit meine Meinung auch frei äußern darf, herrscht Meinungsfreiheit. Und ein vom Grundgesetz garantiertes Grundrecht darf nicht vom Geldbeutel des Menschen abhängen, der diese Meinung hat und sie auch frei äußern möchte.

Der Gesetzgeber ist also aufgerufen, dem Unwesen der Abmahnungen Einhalt zu gebieten.

Kategorie: 
 

Comment Spam on Planet Debian

Ein Schuldenberg, bei dem Peter Zwegat schwindelig werden würde und bei dem er zumindest grimmig dreinschauend den Verkauf des Zweitwagens anmahnen würde. Und vielleicht gäbe es ja noch einen Verwandten, der mit einer kleinen Summe einen Vergleich mit den Gläubigern ermöglichen könnte? Was wäre, wenn Griechenland eine Privatperson oder gar ein Unternehmen wäre?
Derzeit sind Griechenland, Portugal und Spanien in den Medien, weil sie zum einen wie Griechenland überschuldet sind oder wie die beiden anderen von Rating-Agenturen in ihrer Kreditwürdigkeit herabgestuft worden sind. Wenn es sich dabei um Unternehmen handeln würde, würde man die Griechenland AG vermutlich insolvent gehen lassen und von einer sogenannten Heuschrecke aufkaufen und zerfleddern lassen. Der bisherige Geschäftsführer bräuchte sich natürlich um seine Zukunft keine Sorgen machen. Schließlich hat er natürlich sein Bestes getan und Schuld sind ja sowieso die anderen. Deshalb wird er irgendwo anders einen gutbezahlten Job finden, wo er im Aufsichtsrat vielleicht keinen so großen Unsinn mehr anstellen kann, aber finanziell ausgesorgt hat.
Die Heuschrecken würden dann schauen, was man noch so an Kapital aus Griechenland herausschlagen könnte. Filettieren heißt das dann wohl im Fachjargon: die guten Teile aufhübschen und dann mit Gewinn weiterverkaufen. Die maroden Teile... nunja, das kann sich ja jeder selber vorstellen, daß man sich da nicht großartig drum kümmert. Man läßt es vergammeln. Irgendwer wird sich irgendwann darum kümmern und vielleicht für einen Pflaumenschnaps und eine Olive kaufen. Jammas!
Achja... und die ganzen Menschen. Da ja leider die Sklaverei irgendwann abgeschafft wurde, kann man diese natürlich nicht mitverkaufen. Also wird man sie anderweitig los: entweder kündigt man ihnen den Job - es sind ja eh bloß Kostenstellen - oder die Wohnung. Denn auch eine Wohnung kann man besser verkaufen, wenn sie nicht bewohnt ist. Sonst müsste man sich ja eventuell mit Einsprüchen und Protesten herumschlagen, wenn man die Mieten erhöht. Also äußerst lästig so ein Mensch. Macht nur Ärger.
Oh, und die Schulden Griechenlands... nunja, die kann man ja dann auch meistbietend an ein Inkassounternehmen weiterverkaufen. Ebenso wie die Kredite der Menschen dort. Irgendeine Bank wird schon daran Interesse haben und die Kredite auf "sofort fällig" stellen. Denn wenn so ein Mensch seinen Job verliert, wie soll er dann noch die Zinsen und Tilgung zahlen? Zwar bleibt ja mehr Geld übrig, weil er ja keine Miete mehr zahlen muss - denn er hat ja keine Wohnung mehr. Aber trotzdem lieber noch schnell den Kredit zurückzahlen lassen, bevor der Mensch sein ganzes Geld in Pflaumenschnaps und Ouzo anlegt. Jammas!

Aber da Griechenland ja ein Staat und kein Unternehmen ist, wird das natürlich so nicht eintreten. Viele Menschen werden so zwar auch ihren Job verlieren oder weniger verdienen, aber vielleicht bleibt ihnen noch die Wohnung, auch wenn die Mieten steigen werden. Für Pflaumenschnaps und Ouzo wird es vielleicht eng werden, aber solange gilt noch: Jammas!

Kategorie: 
 

Johan Schlüter: "Child pornography is great"

Ich hatte ja hier schon mehrfach über das synchronisieren meines N97 Smartphones mit iCal und Sunbird gebloggt. Vor ein paar Tagen hatte ich nun einen neuen Termin über Sunbird hinzugefügt, der auch ohne Probleme in iCal auftauchte. Nicht jedoch auf dem N97 - trotz mehrmaligen syncens. Ich hab sogar den Termin nochmal in iCal gelöscht und neu angelegt. Aber immer noch kein neuer Termin auf dem Handy. Irgendwie hab ich einen Bug irgendwie bei DAViCal oder iCal vermutet, aber letztendlich war es dann doch irgendwie trivialer...

Wenn man nämlich iSync mal so konfiguriert, daß auch Daten synchronisiert werden, die weiter als die Standardeinstellung von einem Monat in der Zukunft liegt, dann taucht auch plötzlich der neue Termin auf, der in gut 6 Wochen stattfindet. Oh Wunder! Kaum macht man es richtig, funktioniert's! ;-)

Kategorie: 
 

DDoS, Apache2 and mod_qos

Letztes Jahr im Herbst war ich in Berlin und habe dort am ersten Treffen des OpenData Networks e.V. im NewThinking Store teilgenommen.
Nach und nach wurden immer mehr kleinere und größere Projekte im Rahmen des OpenData Networks umgesetzt. Seit kurzem gibt es nun auch eine Seite, die die Quellen offener Daten von Behörden und Verwaltungen katalogisiert: offenedaten.de

Das Register offene Daten ist ein Portal für offene Daten in Deutschland. Das Register funktioniert wie ein Katalog in dem Sie Daten suchen und finden können. Sein Zweck ist es, offene Daten in Deutschland besser auffindbar und nutzbar zu machen. Das Register offene Daten umfasst vielfältige und umfangreiche Daten aus Politik, öffentlicher Verwaltung, Bibliotheken, aus Wissenschaft und Forschung.

Die Bedeutung offener Daten nimmt natürlich im Zuge der Vernetzung über das Internet zu. Dabei ist es wichtig, die Daten möglichst nicht doppelt pflegen zu müssen, sondern sie direkt "an der Quelle" abzugreifen, möglichst mit einer stabilen und offenen API. Um nun also selber Angebote mit offenen Daten erstellen zu können, ist es natürlich hilfreich, wenn man einen solchen Katalog zur Verfügung hat und nicht mehr selber nach entsprechenden Quellen suchen oder gar die Daten aus veröffentlichten PDFs auf irgendwelchen Webseiten konvertieren bzw. extrahieren muss.

Offenedaten.de setzt übrigens auf CKAN und Drupal auf, also durchaus auf offene Software. Macht ja auch Sinn. :-)

Kategorie: 
 

Pages

Theme by Danetsoft and Danang Probo Sayekti inspired by Maksimer