• Что делать, если ты в душе лётчик, а по образованию — инженер-механик аппаратов пищевой промышленности

      Привет, меня зовут Иван, я работаю бэкенд-разработчиком в Skyeng. Не буду говорить, что мечтал стать программистом с самого детства. Наверное, как многие советские мальчишки в начале 80-х, я хотел быть лётчиком.

      Но что-то пошло не так
    • Интерактивная консоль с автодополнением на PHP

        В этой маленькой статье я покажу, как использовать в своём PHP-скрипте консоль с автодополнением по нажатию Tab. Из подобных статей на хабре нашёл только статью от CKOPOBAPKuH, и у неё несколько другое направление, хотя суть — та же.

        На самом деле, никакой магии тут нет, из сложностей — сформулировать для себя, как должна работать ваша консоль. Поэтому минимум слов, минимум кода, только самое необходимое.

        Есть вопрос: можно ли (и если можно, то как) сделать свою консоль с командами и подсказками на PHP.
        Есть ответ: можно, но соответствующее расширение (readline) для PHP доступно только на Linux, увы.

        Читать далее
      • PHP-приложение для совместной работы с СМС-шлюзом Kannel

          Почти привел в относительный порядок тот хаос, который царил в самоличном проекте «SILK for Kannel». И решил выложить это куда-нибудь.

          Поскольку со всяческими выкладываниями никогда не сталкивался (читай — никому не демонстрировал свой персональный код) то первое что пришло в голову: sourceforge.net

          Но пока регистрировал свой первый проект, то несколько раз порывался плюнуть, и уйти в водолазы. Отдельным испытанием стал выбор лицензии: предлагается список из целой кучи вариантов (на глаз: около 50). Из всех попавшихся на глаза, знакомым и устраивавшим оказался GPL. Но и тех оказалось две штуки: GPL и GPLv3.

          Ну хватит об ужасающих подробностях моей неопытности в юридических и проектных вопросах.

          Собственно проект, это PHP-приложение, основанное на PHP-фреймворке Kohana3. Предназначен для работы в связке с СМС-шлюзом Kannel (или с любым другим, который позволяет отправлять запросы на обработку в виде GET или POST запроса). Более точно — для обработки запросов, приходящих от СМС-шлюза, и возврата результата, который соответственно СМС-шлюз должен отправить этот ответ абоненту.
          Читать дальше →
        • Комментарии, SVN, bug-, issue-tracker и работа в команде

            Размышления, вызванные топиком «Как бороться с человеческим фактором при внедрении ПО?».

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

            Первое время было весьма непривычно работать с такими продуктами как JIRA, SVN. Тот же Zend поначалу казался перенавороченным монстром, после более привычного PHP Expert Editor.

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

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

            Нет, проблема — она в отношении остальных к этим продуктам.
            Читать дальше →
          • Как написать простейший модуль для Kohana 3?

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

              Поэтому, решил написать заметки о создании модуля. Вдруг кому-нибудь пригодится.

              Читать дальше →