Ping

Эх, прыгнуть бы с крыши,
Башкой об асфальт.
Но надо работать…

Эта чепуха тут только для проверки RSS.
Вчера обновил Feedburner-плагин до последней 1.42.
Сегодня опубликовал статью и, что цуко характерно, нет её в RSS.

Вернул старую версию, посмотрю что будет.

До кого не дошла ссылка на утреннюю статью, а дошла эта: Конфигурация сайта 1: введение.

Конфигурация сайта 1: введение

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

Разобьём этот разговор на три части:

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

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

Системный администратор (Unix), Петербург, 25-30 т.р

Спасибо, вакансия закрыта

Ноги

Требуется системный администратор unix-систем (в основном FreeBSD и/или Debian) для работы системным администратором.
Основное требование: разбираться в системном администрировании unix-систем.

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

Бюджет на данный момент: 25 000 — 30 000 рублей в месяц.

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

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

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

В новое десятилетие с новым goDB

goDB logo

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

goDB, это иновационная нано-библиотека для работы с MySQL из PHP.

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

go\DB 2.0 на гугло-коде

  1. Система адаптеров позволяет адаптировать go\DB под любой тип СУБД
  2. Вы можете реализовать свой тип СУБД, написать к нему goDB-адаптер и выслать нам
  3. Требуется PHP 5.3
  4. go\DB 2.x ваще не совместима с goDB 1.x
  5. Переработаны системы плейсхолдеров и форматов представления результата
  6. Результат можно получать и сразу из query() и в виде объекта
  7. Ещё не реализованы по сравнения с 1.x транзакции, мультизапросы и подготовленные выражения
  8. Не все тёмные места до конца протестированы, так что на данный момент go\DB 2 находится в бете
  9. Ну и много всего интересного можно подробно узнать в документации

P.S. goDB 1.x продолжает развиваться параллельно и в ней пофикшен небольшой баг. Скачать goDB 1.3.1

Визуализация алгоритмов сортировки

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

Однако, вместо этого, я для непонятных целей сделал сравнение пары алгоритмов сортировки.

Сортируйте массивы различными способами всю новогоднюю ночь напролёт!

Паззл

Паззл

goDB 1.3: Транзакции и все, все, все

goDB 1.3: новый говнокод и ебическая сила природы в одном флаконе. Домохозяйки выбирают goDB.

В новой версии при сохранении совместимости с mysqli добавлены надстройки по следующим пунктам:

Транзакции

  1. Станартная схема: BEGIN + COMMIT(ROLLBACK)
  2. Вложенные транзакции, где транзакции нижних уровней не знают о верхних.
  3. Различные способы отката из вложенных транзакций и его обработки.
  4. Выполнение функций в транзакциях

Мультизапросы

  1. Мультизапросы по goDB-схеме: с шаблонами, данными и форматами разбора.
  2. Получение всех результатов сразу или получение только нужных
  3. Различные способы формирования мультизапроса
  4. Обработка ошибок на основе исключений
  5. Не нужно думать о выборке всех результатов и их очистке
  6. Мультизапросы в транзакциях и без них.

Подготовленные выражения

  1. goDB-схема (шаблон, данные, формат результата) вместо bind_param, bind_result
  2. Полная поддержка форматов представления результатов
  3. Обработка ошибок на основе исключений.
  4. Создание и выполнение подготовленного выражения одним запросов.
  5. Кэширование подготовленных выражений.
  6. Именованные подготовленные выражения.

Кроме того, добавлены следующие возможности:

Объект-ссылка

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

По мелочи

Формат разбора bool.

Метод __invoke().
В PHP 5.3 запросы можно выполнять прямо так: $one = $db('SELECT 1', null, 'el');

Методы getPrefix(), getDebug() и т.д.

Реструктуризация юнит-тестов: теперь вместо одного файла папка с тестами.

@todo

Все предложения пишите на форуме или присылайте на мыло.

В ближайшее время возможно следующее:

  1. Макроподстановки
  2. Разбиение godb.php на несколько файлов
  3. Формат разбора: объект для разбора :)
  4. Начало работы над goDB 2.0
  5. Нормальные шрифты и цвета для доки

Взять себе

Взять себе
goDB 1.3.0 (zip, 31K)

goDB 1.2.2

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

В новой версии (1.2.2):

Плейсхолдер ?bool: вставка значения для столбца типа BOOL.

Формат представления результата kassoc и его подвид kassoc:$col.

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

Плюс добавлены исключения goDBExceptionFetchUnknown и goDBExceptionFetchUnexpected.
Также местами переписан код.

Сам класс теперь можно просмотреть прямо на сайте не скачивая архивов.

Ну и конечно, можно всё-таки скачать архив (ZIP, 5K)

goDB 1.2.1: теперь и в юнит-тестах

В версии 1.2.1 исправлен незначительный бажок.

А чтобы снизить вероятность незначительных бажков в будущем, добавлены unit-тесты.

Для юнит-тестов используется PHPUnit.

~/godb$ phpunit --colors goDBTest.php
PHPUnit 3.5.0 by Sebastian Bergmann.

............................................................ 60 / 60


Time: 4 seconds, Memory: 4.25Mb

OK (60 tests, 126 assertions)

~/godb$

Документация по Redis: новое за полгода

Redis logo
С полгода назад публиковал здесь ссылку на свой перевод документации по Redis.

Для тех, кто не знает, что такое Redis — Redis, это NoSQL-база данных. Для тех, кто не знает, что такое NoSQL — Redis, это круто.

За прошедшее время в Redis накопились немалые изменения. Теперь все они отражены в обновлённом переводе. Здесь рассмотрим основное.

Хэши

Новый тип данных, представляющий собой, собственно, хэши :)

Теперь не надо хранить поля объекта в куче различных ключей типа user:10:name, user:10:surname. Всё в одном, да и удалить этого user’а-10 теперь можно одним запросом.

Упорядоченные множества

Были они, честно говоря, ещё и на момент прошлого перевода, но в нестабильной версии.

Теперь всё стабильно, плюс новые полезные команды для работы с ними.

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

Транзакции

Не совсем такие, к каким мы привыкли, но выполняют своё основное предназначение: позволяют исполнить последовательность команд в виде одной атомарной операции.

Система подписок

Ещё один удобный вариант реализации очереди сообщений. В веб-приложениях подходит для демонов, обрабатывающих поступающие данные (рассылка писем, индексирование …)

Всякое другое

Наконец появился атомарный SET + EXPIRE, а то раньше приходилось бояться, что между этими двумя командами вклинится апокалипсис.

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

Конфигурирование на лету

Ещё много новых полезных команд (PERSIST, APPEND, SUBSTR, ZRANK …) и новых опций к уже существующим.

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

Вобщем, Redis ещё охуеннее!

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