• VPN в домашнюю локалку



      TL;DR: я устанавливаю Wireguard на VPS, подключаюсь к нему с домашнего роутера на OpenWRT, и получаю доступ к домашней подсети с телефона.

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

      Вместо этого я настроил VPN с доступом в домашнюю локалку. Плюсы такого решения:

      • Прозрачность: чувствую себя как дома при любых обстоятельствах.
      • Простота: настроил и забыл, не надо думать о пробросе каждого порта.
      • Цена: у меня уже есть VPS, для таких задач современный VPN почти бесплатен по ресурсам.
      • Безопасность: ничего не торчит наружу, можно оставить MongoDB без пароля и никто не утащит данные.

      Как всегда, есть и минусы. Во-первых, вам придётся настраивать каждый клиент по отдельности, в том числе, на стороне сервера. Может быть неудобно при наличии большого числа устройств, с которых хочется иметь доступ к сервисам. Во-вторых, у вас на работе может оказаться совпадающая по диапазону локалка — придётся разрешать эту проблему.
      Читать дальше →
    • Делаем сами сцинтилляционный спектрометр из… радиометра

      • Tutorial
      Весной меня отправили на карантин и появилось немного времени, что бы спаять что-нибудь интересное. Выбор пал на вот это устройство.

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



      В статье расскажу, как собирал прибор и что поменял в схемотехнике и прошивке.
      Читать дальше →
      • +22
      • 5.3k
      • 9
    • Как демо Memories умещается в 256 байт

      • Translation

      Введение


      Привет! Меня зовут «HellMood», а эта статья посвящена небольшой программе для MS DOS под названием «Memories». Эта программа имеет размер 256 байт, она выиграла в категории «PC 256 byte» соревнований демосцены «Revision» 2020 года, а также получила приз зрительских симпатий. Видео вывода программы можно посмотреть здесь, а видео с реакцией онлайн-аудитории и модераторов — здесь. Скачать релиз и оставить комментарии можно здесь. В этой статье будет представлен глубокий анализ программы, рассказано об исторических отсылках и этапах разработки. Статья выложена в sizecoding wiki. Она не только позволит вам понять внутреннее устройство «Memories», но и поможет самим создать нечто похожее. Изучите её! Если вы новичок в sizecoding-е (написании программ в рамках нужного размера) или в ассемблере x86, то рекомендуется начинать с основ этой wiki. Принципы понять легко, но с подробностями реализации разобраться бывает не так просто.

      Краткий обзор


      В этой статье мы будем говорить об отправленной на конкурс версии для DosBox (256 байт). В архиве также содержатся версии для FreeDos и Windows XP DOS, которые на момент написания поста работали не на всех компьютерах. Эти альтернативные версии были включены в архив как proof of concept, чтобы показать, что программа не только работает в эмуляторе. В категории «PC 256 bytes» соревнований «Revision» 2020 года можно было указать в качестве платформы «FreeDos» или «DosBox» (последняя в конкретной конфигурации). Как доказывают альтернативные версии, на самом деле можно модифицировать версию для DosBox так, чтобы она работала во FreeDos, MS DOS, WinXP и Win98, но статья будет не об этом.
      Читать дальше →
    • GSM/3G/4G-модемы во встраиваемых системах на примере LTE-модема Quectel EC21 и Yocto Project

      • Tutorial

      image


      Многим устройствам на базе встраиваемых систем необходим интернет. Проводное подключение к интернету для них не всегда возможно, и если устройства находятся в зоне действия сотовой связи, то к интернету можно подключиться с помощью GSM/3G/4G-модемов.


      В этой заметке описан процесс создания дистрибутива ОС Linux для встраиваемой системы при помощи инструментария Yocto Project, позволяющий подключать устройство к интернету через GSM/3G/4G-модем и протокол PPP.

      Читать дальше →
      • +19
      • 5.6k
      • 5
    • Терминальные забавы: 10 классических консольных приколов

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



        Текстовые оболочки в UNIX-подобных ОС пригодны не только для выполнения внутренних команд, запуска различных утилит и написания скриптов. Результаты работы некоторых программ могут позабавить забредших на огонек гостей. Редакция блога RUVDS поздравляет читателей с Рождеством и предлагает вспомнить классические консольные шутки, радующие уже многие поколения системных администраторов.
        Читать дальше →
      • Rhasspy — опенсорсный и полностью офлайновый речевой тулкит. Распознавание русского языка. Никаких утечек в облако


          Фото из сравнения микрофонных массивов для DIY-устройств типа самодельной умной колонки

          Системы вроде Amazon Echo передают в облако для хранения ваши конфиденциальные разговоры (даже записанные случайно). В некоторых случаях записи прослушиваются живыми операторами. Это не просто потеря конфиденциальности. Это как добровольно впустить в свою квартиру «товарища майора», который стоит рядом 24 часа в сутки, слушает и внимательно записывает, притворяясь услужливым ассистентом.

          Вместо покупки коммерческой системы у корпораций типа Google, Amazon или «Яндекс», вы можете собрать аналогичную опенсорсную систему на базе Raspberry Pi 2-3 B/B+, персонального компьютера или ноутбука.

          Rhasspy — безопасный голосовой помощник, который работает автономно. Он ничего не передаёт на удалённые сервисы, при этом успешно справлятся с распознаванием речи и голосовых команд.
          Читать дальше →
        • Buildroot: Создание кроссплатформенной прошивки с zabbix-server


            История задачи


            Небольшие по размеру фирмы с одной стороны, нуждаются в качественном мониторинге своей инфраструктуры (особенно в свете повсеместной виртуализации ), с другой стороны, для них финансово тяжело закупать новое оборудование. Также часто встречаются проблемы с серверной/аппаратной: зачастую стоит 1-3 tower-сервера рядом с пользовательскими рабочими местами или в небольшой нише/чулане.


            Проще использовать уже готовую сборку(дистрибутив), который достаточно залить на microSD-карту и вставить в распространенный одноплатный компьютер (beaglebone, семейства raspberry pi и orange pi, asus tinker board). Кроме того, такое оборудование стоит недорого и может быть установлено в любом месте.

            Читать дальше →
            • +10
            • 3.1k
            • 2
          • Как спроектировать корпус для прибора. Полное руководство

            • Tutorial
            От идеи до серийного производства: подробно об этапах разработки и о технологиях производства корпусов — факты, примеры из практики, фото. Если вам нужен корпус для прибора, обязательно прочитайте.

            image
            Изучая рунет, я не смог найти ни одной статьи, которая описывала бы ВСЕ этапы разработки и производства корпуса устройства.

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

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

            Как спроектировать корпус — схема работы


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

            Разработка корпуса — процесс, разбитый на несколько обязательных этапов. Это даже обсуждать не буду: проверено много раз. Даже если вы не собираетесь связываться с «большим» производством (например, если планируете делать устройство только для себя), всё равно лучше бы вам соблюдать правильную последовательность этапов.

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

            Вот схема, по которой мы пойдем:
            Читать дальше →
          • Деревянные игрушки, часть первая — 1982-1985

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

              Почему игрушки деревянные? Ну, на фоне сегодняшних они точно выглядят, как деревянные. А некоторые даже прибиты к потолку. Но то не минус, это наоборот плюс — развивало воображение. А сегодня уже всё сразу на картинке, ничего воображать не надо. И вообще, многие игры сейчас ещё и "- Вы, чего, и конфеты за меня есть играть за меня будете? — Ага!"

              В итоге задуманный краткий список любимых игр и описание запуска их на ноуте превратились в не особо краткую ретроспективу того, во что играл (или видел, как играют) и что оставило заметный след в памяти — даже если не особо нравилось. А ноут ушел куда-то на задний план. Хотя, конечно, иногда будет выглядывать.



              Содержание:
              Деревянные игрушки — эпилог, что осталось прибитым к потолку
              Деревянные игрушки, часть последняя — 1997
              Деревянные игрушки, часть десятая — 1996
              Деревянные игрушки — неписи
              Деревянные игрушки, часть девятая — 1995
              Деревянные игрушки, часть восьмая — 1994
              Деревянные игрушки, часть седьмая — 1993
              Деревянные игрушки, часть шестая — 1992
              Деревянные игрушки, часть пятая — 1991
              Деревянные игрушки, часть четвертая — 1990
              Деревянные игрушки, часть третья — 1989
              Деревянные игрушки, часть вторая — 1986-1988
              Деревянные игрушки, часть первая — 1982-1985
              Читать дальше →
            • Эффект теплого лампового радио

              image


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

              Читать дальше →
            • Что за роботы-пауки летают над стадионами и снимают футбол. Интервью с создателем Robycam

                На чемпионат мира по футболу в России привезли сотни тонн оборудования. На каждом стадионе установлено по 34 суперсовременные камеры, которые транслируют картинку в HD, UHD и 4K HDR. Раньше их ставили только по краям поля, но с 2014 года камеры на чемпионатах мира летают прямо над головами спортсменов.

                Вы, наверное, видели эти штуковины, похожие на перекачанный квадрокоптер с панцирем. На самом деле это подвесные роботизированные платформы на тросах.


                Фото: Movicom
                Читать дальше →
              • Спустя 6 лет вышла новая версия легендарного аварийного дистрибутива Hiren's BootCD



                  Сегодня праздник у железячников, ремонтников, сисадминов и эникейщиков!
                  После долгого забвения был возобновлен выпуск легендарного загрузочного диска Hiren's BootCD.

                  Hiren's BootCD (также известный как HBCD) представляет собой загрузочный образ с программным обеспечением для записи на CD\DVD\USB-flash, содержащий ряд диагностических утилит, таких как тесты производительности системы, программы для форматирования и разметки, средства клонирования и создания образов диска, инструменты для восстановления данных, инструменты для работы с MBR, инструменты прошивки и модификации BIOS и других средств для исправления различных компьютерных проблем.

                  На этот раз дистрибутив базируется на 64-разрядной Windows PE 10.0 и содержит только легальные для свободного распространения программы, при условии, что вы будете использовать HBCD исключительно в целях диагностики и устранения компьютерных неисправностей, а не в качестве основного ПО для компьютера.

                  Выпуском новых официальных версий занимается группа особо преданных фанатов дистрибутива, которым был передан доступ к официальному сайту (старая версия сайта до анонса новых версий), в то время как оригинальный автор давно отошел от дел.
                  Читать дальше →
                • Как безопасно программировать в bash

                  • Translation

                  Почему bash?


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

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

                  Предисловие


                  Данное руководство сопровождает ShellHarden, но автор также рекомендует ShellCheck, чтобы правила ShellHarden не расходились с ShellCheck.

                  Bash — не тот язык, где самый правильный способ решить проблему одновременно является самым простым. Если принимать экзамен по безопасному программированию в bash, то первое правило BashPitfalls звучало бы так: всегда используй кавычки.

                  Главное, что нужно знать о программировании в bash


                  Маниакально ставить кавычки! Незакавыченная переменная должна расцениваться как взведённая бомба: она взрывается при контакте с пробелом. Да, «взрывается» в смысле разделения строки на массив. В частности, расширения переменных вроде $var и подстановки команд вроде $(cmd) подвергаются расщеплению слов, когда внутренняя строка расширяется в массив из-за расщепления в специальной переменной $IFS с пробелом по умолчанию. Это обычно незаметно, потому что чаще всего результатом становится массив из 1 элемента, неотличимый от ожидаемой строки.
                  Читать дальше →
                • Восстановление и модернизация колонок Вега 50АС-106

                    В детстве у одного из моих друзей дома стояли колонки Вега 50АС-106, тогда они запали в душу своим дизайном, еще бы, ведь тогда, в начале 90-х для меня, мальчишки эти колонки со своими пластиковыми накладками были чем то космическим, верхом совершенства. Ну а о качестве музыки мы тогда не особенно задумывались. Хотелось иметь у себя такие. Время прошло, а в памяти те колонки остались, как и осталось желание их получить. Появились и возможности по их приобретению.


                    Фото не мое, взято тут

                    Небольшое отступление. Данный пост не претендует на истину в последней инстанции, так же он не претендует на какие то аудиофильские изыски, а так же на то, что полученный результат бьет все рекорды. Прошу не спорить на тему «зачем ты с ними возился, лучше бы купил новые нормальные», мне хотелось именно ТЕ колонки, как память из детства. Для прослушивания музыки у меня есть наушники Hifiman HE-400i и самодельный ламповый усилитель к ним, данный комплект уже претендует на некоторое качество, хотя с аудиофилами спорить не собираюсь.

                    Всех, кого заинтересовал, прошу под кат.
                    Читать дальше →
                  • SO_TIMESTAMPING в картинках. Прием пакета


                    Бывает, что приложению требуется узнать точное время приема или отправки сетевого пакета. Например, для синхронизации часов (см. PTP, NTP) или тестирования задержек в сети (см. RFC2544).


                    Наивным решением будет запоминать в приложении время сразу после получения пакета от ядра (или перед отправкой ядру):


                      recv(sock, buffer, length, flags);
                      clock_gettime(CLOCK_REALTIME, timespec);

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


                    Начиная с версии 2.6.30 Линукс поддерживает опцию сокета SO_TIMESTAMPING. Она позволяет пользовательскому сокету получать временные метки для отправляемых и принимаемых пакетов. Временные метки могут быть сняты самим ядром, драйвером или сетевым устройством (см. список поддерживающих устройств и драйверов). О том, что это вообще такое и как этим пользоваться, стоит почитать в Documentation/networking/timestamping.txt


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

                    Читать дальше →
                    • +21
                    • 7.3k
                    • 9
                  • История взлома всех игр в Telegram

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


                      Читать дальше →
                    • Эксплойт BlueBorne на Android, iOS, Linux и Windows: более 8 миллиардов устройств критически уязвимы



                      Вектор атаки BlueBorne может потенциально повлиять на все устройства с Bluetooth, количество которых сегодня оценивается более чем в 8,2 миллиарда. Bluetooth является ведущим и наиболее распространенным протоколом для ближней связи и используется всеми устройствами — от обычных компьютеров и мобильных до IoT-устройств, таких как телевизоры, часы, автомобили и медицинские приборы.

                      Итак, в чём проблема? Bluetooth сложный. Эта чрезмерная сложность является прямым следствием огромной работы, которая была проведена при создании спецификации Bluetooth. Чтобы проиллюстрировать это отметим, что, в то время как спецификация WiFi (802.11) умещается на 450 страницах, объём спецификации Bluetooth достигает 2822 страниц. Результатом непрозрачности является большое количество уязвимостей, о части из которых мы расскажем в этой статье.

                      Спецификация Bluetooth имеет не менее 4 разных уровней фрагментации, как показано на диаграмме, взятой из спецификации:



                      Обзор BlueBorne

                      Читать дальше →
                    • Задачу о N ферзях признали NP-полной задачей


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

                        Задача о N ферзях состоит в том, чтобы разместить N ферзей на доске размером N×N таким образом, чтобы ни один ферзь не находился под боем другого, при этом на доске заранее установлены несколько ферзей. То есть в итоге никакие два ферзя не должны находиться на одной линии или диагонали. Впервые задачку сформулировали в 1848 году, а в 1850 году придумали вариант головоломки, когда некоторое количество ферзей заранее поставлено на доску, а игрок должен расставить остальных, если это возможно.

                        Исследователи из Сент-Эндрюсского университета (Шотландия) опубликовали научную статью, в которой доказывают, что задача о N ферзях является не только #P-полной задачей, но также NP-полной задачей. Более того, Математический институт Клэя (США) готов заплатить миллион долларов любому, кто сможет оптимизировать решение этой задачи как задачи на доказательство P=NP.
                        Читать дальше →
                      • Обзор Psion Organiser II XP с внутренностями и Тетрисом



                          Карманный компьютер Psion Organizer II XP был выпущен одноименной британской компанией Psion в 1986 году. Он стал успешным представителем линейки Psion Organizer, в которой первенцем был Organizer I, сошедший с конвейера в 1984 году. Последним представителем серии стал Organizer II LZ появившийся в продаже в 1989.

                          Psion Organizer часто титулуется первым в мире PDA (то, что у нас называлось КПК) и хотя это утверждение на мой взгляд спорно, Органайзеры действительно имели уникальные особенности для карманных компьютеров тех лет.
                          Внимание, дальше много фотографий и присутствует гикпорн