• Заворачиваем весь трафик ОС в Tor



      Все описанное в статье реализовано в виде инструмента Toroxy, доступного на GitHub
      В последнее время анонимность в сети является предметом горячих споров. Ни для кого не секрет, что данные о посещениях Интернет-ресурсов с локального устройства могут собираться на разных уровнях с целью построения «модели» пользователя, которая позже против него же и может быть использована (или могла бы). Поэтому не удивительно, что все большее количество активных пользователей Интернета становятся уверены в необходимости механизмов проксирования и анонимизации. В связи с этим появляется все больше новых VPN-клиентов, но, как показывает практика, далеко не всем из них по-настоящему можно доверять: то не все работает из коробки, то анонимизируется только HTTP-трафик, то качество реализации хромает, а то и вовсе разработчики грешат сливанием данных о своих пользователях.

      В этой статье мы попробуем собрать из ряда программных компонентов собственный инструмент с UI, который бы позволил полностью анонимизировать трафик локальной системы и не допустить утечек по «прослушиваемым» каналам ни на одном из этапов работы.
      Читать дальше →
    • Make C++ great again!.. in Tula

        Не так давно на базе нашего офиса мы провели бесплатный курс лекций «Современный и эффективный С++» и записали их на видео. Курс был рассчитан на недавно прибывших в наш коллектив программистов, стажеров и всех желающих. В этой статье мы хотели бы осветить цель данного курса, процесс подготовки к нему, подвести итоги. Надеемся, что для кого-то из вас наш курс лекций будет интересен и вы оцените наш труд. Желаем приятного просмотра докладов!

        Читать дальше →
      • Локальный запуск юнит-тестов в STM32CubeIDE под Windows

        Введение


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


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


        Существует три способа запуска юнит-тестов для встраиваемых платформ:

        Читать дальше →
        • +25
        • 5,9k
        • 4
      • C++ Enterprise Edition. Возможно ли?

        • Tutorial

        C++ Enterprise Edition


        Что такое "enterprise edition"


        c++ee


        Удивительно, но за все время моей работы в IT, я ни разу не слышал, чтобы кто-то говорил "enterprise edition" относительно языка программирования, кроме как для Java. Но ведь приложения для корпоративного сегмента люди пишут на многих языках программирования, и сущности, которыми оперируют программисты, если не идентичны, то схожи. И для c++ в частности, я бы хотел заполнить пробел enterpr'айзности, хотя бы рассказав об этом.

        Читать дальше →
      • Ардуино термометр & гигрометр с E-PAPER на nRF52832 — или о том, что забыли выпустить производители

          Приветствую всех читателей Habr! В своей очередной статье снова поведу речь о ARDUINO. Хочу поделиться с вами очередным своим проектом, реализованном на микроконтролере nRF52832. Это датчик температуры и влажности на sht20 | (даташит) c монохромным дисплеем на электронных чернилах(E-INK|E-PAPER), который является частью экосистемы MySensors.

          Читать дальше →
        • 12 принципов анимации в разработке видеоигр

          • Перевод
          image

          В то время, когда видеоигры ещё находились в эпохе Pac-Man, аниматоры студии Disney Фрэнк Томас и Олли Джонсон перечислили в своей книге 1981 года «The Illusion of Life: Disney Animation» то, что сегодня считается базовыми правилами анимации — 12 основных принципов.

          1. Сжатие и растяжение (Squash & stretch)
          2. Сценичность (Staging)
          3. Подготовка, или упреждение (Anticipation)
          4. Использование компоновок и прямого фазованного движения (Straight ahead & pose to pose)
          5. Сквозное движение (или доводка) и захлест действия (Follow-through & overlapping action)
          6. Смягчение начала и завершения движения (Slow in & slow out)
          7. Дуги (Arcs)
          8. Дополнительное действие (Secondary action)
          9. Привлекательность (Appeal)
          10. Расчёт времени (Timing)
          11. Преувеличение, утрирование (Exaggeration)
          12. Профессиональный рисунок (Solid drawing)

          Несмотря на то, что эти фундаментальные основы были придуманы ещё до распространения компьютерной графики и предназначались исключительно для рисуемых от руки двухмерных анимаций, они идеально подошли и к 3D-графике. Хоть связь некоторых из них с интерактивной средой не совсем очевидна, небольшое переосмысление помогает раскрыть их непреходящую ценность.

          Понимание этих основ анимации необходимо, поэтому нужно заново исследовать их через объектив видеоигровых анимаций.
          Читать дальше →
          • +8
          • 7,5k
          • 1
        • История блужданий по документации Haproxy, или на что стоит обратить внимание при его конфигурации

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

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


            Читать дальше →
            • +24
            • 8,7k
            • 3
          • STM32 bootloader DFU mode с использованием CubeMX. Инструкция пошаговая, step by step

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

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

            Предлагаемый материал содержит процедуру использования пакета CubeMX, «загружалки» DfuSeDemo и утилиты подготовки прошивки Dfu file manager, т. е. Мы абстрагируем наши «хотелки» от железки, да простят меня гуру макроассемблера и даташита.
            Читать дальше →
          • Равномерно распределяем точки по сфере в pytorch и tensorflow

            • Tutorial

            Этот текст написан для тех, кто интересуется глубоким обучением, кто хочет использовать разные методы библиотек pytorch и tensorflow для минимизации функции многих переменных, кому интересно научиться превращать последовательно выполняющуюся программу в выполняемые с помощью numpy векторизованные матричные вычисления. А ещё можно научиться делать мультфильм из данных, визуализированных с помощью PovRay и vapory.


            Читать дальше →
            • +32
            • 7,8k
            • 8
          • Qt 5.1 и корректный deployment в Windows

              Добрый день!
              Для меня он вышел не очень добрым, 10 часов из жизни потрачено в поисках решения на простой вопрос, но в конечном счете я его нашел, и сейчас поделюсь с вами.
              Итак, краткая предыстория.
              Один мой заказчик попросил разработать kiosk-mode приложение на Qt. И для начала, сделать версию для POS-терминала с ОС Windows XP.
              Ok, за неделю я что-то сверстал по приложенным макетам и попробовал отдать версию заказчику. Приложив Qt5Core.dll, Qt5Gui.dll, ну и прочие .dll используемых модулей Qt.
              «Failed to load platform plugin „windows“» сказала японскаяфинская бензопила.
              Читать дальше
            • Безопасный SOCKS5 прокси для Telegram за 1 Евро и 10 минут

              Не все прокси одинаково полезны. На волне новостей о блокировке мессенджера Телеграмм стало актуально поднимать свой SOCKS5 прокси, так как чужой использовать не безопасно — неизвестно, кому принадлежат серверы, какое ПО на них используется, и какие в нем присутствуют уязвимости. Кроме того, публичные прокси часто очень медленные, поскольку большое число клиентов одновременно «пытаются» его использовать, перегружая ресурсы сервера. Под катом инструкция по быстрой настройке приватного SOCKS5 прокси с аутентификацией за 1 евро и 10 минут времени и возможностью в дальнейшем расширить защиту сервера при помощи усиленной аутентификации.
              Читать дальше →
            • Изометрическая сортировка по глубине для подвижных платформ

              • Перевод

              Что мы будем создавать

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

              В этом туториале мы подробнее рассмотрим сортировку по глубине для изометрических уровней, потому что добавим ещё и подвижные платформы. Этот туториал — не введение в теорию изометрии и не посвящён коду. В нём мы будем разбираться в логике и теории, а не анализировать код. В качестве инструмента используется Unity, поэтому сортировка по глубине сводится к изменению sortingOrder спрайтов. В других фреймворках она может являться изменением порядка по оси Z или последовательности отрисовки.

              Для изучения основ теории изометрии прочитайте этот туториал. Код и структура кода соответствуют моему предыдущему изометрическому туториалу. Изучите его, если этот туториал покажется вам сложным, потому что в нём я сосредоточусь только на логике.
              Читать дальше →
              • +14
              • 4,8k
              • 2
            • Что ещё необходимо узнать про OpenCL C перед тем, как на нём писать

                Как было написано
                float4 val = (0, 0, 0, 0);

                Что хотел написать автор
                float4 val = (float4)(0, 0, 0, 0);

                Как нужно было написать
                float4 val = 0;


                Если Вы сталкивались с OpenCL или планируете столкнуться и не видите разницы между первым и вторым вариантом, а третий вызывает у Вас сомнения — «А скомпилируется ли вообще?» — добро пожаловать под кат, там много нюансов языка и совсем ничего про API и оптимизацию производительности.
                Читать дальше →
                • +43
                • 12,7k
                • 4
              • Делаем адаптивный HTML, добавляя одну строку в CSS

                • Перевод
                image

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

                И самое классное: адаптивность будет добавлена с помощью одной строки CSS.
                Это означает, что нам не нужно загромождать HTML лишними классами (Col-sm-4, col-md-8) или создавать медиа-запросы для каждого размера экрана.

                Рассмотрим все подробнее.
                Читать дальше →
              • Фрэймворк для разработки продуктов от Facebook

                • Перевод
                Julie Zhuo, директор по продуктовому дизайну в Facebook, однажды выступала на «TNW Europe», и рассказывала о фрэймворке, который используется в Facebook, чтобы сфокусироваться на разработке продукта.

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

                Этот список не идеальный и не полный. Если бы была какая-то пошаговая инструкция (Шаг 1: Идея. Шаг 2: ??? Шаг 3: Профит!), тогда я бы потратила на неё хорошие деньги, а потом похлопала нас по спинам и смотрела бы, как новые потрясающие продукты цветут вокруг нас, словно цветочные поля в мае.

                Путешествие завершено на 1%. Давайте продолжим идти дальше и обучаться.

                Фрейминг


                1. Продукт успешен, потому что решает проблемы за людей. Это звучит очень просто, но это самая важная вещь, которую нужно понимать в создании хороших продуктов.
                2. Первым шагом в создании чего-то нового является понимание того, какую проблему ты хочешь решить и для кого. Это должно быть предельно ясно до того, как вы начнете думать над решением.
                3. Третий вопрос, который вы должны себе задать: «Почему именно эту проблему стоит решать?»
                4. Если аудитория, для которой вы создаете, узко определена (и вы её часть), то вы можете положиться на свою интуицию, чтобы принимать решения по продукту. Если же нет, то стоит полагаться на исследования и данные.
                5. Если вы — основатель стартапа, будет легче начать с решения проблем узкой аудитории, а затем расширяться к общей аудитории после того, как вы заручитесь изначальной поддержкой.
                6. Проблема, которую вы пытаетесь решить, должна быть поняла за пару предложений и резонировать с кем-либо из вашей целевой аудитории. Если этого не происходит, то считайте это тревожным признаком.
                Читать дальше →
              • Разработка персонажей для игры «Аллоды Онлайн»

                • Tutorial
                image

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

                Всё, что говорится в правилах, основано на огромном опыте разработки. Тут каждая буква имеет значение, и если вам показалось, что где-то есть ошибка или недосказанность, то лучше семь раз переспросить, чем сделать абы как. Ниже расписаны правила успешной работы в игровой индустрии. Если их не соблюдать, то ваша работа будет или недолгая, или неуспешная, или мучительная и для вас, и для заказчика. А если станете создавать персонажей в полном соответствии с этим руководством, то вас ждёт успех!
                Читать дальше →
              • Особенности распределения фонда оплаты труда в больших предприятиях РФ

                  Оказывается, в свободном доступе есть интересная информация от HeadHunter о повышении фонда оплаты труда (ФОТ) в 2015 году. Со страницы проекта "Банк данных заработных плат" идет ссылка "Сравнивайте зарплаты вашей компании с рынком".

                  Прямая ссылка на pdf: Зарплаты в России. Итоги 2015 года.


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

                  И вообще, многим придут на ум уже затертые шаблоны:
                  • Надо не завидовать, а больше работать, и станешь таким же высокооплачиваемым топ-менеджером.
                  • Не нравится – уходи и работай на себя / аутсорсь за валюту на западные компании / переезжай в другие страны.


                  Но эти выводы и советы слишком уж лежат на поверхности.
                  We need to go deeper.
                  Давайте посмотрим, насколько же глубока эта не кроличья нора…
                  Читать дальше →
                • Если вместо оформления на работу предлагают открыть ИП

                  Я сейчас в поисках работы программиста в Москве. И мне звонят некоторые кадровые агентства и интересуются есть ли у меня ИП, так как их клиент-работодатель вместо трудового договора с работниками заключает договоры оказания услуг или субподряда с ИП или ООО с одним учредителем, я их буду называть ИП в дальнейшем. ИП у меня нет, но есть не приносящее дохода ООО, где я веду бухучет самостоятельно. Поэтому и знаю, что это такое, какие именно налоги нужно платить и почему эта схема в России не законна и чем все это грозить горе-работнику, который на это согласился. Еще раз повторяю, я не юрист, а программист; то, что я опишу ниже, вполне могло устареть, измениться и т.п., и, если в комментариях укажут действующую норму, я не буду против.
                  Читать дальше →
                • Так что же такое «Техническое Задание»?

                  Данный текст был создан сугубо ради существования постоянной ссылки, которую бы сам автор, да и все вы — могли бы смело отправлять своим будущим заказчикам, коллегам, родственникам и знакомым в виде стандартизированного ответа на вопрос: «А надо ли мне ваше ТЗ и вообще что это?»

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

                  image
                  Читать дальше →
                  • +10
                  • 93,7k
                  • 6
                • Свойства вертикали корпоративной власти

                    В Яндексе – идеальные для ИТ отцы-основатели… а какую позитивную книгу о них и об идеологии Яндекса Соколов-Митрич написал… Но что в Яндексе сложилось за несколько лет «внизу»? В этом посте последняя ссылка показывает – полный мрак.
                    Второй пример – Магнитом управляет такой умный и правильный Сергей Галицкий (почитайте его интервью), но «внизу» творится какой-то ад: «Мы не рабы» кричат его сотрудники.

                    Почему так? Что же за злой рок преследует большие компании?

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

                    Даже в этом идеальном случае у неё имеются, причем со временем усиливаются, следующие негативные свойства:

                    1. Усиление строгости при движении приказов сверху-вниз.
                    2. Положительная обратная связь и искажение отчетности при движении информации снизу-вверх.
                    3. Уменьшение взаимопонимания с ростом количества промежуточных звеньев между сотрудниками.

                    Далее рассмотрим их подробнее и сформулируем:

                    4. Советы сотрудникам, идущим работать в большие компании.
                    5. Своё собственное скромное мнение, почему Яндекс всё ещё хорош на фоне многих других.


                    Движение сверху-вниз приказов и всего прочего. Вы же не ожидали увидеть здесь другую картинку?
                    Читать дальше...