Pull to refresh
77
0
Send message

Собираем автономную игру на C# в 2 килобайтах

Level of difficultyMedium
Reading time11 min
Views22K

Моё детство пришлось на эпоху 1,44-мегабайтных дискет и 56-килобитных модемов, поэтому я всегда любил маленькие программы. Раньше можно было записать на дискету кучу мелких игр и таскать её с собой. Если программа не помещалась на дискету, я задумывался, почему — в ней много графики? Есть музыка? Возможно, она выполняет много сложных операций? Или она просто раздута?

В наши дни дисковое пространство стало настолько дешёвым, что люди отказались от оптимизации по размеру.

Размер важен только при передаче: если вы передаёте программу по проводам, мегабайты равны секундам. По быстрому соединению на 100 Мбит в лучшем случае можно передать 12 МБ в секунду. Если на другом конце провода находится человек, ожидающий завершения скачивания, то разница между пятью и одной секундой может существенно повлиять на его ощущения.

Человек может зависеть от времени передачи как напрямую (пользователь, скачивающий программу по сети), так и косвенно (serverless-сервис, отвечающий на веб-запрос).

Люди обычно воспринимают всё, что длится меньше 0,1 секунды, как мгновенное, 3 секунды — это примерно тот предел, после которого прерывается состояние потока пользователя; а уж 10 секунд удержать внимание пользователя очень сложно.

Хотя уменьшение сегодня уже необязательно, оно всё равно лучше.

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

Когда старый софт лучше нового

Level of difficultyEasy
Reading time7 min
Views76K

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

Практика показывает, что новые версии утилит часто изменяются к худшему, раздуваются, обрастают ненужными функциями, начинают тормозить или вовсе перестают запускаться. Ухудшение программного продукта со временем — известный процесс, для которого есть специальный термин: дерьмофикация (enshittification, слово придумал Кори Доктороу). Она происходит не только с десктопным или мобильным софтом, но и с платформами. Все мы за последние годы наблюдали дерьмофикацию Google, Reddit, Amazon, Twitter и Facebook (два последних вообще признаны экстремистами и запрещены в РФ). Аналогично с десктопным софтом и мобильными приложениями.

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

Неожиданное взаимодействие предсказания ветвлений и подсистем памяти

Reading time10 min
Views7.3K

Это 15-я статья в серии, посвящённая оптимизации подсистем памяти. Остальные доступны здесь (англ.).

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

Что нам стоит вязальный аппарат построить? Некоторая информация и ряд мыслей на тему…

Reading time10 min
Views18K
Картинка Macrovector, Catalyststuff, Freepik

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

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

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

Мой первый прототип поискового движка

Level of difficultyMedium
Reading time6 min
Views7.5K

Я реализовал первый прототип собственного механизма поиска, который сокращённо назвал PSE (Personal Search Engine). Создал я его с помощью трёх скриптов Bash, возложив всю основную работу на sqlite3, wget и PageFind.

Браузер Firefox вместе с Newsboat сохраняют полезную информацию в базах данных SQLite. В moz_places.sqlite содержатся все посещённые URL-адреса и адреса закладок (то есть moz_bookmarks.sqlite базы данных SQLite). У меня получилось около 2000 закладок. Это меньше, чем я предполагал, так как многие оказались нерабочими из-за битых ссылок.

Нерабочие URL-адреса страниц сильно замедляют процесс сбора, так как wget приходится ожидать истечения различных таймаутов (например, DNS, ответа сервера, время скачивания). URL-адреса из «истории» составили бы интересную коллекцию для сбора, но тут не обойтись без списка исключений (например, нет смысла сохранять запросы к поисковым системам, веб-почте, онлайн-магазинам). Изучение этого вопроса я отложу до следующего прототипа.
Читать дальше →

Dead by Daylight: мультиплеерный ужас или кровавый Super Smash Bros

Level of difficultyEasy
Reading time13 min
Views5K
image

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

Мультиплеерным хоррором никого не удивишь: все хотя бы раз играли с друзьями в кооперативные Left 4 Dead, Killing Floor или CoD Zombies. Другое дело соревновательная игра, которая называет себя ужастиком. Какие правила надо придумать и как сбалансировать стороны, чтобы никто не чувствовал себя приниженным, и всё ещё вызывать страх у игроков? Ответ дадут канадцы из Behaviour Interactive, создавшие уникальный проект, который уже почти 8 лет является одной из самых популярных онлайн-игр и отдаёт дань уважения всей культуре хорроров.
Читать дальше →

IT-2024: AI не решает — решают люди

Level of difficultyEasy
Reading time7 min
Views8.4K
Году в 2010-м я читал журнал с интервью одного из тогдашних топов диджитал-сферы и мне запомнилась фраза про то, что тот, кто может спрогнозировать ситуацию в отрасли на пять лет вперёд, тот идиот или мошенник. В наше время горизонт планирования сократился чуть ли не до квартала: трудно прогнозировать, понимая, что на твой бизнес, твою карьеру, твои инвестиции может оказать влияние что угодно, от международного конфликта до вируса или пожара в ЦОДе за тысячи километров от тебя. Уже давно пропало ощущение «островка стабильности» дома, в семье, среди коллег и друзей. В таких условиях остаётся одно, на что можно положиться, рассчитывать и что нужно ценить, — это люди. Увы, современные компании, да и сами люди этого не понимают. Я хочу вас предостеречь: берегите людей — это главный актив. И теперь это не фигуральное пафосное выражение, а формула выживания. 

В статье не будет универсальных рецептов и объективной логики — скорее, будет постановка проблемы, которую нам всем скоро придётся решать.

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

Индастриал-пирсинг со светодиодами

Level of difficultyMedium
Reading time7 min
Views9.4K

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

Мне же, как любителю интересных проектов с электроникой, пришла идея встроить в эту штангу светодиоды.

Это один из проектов, которые я успел реализовать как раз перед закрытием London Hackspace. К этому моменту у меня уже год, как нет доступа к фрезерному станку, а без него просверливание отверстий в игле от шприца оказалось нетривиальной задачей.
Читать дальше →

Насколько реалистичны интерфейсы в фильме «Хакеры» 1995 года?

Level of difficultyEasy
Reading time11 min
Views22K

Фильм Хакеры рассказывает о группе хакеров-подростков, ведомых любопытством и не причиняющих вреда (по крайней мере, тем, кто этого не заслуживает). Один из этих хакеров взламывает компьютерную систему «Гибсон», принадлежащую крупной компании, и в доказательство своего успеха частично скачивает файл, который посчитал неважным. Однако на самом деле этот файл — замаскированный «червь», созданный руководителем отдела безопасности компании, чтобы украсть у неё миллионы долларов. Чтобы замести следы, он пытается подставить хакеров, обвинив их во множестве компьютерных преступлений, поэтому им нужно снова взломать систему, чтобы скачать «червя» полностью и указать на истинного виновника.
Читать дальше →

Кого на самом деле убил Энтони: разбор полётов

Level of difficultyEasy
Reading time3 min
Views5.8K


Череп снова вернулся и в этот раз организовал нечто масштабное. Хакеру понадобилась сильная команда для взлома государства F и он пригласил всех желающих попробовать стать его напарниками в этом деле. Волнует лишь один вопрос…. Кого же убил Энтони?
Читать дальше →

Собираем объёмный дисплей на Raspberry Pi

Level of difficultyMedium
Reading time16 min
Views23K

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

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

Сканирующий переводчик: что это такое?

Level of difficultyEasy
Reading time10 min
Views5.9K

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

Это весьма любопытный артефакт ушедшей эпохи. Тем не менее, свою работу он делает и делает её хорошо даже сейчас…
Читать дальше →

Сложный был год

Level of difficultyEasy
Reading time12 min
Views23K
image

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

Из-за этого мы сейчас переживаем крупнейший передел рынка хостинга в России.

С 1 декабря новый федеральный закон запрещает заниматься хостингом тем, кто не в специальном реестре. В специальный реестр можно попасть, грубо говоря, если выполнить требования по хранению трафика клиентов и их авторизации по паспорту, «Госуслугам» или платёжной карте. Там куча нюансов, но примерно так.

Ещё в этом году в ЦОДы начало поступать полностью отечественное железо из отечественной компонентной базы и отечественных плат (на самом деле — нет), отвалилась страховка от киберрисков от AIG (вместе с AIG), и пришлось искать российский аналог. Были скандал и мир с Казахстаном при открытии двух новых площадок, мы взяли премию «Хостер года», запустили собственный бесплатный DNS (аналог Route53), перешли на OpenAPI в хостинге, открыли ещё две площадки: ЦОДы во Владивостоке и в Турции в Измире (это там, где было наводнение), запустили и сломали спутник (дважды), пережили крупную аварию и после неё ввели понятное SLA на доступность с денежной гарантией.

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

Проект «Селенит». Часть 3: Диапазонный полосовой фильтр

Level of difficultyMedium
Reading time8 min
Views11K

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

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

Все части цикла статей о создании любительской радиостанции:
Читать дальше →

Как просеять молекулы?

Level of difficultyMedium
Reading time12 min
Views6.5K
Картинка Pikisuperstar, Freepik

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

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

Наши на Standoff. Как проходит крупнейшая кибербитва страны

Level of difficultyEasy
Reading time3 min
Views4.9K

Кибербитва Standoff 12 идёт уже несколько дней, и просто сообщить о её начале было бы недопустимым упущением. Да, этот пост о том, что происходит на крупнейшей площадке, собравшей лучшие умы и технологии, в число которых, кстати, входит наш спутник. Поехали!
Читать дальше →

Sovietwave и Sovietpunk: как романтика несбывшегося переплавила ностальгию по СССР в новый жанр? Часть 3

Level of difficultyEasy
Reading time9 min
Views14K

В первой части мы рассказали о зарождении неосоветской эстетики, во второй — о её роли в развитии музыки и кино нулевых, популярности в ЖЖ «развесистой клюквы» и даже таких феноменов, как маскоты Двача и увлечение меланхоличной эстетикой городских окраин. Теперь же поговорим о том, как всё это дошло до современных зрелых форм, включая целый музыкальный жанр.
Читать дальше →

Реверс-инжиниринг ячейки регистра процессора Intel 386

Level of difficultyMedium
Reading time10 min
Views11K

Новаторский Intel 386 (1985 год) стал первым 32-битным процессором линейки x86. У него есть множество внутренних регистров: регистры общего назначения, индексные регистры, селекторы сегментов и более специализированные регистры. В этом посте мы изучим кремниевый кристалл 386 и объясним, как реализованы некоторые из этих регистров на уровне транзисторов. Изученные мной регистры реализованы как статическое ОЗУ, где каждый бит хранится в стандартной восьмитранзисторной цепи, называемой «8T». Исследование этой цепи демонстрирует интересные техники размещения, использованные Intel для «сжатия» двух ячеек с целью минимизации необходимого им пространства.
Читать дальше →

Освобождение робота-пылесоса, который стал моим другом

Level of difficultyEasy
Reading time8 min
Views31K
Немного доп. оборудования, несколько команд Linux и вуаля! Пылесос свободен! Фото Cath Virginia / The Verge

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

Ретромалина. Устанавливаем старые игры и Windows 95 на Raspberry Pi с помощью Dosbian

Level of difficultyEasy
Reading time8 min
Views18K

Я очень люблю старую компьютерную технику — есть в ней какой-то непередаваемый шарм. Но одно дело — коллекционирование винтажных ноутбуков, и совсем другое — установка древних операционных систем или софта на современном «железе». Во многих случаях старые операционки и игры на актуальном оборудовании попросту не запускаются из-за проблем с совместимостью. Положение отчасти спасают виртуальные машины, но гонять ОС, а особенно игрушки на «виртуалке» далеко не всегда удобно. И вот пару месяцев назад я случайно услышал о Dosbian: специальной версии Raspberry Pi OS, позволяющей запускать на «малинке» MS-DOS и даже Windows 3.1/9x, не говоря уже о DOS-совместимых играх. Признаться, мне всегда нравился компьютер Raspberry Pi 400, правда, я никак не мог придумать, к чему его приспособить. Теперь вопрос решился сам собой: я заказал себе эту машину специально, чтобы установить и протестировать на ней Dosbian. Результатами своих экспериментов я сегодня делюсь с вами.
Читать дальше →

Information

Rating
Does not participate
Works in
Registered
Activity