Хотел послушать буддистский метал, а его нет

Что случилось в 2018-м

Прага, Чехия

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

Подробнее →

Мои стандарты: как я учился джазовой импровизации

Однажды я понял, что буду откладывать бесконечно, и в последний день записался на джазовую импровизацию на курсере. Был психологический момент: мол, кто я такой, чтобы взять и заняться джазом? Фрэнк Гамбале? Однако, успешно закончив курс, теперь понимаю, что зря сомневался и недооценивал себя.
В обучении нет ничего сверхсложного — потому что курс посвящён не технике, и выпиливать «Полёт шмеля» на своём инструменте не требуется. Курс даёт ориентиры, и намечает ключевые моменты хорошей импровизации, без которых пытаться играть интересно (красиво, фирмово) всё равно, что тыкаться в тёмной комнате по разным углам в надежде найти выключатель.

Подробнее →

Генератор паролей на JavaScript

Чтобы закрепить пройденный на курсере курс по AngularJS, я переписал свой старый генератор паролей OktoPass заново: переверстал страницу с Bootstrap, избавился от jQuery и переделал сам механизм генерации паролей. Ссылка на сервис: password-generator.axisful.info

Это было занятно, у меня получилось веб-приложение со стильной шёрсткой и адаптивной вёрсткой, а в процессе я написал пару велосипедов для серверного микро-движка и фронтенда, вроде поддержки переводов и работы с URL.

Далее я опишу некоторые ключевые моменты, на которых работает OktoPass.

Подробнее →

Курс по функциональному программированию от ИТМО

Макросы на Common Lisp

Замечательный курс по функциональному программированию  от Университета ИТМО доставляет острых ощущений: лекции интересные и сложные, как и задания для самостоятельного решения.
Курс обозревает концепции функционального программирования: рекурсию, функции высшего порядка, свёртку и отображение последовательностей, ленивые вычисления, метапрограммирование (макросы) и остальное — всё на Common Lisp, одном из популярных диалектов семейства Lisp.

Подробнее →

Моя учёба на Открытом образовании

Краткий отчёт и впечатления от курсов на Открытом Образовании, которые я успел окончить и по которым получил сертификаты: Базы данных от СПбГУ и Функциональное программирование: базовый курс от Университета ИТМО.

TL;DR: курс от ИТМО стоит того, а от СПбГУ нет. Подробнее в двух частях (вторая только про курс функционального программирования) ниже.

Подробнее →

Обновление системы онлайн-оплаты курсов для альплагеря Туюк-Су

Обновил модуль, который разрабатывал для alplager.kz: по чертежам Кирилла Белоцерковского (инструктор лагеря и администратор сайта) переделал список программ и форму бронирования, добавил подробный просмотр и ещё больше разных улучшений в бэкенд и под капот системы. Теперь программы красиво выводятся плиткой, по ним есть удобная навигация и возможность сразу забронировать место в лагере на смену, которая понравилась. Кирилл подробно написал об этом на сайте.

В этой статье я опишу интересные моменты в разработке плагина под WordPress, который интегрирован с системой оплаты processing.kz. Плагин (далее — модуль) управляет сменами и заявками на бронирование мест в лагере, рассылает письма, архивирует прошедшие смены и старые заявки, и помогает автоматизировать работу инструкторов лагеря с регистрацией участников и онлайн-оплатой.
В статье будут примеры с разбором URL-тегов, шорткодами и тестированием проекта с PHPUnit.

Подробнее →

WordPress: тестирование плагинов с PHPUnit и WP_UnitTestCase

Uehara Konen, Hatō zu 3

Статья описывает отладку плагинов в тестовом окружении WordPress Testing Framework. Это значит, что в тестах можно будет пользоваться API WordPress, переключать роли пользователей сайта, автоматически создавать категории, посты, тэги, комментарии, вложения и тому подобное.

Последний раз проверено с PHP ^7.2, PHPUnit ^6.5, WordPress 4.9.8

Подробнее →

Установка PHPUnit и Selenium

Настройка тестов

Статья описывает настройку окружения для функциональных тестов на PHP.
Например, такой типичный тест может:

  • Открыть URL http://example.org/mypage в браузере
  • Проверить, что на странице 20 картинок
  • Нажать на вторую ссылку в навигации
  • Проверить, что на новой странице также 20 картинок
  • Закрыть браузер

А также произвести сложные выборки из DOM, вставить в поля формы текст и перейти по истории назад и вперёд.

Подробнее →

PHP: Почему использовать `and` и `or` вместо || и && — плохо

Последнее обновление статьи — 15 декабря 2018

Микрозаметка на тему из области «вопросы на собеседовании».

Как-то я в PHP начал писать and и or вместо && и ||, потому что мне так нравится делать на питоне, и, как я думал, это улучшает читабельность кода. Однажды я столкнулся с неожиданным эффектом:

Подробнее →