• «Разбор полетов» — episode 2 — НаScala-ная живопись

      Я и коллега aib представляем вашему вниманию второй выпуск уже ставшего популярным в узких кругах, разговорного IT-тематического подкаста «Разбор Полетов».
      В этом выпуске:
      • Полезняшка — Stanford Javascript Crypto Library 1
      • 2012-год Hadoop? А почему бы и нет 1 2
      • Куда катится этот мир 1
      • Scala уже не торт. Что-то быстро 1
      • Интересный игрок 1 2
      • Форкай правильно! 1

      Наши контакты:
      twitter: @a_abashev @gamussa
      G+: gplus.to/gAmUssA http://gplus.to/aabashev
      Подписаться по RSS
      прослушан 292 раза
    • Тюнинг Леопарда

        Неважно насколько хорош OS X Leopard, всегда найдутся вещи которые людям не нравятся и они хотели бы их изменить. И чем выше уровень пользователя, тем больше у него запросов и желания изменить что-то на свой вкус. В этой заметке, я попытаюсь рассказать о небольших советах, которые позволят вам улучшить внешний вид Леопарда.
        Читать дальше →
      • Азбука хорошего разработчика. Книжки для чтения

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

          Паттерны проектирования

          Википедия — там, в принципе, на хорошем уровне все описано и приведены примеры на разных языках.
          Базовая книга – классика:
          «Приемы объектно-ориентированного проектирования. Паттерны проектирования» — читал книгу давно, и раза 3. Вам того же советую. Даст возможность понимать большое количество терминов, произносимых другими разработчиками.

          Рефакторинг

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

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

            <?php
            function plural($n, $form1, $form2, $form5)
            {
                            $n = abs($n) % 100;
                            $n1 = $n % 10;
                            if ($n > 10 && $n < 20) return $form5;
                            else if ($n1 > 1 && $n1 < 5) return $form2;
                            else if ($n1 == 1) return $form1;

                    return $form5;
            }
            $n = 3; // Значение из базы данных
            echo $n." ".plural($n, "письмо", "письма", "писем")." у Вас в ящике";
            ?>
          • Исследование производительности сервера SockJS

              Доброе время суток!

              Так уж сложилось, что я занимаюсь всякими разнообразными push технологиями с использованием Tornado. Чуть ранее описывал Tornadio2, серверную реализацию протокола socket.io поверх Tornado.

              Теперь хочу представить похожий проект — sockjs-tornado.

              Для тех кому не очень интересно, есть другая полезная информация: сравнительное нагрузочное тестирование PyPy 1.7 против CPython 2.6.6, sockjs-node и socket.io (оба на node.js 0.6.5). Все под катом :-)
              Читать дальше →
            • Live-прототипирование приложений на Titanium с использованием Livetanium

                Наверняка многие из вас слышали о платформе Titanium Mobile от Appcelerator, которая позволяет разрабатывать нативные приложения под iOS и Android c использованием JavaScript (для тех кто не слышал и не пробовал, добро пожаловать). Я работаю с Titanium около 10 месяцев и меня практически все устраивает, но есть одна проблема, после использования XCode и Interface Builder работа над интерфейсом программы раздражает: Titanium не поддерживает nib-файлы, а это значит что размеры элементов приходится подгонять вручную и нет возможности использовать какие-то элементы повторно (частично эту проблему решает JSS, работает по аналогии с CSS). На самом деле проблема не в том чтобы подгонять размеры вручную (например, при html-верстки я давно отказался от WYSIWYG-редакторов и использовал vim), а в том что после внесения изменений нужно ждать компиляции и установки программы в симулятор/эмулятор, а ведь так не хочется тратить на это время.
                Читать дальше →
              • Шортики — короткие и смешные, или как мы готовили сайт к Хабраэффекту



                  Намба 0: Вступление

                  Однажды, задумчиво листая башорг, я вдруг понял, что большинство цитат довольно длинные и очень часто их просто лень читать. В наш век всеобщей спешки — на это уходит много времени. Таким образом родился новый формат: Шортики (от английского слова Short — короткий). Шортик — это короткая (из одного-двух предложений) шутка, жестко ограниченная 255 символами (чтобы не повадно было).

                  Как раз в этот момент я хотел подучить программирование и искал несложную задачу. Сайт я накидал довольно быстро — за пару вечеров, рассказал о нем коллегам по работе и паре знакомых в IRC, и собирался уже о нем забыть, как вдруг обнаружил, что за два дня сайт посетило 500 человек, из которых чуть ли не треть подписалась на RSS. Стало понятно, что концепция людям понравилась. Немного прилизав сайт внешне, я решился показать его Хабрасообществу — Шортики — короткие и смешные, прошу любить и жаловать.

                  P.S. Учитывая то, что это не совсем стартап (проект пока некоммерческий, да и «стартап» — слишком громкое слово для моей поделки), приобретенная за годы пребывания на сайте хабрасовесть не позволила мне написать нетехническую статью. Поэтому, под катом вас ждет занимательная история о том, как мы готовили Шортики к Хабраэффекту.

                  Читать дальше →
                • Использование Zend GData в Symfony2-проекте



                    Ведущий разработчик фреймворка Symfony — Фабьен Потенсьер (Fabien Potencier) в 2009-м году выступил на Zend/PHP Conference с докладом о извлечении выгоды в совместном использовании Symfony 1.3/1.4 и Zend Framework. Основные тезисы его речи доступны в презентации, опубликованной на его персональном сайте [1].

                    Как известно, Symfony2 — это практически новый фреймворк, созданный с использованием новейших возможностей языка PHP. На данный момент разработка перешла в RC-цикл, и всё больше разработчиков, имеющих опыт работы на первой ветке Symfony (да и не только они), смотрят в сторону нового флагмана. Но, даже несмотря на значительное количество включенных в стандартное издание компонентов, Symfony2 не покрывает все нужды веб-разработчика, поэтому, рано или поздно, встает вопрос о подключении внешних библиотек.

                    Очевидно, что в этом свете объемный комплект библиотек Zend (Gdata, Search_Lucene, Pdf и т. д.) нельзя обойти стороной. В данном посте мной будет рассмотрен процесс интеграции Symfony2 и Zend на примере Zend Gdata — библиотеки для взаимодействия с Google Data API [2].

                    Читать дальше →
                  • Мультиплексированный ввод/вывод

                    Preface


                    В данной статье я бы хотел затронуть важные аспекты программирования приложений для web, которые должны обслуживать множество пользователей одновременно, а значит мы будем разбирать уже всем надоевший асинхронный ввод/вывод, мультиплексирование и т.п.
                    Преследуются следующие цели:
                    1. Систематизировать материал по данному направлению, обсудить некоторые несостыковки в терминологии
                    2. Полностью разобрать фундамент, на котором строятся приложения для обслуживания множество клиентов
                    3. Выработать стратегию для будущего приложения на python которое должно обслуживать множество клиентов
                    4. Создать четкую картину в голове (недаром говорят понимаешь — когда можешь объяснить)


                    Читать дальше →
                  • Моделируем полёт PHP на крыльях Erlang

                      В данной статье изложены размышления и фантазии на тему «как можно было бы скрестить Erlang и PHP, чтобы случилось вселенское счастье», а не описание готовой технологии или продукта. Впрочем, мы намерены это реализовать, скорее всего, в форме open-source проекта, если, конечно, уважаемая хабра-аудитория не отговорит :) Собственно, одна из главных задач этой статьи — понять, насколько идея интересна и потенциально полезна широкому PHP-сообществу. Кстати, некоторые из проблем, обсуждаемых в статье, справедливы и для других популярных скриптовых языков (тут я подразумеваю Ruby и Python), так что предлагаемое решение, возможно, будет актуально и для них.
                      Интересно, нафига козе баян?
                    • Использование метаклассов в Python

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

                        Читать дальше →
                      • Эластичные шаблоны


                          Большинство дизайнов ориентировано на использование фиксированных значений при верстке: ширина и высота блоков, размер шрифта. Это позволяет сверстанному шаблону «не разваливаться» при изменении масштабов просмотра и сохранять свойство кроссбраузерности. Однако в этом есть один большой минус – при большом разрешении экрана маленькие фиксированные блоки теряются на большой площади и остаются незамеченными. Тут даже не спасет «резиновая» верстка, т.к. сайт будет выглядеть еще более нечитабельным, например на 19'' мониторах при разрешении большем 1280 по ширине. Для меня это актуально, т.к. на ноутбуке 17'' с разрешением 1400х800 просматривать «резиновый» сайт очень неудобно. И желание оставаться на таком сайте отпадает быстро. Существует ли способ, позволяющий управлять масштабами не только текста, но и всего сайта?
                          Читать дальше →