Search
Write a publication
Pull to refresh
395
209.5
Алексей Костенков @Erwinmal

Рептилоид

Send message

Почему на новые SSD ставят вентиляторы. Термотроттлинг

Level of difficultyEasy
Reading time6 min
Views18K
ineo M.2 2280 SSD Rocket Heatsink с вентилятором, источник

Динамический термотроттлинг — функция современных SSD, когда контроллер специально замедляет/приостанавливает свою работу, чтобы снизить температуру ячеек памяти NAND. Он делает это ради сохранения данных, чтобы накопитель не перегрелся и не сработали контуры отключения питания.

С каждым поколением PCIe пропускная способность линий PCIe обычно удваивается. В PCIe 4.0 скорость SSD приближалась к теоретическому максимуму 8 ГБ/с. Сегодня SSD PCIe Gen 5.0 x4 разгоняются до 10−14 ГБ/с, при этом сильно нагревается контроллер (неудивительно, что эти микросхемы вообще долго не живут).
Читать дальше →

СУБД Redis и её автор antirez, программист и фантаст

Level of difficultyEasy
Reading time10 min
Views16K


Сальваторе Санфилиппо aka antirez — итальянский программист, проживающий в Катании (на острове Сицилия). Провинциальное местонахождение не мешает звезде IT-индустрии: он известен на весь мир как автор СУБД Redis. 46-летний antirez входит в число самых авторитетных и талантливых программистов-одиночек с хакерским бэкграундом.

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

Как WhatsApp справлялся с 50 миллиардами сообщений в день, имея всего 32 инженера

Level of difficultyEasy
Reading time4 min
Views28K

Январь 2008 года — Калифорния, США.

Инженер Ян Кум нанимается на работу в Facebook* — получает отказ.

Это был не конец — он продолжил двигаться дальше.

В следующем году он покупает iPhone и сразу же понимает огромный потенциал нового App Store.

С несколькими бывшими коллегами из Yahoo он решает создать программу мгновенного обмена сообщениями. Программе дают имя WhatsApp. Предназначение WhatsApp — стать заменой дорогостоящим SMS.

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

WhatsApp мог справляться с 50 миллиардами сообщений в день от 450 миллионов активных пользователей, имея в штате всего 32 инженера.

Хотя взрывной рост продукта — это приятная проблема, для её решения Яну Куму и команде разработчиков WhatsApp пришлось применить самые передовые технологии проектирования.
Читать дальше →

HTML и CSS ошибки, влияющие на доступность. Мой опыт и моего незрячего знакомого Ильи

Level of difficultyMedium
Reading time7 min
Views12K

Многие разработчики думают, что доступность реализуется только с помощью aria-атрибутов. Если их не добавить, то всё, доступности нет. Конечно, aria-атрибуты нужны, но HTML и CSS такая же важная часть процесса создания доступных интерфейсов. Эти технологии непросто несут в себе кучу скрытых моментов, влияющих на доступность. Они напрямую позволяют её улучшить. В статье хочу показать это.


Я затрону не все аспекты. Их очень много, поэтому поговорю о: интерактивных элементах, доступности текста, анимации и изображениях. В статье буду использовать опыт моего незрячего знакомого (привет, Илья). Он внёс бесценный вклад. Уверен, что вам будет интересно. Поехали!

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

Shadowsocks-туннелирование корпоративного VPN

Level of difficultyEasy
Reading time8 min
Views70K

Если у вашей компании имеются серверы, работающие за границей, и доступ для внутренних пользователей вы предоставляете посредством VPN-протоколов (достаточно типовая схема, особенно после Covid — 2019, когда удалённая работа стала особенно популярной), то настало время действовать на опережение. Конечно, применение административного ресурса, возможно, защитит ваши интересы от тотальных проблем в будущем, но лучше подстраховаться, чем в один прекрасный день получить 100500 сообщений от систем мониторинга о недоступности опекаемых клиентов. Статья демонстрирует, как скрыть от противодействия со стороны систем глубокого анализа трафика сервисы компании, доступ к бизнес-процессам которых обеспечивается посредством VPN, используя для этого туннели shadowsocks.
Читать дальше →

Google Workspace и Office 365 постепенно закрывают для РФ. Ставим офисный софт на своём сервере

Level of difficultyEasy
Reading time6 min
Views19K

Nextсloud Office

В последнее время появляется всё больше новостей про блокировку офисных сервисов Google Workspace и Office 365 для российских клиентов. По слухам, отключают некоторые компании, попавшие в санкционные списки. Но скоро блокировка может распространиться на остальных, всё к этому идёт.

К счастью, есть много опенсорсных альтернатив на замену Google Workspace и Office 365. Это бесплатные открытые решения, которые можно установить на своём сервере.
Читать дальше →

S3-FIFO: новый эффективный алгоритм вытеснения из кэша на основе очередей FIFO

Level of difficultyMedium
Reading time18 min
Views9.3K
В этой статье я расскажу о простом и масштабируемом (Simple, Scalable) алгоритме вытеснения данных из кэша на основе трёх статических (Static) очередей FIFO (S3-FIFO). После проверки на 6594 трассировках кэшей 14 компаний мы показали, что S3-FIFO имеет меньшую частоту промахов, чем 12 лучших алгоритмов, разработанных в прошлые десятилетия. Более того, эффективность S3-FIFO устойчива — он имеет наименьший средний показатель промахов для 10 из 14 датасетов. Использование очередей FIFO позволяет S3-FIFO достичь хорошей масштабируемости с пропускной способностью в шесть раз больше по сравнению с оптимизированным LRU в cachelib на 16 потоках.

Мы пришли к выводу, что доступ к большинству объектов в смещённых нагрузках кэша выполняется только за короткий промежуток времени, поэтому критически важно быстро вытеснять их из кэша. А главная особенность S3-FIFO — это небольшая очередь FIFO, отфильтровывающая большинство объектов, не давая им попасть в основной кэш.

Иллюстрация работы S3-FIFO (с использованием порогового значения перехода из маленького в основной кэш, равного 1)
Читать дальше →

Графика древности: от текста к видеоиграм

Level of difficultyMedium
Reading time32 min
Views18K

Вот уже много лет в игровой индустрии вместе с самыми последними графическими технологиями успешно сосуществует пиксельная графика практически в том же самом виде, в каком она существовала в играх для домашних компьютеров и игровых приставок 80-х и 90-х годов. Её возвращение на игровые мониторы в конце 2000-х годов казалось кратковременной модой на ретро, но однажды вернувшись, пиксели остались с нами надолго.

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

Разработка индивидуальных средств передвижения?

Level of difficultyEasy
Reading time9 min
Views6.3K
Картинка Benzoix, Freepik

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

На руку этой тенденции играет всё увеличивающаяся урбанизация (по некоторым оценкам, к середине этого века около 70-80% населения Земли будет жить в городах). Большая скученность людей, невозможность или проблемы с поиском свободной парковки для авто заставляют присмотреться к таким средствам передвижения внутри городов более пристально.
Читать дальше →

Не усложняйте свои приложения

Level of difficultyEasy
Reading time6 min
Views14K

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

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

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

История компьютерных стратегий. Часть 9. «Shogun: Total War»: разноцветные самураи и гейши-убийцы бьются за власть и рис

Level of difficultyEasy
Reading time15 min
Views7.4K

В 2000 году в мире компьютерных стратегий произошла новая революция. Армии в сотни, а порой и в тысячи юнитов-самураев вели жестокие сражения в новомодных 3D-ландшафтах — и всё это сочеталось с режимом пошаговой стратегии, где по обширной карте с несколькими игроками перемещались фишки армий и полководцев, а также ниндзя и гейши. «Shogun: Total War» от британской студии Creative Assembly стал одним из главных открытий 2000 года — и заложил основу большой и популярной серии. И пусть его преемники в лице «Rome: Total War» и «Medieval 2: Total War» оказались несравнимо популярнее, в плане историчности «Сёгун», как ни странно, уверенно их обошёл. Почему так?
Читать дальше →

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

Level of difficultyEasy
Reading time10 min
Views16K


В первые выходные августа в «Музее компьютерной истории», что расположен в калифорнийском городе Маунтин-Вью, проходило мероприятие под названием Vintage Computer Festival West 2023 — выставка-фестиваль винтажных компьютеров. Сам я на этой выставке побывать не смог, но на фотографиях, которые показывали мне коллеги и знакомые, среди стопок технических книг, а также хорошо знакомых всем и каждому Atari и Apple Macintosh, я обратил внимание на необычную машину — компактный компьютер Tandy 600. Заинтересовавшись, я принялся искать в сети информацию об этом устройстве, и чем больше я о нём узнавал, тем больше оно меня удивляло.
Читать дальше →

Принцип работы async/await в JavaScript

Level of difficultyMedium
Reading time8 min
Views35K


Если вам доводилось работать с JavaScript, то вы наверняка встречались с синтаксисом async/await. Эта функциональность позволяет прописывать асинхронную логику синхронным образом, упрощая тем самым её понимание. Некоторым ветеранам JS известно, что async/await – это просто синтаксический сахар для существующего Promises API. Это означает, что в JS должен быть способ реализации функциональности async/await без использования ключевых слов async и await, хоть и более громоздкий. Именно об этом и пойдёт речь в данной статье.

Видео от автора на ту же тему.
Читать дальше →

Памяти Кевина Митника — хакера, ломавшего ФБР, АНБ и Кремниевую долину. Часть 3: «Фортуна повернулась ко мне задом»

Level of difficultyEasy
Reading time10 min
Views25K

В прошлой статье мы оставили Кевина Митника в тот момент, когда у него всё вроде бы начало налаживаться. Он разрулил подростковые проблемы с законом, дважды успешно сунул нос в Агентство национальной безопасности США, наконец получил грант на профессиональное обучение программированию и даже подсел на ассемблер. Кевин уже подумывал завязать с хакерством и фрикингом — взломом телефонных сетей, который был его главным увлечением юности. Но… Если бы ему удалось тогда соскочить, мы не писали бы сейчас биографию самого известного хакера 90-х, верно?
Читать дальше →

Как выработать интуитивное понимание логарифмов

Level of difficultyHard
Reading time14 min
Views42K

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

Зачем этому учиться?


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

Как я разбирал нестандартный формат 3D-моделей, чтобы показывать Лего у себя на сайте

Level of difficultyMedium
Reading time7 min
Views8.4K

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

Я перепробовал несколько редакторов 3D-моделей Лего (моим главным условием была работа на Linux, либо в вебе), и остановился на онлайн-редакторе Mecabricks. Но, уже перенеся туда несколько из моих творений, понял, что с задачей «показывать всем друзьям» всё будет сложнее: у Mecabricks довольно скудные возможности экспорта, а его собственный формат с расширением .zmbx понимает только он и его плагин для Blender.

Поэтому я решил посмотреть, как этот формат устроен, и написать свой конвертер во что-то более общепринятое. В качестве целевого формата я выбрал glTF, а инструмент незатейливо назвал zmbx2gltf.

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

Парольные менеджеры 2023 года: что нового?

Level of difficultyEasy
Reading time6 min
Views32K


С каждым годом хакеры становятся всё изощреннее в методах отъёма честно нажитого у пользователей интернета. Поэтому нужно всегда быть начеку и заботиться о защите своих персональных данных. Инструменты для этого известны: надёжное шифрование и защищённый парольный менеджер, внутри которого хранятся секреты, а пароль доступа знаете только вы (плюс дополнительная аппаратная защита через 2FA).

Посмотрим, что нового появилось в этой области за последнее время. А посмотреть есть на что.
Читать дальше →

Металлы с памятью формы

Level of difficultyMedium
Reading time11 min
Views14K
Картинка Freepik

Многие слышали об интересном эффекте, который показывают некоторые сплавы, называемые «сплавами с эффектом памяти». После деформации они демонстрируют каучукоподобное поведение: если деформация небольшая, сплавы восстанавливают прежнюю форму при одной и той же температуре, и полностью восстанавливают форму при изменении температуры. Что они собой представляют и чем интересны?
Читать дальше →

Когда парсеры URL-адресов расходятся (CVE-2023-38633)

Level of difficultyMedium
Reading time9 min
Views4.5K

Обнаружение и разбор уязвимости CVE-2023-38633 в librsvg, заключающейся в ситуации, когда две реализации URL-парсера (Rust и Glib) расходятся в парсинге схемы файла, создавая уязвимость к атаке обхода каталога.
Читать дальше →

История компьютерных стратегий. Часть 10. «Age of Mythology»: древние боги, шогготы и рептилоиды в одном флаконе

Level of difficultyEasy
Reading time8 min
Views10K

Как несложно догадаться, успех первой «Age of Empires» сподвиг её создателей, Ensemble Studios, развивать тему исторических RTS дальше. Следом появилась посвящённая средневековью «Age of Empires II», ставшая главным хитом серии и по сей день имеющая массу поклонников и активных игроков. Однако параллельно в недрах студии возникло желание поэкспериментировать с концепцией, сделать что-то похожее, но при этом совсем иное. Это стремление не породило мегахитов и прорывов — но оставило в истории RTS такое яркое и запоминающееся явление, как «Age of Mythology».
Читать дальше →

Information

Rating
17-th
Works in
Registered
Activity