Update RubyGem für Ruby on Rails bei Domainfactory

Der Hoster Domainfactory bietet seid einiger Zeit Ruby on Rails-Unterstützung. Leider sind die installierten Gem-Pakete etwas veraltet und die FAQ von D)F etwas verwirrend, da sie sich nicht an den Standardweg halten.
Folgende Anleitung bezieht sich auf Managed Hosting-Pakete mit ssh Zugang.
Variablen in der Datei .bash_profile setzen:

export PATH="$HOME/.gem/ruby/1.8/bin:$PATH"
export RUBYLIB="$HOME/.gem/ruby/1.8/lib:$RUBYLIB"
export GEM_HOME="$HOME/.gem/ruby/1.8"
export GEM_PATH="/usr/lib/ruby/gems/1.8:$GEM_HOME"

Variablen in die laufende Shell laden. Bei einem erneuten Login wird die Datei von alleine geladen:

source ~/.bash_profile

Zunächst installiert man ein neues RubyGems:

gem install rubygems-update
update_rubygems --prefix=$GEM_HOME
ln -s $GEM_HOME/bin/gem18 $GEM_HOME/bin/gem
gem -v

Homeverzeichnis feststellen:

echo $HOME
/kunden/xxxxxxxx

In der Datei .gemrc werden die Information hinterlegt damit der Webserver die Gems verwenden kann. Die Datei verwendet YAML-Syntax:

gem: --no-ri --no-rdoc
gemhome: &GemHome /kunden/xxxxxxxx/.gem/ruby/1.8
gempath:
- *GemHome
- /usr/lib/ruby/gems/1.8

Vor den minus – Zeichen befinden sich jeweils 2 Leerschritte.

Große Festplatte / Raid-Verbund formatieren

Beim Erstellen von Partitionen > 2 TB gibt es mit fdisk/cfdisk Probleme.
Derartig große Platten / Verbünde laufen unter Linux als „Large Block Device“.
Das Programm parted schafft hier Abhilfe.
Partitionstabelle auf gpt umstellen und schon läuft’s.

server:~# parted /dev/sdb
GNU Parted 1.8.8
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel Yes gpt
Warning: The existing disk label on /dev/sdb will be destroyed and all data on this disk
will be lost. Do you want to continue?
(parted) p
Model: AMCC 9500S-8 DISK (scsi)
Disk /dev/sdb: 4500GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
(parted) mkpart primary 1 4500GB
(parted) q

So nur noch Dateisystem anlegen und Kaffee holen:

server:~# mkfs.ext4 /dev/sdb1
mke2fs 1.41.3 (12-Oct-2008)
Dateisystem-Label=
OS-Typ: Linux
Blockgröße=4096 (log=2)
Fragmentgröße=4096 (log=2)
274661376 Inodes, 1098624759 Blöcke
54931237 Blöcke (5.00%) reserviert für den Superuser
Erster Datenblock=0
Maximale Dateisystem-Blöcke=0
33528 Blockgruppen
32768 Blöcke pro Gruppe, 32768 Fragmente pro Gruppe
8192 Inodes pro Gruppe
Superblock-Sicherungskopien gespeichert in den Blöcken:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848, 512000000, 550731776, 644972544
Schreibe Inode-Tabellen: erledigt
Erstelle Journal (32768 Blöcke): erledigt
Schreibe Superblöcke und Dateisystem-Accountinginformationen: erledigt
Das Dateisystem wird automatisch nach jeweils 32 Einhäng-Vorgängen bzw.
alle 180 Tage überprüft, je nachdem, was zuerst eintritt. Veränderbar mit
tune2fs -c oder -t .

Fertig

Detect charset with php5 – utf8 or not


/**
* Checks the charset of a text by a given charst
* Works by comparing text with double encoded text.
*
* @param string $text The text string to check for charset.
* IE "test" or "töster" or "100 €" or "Пред" or "留学生"
* @param string $encoding The charset to check with.
* IE "ASCII" or "ISO-8859-1" or "ISO-8859-15" or "UTF-8"
* @param string $middle_encoding The charset to use between the both encoding steps.
* "UTF-8" is default.
* @return boolean true or false
* @author Christof E. Spies
* @copyright ICEF GmbH
* @since 2009-04-20
* @link http://de.php.net/mb_convert_encoding
*/
function check_charset ( $text, $encoding, $middle_encoding = "UTF-8" )
{
return $text === mb_convert_encoding ( mb_convert_encoding ( $text, $encoding, $middle_encoding ), $middle_encoding , $encoding );
}

/**
* Detects the charset of a text from an array of charsets
*
* @param string $text The text string to check for charset. IE "test" or "töster" or "100 €" or "Пред" or "留学生"
* @param array $encoding The charset to check with.
* Default is array(
* "ASCII",
* "ISO-8859-1",
* "ISO-8859-15",
* "UTF-8"
* );
* @retrun string charset or false
* @author Christof E. Spies
* @copyright ICEF GmbH
* @since 2009-04-20
*/
function detect_charset ($text, array $possible_charsets=array("ASCII","ISO-8859-1","ISO-8859-15","UTF-8"))
{
foreach ($possible_charsets as $code)
{
if (check_charset($text, $code))
{
return $code;
}
}
return false;
}

Sprache für Rechtschreibprüfung in Thunderbird leichter Umstellen

Wer permanent in zwei oder mehr Sprachen kommuniziert, kennt das Problem sicherlich. Ständig muss man seine Programme auf die richtigen Spracheinstellungen bringen.
Für das Email-Programm Mozilla Thunderbird habe ich eine schöne Erweiterung entdeckt, mit der sich das Umschalten mit einem Mausklick erledigen lässt. Die Lösung heißt etwas ausschweifend Wörterbuch-Manager für Thunderbird. Funktioniert gut, viel Spaß damit.