Как стать автором
Обновить
22
0

Пользователь

Отправить сообщение

Вы неправильно настраиваете Emacs: не пытайтесь сделать из него что-то другое

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров4.7K

Сегодня разбираем, что не так с кривой обучения GNU Emacs, и почему многие бросают его, так и не разобравшись.

(goto-address-at-point)

Я тебя найду и позвоню

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров140K

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

Расскажу далее.

Я угадаю, что рабочий цеха хочет ввести, с трёх букв

Время на прочтение6 мин
Количество просмотров27K
image

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

Рабочие вводят причины простоя разными словами, от души. «Шланг порвался», «они не успевают дать продукцию», «безобразно обрезана кромка» — это ещё цветочки. Одно только слово «железнодорожный» можно написать десятками способов — жд, Жд, ЖД, ж/д, ж\д, ж /д, ж д, Ж д, ЖД!!! — и так далее. С вывернутыми слешами, двойными пробелами и другими творческими формулировками.

В базе 13 миллионов записей, из них 700 тысяч уникальных, из которых остаётся примерно 500 тысяч после нормализации по регистру, слешам, пробелам и т. п. А нам нужно как-то разобраться, что не так и с кем.

Если вы сейчас думаете про ML, LLM и прочие модные слова, я вас огорчу. Оказалось, что есть простой кондовый способ, если применить немного ТРИЗа. В итоге получилось, что мы умудрились и рабочим сделать намного удобнее (что вообще-то редкость в реалиях производства), и дико помочь аналитикам.
Читать дальше →

Реверс-инжиниринг новой функции iOS Inactivity Reboot

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров8.3K

В iOS 18 появилась новая функция безопасности: перезагрузка бездействия (inactivity reboot). От чего она защищает и как работает? В этом посте мы рассмотрим все подробности вплоть до расширения ядра и Secure Enclave Processor.

Безопасность до и после первой разблокировки


А вы знали, что первый ввод пароля после включения телефона сильно отличается от его дальнейшего ввода для разблокировки телефона?

При первом вводе пароля разблокируется хранилище ключей в Secure Enclave Processor (SEP), шифрующем пользовательские данные на iPhone.

Состояние до первого ввода пароля называется Before First Unlock (BFU). Из-за шифрования пользовательских данных iPhone ведёт себя немного иначе при последующих разблокировках. Вы увидите, что Face ID и Touch ID не работают, и требуется ввод пароля. Но можно заметить и более тонкие отличия: поскольку пароли Wi-Fi зашифрованы, iPhone не будет подключаться к сетям Wi-Fi. Если SIM не защищена PIN-кодом, то iPhone сможет подключаться к сотовым сетям. Это означает, что вы сможете получать телефонные вызовы. Однако при получении вызова, даже если номер есть в контактах, имя контакта не будет отображаться, потому что контакты ещё не дешифрованы. Аналогично, при получении уведомлений о новых сообщениях вы увидите, что получили сообщения, но их предпросмотр будет недоступен. Можете попробовать сами!
Читать дальше →

MLS (Messaging Layer Security) — единый протокол шифрования для всех приложений

Время на прочтение3 мин
Количество просмотров3.8K
Инженерный совет Интернета IETF официально принял стандарт Messaging Layer Security (MLS) — новый протокол сквозного шифрования сообщений поверх TLS. Это дополнительный уровень криптографии, который может покрыть все существующие приложения и обеспечить совместимость между ними. То есть он в идеальном случае станет всеобщим протоколом для всех мессенджеров.

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

До появления MLS не существовало открытой, совместимой спецификации для этого дополнительного уровня криптографии. Новый протокол заполняет этот пробел. Он предоставляет систему, которая полностью специфицирована, формально проверена и проста в использовании для разработчиков.
Читать дальше →

Фургоны-детекторы ТВ всё ещё колесят по улицам Великобритании

Время на прочтение13 мин
Количество просмотров75K

Возможно, вы не знали, но Соединённое Королевство требует от каждой семьи, которая пользуется телевизором, приобретать лицензию на эту привилегию. Появившаяся в 1923 году после принятия Закона о беспроводной телеграфии лицензия требовалась всем, кто пользовался радиоприёмниками. В 1946 году под лицензирование попало и телевидение. Средства, собираемые с граждан, используются в качестве основного источника финансирования Британской общенациональной общественной телерадиовещательной организации. Если коротко, то BBC.

Читать далее

Максимально вырожденная игра на общение

Время на прочтение5 мин
Количество просмотров80K


Сразу скажу, эта штука просто офигенна для небольшой вечеринки, и сделать её можно прямо прочитав пост. Я крайне удивлён, что такая штука до сих пор не продавалась в России. И, кажется, знаю, почему.

Потому что она настолько тривиальна, что это сложно представить.

Но давайте начнём с начала. Итак, настольные игры нужны для общения. Как повод встретиться с друзьями (а для этого многим реально нужен повод — ведь соцсети уверенно разделяют людей). Люди обмениваются тёплыми словами, — ну, стоит, в общем, положительный транзакционный обмен с нулевой суммой.

Задача — найти максимально вырожденную игру, которая работает только на общение. Сначала я думал, что встретил её в Южной Африке на обучении — мы играли в классическую «две правды и ложь».

Но, оказывается, можно ещё проще. И с совершенно убойным результатом.
Читать дальше →

Mount — ещё один способ уменьшения размера Docker-образа

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров16K

Делюсь лайфхаком по уменьшению размеров Docker-образов. Как-то нам попалась на поддержку и развитие CRM-система, написанная на Ruby...

Обновили Ruby-пакеты и под них код, написали Dockerfile. Первая сборка была удручающей: образ в 2Гб. Это нормальный размер, если ты собираешь образ с Torch и другой ML-штуковиной, но CRM - нет. В результате дальнейших действий, удалось сократить размер образа до 200Мб.

Cделали следующее, чтобы сократить размер

Как удаление isNumber из зависимостей сэкономил 440 Гб еженедельного трафика

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров20K

Недавно наткнулся на занимательный merge request по замене зависимости isNumber. Удивительно было в целом осознавать, что как такого универсального метода по определению числа в переменной нет в базовой концепции JavaScript. И данная проблема породила npm-репозиторий isNumber c почти 72 миллионами еженедельных скачиваний на сентябрь 2024 года. Но стоит ли в очередной раз использовать мизерную зависимость в своём проекте? Предлагаю взглянуть на решение, представленное в ранее сказанном mr-е.

Читать далее

Любительская стереосъёмка

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров12K

В книге Якова Перельмана «Занимательная физика» было описание наблюдения ландшафта через стереотрубу:

«Трудно описать ощущения, которые испытываешь, когда смотришь в подобные инструменты, — до того они необычайны! Вся природа преображается. Далёкие горы становятся рельефными, деревья, скалы, здания, корабли на море — всё круглится, всё выпукло, расставлено на бесконечном просторе, а не лежит на плоском экране. Вы непосредственно видите, как движется далёкое судно, которое в обыкновенные трубы кажется неподвижным. В таком виде должны были бы представляться наши земные ландшафты сказочным великанам».

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

Секретики в «повреждённых» скинах Winamp

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров22K

Несколько лет назад я собирал материалы для Музея скинов Winamp, и часть файлов показалась мне повреждённой. Я решил исследовать их, и оказалось, что на самом деле эти скины являются просто zip-файлами с другим расширением. Что же будет, если извлечь эти файлы? О, чего там только нет!

Читать далее

11 полезных фичей Chrome DevTools

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров13K

Всем привет!

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

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

Погнали!

Погнали!

Разбираем самый маленький JPEG в мире

Время на прочтение10 мин
Количество просмотров13K

Недавно на Хабре была опубликована статья Разбираем самый маленький PNG в мире. Интересно, а какой самый маленький файл JPEG? В ответах на StackOverflow и Reddit можно встретить размеры 107, 119, 125, 134, 141, 160 байтов. Все они представляют серый прямоугольник 1 на 1. И кто прав? Все правы, просто такая разница объясняется различными режимами кодирования и степенью строгости соответствия стандарту. Описание всех нюансов разрослось до целой статьи cо всеми необходимыми подробностями для более-менее хорошего знакомства с самыми маленькими jpeg-ами. После краткой теории разберем 159-байтный файл на КДПВ, а затем рассмотрим способы его уменьшения.

Читать далее

Про́клятый огонь, или магия препроцессора C

Время на прочтение18 мин
Количество просмотров29K

Задавались ли вы когда-нибудь вопросом, можно ли полноценно программировать при помощи директивы #define в языке C? Полнота по Тьюрингу шаблонов C++ известна весьма широко, например, люди пишут трассировщики лучей, делающие все вычисления во время компиляции (вместо времени исполнения). А как обстоят дела с препроцессором C? Вопрос оказался сильно нетривиальнее, и эта история является, на мой вкус, отличным анекдотом для курса лекций по теории компиляторов, что я готовлю в данный момент. В частности, для лучшего понимания происходящего здесь, рекомендую ознакомиться со второй статьёй, которую я опубликовал параллельно этой: лексер и парсер.

Чтобы не было обманутых впечатлений, предупрежу сразу, что рейтрейсера не будет, но про́клятый код будет очень даже! Итак, поехали. Для начала, почему я вообще задался этим вопросом? Если обычный код компьютерной графики вам скучен, следующий раздел можно пропустить, перематывайте до последней картинки.

Читать далее

Галопом по Европам: Легитимные процессы Windows на пальцах

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров26K

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

Читать далее

Фотохостинги с 2017 по 2023 (утрачено 57% фотографий)

Время на прочтение22 мин
Количество просмотров25K

С публикации прошлого текста ( «Тестирование фотохостингов на цифровой износ (21 шт)») прошло 6 лет, что позволяет провести новое исследование, но не по теме цифрового износа и конкретно по вопросу выживания цифровых архивов.

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

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

Читать далее

Ускоряем программу для 50-летнего процессора на 180000%

Уровень сложностиСложный
Время на прочтение36 мин
Количество просмотров47K

В прошлом году я написал программу, вычисляющую 255 цифр числа π на самом первом микропроцессоре от Intel - 4004. В той статье я упоминал рекорд ENIAC'a - 2035 цифр [^1], но побить его не смог. Настало время закрыть гештальт. В этот раз возьмём одного из преемников от Intel - 4040.

Читать далее

Книга «Грокаем функциональное программирование»

Время на прочтение2 мин
Количество просмотров22K
image Привет, Хаброжители!

Вам кажется, что функциональное программирование — это нечто сложное, доступное только гуру программирования? Эта книга развенчает миф об элитарности и позволит любому программисту с легкостью разобраться в хитросплетениях кода.

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

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

Пакет context в Go: взгляд профессионала

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров30K

А вы часто читаете реализацию стандартной библиотеки своего любимого языка?..

Меня зовут Константин Соколов, и мы с Сергеем Мачульскисом, моим коллегой из бэкенд-разработки в Positive Technologies, хотим с вами поделиться вдохновением. Давайте вместе посмотрим на пакет context с последними обновлениями. На наш взгляд, он идеально выражает философию языка Go! Образцовый интерфейс, постоянное развитие пакета и использование самых распространенных приемов Go — все это говорит о том, что наш материал будет полезен не только новичкам, но и знатокам.

Под кат

Объединение открытых данных Open Street Map и Landsat для уточнения площадей зеленых зон

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров2.8K

Привет, Хабр! Под катом мы хотели бы поговорить о том какие преимущества привносит в нашу жизнь объединение пространственных данных из различных открытых источников. Рассматривать, для примера, будем следующую задачу: оценить насколько в “зеленом” районе расположен тот или иной объект недвижимости. Без долгих предисловий - переходим к делу!

Ну и что там еще с OSM можно делать?
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Россия
Зарегистрирован
Активность