• О том, как в Instagram отключили сборщик мусора Python и начали жить

    • Перевод
    Отключив сборщик мусора Python (GC), который освобождает память, отслеживая и удаляя неиспользуемые данные, Instagram стал работать на 10% быстрее. Да-да, вы не ослышались! Отключив сборщик мусора, можно сократить объем потребляемой памяти и повысить эффективность работы кэша процессора. Хотите узнать, почему так происходит? Тогда пристегните ремни!

    Читать дальше →
  • 233 орешка для Золушки: отбираем цвета для «идеальной» палитры



      В процессе разработки игры в текстовом режиме, мне пришлось нарисовать больше сотни анимационных ASCII спрайтов. После релиза игра получила неожиданно хорошие отзывы и было принято решение делать продолжение. Рисуя спрайты для первой части и перепробовав с десяток вариантов выбора цвета и несколько десятков различных палитр, я понял, что нужен свой, «идеальный» набор цветов на все времена. За сотни и сотни часов рисования, сложились следующие критерии идеальности палитры:

      • Краткость: небольшое количество цветов в палитре. Весь набор цветов можно охватить одним взглядом.
      • Полнота: цвета палитры должны равномерно и достаточно плотно заполнять цветовое пространство.
      • Дискретность: цвета палитры должны отличаться друг от друга на глаз.
      • Группировка: цвета должны быть удобно сгруппированы для быстрого нахождения нужного.

      Оказалось, что можно подобрать набор из ровно 233 цветов, который удовлетворит всем этим критериям.
      Посмотреть идеальную палитру
    • Полное практическое руководство по Docker: с нуля до кластера на AWS

      • Перевод



      Содержание



      Вопросы и ответы


      Что такое Докер?


      Определение Докера в Википедии звучит так:


      программное обеспечение для автоматизации развёртывания и управления приложениями в среде виртуализации на уровне операционной системы; позволяет «упаковать» приложение со всем его окружением и зависимостями в контейнер, а также предоставляет среду по управлению контейнерами.



      Ого! Как много информации.

      Читать дальше →
    • Чтобы распознавать картинки, не нужно распознавать картинки

        Посмотрите на это фото.



        Это совершенно обычная фотография, найденная в Гугле по запросу «железная дорога». И сама дорога тоже ничем особенным не отличается.

        Что будет, если убрать это фото и попросить вас нарисовать железную дорогу по памяти?

        Если вы ребенок лет семи, и никогда раньше не учились рисовать, то очень может быть, что у вас получится что-то такое:
        Осторожно, тяжелые гифки
      • Интервью с CYBERMANIAC

          Если вы знаете, и помните человека под ником CYBERMANIAC, для вас этот разговор будет похож на внезапное обнаружение половины студенческой зарплаты во внутреннем кармане старой куртки. Для тех кто никогда не слышал о Станиславе, я думаю будет тоже интересно почитать о небольшой, но уникальной искре времени начал интернета в далеком от столиц городов России глазами CYBERMANIAC'а. Он мне показался неизменным с 00 годов да и настолько изолированным, что очень уж захотел написать о нем.

          Мы осторожно поговорим о жизни программиста в глубинке, о языках программирования с момента появления их в России: Forth, Borland Pascal, Delphi ,C#, MegaBasic, Java, SQL, C++. о япоском языке, о змеях, о национальных напитках, о Сократе, о советских объективах, о звездах, человеческих страхах.

          CYBERMANIAC носит в себе большой опыт в крекинге, написании утилит, автор Neo Sign 0f Misery, древней электронной книги “Теоретические основы крегинга”, а так же автор многим любимого windows scanner и большого фотолюбителя-звездочета. Интервью получилось многим больше, чем я расчитывал. Но надеюсь, для вас будут звучать колокольчиками похожие мысли. Именно их мы и слушаем, когда читаем…
          Читать дальше →
        • Шон Паркер — хакер, со-основатель Napster, Plaxo и Facebook, миллиардер и инвестор

          • Перевод
          После просмотра фильма "The Social Network" мне стало интересно, насколько реален персонаж Шона Паркера, изображенный в фильме. Статья в Vanity Fair во многом утолила мой интерес, а Паркер оказался даже любопытнее, чем я предполагала. Так что я не удержалась и перевела статью — все ее «много букв» того стоят.

          Те, кто не смотрел фильм, а только планирует, учтите, в тексте будет немного спойлера.

          В 19 Шон Паркер помог создать Napster. В 24 он стал президентом-соучредителем Facebook. В 30 лет он – любитель вечеринок, гений, знаток социальных сетей, стесняющийся прессы, перспективный миллиардер. А теперь еще и знаменитость после того как Джастин Тимберлейк сыграл его в фильме Дэвида Финчера «The Social Network».

          Шон Паркер сидел на уроке, посвященном мировым цивилизациям в своей школе в Вирджинии, когда вдруг кто-то передал ему записку. Его отец, — было сказано в ней, — ждал его, чтобы поехать на прием к врачу-ортодонту. По спине Паркера пробежал холодок. У него не было ортодонта. Когда он вышел, отец рассерженно запихнул его в семейный минивен. К тому моменту, когда они приехали в их скромный загородный дом, группа агентов ФБР выносила документы и настольный компьютер из комнаты Шона.
          Читать далее
        • Что удерживает поезд на рельсах?



            Очередной кусочек рассказов Ричарда Фейнмана (, и части). На этот раз физик рассказыает о том, какие вопросы любили задавать в научном сообществе MIT, чтобы вернуть на землю зазнавшегося студента. Вопросы, которые звучат очень просто, но ответ не всегда так очевиден. Первый вопрос был про отражение в зеркале (эта тема уже поднималась на Хабре), а второй вопрос поинтереснее: что удерживает поезд на рельсах?

            Оригинал ролика.
          • GitHub, вебсайт и автоматическое создание тестового сайта из последней версии исходных кодов

              Речь в данной статье пойдет о том, как автоматически получать свежую версию исходников из основной ветки вашего репозитория и разворачивать из нее проект на виртуальном хостинге. Сразу хочу отметить, что с GitHub'ом и Git'ом я познакомился только вчера. Поэтому матерым веб–программистам эта статья может показаться тривиальной. А тем, кто еще только начинает свой путь веб–программиста, надеюсь, поможет.

              Читать дальше →
            • d3o — эластичный материал, поглощающий физические воздействия

                image
                d3o (ди-три-о) — это новый материал, мягкий и эластичный до тех пор, пока к нему не будет применено резкое сильное воздействие.
                Он мягкий как жвачка, но если ударить по комку этого материала молотком — комок почти не деформируется.
                image
                Благодаря этому свойству материал уже применяют для производства снаряжения горнолыжников: наколенники, налокотники.
                В перспективе, планируется делать из этого материала бронежелеты — эластичные и не сковывающие движений, но не пробиваемые пулями и осколками.

                Читать дальше →
              • Групповой Pixel Art

                  imageНекоторое время назад, был объявлен старт интересному проекту, любой дизайнер мог нарисовать этаж небоскреба в стиле Pixel Art. В результате в постройке небоскреба приняли участие 406 человек, высота изображения составляет 35 000+ пикселей.
                  Мне так и не удалось на данный момент сделать полный скриншот всей страницы, большинство программ или недосохраняют или крешатся в процессе обработки.
                  Смотрим небоскреб во всей красе
                  UPD Сервис лежит, Зеркало 1, Зеркало 2 , Зеркало 3
                • Опасный Кружечный Кекс

                    Почему опасный? Да потому что этот кекс уже в 5 минутах от Вас!

                    image

                    Что нужно:


                    • 1 кружка (безопасная для микроволновой печи)
                    • 4 Столовые ложки муки
                    • 4 С.л. сахара
                    • 2 С.л. какао
                    • 1 яйцо
                    • 3 С.л. молока
                    • 3 С.л. растительного масла
                    • Щепотка ванили
                    • 3 С.л. шоколадной крошки, желательно

                    Как готовить
                  • Используем Python для обработки HTML форм

                      Когда я только начинал пользоваться django, самым приятным моментом после ORM, для меня, был пакет django.forms. Теперь django в прошлом — я использую стэк Werkzeug + SqlAlchemy + Jinja2, а иногда даже пытаюсь вместо SqlAlchemy экспериментировать с нереляционными хранилищами данных. Но вот замену django.forms я так и не нашёл. Поэтому решил набросать по-быстренькому что-нибудь своё.
                      Читать дальше →
                    • Загрузка «Висты» за 4 секунды

                        Производитель бюджетных материнских плат ASRock (подразделение Asus) заявил, что на её «материнках» время загрузки Windows Vista можно сократить всего до 3-4 секунд, если скачать свежие прошивки BIOS. Такая скорость достигается «мошенническими» манипуляциями с ядром операционной системы (вызовы S3 и S4 для «спящих» режимов инициируются материнской платой, даже если пользователь просто выключает компьютер).

                        Процессом управляет система Instant Boot в BIOS на материнской плате. «Быстрый» режим со скоростью загрузки три-четыре секунды является аналогом обычного «спящего» режима. В «нормальном» режиме Instant Boot процесс занимает 20-22 с (аналог «глубокого сна»), но зато здесь можно не бояться потери питания в электросети при якобы «выключенном» компьютере.

                        Под хабракатом можно посмотреть демонстрационный видеоролик (похоже, его сделали прямо на китайском заводе по сбору материнок, там вся комната в проводах).
                        Читать дальше →
                      • Настройка Apache2.2+Nginx+eAccelerator+SVN+Trac на медленном VDS — часть вторая

                          Первая часть

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


                          С Subversion и Trac пришлось помучаться — здесь напишу финальный, заработавший вариант.

                          UPD: Рекомендуется сначала попробовать поставить из репозитория, указав соответствующий источник

                          apt-get install subversion


                          Subversion — руководствовался в основном этим.

                          Читать дальше →
                        • Настройка Apache2.2+Nginx+eAccelerator+SVN+Trac на медленном VDS — часть первая

                            Вторая часть

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


                            Итак, досталась мне хиленькая VDS от FirstVDS — с Debian и ISPManager.
                            Попытки оптимизировать ее работу вылились в следующее:

                            1. Оптимизация Apache и установка Nginx
                            2. Установка eAccelerator

                            Ну и для души —

                            3. Установка SVN
                            4. Установка Trac.

                            Читать дальше →
                          • Сотня «диггеров» генерируют 56% контента Digg

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

                              Дальнейший подсчет показывает, что сотня самых активных пользователей выдали на первую страницу 14.249 историй, а это 56,41% от общего количества историй, которые попадали на первую страницу за всю историю сайта. Таким образом, получается, что очень маленькая группа пользователей контролирует больше половины контента Digg.com.
                            • И еще раз о GIL в Python

                              Предисловие


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

                              За время работы в этой области у меня накопился некоторый опыт использования различных вычислительных технологий. На некоторые вопросы, которые могут быть интересны не только мне, я постараюсь отвечать в рамках этой публикации.
                              Читать дальше →
                            • Быстрое сжатие изображений по алгоритму JPEG на CUDA

                                Краткое содержание: Создан быстрый кодер FVJPEG для сжатия изображений по алгоритму JPEG на видеокартах NVIDIA. Значительное ускорение получено при распараллеливании алгоритма, его реализации и оптимизации с помощью технологии CUDA. По скорости сжатия кодер FVJPEG превосходит все существующие в настоящее время программные и аппаратные решения для компрессии изображений по алгоритму Baseline JPEG.
                                Читать дальше →
                              • Руководство по магическим методам в Питоне

                                • Перевод
                                • Tutorial
                                Это перевод 1.17 версии руководства от Rafe Kettler.


                                Содержание


                                1. Вступление
                                2. Конструирование и инициализация
                                3. Переопределение операторов на произвольных классах
                                4. Представление своих классов
                                5. Контроль доступа к атрибутам
                                6. Создание произвольных последовательностей
                                7. Отражение
                                8. Вызываемые объекты
                                9. Менеджеры контекста
                                10. Абстрактные базовые классы
                                11. Построение дескрипторов
                                12. Копирование
                                13. Использование модуля pickle на своих объектах
                                14. Заключение
                                15. Приложение 1: Как вызывать магические методы
                                16. Приложение 2: Изменения в Питоне 3


                                Вступление


                                Что такое магические методы? Они всё в объектно-ориентированном Питоне. Это специальные методы, с помощью которых вы можете добавить в ваши классы «магию». Они всегда обрамлены двумя нижними подчеркиваниями (например, __init__ или __lt__). Ещё, они не так хорошо документированны, как хотелось бы. Все магические методы описаны в документации, но весьма беспорядочно и почти безо всякой организации. Поэтому, чтобы исправить то, что я воспринимаю как недостаток документации Питона, я собираюсь предоставить больше информации о магических методах, написанной на понятном языке и обильно снабжённой примерами. Надеюсь, это руководство вам понравится. Используйте его как обучающий материал, памятку или полное описание. Я просто постарался как можно понятнее описать магические методы.
                                Читать дальше