Pull to refresh
3
0

Пользователь технологий

Send message

Затыкаем рот Windows 10

Level of difficulty Hard
Reading time 33 min
Views 93K


Windows 10 очень любит Интернет. Обновления, синхронизации, телеметрия и ещё куча разной другой очень нужной ЕЙ информации постоянно гуляет через наши сетевые соединения. В «стандартном» сценарии использования, когда Windows 10 управляет домашним или рабочим компьютером, это, в общем-то, терпимо, хотя и не очень приятно.

Однако жизнь сложная штука и не ограничивается только стандартными вариантами. Существуют ситуации, когда подобная сетевая активность операционной системы (ОС) нежелательна и даже вредна. За примерами далеко ходить не надо. Попробуйте подключить к Интернету давно не используемый резервный компьютер, собранный на старом железе. Пока софт на нём не обновится, использовать его будет практически невозможно, всё будет дико тормозить и еле шевелиться. А если вам в этот момент нужно срочно что-то сделать?

Для того чтобы подобного не происходило, необходимо «заткнуть рот Windows», то есть сделать так, чтобы она самостоятельно перестала «стучаться» в Интернет, устанавливать обновления и заниматься прочими непотребствами. Вот именно этим мы с вами и займёмся.
Читать дальше →
Total votes 217: ↑207 and ↓10 +197
Comments 304

Что нам стоит вязальный аппарат построить? Некоторая информация и ряд мыслей на тему…

Reading time 10 min
Views 16K
Картинка Macrovector, Catalyststuff, Freepik

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

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

Читать дальше →
Total votes 81: ↑80 and ↓1 +79
Comments 33

Как работает протокол X11 на самом нижнем уровне

Level of difficulty Medium
Reading time 13 min
Views 35K

X11 это тот механизм на чем работает весь графический интерфейс Unix подобных ОС.


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


А протокол в своей сути прекрасен. Он лаконичен и почти совершенен.


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


А все книги и статьи по использованию X11 описывают это через библиотеки прокладки типа XLib и XCB, и даже, что хуже, GTK или Qt.


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


Как бы то ни было, если кому-то интересно как все работает на самом деле, пожалуйста под кат.

Читать дальше →
Total votes 201: ↑199 and ↓2 +197
Comments 181

Разбираем TLS по байтам. Где собаки зарыты?

Level of difficulty Medium
Reading time 34 min
Views 11K


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

В первой мы увидели, что такое «защищённое соединение», сколько и каких ключей для него нужно, кто кого шифрует и подписывает, и что такое «сертификат». Сейчас разберёмся, как всё это дело реализуется в протоколе TLS: как выглядит рукопожатие, как сделать ключ шифрования своими руками, в каком виде данные передаются по сети.
Читать дальше →
Total votes 39: ↑39 and ↓0 +39
Comments 1

Как настроить Nginx в качестве балансировщика нагрузки

Reading time 9 min
Views 55K

Что такое балансировка нагрузки?


Балансировка нагрузки подразумевает эффективное распределение входящего сетевого трафика между группой бэкенд-серверов. Задача же регулятора — распределить нагрузку между несколькими установленными бэкенд-серверами.

Существует несколько типов балансировщиков нагрузки:

  • Балансировщик нагрузки приложений.
  • Сетевой балансировщик нагрузки.
  • Балансировщик нагрузки шлюза.
  • Классический балансировщик нагрузки.
Читать дальше →
Total votes 25: ↑21 and ↓4 +17
Comments 22

Миссия выполнима: УКВ ЧМ супергетеродин на дискретных компонентах

Level of difficulty Medium
Reading time 11 min
Views 8.1K


Давным-давно, когда деревья были зелеными и высокими, радиоприёмники собирали не на интегральных микросхемах, а на дискретных, то есть отдельных транзисторах. Такие решения занимают больше места и потребляют больше энергии, зато очень наглядны для понимания принципов работы.

И если средневолновый транзисторный супергетеродин — вещь обычная, которую многие из нас помнят с детства, а некоторые даже собирали своими руками, то ультракоротковолновые, они же FM-радиоприёмники, чаще строили и продолжают строить на микросхемах. (Если не считать ламповых и транзисторных радиол и многодиапазонных приёмников с УКВ модулем).

Такой УКВ супергетеродин я сегодня соберу. Без микросхем, на 12 транзисторах, 6 из которых задействованы в радиотракте, и ещё 6 в усилителе звуковой частоты. А ещё поговорим о структуре сигнала ЧМ радиостанции и способах его детектирования.
Читать дальше →
Total votes 31: ↑31 and ↓0 +31
Comments 18

В России не любят Линукс, а я не люблю виртуальные машины. Что делать?

Level of difficulty Easy
Reading time 11 min
Views 35K

В России не любят Линукс. Студенты и корпорации всячески отлынивают его использовать, даже если Линукс насаждают преподаватели или госзаказчики. Но есть область, в которой Линукс придется полюбить. Это разработка микросхем. Даже внутри Apple и Microsoft инженеры используют Synopsys Design Compiler / IC Compiler и Cadence Genus / Innovus, у которых вообще нет версий для Windows и MacOS, только для Linux. Да, я знаю, что Synopsys и Cadence ушли из России. Но даже открытые тулы для синтеза ASIC - Open Lane - есть только под Linux.

Я уже несколько лет использую для семинаров по FPGA загружаемые через USB SSD диски, на который ставится весь необходимый софтвер. Такое решение позволяет избежать агонии первого дня семинара, когда приходит куча народу со своими ноутбуками, три часа ставят Quartus, а потом мучаются с драйверами USB Blaster для китайского контрафактного клона, который без танцев с бубном не хотят поддерживать не Win10, ни Linux, ни особенно Win11, который хочет подписанные драйверы.

А как же виртуальные машины? - спросите вы. С моей точки зрения они вносят дополнительный уровень танцев с бубном. И это не мое дремучее мнение - так же считает мой приятель, который работал над виртуализацией в Микрософте. То оно USB порт не пробивает, то еще какие-нибудь глюки. Плюс учить дополнительные опции, качать и копировать файлы в десятки гигабайт. А тут вставил в USB порт, и если загрузится, то заработает.

Конечно, загружаемые SSD тоже не без проблем: тут и Legacy BIOS boot против UEFI boot, и Secure Boot с Bit Locker, и зловещий "хвост GPT", и отрубание всего из-за скачка напряжения в USB хабе - но с этими проблемами мы методично разобрались. Решение я и описываю в этой заметке, предназначенной в первую очередь для учеников и руководителей кластеров в Школе Синтеза Цифровых Схем, которая начинается с сентября в 14 российских городах (объявления и точных дат еще нет, но уже записалось 200 учеников).

Прежде всего: как выглядит загружаемый SSD? А вот так:

Читать далее
Total votes 58: ↑51 and ↓7 +44
Comments 161

Сигнатурный анализатор «ACORN VA»

Level of difficulty Medium
Reading time 16 min
Views 5.4K

История началась в 2019 году, когда я работал сервисным инженером по ремонту промышленного оборудования. Как-то раз, во время очередного компонентного ремонта, мне начальник предложил собрать хороший инструмент "из прошлого" для быстрого поиска неисправностей и ремонта печатных плат. По его утверждению, с помощью этого таинственного устройства ремонт происходил в разы быстрее (во времена своей молодости начальник занимался ремонтом персональных компьютеров и периферии). И даже название того оригинального прибора мне было озвучено - Huntron Tracker®.
Изучив подробно новую для себя тему, я принялся к сборке простейшей аналогичной схемы из нескольких деталей (не без скепсиса конечно). Это была приставка к осциллографу.

Читать далее
Total votes 31: ↑31 and ↓0 +31
Comments 16

День толстой полярной лисички: как построены наши кризисные группы

Reading time 10 min
Views 11K

Это пиесец, да

Привет! Как-то так получилось, что я сначала торговал настолками и разбирал зверей, а последние три года занимаюсь кризисным реагированием. По привычке. Среди прочего.

Полтора месяца назад, 24 июня был кризис, и в который раз я наблюдал, как многие тормозят с решениями или вообще хоть какими-то действиями. Где-то это банальная неподготовленность, а где-то — отсутствие нормальной системы принятия решений.

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

Итак, в ту субботу примерно в 3 часа ночи наши безопасники (которые не ИБ, а более прикладные) вежливо порекомендовали обратить внимание на ситуацию. Около 5:40 утра глава Липецкой области порекомендовал не ездить в Воронеж, а губернатор Ростовской области — не ездить в Ростов. Информационный поток — это на мне, поэтому я решил, что это не локальная ситуация, нажал на большую красную кнопку и запустил полноценный процесс обработки кризиса.
Читать дальше →
Total votes 68: ↑67 and ↓1 +66
Comments 23

Индикатор добротности. Тестер катушек индуктивности

Level of difficulty Easy
Reading time 10 min
Views 6.6K

Данный самодельный прибор может оказаться весьма полезным в радиолюбительской мастерской в некоторых случаях. Прибор позволяет оценить добротность (наличие потерь) конденсаторов и индуктивностей – дросселей и трансформаторов, и, в частности, выявлять наличие короткозамкнутых витков в них.

Читать далее
Total votes 47: ↑43 and ↓4 +39
Comments 19

Разбираем HTTP/2 по байтам

Level of difficulty Medium
Reading time 24 min
Views 26K

image


Откройте любую статью с обзором HTTP/1.1. Скорее всего, там найдётся хотя бы один пример запроса и ответа, допустим, такие:


GET / HTTP/1.1
Host: localhost

HTTP/1.1 200 OK
Date: Sat, 09 Oct 2010 14:28:02 GMT
Server: Apache
Content-Length: 38
Content-Type: text/html; charset=utf-8

<!DOCTYPE html>
<h1>Привет!</h1>

Теперь откройте статью с обзором HTTP/2 или HTTP/3. Вы узнаете о мультиплексировании запросов, о сжатии заголовков, о поддержке push-технологий, но вряд ли увидите хоть одно конкретное сообщение. Ясно, почему так: HTTP/1.1 — текстовый протокол, тогда как сиквелы к нему бинарные. Это очевидное изменение открывает дорогу ко множеству оптимизаций, но упраздняет возможность просто и доступно записать сообщения.


Поэтому в этой статье предлагаю покопаться в кишках у HTTP/2: разобрать алгоритмы установки соединения, формат кадров, примеры взаимодействия клиента с сервером.

Читать дальше →
Total votes 115: ↑115 and ↓0 +115
Comments 45

Управление памятью в PHP. Сборка мусора, слабые ссылки и прочая челядь

Level of difficulty Medium
Reading time 11 min
Views 10K

1. Введенние.
2. Zval.
3. Циклические ссылки.
4. Сборщик мусора.
5. Алгоритм работы сборщика мусора.
6. Смотрим глазами.
7. Слабые ссылки.
8. Бонус-трэк: WeakMap.
9. Заключение.

Читать далее
Total votes 28: ↑27 and ↓1 +26
Comments 6

Миссия выполнима: собрать и настроить супергетеродин

Reading time 13 min
Views 12K


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

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

Сегодня я расскажу, как собрать супергетеродин, как его настроить, и что такое преобразование частоты. Познакомимся с историей радио и изучим схемы.
Читать дальше →
Total votes 47: ↑46 and ↓1 +45
Comments 50

Назад в прошлое: как быстро восстановить MySQL на точку во времени

Level of difficulty Medium
Reading time 8 min
Views 5.3K

Point in Time Recovery (PiTR) — это восстановление базы данных на какой‑то конкретный момент времени (с точностью до секунд или до конкретной транзакции).

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

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

Читать далее
Total votes 14: ↑14 and ↓0 +14
Comments 2

Реализация двустороннего A* на двух потоках

Level of difficulty Hard
Reading time 10 min
Views 4.9K

На Хабре можно найти немало статей, посвящённых оптимизациям поиска кратчайшего пути на графе. Я расскажу ещё про еще один подход. Речь пойдёт о распараллеливании алгоритма A* и исполнении его на двух потоках, а также о сложностях, с которыми я столкнулся при реализации, и их преодолении.

Читать далее
Total votes 56: ↑56 and ↓0 +56
Comments 35

70+ бесплатных приманок для ловли хакеров

Reading time 12 min
Views 21K

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

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

Читать далее
Total votes 49: ↑49 and ↓0 +49
Comments 4

Надежные пароли будут надежно забыты. Часть 2. Распределенные системы наносят ответный удар

Reading time 5 min
Views 5.4K

Это был конец декабря 2021-го года, мы едем через Техас, только что благополучно переночевали в El Paso — низкий тебе поклон Голливуд за прекрасные фильмы, такие как Sicario, после которых у нас тряслись коленки когда мы въезжали в этот прекрасный город. Продолжаем движение по направлению к Boca Chica, посмотреть на StarBase (оно того стоит поверьте). На улице жара +30 и солнечно, приятная летняя погода. В фоне отгоняю от себя мысли о том, что тут творится летом с температурой и людьми.

О чем можно думать в этот момент кроме как о космосе, о будущем и о распределенных системах? Конечно много о чем, а не этой гиковской фигне:) ...

Читать далее
Total votes 6: ↑5 and ↓1 +4
Comments 27

Моделируем в радиолокации то, что обычно не моделируют

Level of difficulty Medium
Reading time 12 min
Views 3.7K

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

Как‑то раз, разрабатывая модель функциональных блоков и ячеек локатора в матлабе и симулинке (для моих нужд и целей этого аппарата хватало вполне), задумался о том, что живой локатор так не работает, он состоит из множества дополнительных систем, которые в совокупности и формируют его истинный облик. Проведя небольшие исследования, а также на личном опыте столкнулся с тем, что мало кто из разрабов моделит САУ, а уж совместно с функциональной частью и подавно. Еще меньше моделят учет и потери пакетов при сетевом трафике, а это частая проблема у «больших» локаторов со множеством приемо‑передающих ячеек и блоков.

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

Итак, поехали..

Читать далее
Total votes 13: ↑13 and ↓0 +13
Comments 7

Разбираемся что MySQL пишет на диск и зачем [часть 2]

Level of difficulty Hard
Reading time 9 min
Views 4.8K

Это вторая часть моих копаний во внутренностях MySQL. В первой части [habr] были затронуты запись страниц данных на диск (с промежуточной записью в DoubleWrite buffer) и запись бинлогов (с батчингом в виде group commit). В этой части я расскажу про redo log и как все части MySQL координируются для достижения надежной работы.

Читать далее
Total votes 13: ↑13 and ↓0 +13
Comments 0

Разбираемся что MySQL пишет на диск и зачем [часть 1]

Level of difficulty Hard
Reading time 8 min
Views 16K

Разработчики предъявляют высокие требования к базам данных: максимальная надежность (ничего из того, что было записано не должно быть утеряно ни при каких обстоятельствах), и, одновременно, максимальная производительность при различных видах нагрузки (Запись/Чтение или OLTP/OLAP). Достичь этих требований может быть не просто. Давайте попробуем разобраться, как это делает MySQL.

Размышляя о базе данных, легко представить таблицу базы данных как HashMap/BinaryTree, отображающие первичный ключ (primary key) в структурированные записи с данными. Такое хранилище может работать in memory. Но, как только мы захотим записать данные на диск, придется использовать какие-то алгоритмы во внешней памяти. Просто положить наш HashMap на диск не получится, потому что память и диски слишком разные: чтение/запись диска производится блоками, latency диска больше чем у RAM, а еще нельзя будет воспользоваться обычными указателями и аллокаторами памяти - все это придется заменить самостоятельно.

Читать далее
Total votes 13: ↑13 and ↓0 +13
Comments 7

Information

Rating
Does not participate
Registered
Activity