Приветствую всех айтишников и технарей. Не беспокойтесь, серию про ЯМР я не бросил, и обязательно её закончу. Однако пися пиша готовя очередную статью, посвященную возможностям метода, я столкнулся с тем, что описать и объяснить эти самые возможности можно только человеку, который понимает как устроена молекула. Таких людей на Хабре (да и в целом по жизни) не так много, а мне хотелось бы адресовать свои посты относительно широкой аудитории. Ничего подобного, как ни странно, я на Хабре не нашел, поэтому деваться некуда, придется наваять про это отдельный пост.
User
Математика для взрослых. Дорожная карта от выпускника Хармфульского клуба математики
Математика для взрослых. Дорожная карта от выпускника Хармфульского клуба математики.
(1) Школа. (2) Матанализ. (3) Аналитическая геометрия. (4) Линейная алгебра.
Все плейлисты, материалы, курсы в открытом доступе и бесплатны.
Абсолютный минимум об Unicode на 2023 год (всё ещё — никаких оправданий!)
Двадцать лет назад Джоэл Спольски написал: «Не существует такой штуки, как «обычный текст». Если имеется строка, но неизвестно, какую кодировку символов она использует — смысла в этой строке нет. Больше нельзя спрятать голову в песок и притвориться, что «обычный» текст имеет кодировку ASCII.»
Многое изменилось за 20 лет. В 2003 году главный вопрос звучал так: «Что это за кодировка?». В 2023 году такой вопрос больше не стоит: с вероятностью в 98% это — UTF-8. Наконец то! Можно снова спрятать голову в песок!
Как айтишник гигантские арбузы в средней полосе выращивал. Часть 2
Как и обещали, публикуем вторую часть инструкции нашего коллеги, Игоря Иванова, по выращиванию гигантских арбузов в условиях средней полосы. В этой части переходим к практике — прививаем арбуз, высаживаем в открытый грунт и собираем урожай.
Осторожно, много фото!
Как айтишник гигантские арбузы в средней полосе выращивал. Часть 1
Хобби коллег очень многогранны. Сегодня расскажем об ИТ-шном подходе к выращиванию арбузов в регионе, где, казалось бы, нормально вызревать они не должны. Наш девопс, Игорь Иванов, объединил системный подход к сбору информации и комплектующие с AliExpress и из магазинов для садоводов, и уже не первый год собирает отличный урожай.
Своеобразная “инструкцию для начинающих” получилась довольно объемной. Мы разделили ее на две части: в первой автор разбирает теоретические основы, а во второй переходит к практике.
Осторожно, много фото!
Поговорим об оптимизирующих компиляторах. Сказ первый: SSA-форма
Всем привет. Сегодня я хотел бы поговорить об устройстве современных оптимизирующих компиляторов. Я никогда не публиковался на Хабре ранее, но надеюсь, что мне удастся написать серию статей, которая просуммирует мой опыт в этой области.
Коротко обо мне. Меня зовут Макс, и так получилось, что я вот уже 10 лет, почти с самого начала своей карьеры, занимаюсь оптимизирующими компиляторами. Я начинал в Intel, потом перешёл в Azul Systems, год провёл в Cadence и вернулся обратно, всё это время занимаясь компиляторными оптимизациями для Java, C++ и нейросетевых моделей. На момент написания статьи у меня чуть за 900 патчей в LLVM, большинство из них посвящено цикловым оптимизациям.
За это время я провёл десятки собеседований на позиции как интернов, так и инженеров сеньорного уровня, и довольно часто люди, приходя на эти собеседования, многих вещей не знают или знают поверхностно. И я подумал: а мог бы я написать такой цикл статей, чтобы человек, прочитав их, узнал бы всю ту базу, которая, на мой собственный взгляд, необходимо начинающему компиляторному инженеру? Очень бы хотелось, чтобы новичку в этой области можно бы было дать один (относительно небольшой по объёму) набор текстов, чтобы он получил оттуда всё необходимое для старта. Это не перевод, текст оригинальный, поэтому в нём могут быть ошибки и неточности, которые я буду рад исправить, если вы мне их укажете.
Итак, поехали.
Мы добавили markdown-режим в новый редактор
Вы просили — мы сделали.
Заблуждения программистов о тексте
Возжелавший прильнуть к жанру вестернов обратится либо к десятой строчке топ-250 лучших фильмов по версии IMDb, либо уже будет обладать знанием, что начинать нужно с «Хороший, плохой, злой». Там он увидит жадных потных мужчин, которые заканчивают фильм напряжённым мексиканским противостоянием. Жалкая охота за золотом конфедератов разворачивается на фоне кровавых битв Гражданской войны между «Севером» и «Югом». Таким зритель запомнит вестерны как жанр.
В реальности «Хороший» — это не классика, а яркий представитель поджанра ревизионистских вестернов, снят в Европе и наоборот, критикует американскую идеологию направления. В нём нет ничего общего с картинами, где герой встаёт на защиту правильного и справедливого общества от злодеев или кровожадных индейцев. В пятидесятых и шестидесятых классический вестерн сошёл на нет, но в коллективном сознании критика быстро заместила критикуемый объект. Когда Марти Макфлай жалуется на анахронизм наряда, он сравнивает себя с антигероями Клинта Иствуда, а не бравыми ковбоями в исполнении Джона Уэйна.
Иногда нашему восприятию требуются корректировки. Собственные заблуждения необходимо не забыть при проектировании информационных систем. Помнить нужно о многом: для времени, карт и почтовых адресов получаются длинные списки. Для текста неожиданностей мало.
Заблуждение 1. Любые символы, кроме управляющих, имеют предсказуемую ширину
В реальности ширина символов может отличаться даже в моноширных шрифтах.
Создаем свой загрузочный диск Linux
В статье описывается способ, как создать собственный загрузочный диск Linux (оптический диск или флешку), добавить в него только нужные программы и убрать все лишнее. Полученный образ в экспериментах занял менее 25 Мб. Он позволяет быстро загружаться, работать в текстовом режиме, создавать, редактировать, удалять файлы на разных файловых системах, имеет поддержку русского языка. За основу взят Debian.
Земля круглая, вода мокрая, JPEG шакалит, небо голубое… Или нет?
Вы можете сказать, что один факт выбивается из этого ряда в заголовке, потому что он не так очевиден, как остальные. Еще лет 10-15 назад я бы никогда не подумал, что тут могут быть возражения, а сейчас уже и не удивляюсь, что приходится объяснять простые истины: дело в том, что планеты обладают очень большой массой, поэтому гравитация стремится придать им форму шара. Вот и все! Хотел бы на этом закончить статью и поблагодарить за внимание.
Подпись на эллиптических кривых: всё, что нужно знать, чтобы подписать транзакцию в Bitcoin с полного нуля
Это - полный разбор алгоритма подписи на эллиптических кривых (ECDSA), который является ключевым элементом большинства блокчейнов (типа Bitcoin, Ethereum, ...). С примерами кода и реализацией с полного нуля. Всё сведено к уровню школьной математики, а читать код не обязательно!)
Mtt, или что-то посложнее, чем нарисовать треугольник
Забавно, куда порой могут привести несколько экспериментов. Вроде бы план был простой — посмотреть, что там такого интересного в этом вот вашем вулкане, что за хайп такой. Ну, нарисую что-нибудь. Нет, не треугольник, что-то посложнее, чем треугольник. Ручное выделение и освобождение дескрипторов? Ну уж нет, стрелять себе по ногам я не хочу, мне на них ещё ходить.
Минимальная реализация Lua на Rust
Бесплатный персональный OpenVPN-сервер на базе Oracle Cloud
На этот раз статья будет короткой и во многом самоочевидной. Потому что большинство потенциальных пользователей просто не знают о такой возможности, а сама настройка проста, как апельсин.
Oracle, придя на рынок облачных сервисов, активно привлекает новых клиентов. И одним из инструментов такого привлечения являются Always Free сервисы - зарегистрировавшийся клиент может пользоваться каким-то достаточно ограниченным набором ресурсов, как это следует из названия, бесплатно и неограниченно во времени. В список этих ресурсов входит два compute инстанса (каждый 2 ядра, 1GB RAM, 45GB HDD), которые можно использовать подо что угодно, но в нашем случае мы можем построить на них полностью бесплатный OpenVPN-сервер, буквально не умея практически ничего, кроме тыкания в кнопку Next. Чем мы и займемся.
Объяснение фильтра Калмана в картинках
Я обязан рассказать вам о фильтре Калмана, потому что он выполняет просто потрясающую задачу.
Как ни удивительно, о нём, похоже, знают немногие разработчики ПО и учёные, и это печалит меня, потому что это очень обобщённый и мощный инструмент для объединения информации в условиях присутствия неопределённости. Иногда его способность извлечения точной информации кажется почти магической, а если вы думаете, что я слишком много болтаю, то взгляните на это видео, в котором я показываю, как фильтр Калмана определяет ориентацию свободно плавающего тела, посмотрев на его вектор скорости. Потрясающе!
Клуб анонимных Дедов Морозов 2021–2022 на Хабре
Вот уже в десятый раз подряд открывает свои двери Клуб анонимных Дедов Морозов.
Идея совершенно проста:
Новая методика кэширования информации затенения в мировом пространстве
Новая концепция диабета 2 типа: опасный, но обратимый
Исторически сахарный диабет считался страшным заболеванием — в тяжёлых стадиях ему сопутствуют такие побочные эффекты, как слепота и гангрена конечностей. Большую часть истории диабета, известного ещё врачам Древней Греции как минимум 2500 лет назад, он считался неизлечимым. Терапия диабета уколами инсулина появилась только в XX веке: в следующем году исполнится 100 лет первому уколу инсулина, которым в 1922 году канадский доктор спас умиравшего от диабета 14-летнего мальчика. Однако инсулинотерапия — это лечение только для диабета 1 типа, при котором в организме человека нарушена выработка собственного инсулина. При более распространённом диабете 2 типа уколы инсулина — это не лечение, а симптоматическая терапия, которая только замедляет развитие болезни. Причины этого были открыты позже.
В XXI веке, благодаря развитию эндокринологии (науки о гормонах) представления о диабете 2 типа поменялись радикально. С одной стороны, список сопутствующих развитию диабета проблем только вырос и теперь включает сердечно-сосудистые заболевания, многие случаи рака и болезнь Альцгеймера. С другой — появившееся представление о пропущенном звене, их общем метаболическом корне — гормональном сбое, известном как инсулинорезистентность, привело к пониманию не только как диабет развивается, но и как это развитие остановить и обратить вспять, не доводя до инсулиновой иглы.
Один бинарник, любое окружение. Магия чистого C
Как мы представляем себе кроссплатформенность? Мы пишем программу на языке, который либо компилируется в исполняемый файл отдельно для каждой поддерживаемой платформы, либо использует разновидность виртуальной машины вместо бинарника (и тогда эта среда должна присутствовать в целевых системах). Есть также и низкоуровневые языки, на которых писать серьёзные программы менее удобно, чем на высокоуровневых монстрах со своими компиляторами или рантаймами, но зато такие программы менее требовательны к предустановленному софту или наличию ОС в принципе, как и менее разборчивы в архитектуре. И всё же, есть возможность писать один и тот же код и собирать один и тот же бинарь под все популярные архитектуры и ОС (и даже bare metal), и эта возможность появилась благодаря гениальной Justine Tunney. Она написала Cosmopolitan, библиотеку на C, позволяющую исполнять один и тот же код на любой машине, подобно Java… но без какого-либо предустановленного интерпретатора или виртуальной машины! Один и тот же скомпилированный файл может исполняться как минимум в любом дистрибутиве Linux, на Mac OS, Windows NT, FreeBSD, OpenBSD, и NetBSD и на bare-metal на x86 и ARM*. Это настоящая магия.
Как root-права и альтернативные прошивки делают ваш android смартфон уязвимым
Если вы являетесь регулярным читателем Хабра, то должно быть заметили что за последние несколько лет вышло немало статей о сборе персональных данных с мобильных устройств, и о попытках противодействия этому, было несколько отличных статей с детальными инструкциями по превращению своего смартфона на базе ОС Android в настоящую цитадель приватности и безопасности.
Часто для этого рекомендуется получение прав суперпользователя в системе (root-права), удаление системных приложений от Google и от производителя устройства, или даже полная замена стандартной ОС на альтернативные сборки, чаще всего LineageOS (бывший CyanogenMod). При этом первым шагом в этом процессе всегда будет так называемая "разблокировка загрузчика". Во время её выполнения устройство несколько раз покажет нам страшные предупреждения о том, что теперь оно станет более уязвимо для злоумышленников, но мы смело нажимаем "подтвердить" и шьём root или самую свежую сборку кастомной прошивки, не задумываясь о том какие проблемы создаёт нам незаблокированный загрузчик.
Я хочу рассказать вам как погоня за приватностью и безопасностью может привести к бóльшим проблемам чем использование стоковых устройств, как при физическом доступе к устройству можно установить в android бэкдор который может пережить сброс до заводских настроек, как можно вытащить данные из зашифрованного устройства не зная пин-код, не входя в систему и без запущенного режима отладки в меню разработчика.
Интересующихся приглашаю под кат.
Information
- Rating
- 1,955-th
- Location
- Москва и Московская обл., Россия
- Registered
- Activity