• Рунетология(156): создатель «Купи батон!» и «Tiny Beach» Сергей Булаев

      Сергей Булаев о тонкостях работы интернет-продюсера при создании проектов, о том, как родился, вырос и стал успешным проект «Купи батон!», о специфике разработки и продвижения под iOS, а также о многом другом.
      Читать дальше →
    • Sublime Text 2

        Пару месяцев назад я случайно наткнулся на массу положительных отзывов о текстовом редакторе Sublime Text 2. Попробовав его в деле, я не разочаровался. Теперь это мой основной рабочий инструмент.

        Sublime Text 2 — это платный текстовый редактор, написанный на C++, который:

        • Работает в Linux, OS X и Windows
        • Обладает приличной скоростью работы
        • Приятным интерфейсом (включая всевозможные анимации)
        • Гибко настраиваем (правда, не в GUI, а в json-конфигах)
        • Имеет множество плагинов, число которых растёт как на дрожжах
        • Поддерживает VIM-режим
        • Использует fuzzy-поиск
        Читать дальше →
      • Экспорт избранного Хабра в FB2

          Ненавижу длинные вступления
          И поэтому не буду писать их даже под спойлером.

          • Зачем?
            • Для оффлайнового просмотра на читалках.
          • Моя читалка не поддерживает FB2!
          • Хочу!
            1. Обзаводимся Python 2.7+. Тестировалось на Python 2.7.3.
            2. Ставим библиотеку BeautifulSoup 4. Вкратце варианты:
              • apt-get install python-beautifulsoup4
              • easy_install beautifulsoup4
              • pip install beautifulsoup4
              • Исходники и python setup.py install
            3. Качаем код из репозитория (прямая ссылка на последнюю версию).
            4. Открываем файл habrafav.py и в строке username = ... прописываем свой логин.
            5. python habrafav.py (или просто habrafav.py под Windows)
            6. Ждём. У меня с кэшированными данными экспорт ~150 статей занимает около 6 минут и 600 Мб оперативной памяти.
            7. Забираем habrahabr_favorites.fb2. Мой занимает примерно 62 Мб.

          Читать дальше →
        • Как разогнать эмулятор Android

            Intel HAXM
            Каждый, кто хоть раз работал с эмулятором для разработки приложений под Android, знает, что даже на современном железе эмулятор тормозит так, что для его использования нужно нечеловеческое терпение. То есть, наверное, надо самому стать андроидом-киборгом.

            Но есть и еще один метод – попроще.

            Intel Hardware Accelerated Execution Manager (Intel HAXM) — это решение, использующее аппаратные возможности виртуализации (Intel VT) и позволяющее значительно ускорить работу эмулятора Android.

            Данное решение работает в паре с эмулятором Android для х86 устройств. При этом, эмулятор будет работать со скоростью, приближенной к скорости работы реального устройства, что поможет сократить время на запуск и отладку приложения.
            Читать дальше →
          • jQuery File Upload

              Ура! Еще один, свеженький… чем он лучше других?



              а) Новенький! Всегда, кто берется что-то делать, то обычно смотрит: есть ли в этом смысл, и если есть — делает это.
              б) Красивенький! Можно не точить, а ставить из коробки. Основан на Bootstrap'е и иконках Glyphicons
              в) Само собой мультиселект файлов, Drag&drop, прогрессбар и превьюшки фотографий.
              г) Поддержка кросдоменного соединения, докачка и ресайз фоток на стороне клиента.
              д) Готов для любой платформы сервера (PHP, Python, Ruby on Rails, Java, Node.js, и тому подобное.)

              blueimp.github.com/jQuery-File-Upload

              Поддержка браузеров:

              github.com/blueimp/jQuery-File-Upload/wiki/Browser-support

              Читать дальше →
            • Техническое задание на сайт

                UPD: Продолжение статьи с примером техзадания

                Не так давно на хабре были две статьи (Согласно техническому заданию и А зачем мне ТЗ? Я и так знаю!) посвященные техническим заданиям. У меня обе статьи вызвали, мягко говоря, недоумение, в особенности статья «Согласно техническому заданию». На мой взгляд, это вообще вредная статья, которая приводит к неверному понимаю сути ТЗ. В связи с этим хочу выразить свой взгляд на этот вопрос. Не буду говорить обо всех тех. заданиях, слишком широка тема, но думаю смогу рассказать о ТЗ на сайт.

                То описание технического задания, о котором речь пойдет ниже, не является пересказом ГОСТа, но скорее является его творческой переработкой, хорошо сдобренной горьким опытом. Описанный ниже подход к ТЗ не охватывает все аспекты сайтостроения, но задает общее направление.

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

                1. Обоснование необходимости ТЗ


                А зачем вообще нужно ТЗ на сайт? Заказчик говорит: «Нужен следующий сайт: каталог товаров, корзина, форма заказа, доставка, мы на карте, о нас, обратная связь». Что не ясно? Ничего необычного, всё обыденно и рутинно.

                Разработчик отчетливо представляет, что нужно сделать, а сделать, в его понимании нужно вот так:



                Далее много букв
              • Определение страны по IP: тестируем скорость алгоритмов

                  Для определения страны по IP необходимы специальные базы данных, состоящие из диапазонов IP адресов и соответствующих им стран. Обычно такие базы данных распространяются в виде CSV или SQL файлов для использования в СУБД, либо бинарных файлов специального формата.

                  Для проведения тестирования была выбрана февральская база GeoLite Country, бесплатная версия GeoIP Country от MaxMind.

                  В тестировании приняли участие несколько популярных решений и мой «велосипед» на эту тему.
                  Читать дальше →
                • Pocket Lists. Чеклисты для iPhone



                    В начале этого года я решил сделать небольшое iPhone-приложение для походов в магазин и сбора вещей в поездку — такое, в котором можно было бы создать несколько списков дел и была бы совместная работа через Bluetooth (удобно было бы ходить в магазин за покупками с женой). Приложение хотелось сделать бесплатным в качестве упражнения перед другим, более масштабным iPhone-приложением, которое тогда планировал делать.

                    Однако, попробовав несколько десятков чеклист-приложений из App Store, я понял, что загромождать App Store еще одним приложением-упражнением бессмысленно и глупо. Почти все приложения, которые я пробовал, было мучительно тяжело использовать. Очень много халтуры и нелепых поделок. Такое ощущение, что все они сделаны в качестве упражнения. Стоящие приложения можно пересчитать по пальцам.

                    Итак, я решил, что не нужно делать небольшое приложение, а нужно поменять приоритеты и выпустить настолько хорошее приложение, насколько смогу. Чтобы когда-нибудь стать App of the Week и побороться за разные награды вплоть до Apple Design Award. Задача поставлена понятно, но ее выполнение — выбор нужного функционала, дизайн, стремление к перфекционизму — оказалось мучительным.

                    Пусть и не за два месяца, как хотелось изначально, а за десять, так получилось приложение для организации дел Pocket Lists, и я хотел бы представить его хабрасообществу.



                    Немного о приложении и об опыте разработки...
                  • LAMP +Nginx на VPS стабильно и без лишней головной боли

                    Задача — на минимальных ресурсах VPS развернуть хостинг нескольких не нагруженных сайтов. Сделать это быстро и удобно с минимальными проблемами в будущем и не падать на пиковых нагрузках.

                    Основные принципы:

                    1. ОС — Centos-6 86_x64 потому что стабильно, удобно и легко обновляемо.
                    2. Никакого самосборного софта. А то как говорится «командой make && make install любой дистрибутив превращается в Slackware.»
                    Читать дальше →
                  • Memcached. Как найти ключи по паттерну?

                      Доброе утро|день|вечер|ночь, %username%!

                      При использовании Memcached, иногда могут возникнуть вопросы: «А как посмотреть все ключи Memcached?» или «Как найти все ключи по маске „*“ или „sql_*“ ?»
                      Вот тогда открываются мануалы и начинается поиск такой функции, но, к сожалению, такой не оказывается :-(
                      Потом начинается Гугление… И там особо ничего нет :-(
                      А потом начинается поиск незадокументированных возможностей :-) и тут «Ура! Нашел!»

                      Читать дальше →
                    • Кэширование и memcached

                        Этим постом хочу открыть небольшую серию постов по материалам доклада на HighLoad++-2008. Впоследствии весь текст будет опубликован в виде одной большой PDF-ки.



                        Введение


                        Для начала, о названии серии постов: посты будут и о кэшировании в Web’е (в высоконагруженных Web-проектах), и о применении memcached для кэширования, и о других применениях memcached в Web-проектах. То есть все три составляющие названия в различных комбинациях будут освещены в этой серии постов.
                        Читать дальше →
                      • Знакомимся с PayPal API

                          На данный момент, PayPal — это самая популярная платформа электронных платежей. Именно то, насколько легко можно открыть счет и начать получать на него средства, по сравнению с традиционными способами получения платежей, и является причиной #1 его запредельной популярности. Второй причиной, многие со мной согласятся, является мощный API, предоставляемый PayPal. В этом топике я по порядку разложу все способы и трюки, связанные с работой PayPal API, чтобы вы избежали проблем с его интеграцией.
                          Читать дальше →
                        • Подборка видео с различных конференций

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

                            Известные
                            Читать дальше →
                          • phpBBex — расширенная версия phpBB 3

                              phpBBex logophpBB 3 — популярный бесплатный форум. Первая версия вышла в свет в 2000 году, и с тех пор вокруг этого движка сформировалось огромное сообщество. Не глядя на серьёзные архитектурные недостатки третьей ветки, которые остались в наследие от предыдущих версий, данный движок по праву считается одним из самых мощных решений среди бесплатных форумов. Огромное количество модов, написанных сообществом, только способствуют этому.
                              Как правило, мало кого устраивает стандартная функциональность phpBB 3, и каждый владелец форума устанавливает несколько модов, либо использует готовые сборки, которые включают наиболее популярные модификации. Однако, не все моды реализованы достаточно хорошо. Что-то было написано для старых версий форума, и не было обновлено, из-за чего в новых версиях форума возникают какие-то проблемы.
                              Несколько лет назад для форума родного города я создал форк с именем phpBBex, где постарался сделать phpBB 3 таким, каким вижу его я. Большинство проделанных изменений не существует в виде модов. Практически все установленные моды были сильно переработаны: исправлены ошибки, код адаптирован под последние версии phpBB. Недавно проект был переведён на Mercurial, в результате чего поддержка форка значительно упростилась. Надеюсь, что кто-то найдёт этот проект полезным.
                              Читать дальше →
                            • Smarty vs. Twig: производительность

                                Smarty — один из самых старых шаблонизаторов для PHP. Если вы программируете на PHP — скорее всего, вам приходилось работать с ним. В 2010 году вышла третья версия этого шаблонизатора. Smarty 3 был написан с чистого листа, с активным использованием PHP5. Вместе с этим Smarty получил обновлённый синтаксис и современные возможности, включая наследование, песочницу и др.
                                Twig — молодой шаблонизатор от разработчиков Symfony. Авторы позиционируют его как быстрый и функциональный шаблонизатор. По возможностям он во многом похож на Smarty 3. Twig отличает несколько другой синтаксис, а так же заявленная высокая производительность. Проверим?
                                Читать дальше →
                              • Список Javascript библиотек для рисования графиков и диаграмм 2

                                  Продолжаем тему визуализации данных в интернете.

                                  Предыдущие топики:
                                  Читать дальше →
                                • Создание графиков с JavaScript

                                    imageС началом существования HTML 5 возможности веб-приложений в браузерах возросли фантастически. Один из примеров – canvas элемент, который позволяет, с помощью JavaScript, рисовать 2D и 3D модели, равно как и растровую графику (bitmaps).

                                    Благодаря этим возможностям, статистические графики могут быть нарисованы прямо в браузере. Типы графиков могут быть различными. В прошлом, чтобы изобразить график, использовались различные подходы. Если внешний вид графика позволял, использовался стандартный HTML и CSS. Однако, подходы для более сложных графиков использовали различные технологии встроенных в браузеры HTML, CSS и JavaScript. Популярным было использование Flash, или графики вычерчивались на сервере, с последующей передачей их изображения клиенту. Эти подходы требовали много времени для поддержки, нарушали консистенцию приложений, вынуждали клиента устанавливать дополнительное ПО и дополнительно нагружали сервера.
                                    Читать дальше →
                                  • Создание расширения FireFox для начинающих

                                      В данной статье представлена пошаговая инструкция по разработке простейшего расширения для FireFox.
                                      Это частичный перевод оригинальной статьи.

                                      Это не моя статья, а моего друга (его мыльце: templar8@gmail.com). Он очень хочет попасть на Хабр. У меня самого не хватает кармы для инвайта.
                                      Текст статьи
                                    • Расширение timeStats — на что вы тратите время в интернете

                                        Всплывающее окно


                                        Как показывает реакция хабрапублики на топик «Старт „Motivate Clock: “Не думай о секундах свысока”“, учёт потраченного времени интересует многих. Поэтому я хочу познакомить вас со своим проектом — расширением „timeStats“ для браузера Chrome. С его помощью вы всегда будете знать, сколько времени уходит на различные сайты.

                                        Скачать расширение можно тут.

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