• Факты и заблуждения профессионального программирования

      Роберт Гласс 'Факты и заблуждения профессионального программирования'

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

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

      Читать дальше →
    • Организация живой трансляции с ip камеры на сайте

        Введение

        Задача
        Рассмотрим задачу по организации на сайте живой видео трансляции с ip камеры. Наш стенд состоит из трёх составных частей:
        • ip камера
        • медиасервер
        • flash плеер в браузере на стороне клиента
        Читать дальше →
      • VLC: Стрим и Стрим-Сервер #2

          image
          В этой части мы рассмотрим «Простой Стриминг» через GUI для домохозяек, а для примера нам послужат ситуации:
          1. Когда мы выступаем в роли локального транслятора, для людей с лимитированным интернетом, с отключенным интернетом, или для тех, кто считается с вашим вкусом и хочет смотреть то, что вы им порекомендуете.
          3. Если вы захотите передавать видео со своей вебкамеры, просто цифровой камеры и любых других подобных устройств, через DirectShow.

          Читать дальше →
        • Как появился Photoshop

          • Перевод
          Adobe Photoshop какое-то время была убийственным приложением для Macintosh’а. В середине 90-ых издательство и графический дизайн вытесняли обычных потребителей, как важный рынок, во всяком случае, в глазах CEO Apple Джила Амелио и Майкла Спиндлера. Потребительские Маки увядали от того, что Apple вкладывала огромные деньги в развитие многопроцессорных Маков и безумных замен для операционной системы Mac OS. Даже после того, как Apple вышла из кризиса середины 90-ых, Photoshop остается чрезвычайно популярным, и даже превратилась в глагол, описывающий процесс ретуширования и редактирования изображений, не смотря на нежелание этого со стороны Adobe.

          Читать дальше →
        • Как появился Flash

            Технология Flash оставила свой след в истории сети Интернет и стандартах дизайна всего за несколько лет, но столь серьезные вещи появляются не каждый день. И так: откуда же появился Flash? Что лежало в его основе? Данная статья отвечает на эти и многие другие вопросы.

            Читать дальше →
          • Основы программирования под Android на примере игры Судоку

              В статье описаны основные трудности создания приложений под Android.
              Рассматриваются базовые понятия программирования Android.
              Для примера описано создание игры Sudoku из книги Hello, Android – Ed Burnette.
              Осторожно много скриншотов.

              Читать дальше →
            • Небольшой demo клиент vkontakte на QML


                Недавно я уже рассказывал о новом языке разметки, теперь же мне хотелось бы показать небольшой пример того, что можно с помощью этих инструментов сделать. В качестве демонстрации я решил написать крошечный клиент для популярной в рунете сети vkontakte.
                Данный клиент взаимодействует с контактом через userapi, умеет отображать список пользователей, принимать и отправлять сообщения, отображать пользователей, от которых есть непрочитанные сообщения, а также искать нужных людей среди френдленты по имени и фамилии: в общем самый минимум, хотя делает он это весьма красиво.
                Примечателен клиент тем, что здесь нет ни единой строчки на C++, всё сделано средствами qml и javascript.
                Несколько скриншотов и ссылки для скачивания
              • Улучшаем админку

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

                  И тут на помощь приходит django-admin-tools. С этим приложением минут за 20 можно получить «приборную панель» с произвольной группировкой приложений/моделей, вкладками, любым числом колонок, различными блоками, которые каждый пользователь сможет расставить, как ему удобнее, скрывать и сворачивать по желанию, закладками, настраиваемым меню и удобным способом добавления во все это хозяйство всего, чего только можно придумать.

                  Вот так, например, сейчас выглядит админка к сайту НадоВместе:

                  image
                  (это только часть, вот скриншот целиком)

                  Разберемся поподробнее.
                  Читать дальше →
                • Web разработка под iPhone

                    Пока все Интернет сообщество со всех сторон продолжает обсуждать, как же можно приспособить iPad для работы, я бы хотел все же вернуться к iPhone. По профессии я программист и люблю новые технологии. И очень мне уж хотелось сделать приложение для своего телефона, но вот как-то душа к Objective C не лежит пока что, да и макбука с лицензией разработчика тоже пока нет. И мне стало интересно, могу ли используя знания html и js написать что-нибудь. Оказалось что да, и способов очень даже много. О них – под катом.
                    Читать дальше →
                  • Создание круговых панорам (flash)

                      Как сделать панорамное фото с трехмерным обзором


                      Вертеть головой — потянув мышкой, или курсорами ← →, приближение/удаление — колесиком мышки.

                      В этой статье я расскажу о том, как делать панорамные фотографии, а так же
                      как из них сделать круговые 3D-панорамы: какие для этого нужны программы, и как ими пользоваться. Словом, попробую показать весь процесс шаг за шагом. В конце статьи сделаю небольшую работу над ошибками, и расскажу о том, как их избежать в будущем.

                      Вообще, сделать панорамное фото (в т.ч. круговую панораму) совсем не сложно.
                      При минимальном навыке на всё уйдет минут 10.

                      Перечислю всё, что нам понадобится:
                      Читать дальше →
                    • Сервер на стероидах: FreeBSD, nginx, MySQL, PostgreSQL, PHP и многое другое

                        Нравится мне эта картинка, у меня, вот никогда такие красивые графики в какти не получались =(

                        Введение


                        С момента написания мной предыдущей статьи по оптимизации этой связки прошло довольно много времени. Тот многострадальный Pentium 4 c 512Мб памяти, обслуживающий одновременно до тысячи человек на форуме и до 150,000 пиров на трекере уже давно покоится на какой-нить немецкой, свалке, а клуб сменил уже не один сервер. Всё сказанное в ней всё ещё остаётся актуальным, однако есть вещи которые стоит добавить.
                        Статья большая, так что будет поделена на логические блоки:

                        0. Зачем вообще что-то оптимизировать?
                          
                        1. Оптимизация ОС (FreeBSD)
                          1.1 Переход на 7.х 
                          1.2 Переход на 7.2
                          1.3 Переход на amd64
                          1.4 Разгрузка сетевой подсистемы
                          1.5 FreeBSD и большое кол-во файлов
                          1.6 Softupdates, gjournal и mount options
                          
                        2. Оптимизация фронтенда (nginx)
                          2.1 Accept Filters
                          2.2 Кеширование
                          2.3 AIO
                          
                        3. Оптимизация бэкенда
                          3.1 APC
                          3.1.1 APC locking
                          3.1.2 APC hints
                          3.1.3 APC fragmentation
                          3.2 PHP 5.3
                          
                        4. Оптимизация базы данных
                          4.1 MySQL 
                          4.1.1 Переход на 5.1
                          4.1.2 Переход на InnoDB
                          4.1.3 Встроеный кеш MySQL - Query Cache
                          4.1.4 Индексы
                          
                        4.2 PostgreSQL
                          4.2.1 Индексы
                          4.2.2 pgBouncer и другие.
                          4.2.3 pgFouine
                          
                        4.3 Разгрузка базы данных
                          4.3.1 SphinxQL
                          4.3.2 Не-RDBMS хранилище
                          4.4 Кодировки
                          4.5 Асинхронность
                          
                        Приложение. Мелочи.
                          1. SSHGuard или альтернатива.
                          2. xtrabackup
                          3. Перенос почты на другой хост
                          4. Интеграция со сторонним ПО
                          5. Мониторинг
                          
                         6. Минусы оптимизации

                        Кому что-нибудь из этого списка интересно, жмём сюда...
                      • Методы в JavaScript

                          Когда-нибудь каждый JavaScript-программист осознаёт, что JS — объектно-ориентированный язык. И здесь его подстерегают некоторые опасности, происходящие от непонимания того факта, что JS — язык не классов (как Паскаль или Цэ-два-креста), а прототипов.
                          Так, уже многое написано о проблеме наследования (котого в JS нет). Я же постараюсь рассказать о менее освещённом, но едва ли не более важном подводном камне: грамотной реализации методов.
                          Программисты пытаются объявлять классы в привычной для них форме, из-за чего возникают утечки памяти и прочие неприятные вещи. На самом деле нужно всего лишь научиться использовать прототипы.
                          Эта статья предназначена прежде всего для начинающих JS-программистов.
                          Читать дальше →
                        • Пример использования микроформатов на «живом» проекте

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

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

                            Мне кажется, что ответ на поставленный выше вопрос напрямую зависит от текущей ситуации в области web-технологий. Уверен, в будущем чтение и анализ микроформатов будет полностью прерогативой машин. Пользователю же будет полезен лишь конечный результат, продукт их деятельности. К сожалению, сейчас основная масса рядовых пользователей пока даже не знает о существовании микроформатов, не говоря о получении от них пользы.

                            Детали смотрите далее...
                          • Микроформаты в профиле хабрапользователя

                              Сделал тестовую страницу. Под катом описание моих действий.
                              ВНИМАНИЕ! Я дописываю и дополняю описание вот прямо сейчас, когда вы это читаете, так что не удивляйтесь появлению новых абзацев.

                              Читать дальше →
                            • Размышления на тему личной эффективности и организации дел.

                                Зачем?
                                Никогда не успевал в школе. Любая задача у меня растягивалась на максимально возможное время, подтверждая закон Паркинсона. “И это только начало…” – думал я, и впадал в депрессию. Соответственно, ни на что кроме уроков у меня времени особо и не было. Потом ВУЗ и работа. Гонка за деньгами. Господи! Неужто так будет всегда…
                                С удивлением обнаружил, что чем больше и качественнее делаешь работу – тем больше наваливается. Причем, что интересно, даже если заряжаешь ценник до небес.

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