Pull to refresh
12
0

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

Send message

Есть ещё выдающиеся программисты, кроме Торвальдса, Беллара и Дина? Знакомьтесь — Джастин Танни

Level of difficultyEasy
Reading time6 min
Views43K
Программистам не дают Нобелевские премии. Хотя некоторые заслуживают. В нашей отрасли есть настоящие герои с выдающимися достижениями. Эти люди не строят карьеру, перепрыгивая с одной должности на другую, прокачивая зарплату. Создаётся впечатление, что им карьера вообще не важна. В силу высокого интеллекта, врождённой любознательности и особого характера эти люди не способны выполнять скучные, рядовые задания. Только интересные или важные. И только по своей воле, не по указанию сверху.

На Хабре рассказывали про «чак норрисов» от программирования, таких как Линус Торвальдс, Фабрис Беллар и Джефф Дин. Конечно, есть и другие феноменальные таланты, их много. Зачастую эти люди далеки от публичности, никогда не давали интервью и известны только по никам. Но их объединяет одно — выдающиеся индивидуальные разработки, которые разрывают шаблон и выделяются из общей массы.

Мы собирали этот список несколько лет. Начнём с последних строчек своебразного хит-парада… Знакомьтесь — Джастин Танни (Justine Tunney), хакерша и гений системного программирования.
Читать дальше →
Total votes 146: ↑132 and ↓14+118
Comments88

Несколько слов в защиту VLA

Reading time10 min
Views7.5K

Исходный вариант этого опуса я написал еще в 2019 на другом ресурсе. Он планировался как вялый ответ на поток совершенно незаслуженной критики, направленной на такое свойство языка, как Variable Length Array (VLA). Поток обладал свойствами типичной эхо-камеры и пытаться противостоять ему было бесполезно. Однако относительно недавно я с удивлением узнал, что выходящий вскорости стандарт C23 встал на ту же самую точку зрения, которой придерживаюсь в этом вопросе и я: в C23 поддержка VLA снова становится обязательной, а опциональной остается лишь возможность объявления локальных VLA. Я, разумеется, ни в коем случае не претендую на то, что мои разглагольствования на эту тему сыграли какая-то роль в принятии этого эпохального решения. Состояние дел в С23 я упоминаю лишь потому, что оно воодушевило меня опубликовать здесь несколько причесанную версию этого текста, даже если теперь VLA не нуждаются в чьей-либо защите.

Читать далее
Total votes 20: ↑19 and ↓1+18
Comments2

Теория чисел. Новый метод анализа распределения чисел, в том числе и простых

Reading time6 min
Views17K

В статье рассказывается о новом подходе к анализу распределения простых чисел.
О подходе с использованием формулы распределения чисел для всего натурального ряда.

Читать далее
Total votes 45: ↑41 and ↓4+37
Comments15

Формула Бине без плавающей точки

Reading time4 min
Views13K

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

Читать далее
Total votes 77: ↑76 and ↓1+75
Comments29

Made at Intel. Architecture and religion — 2

Reading time9 min
Views26K

Это - продолжение (но еще не окончание!) первой главы. Начало – здесь.

Linpack – как важнейшее из искусств

Второй важнейший “культ”, который определял развитие серверной архитектуры на протяжении десятилетий – это “сакрализация” Linpack. Сам бенчмарк представлен Джеком Донгаррой аж в 1979 году. Но  культовым статусом своим он обязан усилиями маркетологов из многих IT компаний (Intel, AMD, IBM, Nvidia, Fujitsu и тд). Linpack имеет массу неоспоримых достоинств.

Это всего лишь ОДИН тест, в отличие от скажем SPEC CPU, где их 40 с хвостиком.

К тому же (в отличие от SPEC) он совершенно бесплатный.

Очень легко обьяснить, что Linpack делает. Он решает систему линейных алгебраических уравнений с числами двойной точности. Используется метод (P)LU разложения (Гаусса) с выбором ведущего элемента.

В качестве результата Linpack выдает ОДНО число – измеренную производительность системы  в (гига -, тера -, пета -, экза) флопах. На основании Linpack строится мировой рейтинг суперкомпьютеров  TOP500 и российский TOP50.  Так же вычисляют эффективность (искушенные люди обращают на нее внимание), как отношение измеренной производительности к пиковой. Правда, в последнее время само понятие эффективности является несколько “размытым”, из-за того что в процессе исполнения теста тактовая частота может “плавать”.

Linpack идеально параллелится (MPI, OpenMP и вообще что угодно) и векторизуется.

И наконец Linpack обеспечивает практически полную (>90%) загрузку вычислительных устройств. В то время как обычные приложения редко показывают больше 20.

И все же Linpack – это всего лишь ОДИН (и к тому же весьма специфичный) тест и переоценка его роли обходится очень дорого. Тем не менее история показывает, что зачастую так оно и происходило.

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

Типографика фильма «Бегущий по лезвию»

Reading time18 min
Views22K

После подробного исследования фильма «Чужой» настало время взглянуть на типографику и дизайн ещё одного классического научно-фантастического фильма Ридли Скотта«Бегущий по лезвию» (Blade Runner). Эта лента, снятая по мотивам романа Филипа К. Дика «Мечтают ли андроиды об электроовцах?», упрочила репутацию Скотта как автора красивой, умной научной фантастики в жанре tech noir.

(Должен заранее сообщить, что в статье есть множество спойлеров о фильме. Если вы не хотите знать, когда в «Бегущем по лезвию» единственный раз мелькает шрифт Eurostile Bold Extended, то отложите чтение.)
Читать дальше →
Total votes 73: ↑73 and ↓0+73
Comments5

Вражеский нейлон

Reading time15 min
Views49K

История сия произошла в начале семидесятых годов прошлого века. Она наверняка тянет на сюжет крутого боевика, поскольку в ней присутствуют и засыпанный сибирскими снегами Вычислительный Центр и специальная бригада сотрудников КГБ во главе с майором и роскошная блондинка, которая разделась донага ради раскрытия большой тайны. Будут в этой истории допрос и обыск а также арест невиновного. А арестованным невиновным окажется сам автор.
Если интересно и есть время - читайте дальше.

Читать далее
Total votes 290: ↑278 and ↓12+266
Comments153

Made at Intel. Architecture and religion

Reading time6 min
Views44K

Я подустал от мрачных текстов и вспомнил о своей давней мечте. За 20 с хвостиком лет работы в Интел у меня развеселых историй накопилось на целую книгу. Хотелось в ретроспективе посмотреть на некоторые события, участником которых мне довелось быть. И еще хотелось отдать дань уважения компании и людям, с которыми мне посчастливилось работать. Я уже даже название придумал – Made at Intel. Понятно, что пока я был внутри конторы, речь о публикации этих баек идти не могла. Я сам подшучивал, что для публикации нужно правильно выбрать время. В смысле сначала уволиться, а потом публиковать, а не быть уволенным вследствие публикации. :) Однако примерно 2 года назад я Интел покинул, и казалось бы меня уже ничего не сдерживало. Но тут, как всегда – то перо поломается, то струна порвется, то еще какая бяда приключится. К тому же на то чтобы писать книжку – это же рeшимости набраться надо... И вот – вчера я решил, что большое надо начинать с малого. Буду писать по главке и выкладывать сюда - собирать фидбек. Так мало –помалу и наберется.

Итак, сегодня вашему вниманию представляется первая глава, в которой эволюция архитектур Intel рассматривается с точки зрения ... истории религиозных течений. Да –да, не удивляйтесь, архитектура вычислительных устройств –это одна из самых религиозных вещей. Не думайте, что все решения по Instruction Set Architecture принимаются исключительно на основе анализа данных – это совсем не так. Скорее похоже на средневековое государство – тут есть немного бизнеса, побольше политики и очень много религии. Все просто – почти любой эксперимент в этой области растягивается на годы и обходится в миллиарды долларов. Хуже всего, что в процессе дизайна можно давать лишь приблизительные оценки ключевых характеристик – частоты, производительности, энергопотребления, температурной карты. То, как все оно будет на самом деле становится понятным уже только тогда, когда чип выходит из печки. Да сейчас в этой области уже накоплен определенный опыт и наши оценки становятся несколько точнее, но и только. А 20 лет назад этих знаний было куда меньше. И пионеры, подобные Интел двигались в темноте на собственный страх и риск. Разумеется, в таких условиях на первый план выходит кто во что ВЕРИТ. Ну да – еще кто лучше говорить умеет. Поэтому лучшие архитекторы приходят из школ с углубленным изучением богословия. :)

Читать далее
Total votes 156: ↑155 and ↓1+154
Comments49

Как мы делали Warface для Денди

Reading time31 min
Views43K
В октябре 2020 мне написал мой друг Андрей Скочок, работающий в Mail.ru, и предложил сделать для них необычную промоакцию.

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



Читать дальше →
Total votes 246: ↑246 and ↓0+246
Comments40

11 Aтрибутов Хорошего Firmware

Level of difficultyEasy
Reading time6 min
Views18K

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

Читать далее
Total votes 56: ↑51 and ↓5+46
Comments114

Как графический формат прошлого века привёл к zero-click exploit в iOS

Reading time11 min
Views18K

Тема информационной безопасности в сфере интересов команды М.Видео и Эльдорадо, поэтому делимся с вами очередным интересным переводным тематическим материалом. В начале 2022 года Citizen Lab удалось выявить zero-click-эксплойт на основе NSO iMessage, использовавшийся для атаки на активиста из Саудовской Аравии.

В этой серии из двух постов мы впервые расскажем, как работает zero-click-эксплойт iMessage.

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

Рассматриваемая в посте уязвимость была устранена 13 сентября 2021 года в iOS 14.8 в рамках CVE-2021-30860.
Читать дальше →
Total votes 106: ↑106 and ↓0+106
Comments4

Реальный Windows. Пишем realtime под окошками

Reading time11 min
Views15K

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

Читать далее
Total votes 81: ↑80 and ↓1+79
Comments142

Рисуем генеративные грибы на javascript

Reading time8 min
Views18K

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

Читать далее
Total votes 91: ↑88 and ↓3+85
Comments12

Ультра быстрый Cron с шагом в миллисекунду, или когда тестовые задания такими прикидываются

Reading time25 min
Views21K

Давным-давно наш коллега @novar разместил на Хабре статью с описанием вот такого незатейливого ТЗ, полученного им от потенциального работодателя:

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

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

Ах да. Если вы тот самый работодатель, вот готовый код под ваше ТЗ. Правда на Java, а не на C#. Но вы же не думали, что всё будет так просто?

Читать далее
Total votes 105: ↑102 and ↓3+99
Comments59

711 тысяч строк кода, 20 лет, один разработчик: как создавалась Dwarf Fortress

Reading time8 min
Views24K

Dwarf Fortress — один из тех странных проектов, ставших любимыми в Интернете. Это бесплатная игра, в которой можно быть или авантюристом, или управлять крепостью дворфов в случайно сгенерированном фэнтези-мире. Симуляция очень подробна, каждая новая игра создает множество цивилизаций со своей историей, мифологиями и артефактами.

Она стала знаменитой, и вполне справедливо. Каждый дворф уникален, он имеет эмоциональное состояние, предпочтения в драгоценных камнях и причины для недовольства. И всё это происходит в ASCII-интерфейсе, кажущемся новичкам каким-то обманом, но опытные игроки способны ориентироваться в нём как в бегущем тексте из фильма «Матрица»: они видят в этих символах дворфов, реки, легендарных огромных чудовищ.

Вся игра стала творением одного разработчика — Тарна Адамса с ником Toady One, который работал над Dwarf Fortress с 2002 года. Первые четыре года это был хобби-проект, но с 2006 года он стал его основной работой. Адамс пишет весь код сам, а его брат помогает с дизайном и создаёт истории на основе игры. До недавнего времени он собирал пожертвования, чтобы продолжать работу, но сейчас создаёт версию с пиксельной графикой и переработанным UI, которую можно будет купить в Steam.

Я связался с Тарном Адамсом, чтобы узнать у него о том, как ему удавалось в течение пятнадцати с лишним лет справляться с единой увеличивающейся кодовой базой, сложностями поиска путей и отладкой мёртвых кошек.
Читать дальше →
Total votes 44: ↑44 and ↓0+44
Comments16

Как правильно делать уборку в доме, если кого-то стошнило

Reading time13 min
Views44K

Ультрафиолет с длиной волны 365 нм показывает следы органики в вашей квартире

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

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

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

Поэтому сегодня будем говорить про домашнюю микроживность, правильную уборку и места, куда вы наверняка забываете заглянуть. Заодно посмотрим, как правильно корректировать уборку, если кто-то заболел и по квартире внезапно оказались разлиты биологические жидкости больного человека.
Читать дальше →
Total votes 86: ↑80 and ↓6+74
Comments80

Увеличивает ли соседство простых чисел количество делителей числа?

Reading time12 min
Views9.4K

В последнее время я думал о числе 60.

Вавилонские счетоводы и землемеры основывали свою арифметику на шестидесятеричном счислении, возможно потому, что эта система помогает в работе с дробями. Если упорядочить объекты в группы по 60, их можно делить на половины, на трети, четверти, пятые, шестые, десятые, двенадцатые, пятнадцатые, двадцатые, тридцатые и шестидесятые части. Ни одно меньшее число не имеет такого количества делителей, и благодаря этому число 60 относится к элитному классу высокосоставных чисел (этот термин и его определение были предложены в 1915 году Сринивасой Рамануджаном.)

Но у числа 60 есть и другая особенность, которую я заметил только несколько недель назад, хотя о ней могли знать вавилоняне, а уж Рамануджан знал точно. Число 60 с его выдающимся количеством делителей тесно расположено между двумя другими числами, вовсе не имеющими делителей, за исключением 1 и самого себя: и 59, и 61 являются простыми. Такие пары простых чисел, разделённые одним промежуточным целым, называются числами-близнецами. Примерами таких чисел являются пары (5, 7), (29, 31) и (1949, 1951). На протяжении многих лет исследователи теории чисел внимательно изучали числа-близнецы. Меньшего внимания удостоилось число посередине — непрошенный гость, отделяющий близнецов друг от друга. Рискуя выглядеть немного слащавым, я назову это число посередине братом близнецов, или просто братом.
Читать дальше →
Total votes 74: ↑74 and ↓0+74
Comments2

Григорий Остер — Вредные советы для писателей мануалов

Reading time9 min
Views25K
Недавно мне опять пытались продать «Тик-ток». Молодёжь заливалась песнями о том, как же прекрасна новая платформа. «Возможно» — сказал я — «И чем же она так прекрасна?»

— Ну, там можно научиться огромному количеству новых и неизвестных вещей.
— А… Правда? Ок, удиви меня.
— Вот! – наивный юнец с радостью ткнул на указатель на приборной панели своей «Хонды».
— И что же в этом такого прикольного?
— Видишь стрелку? Она показывает с какой стороны у тебя крышка бензобака, чтобы ты помнил, где останавливаться у бензоколонки.


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

— Ну вот, пожалуйста. Это было известно ещё до «Тик-тока», и даже до «Фэйсбука». Эх! Это было известно ещё до интернета и, возможно, до появления автоматической коробки передач. Это было известно до того, как твои родители появились на свет. Ты мануал-то читал?
— Нет.
Оно и видно.

Признайтесь, люди не читают мануалов. Давайте посмотрим, что Вам можно посоветовать, чтобы люди от них вообще избавились.
Читать дальше →
Total votes 114: ↑109 and ↓5+104
Comments145

Три ужасные фичи программирования из прошлого

Reading time6 min
Views56K

Я верю в программистское клише о том, что большинство плохих фич имеет причины для существования. Ненавидимый многими оператор goto позволяет быстро и удобно выбраться из глубоко вложенной структуры, если пользоваться им с умом. Определённая степень нестрогости типов позволяет им быть более изящными. Указатели памяти могут заставить вас возненавидеть свою жизнь, но они были критически важны в те годы, когда компьютерное «железо» было слабее современного умного термостата. Список можно продолжать.

Но когда я вспоминаю об этих запылённых старых реликтах, то осознаю, что некоторые старые идеи настолько плохи, что лучше всего было бы сжечь их навечно. В этой статье я расскажу о трёх фичах языков программирования, которые были настоящим кошмаром.
Читать дальше →
Total votes 116: ↑108 and ↓8+100
Comments322

Водород

Reading time14 min
Views52K

По революционным праздникам в СССР проводились торжественные демонстрации. Для взрослых участие нередко было обязательным. Ну а детям -- им, что ни праздник, всё в радость. Торжественная обстановка, можно помаршировать со взрослыми в стройных колоннах, покричать "ура", поразмахивать красными флажками и надувными шариками...

Шарики. Кажется, именно с них-то всё и началось.

Согласно советским открыткам, демонстрация должна была выглядеть как-то так:

Читать далее
Total votes 293: ↑289 and ↓4+285
Comments206
1
23 ...

Information

Rating
Does not participate
Registered
Activity