Archive

Archive for the ‘php’ Category

Как всё медленно!

May 20th, 2011 No comments

Недавно, я писал, что скоро порадую новинкой. Я предполагал, что до сегодняшнего дня у меня уже будет что показать, но я просчитался (. Пока проект существует только в админской части из-за загруженности дизайнера. Это меня расстраивает, но радость от того, что хоть что-то делаю, помогает не вешать нос.

Так что за проект?

В понедельник я узнал, что до дня Киева, компания, где я работаю, вместе с Google Украина запускает совместный проект. Google что-то похожее уже запускал, а теперь очередь и “Газеты по-киевски” ). Не уверен что мне можно рассказывать, что же это будет, но сама  мысль, что с партнёрстве с Google да ещё то, что они обещают его отдать нам, уже радует.

Когда же всё это будет видно?

Кажется, Google собирается выкатывать на всеобщее обозрение всё в субботу. Я, не Гугл, я, надеюсь, всё покажу в пятницу ( не люблю запускаться в пятницу! ). В среду, по планам опять же моим, будет  предварительная тестовая версия, так что смогу выслать ссылки желающим протестировать.

Не думаю, что в пятницу будет готово всё, что захотелось и мне и другим людям, но костяк должен быть. Держу пальцы!

Скоро похвастаюсь

May 17th, 2011 No comments

Думаю, к концу недели выкачу один проектик, которым буду долго и нудно хвастаться и кичится ;) Но это будет что-то сырое и не красивое, так как о нём я узнал только вчера, в понедельник. Сегодня только после обеда было всё согласовано и решено. При этом, обсуждения между исполнителями ( мной и дизом ) и начальством почти не было – мне почти сказали делать как я захочу ;) Так что тапки полетят в мою сторону, хотя, я не думаю, что будет ужасно ;)

ЗЫ, Радует, местами, наличие работы! )

HTMLPurifier одним файлом

January 28th, 2011 No comments

Для собственных нужд надо было собрать HTMLPurifier одним файлом. Благо, с ним идёт файл со всеми инклудами, правда, с ошибками. Быстренько написал ant-скрипт, который всё это счастье собирает и вырезает комментарии. Не обошлось и без костылей. Для того, чтобы HTMLPurifier иногда находил нужные ему файлы, надо определить констанкту HTMLPURIFIER_PREFIX. Сборочный скрипт с исходниками и собраный HTMLPurifier выкладываю. Баги и патчи – в комментарии.

UPD. Камрад Александро сказал что я мудак и он есть уже собраный ((( а я ещё комментариии вырезал ;)

Memcached

December 23rd, 2009 1 comment

Пишу, чтобы не забыть ибо иногда надо знать, что происходит с memcached’ом:

$mymemcache = new Memcache;
$mymemcache->addServer('localhost', 11211);
highlight_string(print_r($mymemcache->getExtendedStats(), true));

Массив ключами, которые означают:

  • pid – идентификатор процесса
  • uptime – время работы сервера
  • version – версия ПО
  • time – время в формате unixtimestamp
  • rusage_user – пользовательское время для процесса
  • rusage_system – системное время для процесса
  • curr_items – количество сохраненных объектов в памяти
  • total_items – сколько всего было сохранено объектов за время работы сервера
  • bytes – количество байт, которые занимают сохраненные объекты
  • curr_connections – количество открытых соединений
  • total_connections – сколько всего было открыто соединений
  • cmd_get – количество запросов на получение объектов из кеша
  • cmd_set – количество запросов на сохранение объекта в кеше
  • get_hits – количество запросов когда объект был успешно найден в кеше
  • get_misses – количество запросов к отсутствующим объектам
  • bytes_read – общее количество прочитанных байт из сети
  • bytes_written – общее количество отправленных байт
  • limit_maxbytes – ограничение памяти для хранения объектов

Мануал поссмотреть по Memcache::getStats

А так как использую APC то и целый скрипт для статистики

Что нового в PHP 5.3?

July 22nd, 2009 2 comments

Так как вышел PHP 5.3, то многие не знают, что же их ждёт в будущем. А приплыло многое. Вот по этому и перевёл статью с sitepoint.com.

Кому не нравится перевод или нашли ошибку, то добро пожаловать на вики, где каждый может внести поправку в перевод. Read more…

Скрипт для управления примонтированых FTP-серверов

May 26th, 2009 No comments

Помните, я думал написать скрипт для монтирования в папку пользователя FTP-директорий? Посидел, написал, выложил. Простой, как дверь, но, коль мне надо будет его часто, то перепишу под Qt с красивыми ГУЯми.

Код скрипта на bitbucket, правьте, если надо.

зы. Клёвый безплатный хаб для mercurial.

Интеграция phpDocumentor в Eclipse

September 11th, 2008 No comments

Вот сижу, пишу код, иногда пишу комментарии. Идилия. Но вот, написавши n-ий класс, столкнулся с проблемой документации его. Ведь не только я же буду им пользоваться, а писать самому, когда есть описания методов – это не путь юного падавана. Тут на помощь приходит phpDocumentor. Но его надо бы врикрутить в среду разработки, тоесть в Eclipse, чем и займёмся. Read more…

Бережём память в PHP

December 17th, 2007 12 comments

Я люблю писать красивый код, но люблю и лаконичный, чтобы не было ничего левого и ненужного. Конечно, не до такой степени, чтобы страдала читабельность. И вот сегодня, пописывая, заметил нунужные строки в коде. Было где-то так:

$letter = $GLOBALS['tf_validate']->ords_to_unistr(array($i));
if(isset($ex[$letter])){
    $tmp['class'] = 'exist';
} else {
    $tmp['class'] = '';
}
$tmp['letter'] = $letter;

Как видно с кода сначала в переменную $letter чево-то там заганяется, а потом проверяется нуществование значения $ex[$letter]. Если нет, то в $tmp['class'] записывается пустое значение, иначе – ‘exist’. Ну и в конце записывается данные $letter в $tmp['letter']. В этом коде меня напрягла переменная $letter и я решил от неё избавится. Это сделать просто:

$tmp['letter'] = $GLOBALS['tf_validate']->ords_to_unistr(array($i));    
if(isset($ex[$tmp['letter']])){
    $tmp['class'] = 'exist';
} else {
    $tmp['class'] = '';
}

Теперь у нас ничего в память левого не заганяется. Но если идти дальше, то это же можно записать в 2 строки:

Вариант 1.

$tmp['letter'] = $GLOBALS['tf_validate']->ords_to_unistr(array($i));
(isset($ex[$tmp['letter']]))?$tmp['class'] = 'exist': $tmp['class'] = '';

Но можно ещё короче!

Вариант 2.

(isset($ex[$tmp['letter'] = $GLOBALS['tf_validate']->ords_to_unistr(array($i))]))?$tmp['class'] = 'exist': $tmp['class'] = '';

Но эта конструкция уже сильно запутаная и использывать её не стоит – уж больно читаемый PHP стал похож на Perl.

Вот как 6 строчек кода можно превратить в 2 без ущерба читаемости и с экономией одной сототой килобайта памяти ;)

Update

Тут в комментариях друг Star высказался о ещё одном уменшении размера строки, но это уже больше относится к “уменшим размер – не прочитаем код”. Он предлагает уменшить строки


(isset($ex[$tmp['letter']]))? $tmp['class'] = 'exist': $tmp['class'] = '';

и как результат мы получим вариант 1 и 2 в таком виде:

Вариант 1.2.

$tmp['letter'] = $GLOBALS['tf_validate']->ords_to_unistr(array($i));

$tmp['class'] = isset($ex[$tmp['letter']])? 'exist': '';

Вариант 2.2.

$tmp['class'] = isset($ex[$tmp['letter'] = $GLOBALS['tf_validate']->ords_to_unistr(array($i))])? 'exist': '';

Как установить Aptana на уже существующий Eclipse

July 25th, 2007 2 comments

Кто не знает то пока я web-developer (нравиться мне это слово. И просто вэб-программист не подходит). И в дому и в рабочей обстановке, системой, на которой происходит процесс набора букв с сайты, является ново-старая openЗЮЗЯ (именно в такой последовательности больших букв, так как openSUSE её настоящее имя ;) ). Если посчитать, сколько ПО использую . для работы, то получается многовато Read more…

Categories: javascript, php, web, настройка Tags: