• Linux :: два, три, пять… указателей мыши

      Не знаю зачем мне это пригодится, но очень вдруг захотелось иметь два указателя мыши в Linux, ведь две «мыши» у меня есть — собственно беспроводная мышь и тач-пад. Идея пришла в тот момент, когда я подключил вторую мышь, т.е. третье устройство управления указателем.
      Я тоже подключу десять мышей и запутаюсь в указателях
    • Правило разделения — не вздумайте злоупотреблять!

        Комментарий к статье о «правилах разделения» превратился в небольшую отдельную статью, которая вновь доказывает, что разработка любого приложения сложнее Hello World требует обоснованных решений и творческого подхода, иногда опровергающего эти самые решения.

        Читать дальше →
      • Еще раз о модульности

          Модульность, как писал Рауф, несет в себе множество преимуществ. Давайте рассмотрим «правильную» модульность в контексте разработки программ. В примерах я специально мешал языки человеческие и программистские, дабы не привязываться к реализации языков программирования, а дать возможность читателю подумать — как такое лучше реализовать в его языке. Во преки тому, что я и сам сторонник максимальной гибкости и модульности, в статье я покажу, что даже здесь может быть перебор. Выбор в любом случае остается за разработчиком. И разработчик несет очень большую ответственность за этот выбор. Что выбрать? Сделать монолит, и через пару лет убиться на его поддержке, или сделать максимально гибко и потратить деньги работодателя на абстракции, которые никогда не пригодятся?

          Читать дальше →
        • Scalar type hints в PHP

            Johannes Schlüter опубликовал в своем блоге информацию о том что в trunk (PHP) появилась поддержка scalar type hints. Многие из нас очень давно этого ждали.

            Выглядит это приблизительно так:
            <?php
            function check_counter( int $counter)
            {
            return;
            }
            ?>


            Если попытаться передать в такую функцию не int, получим Catchable fatal error.
          • Несколько слов о Юзабилити

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

              Вот несколько советов, которые помогут разработчикам делать более дружественные пользователю сайты:

              Читать дальше →
            • Версионирование структуры БД в MySQL: MySQL Migration with PHP

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

                Мои требования к инструменту очень просты:
                • Как бы я не издевался над структурой данных в приложении, инструмент должен уметь изменить структуру в другой инсталляции приложения так, чтобы она была идентична моей.
                • System requirements: PHP и MySQL — не более того.
                • Бесплатность.
                • Открытость.


                Читать дальше →
              • Профилирование PHP-кода

                  Профилирование PHP-кода

                  Рано или поздно каждый из нас сталкивается с унаследованным кодом и его оптимизацией. Дебаггер и профилировшик в такой ситуации — лучшие помощники программиста. У тех кто работает с PHP, благодаря Дерику Ретансу (Derick Rethans) есть хороший инструмент — xDebug. Информации касательно xDebug много даже в рунете, поэтому речь в этой статье пойдет не о нем.

                  Наткнувшись на упоминание о профилировщике для PHP я сразу подумал об xDebug ( о проприетарных инструментах от Zend я давно уже успел позабыть ), но на этот раз ошибся — речь пойдет об XHProf.
                  XHProf

                  Этот профилировшик был разработан специально для Facebook, а исходный код его был открыт в марте 2009 года.
                  Читать дальше →