Pull to refresh

Краткая история создания аудиокассеты. Часть вторая

Level of difficultyEasy
Reading time11 min
Reach and readers11K

В предыдущей части мы подробно рассказали о первых разработках конца XIX-начала XX века. Мы продолжаем наш разговор о создании привычной нам аудиокассеты.

Попытки создать коммерчески выгодный диктофон с магнитной проволокой продолжались, и, пожалуй, самым известным их результатом были «Blattnerphone» 1924 года немецкой компании Ferdinand Schuchardt AG и «Textophon BW 1» 1932 года также немецкой компании C. Lorenz AG.

Читать далее

Почему одна Arduino сделала для робототехники больше, чем все вузы мира вместе взятые

Level of difficultyEasy
Reading time5 min
Reach and readers52K

(Дисклеймер: Заголовок — намеренная провокация. Но если ваша рука уже потянулась к клавиатуре, чтобы написать гневный комментарий о деградации инженерной школы — добро пожаловать под кат. Там мы разберемся, почему синяя платка из Италии победила академический снобизм и создала армию инженеров).

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

Сначала нужно купить микроконтроллер (PIC или AVR). Затем найти программатор ($50–100) или паять LPT-«костыль» на коленке, рискуя сжечь порт материнской платы. Потом открыть даташит на 300 страниц на английском, чтобы понять, в какой регистр нужно «плюнуть» битом, чтобы просто зажечь светодиод. И, наконец, написать код на Ассемблере или голом Си, где ошибка в одной запятой превращает устройство в кирпич.

мигаем светодиодом

Как я сделал senior-стол за $1000

Level of difficultyEasy
Reading time4 min
Reach and readers29K

Я решил сделать стол из дубового слэба толщиной 10 см и весом 340 кг. С точки зрения сложности: это senior стол. Вот мои выводы, ошибки, инженерные решения и расходы.

Читать далее

Я вернулся в 2000-й и поймал ILOVEYOU

Level of difficultyEasy
Reading time4 min
Reach and readers59K

Хочу перенестись в нулевые, чтобы рассказать и показать, как работал ILOVEYOU. Для этого запускаю машину времени и рассказываю:

Что бы случилось с моим компом в нулевые.
Как вирус взломал 45 миллионов компьютеров?
Почему Windows 2000 оказалась особенно уязвимой?
Как автор избежал наказания?

Читать и отправиться в 2000-й

Keycloak: как упростить аутентификацию и не сойти с ума?

Level of difficultyEasy
Reading time9 min
Reach and readers28K

Я Диана, системный аналитик в Clevertec и экс-преподаватель. В этой нескучной лекции расскажу:

Что такое Keycloak и для чего он нужен?

Как Keycloak помогает с межсистемной аутентификацией?

Какие плюсы и минусы у Keycloak при использовании в продакшене?

Какие альтернативы есть у Keycloak?

Начать лекцию

Как перестать гадать, что сегодня /dev/ttyUSB0: стабильная работа с USB в Linux Ubuntu

Level of difficultyMedium
Reading time5 min
Reach and readers15K

Если вы работаете с роботом под Linux, то знаете эту боль: сегодня лидар — /dev/ttyUSB0, завтра — /dev/ttyUSB1, а камеры внезапно меняются местами.

В статье разобран надёжный способ привязать USB-устройства к физическим портам через by-path, создать стабильные имена в /dev и перестать править конфиги после каждой перезагрузки.

Подходит для роботов (да и не только), Linux (проверено на Ubuntu Server) и ROS2.

Читать далее

Docker изнутри: исчерпывающее руководство. Механизмы контейнеризации + примеры, эксперименты и реализация

Level of difficultyMedium
Reading time33 min
Reach and readers55K

Docker — не магия, а грамотное применение механизмов Linux. Разбираем инструмент, который пугает своей сложностью не меньше блокчейна. Показываем на пальцах как работают: Namespaces, Cgroups, OverlayFS – основные компоненты любого контейнера, и как стандарт OCI объединяет их в единую экосистему. Об этом и не только в статье.

Читать далее

Ну всё, пора закапывать UTF-8

Level of difficultyMedium
Reading time7 min
Reach and readers26K

Здравствуйте, меня зовут Дмитрий Карловский и я... серийный убийца устоявшихся стандартов. Сегодня я выследил и нанёс критический урон UTF-8. И сейчас я расскажу, как я его переиграл и уничтожил новым стандартом кодирования текста — Unicode Compact Format.

No, God! Please, No, NO!

Один тест, чтобы покрыть весь код, или краткий ликбез о точности библиотек математических функций

Level of difficultyMedium
Reading time11 min
Reach and readers3.5K

Привет, Хабр! Эта статья посвящена тестированию точности библиотек математических функций (libm). Мы обсудим, где эти библиотеки используются, почему они должны быть не только высокопроизводительными, но и высокоточными. Поймем, откуда в корректных, на первый взгляд, вычислениях берутся ошибки и как их избежать. Узнаем, как устроено большинство тестов в стандартных математических библиотеках и почему они не всегда работают. И наконец, ответим на вопрос, как одним тестом полностью покрыть код математической функции. Без воды, регистрации и громоздких формул.

Читать далее

Managed K8S в Yandex Cloud — экономим без потери производительности

Level of difficultyEasy
Reading time3 min
Reach and readers8.2K

Как и большинство компаний мы активно используем kubernetes, а поскольку находимся в Облаке, то для удобства перешли на management k8s. После полного переезда именно куб стал основной статьей расхода в биллинге Yandex Cloud. Поэтому стало актуально найти способ снизить стоимость без потери в производительности.

Читать далее

Нобелевский лауреат Леонид Канторович и его вклад в IT

Level of difficultyEasy
Reading time11 min
Reach and readers1.8K

В 1951 году в ЛГУ была создана кафедра вычислительной математики, одним из первых сотрудников которой стал профессор кафедры матанализа ЛГУ Леонид Канторович. «Вычислительной» в современном понимании назвать эту кафедру в первые годы ее существования затруднительно. В Советском Союзе в год ее создания была только одна ЭВМ «МЭСМ» в единственном экземпляре. Для сравнения: по данным Российского государственного архива новейшей истории, в США в 1950 году было 15 типов ЭВМ общим числом около 170 штук, в 1953 году — 76 типов мейнфреймов общим числом 1156 штук, а у нас в том же году — ЭВМ 4-х типов в количестве 4 штук. В последующие годы этот разрыв довольно быстро стал уменьшаться. 

Читать далее

Изучаем транспорт для ShadowSocks/XRAY: от «голубиной почты» до туннеля по WebRTC

Level of difficultyMedium
Reading time19 min
Reach and readers12K

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

конфиденциальность (confidentiality) - я отправляю письмо Маше, это всем известно, но что в этом письме - можем прочитать только мы с Машей

анонимность (anonymity) - все могут прочитать содержимое письма, но от кого оно и куда - непонятно (понимаем только мы с Машей)

Соответственно, имея те или иные цели есть множество решений этих задач.

Итак, хорошо. Вот я подключаюсь к своему любимому серверу, и делаю я это по SSH. В целом - мне не так важно, что кто-то узнает, что именно Я подключаюсь именно к ЭТОМУ серверу, больше меня беспокоит, чтобы никто не прочитал мои пароли, мой трафик, и влез таким образом в мои дела. Т.е. в данном случае речь идёт о конфиденциальности. Если бы я делал это по старому доброму Telnet, то увы, здесь я полностью под вашей властью - и по IP меня можно вычислить, и все передаваемые данные в открытом виде.

Читать далее

«План любой ценой»: Почему российский менеджмент превратил работу в выживание и можно ли с этим бороться

Level of difficultyEasy
Reading time5 min
Reach and readers58K

Краткий разбор системных ошибок управления, которые годами тормозят развитие российского бизнеса (и не только в IT) 

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

Читать далее

Perfetto в Android-разработке: когда профайлера уже недостаточно

Level of difficultyEasy
Reading time14 min
Reach and readers6.7K

Perfetto показывает те проблемы с производительностью приложения, которые другой профайлер просто не заметит. И не важно, занят ли процессор системными задачами, когда поток готов работать, или GC блокирует UI на 50 миллисекунд — Perfetto всё подсветит.

Ещё не знаете об этом крутейшем инструменте? Тогда эта статья для вас. Привет! Меня зовут Андрей Гришанов. Расскажу вам, что такое Perfetto и как использовать его максимально эффективно.

Познакомиться с топовым профайлером

Пальмовый след. Правда ли, что молочная отрасль всё чаще меняет сливочный жир на растительный?

Level of difficultyMedium
Reading time16 min
Reach and readers16K

С Новым годом, дорогие друзья! Не знаем, как у вас, но у нашей команды на столах мы насчитали: салаты с майонезом, Наполеон и хачапури из слоёного теста на маргарине, сыры всех видов и марок, включая плавленые и лёгкие, тарталетки на спреде и песочные пирожные на сливочном масле, заводской хлеб и выпечку всех видов, конфеты, вафли, а ещё бутерброды с икрой, на которые было намазано ТОЧНО сливочное масло, из‑под коровы, забранное у хозяйки не в очень аккуратной упаковке, а в пергаменте в мятом и не особо эстетичном, но вкусном комке. А остальное — НЕ ТОЧНО? Что с мифами о пальмовом жире в начале 2026 года? Разбираемся с аппетитом.

Читать далее

Горе от ума – почему рост знаний приводит к росту страданий

Reading time19 min
Reach and readers65K

Психика – довольно парадоксальная вещь, которая подчиняется иной логике, нежели к которой мы привыкли. Несмотря на то, что главная функция психики – это обеспечение выживания индивида, на основе «субъективного отражения объективной реальности», иногда она работает против этой цели. И я говорю сейчас не про экстремальные варианты, вроде появления сверхидеи о питании солнечным светом и не про религиозные суициды во благо вечной жизни. Нет, я говорю об… учёбе, саморазвитии и познании мира.

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

Я достаточно давно изучаю особенности психики и личности как IT-специалистов, так и людей «от головы» в целом. И про особенности их личности писал ряд статей (часть 1, часть 2, часть 3, часть 4). Но сейчас, когда выборка стала больше и количество наблюдений кратно возросло, мне хочется копнуть чуть глубже и посмотреть не просто на личностные особенности, а на механизмы формирования этих особенностей у людей, обладающих эрудицией, интеллектом и способностью к абстрактному мышлению на более высоком уровне, чем в «среднем по больнице».

Взгрустнуть с пользой

Beyond Zero Tolerance: постигая тайну невышедшего сиквела

Level of difficultyEasy
Reading time12 min
Reach and readers8K

Первой игровой консолью моего детства, как и у многих моих сверстников, была “Денди”. Несмотря на то, что я был слишком мал, тем не менее запомнил, как с энтузиазмом старался победить противников в файтинге Yie Ar Kung‑Fu или педантично собирал, как мы их называли, “кучки” в игре Lode Runner, даже и не подозревая, что на самом деле это был золотой песок. Но в более осознанном возрасте на смену 8 битной консоли ко мне пришла Sega Mega Drive. Конечно, же на тот момент оригинальных 16‑битных консолей практически ни у кого не было, но мы об этом даже и не догадывались – для нас эти приставки были самыми что ни на есть официальными.

Читать далее

Как протестировать криптосистему на замкнутость?

Level of difficultyMedium
Reading time3 min
Reach and readers7.7K

Является ли DES группой? В статье [2] было показано, что DES не является группой. Остановимся более подробно на вероятностном тесте MCT(meet-in-the-middle closure test), предложенном в [2] и основанном на атаке meet in the middle, и вычислим вероятность нахождения совпадения.

Читать далее

Чем заняться в выходные? Как я собрал домашнюю виртуализацию в контейнерах за 34 500 рублей

Level of difficultyMedium
Reading time17 min
Reach and readers16K

Как собрать домашний кластер виртуализации с нуля и зачем это вообще нужно? Автор делится личным опытом: от первых экспериментов с контейнерами и осознания их ограничений до построения полноценной инфраструктуры на мини-ПК.

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

Читать далее

Избавляемся от ошибок Segmentation fault из-за переполнения стека в С++

Level of difficultyHard
Reading time10 min
Reach and readers9.3K

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

Причем, если для подсчета ссылок в рантайме, решения существуют, то контроль переполнения стека невозможно сделать не только во время анализа исходного текста программы, но это практически невозможно и во время выполнения приложения! Ведь ошибка переполнение стека (stack overflow) - это всегда фатально, так как не существует способа поймать и обработать эту ошибку изнутри выполняемой программы, чтобы потом продолжить её выполнение как ни в чем не бывало.

Существует ли хотя бы теоретическая возможность защититься от ошибок переполнения стека и сделать из нее обычную ошибку (исключение), которую можно поймать (обработать) в самом приложении, чтобы была возможность продолжить выполнение программы без боязни последующей ошибки сегментации (segmentation fault) или повреждения стека (stack smashing)?

Читать далее