Bsplw. so:
1 |
$ /usr/lib/jvm/jdk1.8.0_73/bin/ControlPanel |
Wer nicht sicher ist, wo seine Java-Installation liegt:
1 |
$ dpkg -L openjdk-8-jre |
listet alle vom JDK installierten Dateien auf.
Bsplw. so:
1 |
$ /usr/lib/jvm/jdk1.8.0_73/bin/ControlPanel |
Wer nicht sicher ist, wo seine Java-Installation liegt:
1 |
$ dpkg -L openjdk-8-jre |
listet alle vom JDK installierten Dateien auf.
Ich kann es mir nicht merken:
1 |
tar -zcvf archive.tar.gz directory/ |
PS: Das war mein 666ster Post \m/
1 2 3 |
nl ~/.bash_history | sort -k 2 -k 1,1nr| uniq -f 1 | sort -n | cut -f 2 > unduped_history cp unduped_history ~/.bash_history rm unduped_history |
Danach bash neu starten.
Duplikate zukünftig vermeiden (Quelle: wie oben, oder mit Erklärung hier), kommt unter OS X aber in die .bash_profile:
1 |
export HISTCONTROL=ignoreboth:erasedups |
Eingehenden Port blocken:
1 |
sudo ipfw add 1 deny tcp from any to any 80 in |
Alle definierten Regeln anzeigen:
1 |
sudo ipfw list |
Alle definierten Regeln löschen:
1 |
sudo ipfw -f flush |
Wer weiß, wie man nur bestimmte Regeln löscht?
PHP auf eine andere Version (bsplw. die des MAMP) umbiegen (in der .bash_profile):
1 2 3 4 |
# Mamp Pro 3: alias php='php -c /Library/Application\ Support/appsolute/MAMP\ PRO/conf/php.ini' # Mamp 2: alias php="/Applications/MAMP/bin/php/php5.5.10/bin/php" |
Wo liegt die php.ini?
1 |
$ php --ini | grep "Loaded Configuration File" |
Wo liegt das Verzeichnis für Erweiterungen?
1 |
cat /path/to/php/conf/php.ini | grep extension_dir |
Alle geladenen Module:
1 |
php -m |
Ist ImageMagick verfügbar?
1 |
php -r "print(class_exists('imagick'));" |
To be completed!
Wer seinen Emailaccount umzieht und nicht aufpasst, hat vielleicht bald dasselbe Problem wie ich es neulich hatte: Einzelne Mails sind doppelt auf dem neuen Server gelandet. Dumm, dass Apple Mail doppelte Mails ausblendet; das macht das Aufräumen so schwierig. Gut dagegen, dass es Michael Tsai gibt, der hat nämlich die Lösung:
1 |
defaults write com.apple.mail AlwaysShowDuplicates -bool true |
hth
Ich habe eine Route
1 |
$route['(:any)/migrate'] = 'cli/migrate'; |
und einen zugehörigen Controller
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
class Migrate extends CI_Controller { public function __construct() { parent::__construct(); if (!$this->input->is_cli_request()) { show_404(); } $this->load->library('migration'); } public function index() { if ($this->migration->latest()) { echo 'DB on "' . ENVIRONMENT . '" successfully migrated!' . PHP_EOL; } else { echo 'Error: ' . $this->migration->error_string() . PHP_EOL; } } } |
Das hat die ganze Zeit funktioniert – jetzt bekomme ich
Message: Undefined index: REMOTE_ADDR
So weit, so klar: Eine Remote-IP habe ich nur, wenn der Aufruf auch von Remote kommt. Jetzt könnte man auf PHP schimpfen, warum der Index nicht trotzdem da ist, bsplw. mit 0.0.0.0, dem leeren String oder meinetwegen NULL gefüllt. Aber viel interessanter finde ich die Frage, warum das plötzlich nicht mehr geht. Wenn man sich den Controller oben ansieht, dann wird das erst mal nicht klar: Die IP wird nicht direkt abgefragt – klar, sonst hätte es auch nicht so lange funktioniert. Es wird aber auch keine Custom Klasse verwendet. Nicht mal indirekt, wie sich herausstellt, denn:
Die Session-Library ist der Übeltäter, die hatte ich vor Kurzem in die Autoload getan. Nun möchte ich an der Framework-Klasse CI_Session nicht herumdoktern, deshalb sieht mein aktueller Hack in der autoload.php so aus:
1 2 3 4 |
if (isset($_SERVER['REMOTE_ADDR'])) { $autoload['libraries'] = array('session'); } |
Irgendwelche besseren Vorschläge?
Der Titel wird dem Inhalt nicht ganz gerecht, aber dieser Post ist eh nur als Erinnerungsstütze für mich gedacht. Also, folgendes Skript:
1 2 3 4 5 6 7 8 9 10 11 |
#!/bin/bash # workaround to allow multi-commands: cmd="" for directory in dir1 dir2 dir3 do if [ -d $directory ] then cmd="find $directory -regextype posix-extended -regex ".*.html" -exec sed -i 's:href="../../([a-z]{2})/contact/:href="https://myDomain.com/1/contact/:g' {} ;" eval $cmd fi done |
lehrt uns:
Insgesamt soll das obige Skript in allen HTML-Dateien in den Verzeichnissen dir1, dir2 und dir3 (und Unterverzeichnissen) die relativen Pfade “../../de/contact”, “../../en/contact”, usw in absolute URLs ändern, ohne dabei die Sprache zu verlieren
Update Juli 2013: Besser ist die “Pi MusicBox“
Der Prozessor des Raspberry ist mit seinen 700 MHz nicht eben schnell – bisher habe ich den Desktop noch nicht ausprobiert, aber ich habe mir sagen lassen, dass schon Surfen keinen Spaß macht. Habe ich aber auch nicht vor 🙂 Denn der Prozessor ist zum Beispiel explizit in der Lage, HD-Videos zu rendern – wohlgemerkt lüfterlos. Das prädestiniert ihn als Media Center. Gut, HD-Videos kann mein Bluray-Player auch, aber ich will mal ausprobieren, wie sich der Raspberry als Spotify-Client schlägt. Das kann mein Bluray-Player (oder irgendwas anderes in meinem Heimkino) nämlich nicht.
Also, ich habe Raspbian “wheezy” installiert, und setze funktionierendes LAN voraus:
Es gibt eine Anleitung von Hexxeh, die funktioniert aber nicht. Zuerst kann ich die angegebenen Pakete nicht installieren – irgendwo ist …/libmpg123-0_1.14.2+svn20120622-1_armhf.deb eingetragen, online ist aber (Stand 5.10.12) nur libmpg123-0_1.14.4-1_armhf.deb 🙁 Für die Akten: Man lade libmpg123-dev_1.14.4-1_armhf.deb und libmpg123-0_1.14.4-1_armhf.deb runter, schiebe sie per FTP-Programm (SFTP-Verbindung wählen; User “pi”/Passwort “raspberry”) auf das Gerät nach “/home/pi/”, und installiere sie manuell:
1 2 |
sudo dpkg -i libmpg123-0_1.14.4-1_armhf.deb sudo dpkg -i libmpg123-dev_1.14.4-1_armhf.deb |
Aber das genügt nicht; ich einen bekomme fehlende vcos_platform_types.h und vcos_platform.h und ilclient.h. Nach gut zwei Stunden (denn man beachte den Lösungsansatz für das erste Problem: zweistellig viele Files editieren; sowie die Unübersichtlichkeit des zweiten Links) gebe ich auf, und versuche einen anderen Weg – der geht zum Glück ziemlich straight forward:
Zuerst installiere ich Subversion (Quelle):
1 |
sudo apt-get install subversion |
Dann ziehe ich mir die despotify-Sourcen (Quelle) plus einiger Libs (Quelle: README-Datei) direkt, und compiliere sie:
1 2 3 4 5 6 7 8 9 |
svn co https://despotify.svn.sourceforge.net/svnroot/despotify despotify sudo apt-get install libssl-dev zlib1g-dev libvorbis-dev libtool sudo apt-get install libpulse-dev sudo apt-get install libgstreamer-plugins-base0.10-0 libgstreamer0.10-dev --fix-missing sudo apt-get install libao-dev cd despotify/src/ cp Makefile.local.mk.dist Makefile.local.mk make sudo make install |
Im Wesentlichen war es das! Man sollte sich nun mittels
1 |
despotify-simple <userid> <password> |
einloggen können.
Achtung #1: Die userid ist nicht der Username! Sondern die Nummer, die man unter anderem hier findet (man sieht sie auch, wenn man eine Support-Anfrage stellt) – Danke, @moritzmoro. Achtung #2: Laut FAQ von despotify geht das nur mit Premium-Accounts! Sowas habe ich nicht (mehr), deshalb breche ich hier bis auf Weiteres ab. In den kommenden Tagen werde ich zwei Dinge updaten: Ich werde mein Raspberry frisch aufsetzen, und die obige Anleitung prüfen – ich habe doch so einiges installiert heute, und möchte vermeiden, dass etwas davon wichtig war, aber hier vergessen wurde. Zweitens werde ich (hoffentlich) meinen Spotify-Account, der momentan mit meinem Facebook-Konto verbunden ist, in einen “richtigen” umwandeln können, und diesen auf Premium upgraden.
UPDATE: Richtig, mit einem Premium-Accoount kann man sich einloggen. Der Login dauert recht lange, aber es geht:
Anmerkungen: