Tuesday, November 20, 2007

Тестируем новый блог клиент

Наткнулся на http://feeds.feedburner.com/~r/linux2/~3/186258877/270, перепробовал все. Т.к. мне не очень хочется сидеть и разбирацо какие настройки куда писать (считаю блог клиент сам все это должен делать) то понравился только ScribeFire - firefox extension, удобно тем что броузер открыт всегда, и если появлецо желание что либо добавить, оставить себе на память, то все под рукой + он сразу скушал настройки аккаунта, на чем предыдущие клиенты гукнулись.

В общем это мой выбор и он думаю облегчит мне жизнь.

Updated
Technorati Tags: , ,

Powered by ScribeFire.

Sunday, November 4, 2007

gmail, imap

Настроил gmail через imap в evolution.

Порадовало.
1. Ярлыки в виде папок.
2. Отметки о прочтении остаюстся, имап таки.
Огорчило.
1. Очень медленно, часты попапы виды "imap.gmail.com" разорвал соединение.
2. Непонятна папка gmail в которой лежит all mails, (бардак) а также все сообщения из google talk.

Тест

Забавно http://habrahabr.ru/blog/php/29229.html#habracut
updated
ссылко закрыто, смысл такой : мамбо разработчики выложили тест, пройдя который можно к ним устроицо на работу.
Тому кто приведет программиста к ним приз 500 баксов.
Подробнее http://www.corp.mamba.ru/test/promo.phtml


Учиться, учиться и еще раз учиться.
Имхо завалился на битовых операциях, немножко на sql, шеле, svn.

Updated
Уточнил в мане svn annotate, blame


На мамба программиста не тяну :)

updated

Простой скрипт который выводит все результаты до 2518 попытки


 <?php
 
for ($i 1$i 2518$i++)
 {    
     echo 
'<img border="0" src="http://www.corp.mamba.ru/test/widget.phtml?id='.$i.'" />';
 } 
?>




Т.к. айдишники открытые, то соотвественно можно подобрать себе изображение супер крутого, например : http://www.corp.mamba.ru/test/widget.phtml?id=118

Thursday, November 1, 2007

Транзакции в mysql + pdo

Не работал PDO::rollBack();

Решение.

1. Таблица обязательно innoDb или DBD (мануал mysql)

После этого ничего не изменилось.

2. Перед транзакцией нужно set autocommit = 0; после set autocommit = 1 (mysql manual)
В итоге

<?php
/**
* @var PDO $db
*/
/


$db->exec('set autocommit=0');
try
{
    if ( 
false === $db->beginTransaction() )
    throw new 
Exception('bla bla bla ');
    
// do smth
    
$db->commit();
}
catch ( 
Exception $e)
{
    
$db->rollBack();
    
$logger->error$e->getMessage ) ;
}
$db->exec('set autocommit=1');
?>


Monday, October 15, 2007

eclipse pdt vs ZendStudio Neon

Вначале об eclipse pdt.
Пересел на него сразу после релиза с редактора vim.
Недостатки.

  • Не интуитивные настройки, особенно после zend studio <= 5.5. Или по сравнению с .vimrc

  • Медленный, особенно перерисовка окон ( со временем сгладилось)

  • Не смог настроить Database Development

  • Нет удаленного сайта, sshfs которым я восторгался - не решение, т.к. eclipse сканит все файлы, и все просто тормозит.

  • Subversion plugin кривой, часть видов выдает exception, не смог сделать проект из репозитария

  • Очень долго настраивал дебагер (xdebug) к сайту с modrewrite, через 3 дня заработало, больше похоже на танцы с бубном.

  • Стремный редактор js,css

  • Хотел поставить aptana плагином, все поломалось.


Понравилось

  • Project outline ( не работает если проект из репозитория)

  • Показ ошибок прямо в броузере проекта.

  • Поддержка дебагера

  • Бесплатный


А все остальное стандартно вроде.

Поставил ZendStuio Neon (beta)

Блин вот это то, чего я так долго ждал.
По сути тот же pdt, только доведенный до ума, работает по сути из коробки.
Особенно понравилась поддержка PhpUnit + Автоматическое создаение TestSuite на основе всех тестов в проекте.

Из минусов пока видел только поддержку зендовского дебагера, а также проблема при работе с database development перспективой ( неправильная кодировка символов, ломается на части таблиц)

Резюме:
В общем этот редактор это шаг в перед, остальные это ковыряние лопаткой в песочнице, по сравнению с экскаватором. Судя по всему он стоит денег, вопрос только сколько, когда я в последний раз смотрел информации не было.

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/
И все заработало - чудеса да и только :)

Wednesday, March 21, 2007

Первый пост

Первый пост ради теста
Занес, глянул, а там уже тест то был :)
Цель создания : скидывать неожиданные находки, мои личные открытия.
Тематика :
Книги
Музыка
web development (php, perl)
 
Каталог сайтов, Добавить сайт