• Солнечная система на LibCanvas



      Вчера был отличный топик, "История одного хабраспора", о создании «галактики» на HTML5 Canvas, который сам по себе да своими комментариями вдохновил меня на ответный код. Думал, до окончания документации, не писать новых вещей на Хабру, но, как видите, сорвался) Спасибо kibizoidus за это.

      В топике вы увидите описание процесс создания звёздной системы на последней версии LibCanvas. Быстро, оптимизированно, кратко.
      Читать дальше →
    • Книги для тимлидов и руководителей проектов

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

        В отечественном IT я часто наблюдаю следующую картину: тимлидом часто становился лучший (?) разработчик из команды (aka 23-летний сеньор). А чтобы стать руководителем проекта (project manager) иногда достаточно просто знать английский и «павэрпойнт» на уровне пользователя. Это реалии отечественного аутсорсинга и с этим нужно как-то жить.

        В итоге часто получается как-то так:
        Потому что на десять сеньоров по статистике девять тупят.
        Читать дальше →
      • Принцип «Разделяй и властвуй», а также бесконечные потоки в Haskell

          Приветствую всех читателей!
          Ниже идет моя точка зрения того, как я понял главу 14 из слайдов курса по Haskell у нас в университете.
          Итак, сегодня мы поговорим о следующих двух темах:
          • Принцип «Разделяй и властвуй»
          • Работа с бесконеными потоками

          Экспертов в этой области прошу комментировать и поправлять, если будут неточности. Буду рад ответить на вопросы в комментариях.
          Читать дальше →
        • VPN? Суперпросто! Я гарантирую это

          • Tutorial
          image

          Наступила неделя Большого Брата. +5 к паранойе.



          В свете последних событий, люди серьезно озаботлись свободой доступа к информации и тайной частной переписки одновременно. В то время как Поросенок Пётр уже заводит свой трактор, кто-то собирается создать киллера закона о цензуре проксирующе расширение для браузеров, а иные и вовсе написали целых не два и не три — тысячи топиков про OpenVPN.

          Но, что делать, если нет;
          1. прав админа на компьютере;
          2. root-доступа на устройстве;
          3. своего внешнего хостинга или денег на него;
          4. знаний и умений по настройке всего этого;
          5. банально, времени на все это;

          WHATEVER?

          Тогда отцов русской демократии спасет Superfreevpn.com
        • Понимание ООП в JavaScript [Часть 1]

          • Translation
          • Tutorial
          — Прототипное наследование — это прекрасно
          JavaScript — это объектно-ориентированный (ОО) язык, уходящий корнями в язык Self, несмотря на то, что внешне он выглядит как Java. Это обстоятельство делает язык действительно мощным благодаря некоторым приятным особенностям.

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

          К счастью, в ECMAScript 5 появилось множество вещей, которые позволили поставить язык на правильный путь (некоторые из них раскрыты в этой статье). Также будет рассказано о недостатках дизайна JavaScript и будет произведено небольшое сравнение с классической моделью прототипного ОО (включая его достоинства и недостатки).
          Читать дальше →
        • Безопасность OAuth2

            Данная блогозапись на хабр прежде всего обусловлена появлением «Ключницы» — хороший повод связать и перевести накопленное.


            У нас в программе: вольный пересказ спек OAuth2, слабые стороны и Threat Model, 0day на хабретрюк с аутенфикацией.
            image
            Читать дальше →
          • Полноценное Python приложение на Android



              В этой статье я хотел бы рассказать о том, как создать полноценное приложение на Python для Android. Нет, это не очередной мануал для создания скрипта для sl4a, это мануал по созданию полноценного приложения с UI, возможностью собрать apk и выложить на Android Market. Заодно я хотел бы похвалиться своим первым приложением на google.play, это не hello world, а полезное приложение для фотографов, хотя и узко специализированное.
              Читать дальше →
            • Как бесплатные приложения могут приносить денег больше, чем платные

              • Translation
              image

              Заметка: Джон Мануджиан является сооснователем и генеральным директором в 140 Proof, венчурного стартапа, связанного с рекламой в социальных медиа.

              Приложения для Apple Store и Google Play могут быть очень прибыльными для разработчиков. Тем не менее, одна из основных задач для разработчиков при этом — окупаемость затрат. Рассмотрим несколько стратегий монетизации. Часто под «стратегией монетизации» имеют в виду «как сделать так, чтобы приложение приносило деньги».
              Читать дальше →
            • Как я сам научился программировать за 8 недель

              Для многих, кто никогда не программировал, обучение программированию кажется невероятно сложной задачей. Как бы то ни было, спасибо тому огромному количеству ресурсов, которые недавно стали доступны в Интернет и являются бесплатными — самообучение программированию никогда еще не было таким простым.

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

              Ниже я описал простой путь от ничего не зная о разработке программного обеспечения до обладания рабочим прототипом за восемь недель, который примерно повторяет шаги, которые я выполнил.
              Читать дальше →
            • Учимся писать многопоточные и многопроцессные приложения на Python

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

              К сожалению по теме многопоточности в Python не так уж много материала на русском языке, а питонеры, которые ничего не слышали, например, про GIL, мне стали попадаться с завидной регулярностью. В этой статье я постараюсь описать самые основные возможности многопоточного питона, расскажу что же такое GIL и как с ним (или без него) жить и многое другое.
              Читать дальше →
            • AngularJS — фреймворк для динамических веб-приложений от Google

                AngularJS создан для тех разработчиков, которые считают, что декларативный стиль лучше подходит для создания UI, а императивный — для написания бизнес-логики.

                Дзен Angular


                • Хорошо отделять манипуляцию DOM-ом от логики работы приложения. Это существенно улучшает тестируемость кода.
                • Хорошо считать, что автоматизированное тестирование приложения настолько же важно, насколько и написание самого приложения. Тестируемость очень сильно зависит от того, как структурирован код.
                • Хорошо отделять разработку клиентской части от серверной. Это позволяет вести разработку параллельно и улучшает повторное использование на обеих сторонах.
                • Хорошо, когда фреймворк ведет разработчика по всему циклу разработки приложения: от проектирования UI через написание бизнес-логики к тестированию.
                • Хорошо, когда распространенные задачи становятся тривиальными, а сложные — упрощаются.


                AngularJS представляет собой комплексный фреймворк. В стандартной поставке он предоставляет следующие возможности:
                • Все, что вам нужно для создания CRUD-приложений: data-binding, базовые директивы для шаблонов, валидация форм, роутинг, deep linking, повторное использование компонентов, dependency injection, инструменты для взаимодействия с серверными (RESTful) источниками данных.
                • Все, что вам нужно для тестирования: средства для модульного тестирование, end-to-end тестирования, mock-и.
                • Шаблон типового приложения, включающего в себя структуру каталогов и тестовые скрипты.


                AngularJS разрабатывается сотрудниками Google и используется, как минимум, в одном сервисе Google — DoubleClick.

                Читать дальше →
              • Хочешь быть iOS разработчиком? Будь им!

                На хабре в прошлом месяце была опубликована статья Конкурс ВК: Мессенджер для Android. Как это было!, в которой автор поделился своими мыслями о конкурсе и опубликовал список ресурсов и статей, которые помогли ему в создании приложения. Так как в последнее время я начал изучать разработку под iOS, то у меня скопилось некоторое количество ссылок, которые могут быть полезны для начинающих. Поэтому я последую его примеру и сделаю то же самое, только для своей платформы. Надеюсь, кому-нибудь они окажутся полезны и сэкономят немного времени.

                Читать дальше →
              • Конкурс ВК: Мессенджер для Android. Как это было!?

                  Приятного времени суток!

                  Сколько человек хочет заняться разработкой под Android, но в силу определенных обстоятельств все никак не может начать (у кого-то нет времени, кому-то скучно просто прорешивать примеры, лень, неопределенность)? Сколько человек добавляет каждую, кажущуюся интересной и полезной, статью на хабре в избранное и забивает? До конкурса ВКонтакте на разработку мессенджера под Android, я был среди числа вышеописанных пользователей. Но в один роковой момент все изменилось…
                  Читать дальше →
                  • +142
                  • 34.5k
                  • 64
                • PyBrain работаем с нейронными сетями на Python


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

                    PyBrain — одна из лучших Python библиотек для изучения и реализации большого количества разнообразных алгоритмов связанных с нейронными сетями. Являет собой удачный пример совмещения компактного синтаксиса Python с хорошей реализацией большого набора различных алгоритмов из области машинного интеллекта.

                    Предназначен для:

                    • Исследователей — предоставляет единообразную среду для реализации различных алгоритмов, избавляя от потребности в использовании десятков различных библиотек. Позволяет сосредоточится на самом алгоритме а не особенностях его реализации.
                    • Студентов — с использованием PyBrain удобно реализовать домашнее задание, курсовой проект или вычисления в дипломной работе. Гибкость архитектуры позволяет удобно реализовывать разнообразные сложные методы, структуры и топологии.
                    • Лекторов — обучение методам Machine Learning было одной из основных целей при создании библиотеки. Авторы будут рады, если результаты их труда помогут в подготовке грамотных студентов и специалистов.
                    • Разработчиков — проект Open Source, поэтому новым разработчикам всегда рады.

                    Читать дальше →
                  • Глубоко эшелонированная анонимность

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

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

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

                      Данный текст не претендует на единственно возможную схему построения такой защиты, дополнения и исправления приветствуются. Важность оценена исходя из российских реалий по 5-балльной шкале. Этот текст относится только к «обычному интернету», без наложенных сетей (они будут рассмотрены в отдельной статье)
                      Читать дальше →
                    • Pynba — pinba for python

                      • Translation
                      Примечание переводчика:
                      Тихо и незаметно вышла pynba. Странно, что на хабре об этом еще не писали :)


                      Что это:


                      Pynba — это WSGI прослойка для pinba. С ее помощью вы можете собирать статистику / производить мониторинг сервера, используя интерфейс MySQL для чтения данных.

                      Она аккумулирует данные от Python процессов, отправляет их по UDP прототоколу и показывает статистику в красивом человекопонятном виде простых отчетов. Так же она предоставляет доступ только для чтения к сырым данным, что позволяет, например, создавать более детализированные отчеты.

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

                      Почему не другой обработчик статистики?


                      Потому что Pinba — это круто!
                      Читать дальше →
                    • Такси ждет вас по адресу taxi.yandex.ru

                      • Из RSS
                      В прошлом году мы запустили мобильное приложение Яндекс.Такси для iPhone и Android. А сегодня Такси стало еще и веб-сервисом и открылось для всех, кто хочет заказать такси в Москве. Все преимущества и возможности мобильного приложения – поиск ближайших машин, выбор машины по заданным параметрам, отслеживание перемещения водителя на карте – есть и на сайте Яндекс.Такси.



                      Читать дальше →
                    • Модуль Mock: макеты-пустышки в тестировании

                        Mock на английском значит «имитация», «подделка». Модуль с таким названием помогает сильно упростить тесты модулей на Питоне.

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

                        Такое поведение — уже не надувные ракетные установки, а целая надувная земля, вокруг которой могут летать испытуемые ракеты и самолёты.

                        Российские надувные макеты ракетных и радарных установок

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