• Приложение двенадцати факторов — The Twelve-Factor App

    • Translation
    Уважаемые читатели! Представляю вашему вниманию перевод методологии создания веб-приложений The Twelve-Factor App от разработчиков платформы Heroku. Мои комментарии скрыты спойлерами по ходу статьи.

    Введение


    В наши дни программное обеспечение обычно распространяется в виде сервисов, называемых веб-приложения (web apps) или software-as-a-service (SaaS). Приложение двенадцати факторов — это методология для создания SaaS-приложений, которые:

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

    Методология двенадцати факторов может быть применена для приложений, написанных на любом языке программирования, и которые используют любые комбинации сторонних служб (backing services) (базы данных, очереди сообщений, кэш-памяти, и т.д.).
    Читать дальше →
    • +21
    • 43.2k
    • 5
  • Анализ изображений и видео. Обнаружение текста на изображениях

      Сегодня мы публикуем последнюю лекцию курса «Анализ изображений и видео», прочитанного Натальей Васильевой — старшим научным сотрудником HP Labs и руководителем HP Labs Russia. Наталья Сергеевна читала курс, посвящённый анализу изображений, в петербургском Computer Science Center, который создан по совместной инициативе Школы анализа данных Яндекса, JetBrains и CS клуба.



      Всего в программе девять лекций, из которых уже были опубликованы:
      1. Введение в курс «Анализ изображений и видео»;
      2. Основы пространственной и частотной обработки изображений;
      3. Морфологическая обработка изображений;
      4. Построение признаков и сравнение изображений: глобальные признаки;
      5. Построение признаков и сравнение изображений: локальные признаки;
      6. Поиск по подобию. Поиск нечетких дубликатов;
      7. Классификация изображений и распознавание объектов;
      8. Анализ изображений и видео. Сегментация изображений.

      Под катом вы найдете план новой лекции и слайды.
      Читать дальше →
      • +35
      • 25.4k
      • 1
    • Троичный компьютер в браузере

        000. Предыстория


        В 1959 году Н. П. Брусенцов разработал для МГУ уникальную вычислительную машину «Сетунь». Она была основана на троичной системе счисления и хотя элементная база была частично двоичной, что приводило к перерасходу деталей, машина зарекомендовала себя как экономичная и надёжная. Сегодня троичную машину можно увидеть разве что в музее, двоичный код победил.

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

          Мы продолжаем публиковать лекции Натальи Васильевой, старшего научного сотрудника HP Labs и руководителя HP Labs Russia. Наталья Сергеевна читала курс, посвящённый анализу изображений, в петербургском Computer Science Center, который создан по совместной инициативе Школы анализа данных Яндекса, JetBrains и CS-клуба.



          Всего в программе — девять лекций. Первая из них уже была опубликована. В ней рассказывалось о том, в каких областях встречается анализ изображений, его перспективах, а также о том, как устроено наше с вами зрение. Вторая лекция посвящена основам обработки изображений. Речь пойдет о пространственной и частотной области, преобразовании Фурье, построении гистограмм, фильтре Гаусса. Под катом — слайды, план и дословная расшифровка лекции.
          Читать дальше →
          • +45
          • 52.6k
          • 9
        • Deep Learning, NLP, and Representations

          Предлагаю читателям «Хабрахабра» перевод поста «Deep Learning, NLP, and Representations» крутого Кристофера Олаха. Иллюстрации оттуда же.

          В последние годы методы, использующие глубокое обучение нейросетей (deep neural networks), заняли ведущее положение в распознавании образов. Благодаря им планка для качества методов компьютерного зрения значительно поднялась. В ту же сторону движется и распознавание речи.

          Результаты результатами, но почему они так круто решают задачи?



          В посте освещено несколько впечатляющих результатов применения глубоких нейронных сетей в обработке естественного языка (Natural Language Processing; NLP). Таким образом я надеюсь доходчиво изложить один из ответов на вопрос, почему глубокие нейросети работают.
          Вглубь по кроличьей норе
        • Установка и запуск Android-приложений на Linux

          image

          Как известно, многие Android-приложения можно нативно запускать на Chrome OS благодаря библиотеке Chrome App Runtime.

          С помощью расширений chromeos-apk и ARChon запуск Android APK стал возможен и на других ОС.

          В этой публикации я расскажу, как установить произвольное Android-приложение на Ubuntu 14.04.
          Читать дальше →
        • Устройство и работа портов ввода-вывода микроконтроллеров AVR. Часть 1

          Работа портов ввода/вывода

          Изучив данный материал, в котором все очень детально и подробно описано с большим количеством примеров, вы сможете легко овладеть и программировать порты ввода/вывода микроконтроллеров AVR.



          Пример будем рассматривать на микроконтроллере ATMega8.

          Программу писать будем в Atmel Studio 6.0.

          Эмулировать схему будем в Proteus 7 Professional.

          С внешним миром микроконтроллер общается через порты ввода вывода. Схема порта ввода вывода указана в даташите:

          image

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

          image

          Pxn – имя ножки порта микроконтроллера, где x буква порта (A, B, C или D), n номер разряда порта (7… 0).
          Cpin — паразитная емкость порта.
          VCC — напряжение питания.
          Rpu — отключаемый нагрузочный верхний резистор (pull-up).
          PORTxn — бит n регистра PORTx.
          PINxn — бит n регистра PINx.
          DDRxn — бит n регистра DDRx.
          Читать дальше →
        • 100 ресурсов для технологических предпринимателей

          • Translation


          На сегодняшний день существенное внимание уделяется советам для тех, кто занимается технологическими стартапами, но в большей степени нам бы пригодились ресурсы, сервисы и все, что помогает создавать, продавать и развиваться. Именно в этом и заключается суть нашей (дополненной и адаптированной) подборки – никаких советов, только инструментарий.
          Читать дальше →
          • +26
          • 47.2k
          • 3
        • Ресайз картинок в браузере. Все очень плохо

            Если вы когда-нибудь сталкивались с задачей ресайза картинок в браузере, то вы наверное знаете, что это очень просто. В любом современном браузере есть такой элемент, как холст (<canvas>). На него можно нанести изображение нужных размеров. Пять строчек кода и картинка готова:

            function resize(img, w, h) {
              var canvas = document.createElement('canvas');
              canvas.width = w;
              canvas.height = h;
              canvas.getContext('2d').drawImage(img, 0, 0, w, h);
              return canvas;
            }
            

            Из холста картинку можно сохранить в JPEG и, например, отправить на сервер. Можно было на этом закончить статью, но сперва давайте взглянем на результат. Если вы поставите рядом такой холст и обычный элемент <img>, в который загружена та же картинка (исходник, 4 Мб), то вы увидите разницу.

            img
            Читать дальше →
          • Искусственный рассвет

            Началось всё год назад. Перед Новым 2014 годом несколько пришел в упадок жизненный тонус. Процесс самокопания привел к следующей мысли:



            — А, что ж так темно-то, Господи? © День радио.

            Впрочем, для человека, живущего зимой по летнему времени — мысль вполне естественная.
            Что же делать?
          • DLNA-сервер для дома и семьи

            Как-то так сложилось, что тег DLNA сервер чаще встречается в постах-вопросах, чем в ответах. И если в вопросах установки на домашний Windows-ПК какой-то пользовательский опыт накоплен, то определиться с выбором ПО для домашнего сервера/NAS-а/медиацентра — оказалось непросто. Распределившись по песочницам народ обособленно решает проблемы каждой программы в отдельности. А понять что из них чего стоит и нужно ли оно вообще — лично мне не удалось.

            И вот, я вооружившись ссылкой с Википедии Как выбрать DLNA-сервер под Windows, Mac OS X или Linux — опробовал почти всё, что есть под Linux.

            Читать дальше →
          • Настройка VPN-сервера SoftEtherVPN под Linux

            • Tutorial

                  Как уже писалось на хабре, буквально в начале января сего года под лицензию GPL2 перешел очень интересный и, в своем роде, уникальный проект — SoftEther VPN. Написали его студенты японского University of Tsukuba. Данный продукт позиционирует себя как VPN-сервер с поддержкой огромного количества туннельных протоколов: L2TP, L2TP/IPsec, L2TPv3/IPsec, MS-SSTP, EtherIP/IPsec, OpenVPN, SSL-VPN (собственной разработки), L2VPN, а также такие хитрые штуки как туннелирование через ICMP и DNS. Поддерживает туннелирование как на третьем, так и на втором уровне, умеет VLAN и IPv6. Работает практически на всех известных платформах (даже ARM и MIPS) и к тому же не требует рутовых прав. С полной спецификацией можно ознакомиться вот тут. Если честно, когда я увидел список возможностей этой проги — я просто не поверил своим глазам и подумал: «Если ЭТО работает, то я ДОЛЖЕН это потестить!»
                  Эта статья будет описывать процесс установки и настройки SoftEther VPN Server под Линукс. В следующей статье постараюсь нарисовать красивые сравнительные графики производительности.
            Читать дальше →
          • Управляем ЖК дисплеем HD44780 с помощью ассемблера

            В университете на одном профильном предмете начали изучать стенд на основе микроконтроллера МК-51, дисплея HD44780, клавиатуры. Все это дело программируется через COM порт с помощью ассемблера. На тот момент я изучат микроконтроллеры семейства AVR (а именно Atmega8), поэтому появилось желание научиться инициализировать и выводить на экран какую-нибудь информацию с помощью ассемблера без применения библиотек. После продолжительных поисков нашел только то, как дисплей запрограммировать на языке C с помощью библиотек, в которых не совсем понятно, что происходит. Поэтому было принято решение написать код самому, с использованием ассемблерных команд. Дисплей 0802, две строки.
            Читать дальше →
          • Как оказалось, знают все, а понимают не все. Транзакции в mysql и SELECT FOR UPDATE

            По долгу службы мне приходится иногда проводить собеседования на позицию "[старший|младший] разработчик python/django", «тимлид». К моему великому удивлению я обнаружил, что 9 из 10 соискателей, в резюме которых значатся слова " Mysql/Innodb/transactions/triggers/stored proc etc.", абсолютно ничего не могут рассказать о своем прошлом опыте работы с ними. Ни одного описания варианта использования, к сожалению, я так и не получил.
            Читать дальше →
          • Сверхбыстрое распознавание речи без серверов на реальном примере

            • Tutorial

            В этой статье я подробно расскажу и покажу, как правильно и быстро прикрутить распознавание русской речи на движке Pocketsphinx (для iOS порт OpenEars) на реальном Hello World примере управления домашней техникой.
            Почему именно домашней техникой? Да потому что благодаря такому примеру можно оценить ту скорость и точность, которой можно добиться при использовании полностью локального распознавания речи без серверов типа Google ASR или Яндекс SpeechKit.
            К статье я также прилагаю все исходники программы и саму сборку под Android.

            Прикручиваем Pocketsphinx к своему Андроиду
          • Scala. Всем выйти из сумрака!

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

              И здравствуйте!

              Сегодня мы поговорим о неявном в языке Scala. Кто еще не догадался — речь пойдет об implicit преобразованиях, параметрах, классах и иже с ними.Все новички, особенно любители питона с зеновским Explicit is better than Implicit, обычно впадают в кататонический ступор при виде подкапотной магии, творящейся в Scala. Весь компилятор и принципы в целом охватить за одну статью удастся вряд ли, но ведь дорогу осилит идущий?
              Вот мы и пойдем
            • Пост о маленьких видеоиграх

                Привет, друзья. В этом посте мне бы хотелось рассказать, как я писал маленькие HTML5-игры для конкурса js13k, какие подводные камни повстречались на этом тернистом пути, и что получилось в результате.

                Подводные камни на тернистом пути
                (Подводные камни на тернистом пути — это русло пересыхающей реки, например. Летом в нем растет всякая трава и другие вегетарианские штуки, а осенью начинаются дожди, и всё уходит под воду. Получается терновник вместе с подводными камнями, очень метафорично и травмоопасно.)

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

                Но сначала 77 слов про js13k

                Читать дальше, там самое интересное же
              • Linux: кнопки, светодиоды и GPIO

                Введение


                Начиная с версии 2.6.26 (кажется) у Linux появляется стандартный интерфейс для работы с GPIO через sysfs. В оригинале прочитать об этом можно в [LGPIO00]. Я попытаюсь пересказать своими словами содержимое этого документа.

                Главной точкой работы с GPIO является директория /sys/class/gpio. Если вы загляните в нее, то увидите два файла: export и unexport. Сразу после загрузки системы, все линии GPIO принадлежат ядру и использовать их в своих программах просто так не получится. Для этого, линию GPIO нужно экспортировать, записав её номер в файл export. Например, команда: echo 8 > /sys/class/gpio/export – сообщает ядру, что мы хотим использовать GPIO8. Перевод каретки '\n' и символ окончания строки '\0' – не обязательны: код на языке C: write(fd, “8”, 1); — отработает точно так же.
                Читать дальше →
              • Групповой заказ печатных плат — мифы и реальность



                  Я хотел организовать сообщество электронщиков-любителей, собирать у них проекты плат, объединять их в групповые заготовки и заказывать на производстве. Суть идеи очевидна — из-за того, что подготовка производства делится на всех получается приличная экономия. Даже если накинуть небольшие комиссионные расходы за организацию. Думаю, многих электронщиков посещали мысли о создании такого сервиса.

                  Жизнь жестоко проучила меня. На деле необходимый минимум ограничений для обеспечении ощутимой выгоды оказался ГОРАЗДО больше чем я ожидал. В итоге у меня ничего не получилось. Мы, конечно, собрали и запустили один заказ. Все финансовые выкладки и технические тонкости под катом.
                  Читать дальше →
                • mCube: миниатюрный акселерометр нового типа, который может превратить в фитнес-трекер даже одежду



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

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

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