goDB 1.2

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

Ну и, так как просто описывать старьё скучно, выпустил новую версию.

Длинные плейсхолдеры

Для всех плейсхолдеров теперь есть «длинные» синонимы:

$db->query('INSERT INTO `table` SET ?set', array($set));
$db->query('INSERT INTO `table` VALUES ?values', array($values));
...

Полный список в документации.

Именованные плейсхолдеры

$data = array(
	'one'   => 'Раз',
	'two'   => 'Два',
	'three' => 'Три',
);
$pattern = 'SELECT * FROM `table` WHERE `one`=?:one AND `two`=?:two OR `three`=?:three ORDER BY ?:one ASC';

Можно комбинировать тип плейсхолдера и имя: ?set:name.

В одном запросе использовать простые и именованные плейсхолдеры нельзя.

Подробнее в документации.

Ещё по-немногу

Добавлены новые параметры конфигурации charset и link:

$config = array(
	'host' => 'localhost',
	...
	'charset' => 'utf8',
);

Не нужно при подключении вызывать SET NAMES. Особенно удобно для отложенных подключений.

link позволяет сделать ссылку на другую базу. Подробнее в разделе о пространстве имён.

Также несколько изменена иерархия подключений.

Несовместимости

При правильном использовании несовместимостей нет. А так, немного есть.

Скачать последнюю версию (ZIP)

Пятничный вечер брюзжания

Вот стоит только кому-нибудь на каком-нибудь форуме программистском заикнуться о такой веще, как Denwer, сразу находится хотя бы один, который скажет: «Не трогай эту каку, долбоёб! Лучше поставь всё руками, тогда будешь знать как всё работает». И ссылку кидают, обычно: php.ru/install.

Ссылку эту им так же пару лет назад кто-то кинул, обозвав долбоёбами. А они мощью этой личности проникнулись и теперь изображают таких же.

Блядь, да та ссылка уже пылью веков покрылась! Там мускул даже — 4.1.
Однако, они до сих пор её пользуют и самомнение своё повышают.

Пощёлкали по кнопочкам в винде, так как на картиночках нарисовано — это они больше разобрались в том, что сделали, чем тот же Denwer поставили.
И гордятся.

Лучше бы гордились тем, что наконец себе linux поставили, а на него Nginx+PHP-FPM. Или тем, что у них член 42 сантиметра и 4 миллиметра. А лучше бы ничем не гордились. Человек вообще существо плюгавенькое и невзрачное, гордиться ему совершенно нечем.

Мировые новости за прошедшее лето

Вот и прошло очередное лето, которое было очень занимательным: жара, пожары, веерные отключения электричества и ещё много всякого забавного.

К сожалению, наступление всеобщего благоденствия откладывается: Google Wave не потянул эту миссию. Глупые смертные оказались не готовы к технологиям будущего.

Не менее воодушевительным был анонс в начале лета новой базы данных VoltDB, уделывающей все остальные базы данных во многие триллионы раз и вообще не подчинающейся законам физики. Да как-то ажиотаж быстро и стух…

Зато набирает обороты стартап года: справочник бесплатных туалетов Обоссусь.РУ. Первый сайт сделанный для людей, а не для роботов.

PHP отметил своё пятнадцатилетие, но больше ничем особенно интересным не отметился.

Известный интернет-разработчик Михаил Андреев женился. Он был отличным парнем, мы будем помнить его.

А агрегатор Кинсбург.РУ продолжает радовать всех пользователей. На нём теперь есть викторина, биографии деятелей кино, множество новых фишек и качественного контента.

Ежедневная аудитория достигает 5 000 человек. Реклама на Кинсбург.РУ — выбор рассудительных людей

Высокие нагрузки, оптимизация и всякое такое

И снова здравствуйте!

Как оказалось, День Знаний на самом деле сегодня, поэтому продолжаем разговор.

Отложим практику и займёмся теорией и немного философией.

Поговорим про оптимизацию приложений. А так как преждевременная оптимизация — смертный грех, то про оптимизацию нагруженных приложений.
Не будем лезть в подробности, а просто попробуем разобраться в каких местах вообще следует оптимизировать.

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

Остальной текст под катом

Пользователи на сайте: Memcached vs MySQL-JOIN

Здравствуйте, дорогие друзья, с вами снова Блог ГО.

Сегодня, в День Знаний, разберём одну тему. Тема, не так, чтобы для старших классов, но уже и не для дошкольников.

Рассмотрим один из вариантов хранения данных о пользователях в мемкэше.

Постановка задачи

Есть, допустим, сайт, а на нём есть зарегистрированные пользователи. Их данные хранятся, обычно, в таблице наподобие следующей:

CREATE TABLE `users` (
	`user_id`  INT UNSIGNED NOT NULL AUTO_INCREMENT,
	`username` VARCHAR(20)  NOT NULL,              -- Имя
	`surname`  VARCHAR(20)  NOT NULL,              -- Фамилия
	`nickname` VARCHAR(50)  NULL DEFAULT NULL,     -- Ник
	`avatar`   BOOL         NOT NULL DEFAULT "0",  -- Наличие аватара
	`status`   ENUM("active", "banned", "deleted") DEFAULT "active", -- Активный, забаненый, удалённый
	-- ...
	PRIMARY KEY (`user_id`)
	-- ...
);

Остальной текст под катом

Вечер брюзжания

Обсуждается на каком-то, допустим, форуме, допустим, какая-то новая возможность в, пускай, PHP. Вот, например, type hinting. Какие в подобных дискуссиях самые распростронённые аргументы противников внедрения нового?

— Возможность, конечно, полезная, но многие поймут её превратно и говнокода станет больше.
— У многих хостеров PHP 4, а о PHP 5.3 они вообще не слышали.

Какие все глубоко мыслящие и широкие натуры.

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

Мне вот интересно только то, что я с этого получу, как я смогу это использовать и чем это мне упростит жизнь. А вы?

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

goDB 1.1.3

После года разгильдяйничества, решил снова заняться своей библиотечкой для работы с MySQL.

Изменения в версии 1.1.3 незначительны, но, надеюсь, что вскоре будет что-нибудь поинтереснее.

Остальной текст под катом

Честь php_memcached восстановлена

На днях на highload.com.ua появилась статья сравнивающая два php-расширения для работы с Memcached. Старое php_memcache и относительно новое php_memcached.

Среди прочего был приведен тест производительности, который внёс сумятицу в стройные ряды поклонников нового расширения. По нему получалось, что php_memcached умудрился стать втрое медленнее php_memcache.

Остальной текст под катом

Сериализация с Igbinary

Дошли, наконец, руки поставить и протестировать PHP-расширение Igbinary, о котором сегодня и поведую.

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

$A = array(1, 2, 'three', true);
$s = serialize($A);
 
var_dump($s); // 'a:4:{i:0;i:1;i:1;i:2;i:2;s:5:"three";i:3;b:1;}'

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

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

Остальной текст под катом

Протухшие мировые новости

Google вконец слетел с катушек и занялся распознаванием речи на JavaScript. Наверняка это откроет новые горизонты для долбоёбов-сайтоделов. Фоновая музыка и мигающее меню — вчерашний день, голосовая навигация по сайту выбор нового поколения.

Пока гугл страдает фигнёй, Яндекс начал искать по мировому интернету.

В Японии же робот I-Fairy провёл брачную церемонию. Скоро должны последовать свадьбы роботов и роботов-гомосексуалистов.

Волнующие вести для всех патриотов: заработал первый кириллический домен http://xn--d1abbgf6aiiy.xn--p1ai/. Обращает на себя внимение часто повторяющееся киррилическое сочетание «х..н.».

И ещё больше радости патриотам: объем компьютерного пиратства в России вернулся на докризисный уровень.

Ubuntu 10.04 (рысь непереводимой расцветки) победно шествует по планете, поражая в первую очередь уёбищными кнопками на окнах.

Билл Гейтс продолжает порабощать мир. На этот раз с помощью ультразвуковой обработки яичек. Да, именно ультразвуковой обработки яичек. Да, именно ваших.

В тоже время робот из молекулы ДНК смог пройти 50 шагов, спиздить трактор и съебаться подальше.

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

Появилось сравнение производительности php_memcache и php_memcached. D сосёт.

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

Как-то глухо проходит devconf. Что и неудивительно, так как самым ярким событием в мире веб-разработки за последнее время стал, как обычно всемирный пiхослёт в Киеве.

Ну и, конечно, не стоит на месте агрегатор торрентов Кинсбург.ру. Появилась давно ожидаемая всеми викторина и раздел с биографиями и фильмографиями ваших любимых актёров.

И что самое приятное на такое охуенном сайте, как Кинсбург.ру ещё есть свободные места под рекламу. Это ваш шанс.

По страницам: 123456789101112131415