Ne v kontakte Antisocial programmer's blog

MODX Library - в Open Source!

MODX Library - в Open Source!

    dev     soft     projects     phpbb     modx

Как я и планировал, я начинаю по-тихоньку публиковать полезные наработки, использованные мною в phpBB Constructor. Сегодня черед, пожалуй, наиболее важной из них — это MODX Library.

MODX Library — это библиотека, обеспечивающая автоматическую обработку инструкций по установке модов в формате MODX. Идейно этот формат является развитием патчей со значительно расширенным набором операций, удобных при установке модов. В настоящее время подавляющее большинство модов для phpBB3 распространяется именно в этом формате. MODX Library практически полностью реализует поддержку последней версии стандарта MODX 1.2.5, отличия от стандарта описаны в README файле.

Замечу, что именно с этой библиотеки началась работа над phpBB Constructor в начале февраля 2010 года. Впрочем, история разработки конструктора — это отдельная и местами поучительная тема, которой я коснусь как-нибудь в другой раз.

Идеологическим предшественником этой библиотеки была другая моя, гораздо более ранняя разработка под названием Lite MOD Parser, занимавшегося теми же задачами, но только для более раннего формата MOD, популярного в эпоху phpBB2. Сейчас эта штука может быть полезна разве что в исторических целях, а тогда планировалось ее использование в претензиозном проекте Web Update, призванном накорню автоматизировать обновление сайтовых движков. И, вероятно, будь у меня тогда больше настырности и опыта, из этого чего-нибудь бы и вышло :-)

Read more →

phpBB Constructor

    projects     phpbb     constructor     modx

Пришло время представить широкой публике проект, над которым я работал все последнее время. Знакомьтесь,

None

Вводная

phpBB — один из самых лучших open source движков для создания форумов. На нем работают сотни тысяч конференций, многие из которых обладают впечатляющей функциональностью. И несмотря на то, что в базовой комплектации phpBB3 предоставляет практически все, что может понадобиться для создания форума, его истинная сила в модах, написанных сообществом. В настоящий момент только в его официальном каталоге модификаций зарегистрирован 431 мод разной сложности. И еще больше можно найти на форуме, в разделе бета-версий.

Read more →

Обработка множества исключений: решение

Обработка множества исключений: решение

    dev     articles     exceptions

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

Решение 1, читерское.

В условии было сказано, что надо обрабатывать исключения в методах init(), run() и shutdown(). И хотя это явно не оговаривалось, по логике функционирования эти методы вызываются подряд. Следовательно, можно сделать так:

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

Read more →

Упражнение: обработка множества исключений

Упражнение: обработка множества исключений

    dev     articles     exceptions

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

Есть корневой класс, условно назовем его ApiDispatcher, который управляет основным потоком исполнения. В нем есть три основных метода:

  1. init() — инициализирует, необходимые для обработки запроса объекты.
  2. run() — запускает обработку бизнес-логики.
  3. shutdown() — освободжает ресурсы.

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

Read more →

Три top-подобных утилиты, которые должны быть на каждой Linux-машине

Три top-подобных утилиты, которые должны быть на каждой Linux-машине

    unix     sysadmin's     top     articles

Практически всем пользователям знакома утилита top, показывающая интерактивный список процессов, отсортированный по нагрузке на процессор. История этой утилиты идет от 1984 года, когда Уильям ЛеФевр написал такую утилиту для BSD 4.1. С тех пор top или его аналог есть практически в каждой UNIX-подобной ОС.

Годами доказав свою практичность, top вдохновил многих других программистов на разработку похожих утилит, относящихся к разряду must-have на любой Linux-машине, поскольку они дают возможность быстро оценить ситуацию в системе.

htop

htop — это логическое развитие top. Его интерфейс сделан с помощью ncurses, и благодаря этому он предоставляет гораздо больше возможностей по визуализации процессов и общей загрузки системы, а так же значительно более интуитивный интерфейс настройки всего этого.

Read more →