суббота, 11 августа 2007 г.

Массовое конвертирование содержимого файлов из windows-1251 (cp1251) в UTF-8 - iconv

В общем сегодня я достаточно долго искал чем же и как конвертировать содержимое всех своих php файлов из windows-1251 (cp1251) в UTF-8. 
Руками работать не хотелось, а головой не получалось. Но в результате с легким матерком написал вот этот bash-скрипт:
#!/bin/bash

FILES="./*.php"
for i in $FILES
do
echo "Converting $i to UTF-8 encoding..."
mv $i $i.icv
iconv -f WINDOWS-1251 -t UTF-8 $i.icv > $i
rm -f $i.icv
done
Он достаточно резво конвертирует все файлы в текущей директории  из windows-1251 (cp1251) в UTF-8:

aldekein@Aldekein:~/123$ ./recode
Converting ./add_by_emai2.php to UTF-8 encoding...
Converting ./add_by_email.php to UTF-8 encoding...
Converting ./fs.php to UTF-8 encoding...
Converting ./head.inc.php to UTF-8 encoding...



Если же туда присобачить вывод команды find -iname '*.php', то получим еще и рекурсивную работу в папке...

пятница, 10 августа 2007 г.

Apache + PHP + MySQL (Ubuntu Dapper Drake)

ставил сабж...

руководствовался вот этим - http://ulmencave.blogspot.com/2007/05/apache2-ssl-php5-mysql5-ubuntu-feisty.html и во многом вот этим http://www.eightpence.com/running-multi-threaded-apache-with-php-on-ubuntu/

Скачал себе апач из репозитория synaptic, т.к. самая свежая версия мне не так уж и нужна для локального написания сайтов, а вот PHP скачал c php.net посвежее, собрал как
./configure --with-gd --with-ttf --enable-sockets --enable-zip --with-apxs2=/usr/bin/apxs2 --with-mysql --enable-maintainer-zts --prefix=/usr
(жирным помечены ключи, где были проблемы - пришлось поставить через apt-get пакет apache-dev-multithread чтобы стал apxs (это такая фича для автоматичесткой установки модулей в apache) и установить клиент mysql: apt-get install libmysqlclient14-dev)

Без apxs php ставится отдельно и с apache не хочет взаимодействовать. Или выдает ошибку о несовместимости многопоточной версии с однопоточным Php если не включить ключ --enable-maintainer-zts

Вот так... =)

четверг, 9 августа 2007 г.

использование obexftp по usb с siemens

Итак... сегодня я буду пытаться подключить многострадальный Siemens C65 к компьютеру с linux.
К сожалению мои попытки установить siefs не увенчались успехом - заставить его откомпилироваться я так и не смог, поэтому я пошел другим путем.

Для начала я забрал с http://packages.debian.org/ следующие пакеты:
libbluetooth2_3.7-1_i386.deb
libopenobex1_1.3-3_i386.deb
obexftp_0.19-7_i386.deb


Поставил все три, после чего начал играть с obexftp.

Для начала подключил свой USB кабель (по моему это DCA-510, во всяком случае под виндой я им шил...).
Для того, чтобы определить куда он повис в системе, набрал в консоли:

root@Aldekein:/# dmesg tail

находим:

[17189517.828000] usb 2-3: new full speed USB device using ohci_hcd and address 7
[17189518.792000] usbcore: registered new driver usbserial
[17189518.792000] drivers/usb/serial/usb-serial.c: USB Serial support registered for generic
[17189518.796000] usbcore: registered new driver usbserial_generic
[17189518.796000] drivers/usb/serial/usb-serial.c: USB Serial Driver core
[17189518.800000] drivers/usb/serial/usb-serial.c: USB Serial support registered for pl2303
[17189518.804000] pl2303 2-3:1.0: pl2303 converter detected
>>> это >>> 4000] usb 2-3: pl2303 converter now attached to ttyUSB0
[17189518.804000] usbcore: registered new driver pl2303


Кабель теперь висит на ttyUSB0.

Набираю:
root@Aldekein:/# obexftp -t /dev/ttyUSB0 -l /


Receiving "/"... Sending ""... done

folder-listing version="1.0"

folder name="Data" modified="20040101T000000" perm="RWD" perm="W"

folder name="Cache" modified="20040102T000000" perm="RWD" perm="W"

folder name="Config" modified="20040103T000000" perm="RWD" perm="W"



А вот и список директорий... =)

Остальные команды можно увидеть по "man obexftp"

Несколько примеров по использованию живут тут - ObexFTP usage examples - http://dev.zuckschwerdt.org/openobex/wiki/ObexFtpExamples

Допустим, получение нескольких файлов из директории:
> obexftp -c Data/Pictures -g image01.jpg image02.jpg anim23.gif


Или вот такой скрипт [(C) http://dev.zuckschwerdt.org/openobex/wiki/ObexFtpExamples] для автоматического скачивания всех картинок в текущую директорию:
> rm /tmp/mobil.txt; for i in `obexftp -c Data/Pictures -l`;\
do name="` echo \"$i\" | grep name | sed 's/"//g' | sed 's/^name=//g' `";\
echo $name >> /tmp/mobil.txt; done; \
echo `cat /tmp/mobil.txt|sed 's/\n//g'` > /tmp/mobil2.txt; sleep 1;\
obexftp -i -c Data/Pictures -g `cat /tmp/mobil2.txt`


А вот еще один, более удобный вариант - позволяет просто щелкнуть по файлу правой кнопкой мыши, выбрать send2mobile и все - файл лежит в телефоне в корне диска Data.

файл ~/.gnome2/nautilus-scripts/send2mobile:

#!/bin/bash
for arg
do
obexftp -t /dev/ttyUSB0 -c Data -p "$arg"
sleep 1
done

=)

"Заработался" - это когда далеко за полночь в поисках инфы по монтированию siefs забредаешь на какой-то форум, прочитываешь целую ветку, получаешь массу ценных сведений и только ближе к концу понимаешь, что форум вообще-то полностью на белорусском...