Search
Write a publication
Pull to refresh
1
0
Send message

Как ускорить сложение и вычитание при помощи 2^51

Level of difficultyEasy
Reading time8 min
Views10K

Помните, как долго выполняется сложение на бумаге?

¹¹ ¹
6876
+ 3406
------
10282

Начиная с единиц, мы складываем 6 + 6 = 12, записываем 2 и переносим 1. Затем пошагово двигаемся влево, пока складываемые разряды не закончатся.

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

Но сначала я задам вопрос: почему сложение столбиком мы начинаем с самого младшего разряда? Почему бы не начать слева?

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

Читать далее

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

Level of difficultyEasy
Reading time5 min
Views16K

Привет, Хабр! Знаешь, почему раньше деревья были выше, трава зеленее, а солнце светило раньше? Да просто потому, что раньше действительно так и было. Я просто хочу вспомнить свои первые игры, с которыми меня познакомил в 2000х мой папа, и я уверена, что ты поймешь, о чем я.

Ведь ты тоже запускаешь очередную сверхпопулярную AAA‑игру с сотней механик, с RTX‑отражениями и каким‑то квантовым рендерингом, но через полчаса зеваешь и закрываешь? Просто не цепляет, да? А потом случайно натыкаешься на старенький образ Another World, и вдруг чувствуешь, как сердце начинает биться чуть быстрее, будто ты снова сидишь в вечером у ЭЛТ‑монитора, когда дискеты с треском загружали целые вселенные, а на столе была та самая мышка с шариком.

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

Читать далее

Абсурдно усложнённая схема регистров в Intel 80386

Reading time16 min
Views17K
Фото кристалла i386 с обозначенным блоком регистров (полномасштабная версия фото доступна в оригинале статьи)

Революционный Intel 80386 (1985 год) стал первым 32-битным процессором с архитектурой x86. Как и большинство процессоров, он содержит огромное число регистров, которые являются ключевой составляющей, обеспечивая сверхбыструю обработку данных в сравнении с основной памятью. К ним относятся регистры общего назначения, регистры индекса и селекторы сегментов, а также специальные регистры для управления памятью и разработки операционной системы. В этой статье я буду говорить о кремниевом кристалле i386 и объясню, как в нём организованы основные регистры.
Читать дальше →

Великая иллюзия Copilot

Level of difficultyEasy
Reading time12 min
Views26K

Глава 1: мой коллега, программист

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

«Постой-ка. У меня появилась идея. Дай мне клавиатуру.»

Идея. Ага. Как у младенца появляется «идея» засунуть вилку в розетку. Я почти доделал нечто прекрасное; стройную, изящную логику, пронзающую сложность подобно ножу, режущему масло. И тут появился он — бьёт по клавиатуре, как будто она ему деньги должна, копипастит код-франкенштейн из комментария на StackOverflow, написанный последователем Дяди Боба в 2014 году.

Знает ли он, что делает наша система? Нет.

Прочитал ли он тикет? Разумеется, нет.

Ощущает ли он уверенность, когда безрассудно корёжит глобальное состояние? Разумеется, да.

Читать далее

l9ec: волшебный патч ядра Linux

Level of difficultyMedium
Reading time10 min
Views20K

Если вам неудержимо хочется использовать оборудование из музея для современной разработки — статья специально для вас.

Читать далее

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

Level of difficultyMedium
Reading time19 min
Views14K

Осторожно: помните ли вы, как в вашем телефоне Siemens, Motorola и Sony поселились маленькие программы — «эльфы»? В рамках этой статьи мы во всех деталях исследуем прошивку бюджетного кнопочника, разберемся в её архитектуре, хакнем и напишем загрузчик тех самых эльфов с MicroSD-флэшки. При этом я постараюсь объяснить всё максимально простым и доступным языком!

Недавно я познакомился с легендой форума allsiemens.ru — Ilya_ZX, который известен своим огромным вкладом в тему реверса и моддинга телефонов на платформе E-Gold и S-Gold. Илья поведал мне интересную историю о том, как в начале нулевых, будучи студентом, поспорил с одногруппником, сможет ли он добавить ‭‭«змейку‭‭» в свой Siemens A60. И спор он этот выиграл, путем бессонных ночей ковыряния прошивки в IDA Pro! Я подумал ‭‭— «а чем я хуже?‭‭». Взял в руки кнопочный телефон на платформе Spreadtrum, сдампил прошивку и загрузил в дизассемблер...

Если вам интересен подробный процесс реверса различных модулей прошивки, как они взаимодействуют между собой, как я написал программу для применения патчей к фуллфлэшу и, собственно, бинлоадер с первой программой — жду вас под катом!

Читать далее

Как упростить себе освоение Rust

Level of difficultyEasy
Reading time13 min
Views12K

Я наблюдаю за тем, как люди снова и снова совершают одни и те же ошибки при изучении Rust. Ниже представлены мои мысли (в порядке важности) о том, как можно упростить себе процесс обучения. Моя цель — помочь вам сэкономить время и избежать разочарования.

Расслабьтесь

Перестаньте сопротивляться. Это самый важный урок.

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

Темп обучения не особо зависит от вашего ума и предыдущего опыта программирования. Главнее всего ваше отношение к языку.

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

Читать далее

Разложение (проституирование) инженерной деятельности как ключевая причина краха советской системы

Level of difficultyEasy
Reading time18 min
Views65K

Есть тема, которая проявляла себя в бесконечном количестве рассказанных реальных, но при этом жутко анекдотических историй из инженерной деятельности, когда ресурсы, результаты НИОКР-ов, и много чего «сливали в унитаз».

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

И наконец,  мемом начала примерно 2010 года стала на просторах интернета запись какого-то реального технического совещания, закончившегося воплями - «...Проср*ли все полимеры !!..»

Откуда все это?  Анекдоты рассказываются, вопли стихают… а далее  следует пустота и молчание..Есть некоторое табу молчания на углубление в  «механику» из шкурных интересов, которые создают проблемы и реинкарнируют их снова, снова и снова. 

Читать далее

Веб-разработка на ванильном HTML, CSS и JavaScript

Level of difficultyMedium
Reading time19 min
Views16K

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

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

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

Почему мы перешли на RAID 10

Reading time7 min
Views39K


Недавно у нас развалился RAID 5. Один диск на первом году своей жизни умер сам от естественных причин. Такое может быть и в период трёхлетней гарантии — нечасто, но может. Мы вынули его, поставили на его место диск из горячего резерва — и во время ребилда в массиве умер второй диск. Данные умерли вместе с ним.

Один из пользователей, чьи данные там были, очень живо интересовался тем, что за конфигурация у нас была. Вплоть до моделей дисков, дат их производства и серийных номеров. Он, вероятно, считал, что там стоит какое-то старьё, и до последнего не верил, что так бывает на новом железе. Потом очень искренне смеялся над фразой, что ни одна схема резервирования RAID не даёт стопроцентной гарантии сохранности данных.

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

Бывает всё.

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

Это привело к целой цепочке последствий, в частности, к тому, что мы перешли на RAID 10 как на новый для нас стандарт хранения данных.
Читать дальше →

HP: ваш оригинальный диск совсем не оригинален. Кто виноват и что делать?

Reading time2 min
Views23K
При работе с железом, потребительского ли, бизнес сегментов — не важно, сложно представить что-то, вызывающее столько «любви и обожания» к производителю, как «белые списки» совместимого оборудования и расходников.

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

В такой момент проникаешься к производителю особой нежностью и говоришь много ласковых слов.


Гораздо веселее наткнуться на подобное сообщение там, где увидеть его ну никак не ожидаешь. Обыденная, вроде бы, ситуация: вылетел диск из raid'а. Заменил таким же, массив должен бы перестроиться и продолжить работать. Да не тут-то было!

Бывает так, что рейд-то перестроился, а сервак продолжает гореть красным, и статус «degraded» так никуда и не делся. С этой проблемой в последнее время я сталкивался довольно часто.

Читать дальше →

1. Обзор коммутаторов Extreme Enterprise-уровня

Reading time23 min
Views18K


Введение


Добрый день, друзья! С удивлением заметил, что на Хабре не очень много статей посвящено продуктам такого вендора как Extreme Networks. Чтобы это исправить и познакомить вас ближе с продуктовой линейкой Extreme, я планирую написать небольшой цикл из нескольких статей и начать хочу с коммутаторов для Enterprise.

Цикл будет включать в себя следующие статьи:

  • Обзор коммутаторов Extreme Enterprise-уровня
  • Дизайн сети Enterprise на коммутаторах Extreme
  • Конфигурация настроек коммутаторов Extreme
  • Обзорное сравнение коммутаторов Extreme с оборудованием других вендоров
  • Обзор технической поддержки и гарантии Extreme

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

Игры старше 20 лет, которые все еще живы

Reading time10 min
Views90K

Привет, Хабр! Я время от времени пишу об играх и заметил очевидный факт, о котором не могу молчать. Пока мировые гиганты геймдева тратят сотни миллионов долларов на ААА- и АААА-проекты, геймеры продолжают развлекаться в играх, вышедших более 20 лет назад. Я больше скажу: многие из этих игр не только до сих пор продаются, но и удерживают тысячи игроков в онлайне прямо сейчас.

В этой статье я предлагаю взглянуть на пять невероятно живучих проектов, о которых вы точно слышали, если вам больше 30. Под катом — истории о том, как пользовательский мод для «халвы» вырос в легендарную «контру», а Half-Life стала культурным феноменом, как разработчики DOOM заставили нас верить в то, что мы играем в 3D-шутер, как фанаты сделали GTA San Andreas бессмертной и за что так полюбился Quake III Arena.
Читать дальше →

Что я узнал, проконсультировав 100 айтишников

Reading time12 min
Views92K

Категорически приветствую, дорогой Хабр! Меня зовут Сергей и я психолог. Но не нужно хлопать и говорить «я тебя так понимаю» или «сочувствую». Я искренне люблю свою профессию. Одна из главных причин этой любви – возможность прикоснуться ко множеству жизней и понять размышления человека, его майндсет, если позволите. А также, увидеть, к чему этот майндсет привел – к каким достижениям и, разумеется, трудностям.

И по моим подсчетам, за последние три года я пообщался (как бы сказали любимые здесь всеми HR-ы: «провел глубинное интервью») примерно с сотней айтишников всех мастей. И вот замеченные закономерности и выводы мне хочется обобщить в этой статье. Фактически, это будет набор жизненных историй, переживаний и размышлений, которые достаточно трудно узнать в таком количестве и на таком уровне откровенности, не находясь в роли психолога. Впереди вас ждет квинтэссенция самых сокровенных мыслей, желаний и неудач ваших коллег по цеху, которые вам никогда об этом не расскажут. Поехали!

Подумать о себе

Ян Лекун, создатель LeNet, формата DjVu и адвокат опенсорса

Level of difficultyMedium
Reading time7 min
Views4.5K
Ян Лекун, один из крёстных отцов современного ИИ, в своём твиттере резко критикует корпоративных исследователей ИИ, которые ведут проприетарные разработки и занимаются «нагнетанием страха». Среди этих людей называются Сэм Альтман (OpenAI), Демис Хассабис (Google DeepMind) и Дарио Амодеи (Anthropic)

Ян Лекун (Yann LeCun) — французский и американский учёный в области машинного обучения и компьютерного зрения. Известен как автор легендарной системы LeNet (1989 г.), где одним из первых начал применять методы биологических нейронных сетей для оптического распознавания символов (OCR).

Сейчас занимает должность вице-президента и ведущего исследователя ИИ в корпорации Meta (руководит разработкой опенсорсной языковой модели LLaMA, в том числе). При этом остаётся ярым приверженцем опенсорса, свободной науки и научно-технического прогресса человечества.
Читать дальше →

Спасение озонового слоя: момент, когда цивилизация достигла пика формы

Level of difficultyEasy
Reading time7 min
Views7.5K


История «починки» озонового слоя — это история успешного коллективного решения человечеством глобальной проблемы.
Читать дальше →

Технотекст 7: шорт-листы для 499 отборных статей

Level of difficultyEasy
Reading time22 min
Views7K

Технотекст 7 получился необычным: мы провели всего одну рассылку, остальные статьи собирали органически — анонсами, упоминаниями и даже личным общением с авторами (как в личке, так и в оффлайн формате). Для такой активности результат превзошёл все ожидания: мы получили 833 заявки, приняли 763, в шорт-листы попали 499 заявок, из них 132 от частных пользователей, 367 — от компаний.

Почти все статьи оказались качественными — поэтому при скоринге материалов для шорт-листов оставались в первом туре статьи с рейтингом выше +50 и даже выше +100. Из неприятного — две «нейроночные» статьи, они были сняты с конкурса, искренне надеемся, что это был эксперимент и кто-то пробовал нас на прочность. Увы, думаю, что этот год стал последним спокойным с позиций ИИ-шного контента — в новом сезоне проверяться будет каждая статья. 

Читать далее

lnav — супернедооценённый инструмент для работы с логами

Reading time6 min
Views20K

Доброго дня. Это мой первый пост на хабре, поэтому не будьте особо строги к нему.

В мире разработки, системного администрирования и DevOps не смотря на то, что давно существуют и заняли свою нишу инструменты, связанные с централизованным сбором, визуализацией и анализом логов (graylog, ELK/EFK, loki, loggly и другие), всё ещё существует необходимость периодически взять шашку в руки и поработать со старыми/добрыми (а может быть и не очень добрыми) текстовыми логами. За 21 год своей деятельности я успел побыть системным администратором, DevOps инженером, разработчиком, CTO и системным аналитиком, но необходимость периодической работы с логами неизменно присутствовала в том или ином виде всегда. Это может быть разбор вывода нового сервиса или контейнера на машине разработчика, что-то, что ещё не успели завести (или сознательно по каким-либо причинам не завели) на централизованную систему сбора логов или, например, сервис, временно включенный в режиме debug для поиска причин проблемы. Ситуаций бывает много и ситуации бывают разные, а текстовые логи были, есть и ещё долго будут с нами.

Все, кто как-либо связан с DevOps знают про такие утилиты как more, less, tail, head, grep, sed, awk (а кто-то и ещё десяток более специфичных) и при необходимости их используют, но из тех, с кем я общался, никто не подтвердил мне, что знает про lnav. Я и сам не знал и искал нечто подобное более десяти лет. lnav — это не просто швейцарский армейский нож в мире работы с логами, а целый космический корабль, на котором можно улететь в соседнюю галактику. Мой мир разделился на "до" и "после" знакомства с этой утилитой. Там, где раньше требовались часы, а то и десятки часов на анализ логов, теперь хватает считанных минут.

Читать далее

Месяц с Nintendo 2DS: последняя великая портативка

Level of difficultyEasy
Reading time15 min
Views5.7K
image

Сегодня консоли Nintendo 3/2DS с теплотой вспоминают за гигантскую библиотеку игр, уникальные фишки и индивидуальность (особенно на фоне безликих UI современных приставок). За годы вокруг неё выросло огромное сообщество моддеров, так что даже после полного прекращения поддержки со стороны Nintendo, 3DS живее всех живых.

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

Для защиты своего сервера я использую zip-бомбы

Level of difficultyEasy
Reading time3 min
Views86K

Основной объём трафика в вебе возникает из-за ботов. По большей части, эти боты используются для обнаружения нового контента. Это читалки RSS-фидов, поисковые движки, выполняющие краулинг вашего контента, а сегодня и боты ИИ, собирающие контент, чтобы скармливать его LLM. Но есть и зловредные боты. Их создают спамеры, скрейперы контента и хакеры. На моём прежнем месте работы бот обнаружил уязвимость Wordpress и встроил в наш сервер зловредный скрипт, а затем превратил машину в ботнет, используемый для DDOS. Один из моих первых веб-сайтов был полностью выдавлен из поиска Google из-за ботов, генерирующих спам. Мне нужно было найти способ защиты от этих ботов, поэтому я начал пользоваться zip-бомбами.

Читать далее

Information

Rating
Does not participate
Registered
Activity