• VPN с человеческим лицом существует?

      Нет худа без добра! В очередной раз народная мудрость подтверждается, но только в этот раз с помощью осточертевшего коронавируса. Всех перевели на удалёнку, открыто много подписочного контента и, как следствие, в телекоме произошёл взрывной рост трафика. По разным оценкам, трафик в пользовательских сегментах уже вырос процентов на 80% и не думает останавливаться. Трафик попёр настолько сильно, что в нескольких странах Netflix, Youtube и прочие стриминговые сервисы сначала просили ограничить, а теперь им фактически запрещают передачу контента в HD качестве. Ибо пользователи настолько активно взялись за работу из дома, что места для развлечений в каналах у операторов просто не осталось.


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


      И вот тут стоит задать себе вопрос — а в чём же сложность взять и организовать удобный VPN-сервис, а затем просто поддерживать его? Технология придумана далеко не вчера, все варианты давно известны, так почему же вокруг неё столько разговоров?



      Но дабы не писать миллион первую статью про тонкости настройки OpenVPN, IPSec и прочих, давайте подойдём с другой стороны — а бывает так, что VPN делается быстро, удобно и бесплатно? Вот чтобы действительно десяток кликов — и работает как часы. И site-to-site, чтобы офисы связать, и site-to-point, чтобы удалёнщикам было быстро и удобно.


      Спойлер — бывает.


      Пруфы и рассуждения — под катом.

      Читать дальше →
    • Нотной грамоте учат неправильно*

        ФейспалмПреподаватели готовы разделить с вами все таинства музыкальной теории но не раньше, чем вы научитесь читать эти закорючки самостоятельно.


        Предполагается, что студент должен страдать самостоятельно освоить ноты, путем многократного повторения. И вообще, если «ниасилил», значит у тебя нет Таланта — иди мести двор.


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


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


        * Дисклеймер

        Прошу прощения, если заголовок статьи показался вам чересчур дерзким и провокационным. Таковым он, в общем-то, и является.


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


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


        Эффективность я оценивал исключительно на себе, поскольку сей субъект оказался самым доступным для исследования.

        Читать дальше →
      • Английские слова, которые хочется перевести неправильно

        • Tutorial


        Помните, как мы учили английские слова, проводя параллели в их произношении с нашим языком? Ну там, локализация — локализейшн (localisation) или объект — обджект (object). Классно, когда все так совпадает. Но есть ряд слов-предателей этого чудного принципа созвучий. Ряд слов, которые звучат или пишутся похоже, но означают другое. В лингвистике это называется “межъязыковые омонимы и паронимы” или же “ложные друзья переводчика”. Давайте соберем топ самых неожиданных несовпадений.

        Accurate — точный, чёткий. Но никак не аккуратный. И даже человека так описать нельзя.
        Читать дальше →
      • Приручение дикой зверушки: добавляем поддержку Homekit в «умную розетку» Redmond SkyPlug RSP-100S

        • Tutorial


        Предыстория


        Впервые про данную розетку я узнал из статьи Умная розетка Redmond SkyPlug RSP-100S Анализ конструкции и схемы электрической принципиальной. Выявление недостатков. Помню, что прочитав ее, в первую очередь заинтересовался схемой бестрансформаторного источника питания и тем, насколько компактно размещены элементы в корпусе розетки при том, что внутри полноценное реле, а не, скажем, симистор.

        О каких-то попытках перепрограммировать Bluetooth-модуль и речи не было, тк программирование BLE устройств исторически было делом очень непростым. Вот пример: Разработка IoT устройств с использованием Bluetooth LE, явно не DIY уровень.

        Однако, за прошедший год ситуация кардинальным образом изменилась…
        Читать дальше →
      • Смотрите в оба или немного об инфографике



          Сегодня, в век информационных технологий и коммуникаций люди перестают читать. Люди перестают читать художественную литературу, газеты, журналы и уж тем более научные публикации. Если вдруг некто захотел узнать что-то новое, он залез в интернет, открыл статью и не стал её читать в полном смысле этого слова. Человек «сканирует» информацию глазами, находит интересные для себя моменты, бегло читает их, бежит дальше и вскоре все забывает. Как помочь человеку узнать что-то новое? Как сделать это интереснее? И как помочь запомнить хоть что-то из увиденного? Об этом дальше, но для начала небольшое видео.

          Начать просмотр
          • +5
          • 19.5k
          • 1
        • Беспроводной VR и захват движения на оборудовании HTC Vive

          • Tutorial

          Предисловие


          Раньше я уже писал о своем проекте impulse — костюме захвата движений на базе инерциальных сенсоров. Прежде всего, хочу поблагодарить всех, кто оставил свой отзыв, так или иначе, помог проекту. Должен сказать, что особого развития проект не получил, проблема дрейфов не была решена 9-осевыми датчиками, но компенсации с помощью цифрового компаса значительно помогли, также использование простого оптического трекинга (например 2 светодиодных маркера на голове) позволяет получить среднее значения дрейфа. Но сегодня не об этом. Я хочу рассказать об относительно недорогом способе захвата движения для систем виртуальной реальности на базе HTC Vive без колхоза и паяльника, а также о том, как избавиться от провода, который неизбежно соединяет голову и компьютер, что создает множество неудобств. Еще расскажу, как удалось добиться области трекинга в ~80 метров кв.
          Читать дальше →
        • Стек, который позволил Medium обеспечить чтение на 2.6 тысячелетия

          • Translation

          Предлагаю общественности мой перевод статьи Dan Pupius'а об архитектура сервиса Medium и используемых технологиях. Хочу особо отметить, что статья является переводом, поэтому местоимение "я", используемое в тексте далее относится к автору оригинального текста, а не к переводчику.


          Фон


          Medium это сеть. Это место, где обмениваются историями и идеями, которые важны — место, где вы развиваетесь, и где люди провели 1.4 миллиарда минут — 2.6 тысячелетия.


          У нас более 25 миллионов уникальных читателей в месяц, и каждую неделю публикуются десятки тысяч постов. Но мы хотим, чтобы на Medium мерилом успеха было не количество просмотров, а точки зрения. Чтобы значение имело качество идеи, а не квалификация автора. Чтобы Medium был местом, где обсуждения развивают идеи, а слова по-прежнему важны.


          Я руковожу инженерной командой. Раньше я работал инженером в Google, где я работал над Google+ и Gmail, а также был одним из со-основателей проекта Closure. В прошлой жизни я гонял на сноуборде, прыгал из самолёта и жил в джунглях.

          Читать дальше →
        • Пишем GraphQL API сервер на Yii2 с клиентом на Polymer + Apollo. Часть 1. Сервер

          Часть 1. Сервер
          Часть 2. Клиент
          Часть 3. Мутации
          Часть 4. Валидация. Выводы

          Статья рассчитана на широкий круг читателей и требует лишь базовых знаний PHP и Javascript. Если вы занимались программированием и вам знакома аббревиатура API, то вы по адресу.

          Изначально статья предполагала лишь описание отличительных особенностей GraphQL и RESTful API, с которыми мы столкнулись на практике, но в итоге она вылилась в объемный туториал на несколько частей.
          Читать дальше →
        • BIM: как мы строим строителей на стройке

            По нашей примерной оценке, основанной на 20-летней практике, на земляных работах можно «потерять» до 50-60 % бюджета. На железобетоне и отделке точно 30 %. На ошибках перезаказа при коллизиях стоимость инженерки увеличивается примерно на 10 %. Именно по этой простой причине, когда «злой заказчик» внедряет BIM-модель здания, со всех сторон начинаются дикие крики и стоны.

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


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

            Что такое BIM-модель? Это трёхмерная модель здания, где все системы состыкованы и увязаны в одном едином плане. Поставили розетку в комнате — в общей смете тут же появилась новая розетка и соответствующий метраж кабеля. Погрешность такой модели по материалам — 2 %. На бумаге обычно берут запас 15 %, и излишки этого запаса отчаянно «теряются».

            Давайте лучше покажу примеры, чем буду рассказывать.
            Читать дальше →
          • Информационное моделирование зданий (BIM): как построить стадион (или другое здание) с первого раза и под контролем


              Пересечение CAD-чертежей и актуальной оперативной информации.

              Представьте, что у вас 20 строительных площадок, и на каждой что-то каждый день происходит. Вы, естественно, хотите знать, что, как и почему. Раньше вы обходили их ногами, потом стали пользоваться данными веб-камер, а теперь стандартом в индустрии становится информационное моделирование зданий/сооружений, или BIM (Building Information Modelling). Это проектирование, строительство и эксплуатация в одной IDE. Собственно, такой подход уже стал государственным в Великобритании, Сингапуре, Норвегии и Китае. У нас же BIM пока применяется для того, чтобы на этапе предпроекта или проекта визуализировать то, что собираются построить. А ещё сейчас делают первые шаги, чтобы ловить проблемы в момент появления, а не когда о них доложат.

              Естественно, было бы странно, если бы всё то, что касается финансов и начинается со слов «очень наглядный», не встречалось бы в штыки.

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

              Или, например, вы строите стадион.
              Читать дальше →
            • Игры для программистов, часть вторая

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

                Несмотря на опасность, что вновь возникнет спор относительно названия, я решил оставить его прежним, дабы сохранить преемственность. Можно воспринимать его как «игры для тех, кто имеет способность к программированию», или ещё как-нибудь в этом духе. Однако я полагаю, что вы читаете этот пост не ради рассуждений о семантике, потому перейдём к сути.

                Infinifactory


                image
                И что же это за майнкрафт такой?
              • Что нового в nginx?



                  Максим Дунин (Nginx, Inc.)


                  Ведущий: Я представляю вашему вниманию следующего докладчика. Встречайте – Максим Дунин. И он расскажет о том, что же нового появилось в технологии под названием nginx.

                  Дисклеймер: речь пойдёт о нововведениях в 2016 году. Можно подумать, что это давно, но информация об изменениях в changelog от автора этих самых изменений полезна всегда!

                  Максим Дунин: Добрый день! Я Максим Дунин. Как вы, наверное, знаете, я разработчик nginx. Сегодня буду вам читать changelog вслух и с выражением. Для начала давайте определимся, с какого именно места мы будем читать changelog. Посмотрим на статистику.


                  Читать дальше →
                • GitLab CI для непрерывной интеграции и доставки в production. Часть 2: преодолевая трудности


                    Эта статья продолжает первую часть, содержащую подробное описание нашего пайплайна:

                    image

                    … и рассказывает о проблемах, с которыми мы столкнулись для его реализации, и их решении.

                    Итак, я остановился на том, что созданный .gitlab-ci.yml не позволяет реализовать пайплайн в полной мере, поскольку GitLab CI не предоставляет директив для разделения задач по пользователям и для описания зависимостей выполнения задач от статуса выполнения других задач, а также не позволяет разрешить модификацию .gitlab-ci.yml только для отдельных пользователей.
                    Читать дальше →
                  • Рефакторинг кода в обеденный перерыв: знакомство с сodemod-скриптами

                    • Translation


                    Думаю, что рефакторинг проекта – тема, близкая каждому разработчику. Зачастую мы сталкиваемся с проблемами, когда нам перестает хватать средств IDE и регулярных выражений, и тогда на помощь приходят средства вроде тех, что описаны в этом посте. Codemod скрипты – это очень мощный инструмент. После его освоения станет ясно, что ваш рефакторинг уже никогда уже не будет прежним. Поэтому я перевел этот пост для нашего хабраблога. Желаю приятного прочтения.


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


                    За последние годы JavaScript изменился до неузнаваемости. Развитие этого языка привело к тому, что была изменена даже простейшая задача по объявлению переменных. В ES6 появились let и const, стрелочные функции и множество других новшеств, каждое из которых приносит пользу разработчикам.


                    При создании и поддержке в рабочем состоянии кода, призванного выдерживать проверку временем, растёт нагрузка на разработчиков. Из этого поста вы узнаете, как можно автоматизировать задачи по широкомасштабному рефакторингу кода с использованием Codemod-скриптов и инструмента jscodeshift, что позволит вам, например, легко обновлять свой код для использования новых возможностей языка.

                    Читать дальше →
                    • +62
                    • 17.6k
                    • 5
                  • GitLab CI: ветки больше не нужны



                      Неделя GitLab CI на Хабре! В 2015 году мы уже писали о встроенной в GitLab системе Continuous Integration. GitLab часто ругают за предательство идеалов UNIX way и интеграцию слишком большого количества функций в одно приложение. Зато насколько удобно пользоваться этими функциями! За те полтора года, что прошли с момента нашей публикации, ребята сделали «Environments», добавили возможность сделать кнопку «раскатать на прод» и множество других улучшений. Под катом я расскажу о накопленном опыте, как небольшим командам автоматически собирать и выкладывать на прод/стейдж не только скрипты Voximplant для телефонии, но и другие проекты — сайты и сервисы.
                      Читать дальше →
                    • Создание The Blacksmith: концепт и художественное оформление

                      • Translation
                      В рамках официального сотрудничества с компанией Unity мы будем публиковать переводы статей о создании проектов на Unity 5.
                      В этот раз речь пойдет об источниках вдохновения для создания ролика The Blacksmith (Кузнец), мы покажем примеры концепт-арта и поделимся интересными наблюдениями и советами.



                      Подробнее
                      • +20
                      • 23.7k
                      • 4
                    • «База знаний»: 100 практических материалов на тему звука, аудиотехники и не только

                        Сегодня мы подготовили мегаподборку из материалов нашего «Мира Hi-Fi». Здесь собраны руководства, практические советы по выбору аудиотехники и советы по эксплуатации.

                        Читать дальше →
                      • Gixy — open source от Яндекса, который сделает конфигурирование Nginx безопасным

                          Nginx, однозначно, один из крутейших веб-серверов. Однако, будучи в меру простым, довольно расширяемым и производительным, он требует уважительного отношения к себе. Впрочем, это относится к почти любому ПО, от которого зависит безопасность и работоспособность сервиса. Признаюсь, нам нравится Nginx. В Яндексе он представлен огромным количеством инсталляций с разнообразной конфигурацией: от простых reverse proxy до полноценных приложений. Благодаря такому разнообразию у нас накопился некий опыт его [не]безопасного конфигурирования, которым мы хотим поделиться.



                          Но обо всем по порядку. Нас давно терзал вопрос безопасного конфигурирования Nginx, ведь он — полноправный кубик веб-приложения, а значит, и его конфигурация требует не меньшего контроля с нашей стороны, чем код самого приложения. В прошлом году нам стало очевидно, что этот процесс требует серьезной автоматизации. Так начался in-house проект Gixy, требования к которому мы обозначили следующим образом:

                          — быть простым;
                          — но расширяемым;
                          — с возможностью удобного встраивания в процессы тестирования;
                          — неплохо бы уметь резолвить инклюды;
                          — и работать с переменными;
                          — и про регулярные выражения не забыть.
                          Читать дальше →
                        • Репликация данных из MySQL в MongoDB

                          • Tutorial

                          Бывают случаи, когда нужно менять архитектуру системы на ходу. Возможно вы нашли узкое место в своем проекте или решили, что при текущем темпе роста в скором времени могут возникнуть сложности с масштабированием или отказоустойчивостью. Как раз для таких случаев существует Tungsten Replicator.
                          Tungsten Replicator — это бесплатное с открытым исходным кодом, приложение написанное на Java, расширяющее функционал репликации СУБД MySQL. Возможности Tungsten широки, это и мульти-мастер репликация, параллельная репликация, гетерогенная репликация данных между MySQL и Oracle, PostgreSQL, MongoDB. В данной статье будет рассматриваться гетерогенная репликация мастера MySQL с подчиненным сервером MongoDB, в качестве ОС будет выступать CentOS 6.5.
                          Читать дальше →