28 Jun 2007, 08:41

Eclipse macht unter Linux nur Probleme ...

Seit einiger Zeit macht Eclipse unter Linux nur noch Probleme.

Nicht nur, dass es extrem viel Speicher verbraucht, dank SWT/GTK, es stürtzt auch reproduzierbar beim öffnen das Auto-Complete Dialog ab und das neue Europa Release verabschiedet sich gar direkt wenn ich den  Software Update Dialog öffne.

Toll.

Es wird Zeit, das ich mich mit Netbeans beschäftige. Das läuft deutlich besser, nur mit der Bedienung muss ich mich noch anfreunden.

27 Jun 2007, 16:13

Exim4 Konfiguration mit SMA, MySQL, IPv6, SpamAssassin und TLS

Achtung: Dieser Beitrag ist schon älter und teilweise fehlerhaft. Unter dem Titel ISP Email Server mit Exim 4, Dovecot, MySQL und SpamAssassin auf Debian GNU/Linux etch habe ich eine ausführlichere und ausgereiftere Fassung veröffentlicht.

Ich möchte hier kurz meine Mailserver Konfiguration vorstellen, da ich es für gut möglich halte, dass diese Information auch für andere Betreiber von Mailservern von Intresse sein könnte.

Für den Betrieb meines Mailservers setze ich auf exim4 und Dovecot. Das ganze läuft unter Debian etch.

Unter Debian lassen sich die benötigten Pakete einfach mit folgendem Kommando installieren:

aptitude install dovecot-common dovecot-imapd dovecot-pop3d exim4-daemon-heavy mysql-server-5.0 pyzor razor spamassassin spamc dcc-client
Zu Dovecot ist eigentlich nichts weiter zu sagen, ausser das er wunderbar seinen Dienst verrichtet.

Exim greift auf eine MySQL Datenbank für die Überprüfung der Benutzer zurück, bindet SpamAssassin mit diversen Plugins ein, läuft sowohl auf IPv4 als auch IPv6 (via SixXS) und nimmt Mails auch via SMA/RFC2476 entgegen - natürlich alles auch über TLS.

Ein weiteres gute Beispiel für eine Exim4 Konfiguration gibt es hier.

Hier folgt jetzt meine kommentierte Exim 4 Konfiguration. Bei Fragen bitte die Kommentarfunktion des Blogs nutzen.

#######################################
# MACROS
#######################################
Zunächst werden einige Macros definiert um die gesamte Konfiguration übersichtlicher zu gestallten. Am Anfang stehe die Zugangsdaten zum MySQL-Server und die Tabellennamen.
MYSQL_SERVER=localhost
MYSQL_USER=user
MYSQL_PASSWORD=pass
MYSQL_DB=db
MYSQL_EMAILTABLE=exim_emailtable
MYSQL_DOMAINTABLE=exim_domains
MYSQL_WHITETABLE=exim_whitelist
MYSQL_BLACKTABLE=exim_blacklist
Dann folgt die Mailman Konfiguration. Dies wird weiter unten nochmal erläutert.
MAILMAN_HOME=/var/lib/mailman
MAILMAN_WRAP=MAILMAN_HOME/mail/wrapper
MAILMAN_UID=list
MAILMAM_GID=list
Hier folgen die aktuelle verwendeten Blacklists, genauer: DNSRBL. Leider muss diese Liste in letzter Zeit oft angepasst werden da die BLs oft unter Beschuss stehen oder den Dienst einstellen.
BL_WARN=zen.spamhaus.org:ix.dnsbl.manitu.net
BL_DENY=zen.spamhaus.org:ix.dnsbl.manitu.net
Nun zum komplizierten Teil: Den SQL Querys. Ich werde nicht auf jede einzelne Query eingehen, aber mit ein paar SQL Kentnissen sollten sie kein Problem sein.
MYSQL_Q_ISAWAY=SELECT domain FROM MYSQL_EMAILTABLE WHERE domain='${quote_mysql:$domain}' AND local_part='${quote_mysql:$local_part}' AND is_away='yes'
MYSQL_Q_AWAYTEXT=SELECT away_text FROM MYSQL_EMAILTABLE WHERE domain='${quote_mysql:$domain}' AND local_part='${quote_mysql:$local_part}'
MYSQL_Q_FORWARD=SELECT forward FROM MYSQL_EMAILTABLE WHERE domain='${quote_mysql:$domain}' AND local_part='${quote_mysql:$local_part}' AND forward != '' AND is_enabled = 'yes'
MYSQL_Q_CC=SELECT cc FROM MYSQL_EMAILTABLE WHERE domain='${quote_mysql:$domain}' AND local_part='${quote_mysql:$local_part}' AND is_enabled = 'yes'
MYSQL_Q_LOCAL=SELECT domain FROM MYSQL_EMAILTABLE WHERE domain='${quote_mysql:$domain}' AND local_part='${quote_mysql:$local_part}' AND forward = '' AND is_enabled = 'yes'
MYSQL_Q_WCLOCAL=SELECT domain FROM MYSQL_EMAILTABLE WHERE domain='${quote_mysql:$domain}' AND local_part='*' AND forward != '' AND is_enabled = 'yes'
MYSQL_Q_WCLOCFW=SELECT forward FROM MYSQL_EMAILTABLE WHERE domain='${quote_mysql:$domain}' AND local_part='*' AND forward != '' AND is_enabled = 'yes'
MYSQL_Q_DISABLED=SELECT domain FROM MYSQL_EMAILTABLE WHERE domain='${quote_mysql:$domain}' AND local_part='${quote_mysql:$local_part}' AND is_enabled = 'no'
MYSQL_Q_LDOMAIN=SELECT DISTINCT domain FROM MYSQL_DOMAINTABLE WHERE domain='$domain'
MYSQL_Q_RDOMAIN=SELECT DISTINCT domain FROM MYSQL_DOMAINTABLE WHERE domain='$domain'
MYSQL_Q_BOXPATH=SELECT CONCAT(domain,'/',local_part) AS boxpath FROM MYSQL_EMAILTABLE WHERE domain='${quote_mysql:$domain}' AND local_part='${quote_mysql:$local_part}'
MYSQL_Q_SPAMC=SELECT domain FROM MYSQL_EMAILTABLE WHERE domain='${quote_mysql:$domain}' AND local_part='${quote_mysql:$local_part}' AND spam_check='yes'
MYSQL_Q_SPAMPURGE=SELECT domain FROM MYSQL_EMAILTABLE WHERE domain='${quote_mysql:$domain}' AND local_part='${quote_mysql:$local_part}' AND spam_purge='yes'
MYSQL_Q_AUTHPLAIN=SELECT if(count(*), "1", "0") FROM MYSQL_EMAILTABLE WHERE CONCAT(local_part,'@',domain)='${quote_mysql:$2}' AND pwclear='${quote_mysql:$3}'
MYSQL_Q_AUTHLOGIN=SELECT if(count(*), "1", "0") FROM MYSQL_EMAILTABLE WHERE CONCAT(local_part,'@',domain)='${quote_mysql:$1}' AND pwclear='${quote_mysql:$2}'
MYSQL_Q_AUTHCRAM=SELECT pwclear FROM MYSQL_EMAILTABLE WHERE CONCAT(local_part,'@',domain)='$1'
MYSQL_Q_WHITELIST=SELECT DISTINCT MYSQL_WHITETABLE.address FROM MYSQL_WHITETABLE WHERE '${quote_mysql:$sender_address}' LIKE MYSQL_WHITETABLE.address
MYSQL_Q_BLACKLIST=SELECT DISTINCT MYSQL_BLACKTABLE.address FROM MYSQL_BLACKTABLE WHERE '${quote_mysql:$sender_address}' LIKE MYSQL_BLACKTABLE.address
# 'hide' damit diese Optionen nicht auf der Kommandozeile angezeigt werden.
hide mysql_servers = "MYSQL_SERVER/MYSQL_DB/MYSQL_USER/MYSQL_PASSWORD"
#######################################
# BASIC
#######################################
# Der primäre Hostname, sollte identisch mit dem RDNS Namen der IP sein.
primary_hostname = mail.gauner.org
# Welche Domains sind lokal
domainlist      local_domains = localhost:gauner.org:lists.gauner.org:mysql;MYSQL_Q_LDOMAIN
domainlist      relay_to_domains = mysql;MYSQL_Q_RDOMAIN
hostlist        relay_from_hosts = 127.0.0.1
# Definiert zu welchen Zeiten der SMTP Sitzung welche ACLs ausgeführt werden.
# Nachdem das RCPT Kommando gesendet wurde
acl_smtp_rcpt = acl_check_rcpt
# Nachdem das MAIL FROM Kommando gesendet wurd
acl_smtp_mail = acl_check_from
qualify_domain = gauner.org
never_users = root
host_lookup = *
# Trusted Users wird für SpamAssasin benötigt.
trusted_users = mail
rfc1413_hosts = *
rfc1413_query_timeout = 15s
check_spool_space = 50M
check_log_space = 20M
return_size_limit = 20k
message_size_limit = 20M
ignore_bounce_errors_after = 2d
timeout_frozen_after = 7d
deliver_queue_load_max = 8
queue_only_load = 10
remote_max_parallel = 15
# TLS Konfiguration
tls_certificate = /etc/exim4/exim.cert
tls_privatekey = /etc/exim4/exim.key
tls_advertise_hosts = *
local_interfaces = < ; 127.0.0.1 ; aaa.bbb.ccc.ddd ;
                        2001:cafe:dead:beef::2
# Listen for SMTP on Port 25 and for SMA on Port 587
daemon_smtp_port = 25 : 587
#######################################
# ACL
#######################################
begin acl
acl_check_from:
  # drop connections on the SMA Port that did not auth
  drop condition = ${if={$interface_port}{587} {1}{0}}
  !authenticated = *
  # accept everything else (policy checks are in rcpt acl)
  accept
acl_check_rcpt:
  accept  hosts = :
  deny    domains       = +local_domains
          local_parts   = ^[.] : ^.*[@%!/|]
  deny    domains       = !+local_domains
          local_parts   = ^[./|] : ^.*[@%!] : ^.*/../
  accept  local_parts   = postmaster
          domains       = +local_domains
  require verify        = sender
  accept  authenticated = *
  # Add a warning header if the sending host is in theses
  # DNSBLs but accept the message
  # see http://www.exim.org/howto/rbl.html
  warn    message       = X-blacklisted-at: $dnslist_domain
          dnslists      = BL_WARN
  # Reject messages from senders listed in these DNSBLs
  deny    dnslists      = BL_DENY
  # Consult "greylistd" to obtain greylisting status for this
  # particulat peer/sender/recipient triplet.
  #
  # We do not greylist messages with a NULL sender,
  # because sender callout verification would break (and we
  # mitght not be able to send mail to a host that performs
  # callouts).
  #
  defer
          message       = $sender_host_address is not yet authorized to
                          deliver mail from <$sender_address> to < $local_part@$domain>.
                          Please try later.
          log_message   = greylisted.
          domains       = +local_domains : +relay_to_domains
          !senders      = : postmaster@*
    !hosts         = : +relay_from_hosts :
                     ${if exists {/etc/greylistd/whitelist-hosts}
                                 {net-lsearch;/etc/greylistd/whitelist-hosts}{}} :
                     ${if exists {/var/lib/greylistd/whitelist-hosts}
                                 {net-lsearch;/var/lib/greylistd/whitelist-hosts}{}}
          set acl_m9    = $sender_host_address $sender_address $local_part@$domain
          set acl_m9    = ${readsocket{/var/run/greylistd/socket}{$acl_m9}{5s}{}{}}
          condition     = ${if eq {$acl_m9}{grey}{true}{false}}
  accept  domains       = +local_domains
          endpass
          verify        = recipient
  accept  domains       = +relay_to_domains
          endpass
          verify        = recipient
  accept  hosts         = +relay_from_hosts
  deny    message       = relay not permitted
#######################################
# ROUTERS
#######################################
# ORDER MATTERS!
#######################################
# Die Router. Hier ist es wichtig darauf zu achten in welcher
# Reihenfolge die Einträge angegeben werden, da eine Mail
# von oben nach unten an jeden Router übergeben wird
# bis sie von einem akzeptiert wird.
begin routers
# In der Datenbank deaktivierte Adressen werden gleich zu beginn rausgeworfen.
fail_router:
  driver = redirect
  domains = ${lookup mysql {MYSQL_Q_DISABLED}{$value}}
  data = ":fail:"
allow_fail
# Hier werden Mailman Adressen behandelt
mailman_aliases:
  driver = redirect
  allow_fail
  allow_defer
  data = ${lookup{$local_part}lsearch{/etc/aliases.mailman}}
  file_transport = address_file
  pipe_transport = address_pipe
  domains = lists.gauner.org
  user = list

# DnsLookup sind externe Nachrichten, d.h. Mails von diesem System an andere.
dnslookup:
  driver = dnslookup
  domains = ! +local_domains
  transport = remote_smtp
  ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
  no_more

blacklist_router:
  driver = manualroute
  senders = ${lookup mysql {MYSQL_Q_BLACKLIST}{$value}}
  condition = "${if !def:h_X-Spam-Flag: {1}{0}}"
  headers_add = X-Spam-Flag: YES
  route_list = * localhost
  self = pass

# System Aliase
system_aliases:
  driver = redirect
  allow_fail
  allow_defer
  data = ${lookup{$local_part}lsearch{/etc/aliases}}
  file_transport = address_file
  pipe_transport = address_pipe

# SpamAssassin Integration (Scannen und Markieren)
spamcheck_director:
  driver = manualroute
  domains = ${lookup mysql {MYSQL_Q_SPAMC}{$value}}
  senders = ! ${lookup mysql {MYSQL_Q_WHITELIST}{$value}}
  condition = ${if and {
    {!eq {$received_protocol}{spam-scanned}}
    {!eq {$received_protocol}{local}}
    } {1}{0}}
  headers_remove = X-Spam-Flag
  route_list = "* localhost byname"
  transport = spamcheck
  verify = false

# SpamAssassin Integration (Spam löschen)
spampurge_director:
  driver = manualroute
  domains = ${lookup mysql {MYSQL_Q_SPAMPURGE}{$value}}
  condition = "${if eq{$h_X-Spam-Flag:}{YES} {1}{0}}"
  route_list = "* localhost byname"
  transport = devnull_transport
  verify = false

vacation_director:
  driver = accept
  domains = ${lookup mysql {MYSQL_Q_ISAWAY}{$value}}
  transport = vacation_autoreply
  unseen

virtual_cc_director:
  driver = redirect
  data = ${lookup mysql {MYSQL_Q_CC}{$value}}
  unseen

virtual_forward_director:
  driver = redirect
  data = ${lookup mysql {MYSQL_Q_FORWARD}{$value}}

# Lokale Zustellung für Benutzer aus der Datenbank
virtual_local_mailbox:
  driver = accept
  domains = ${lookup mysql {MYSQL_Q_LOCAL}{$value}}
  transport = virtual_local_md_delivery

virtual_wclocal_redirect:
  driver = redirect
  domains = ${lookup mysql {MYSQL_Q_WCLOCAL}{$value}}
  data = ${lookup mysql {MYSQL_Q_WCLOCFW}{$value}}

local_user:
  debug_print = "R: local_user for $local_part@$domain"
  driver = accept
  domains = +local_domains
  check_local_user
  local_parts = ! root
  transport = local_delivery

#######################################
# TRANSPORTS
#######################################
# ORDER DOES NOT MATTER
#######################################

begin transports

# Remote Deliveries
remote_smtp:
  driver = smtp
  # Use Interface aaa.bbb.ccc.ddd for Outgoing Communiction
  interface = aaa.bbb.ccc.ddd

devnull_delivery:
  driver = appendfile
  file = /dev/null
  group = mail

address_pipe:
  driver = pipe
  return_output

address_file:
  driver = appendfile
  delivery_date_add
  envelope_to_add
  return_path_add

address_directory:
  driver = appendfile
  #no_from_hack
  message_prefix = ""
  message_suffix = ""
  maildir_format

address_reply:
  driver = autoreply

# SpamAssassin Integration
spamcheck:
  driver = pipe
  command = /usr/sbin/exim4 -oMr spam-scanned -bS
  use_bsmtp = true
  transport_filter = "/usr/bin/spamc -u $local_part@$domain"
  home_directory = "/tmp"
  current_directory = "/tmp"
  user = mail
  group = mail
  log_output = true
  return_fail_output = true
  return_path_add = false
  message_prefix =
  message_suffix =

local_delivery:
  driver = appendfile
  directory = /home/users/${local_part}/Maildir
  delivery_date_add
  envelope_to_add
  return_path_add
  maildir_format

# Lokale Zustellung für Benutzer aus der Datenbank
virtual_local_md_delivery:
  driver = appendfile
  directory = /home/mail/${lookup mysql {MYSQL_Q_BOXPATH}{$value}}/Maildir
  maildir_format
  user = mail
  group = mail
  mode = 0660
  directory_mode = 0770
  check_string = ""
  message_prefix = ""
  message_suffix = ""

vacation_autoreply:
  driver = autoreply
  to = ${sender_address}
  from = "vacation@${domain}"
  subject = "Ihre Nachricht an ${local_part}@${domain}"
  text = ${lookup mysql {MYSQL_Q_AWAYTEXT}{$value}}

disabled_bounce:
  driver = autoreply
  from = ${local_part}@${domain}
  to = ${sender_address}
  user = mail
  subject = "Re $h_Subject:"
  text = "Your message to ${local_part}@${domain} was rejected due to an
    disabled account. Please try again later."

devnull_transport:
  driver = appendfile
  file = /dev/null
  user = mail

#######################################
# RETRY
#######################################
begin retry
*                      *           F,2h,15m; G,16h,1h,1.5; F,4d,6h
#######################################
# REWRITE
#######################################
begin rewrite
*@gauner.org    ${lookup{$1}lsearch{/etc/email-addresses}
                                                {$value}fail} frFs
#######################################
# AUTHENTICATORS
#######################################
begin authenticators

plain:
  driver = plaintext
  public_name = PLAIN
  server_condition = ${lookup mysql{MYSQL_Q_AUTHPLAIN}}
  server_set_id = $2

login:
  driver = plaintext
  public_name = LOGIN
  server_prompts = "Username:: : Password::"
  server_condition = ${lookup mysql{MYSQL_Q_AUTHLOGIN}}
  server_set_id = $1

cram:
   driver = cram_md5
   public_name = CRAM-MD5
   server_secret = ${lookup mysql{MYSQL_Q_AUTHCRAM}{$value}fail}
   server_set_id = $1
Die passenden Datenbankschemas für MySQL:
-- ----------------------------------------------------------
-- Tabellenstruktur für Tabelle `exim_emailtable`
--
CREATE TABLE `exim_emailtable` (
  `id` int(9) NOT NULL auto_increment,
  `local_part` varchar(255) NOT NULL default '',
  `domain` varchar(255) NOT NULL default '',
  `forward` varchar(255) default NULL,
  `cc` varchar(255) default NULL,
  `name` varchar(255) NOT NULL default '',
  `pwclear` varchar(255) NOT NULL default '',
  `pwcrypt` varchar(255) NOT NULL default '',
  `is_away` enum('yes','no') NOT NULL default 'no',
  `away_text` text,
  `spam_check` enum('yes','no') NOT NULL default 'no',
  `spam_purge` enum('yes','no') NOT NULL default 'no',
  `virus_check` enum('yes','no') NOT NULL default 'no',
  `is_enabled` enum('yes','no') NOT NULL default 'yes',
  `customer_id` int(9) NOT NULL default '0',
  `created_at` int(16) NOT NULL default '0',
  `updated_at` int(16) NOT NULL default '0',
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='Alle virtuellen Mail-Accounts' AUTO_INCREMENT=1;

--
-- Tabellenstruktur für Tabelle `exim_domains`
--
CREATE TABLE `exim_domains` (
  `id` int(9) NOT NULL auto_increment,
  `domain` varchar(255) NOT NULL default '',
  `is_enabled` enum('yes','no') NOT NULL default 'no',
  `customer_id` int(9) NOT NULL default '0',
  `created_at` int(16) NOT NULL default '0',
  `updated_at` int(16) NOT NULL default '0',
  PRIMARY KEY  (`id`),
  UNIQUE KEY `domain` (`domain`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='Tabelle aller von exim erkannten Domains' AUTO_INCREMENT=1;

27 Jun 2007, 08:36

Marktanteile von MMORPGs

Da ich gerade auf der Suche nach Informationen zu den Marktanteilen der einzelnen MMORPGs war bin ich auch die Seite MMOGCHART gestossen auf der man genau diese Informationen sehr schön aufbereitet findet.

Leider fallen Spiele wie Guild Wars, die nicht auf ein Subscriptions-Modell setzen aus dem Raster und werde dort nicht erfasst. Schade, es hätte mich doch mal interessiert wie Guild Wars im Vergleich zu WoW abschneidet.

24 Jun 2007, 12:42

Kernel bauen unter Debian

Aus aktuellem Anlass:

Wie baue ich unter Debian einen neuen Linux Kernel?

Antwort: Ganz einfach

Achtung: Ich beschreibe hier nicht den “Debian-way”, sondern so wie ich es immer mache.

# root werden
su
# in das build Verzeichnis wechseln
cd /usr/src
# den aktuellen Kernel runterladen, anpassen!
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.21.5.tar.bz2</pre>

<pre>
# den Kernel entpacken, anpassen!
tar xvfj linux-2.6.21.5.tar.bz2
# den alten Symlink entfernen
rm linux
# den neuen Symlink erstellen
ln -s linux-2.6.21.5 linux
# ins Verzeichnis mit den aktuellen Quellen wechseln
cd linux
# die .config des aktuellen Kernels kopieren
cp /boot/config-`uname -r` ./.config
# die alten Optionen übernehmen
make oldconfig
# ggf. die Config anpassen
make menuconfig
# compilieren
make -j10 &amp;&amp; make -j10 modules
# installieren
make install &amp;&amp; make modules_install
# grub aktualisieren
update-grub

21 Jun 2007, 11:29

Dovecot 1.0.1 veröffentlicht

Der IMAP4/POP3-Server Dovecot wurde vor einigen Tagen in der Version 1.0.1 veröffentlicht.

Die Liste der Änderungen ist relativ kurz und es handelt es sich hauptsächlich um einige kleinere Bugfixes.

Hier das Changelog und der Download.

20 Jun 2007, 07:48

Eclipse unter Linux ist super lahm!

Ich frage mich wirklich warum Eclipse unter Linux so super lahm sein muss.

Offensichtlich hängt das ganze mit SWT zusammen und Abhilfe ist auch möglich, aber mir ist es nicht gelungen SWT/Fox zu installieren. Das hängt wahrscheinlich auch damit zusammen, dass das SWT/Fox Projekt seit einiger Zeit inaktiv zu sein scheint.

Bei nächster Gelegenheit werde ich mir mal Netbeans anschauen, das scheint ja nicht ganz so schrecklich langsam zu sein …

19 Jun 2007, 07:30

Dovecot macht sich gut ...

Wie ich vor kurzem berichtet habe, läuft der Mailserver seit einiger Zeit unter Dovecot.

Bis jetzt gabs keinerlei Probleme, die Performance stimmt und mit den richtigen Munin Plugins lässt sich das ganze auch wunderbar monitoren.

Fazit: Toll :)

Update: Meine Konfiguration gibt es im Dovecot Wiki.

18 Jun 2007, 11:50

Rechtschreibkorrektur in Java

Nach der Lektüre des überaus interessanten Artikels über einen einfachen Algorithmus zur Rechtschreibkorrektur von Peter Norvig, habe ich beschlossen den abgefahrenen Python Code in Java zu übersetzen. Nach ein paar Versuchen hat es auch schon geklappt. Das Ergebnis des ganzen gibt es ab sofort unter dem Namen jSpellCorrect zu bewundern.

Update:

Nachdem Peter Norvig seine Seite aktualisiert hat muss ich sagen, dass ich ein wenig schockiert bin: Aus einem einfachen 21 Zeilen Python Programm werden über 350 Zeilen Code in Java ... autsch ;)

07 Jun 2007, 14:41

Virtual Box - VMs klonen

Ein “Virtual Disk Image” lässt sich mit dem Kommandozeilentool “VBoxManage” ganz einfach klonen:

VBoxManage clonevdi <QuellVDI.vdi> <ZielVDI.vdi>

Warum ich die Images klonen will?

Nun, ich habe einmal Debian stable installiert, die VDI geklont und aus der einen mache ich jetzt ein testing und aus der anderen ein unstable. Damit spare ich mir die Installation nochmal durchführen zu müssen. Toll :)

07 Jun 2007, 14:05

Virtual Box 1.4.0 - Keine Probleme mehr mit Linux als Gast

Nachdem ich die neue Version 1.4.0 von Virtual Box installiert habe gibt es endlich keine Probleme mehr mit Linux als Gast OS, wie ich sie noch mit 1.3.8 erleben musste.

Super!

Diesen Post schreibe ich auch gerade aus der VM heraus.

Host OS: Debian etch

Gast OS: (noch) Debian etch

Das Gast OS wird gleich zu einem Debian testing. Später, wenn ich genug Plattenplatz freiräumen kann, werde ich evtl. noch ein Debian SID installieren. Damit ich ein bischen auf dem laufenden bleiben kann was sich da so tut. Dafür jedenfalls sind virtuelle Maschinen super geeignet.

07 Jun 2007, 08:12

Gauner on IPv6

Der Server ist seit gestern auch provisorisch über IPv6 via SixXS zu erreichen.

Vorerst dürfte nur der Mailserver zu 100% IPv6 tauglich eingerichtet sein.

Der Apache ist zwar auch schon für IPv6 vorbereitet, die vHosts müssen aber noch entsprechende konfiguriert werden.

Bei den weiteren Diensten ist die IPv6 Unterstützung bis jetzt noch unklar, wird aber nach Möglichkeit bald folgen.

05 Jun 2007, 16:46

Mein erstes Sketchup/Google Earth Modell

Ich habe gerade mal mein erstes Google Earth Modell mit Sketchup erstellt.

Nachdem meine ersten Versuche etwas schief gegangen sind klappt es jetzt schon einigermaßen.

Beeindruckend finde ich vor allem, dass ich das ganze mit nur zwei “schiefen” Fotos hinbekommen habe.

Download direkt oder bei Google.

31 May 2007, 22:40

jPatchLib 0.0.1b

So, hier ist die nächste Version von jPatchLib: 0.0.1b.

Die Probleme mit den Leerzeilen sollten jetzt erledigt sein und ich habe die Dokumentation hinzugefügt: JavaDoc.

Mehr Infos. Weitere Projekte.

31 May 2007, 13:32

Patch Library für Java - jPatchLib

Nachdem ich lange vergeblich versucht habe eine Implementation von GNU Patch für Java zu finden bin ich zu dem Schluss gekommen, dass es wohl einfacher ist eine selbst zu schreiben.

Das Ergebniss findet sich unter http://developer.gauner.org/jpatchlib/.

Ein paar Sachen stehen noch auf meiner ToDo Liste, aber für einen ersten Eindruck sollte es reichen.

Was noch aussteht:

  • Dokumentation

  • Probleme mit Leerzeilen beheben

Ansonsten natürlich viel Spaß damit.

29 May 2007, 08:35

KVM Switch mit USB und Sound gesucht

Ich bin, schon seit langem, immer noch auf der Suche nach einem KVM-Switch mit DVI, USB und Sound, damit ich meinen Schreibtisch endlich mal etwas aufräumen kann.

Im Moment ist es mit zwei Tastaturen und zwei Mäusen etwas eng.

Heute morgen bin ich auf den AdsKVM Digitus DC-11801 KVM Switch DVI, 3PCs (USB) gestossen.

Leider konnte ich noch keine Testberichte finden, aber der klingt ganz so als wäre es was für mich.

Er verfügt über ordentliche Knöpfe zum umschalten, unterstützt offiziell Linux und hat alles was ich will.

Bleibt nur die Frage ob das umschalten auch so funktioniert wie es soll. Bei einigen günstieren Modellen macht das wohl hin und wieder Ärger.

27 May 2007, 14:08

Mein Tee ist da!

Nachdem ich vor kurzem auf die Teekampange aufmerksam wurde hat mich das Konzept - Direktvertrieb, günstig, große Mengen, nur Darjeeling - neugierig gemacht und ich musste es unbedingt mal ausprobieren.

Eigentlich habe ich den Tee schon eine Weile, aber ich wollte ihn erstmal ausgiebig testen bevor ich ihn weiterempfehle. Das kann ich jetzt allerdings guten Gewissens machen.

Mein “Grüner Darjeeling FTGFOP 1 (Finest Tippy Golden Flowery Orange Pekoe), Ernte 2006” von den Plantagen “Arya, Barnesbeg und Tindharia” hält wirklich was die Teekampange verspricht: Er ist der beste grüne Tee den ich bis jetzt kosten durfte.

Teekampagne Teepackung Gruener Tee

Sehr gut finde ich das Reinheitssiegel der Tea Board of India und, dass die Ergebnisse der Rückstandsanalyse auf jeder Packung abgedruckt werden.

Teekampagne Teepackung Gruener Tee Rueckseite

Ein nettes Gimmick ist die Klammer zum verschließen der Teepackung. Da hat jemand sinnvoll mitgedacht!

Teekampagne Tee Clip

Den schwarzen Tee der Teekampange werde ich demnächst, hoffentlich, auch mal probieren dürfen, wobei mir hier die 500g bzw. 1Kg Packung etwas zu groß sein dürfte. Ich trinke doch eher grünen Tee.

Interessant fand ich, dass grüner, schwarze und weißer Tee alle von der gleichen Teepflanze stammen.

Der schwarze Tee wird nach der Ernte in einem warmen, feuchten Ort gelagert und durch die natürliche Fermentation (Oxidation mit Hilfe von Bakterien) schwarz.

Grüner Tee wird nach der Ernte erhitzt um die Fermentation zu verhindern und weißer Tee besteht nur aus jungen Trieben mit weißen Härchen an der Unterseite die auf Gestellen getrocknet werden. Das macht das ganze natürlich entsprechend teuer. Tee zubereiten

Nicht jeder Tee ist gleich und auch in der Zubereitung gibt es einige Unterschiede. Hier die mir geläufigen Hinweise für die richtige Zubereitung der gängigen Teesorten.

Grüner Tee: Das Wasser sollte ca. 60 bis 90 Grad warm sein und man sollte den Tee ein bis drei Minuten ziehen lassen. Je nach Geschmack. Lässt man ihn länger ziehen wird der Tee in der Regel bitterer. Sehr gute Tees sollte man mit niedrigeren Temperaturen aufgießen, normales Tees können 80 bis 90 Grad vertragen. Wobei man sich bewusst sein sollte, das das Risiko Salmonellen aufzunehmen mit sinkender Brühtemperatur steigt, daher sollte man möglichst heisses Wasser verwenden wenn man den Tee Kindern oder Personen mit einem geschwächten Imunsystem anbietet. Schwarzer Tee: Diese Sorte sollte man immer mit frisch sprudelndem Wasser aufgießen. Ideal sind etwa zwei bis drei Minuten womit der Tee eine leicht anregende Wirkung erzielen sollte.

Weißer Tee: Das Wasser sollte etwa 70 bis 80 Grad warm sein und dann darf der Tee etwa zwei bis drei Minuten ziehen.

So, und jetzt viel Spaß beim Teegenuß!

23 May 2007, 10:24

Patch Library für Java?

Es gibt zwar ein paar Implementierungen von diff für Java, aber eine patch Implementierung konnte ich nicht finden.

Sollte ich doch noch fündig werden, werde ich darüber berichten.

22 May 2007, 10:49

Followup: vi-Like Bedienung bei Google

Eine Sache hatte ich in dem Post von gestern vergessen:

Mehr nette, neue Features gibt es bei Google Experimental.

21 May 2007, 10:16

vi-Like Bedienung bei Google

Howdy! Bei Google Experimental gibt es jetzt eine Möglichkeit in den Suchergebnissen wie in vi zu navigieren.

Um diese praktische Feature zu nutzen muss man einfach an die Suche (in der Adresszeile) den String “&esrch=BetaShortcuts” anhängen.

Das ganze sieht dann zum Beispiel so aus: flexicrypt

Als vi Nutzer bin ich begeistert!

16 May 2007, 09:22

Debian - Welchem Paket gehört diese Datei?

Wer wissen möchte zu welchem Paket eine bestimmte Datei auf seinem System gehört, findet das mit “dpkg -S” raus. Aber nur als root.

dpkg -S /usr/bin/lex flex: /usr/bin/lex

14 May 2007, 09:05

Skype aka the Worlds biggest Botnet

Ein sehr interessantes und vor allem detailiertes Essay zur Sicherheit von und mit Skype gibt es hier: Skype inSecurity Essay.

Jedem Netzwerkadministrator, Netzwerkverantwortlichen, Sicherheitsbewusstem Benutzer und allen auch nur halbwegs Paranoiden sei das dringend empfohlen.

Update 18.08.07: Siehe auch diesen Beitrag über die aktuellen Probleme mit  Skype.

12 May 2007, 14:26

Munin Plugins für Dovecot und die Auth-Facility

Ich habe im Munin Plugin Exchange (lokaler Mirror) zwei praktische Munin Plugins zur Verfügung gestellt.

Zum einen ein Plugin um die Logins und Verbindungen zum Dovecot IMAP/POP3-Server zu überwachen … Dovecot Day

… und zum anderen eine verbesserte Version das auth Plugin um Logins und fehlgeschlagene Versuche der Auth-Facility zu überwachen.

Auth Day

09 May 2007, 19:52

Eclipse: Dummer Update-Manager

Warum ist der Update-Manager von Eclipse eigentlich so blöd?

Kaum habe ich Eclipse nach der Installation der neusten Updates neu gestartet, fängt er wieder von Vorne an und will neue Updates installieren. Kann der das nicht auf einmal?

Ausserdem frage ich mich auch warum der nach jedem Start ewig braucht bis er die Updates gefunden hat? Da liese sich einiges verbessern …

08 May 2007, 18:50

Mailserver mit Dovecot

Seit mir einiges Positives über den IMAP/POP3-Server dovecot zu Ohren gekommen ist habe ich eine mögliche Migration evaluiert. Nachdem auch die letzten Probleme mit dem Migrations Skript für die Mailboxen behoben waren, habe ich den Mailserver gerade umgestellt. Wirklich kurz und schmerzlos muss ich sagen. Jetzt muss er sich nur noch in der Praxis beweisen.

27 Apr 2007, 20:55

Serienbriefe mit OpenOffice 2.2

Der größte Mangel von OpenOffice ist meiner Meinung nach das fehlen von guter Dokumentation.

Gerade wollte ich mal wieder Serienbriefe mit OOo erstellen aber das gestalltete sich alles andere als einfach.

Ich wusste natürlich nicht mehr wie ich es “früher” immer gemacht habe, aber es gibt ja unter “Extras -> Seríenbriefe” einen Assistenten dafür. Den gibt es seit 2.1 oder 2.2, früher musste man von Hand mit den Datenquellen hantieren.

Durch den Assistenten wird es zwar einfacher, aber leider passt das nicht mit meinem Datenformat zusammen. Vorgegeben war eine Tablle mit folgenden Feldern: Anrede, Name1, Name2, Anschrift, “PLZ+Ort” und die Briefanrede.

Leider möchte das Assistent gerne Felder haben aus denen er ableitet ob der Adressat männlich oder weiblich ist und akzeptiert ein Feld Briefanrede, d.h. sowas wie “Sehr geehrter Herr Mustermann”, gar nicht.

Serienbriefe mit OpenOffice.org 2.2 - Schritt 3

Um den Komfort des Assistenten mit der flexiblität der alten Lösung zu kombinieren muss man, wie auf den Bildern zu sehen, bei der Frage nach dem Adressfeld und der Briefanrede, die Fragen ausklammern und dafür die entsprechenden Felder, wie in der verlinkten Anleitung zu sehen, von Hand einfügen.

Serienbriefe mit OpenOffice.org 2.2 - Schritt 4

27 Apr 2007, 09:29

Essence of Software Design (Java)

Ich habe mir vor einiger Zeit einige wichtige Design-Prinzipien für das Software Design, insb. in Java, zusammengefasst und einige oft gebrauchte Design-Patterns und Entwurfsrichlinien erläutert.

Zu finden ist das ganze unter The Essence of Software Design.

Die wichtigsten Prinzipien:

  • Open-Closed-Principle (OCP) - A class should be open for extension but closed for modification.
  • Liskov Substitution Principle (LSP) - An instance of a class should function as an instance of its superclass.
    Typical violations of LSP:
    • Derivates that override a method of the super-class by an empty method potentially violate LSP
    • Derivates that throw additional exceptions violate LSP

  • Dependency Inversion Principle (DIP) - High-level modules should not depend on low-level modules. Both should depend on abstractions. Abstractions should not depend on details. Details should depend on abstractions. DO NOT DEPEND ON A CONCRETE CLASS. All relationsships in a program should terminate on an abstract class or an interface.

26 Apr 2007, 13:25

Outlook - Anlagen einfügen verhält sich komisch

Outlook verhält sich beim einfügen von Anhängen etwas komisch.

Manchmal landen die Anhänge in einer Zeile “Anhänge” und manchmal direkt im Nachrichtentext.

Das hängt wohl damit zusammen, ob unter “Extras -> Optionen -> E-Mail-Format” HTML bzw. Text oder Rich-Text ausgewählt ist. Bei Rich-Text landen die Anhänge im Nachrichtentext, bei den anderen beiden Möglichkeiten in der extra Zeile.

Siehe auch wer-weiss-was.

26 Apr 2007, 08:15

Linux Kernel 2.6.21 freigegeben!

Endlich, nach 7 RCs wurde gerade eben der Linux Kernel in der Version 2.6.21 freigegeben.

Ich hoffe die lang ersehnte Unterstützung für den PATA Port des VIA VT6421 Chips funktioniert endlich. Eigentlich war die entsprechende Änderung schon im rc4 drin, aber der hat bei mir nicht wirklich gut funktioniert.

Sobald ich Zeit habe werde ich es testen und hier berichten.

Download / Changelog / Ausführliches Changelog bei den KernelNewbies / Heise Open Artikel

25 Apr 2007, 10:30

Mail-Quelltext in Outlook 2003 anzeigen

English translation below.

Wer hätte gedacht, dass es so ein Problem ist sich den Quelltext einer Mail anzeigen zu lassen.

Unter Thunderbird, unter den meisten anderen Mail-Clients, gibt es eine Art “View Source” Option, aber bei Outlook 2003 macht es Microsoft etwas komplizierter.

Um die Header anzeigen zu lassen kann man sich in der geöffneten Nachricht zu Ansicht -> Optionen durchklicken und bekommt dann in einem mikrigen Fenster die Kopfzeilen angezeigt.

Um den gesamten Quelltext zu betrachten muss man schon die Registry bemühen und unter

HKEY_CURRENT_USER\Software\Microsoft\Office\11.0<span class=“searchword”>Outlook\Options\Mail
einen Eintrag mit dem Namen
SaveAllMIMENotJustHeaders
und dem Wert “1” anlegen.

Schon kann man sich für alle, ab diesem Zeitpunkt empfangenen (!), Mails den Quelltext komplett anzeigen lassen!

Warum einfach wenn es auf kompliziert geht?

Gefunden bei Thomas Woelfers Blog.

English Translation

Displaying the full source of a mail in Outlook 2003 is not easy.

In Thunderbird there is a “View Source” option, but Microsoft likes it complicated.

To show the raw Header of a Mail you can open the mail and navigate to “View -> Options” to watch the header in a tiny textbox.

To view the full source of the mail you have to open the registry and look for the branch

HKEY_CURRENT_USER\Software\Microsoft\Office\11.0<span class=“searchword”>Outlook\Options\Mail
and create a key with the name
SaveAllMIMENotJustHeaders
and the Value “1”.

For all mails received after this point in time (!) you can view the complete mail source.

22 Apr 2007, 20:03

Bloggen mit Gnome

Ich habe gerade ein Applet names “Gnome Blog” entdeckt.

Es ist eigentlich eine ganz nette Idee direkt vom Desktop, ohne Webbrowser, aus bloggen zu können. Zumal so der Browser nicht nach etlichen Zeilen den Geist aufgeben kann und man nicht unbedingt alles nochmal schreiben muss, aber ein wenig spartanisch ist das Interface schon.

Naja, man kann eben nicht alles haben ;)

21 Apr 2007, 22:52

Google Maps Fun

Anscheinend versteht Google Spaß, oder wie soll ich mir sonst erklären, dass Google Maps den Anwender ca. 3000  Meilen durch den Atlantik schwimmen lassen will, wenn er von New York nach Paris will?

Google Maps Fun

21 Apr 2007, 12:41

Jabber Clients mit Jingle - Fehlanzeige!

Ich bin seit einiger Zeit auf der Suche nach einer brauchbaren alternative zu Skype.

GoogleTalk ist ein super Ansatz, aber ich hätte lieber etwas das auch unter Linux läuft.

Google war zwar so nett die Jingle Spezifikation zu veröffentlichen, aber so wie es aussieht gibt es im Moment keinen Client der das vernünftig implementiert.

  • PSI scheint kein Jingle zu unterstützen
  • Pidgin aka Gaim soll zwar “bald” Jingle Support haben, aber wann das konnte ich nicht in Erfahrung bringen
  • Cocinella scheint Jingle zu unterstützen, aber diesen Client konnte ich noch nicht testen
Fazit:

Schade, kein ordentlicher Jingle/VoIP Client unter Linux.

19 Apr 2007, 10:58

Debian 3.1 (sarge) auf 4.0 (etch) aktualisieren

Seit Debian etch stable ist, war mir klar, dass ich über kurz oder lang auch meine Produktiv-Maschinen auf etch umstellen muss. Bei der Planung von diesem Upgrade habe ich mir einige Gedanken gemacht, da ja einige essentielle Komponenten aktualisiert wurden. Der neue 2.6er Kernel, Apache 2.0 auf 2.2, MySQL, etc. pp.

Im Nachhinnein muss ich sagen, dass mich Debian mal wieder beeindruckt hat. Ein so problemloses Upgrade habe ich bis jetzt noch nicht erlebt, wobei es auch ein paar Stolpersteine gab.

Demnächst werde ich noch die verbleibenden Maschinen umstellen müssen, aber hier werde ich erstmal meine Erfahrungen mit der ersten Schildern.

Zunächst einmal habe ich mir die Release-Notes gründlich durchgelesen. Das kann ich auch jedem empfehlen!

Das folgende Vorgehen möchte nur kurz Stichpunktartig zusammenfassen. Jeder der ein wenig Erfahrung mit Debian hat sollte daraus schlau werden.

  • Datensicherung laufen lassen (dirvish-cronjob)
  • Neu mit dem Internet verbinden um eine Zwangstrennung während der Umstellung zu vermeiden
  • Einloggen und als root screen starten
  • sources.list anpassen, d.h. backports, etc. entfernen und alles von sarge auf etch umstellen Ich bevorzuge die Codenamen anstelle von stable oder testing damit ich selbst entscheiden kann wann ich das System umstelle und nicht vom Release überrascht werden.
  • mount -o remount,rw /boot - Meine Boot-Partition ist normalerweise Read-Only
  • aptitude upgrade - Zunächst nur ein minimales-Upgrade
  • aptitude install initrd-tools - Wichtig für das Kernel-Update, weitere Informationen sind in den Release-Notes zu finden
  • check configs - Konfigurationseinstellungen von Hand überprüfen
  • aptitude install linux-image-2.6-k7 - neuen Kernel installieren. K7 ist für meinen AMD Athlon64
  • check /etc/lilo.conf - Ist eine initrd=/initrd.img Zeile vorhanden? Verweist der Boot-Eintrag auf /vmlinuz und nicht auf einen alten Kernel?
  • /sbin/lilo - Lilo neu installieren
  • aptitude install libfam0 - Bei mir gab es Konflikte mit libfam0c102, daher habe ich diese Library von Hand installiert
  • aptitude dist-upgrade - Jetzt läuft das eigentlich upgrade durch. Bei Konflikten mit Configs habe ich meine alte von Hand gesichert und sie erstmal überschreiben lassen.
  • aptitude update
  • aptitude update
  • check configs (I) - Jetzt habe ich die neuen Configs anhand meiner Sicherungen wieder angepasst.
  • reboot - Ein neustart um den neuen Kernel zu aktivieren und das System zu testen - der nächste Stromausfall kommt bestimmt. Nach 20 bangen Minuten war er wieder da - fsck braucht halt eine Weile.

  • check services - Jetzt noch alle Dienst überprüfen.

  • check configs (II) - Ein paar unwichtige Konfigurationen hatte ich mir für später aufgehoben, die kommen jetzt an die Reihe

  • prepare for next release - Siehe den entsprechenden Eintrag in den Release Notes.

Da ich Courier als Mailserver (POP3/IMAP) mit MySQL-Authentifizierung verwende musst ich noch die geänderten Authlibs nachinstallieren.

aptitude install courier-authlib courier-authlib-mysql

So das war es erstmal :)

Alles in allem ein reibungsloses Upgrade.

Update: Ich habe gerade noch einen Server umgestellt, diesmal hat fsck nur 7 Minuten gebraucht ;)

19 Apr 2007, 10:42

Firefox AdBlock Code killt TinyMCE

Den meisten Wordpress Benutzer dürfte TinyMCE ein Begriff sein, und wenn nicht, dann haben sie es zumindest schon einmal gesehen. Das ist der AJAX Editor der sich in neueren Wordpress Versionen unter dem “Visual Editor” verbirgt.

Vor einiger Zeit gab es auf der Hilfe-Seite von Firefox eine AdBlock Sektion. Soweit ich weiss wurde die inzwischen entfernt, aber ich nutze den Code für die userContent.css seit dem und bin damit eigentlich extrem zufrieden, da er die Anzahl der angezeigten Ads auf eine sehr erträgliche Anzahl reduziert. Nur gegen Layer-Ads fehlt mir noch der entsprechende Block-Code, aber das ist eine andere Geschichte. Das Vorteil von dem userContent.css Code ist auch, dass es auf der Server Seite kaum zu erkennen ist ob die Ads angezeigt werden oder nicht, da diese Datei einfach ein zusätzliches CSS Darstellt das beim rendern vom Browser berücksichtigt wird.

Das Problem an dieser Lösung ist, dass es ab und zu Kollateralschäden kommt. Bis jetzt hat mich das nicht weiter gestört, aber seit TinyMCE in Wordpress integriert ist stört es schon ein wenig wenn der Editor nicht benutzbar ist. Daher habe ich den AdBlock-Code mal untersucht um die Bösewichte zu finden die TinyMCE zerschiessen.

Die Übeltäter waren folgende Anweisungen:

iframe[src=“/adv”], img[src=“/adv”], img[src*=“/adx”],

Hier gibts die korrigierte Datei: AdBlock für Mozilla Firefox

17 Apr 2007, 07:13

Top 5 Eclipse Plugins

Meine wichtigsten Eclipse Plugins:

Die “Plugins” die sowieso in der Eclipse-Distribution enthalten sind, bzw. von der Eclipse Foundation direkt gepflegt werden liste ich hier nicht auf. Das wären z.B. JDT, CDT, etc.

16 Apr 2007, 22:06

Version 0.3 von jTodoList

Die neue Version von jTodoList bietet jetzt auch die Möglichkeit die Todo-Liste als Treemap, gewichtet nach Priorität oder Risiko, darzustellen.

Für das nächste Release steht eine Überarbeitung der GUI an. Der Code gefällt mir so im Moment nicht.

Download: tar.bz2 / zip

Homepage: jTodoList

16 Apr 2007, 12:34

Top 5 Java Bibliotheken

Hier nur kurz meine 5 wichtigsten Java Bibliotheken:

Ein weiterer Kandidat für diese Liste ist die TreeMap Library, aber da ich sie selbst noch nicht getestet habe muss ich erstmal sehen was sie zu bieten hat.

P.S.: DDL = direkter Download

16 Apr 2007, 07:38

PowerNow! unter Linux für Athlon64 X2 3800+ auf Abit AX8 V2.0

Da einige Mainboardhersteller die ACPI Tabellen ihrer Produkte offenbar leider etwas schlampig pflegen muss man als Linux Nutzer teilweise selbst Hand an die DSDT-Tabellen legen.

Zwar gibt es beim Linux/ACPI-Projekt einige korrigierte DSDT-Tabellen, aber da mein Mainboard nicht dabei war musst ich selbst den Compiler anwerfen und mein Glück versuchen.

Das Ergebniss will ich der Welt nicht vorenthalten, vielleicht kann ja sonst noch jemand was damit anfangen. Zu finden ist das ganze hier: Fixed ACPI DSDT Tables for Linux.

Ich muss aber dazu sagen, dass ich für nichts garantiere. Diese DSDT läuft bei mir schon über ein halbes Jahr wunderbar, aber es kann gut sein, dass es auf einem anderen System zu ernsten Problemen - bis hin zu Hardware Schäden - kommen kann.

11 Apr 2007, 20:31

WEP gesicherte WLANs in weniger als einer Minute knacken

Wie heise vor ein paar Tagen berichtet hat, haben es ein paar meiner Komolitonen an der TU Darmstadt geschafft die WEP Verschlüsslung in unter einer Minute zu knacken - zumindest in 50% aller Fälle.

Gestern lief dazu auch ein Bericht im Nachtmagazin der ARD den es sogar Online gibt. Falls der Link nicht funktioniert kann man das ganze auch über tagesschau.de unter Multimedia finden.

09 Apr 2007, 09:47

Debian 4.0 -etch- ENDLICH freigegeben!

Es ist geschafft, nachdem die letzten RC-Bugs beseitigt wurde ist es soweit.

Es gibt ein neues stable Release von meiner lieblings Distribution Debian!

Hier gibt es die Release Notes, die Downloads und die offizielle Ankündigung.

Was gibt es neues in Etch?

07 Apr 2007, 14:22

jPOPc - Java POP3 Client veröffentlicht

Soeben habe ich unter jPOPc den angekündigten Java POP3 Client veröffentlicht.

Source

07 Apr 2007, 14:13

Breakpoint 2007 hat begonnen!

Vor kurzem hat in Bingen die alljährliche Demo Compo Breakpoint begonnen.

Nach dem Wegfall einiger Sponsoren mussten die Eintrittspreise leider kräftig erhöht werden, was mich ehrlich gesagt, davon abgehlaten hat dieses Jahr einmal persönlich teilzunehmen. Naja, so bleibt die Szene unter sich ;)

Wir können wieder mal gespannt sein wer dieses mal als Sieger aus den einzelnen Veranstaltungen hervorgeht.

07 Apr 2007, 14:12

jHTTPd - Java Webserver veröffentlicht

Soeben habe ich unter jHTTPd den länger angekündigten simplen Java Webserver veröffentlicht.

Download Binary / Source

06 Apr 2007, 10:26

jUPnP - Java UPnP Beispiel Implementierung veröffentlicht

Soeben habe ich unter jUPnP eine UPnP-Implementierung in Java veröffentlicht.

Die Anwendung implementiert zwar nur ganz konkrete Funktionen, ist aber sicherlich für einige Personen trotzdem interessant wenn es um die Implementierung von UPnP in Java geht.

Download Binary / Source

06 Apr 2007, 10:25

XML - SAX vs. DOM

Mir war lange Zeit unklar was der Unterschied zwischen SAX (Simple-API-for-XML) und DOM (Document Object Model) ist.

Ich möchte das hier nochmal kurz zusammenfassen:

Ein DOM-Abbild einer XML-Struktur liegt i.d.R. komplett im Speicher und lässt sich so sehr bequem manipulieren und auslesen, benötigt aber unter Umständen sehr viel Speicherplatz.

Bei SAX definiert der Entwickler sog. Callback-Handler die bei bestimmten Ereignissen, d.h. XML-Tags (z.b. <html>) aufgerufen werden. So wird nur ein Bruchteil der XML-Datei im Speicher vorgehalten und es wird damit möglich auch sehr große XML-Datein zu parsen.

Man stelle sich vor man bekommen eine 1,2 GB große Datei mit allen Zugverbindungen in Deutschland und will die komplett in den Speicher laden … (Alles schon vorgekommen).

03 Apr 2007, 14:44

Wine & Guildwars: Endlich mit Mauszeiger!

Howdy!

Seit kurzem - ich weiss nicht genau ob seit 0.9.33 oder 0.9.34 - wird in Guild Wars unter Wine der Mauszeiger angezeigt.

Ich warte schon seit langem darauf, dass die Entwickler diesem Bug endlich korrigieren, der bisher ein ordentliches Spielen von Guild Wars unter Linux verhindert hat.

Apropos Guild Wars: Mir ist gerade aufgefallen, dass ich in diesem Blog noch nie was über mein aktuelles Lieblingsspiel gepostet habe: Guild Wars :)

Update:

Noch ist die Unterstützung noch nicht perfekt. Sobald eine neue Karte geladen wurde muss ich zunächst den Maus über einen NPC bewegen bevor der Mauszeiger angezeigt wird. Das ist nicht perfekt, aber immerhin!

25 Mar 2007, 09:28

VirtualBox - Probleme mit Linux als Gast?

Hier möchte ich kurze meine Erfahrungen mit VirtualBox unter Debian GNU/Linux “etch” schildern.

Eigentlich ist VirtualBox eine wirklich gutes Programm, es mangelte lange an einer guten, freien Virtualisierungslösung, aber es ist sehr schade, dass VirtualBox offenbar einige Probleme mit Linux als Gast OS hat.

Vista hingegen hat bei mir einwandfrei funktioniert. ReactOS, XP und 2000 werde ich demnächst mal ausprobieren, wenn ich genug Speicherplatz geschaffen habe.

Ein kleiners Manko unter Windows Vista ist allerdings, dass Microsoft den Treiber für die emulierte Netzwerkkarte entfernt hat. Das lässt sich zwar dadurch lösen, dass man sich von der AMD Seite den Treiber herunterlädt und davon ein ISO erstellt was man dann in der VM mountet und den Treiber von Hand installiert. So wirklich einfach ist das aber nicht und ohne ein unixoides OS mit mkisofs dürfte es zudem relativ umständlich sein. Es wäre schön wenn der Hersteller entweder auf ein entsprechendes ISO auf der Homepage bereitstellen, oder direkt mitliefern oder eine andere Netzwerkkarte emulieren würde.

Ich werde meine Tests von VirtualBox demnächst fortsetzen und dann hier weiter davon berichten.

Für eine eingehenden Performance-Vergleich möchte ich auf diese Quelle verweisen, ich persönlich war allerdings immer sehr zufrieden mit der Performance.

25 Mar 2007, 09:28

Google Office

Als eifriger Lesen des GoogleWatchBlog staune ich regelmäßig wieviele Produkte Google hat und wie viele sich noch in der Entwicklung befinden.

Da stellt sich mir allerdings schon die Frage, wann endlich das “Google Office” erscheint. Diese vielen Programme, Tools und Datenbanken verlangen quasi danach miteinander verwoben zu werden um die ultimative Browser-basierte Programm-Suite zu schaffen.

Ich bin mal gespannt, die Google Services for Your Domain ist schonmal ein Anfang.

25 Mar 2007, 09:27

FlexiCrypt 1.1 veröffentlicht

Die neue Version 1.1 von FlexiCrypt macht das Programm zu den neuen Versionen der zugrunde liegenden Bibliotheken kompatibel.

Da die Entwickler des FlexiProvider, entgegen aller “Best Practices”, die exportierte API geändert haben, musste ich einige Stellen in FlexiCrypt anpassen.

Durch die neue FlexiProvider Version 1.3.1p1 sind ein paar neue Algorithmen hinzugekommen. Details gibts auf der FlexiProvider Homepage.

25 Mar 2007, 09:22

jTodoList 0.2 veröffentlicht

Gestern Abend habe ich die Version 0.2 von jTodoList veröffentlicht.

Die wesentliche Neuerung sind die neuen Export-Filter.

Weiterhin wurde der Code für weitere Ex- und Import Filter vorbereitet. [UML]

22 Mar 2007, 22:22

Singleton in D

Das ist wohl der erste “self containing singleton” (so habe ich ihn getauft) in D:

 8:    /// Singleton instance.
 9:    private static SceneManager singleton;
10:
11:    /// No public need for this.
12:    private static this() {
13:        singleton = new SceneManager();
14:    }
15:
16:    /// Get signleton instance.
17:    public static SceneManager opCall() {
18:        if(singleton == null)
19:            singleton = new SceneManager();
20:        return singleton;
21:    }
z.B.: SceneManager().registerScene(new DebugScene()); SceneManager().registerScene(new StarfieldScene());

17 Mar 2007, 23:41

Parkour - Ressourcen

Guter Artikel über Parkour Parkour Bericht bei Pro7/Focus TV via Google Video Der Film Yamakasi Der Film Banlieue 13 (B13) Ausschnitt: http://www.youtube.com/watch?v=TPIw3cv8Zls

Parkour in Deutschland Parkour in Österreich Parkour Assoc. Deutschland

Parkour bei YouTube Meine Favoriten: http://www.youtube.com/watch?v=YSDOHbxi6sc http://www.youtube.com/watch?v=njq6i2Fr6vI David Belle Freerunning, XMA, Breackdance, Tricking, … http://www.youtube.com/watch?v=JEbYtOEftc0 http://www.youtube.com/watch?v=jquXcwooV6A http://www.youtube.com/watch?v=xLJumlmZaT4 Passee Muraile

17 Mar 2007, 21:22

Linksammlung zu XMA/Tricking

trickstutorials.com - tutorial zu tricking (mit videos und erklärung) club540.com - videos/artikel bilang.com - videos 24htrickster.de - deutscher einstiegspunkt für “XMA” bzw. “Tricking”
links provided by xlat

17 Mar 2007, 15:43

In China ist ein Reissack umgefallen!

Sobeben erfuhren unsere hochqualifizierten Reporter von dem erschreckenden, skandalösen, ja welt bewegenden Ereignis:

In China ist ein Reissack umgefallen!

Aber keine Panik, eine große deutsche Boulevard-Zeitung ist schon vor Ort um die Menschheit mit exklusiven Bildern zu versorgen.

16 Mar 2007, 10:16

AudioPlayer unter Linux: Quod Libet

“Ex falso quodlibet” (lat., aus falschem folgt beliebiges) - eigentlich ein bekannter Satz aus der Logik stand Pate bei der Nameswahl für meinen neuen lieblings AudioPlayer für Linux.

Das Duo Ex Falso / Quod Libet aus Tag-Editor und schlankem Musik-Player überzeugt durch seine hohe Geschwindigkeit, flexible Konfiguration und die interessante Auswahl an Plugins.

Es scheint so als hätte sich die Autoren Rhythmbox, Amarok, 1by1 und Co. angeschaut und sich nur die besten Features rausgepickt.

Dieses Programm ist wirklich empfehlenswert!

Wer damit nicht glücklich wird kann sich im ubuntuusers Wiki nach Alternativen umschauen.

06 Feb 2007, 16:49

jTodoList veröffentlicht!

Ich habe vor kurzem eine kleine, aber feine To-Do-Liste ein Java geschrieben.

Unter Windows gibt es das hervorragende Programm ToDoList von Abstract Spoon, aber unter Linux läuft das leider nicht.

Da ich aber nunmal beide System einsetze wollte ich auch unter Linux eine Möglichkeit meine ToDo zu bearbeiten.

Dabei rausgekommen ist dieses nette Programm.

Zu finden ist das ganze unter diesem Link. Dort gibts auch einen Screenshot und weiter Informationen.

Ach ja, es wird Java 5+ benötigt und das ganze steht unter GPL.

23 Nov 2006, 11:10

Java Strings oder Wie-ich-meine-Perfromance-verbaue

Kürzlich musste ich feststellen, dass es keine gute Idee ist eine größere Menge an Daten in einem String zu puffern. Ich finde es etwas schwierig zu umschreiben aber so sieht der Beispiel-Code aus:

String str = ""
while((buffer = br.readLine() != null) {
  str += buffer;
}
return str;

Das Problem an dieser Konstruktion ist, dass bei jedem Schleifendurchlauf - und das waren in dem Fall einige - jede Menge Objekte anglekt werden. Für die + Operation zwischen Strings (Konkatenation) wird von Java in etwa folgener Code generiert:

str = new StringBuilder().append(str).append(buffer).toString();

Eventuell wird das interne Char-Array des StringBuilders beim zweiten append nochmal vergrößert, d.h. ein neues anlegen, das halt hineinkopiert, das alte löschen. Dabei muss eine Menge Speicher allokiert und wieder freigegben werden, jeden Menge neue Objekte werden erzeugt, sprich: es entseht ein riesiger Overhead. Das kommt insbesondere dann zum tragen wenn die der BufferReader br gerade dabei ist eine Textdatei von vielleicht 5MB einzulesen, z.B. Base64 kodierte Binärdaten. Die ganze Operation hat so je nach System ca. 10-120 Minuten benötigt.

Einen kleinen Tipp und ein paar Änderungen später hat das ganze nur noch ca. 1,2 Sekunden benötigt. Der oben genannte Code wurde einfach in folgendes geändert:

StringBuilder sb = new StingBuilder()
while((buffer = br.readLine() != null) {
   sb.append(buffer);
}
return sb.toString();

Da hier der StringBuilder direkt benutzt wird, ergibt sich ein beachtlicher (!) Performanz-Gewinn.

16 Oct 2006, 10:26

FlexiCrypt 1.0 veröffentlicht

Soeben haben wir unter developer.gauner.org/flexicrypt/ das universelle crypto toolkit FlexiCrypt veröffentlicht.

Es ist das Ergebniss einer 6 monatigen Entwicklung und ermöglicht es dem Benutzer beliebige Dateien zu ver- und entschlüsseln, zu signieren und verifizieren. Ausserdem enthällt es eine komplette Schlüsselverwaltung.

Das besondere daran ist, dass es auf den FlexiProvider vom Fachbereich Informatik der TU Darmstadt aufsetzt und damit auch Zugang zu den neusten Algorithmen bietet. Darunter z.B. ECC, Number Field Cryptography.

13 Oct 2006, 09:21

DAS WERKZEUG (bekannt aus der TV Serie: Mac Gyver)

Für den einen ist es das Schweizer Taschenmesser, für den anderen ist es die wahrscheinlich kleineste Waffe der Welt. >>> Click here to see a picture of “Das Werkzeug” < <<

13 Oct 2006, 08:53

IceWeasel

Was ist das? Habe ich mich auch gerade gefragt. Aber, ganz einfach, es ist der Versuch FireFox auf GNU kompatibel zu machen um es mit GNU Linux distributionen auszuliefern. Naja, wer zuviel zeit hat….

Link: http://www.gnu.org/software/gnuzilla/

04 Oct 2006, 09:46

Taktloss in Darmstadt!

Taktloss war aber mal sehr genial.

Die Vorbands waren ziemlich gorottig, aber Taktloss ist einfach unvergleichlich.

25 Sep 2006, 18:17

Belgische Zeitungen aus den Google-Index entfernt

Tja, so haben es sich die Verleger wohl nicht vorgestellt, als Sie gegen Google geklagt haben.

Selbst Schuld würde ich sagen.

20 Sep 2006, 10:59

Kernel 2.6.18 released!

Aye!

Nach dem rc7 ist es endlich soweit. Das hat diesmal irgendwie ziemlich lange gedauert.

Endlich ist er da: Source, Changelog

05 Sep 2006, 18:40

Kernel 2.6.18-rc6 released

Schade, rc5 war wohl doch nicht der letzte.

Anyway, hier ist rc5 und das Changelog.

29 Aug 2006, 09:22

Movie Review: Miami Vice

Wow. Sehr netter Film.

Ich habe mir heute den neuen Miami Vice angeschaut und muss sagen, dass ich sehr beeindruckt bin.

Beeindruckende Bilder, fetter Sound und gute Darsteller.

Wirklich nur zu empfehlen.

28 Aug 2006, 09:10

Kernel 2.6.18-rc5 released

Vor kurzem wurde der Linux Kernel 2.6.18-rc5 veröffentlicht.

Ich hoffe, dass das der letzte RC ist, ich warte auf einige Features, wie die Unterstützung des Abit µGuru-Chips, schon lange.

Hier das Changelog.

28 Aug 2006, 09:01

Bilder von der GC

Ich war, genau wie ca. 182.999 andere Besucher die letzten Tagr mal auf der Games Convention in Leipzig. Mein Fazit: zu voll, zu klein, zu lange Schlangen und viel zu viele Kinder. Ich würde mit den bunten Bändchen aufhören und die Messe gleich als Ü18-Veranstaltung konzipieren.

Hier noch ein paar Bilder:

GC - Antother Lord of the Rings Game GC - Noch mehr Autos GC - Guild Wars: Nightfall GC - Noch ein Auto GC - Ein Auto GC - Die Hinfahrt

28 Aug 2006, 08:50

Bilder von Berlin

Ein paar Bilder aus Berlin.

Berlin at Night - againBerlin at DayBerlin at Night

24 Aug 2006, 10:42

Impressum

Dies ist eine private Webseite die ausschließlich die Meinungen der Benutzer wiedergibt.

Sollten Sie Anstoss an einem der Beiträg nehmen so nutzen Sie die Kommentarfunktion oder schreiben Sie mir.

Datenschutz:

Ich, der Anbieter dieser Seite, nehme den Schutz Ihrer persönlichen Daten sehr ernst und halte mich strikt an die Regeln der Datenschutzgesetze. Personenbezogene Daten werden auf dieser Webseite nur im technisch notwendigen Umfang erhoben. In keinem Fall werden die erhobenen Daten verkauft oder aus anderen Gründen an Dritte weitergegeben.

Die nachfolgende Erklärung gibt Ihnen einen Überblick darüber, wie dieser Schutz gewährleistet wird und welche Art von Daten zu welchem Zweck erhoben werden.

Datenverarbeitung auf dieser Internetseite

Für das Gauner Blog werden auf dem Server, der dieses Angebot bereitstellt, die folgenden von Ihrem Webbrowser übermittelten Daten in einer Logdatei gespeichert:

  • Browsertyp/ -version
  • verwendetes Betriebssystem
  • Referrer URL (die zuvor besuchte Seite)
  • Hostname des zugreifenden Rechners (IP Adresse)
  • Uhrzeit der Serveranfrage
Diese Daten sind für den Betreiber des Gauner Blog, also mich, nicht bestimmten Personen zu zuordnen. Eine Zusammenführung dieser Daten mit anderen Datenquellen wird nicht vorgenommen, die Daten werden zudem nach einer statistischen Auswertung gelöscht.

Cookies

Die Internetseiten verwenden an mehreren Stellen so genannte Cookies. Sie dienen dazu, das Angebot nutzerfreundlicher, effektiver und sicherer zu machen. Cookies sind kleine Textdateien, die auf Ihrem Rechner abgelegt werden und die Ihr Browser speichert. Die meisten der vom Gauner Blog verwendeten Cookies sind so genannte “Session-Cookies”. Sie werden nach Ende Ihres Besuchs automatisch gelöscht. Cookies richten auf Ihrem Rechner keinen Schaden an und enthalten keine Viren.

Kommentare

Sie können jederzeit Kommentare zu Artikeln in diesem Webangebot verfassen. Die Angabe persönlicher Daten wie Name oder eMailadresse ist erforderlich (es steht Ihnen jedoch jederzeit frei, hier Angaben zu machen, die nicht der Wahrheit entsprechen). Persönliche Angaben, die Sie im Kommentarformular machen, sind mit Ausnahme der eMailadresse öffentlich sichtbar und dienen ausschließlich der Kennzeichnung Ihres Kommentars.

Auskunftsrecht

Sie haben jederzeit das Recht auf Auskunft über die bezüglich Ihrer Person gespeicherten Daten, deren Herkunft und Empfänger sowie den Zweck der Speicherung. Auskunft über die gespeicherten Daten gibt der Betreiber des Weblogs.

Diese Seite setzt Technik von Google ein um Werbung einzublenden und das Benutzerverhalten zu analysieren. Die, hiermit zusammenhängenden, Daten werden von Google erfasst und verarbeitet und unterliegen nicht dem Einfluss des Betreibers des Weblogs. Für weitere Fragen dazu wenden Sie sich bitte an die Datenschutz Seiten von Google.

Diese Erklärung basiert auf der Datenschutzerklärung von Netzklutur der wiederum auf dem freundlicherweise vom Lawblog erarbeiteten Vorschlag aufbaut.

06 Aug 2006, 15:09

Cool&Quiet mit einem Athlon 64 X2 unter Linux trotz fehlerhafter ACPI-Tabellen

Dank des wunderbaren Howtos unter http://wejp.k.vu/projects/howto_cnq_athlon_64_x2/ beherrscht mein Athlon 64 X2 jetzt endlich auch Cool&Quiet :D

28 Apr 2006, 12:43

VoiceCode - Coden ohne finger

Endlich mal eine innovative Idee für Programmierer: Coden per Voice Tool. So kann man Sehnenscheidentzündungen vorbeugen und falls man sich doch mal beide Arme bricht, tut das auch keinen Abbruch. Im Moment ist das ganze aber nur für Python verfügbar.

VoiceCode lets a programmer dictate code in a more natural way, Désilets says, rapidly translating their utterances into awkward programming syntax. For example, in order to write “if (currRecNum < maxOffSet)” a VoiceCode user only needs to say: “if current record number is less than max offset then”. Traditional voice-recognition programs could require nearly 50 individual words to be dictated.
Link: http://voicecode.iit.nrc.ca/

05 Apr 2006, 10:33

Robo-Wrestling

Prädikat Sehenswert

02 Apr 2006, 13:34

The 35 sexiest designed Websites you've forgotten

Nett

31 Mar 2006, 12:17

Lego

Nett: Ein Lego Flugzeugträger

29 Mar 2006, 14:00

OpenBSD/OpenSSH braucht Hilfe

Das OpenBSD Projekt benötigt dringend finanzielle Unterstützung um seine populären Projekte, wie z.B. OpenSSH, weiter zu entwickeln.

Große Firmen wie Apple, Sun und SCO machen viel Geld mit Produkten, die ohne OpenSSH signifikant an (Nutz-)Wert verlieren würden ohne das OpenBSD-Projekt finanziell zu unterstützen.

29 Mar 2006, 14:00

40 Wege um GNOME besser zu machen

Peter Chabada macht 40 Vorschläge um GNOME zu einer besseren Umgebung zu machen. Viele davon finde ich sehr gut.

24 Mar 2006, 11:17

Link: Entwickler über Programmiersprachen

http://www.cabochon.com/~stevey/blog-rants/tour-de-babel.html

In den meisten fällen kann ich die Meinung teilen. Durchlesen lohnt sich.

22 Mar 2006, 10:38

Plan 9 Betriebssystem

Heute habe ich im Linux Magazin einen interessanten Artikel über das offene Betriebssystem plan9 von Bell Laboratories gelesen. Die Bell Labs waren im übrigen auch die Erfinder von Unix. Plan 9 gilt als konsequenteres Unix. Alles ist eine Datei (File) und kann auch so angesprochen werden, alle Resourcen sind in einem Plan 9 Netz transparent verteilbar. System Schnittstellen werden ebenfalls als Datei zur Verfügung gestellt z. B. /net/tcp oder /net/udp.

Werde mir heute abend die LiveCD anschauen. Der Texteditor acme sieht sehr interessant aus. Dieser scheint einen ganz neuen Ansatz der Bedienerführung zu fahren - Ich bin gespannt…

Weiterführende Links:

Plan 9 Homepage bei Bell Labs Eric Raymond über Plan 9 Knoppix Live CD mit Plan 9 und NetBSD Wikipedia Plan 9

19 Mar 2006, 19:05

Software RAID unter Linux

Bis vor kurzem habe ich nichts von einem Software-RAID gehalten, aber diese mdadm Tools sind wirklich einfach zu bedienen und im Vergleich zu den Problemen die ein (billiger) Hardware-RAID Controller unter Linux mit sich bringt ist das ziemlich stressfrei.

Ich glaube ich muss mir demnächst auch mal ein RAID1 einrichten, wenn ich dafür nur meinen Kernel nicht neu kompilieren müsste …

Das Software-RAID How-To Software-RAID unter Debian

15 Mar 2006, 16:26

Zen Garden

Das “Sand Game” ist eine Art virtueller Zen-Garten.

Sehr entspannend und faszinierend.

15 Mar 2006, 12:44

Maps Service von GoYellow

Ich habe heute festgestellt, dass die Firma GoYellow einen Maps Service, ähnlich Google für Deutschland anbietet. Die Auflösung der Bilder lässt sich auch sehen.

Einfach mal Straße und Hausnummer eingeben - bei mir hat es jedenfalls überraschend gut geklappt.

15 Mar 2006, 10:06

Online Bullshit Bingo

Falls langweile aufkommen sollte, einfach mal ‘ne Runde Bullshit Bingo spielen ;D

13 Mar 2006, 12:04

Google maps

Wie ich gerade entsetzt festellen musste, wurde der Maps Service von Google wurde um Karten des Mondes und den Mars erweitert. Auf den Karten sind ebenfalls ein paar Sehenswürdigkeiten wie Landeplätze der diversen Raumfahrtmissionen eingezeichnet - reinschauen lohnt sich.

08 Mar 2006, 18:04

Langeweile?

Ein ganz fieses Spiel ;)

07 Mar 2006, 15:28

Intel im Mac

Werbespott für Intel im Mac - no comment ;)

24 Feb 2006, 21:33

chewys blog: UUUHHHGGG-rrrrr!!

http://rrrrrrrrrrrrrnnnnnnnnnnhhhh.blogspot.com/

22 Feb 2006, 18:42

Darwinia - Independent Kracher von der Insel

Wow, was für ein Spiel - das muss ich haben. Nach dem Hinweis bei Golem habe ich mir sofort die Demo besorgt und durchgespielt.

Das Spiel ist faszinierend anders und optisch beeindruckend. Jedem der eine Neigung für Strategie-Spiele hat kann ich es nur empfehlen.

Hier gibt es noch ein Video und hier ein paar Screenshots.

17 Feb 2006, 11:05

Kent Beck in Frankfurt

Kent Beck kommt nach Frankfurt, einer der Mitbegründer des XP (eXtreme Programming). Leider ist die Teilnahmegebühr von EUR 725,00 etwas zu hoch für Privatpersonen. Mal sehen, ob man das was über die Firma drehen kann - immerhin gibts bis 10.03. noch 25% Frühbucherrabatt. Heise Newspost

16 Feb 2006, 14:15

Sneak Review: Lord of War

Wow. Wieder einmal ein verdammt guter Film in der Sneak. Mit Lord of War haben sich die Verantwortlichen einen wirklich feinen Film über die internationalen Waffenschiebereien, Kriege und Waffenhändler ausgesucht.

Es geht um einen, aus dem Ostblock stammenden, Waffenhändler (Nicolas Cage) der es aus dem Ghetto bis ganz nach oben schafft indem er die Konfliktherde der Erde geschickt ausnutzt und damit ein Vermögen verdient.

Nicolas Cage ist die perfekte Besetzung für die Rolle das bösen Oberschurken, der skrupellos an den meistbietenden Verkauft. Man sieht die Wege der Waffen aus den Kasernen der Roten Armee in die Hände von Kindern, die verrückten Despoten und wieviel Geld mit Waffen gemacht wird.

Besonderst beeindruckend und erschreckend ist das Ende des Films.

Mein Tipp: Anschauen.

15 Feb 2006, 12:37

Objektorientiertes If (Ruby)

wtf? Objektorientiertes If? Ok, das kennen wir:

if (1==2) then
  puts '1==2'
elsif (1==3) then
  puts '1==3'
else
  puts 'neither nor'
end

aber warum nicht so:

(1==2).then do
  puts '1==2'
end.elsif(1==3) then
  puts '1==3'
end.else do
  puts 'neither nor'
end

way cool, mehr solcher snippets gibts auf dem “hier” Link: hier. Happy coding!

14 Feb 2006, 17:08

Matrix Ping Pong

Matrix Ping Pong - einfach anschauen :)

14 Feb 2006, 16:42

Cryptology ePrint Archive

Wer sich für Crypto interessiert, sollte sich mal das “Cryptology ePrint Archive” anschauen: http://eprint.iacr.org/index.html. Eine sehr schöne Resource, wöchentlich aktualisiert. Up-To-Date.

10 Feb 2006, 12:27

Neuer 12 Zylinder Motor erschienen

So einen Motor werde ich mir später mal in meinen Low Rider einbauen. Cruise-control an und das Ding rollen lassen. Das nenne ich Power (Leistungsdaten: 7.603.850 Nm ;D).

Welche Probleme bei der Produktion socher Motoren entstehen, schildert ein Kollege aus dem rc-raceboats.de Forum:

die firma sulzer hat in ihren besten jahren (um 1970 herum) bei uns in winterthur ihre dieselmotoren produziert. von der 40 meter langen fräsmaschine mit in den schlitten einberechneten erdkrümmung (!) habe ich leider nur noch photos gesehen Augenzwinkern

Big boys, big toys.

09 Feb 2006, 22:45

TrueCrypt

Ich war lange Zeit der Meinung es gäbe keine (brauchbaren) freien Werkzeugen zum Verschlüsseln von Daten und Laufwerken. PGP/GNUPG hat mich nie angesprochen und BestCrypt ist leider kommerziell.

Aber mit TrueCrypt gibt es wirklich eine gute Alternative zu jedem kommerziellen Tool.

Die Installation unter Windows ist natürlich unproblematisch, genau wie der Betrieb. Unter Linux ist es auch nicht weiter kompliziert, man sollte nur die (konfigurierten) Kernel-Sourcen des laufenden Kernels zur Hand haben. Dann klappts auch mit dem compilieren.

Interessant ist vor allem auch das Konzept der “plausible deniability”. Wer mehr wissen möchte, bitte hier entlang.

09 Feb 2006, 11:51

Sneak Review: Aeon Flux

Nachdem wir es gestern Abend mal wieder in die Sneak Preview geschafft haben, wurde ich nicht schlecht überrascht. Wer hätte schon gedacht, dass ein so stark beworbener Film wie ‘Aeon Flux’ (Trailer) in der Sneak gezeigt wird. Normalerweise werden eher unbekannte Filme gezeigt, aber da ich sowieso vor hatte mir diesen Film anzuschauen, war mir das natürlich sehr willkommen.

Zum Inhalt: Im dem Film geht es um eine düstere Zukunftsvision einer Welt in der fast alle Menschen durch einen Virus ausgelöscht wurden. Die letzten Überlebenden (500 Mio.?) leben in einem hermetisch von der Aussenwelt abgerigelten Stadtstaat namens Bregna.

Der Forscher Trevor Goodchild wurde, als dank für das Finden eines Heilmittels, mit dem Leiten der Regierung belohnt. Doch es ist nicht alles perfekt im Staate Bregna. Immer wieder verschwinden Menschen spurlos.

Dagegen und um die Machenschaften der Regierung aufzudecken kämpft eine schlagkräftige Rebellenorganisation. Aeon Flux ist die Speerspitze dieser Organisation, sie bekommt den Auftrag ‘Goodchild’ zu töten. Doch sie ahnt nicht, dass auch sie nur eine Marionette in einem perfiden Spiel ist …

Zur Umsetzung: Der Film ist wirklich sehr gut gemacht. Die perfekte Welt von Bregna ist einfach eine Wohltat für die Augen und die Sinne. Die Musik könnte besser sein, aber die Action-Szenen sind beeindruckend.

Der Showdown geht gut zu Sache und setzt dem Film einen gebührenden Abschluss auf.

Wenn mir jetzt noch jemand die letzten 2 Minuten des Films erklären würde wäre schön.

Quotes: “Halt dich fern vom Gras!”

08 Feb 2006, 15:00

Endlich mal ein echter Grund auf Linux zu wechseln...

hier nur die Links (hoffentlich selbsterklärend ™):

  1. http://www.novell.com/linux/xglrelease/
  2. http://en.opensuse.org/Xgl
  3. http://www.freedesktop.org/Software/Xgl

07 Feb 2006, 22:13

Ruby, Apache + FastCGI

Ruby hat mich begeistert, Rails hat mich tief beeindruckt und FastCGI hat mich schwer enttäuscht. Man sollte denken, dass es mit dieser Anleitung nicht weiter schwer sein sollte Ruby on Rails über FastCGI auf dem Apachen zum laufen zu bringen. Weit gefehlt. Aus irgendeinem Grund war FastCGI der Meinung es müsse mich verarschen. FastCGI: incomplete headers (35 bytes) received from server “/path/to/yourapp/public/dispatch.fcgi” Dank dieses Blogs und diesem Hinweis habe ich es dann doch noch zu einem guten Ende gebracht.

Ich weiss noch nicht genau ob es jetzt an der Datenbankkonfiguration oder den verweisten Sessions lag, aber nachdem ich mich um beides gekümmert hattte lief endlich alles.

03 Feb 2006, 08:43

Let Java retire from the spotlight of web applications in dignity

Hier gehts zum Interview mit dem RoR Entwickler David Heinemeier Hansson: Hier

Respekt…

01 Feb 2006, 09:47

Ruby Links

Wichtige Links zu Ruby on Rails RubyForBeginner API-DOC AccessControlListExample Ruby on Rails Wiki

25 Jan 2006, 10:29

Cute Code Collection

Steves ‘Cute Code’ Collection, faszinierend was sich Menschen so aussdenken.

x ^= y ^= x ^= y ;
Vertauschen von zwei Variablen ohne eine dritte herziehen zu müssen.