Tuesday, September 25, 2007

Проблема с кодировками в mp3 тагах (amarok)

Известная проблема с тагами, rusxmms я не использую потому что не нравится, слушаю музыку при помощи amarok т.к. нравится его библиотека, возможность организовать свою коллекцию, получить лирику.

Раньше пользовался какой то навороченной софтиной, чтобы переконверитровать таги, причем ей нужен был xmms установленный.

Сегодня нашел http://libc6.blogspot.com/2007/01/id3v1-id3v2-mp3-russian-cyrillic-tags.html

Мотаем вниз читаем про Unicode Rewriter.

Вкратце
качаем отсюда
ставим :
 java -jar  скачанный.jar

Запускаем
 java -jar кудапоставили/bin/UnicodeRewriter.jar 

Ставим в поле кодировки cp1251, выбираем кталог (делаем бэкап) запускаем.

Monday, September 24, 2007

Себе, почитать.

Увидел на хостинге - угарно.
http://www.sitepoint.com/print/php5-standard-library

Eclipse pdt, монтирование серваков.

C опозданием узнал что зарелизился eclise pdt. Ждал я этого долго, скачал 100 метров all in one (научен горьким опытом установки плагинами ).
Все хорошо, ожидаемо , но фтп/сфтп плагина в комплекте нет.
2 раза я уже искал нормальные плагины под eclipse для удобной работы по sftp, ftp, чтобы было так же удобно как скажем в зенд студии- не нашел,
Хотел было положить в темный чулан этот редактор, и опять взяться за vim, но подумал, это линух или нет? Может можно замонтировать? Поискал в гугле ssh fs .
http://linux-ru.blogspot.com/2007/03/sshfs-ssh_12.html

Ставим как написано.

sudo apt-get install sshfs
modprobe fuse
sudo usermod -a -G fuse имя_пользователя

Монтируем,

sshfs username@host: ~/work/mnt/hosting1

и работаем через локально подмонтированную директорию на серваке :)
(Лучше отключить кэшировани)
Единственный ньюанс, создаю проекты в ~/workspace/projectname/ а монтирую например в ~/work/mnt/hosting
затем просто симлинк

ls -s ~/work/mnt/hosting1/public_html ~/workspace/projectname/httdocs

Ну и размонтирование

fusermount -u ~/work/mnt/hosting1
или
sudo umount ~/work/mnt/hostring1

Saturday, September 22, 2007

себе

забавно, нужно почитать когда время будет.
http://necromant-2005.livejournal.com/
Обратить внимание на zf time exec. ( у мну такое же мнение)
Подумать о своем фреймворке, тоже наверное нужно компилировать файлы в один.

Wednesday, September 19, 2007

Пакетная обработка файлов, обратный grep

Линух знаю плохо, но стараюсь учиться. Поэтому долго и нудно ищу решения повторяющихся проблем.
1. Проблема. : Нужно применить одну команду к списку файлов.
Решение xargs:
Пример :
Данные
ls -la
1.deb
2.deb
Установка всех деб пакетов.
ls *.deb | xargs sudo dpkg -i
Данные
Директория с исходниками, нужно найти файлы где встречается строка "xxxx"
find ./ (найти все файлы )
find ./ | xargs grep "xxxx" (найти все файлы в каждом файле найти строчку "xxxx"
2. Проблема
Встречаются директории и имена файлов разделенных пробелами, xargs считает это разными входыми парамертами,
Например

$:~/tests$ ls
xxx xx x
$:~/tests$ find ./ | xargs ls
ls: ./xx: No such file or directory
ls: x: No such file or directory
./:
xxx xx x
./xxx:
cd@cd-laptop:~/tests$

Решение
Решение найдено тут : http://linux.presscom.org/25924.html
Чтобы не забыть пишу для себя.


Проблема очевидна, пробел в имени совпадает с разделителем аргументов.
Решение простое - и find и xargs умеют создавать и принимать список аргументов, разделеных нуль-байтом.
$ find ./ -name "t*" -print0 | xargs -0 ls
./test ./te st

Т.е. для моего примера это будет
$find ./ -print0 | xargs -0 lj

3. Проблема
Нужен инверированный grep (обратный)
Решение
grep -v (долго искал, ман плохо читал )
Например
Поиск строки в исходниках, не показывая svn каталоги
find ./ | grep -v 'svn' | xargs grep "xxxx"
(найти все файлы, исключить строки где есть svn, в каждом файле из полученного списка применить поиск "xxx")

Tuesday, September 18, 2007

Себе на память

Вечно забываю синтаксис GRANT в mysql
Вот с примерами.


mysql> GRANT ALL PRIVILEGES ON *.* TO ferst@localhost
IDENTIFIED BY 'some_pass' WITH GRANT OPTION;

mysql> GRANT ALL PRIVILEGES ON *.* TO ferst@"%"
IDENTIFIED BY 'some_pass' WITH GRANT OPTION;

Sunday, September 16, 2007

монтирование fat

В который раз забываю как монтировать фат, периодически всплывает, и тратить лишние 10-15 минут неохота.
Посмотреть разделы
sudo fdisk -l
sudo vim /etc/fstab
добавить
/dev/hda1 /mnt/win vfat iocharset=utf8,codepage=866,rw,umask=000,showexec,quiet 0 0

(где /dev/hda1 раздел который мы получили из вывода fdisk)
где: /mnt/win - точка монтирования(тоесть место куда попадет раздел с виндой после монтирования)
iocharset=utf8 - локаль вашей системы
codepage=866 кодировка windows раздела
umask=000 - позволяет записывать на fat раздел всем юзерам системы.
showexec - нужна чтобы как исполняемые отображались файлы с расширениями com, exe, bat; если её не указать, все файлы будут отображаться как исполняемые.
quiet - Т.к. ф.с. fat не хранит информацию о владельце файла и правах доступа, то при попытке записи такой информации будут выдаваться сообщения о невозможности её записать, что не несёт полезной информации, а только мешает; опция quiet отключает такие сообщения.

Thursday, September 13, 2007

Бывают же чудеса.

У меня адекватно заработал compiz.
Как это было.
При замене ноутбука сразу захотелось поставить себе берил, оказалось что атишный чипсет не особо то лучше сисовского. :( Через три дня я с горем пополам поставил его. Счастье было недолгим, фпс было мало. В общем побаловался, почувствовал себе обиженным и забил. Черзе некоторое время настроил себе компиз, в общем получилось то же самое. Затем ноут был в ремонте, (2 раза по месяцу) и вот решил глянуть что у меня тут. Обновил систему, берил такой же тормозной :( . Уже было совсем обиделся, включил компиз и ахнул. Все летает, как и не было тормозов.
Вот такая вот история... Сижу теперь радуюсь как ребенок.

Tuesday, September 11, 2007

ctags && vim

Т.к. я уже четвертый месяц пытаюсь использовать в качестве IDE vim, постоянно наталкиваюсь на некоторые трудности.
Давным давно использовал плагин TList + Project, достаточно удобная связка, но много ручной работы сводят преимущества на нет, особенно при создании нового проекта.
Со временем я нашел замену, TagExplore (File explorer + tag list view в одном флаконе ),
все было хорошо особенно нравилась возможность прямо в окне file exporer открыть закрыть список функций, переменных. , Но после окончательного перехода на 5-й php в коде стало появляться все больше и больше классов, и сейчас уже весь проект на них, а у ctags который используется этим плагином, был большой недостаток - не показывал он методы классов и все. Нашел патч на исходные коды исправляющий эти проблемы, но я люблю пакетные системы и ненавижу собирать софт. К тому же, на удаленных серверах где и стоит вим, не очень то и пособираешь пакеты - к тож мне рута даст?
В очердной раз пошукав в гугле обнаружил что ctags обновился и в новой 5.7 версии появилось

* Added support for interfaces and static/public/protected/private functions [PHP].

Обновился, и все заработало! (правда .deb пакета не нашел, но скачал rpm пакет и сконвертировал db при помощи alien -d ctags-.5.7-i386.rpm

Ниже скрин.



Но не обошлось без ложки дегтя
1. Методы показываются не в классе, а в функциях.
2. Появляются совершенно непонятные методы, (некоретно парсятся phpdoc таги)

Но все равно я доволен.

Thursday, September 6, 2007

Проблемы в php?

Наткнулся на непонятный баг (судя по всему php).
Fedora Core 5,
php 5.1.5.
Опсание
Xdebug выдает
(середина trace, до этого около сотни вызовов)
0.0148 118816 -> func1() /xxxx/template.php:16
0.0148 118816 -> func2() /xxx/template.php:16
0.2626 118672 -> func3() /xxx/splash.php:188
0.2626 118672 -> func4() /xxx/base.php:63
(далее еще сотня вызовов)

суммарное время выполнения - 0.3

около 300 вызовов.
Сервер мощный.
Каждый вызов - тысячные доли.
Нет ни базы данных, ни сетевых операций, файловых (за исключением пожалуй инклюдов)
Сервер один, не загружен,

Поведение
1. При перезагрузке страницы лаг в одном и том же месте.
2. Изменение кода переносит лаг в другое место.
3. При перезагрузке страницы лаг в том же месте.
4. Тормозит по сути на любых функциях, ловил тормоза на echo, print, prin_r, microtime, join, split, и на своих фукциях
5. Данных по сути нет.
6. Страница просто выплевывает html через include()

Перенес на локальную машину.
Результат.
Суммарное время выполнения 0.3
Каждая итерация занимает сотые доли, лага на 2 десятых не вижу.
php 5.2.
Есть подозрение что дело в мэнеджере памяти.

php xdebug extension

Пока настраивается сервер, выдалась свободная минута.
Уже полгода наталкивался на php extension xdebug.
http://xdebug.org/
Сначала использовал только tracer, причем у меня отрабатывала только функция xdebug_start_trace() но более ничего не делалось. Обнаружил что она возвращает имя файла куда кладется trace, собственно и начал использовать
$tracer = xdebug_start_trace();
echo '<pre>';
echo file_get_contents($tracer);
Получается примерно следующее.
.0042 94560 -> require_once(file.php) /path/index.php:44
0.0043 95984 -> require_once(file2.php) /path/file.php:16
0.0044 95808 -> ClassName->__construct() /path/index.php:45

Где первая строчка время, вторая память, далее метод(функция) путь, строка.

Затем понадобился профайлер, ранее использовал zend_platform но trial закончился.
Смотрим тот же xdebug
http://www.xdebug.org/docs/profiler
Настраиваем php.ini
sudo apt-get install kcachegrind
И все работает!.

После этого я всерьез заинтересовался xdebug и захотелось собственно сам отладчик
http://www.xdebug.org/docs/remote
Поддерживаются ide:
Так как Zend Studio дорогой для меня продукт, я начал переходить на vim, соотвественно заинтеросовала возможность интеграции отладчика в него.
Глянул туториал http://tech.blog.box.net/2007/06/20/how-to-debug-php-with-vim-and-xdebug-on-linux/
И все заработало - чудеса да и только :)
 
Каталог сайтов, Добавить сайт