• Только пользователи привыкли к гигантским облакам от корпораций, как появилось маленькое, уютное и «домашнее» облако — Microsoft Azure Stack. Осенью мы представили свой новый инструмент, который позволит построить собственное облако с сервисами Azure в собственном дата-центре. В рамках поддержки нового продукта 30 ноября состоится конференция «Платформа цифрового бизнеса», а пока мы разберем, чем примечателен Azure Stack, и немножко погрузимся в кодинг.
    Подробности – под катом
  • WI-FI в метро: архитектура сети и подземные камни


      Всего за пару лет поездка москвича в метро перестала быть ежедневной рутиной. Если раньше единственным развлечением в подземке были чтение книг, прессы и MP3-плеер, то теперь к ним добавились онлайн-шоппинг, просмотр сериалов, деловая переписка, даже знакомства в Tinder и квесты. А все благодаря появлению в метро бесплатной сети Wi-Fi. Порядка 80% москвичей регулярно подключаются к сети MT_FREE в метро, не задумываясь, как это работает и чьими силами это сделано. Бытует мнение, что Wi-Fi в метро “провел” сам метрополитен, но это не совсем верно. Беспроводная сеть — это проект “МаксимаТелеком”. Для компании это был первый опыт строительства высокоскоростной сети Wi-Fi с уникальными в мировой практике инженерными и техническими решениями. В этом посте мы расскажем, как организована сеть Wi-Fi в метро Москвы.
       
      Читать дальше →
    • Руководство по работе с Redux

      • Перевод
      • Tutorial
      Сегодня Redux — это одно из наиболее интересных явлений мира JavaScript. Он выделяется из сотни библиотек и фреймворков тем, что грамотно решает множество разных вопросов путем введения простой и предсказуемой модели состояний, уклоне на функциональное программирование и неизменяемые данные, предоставления компактного API. Что ещё нужно для счастья? Redux — библиотека очень маленькая, и выучить её API не сложно. Но у многих людей происходит своеобразный разрыв шаблона — небольшое количество компонентов и добровольные ограничения чистых функций и неизменяемых данных могут показаться неоправданным принуждением. Каким именно образом работать в таких условиях?

      В этом руководстве мы рассмотрим создание с нуля full-stack приложения с использованием Redux и Immutable-js. Применив подход TDD, пройдём все этапы конструирования Node+Redux бэкенда и React+Redux фронтенда приложения. Помимо этого мы будем использовать такие инструменты, как ES6, Babel, Socket.io, Webpack и Mocha. Набор весьма любопытный, и вы мигом его освоите!
      Читать дальше →
    • Исследуем «Ревизор» Роскомнадзора

        ФСБшник хороший
        Aqua Mine
        Ревизор — программно±аппаратный комплекс для мониторинга доступа к сайтам из реестра со стороны провайдеров — берет свое начало в октябре 2015 года, когда компания «МФИ Софт», та же компания, что сделала СОРМы, выиграла тендер на разработку ПО за 84 миллиона рублей. Согласно условиям тендера, разработчик должен был предоставить работоспособное ПО под Windows и Linux и 700 аппаратных «Агентов» в срок до 14.12.2015, всего через 2.5 месяца, и, похоже, все было готово даже на пару недель раньше дедлайна. Провайдерам в добровольно-принудительном порядке уже в начале декабря предлагалось установить один из трех вариантов Ревизора: в виде образа виртуальной машины VMWare, основанной на OpenWRT 14.07, в виде программы-сервиса под Windows, либо же в виде железного «Агента», который представлял из себя маршрутизатор TP-Link MR3020 с установленным на него OpenWRT и необходимым ПО. Многие провайдеры отказывались от установки комплекса из-за того, что он не сертифицирован, а использоваться будет только им во вред, а другим устройств просто не досталось, и им пришлось установить софтовую версию.

        Итак, у меня в руках последняя версия VMWare-образа и exe-файла Ревизора. Давайте же посмотрим, что внутри!
        image
        Читать дальше →
      • Эффективное кодирование видео в Linux c Nvidia NVENC: часть 2, дополнительная



          В первой части я рассказал о кодировании видео в Linux с использованием Nvidia NVENC. Как уже упоминалось ранее, Nvidia для десктопных видеокарт ограничивает количество потоков кодирования до двух сессий на систему. Данная часть посвящена борьбе с этим ограничением.
          Читать дальше →
        • Эффективное кодирование видео в Linux c Nvidia NVENC: часть 1, общая


            Эта статья содержит практические сведения, полезные для организации эффективного кодирования видео на Linux с использованием последних видеопроцессоров Nvidia.
            Чем не является эта статья:
            • Не является пособием по выбору технологии аппаратного кодирования или агитацией в пользу описываемой. Кроме Nvidia NVENC есть Intel QuickSync, есть AMD VCE, наверняка есть и ещё что-то. Все эти технологии имеют разные характеристики, которые трудно даже уложить на одну шкалу для сравнения. Тем не менее, я сделал свой выбор.
            • Не является претензией на самый быстрый/качественный способ кодирования. По причинам, указанным выше.
            Читать дальше →
          • Spotify: формирование интерфейса пользователя

              17 ноября прошлого года мы провели вторую конференцию мобильных разработчиков MBLTdev, на которой собрали экспертов из Spotify, Runkeeper, Wunderlist, Rambler, Soundcloud, Kaspersky Lab, Parallels и многих других мировых IT-компаний. Мы решили рассказать о наиболее ярких и интересных докладах с конференции. И начнем с презентации iOS-разработчика шведской компании Spotify Гектора Зарате о формировании интерфейса пользователя.


              Презентация
              Читать дальше →
            • Захват пакетов в Linux на скорости десятки миллионов пакетов в секунду без использования сторонних библиотек

                Моя статья расскажет Вам как принять 10 миллионов пакетов в секунду без использования таких библиотек как Netmap, PF_RING, DPDK и прочие. Делать мы это будем силами обычного Линукс ядра версии 3.16 и некоторого количества кода на С и С++.



                Сначала я хотел бы поделиться парой слов о том, как работает pcap — общеизвестный способ захвата пакетов. Он используется в таких популярных утилитах как iftop, tcpdump, arpwatch. Кроме этого, он отличается очень высокой нагрузкой на процессор.

                Итак, Вы открыли им интерфейс и ждете пакетов от него используя обычный подход — bind/recv. Ядро в свою очередь получает данные из сетевой карты и сохраняет в пространстве ядра, после этого оно обнаруживает, что пользователь хочет получить его в юзер спейсе и передает через аргумент команды recv, адрес буфера куда эти данные положить. Ядро покорно копирует данные (уже второй раз!). Выходит довольно сложно, но это не все проблемы pcap.

                Кроме этого, вспомним, что recv — это системный вызов и вызываем мы его на каждый пакет приходящий на интерфейс, системные вызовы обычно очень быстры, но скорости современных 10GE интерфейсов (до 14.6 миллионов вызовов секунду) приводят к тому, что даже легкий вызов становится очень затратным для системы исключительно по причине частоты вызовов.

                Также стоит отметить, что у нас на сервере обычно более 2х логических ядер. И данные могут прилететь на любое их них! А приложение, которое принимает данные силами pcap использует одно ядро. Вот тут у нас включаются блокировки на стороне ядра и кардинально замедляют процесс захвата — теперь мы занимаемся не только копированием памяти/обработкой пакетов, а ждем освобождения блокировок, занятых другими ядрами. Поверьте, на блокировки может зачастую уйти до 90% процессорных ресурсов всего сервера.

                Хороший списочек проблем? Итак, мы их все геройски попробуем решить!
                Читать дальше →
              • GitHub Cheat Sheet

                  Привет, Хабр! В очередной раз на глаза попался очень интересный репозиторий. Эта шпаргалка по самым тайным и функциональным возможностям Git и GitHub появилась благодаря выступлениям Зака Холмана одну из статей которого я уже переводил Git and GitHub Secrets на Aloha Ruby Conference 2012 и More Git and GitHub Secrets на WDCNZ 2013. Стоит сказать о том, что проект набрал свыше 1000 старов менее чем за 12 часов. Приведу несколько примеров:

                  Hub — Git Wrapper


                  Hub — это оболочка над Git, которая сокращает потраченное время на лишнее нажатии клавиш при работе с Git.
                  $ hub clone tiimgreen/toc
                  > git clone https://github.com/tiimgreen/toc.git
                  

                  На hub можно сделать алиас git и все будет выглядеть еще удобнее:
                  # Remote
                  $ git remote add rtomayko
                  > git remote add rtomayko git://github.com/rtomayko/CURRENT_REPO.git
                  
                  #Fetch
                  $ git fetch mislav
                  > git remote add mislav git://github.com/mislav/REPO.git
                  
                  #Fork
                  $ git fork
                  [ repo forked on GitHub ]
                  > git remote add -f YOUR_USER git@github.com:YOUR_USER/CURRENT_REPO.git
                  


                  Читать дальше →
                  • +40
                  • 16,9k
                  • 8
                • Документируем код эффективно при помощи Doxygen

                  • Tutorial


                  Данная статья входит в получившийся цикл статей о системе документирования Doxygen:

                  1. Документируем код эффективно при помощи Doxygen
                  2. Оформление документации в Doxygen
                  3. Построение диаграмм и графов в Doxygen

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

                  В этой статье мы сначала познакомимся с самой системой и её возможностями, затем разберёмся с её установкой и базовыми принципами работы, и, наконец, завершим знакомство рассмотрением различных примеров документации, примеров того, как следует документировать те или иные части кода. Словом, познакомимся со всем тем, что позволит вам освоиться и начать работать с этой замечательной системой.
                  Читать дальше →
                • Знакомство с GStreamer: элементы и контейнеры

                    image

                    И снова здравствуй, хабраюзер, интересующийся фреймворком GStreamer. В прошлой статье было рассказано о том, как инициализировать библиотеку для полноценной работы с ней. А сегодня мы разберем процесс создания элементов и компоновки конвейера. В качестве практического материала будет создан аудиоплеер простенький копир файлов (вроде cp) — да-да, GStreamer настолько суров, что им можно чуть ли не пиво открывать. Итак, вперед!
                    Читать дальше →
                  • SIVIS — компактный видеостример с HDMI камер в интернет

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



                      Читать дальше →
                    • WoodyMac — деревянный конструктор будущего

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

                        И если оставить в стороне «премиальное» на те времена Lego и его китайские заменители из 90-х, остается еще одна ниша — деревянные конструкторы.

                        Кроме, собственно, классических кубиков — у меня сохранились отчетливые воспоминания о конструкторе «Дом»

                        image

                        Однако, прогресс неумолимо приблизился и к ним…

                        Читать дальше →
                      • Японцы разработали новый тип топливных водородных элементов



                          Научно-исследовательская группа, в которой участвуют специалисты из трех организаций (Rohm, Aquafairy Corp., Киотский Университет), разработала легкий и практичный топливный водородный элемент. Эти элементы могут служить для зарядки смартфонов и прочих портативных устройств. По сравнению с прочими топливными элементами и аккумуляторами новое изобретение обладает рядом преимуществ.

                          Читать дальше →
                        • Потоковое видео в Android

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


                            Читать дальше →
                          • Ищем музыку на z-music.org с помощью bash

                              Понятно, что «жертвой» сегодняшнего эксперимента будет z-music.org. На этом сайте есть возможность найти песню, послушать и скачать её.
                              Цель — написать bash скрипт для поиска музыки, используя «джентльменский набор» sed, awk и grep. Ну и плюс немного curl или wget по вкусу.
                              Пишем bash script
                            • Cистемы электронного голосования КОИБ и КЭГ

                              Центризбирком завершает 1 ноября приемку опытной партии новых электронных урн для голосования. Комплексы электронного голосования будут установлены на избирательных участках в восьми субъектах Российской Федерации

                              т.е 10 % участков по всей стране будут оборудованы электронными комплексами обработки избирательных бюллетеней — КОИБами, таких комплексов будет около 20 тысяч. Один КОИБ со сканерами и принтером обходится бюджету в 110 тыс. руб
                              Читать дальше →
                            • Во что верит хабраюзер?

                                 

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

                                Во что верит хабраюзер?

                                • 22.1%Христианство296
                                • 1.6%Иудаизм22
                                • 2.9%Ислам39
                                • 4.7%Буддизм64
                                • 34.5%Атеизм461
                                • 17.4%Агностицизм233
                                • 16.5%Другое221
                              • Бюджетный неттоп в качестве HTPC

                                  У каждого любителя посмотреть хорошее и качественное кино несомненно встает вопрос: как и чем это кино воспроизводить. Сейчас на рынке присутствует огромное количество мультимедийных плееров разной ценовой категории, с разным дизайном, количеством поддерживаемых форматов и других “плюшек” в виде встроенного торрент-клиента и т.д. Но, как правило, достойные плееры выходят за рамки бюджетных устройств и при этом всем они все же не отличаются гибкостью в настройке системы. Но как же тогда поступить? Мы плавно подошли к разговору о HTPC.


                                  Читать дальше →
                                • Cтриминг видео для iPad/iPod/iPhone на Bash-е — дёшево и сердито

                                    Здравствуйте, уважаемые хаброжители!

                                    В этой короткой статье я хочу поделиться опытом создания системы онлайн-вещания для устройств «одной фруктовой компании» :).



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