Val Petruchek

подписывайтесь, а то хуже будет!  

ПОДПИСЫВАЙТЕСЬ НА RSS

Как проверить, анимированный ли gif файл

20.07.10 @ 00:24 — PHP

function is_ani($filename)
{
    return (bool)
preg_match(‘#(\x00\x21\xF9\x04.{4}\x00\x2C.*){2,}#s’file_get_contents($filename));
}

php.net, там в комментах всегда куча сниппетов)

Как ломают сапу

17.07.10 @ 14:28 — Programming, PHP, WebSites

На форуме сапы человек пожаловался на “левые ссылки” среди продажных:

1. Их нет в списке ссылок на акаунте,
2. В sape акаунте прописан style для вывода ссылок, левые же выводятся без этого style

Хеш код один и все ссылки выводит sape_links - если из шаблона убрать конструкцию sape_links - не выводятся не левые ни правые ссылки.

Обнуление links.db ничего не дало, файлик создался опять и те же левые ссылки так же появились..чё думать ума не приложу..

Выяснили, что на сайте стоит “похаченный” sape.php:

Методика данного хака такая:
1. на сервер кидается файл (тут надо или фтп, или аналогичный доступ) под любым именем. В данном случае этот файл был спрятан в качестве jpg фотографии из галереи.

2. В sape.php вносится два изменения в return_links():
$f_name = base64_decode(’************’);
require_once($f_name);
где ********* - “закодированное” имя файла, кинутого на сервер на первом этапе

3. ….

4. PROFIT!!!

Внутри файла - “закодированный” php. Закодированность заключается в нечитаемости исходников, но раскодировать их несложно - используются функции base64_туда, base64_сюда, eval, пляска с файлом (файл открывает сам себя, считывает оттуда закодированный код, раскодирует его и выполняет).

По итогу закодированным оказывается код с другой биржи (типа линкфида), который ставится поверх сапы, и позволяет одновременно обрабатывать и сапоссылки, и свои ссылки. Вот цитата из кода:

define(’LINKFEED_USER’,'3baa192191449805df730ce2cea07a6f13408b14′);
define(’__SAPE_USER’,'’);
define(’_ML_ID’,'2BF37BAF09C11EECC16AF32F77063F20′);

По идее для такого хака нужен фтп доступ на сайт, т.к. даже если в директорию галереи (зачастую с правами доступа 0777) теоретически мог нагадить кто угодно на сервере, то sape.php при стандартных настройках не должен быть доступен.

Я бы посоветовал всем пользователям сапы - параноикам проверять sape.php на предмет изменений (для данного хака характерно наличие base64_decode — в нормальном (моём) sape.php эта функция не вызывается).

Save torrent as png

Чуваки написали конвертер .torrent файлов в формат .png (в обратную сторону тоже, даже в виде букмарклета на javascript). Получаются такие вот изображения:

Torrent file converted to png

Сподвиг их на это дело форчан, который позволяет аттачить картинки, но не позволяет аттачить торрент-файлы.

Насколько я понимаю, подобным образом можно кодировать любые бинарные файлы. Возможное узкое место - размеры.

Если вы закодируете этим методом торрент-файл, содержащий ваш секретный passkey, то тот, к кому в руки попадёт png файл, сможет раскодировать его и узнать ваш passkey, т.к. этот метод не шифрует торрент-файл.

Passkey — это способ идентифицировать пользователя на торрент-трекере. По идее, используется на всех рейтинговых трекерах, например на torrents.net.ua или torrents.ru.

Зарегистрироваться на torrents.net.ua можно с помощью инвайта pl8GY3N8pXfl.

Ведванольненькие кроссворды онлайн

04.01.10 @ 22:39 — JavaScript, PHP, Creative

У меня тут бешеный траффик (и гневные комментарии возмущённых пользователей) по запросу “программа для составления кроссвордов скачать бесплатно“, поэтому отрекламирую тут свой новый сайт с онлайн кроссвордами.

Я переписал старенький генератор (с паскаля на пхп) кроссвордов по заданной сетке, написал генератор тематических кроссвордов (сыроват пока), и с нуля сделал javascript.

Кроссвордов на сайте пока мало (да и те старые), но интерфейс меня прёт.

Баги (особенно интересуют макинтоши) можно мне в комменты писать (тут или в жж), добрые люди уже рассказали про Firefox+Search for text when I start typing.

Плагины для вордпресса

Зарелизил плагин, скрывающий исходящие ссылки в вордпрессе: wordpress external links plugin.

Заодно поднял специальный сайт на отдельном домене: wordpress plugins.

Как всегда, без дизайна — нарисована только одна коробка, и та мною.

1234567890

13.02.09 @ 18:26 — Programming, Services, Life

В субботу все влюбленные будут отмечать день всех влюблённых.

А в ночь с пятницы на субботу все гики будут отмечать 1234567890 seconds since the Unix Epoch.

По киевскому времени этот момент наступит в 2009-02-14 01:31:30. По GMT: в 2009-02-13 23:31:30.

Узнать, в котором часу этот момент наступит в вашем часовом поясе, можно с помощью такой команды:
<?=date(“Y-m-d H:i:s”,1234567890)?>

Следить за обратным отсчётом до круглой секунды можно в онлайне:

Забавные баги

12.01.09 @ 23:00 — Programming, Software

Small Basic

28.10.08 @ 23:00 — Programming

Small Basic derives its inspiration from the original BASIC programming language, and is based on the Microsoft .Net platform. It is really small with just 15 keywords and uses minimal concepts to keep the barrier to entry as low as possible.

PHP фреймворки

08.10.08 @ 23:45 — Programming, PHP

Тут вот соседи из Кривого Рога прутся от использования Zend Framework:

На работе проект разрабатываем с использованием Zend Framework […] основан на Model-View-Controller […] контроллер должен соответствовать правилам именования […] накладывает серьезные правила на структуру каталогов […] иногда фреймворк предоставляет мало свободы там, где стандартными методами тяжело обойтись и приходится сталкиваться с нетипичными задачами.

Я тут тоже встрял в один проект с использованием фреймворка, правда другого. Ощущения те же самые — да, фреймворк вынуждает писать код в парадигме MVC. Да, файлы надо разносить по соответствуюшим директориям.

Но при необходимости выйти за пределы дозволенного и решить нетипичную задачу (изящно подрубиться к фреймворку, например, для авторизации пользователя в стороннем скрипте) приходится бороться с фреймворком. И необходимость этой борьбы (зачастую изнурительной) полностью перечёркивает все достоинства фреймворка.

Достоинства эти, кстати, довольно сомнительные.

Правильное воплощение парадигмы MVC зависит не от фреймворка, а от программиста: криворукий сумеет смешать MVC в кучу даже во фреймворке, а программист с головой сможет кодить в стиле MVC даже без ООП, на функциях.

А вот необходимость заюзать фреймворк нестандартно возникнет обязательно, на то он и фреймворк. И если для её реализации понадобится возиться с фреймворком длительное время, то ну его наверное нафиг.

На данном этапе наиболее удобным мне кажется использование самописного фреймворка с максимальным включением сторонних библиотек: шаблонизатора (BTW, Smarty рулят), форм-процессора, database access layerа (что-нибудь с поддержкой Active Records), мейлера (создателям PHPMailerа — риспект и уважуха), jquery и далее по вкусу.

Индусы уничтожили фриланс!

Чувак плачется, что индусы убивают рынок фриланса в вебе, соглашаясь делать работу, которая стоит 100 баксов, за 10.

По-моему, чувак не прав. Причина этих 10-20 долларовых проектов в том, что в вебе всё больше и больше готовых коробочных решений и всяческих сервисов. Соответственно, заказчику стало проще подобрать нужное решение из готовых (или платных, или бесплатных) и заплатить копейки (как правило индусу) за допиливание и прикрутку.

Почему копейки? Потому что очень много нубов, слишком большое предложение на рынке услуг.

Некопеечные проекты тоже есть, но нубам их заполучить стало совсем сложно, т.к. смотри предыдущий абзац.

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

Кстати, для программиста чистый фриланс — это тупиковый путь. Надо обладать очень нехилой само-мотивацией, чтобы осваивать новенькое, когда на старенькое есть стабильный спрос и нормально платят. Но рано или поздно старенькое выкинут на помойку, и станет нечего кушать.

В идеале фрилансер должен находить время на выращивание источников пассивного дохода. Писать коробочный софт на продажу, делать сайты, рисовать темплейты, фотать для стоков.

Пассивный доход, пусть даже и в виде небольшого ручейка ежемесячных долларов, позволит пережить затишье на рынке1 или даст время на освоение новой технологии взамен устаревшей.

1 — как сообщают несвязынные друг с другом дизайнеры, такое затишье наблюдается сейчас на рынке кастомного дизайна.

Next Page »   
Реклама::

 
Реклама::