• 25+ видеоуроков по Android для начинающих

    • Tutorial

    Приветствую вас, уважаемый хабрачеловек!
    Предлагаю вашему вниманию бесплатно серияю видеоуроков в котрых рассмотренно базовые понятия разработки под Android.
    Читать дальше →
  • Зачем Win32-приложению манифест?

    Недавно на руборде в разделе Программирование был задан вопрос: «Зачем Win32-приложению манифест? На что он влияет?». Первое, что сразу приходит в голову большинству программистов — это темы оформления. Но на самом деле в современных виндах манифест нужен не только для этого. Я подумал и написал пять ключевых аспектов, на которые влияет манифест или его отсутствие. После этого сразу несколько человек попросили оформить этот пост в виде более развернутой статьи.
    Мое исследование темы манифестов под катом
  • Молнии

    • Перевод


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

    По крайней мере, таков план.

    Но как же именно вам, как разработчику игры, отрендерить такой эффект?
    Читать дальше →
  • 18 неожиданностей при чтении исходного кода jQuery

    • Перевод
    Перевод статьи «18 Surprises From Reading jQuery's Source Code», David Aragon.

    Я люблю jQuery, и хотя я считаю себя продвинутым JavaScript разработчиком, я никогда, до сих пор, не читал исходники jQuery с начала и до конца. Вот несколько вещей, которые я при этом узнал:
    Читать дальше →
  • Несколько интересностей и полезностей для веб-разработчика #21

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

      Awesome Python


      Автор этого огромного списка полезностей для питонистов также как и автор похожего репозитория для сисадминов из прошлой моей подборки был вдохновлен проектом Awesome PHP. Это просто отличная тенденция, которая не может не радовать.

      Chart.js



      Потрясающие интерактивные графики и диаграммы на HTML5 Canvas. Chart.js не зависит от сторонник библиотек, работает во всех современных браузерах и даже в IE7/8 с полифилом, адаптивный к мобильный устройствам, очень гибкий и модульный. Выглядит все на самом деле очень красиво, но признаюсь я не настолько детально изучил проект, чтобы сказать чем он лучше DC.js из моего 19 выпуска. Дело в том, что Chart за несколько дней собрал почти 10 000 звезд на GitHub.

      Ну и для того, чтобы добить тему визуализации данных, оставлю ссылку на Amcharts. Проект не open-source, но вы можете пользоваться им бесплатно, если будете размещать логотип. Хочу обратить ваше внимание на то, что с этой библиотекой работают Microsoft, Amazon, IBM, Bank of America, NASA, P&G, PayPal и многие другие мировые корпорации.
      Читать дальше →
      • +96
      • 54,8k
      • 4
    • WebSocket-чат на Tornado для вашего Django-проекта

      • Tutorial
      TornadoНедавно я запустил сайт backgrounddating.com и написал об этом здесь, на Хабрахабре. Разумеется, я уже тогда рассказал о некоторых технических деталях реализации этого проекта, но об одной из возможностей сайта я бы хотел написать отдельно, тем более, что документации (как на русском, так и на английском) на эту тему в Интернете пока что довольно мало. Итак, речь пойдёт о чате в реальном времени между двумя пользователями. Задача состоит в том, чтобы любой пользователь мог отправлять другим пользователям сообщения, и, если у получателя сообщения открыт чат с этим пользователям, то он сразу же видел входящие сообщения (а в ином случае он мог прочитать сообщения позже: то есть при открытии чата загружается история последних сообщений).

      Если вам нужно, чтобы пользователи могли общаться не только вдвоём, а группами из любого количества человек, то сделать это можно почти что элементарно: описанная реализация, по сути, рассчитана на такое расширение функциональности.

      Сразу уточню, что это не единственный способ реализовать подобное. Вы можете использовать другой асинхронный веб-сервер (например node.js), можете использовать другую очередь сообщений (или вообще её не использовать, если вам подходят особенности такого варианта: с пользователями одного канала обязательно общается один и тот же worker веб-сервера). Я даже не утверждаю, что этот вариант самый лучший (но в данном случае он подошёл лучше всех). В конце концов, мы здесь вообще не будем рассматривать костыли (long polling, Flash) для старых браузеров (а это почти все версии IE, например), не поддерживающих веб-сокеты, и даже не будем рассматривать возможность подключаться из тех браузеров, которые уже поддерживают протокол WebSocket, но не стандартизированную версию (RFC 6455), а одну из устаревших. О том, как можно включить поддержку устаревшей версии «draft 76» (она же «hixie-76»), смотрите в документации Tornado.
      Читать дальше →
    • Еще один коптер: часть первая, описание и выбор деталей

        Итак, наверное многие из вас хотели бы иметь летающую игрушку на радиоуправлении. Самой простой в управлении (на мой субъективный и неопытный взгляд) является квадракоптер. Кроме того квадракоптер открывает большие возможности для программирования — есть платы управления на основе ардуино, можно подключать датчики (GPS, барометр, сонар, цифровой компас, понятное дело гироскопы).

        Множество постов призывает вас сделать это. Я расскажу как я собрал и облетал (буквально вчера) свой первый в жизни квадракоптер. С какими проблемами столкнулся и как их решил. Что важно я хотел бы написать данный рассказ именно с позиции новичка в радиоуправляемой авиации.

        Статья является частью цикла:
        1. Часть первая, описание и выбор деталей
        2. Часть вторая, сбор рамы


        коптер на картинке не мой
        Читать дальше →
      • 12 уроков из управления проектами и запуска стартапов

          Я разработал около сотни проектов, в том числе — стартапов. Многие из них достигали пика и умирали, некоторые работают до сих пор. Делал как B2C, так и B2B.

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

          Если лень читать — ролик, выражающий основной дух и главный смысл, находится внизу. Ролик вызовет восхищение — отлично, идите делать очередной релиз. Ролик вызовет отторжение — читайте пост до другой реакции сколько угодно :)



          1. Важнее всего — желание

          Один из первых стартапов в моей жизни не состоялся потому, что из четверых друзей, кто решил делать, желания сделать проект по-настоящему не было ни у кого. Если вы не способны в течение каждого дня месяца думать о проекте и предпринимать реальные шаги, возможно, не стоит делать проект.
          Читать дальше →
        • 12 приемов художников Disney для оживления анимации



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

            Стоит вспомнить, что эти принципы (в продолжении они все показаны) созданы группой аниматоров, ставших основой Disney. Эта группа даже получила название "9 стариков Диснея".

            Читать дальше →
          • Алгоритмы сортировки в виде пошаговой анимации

            • Tutorial
            Сортировка последовательности данных — один из столпов компьютерной науки. Проблема в том, как делать сортировку наиболее эффективным образом, и эта задача стоит перед исследователями чуть ли не с первого дня после изобретения компьютера. На сайте sorting.at различные алгоритмы сортировки проиллюстрированы в виде пошаговой анимации, для лучшего понимания принципов их работы.


            Читать дальше →
          • Пишем файловую систему в ядре Linux

            • Tutorial

            Для кого эта статья


            image

            Данная статья составлена по материалам практики по курсу операционных систем в Академическом университете . Материал готовился для студентов, и ничего сложного здесь не будет, достаточно базового знания командной строки, языка C, Makefile и общих теоретических знаний о файловых системах.

            Весь материал разбит на несколько частей, в данной статье будет описана вводная часть. Я коротко расскажу о том, что понадобится для разработки в ядре Linux, затем мы напишем простейший загружаемый модуль ядра, и наконец напишем каркас будущей файловой системы — модуль, который зарегистрирует довольно бесполезную (пока) файловую систему в ядре. Люди уже знакомые (пусть и поверхностно) с разработкой в ядре Linux не найдут здесь ничего интересного.
            Читать дальше →
            • +107
            • 53k
            • 9
          • Откуда «мыло» в WPF и как с ним бороться



            Это руководство для WPF-разработчиков, стремящихся добиться максимально чёткой картинки в своих приложениях. Графическая система WPF до мозга костей векторная, но конечным результатом её работы по-прежнему является растр. Если не уделить этому факту должного внимания, можно столкнуться с различными сортами «мыла» — паразитными артефактами растеризации. В такой ситуации важно не терять присутствия духа, причины их возникновения вполне рациональны, а методы борьбы достаточно просты и эффективны.
            Читать дальше →
          • Transcend WiFi. Пишем клиент Shoot&View для Windows, Mac и Linux

              На хабре неоднократно упоминали о карте памяти формата SDHC со встроенным WiFi передатчиком. Купив эту карту, я был разочарован ужасным программным обеспечением, которое идет «в комплекте» с картой. Если приложением для iOS и Android хоть как то можно пользоваться, то отсутствие клиента под windows и macos, лишает карту возможности использования ее профессионалами. Точнее сказать, на PC есть веб интерфейс, но кроме ужасного внешнего вида, меня разочаровало отсутствие востребованной у фотографов функции Shoot&View, которая позволяет практически мгновенно видеть на большом экране компьютера результат съемки.

              Любители geek-porno скорее всего разочаруются — мы не будет модифицировать прошивку, хакать ее, вскрывать саму карту памяти. Мы будет работать со «стоковой» картой памяти, без каких либо модификаций.

              Итак, в этой статье, мы разберем с вами протокол Shoot&View карт памяти Transcend WiFi и напишем на python кроссплатформенный клиент, который запустится на windows, linux и MacOS. А для самых нетерпеливых, в конце статьи вас ожидает готовый python модуль для своих проектов, консольный клиент, а так же GUI утилита, которая работает на windows, linux и macos.

              Читать далее
            • Обзор систем защиты ПО для Windows от нелегального использования

              В сети с завидной регулярностью (особенно на ресурсах, где обитают разработчики ПО) появляются вопросы типа: «допиливаю свою первую шароварку/программу, задумался над тем, какой протектор выбрать. Что посоветуете?». Как правило, ответы на такие вопросы содержат лишь названия нескольких протекторов (очень часто даже без ссылок на официальные сайты) и минимум информации о самих протекторах — «пользуюсь XXX, все устраивает» или «пересел с XXX на YYY, доволен, как слон». Некоторое время назад я сам был в такой же ситуации, и сделал свой выбор, не обладая всей полнотой информации — хотелось поскорее уже прикрутить защиту и выпустить продукт, и это желание не располагало к глубоким и вдумчивым исследованиям. Я сделал свой выбор, и в основном не жалею, хотя, после исследования, проведенного для данной статьи, я бы наверно размышлял несколько дольше.

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

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

              Данная статья затрагивает только программные системы защиты (протекторы), защита ПО от копирования при помощи каких-либо физических носителей ключевой информации не рассматривается.

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

              Все скучные подробности, как обычно, под катом
            • Видео-курс по JavaScript на русском языке

                Здравствуй, Хабр!

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



                Первая лекция: Введение в JavaScript, немного истории, числа (тут есть ошибка: функция toFixed округляет значения).



                Остальное – под катом.
                Читать дальше →
              • Математический фокус для MP3, JPEG и Гомера Симпсона

                • Перевод
                Девять лет назад я посещал курс физики в колледже, и мой профессор рассказал одну вещь, которая поразила меня. Я думаю, не будет преувеличением сказать, что это одно из наиболее широко используемых математических открытий — от оптики до квантовой физики, радиоастрономии, сжатия MP3 и JPEG, рентгеновской кристаллографии, распознавания голоса и МРТ. Этот математический инструмент называется преобразование Фурье, в честь французского физика и математика 18-го века Жозефа Фурье. Им пользовались даже Джеймс Уотсон и Фрэнсис Крик, чтобы декодировать структуру двойной спирали ДНК из рентгенограмм, произведенных Розалиндой Франклин. (Крик был экспертом по преобразованиям Фурье, он в шутку назвал свою книгу «Преобразования Фурье для орнитологов», чтобы объяснить суть Уотсону, заядлому любителю птиц).
                Читать дальше →
              • Собрать проект Visual Studio в один файл с помощью ILMerge

                  app.exe, d1.dll d2.dll = app.exeОбычно результатом компиляции проекта является сборка (assembly) проекта, а также его зависимости (Referenced Assemblies). Однако иногда нужно чтобы результатом был один файл единственный файл, независимый от других сборок. Например простая утилита, которую можно будет куда угодно скопировать и она будет работать.

                  Пример

                  Условно говоря после:
                      compile App\App.csproj  
                      dir App\bin\Release  
                  Получаются:
                      App.exe
                      dep1.dll
                      dep2.dll
                  Нам же нужно лишь один самодостаточный
                      App.exe 
                  То есть содержащий в себе dep1.dll и dep2.dll

                  На Хабре уже присутствует решение со встраиванием зависимостей в ресурсы, здесь я покажу как это сделать с помощью ILMerge и Post Build Event в Visual Studio.

                  читать как это сделать
                • Управленческие инструменты: 5 вопросов для прояснения целей или для чего нужен BMW X5?

                    Давным давно в одной из компаний, лидере мирового производства микропроцессоров, меня однажды поразила менеджерская напасть. Решил, знаете ли, заняться развитием сотрудников. (Периодически, такое с менеджерами случается, да.)

                    Подхожу к своему сотруднику — назовем его Серега:

                    — Серега, — говорю, — ты в какую сторону вообще хочешь развиваться: в техническую или в менеджерскую?

                    — Сань, ну голова варит уже не очень, возраст… (Серега старше меня на 3 года) Поэтому, наверное, в менеджерскую.


                    Ну, в менеджерскую — так в менеджерскую. Я ж на тот момент был менеджер опытный, уже 4 года опыта! Энергии много, желания помочь людям — через край!

                    Короче, Серега стал моим заместителем, начал посещать всякие тренинги. Взял в управление какой-то мощный студенческий проект, там ребята что-то делали.

                    А кончилось все тем, что пришлось нам с Серегой расставаться. Как так получилось, где Серега в итоге реализовал себя, и какой правильный управленческий инструмент я мог бы тогда применить — об этом сегодня и поговорим.

                    Заодно поговорим, что делать, если вы обнаружили себя и/или своих сотрудников в квадрате C в статье:

                    Читать дальше →
                  • Qt: шаблон для корректной работы с потоками — более качественная реализация

                      В своей предыдущей статье я затронул тему грамотной реализации потоков в Qt и предложил свой вариант. В комментариях мне подсказали более верное направление. Попробовал сделать — получилось и вправду легко и красиво! Я хотел было исправить старую статью, но Хабр повис — и все потерялось. В итоге я решил написать новую версию.
                      Смотрим новую версию!