The only guide to setting up sending emails from a Dyndns host you’ll ever need

After tinkering around for hours in order to set up outgoing mail from my Dyndns server using Exim4 and a Gmail, I found this guide. Removing Exim4 took longer than setting this up:

http://devblog.virtage.com/2013/05/email-sending-from-ubuntu-server-via-google-apps-smtp-with-msmtp/

MongoDB World 2014

Great conference! Here are the slides and the sessions.

The keynote by Charity Majors was definitely the best one on the whole conference.

I attended the following sessions which I thought to be very helpful:

Online shop reference architecture based on MongoDB database

Retail Reference Architecture part 1: Product catalog

Retail Reference Architecture part 2: Distributed inventory

Retail Reference Architecture part 3: Analytics

The complete source code is going to be open-sourced.

Storing time series data in MongoDB for Analytics

Time series data in MongoDB part 1: Sample application

Time series data in MongoDB part 2: Aggregation Framework and Hadoop

Time series data in MongoDB part 3: Sharding

The complete source code is going to be open-sourced, too.

A simple node.js/mongoose/elasticsearch application at LinkedIn

Session

Running MongoDB at scale at parse.com

Session

Core4400

Hardware-mäßig kein Exot, dafür aber Software-mäßig. Core2Duo 8400, 4 GB Crucial Ballistix RAM und eine Asus ATI Radeon 1950 Pro. Bei diesem System war mir die Lautstärke wichtig, ein flüsterleises und kühles System mit Bequiet-Netzteil für die Lüftersteuerung. Die Graka hat eine gigantische Heatpipe-Konstruktion und ist nicht hörbar. Der Skythe Samurai kühlt den Prozessor auf 40 Grad bei Vollast und ebenfalls flüsterleise. Am längsten hat die Auswahl des Mainboards gedauert, am Ende ist es dann ein Gigabyte GA P35C-DS3R geworden.Aber die Software!! Naja. Kein LFS mehr, ich habe mittlerweile Gentoo für mich entdeckt. Ein erstaunliches Build-System, wirklich. Hat mich überzeugt. Das macht doch tatsächlich genau, was ich will.. Das erste System überhaupt! Und wenn nicht dann kann man immernoch im gut dokumentierten Innereien herumsägen un basteln. Wirklich toll.

Die Besonderheit hierbei ist das Boot-Setup. Linux ist in einem Linux-Software-RAID 5 installiert, über insgesamt 3 SATA-Platten. Meine Daten-Laufwerke sollen auch unter Windows verfügbar sein und sind daher mit NTFS formatiert. Jedoch wollte ich auch hier nicht auf eine gewisse Datensicherheit verzichten, daher sind die beiden Datenpartitionen mit dem Windows-eigenen Software-RAID gespiegelt. Problem dabei ist, dass diese Windows-RAID-Laufwerke nur funktionieren, wenn sie auf einer Platte mit LDM angelegt werden können (dynamischer Datenträger unter Windows). Dummerweise liegen auch die beiden Partitionen des Linux-RAID5-Arrays auf den LDM-Platten. Diese Partitionstabelle erkennt der Autoassembler für die Linux-RAIDs beim Booten aber nicht. Dazu muss eine Initial-Ramdisk angelegt werden, die das Array zusammenbastelt. Eine Beispielramdisk gibts hier (initramfs.tar). Das entsprechende Initscript /sbin/init sieht folgendermaßen aus:

#!/bin/sh
export PATH=/bin:/sbin
umask 0077
mount -t proc proc /proc
mount -t sysfs sysfs /sys
mount -t tmpfs tmpfs /dev
busybox –install -s
mdev -s
echo /sbin/mdev > /proc/sys/kernel/hotplug
mknod /dev/md0 b 9 0
ln -s /dev/console /dev/tty
mdadm –assemble /dev/md0 /dev/sda11 /dev/sdb3 /dev/sdc3
mount /dev/md0 /new-root
echo > /proc/sys/kernel/hotplug
umount -l /proc /sys /dev
exec switch_root /new-root /sbin/init
exec /bin/sh

Unter Linux sind die LDM-Laufwerke nach folgendem Eintrag in /etc/mdadm.conf verfügbar:

DEVICE /dev/sdb1 /dev/sdc1
ARRAY /dev/md1 level=raid1 num-devices=2 UUID=867e99c4:e8616584:39ad41ad:XXXXXX
DEVICE /dev/sdb2 /dev/sdc2
ARRAY /dev/md2 level=raid1 num-devices=2 UUID=81183f55:72559ad3:3f16c699:XXXXXX

Mit folgendem Script kann man das ganze dann scharf schalten:

mdadm –assemble /dev/md1 /dev/sdb1
mdadm –run /dev/md1
mdadm –add /dev/md1 /dev/sdc1
mdadm –assemble /dev/md2 /dev/sdb2
mdadm –run /dev/md2
mdadm –add /dev/md2 /dev/sdc2

Danach wird das Array neu synchronisiert, das dauert ne Weile, aber es kann schon gemountet werden.

Powerbook Lombard

… mit 400 MHz G3 und 256 MB RAM. Hier läuft Gentoo Linux mit Unterstützung für (fast) alle Hardware. Sogar XV-Ausgabe und die recht beschränkten DRI-Fähigkeiten des Mach64 werden unterstützt – leider aber mit starken Farbfehlern. Liegt warhscheinlich an der Kombination alter X-Server und komisches Kernel-Modul für zu neuen Kernel. Nun ja. Xorg nochmal neu bauen, dann gehts vielleicht. Aber das wird wohl eher auf Gentoo hinauslaufen. Denn mittleiweile habe ich nicht mehr die Zeit, überhaupt ein LFS auf auktuellem Stand zu halten. Geschweige denn 4 oder 5.
Was nicht geht ist die Hardware-Beschleunigung für MPEG-Decodierung. Denn in diesem Powerbook ist eine DXR3-Hollywood-änhliche PCI-Karte eingebaut(!). Leider gibt es bis jetzt keinen Treiber dafür, nur einen Stub.

Motorola Powerstack

PC-Harware, aber PowerPC-Prozessor, 300 MHz PowerPC 604e. Leider habe ich nie ein PowerPC-Grafik-BIOS auf meine Matrox Millenium oder meine verschiedenen ATI-Karten bekommen. Damit würde nämlich auch der X-Server halbwegs erträglich sein auf der Kiste, im Gegensatz zur originalen Trident-Karte. Die hat einfach zu wenig RAM zum arbeiten und ist zu langsam zum Filme gucken. Ich habe auch mit einer Voodoo2-Karte herumprobiert, aber der framebuffer dafür hat nicht so richtig funktioniert. Schade, denn Soundkarte und Netzwerk waren bereits integriert, und der SCSI-Controller war schon recht schnell für damalige Verhältnisse und sogar der IDE-Chip wurde erkannt und unterstützt. Nur war auf dem Board keine Pfostenleiste aufgelötet. Und für alle, die es probieren wollen: Offensichtlich sind die Dinger auch nicht verdrahtet. Selbst wenn man eine auflötet, erkennt der Kernel kein IDE-Gerät…
Hier habe ich ein bisschen gecheatet, ich habe – hoho! – das fertige LFS auf die Powerstack gebügelt. Allerdings habe ich den X-Server mit allen möglichen patches mehrmals neukompiliert, aber ohne ein PPC-BIOS auf einer PPC-Kiste kein X…