Menu

cd ~
wget http://www1.mplayerhq.hu/MPlayer/releases/codecs/all-20061022.tar.bz2
sudo mkdir /usr/lib/codecs
sudo ln -s /usr/lib/codecs /usr/lib/codecs-win32
tar jxvf all-20061022.tar.bz2
sudo mv all-20061022/* /usr/lib/codecs

wget http://www1.mplayerhq.hu/MPlayer/releases/codecs/rp9codecs-20050115.tar.bz2
sudo mkdir /usr/lib/real
tar jxvf rp9codecs-20050115.tar.bz2
sudo mv rp9codecs-20050115/* /usr/lib/real

Zacząłęm to pisać sam, nawet już z pamięci, ale znalazłem stronę na której jest dokładnie to co chciałem. Nie lubię korzystać w taki sposób z czyjejś pracy ale tym razem to będzie prywatnie dla mnie do zapamiętania.

modprobe dm_mod

Tworzenie zaszyfrowanego systemu plików:

# create a 10M file
$ dd if=/dev/urandom of=testfs bs=1M count=10

# associate it with the loop device
$ losetup /dev/loop0 testfs

# encrypt it (will ask for password to use)
$ cryptsetup luksFormat /dev/loop0

# open the encrypted loop device
$ cryptsetup luksOpen /dev/loop0 testfs

# format it with ext2 (or whatever you prefer)
$ mkfs.ext2 /dev/mapper/testfs

# mount it
$ mount /dev/mapper/testfs /mnt/test

# confirm mount
$ df -h /mnt/test
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/testfs 9.2M 88K 8.7M 1% /mnt/test

Odmontowanie systemu plików:

# unmount it
$ umount /mnt/test

# close encryption
$ cryptsetup luksClose /dev/mapper/testfs

# release loop device
$ losetup -d /dev/loop0

Montowanie szyfrowanego systemu plików:


# associate file with the loop device
$ losetup /dev/loop0 testfs

# open the encrypted loop device
$ cryptsetup luksOpen /dev/loop0 testfs

# mount it
$ mount /dev/mapper/testfs /mnt/test

Jeżeli jesteś osobą korzystającą serwisu Rapidshare pewnie Twoja zabawa z nim wygląda następująco:

  • klikasz na link / wklejasz jako adres w przeglądarce
  • Naciskasz przycisk "Free User"
  • Niecierpliwie czekasz aż cyferki dojdą do zera, a następnie znowu klikasz w przycisk Download.

O ile w przypadku pojedynczych plików da się to zaakceptować, to gdy jest do pobrania kilkadziesiąt części nazwanych part[0-9]+.rar dochodzi problem oczekiwania do 30 minut między pobieraniem, oraz konieczność kontrolowania całego procesu pobierania i powtarzania wyżej wspomnianych kroków (stan na dzień 2009-03-01).

Czytaj dalej...

Dziwne, nigdy nie przypuszczałem, że taka podstawowa komenda jak rm może się nie powieść (oczywiście bez szczególnych przypadków jak uprawnienia czy brak pliku ... ;) )

quiz:/var/spool/mqueue-client# rm *
-bash: /bin/rm: Lista argumentów za długa

Czytaj dalej...

Usuwanie ostatnio zainstalowanych (niepotrzebnie) pakietów: apt-get --purge remove `cat dpkg.log | grep " installed" | awk '{print $5}'` Takie rzeczy w dystrybucjach debianopochodnych są po prostu cudowne

Wybierając się do Zakopanego pomyślałem, że przydałaby się mapa tego miejsca. Nie chcąc dać zarobić tym $%^ wyzyskiwaczom (:P) pomyślałem że znajdę sobie mapkę na necie

Szybka akcja w stylu google.pl?q=zakopane+mapa doprowadziła mnie do strony:

http://www.mapytatr.net/PRODUKTY/MAPY_TAT/ZAKOPANE/SLICES/zkp_iii.html

zapisałem na dysku, jednak doszedłem do wniosku, że lepiej będzie się ją obrabiało gdy będzie w pojedynczym pliku. Parę machnięć w Gimpie i doszedłem do wniosku że nie tędy droga. Przypomniałem sobie że na serwerze mam zainstalowane imagemagick, więc spróbowałem pójść tędy.

Początkowa wersja:

convert +append zkp_01.jpg zkp_02.jpg (...) a.ppm
convert +append zkp_10.jpg zkp_11.jpg (...) b.ppm

Cóż, już lepiej, wszystko dzieje się automatycznie, ale nadal czegoś brakuje. Spróbowałem wildcharów / regexpów i okazało się, że poprawna jest konstrukcja:

convert +append zkp_1[0-8].jpg b.ppm

Zatem ostatecznie:

convert +append zkp_0[1-9].jpg a.ppm
convert +append zkp_1[0-8].jpg b.ppm
convert +append zkp_19.jpg zkp_2[0-7].jpg c.ppm
convert +append zkp_2[8-9].jpg zkp_3[0-6].jpg d.ppm
convert +append zkp_3[7-9].jpg zkp_4[0-5].jpg e.ppm
convert +append zkp_4[6-9].jpg zkp_5[0-4].jpg f.ppm
convert +append zkp_5[5-9].jpg zkp_6[0-3].jpg g.ppm
convert +append zkp_6[4-9].jpg zkp_7[0-2].jpg h.ppm
convert +append [a-h].ppm mapa.jpg

Uczę się obecnie Hibernate i podczas pisania najprostszego programu który operował na pojedynczej tabeli wystąpił błąd połączenia z bazą danych

Przy korzystaniu ze standardowego connectora do bazy po sieci lokalnej:
jdbc:mysql://10.0.1.4:3306/quiz
odezwał się exception o braku możliwości połączenia z bazą, mimo że była ona skonfigurowana poprawnie i normalne wykorzystywanie jej jako wsparcie la apache odbywało się bez problemów

Okazuje się że MySQL jest na tyle restrykcyjny przy instalacji, że zabrania połączenia z adresów innych niż localhost.

Aby to zmienić należy w pliku /etc/mysql/my.cnf zakomentarzować dyrektywę skip-networking

$ ssh -R 50000:localhost:3389 flytothesky@quiz.game-host.org

$ rdesktop quiz.game-host.org -p 50000


warunek: (GatewayPorts yes w /etc/ssh/sshd_config).

Jeżeli jest wyłączone, to można jeszcze spróbować dodatkowo:

z domu:
$ ssh -L 3389:localhost:50000 flytothesky@quiz.game-host.org
$ rdesktop localhost

Za pomocą poniższego skryptu możemy zautomatyzować połączenie z serwerem (przy założeniu że mamy zainstalowany pakiet expect)
jeśli nie to (Ubuntu) sudo apt-get install expect

#!/usr/bin/env expect

set username yourUsername
set pass yourPasswd
set host theHost

spawn ftp ${username}@${host}
expect "Password:"
send "${pass}\r"
expect "ftp> "
interact
Szczerze mówiąc potrzebna mi była wersja przerobiona na ssh, w połączeniu z powyższym postem. Jeszcze tylko wrzucenie do autostartu i będzie linuxowy "trojan" ;) dla osoby znajdującej się za natem

Konwersja stron kodowych

iconv -f CP1250 -t ISO8859-2 plik_cp1250.txt > plik_iso8859-2.txt

Problem, który miałem ostatnio do rozwiązania wyglądał następująco:

W systemie domyślnym MTA jest qmail. po odebraniu wiadomości email wysłanej za pomocą funkcji mail() w skrypcie php, w treści listu widoczne są znaczniki html oraz nagłówki wiadomości.

Okazało się, że qmail nie jest do końca zgodny ze standardami RFC. W przypadku gdy standard wymaga stosowania do oddzielenia poszczególnych nagłówków znaków CRLF ( \r\n ) to on w przypadku linuxa, na którym się znajdował, oczekiwał linuksowego zakończenia linii LF ( \n ). Niestety w skryptach korzystających z mail() używane są przeważnie te pierwsze, co sprawia, że qmail w czasie analizy zamienia pierwszy \r na parę \r\n a co za tym idzie wprowadzając dający opisane wyżej nieciekawe rezultaty, ciąg \r\r\n.

przeszukując fora znalazłem sporo informacji na ten temat ale prawie żadnego sensownego rozwiązania. najbardziej przypadło mi do gustu to z postu

/etc/php.ini : sendmail_path = "unix2dos|dos2unix|sendmail -t -i"

Wszystko byłoby pięknie gdyby nie fakt, że do tej zmiennej w moim przypadku nie dało się wstawić potoków, musiałem więc zrobić to troszkę inaczej

stworzyłem dodatkowy skrypt:

/var/qmail/bin/sendmailfix
#!/bin/sh
sed 's/^M$//' | /var/qmail/bin/sendmail ${1-@}

plik ten jest własnością grupy qmail chgrp qmail /var/qmail/bin/sendmailfix

teraz pozostaje jedynie dopisać ten skrypt jako ścieżka do programu sendmail i gotowe

Zapisuje to tak na przyszłość aby ułatwić sobie w przyszłości znajdowanie podobnych rzeczy

apt-get install libapache2-mod-php4 php4-cli php4-common php4-cgi

Czy kiedykolwiek zastanawiałeś się jak hurtem pozamieniać ciągi znaków w pliku? jeżeli chodzi nam o zwyczajny tekst to ostatecznie poradzi sobie z tym notatnik. Aby operować na znakach końca linii można wykorzystać Worda z pakietu Office. Jak jednak to zrobić najskuteczniej pod linuxem. Po zabawie z mcedit oraz vi doszedłem do wniosku ze oba mnie pod tym względem nie satysfakcjonują. Google poszło w ruch i naprowadziło mnie na świetne polecenie sed

sed czyli Stream EDitor to edytor strumieniowy który znakomicie współpracuje z linuxowym bashem.

Moim zadaniem była dopisanie po kazdej linijce w pliku tekstowym nowej linijki jedynie za znakiem '-'

Dodanie po każdej linijce dodatkowej pustej linii

cat plik.txt | sed G > plik.txt

Wypełnienie kazdej pustej linii znakiem '-'

cat plik.txt | sed "s/^$/-/" > plik.txt

sed obsługuje przy wyszukiwaniu wyrażenia regularne.
Zamiana ciągów znaków to dopiero początek góry lodowej ... Sed w przykładach

Niby mała rzecz a przydatna
aby zaktualizować czas za pomocą protokołu ntp należy użyć polecenia ntpdate

ntpdate nt.task.gda.pl