Многие из нас либо слышали, либо сами высказывались о деградации современной музыки. Треки верхних строчек топ-чартов с каждым годом становятся все менее выразительными и более похожими друг на друга. Оказалось, что это не ретроградное заблуждение, а относительно давно подтвержденный наукой факт.
Пользователь
Опубликован исходный код Command & Conquer: смотрим, что внутри
Компания Electronic Arts открыла исходный код первой Command & Conquer, а также Command & Conqueror: Red Alert. Скачать его можно с GitHub.
Всё содержимое имеет лицензию GPL v3; кроме того, в исходном коде сохранены все комментарии. Отсутствует только changelog использовавшейся при разработке системы контроля версий. Похоже, всё просто недавно выложили на Git.
Я решил изучить, что же происходит внутри этого игрового движка. Не буду описывать каждую строку кода, но, по крайней мере, будет интересно взглянуть на то, какой была разработка на C++ в начале 1990-х.
Изучать мы будем только исходный код «Command & Conquer: Red Alert», потому что он похож на форк первой игры. В репозитории он находится в папке
REDALERT
.Статистика
- 290 файлов заголовков C++
- 296 файлов реализации на C++
- 14 файлов ассемблера, содержащих инструкции ассемблера x86
- 222090 строк кода на C++
Количество строк кода я получил, подсчитав непустые строки, после чего вычел из них те строки, которые очевидно были комментариями.
Почти все файлы имеют имена в верхнем регистре.
Кроме того, есть файл «RedAlert.vcxproj», поэтому можно предположить, что проект можно собрать в более новых версиях Visual Studio, но этого я не проверял.
Отзыв сертификатов не работает
Сертификаты
Мы сейчас видим настоящую золотую лихорадку вокруг сертификатов, поскольку всё больше сайтов внедряют HTTPS. Кроме очевидных преимуществ безопасности и приватности, есть и другие выгоды от внедрения защищённых соединений, которые я перечислил в статье «Вы всё ещё думаете, что вам не нужен HTTPS?». Обычно именуемые «SSL-сертификаты» или «HTTPS-сертификаты» разлетаются со скоростью, которой мы никогда не видели в истории интернета. Каждый день я исследую сайты из первого миллиона по посещаемости и анализирую различные аспекты их безопасности, а каждые 6 месяцев публикую отчёт. Вы можете изучить эти отчёты здесь, но сейчас посмотрим на темпы внедрения HTTPS.
Процент сайтов из первого миллиона самых популярных сайтов по статистике Alexa, где стоит редирект на версию HTTPS
Как стать долларовым миллионером за 30 лет, лежа на диване
На Хабре недавно вышел пост ״Новичкам фондового рынка: честные разговоры о трейдинге״. Этот пост, опубликованный в одном из самых читаемых блогов Хабра, вводит людей в заблуждение и создает у них ложное представление о том, что игра на бирже — хороший способ заработка. Это вынудило меня написать комментарий, постепенно переросший в целую статью, с детальным разбором того, почему трейдинг — это не способ разбогатеть, а способ потерять деньги, и о том, как на самом деле заработать на инвестициях.
Внутри супер-быстрого CSS-движка: Quantum CSS (aka Stylo)
Привет, Хабр! Представляю вашему вниманию перевод статьи Inside a super fast CSS engine: Quantum CSS (aka Stylo) автора Лин Кларк.
Вы возможно слышали о Project Quantum… Это проект по существенной переработке внутренностей Firefox с целью ускорить браузер. По частям мы внедряем наработки нашего экспериментального браузера Servo и значительно улучшаем остальные элементы движка.
Проект сравнивался с заменой самолетного двигателя на лету. Мы вносим изменения в Firefox компонент за компонентом, так что оценить их эффект можно в очередном релизе браузера сразу по готовности.
Прим. переводчика: под катом много иллюстраций. Все они кликабельные (для просмотра в большем разрешении). Если Вы наткнетесь на неточности перевода и другие ошибки — буду благодарен, если сообщите об этом в комментариях или в личку.
Доступно о криптографии на эллиптических кривых
Тем, кто знаком с криптографией с открытым ключом, наверно известны аббревиатуры ECC, ECDH и ECDSA. Первая — это сокращение от Elliptic Curve Cryptography (криптография на эллиптических кривых), остальные — это названия основанных на ней алгоритмов.
Сегодня криптосистемы на эллиптических кривых используются в TLS, PGP и SSH, важнейших технологиях, на которых базируются современный веб и мир ИТ. Я уже не говорю о Bitcoin и других криптовалютах.
До того, как ECC стала популярной, почти все алгоритмы с открытым ключом основывались на RSA, DSA и DH, альтернативных криптосистемах на основе модулярной арифметики. RSA и компания по-прежнему популярны, и часто используются вместе с ECC. Однако несмотря на то, что магия, лежащая в фундаменте RSA и подобных ей алгоритмов легко объяснима и понятна многим, а грубые реализации пишутся довольно просто, основы ECC всё ещё являются для большинства людей загадкой.
В этой серии статей я познакомлю вас с основами мира криптографии на эллиптических кривых. Моя цель — не создание полного и подробного руководства по ECC (в Интернете полно информации по этой теме), а простой обзор ECC и объяснение того, почему её считают безопасной. Я не буду тратить время на долгие математические доказательства или скучные подробности реализации. Также я представлю полезные примеры с визуальными интерактивными инструментами и скриптами.
Раньше они служили по 50 лет
Сегодня холодильники работают по 8-10 лет, если повезёт. Как же так получилось, что наша бытовая техника так сильно сдала за последние несколько десятилетий? Я покупаю и продаю холодильники и морозильники, сделанные в 1950-х, прекрасно работающие до сих пор. Я встречал стиральные машины и сушильные машины 1960-х и 1970-х, которые всё ещё работали так же, как в день их производства. А сейчас бытовая техника ломается и требует обслуживания через 2-3 года, и в целом новая техника служит треть или четверть того срока, какой служила техника, сделанная десятилетия назад. Она ломается чаще и быстрее, чем раньше. Она ржавеет и разрушается быстрее, чем в прошлом. Почему это происходит, и что вообще происходит? Я годами мучился этими вопросами, продавая тысячи единиц техники, а с недавнего времени – и вместе с продавцами б/у техники и ремонтниками со всей страны. И вот, что я обнаружил.
Лекции по биоинформатике: от статистики до генетических конструкций
Уже пять лет Институт биоинформатики собирает ученых-биоинформатиков и студентов со всей страны и в течение недельной интенсивной учебы за городом на летней школе направляет биологов, медиков, информатиков и математиков в сторону биоинформатики — до сих пор очень динамично развивающейся области. С 2013 года мы записываем лекции на видео и собираем подборку полезных материалов для тех, кто не участвует в мероприятиях, но хотел бы развиваться в этой области.
Программа школы разрабатывается таким образом, чтобы объединить мир биологии и программирования и стимулировать не только развитие профессиональное развитие, но и междисциплинарное общение.
Мы продолжаем делиться архивом видеозаписей лекций летних школ. Лекции, которые можно смотреть без дополнительной подготовки, отмечены «*». Просмотр остальных лекций требует знаний в области биологии и программирования. Под катом описание содержания лекций, ссылки на слайды и видеозаписи.
История про realloc (и лень)
Простой макрос
Все началось с простого макроса: (приблизительный код)
#define ADD_BYTE(C) do { \
if (offset == capa) { \
if (capa < 16) { \
capa = 16; \
} else { \
capa <<= 1; \
} \
buffer = realloc(buffer, capa); \
assert(buffer != NULL); \
} \
buffer[offset++] = (C); \
} while(0)
Для тех, кто не знаком с языком программирования C, поясню: этот простой макрос добавляет байт «C» в динамически выделяемый буфер (buffer), размер которого (в байтах) равен capa. Следующая позиция для записи определяется при помощи параметра offset. При каждом заполнении буфера происходит двукратное увеличение его объема (начиная с минимального размера в 16 байт).
Мы добавляем байты в динамический буфер — это одна из наиболее распространенных операций практически в любой программе (для работы со строками, массивами и т. п.).
Но как понять, насколько эффективна стратегия перераспределения?
Трагедия стопроцентного покрытия кода
Механизмы контейнеризации: namespaces
Последние несколько лет отмечены ростом популярности «контейнерных» решений для ОС Linux. О том, как и для каких целей можно использовать контейнеры, сегодня много говорят и пишут. А вот механизмам, лежащим в основе контейнеризации, уделяется гораздо меньше внимания.
Все инструменты контейнеризации — будь то Docker, LXC или systemd-nspawn,— основываются на двух подсистемах ядра Linux: namespaces и cgroups. Механизм namespaces (пространств имён) мы хотели бы подробно рассмотреть в этой статье.
Начнём несколько издалека. Идеи, лежащие в основе механизма пространств имён, не новы. Ещё в 1979 году в UNIX был добавлен системный вызов chroot() — как раз с целью обеспечить изоляцию и предоставить разработчикам отдельную от основной системы площадку для тестирования. Нелишним будет вспомнить, как он работает. Затем мы рассмотрим особенности функционирования механизма пространств имён в современных Linux-системах.
Реализация на Java хешированного бинарного дерева
Brainstorm: электростимуляция мозга на дому
Электростимуляция была хорошо известна медикам СССР
На Geektimes не раз публиковались статьи об электростимуляции мозга. Мы в Madrobots всегда следим за новостями о различных технологических новинках и не могли пропустить настолько интересную информацию. Тема эта постоянно развивается, всплывают все новые аспекты использования электростимуляторов (причем, по большей части, положительные). За последние несколько лет ученые выяснили, что электростимуляция (tDCS) оказывает позитивное влияние на когнитивные функции людей.
Это, например, скорость реакции, концентрацию внимания и многое другое, о чем поговорим ниже. Стали постепенно появляться бытовые системы для нейростимуляции, и мы решили проверить, что есть достойного из предлагаемых вариантов. Забегая наперед, скажем, что нашлись варианты, один из которых мы и выбрали. Прежде, чем рассказать о нем, давайте вспомним, что собой представляет сама электростимуляция.
E Ink-2016: как сегодня обстоят дела на рынке ридеров-покетбуков?
Отдельные персонажи пишут в дискуссиях на форумах, что читалки, дескать, вымерли, и больше ими никто не занимается, а ещё их никто не покупает. Что тут можно сказать? Желаю таким персонажам почаще оглядываться вокруг. Если вы не верите мне на слово, то приведу немного цифр: в 2013 году объем российского рынка ридеров-покетбуков с экранами E Ink составил 800 тысяч штук, в 2014 – 870 тысяч штук, в 2015 – остался примерно на уровне 2014 года. То есть рынок в последние годы не то что не сжался до размеров грецкого ореха, а очень даже рос! Достаточно сказать, что в 2011 году, когда в России начался видимый невооруженным глазом бум на читалки, объём рынка таких устройств с экранами E Ink составил «всего» 680 тысяч штук. То есть куда меньше, чем сейчас.
802.одиннадцать чего там ещё? Почему WiFi – отстой, и что с этим делать
Хорошая новость в том, что если правильно его построить, он уже не будет таким отстойным
Когда сети на основе стандарта беспроводной связи 802.11b в конце 90-х вышли на рынок, то на бумаге они выглядели прекрасно. Они обещали «11 Мбит/с» по сравнению со скоростью 10 Мбит/с по проводам Ethernet, и можно было подумать, что беспроводная сеть на самом деле работает быстрее, чем Ethernet. Прошло немало времени, прежде чем я познакомился с беспроводными сетями – смартфоны тогда ещё не выстрелили, ноутбуки были чрезвычайно дорогими, маломощными и тяжёлыми. А я уже ставил в офисы своим клиентам и себе домой Fast Ethernet (100 Мбит/с), так что идея урезания скорости на 90% меня не привлекала.
В начале 2000-х всё начало меняться. Ноутбуки уменьшались, становились легче и дешевле – а ещё в них стали встраивать WiFi. Малый бизнес начал присматриваться к обещанным стандартом «11 Мбит/с» и размышлять – раз 10 Мбит/с в старом офисе хватало, почему бы не поставить в новом беспроводную сеть? Моё первое знакомство с WiFi состоялось, когда я разбирался с последствиями такого решения, и первое впечатление оказалось плохим. Оказывается, что «11 Мбит/с» – это максимальный физический уровень чистого битрейта, а не скорость, с которой реальные данные смогут передаваться между компьютерами. На практике он был не особенно лучше диалапа – как по скорости, так и по надёжности. На самом деле, если разместить все устройства довольно близко друг к другу и к точке доступа, то можно было ожидать, в лучшем случае, 1 Мбит/с – около 125 Кб/с. А так было ещё хуже – если десять компьютеров пытаются достучаться до сервера, нужно поделить эти 125 Кб/с и получить 12,5 Кб/с для каждого из них.
Разработка игр на Rust. Моя история
Привет Хабр! Я занимаюсь разработкой игры на Rust. В этот раз я хочу показать немного гифок и показать всю историю игры от идеи до страницы в стиме.
Почему раст можно прочитать в начале прошлого поста. Но почему такой странный геймплей? Я же ненавижу футбол и всё что с ним связано!
Итак, мы сделали дамп JVM на 150 Гб. Что дальше?
Настраиваем приватный Docker-репозиторий
Docker одна из горячих тем в разработке. Большинство новых проектов строится именно на Docker. Как минимум, он отлично зарекомендовал себя для распространения ПО, например, наша система поиска по документам Ambar устанавливается с помощью docker-compose
.
В начале работы над Ambar мы использовали публичный docker-репозиторий, но с ростом проекта и появлением enterprise версии мы задумались над созданием собственного приватного репозитория. В данной статье мы поделимся своим опытом развертывания селф-хостед репозитория: пошагово опишем весь процесс, попытаемся обойти все подводные камни.
Ищем и скачиваем непопулярные и старые файлы в интернете
Введение
Бывает, случается так, что вы хотите скачать альбом 2007 года исполнителя, который кроме вас известен 3.5 людям, какой-нибудь испанский ска-панк или малопопулярный спидкор европейского происхождения. Находите BitTorrent-раздачу, ставите на закачку, быстро скачиваете 14.7%, и… все. Проходит день, неделя, месяц, а процент скачанного не увеличивается. Вы ищете этот альбом в поисковике, натыкаетесь на форумы, показывающие ссылки только после регистрации и 5 написанных сообщений, регистрируетесь, флудите в мертвых темах, вам открываются ссылки на файлообменники вроде rapidshare и megaupload, которые уже сто лет как умерли.Увы, частая ситуация в попытке хоть что-то скачать
Такое случается. В последнее время, к сожалению, случается чаще: правообладатели и правоохранительные органы всерьез взялись за файлообмен; в прошлом году закрылись или были закрыты KickassTorrents, BlackCat Games, what.cd, btdigg, torrentz.eu, EX.ua, fs.to, torrents.net.ua, и еще куча других сайтов. И если поиск свежих рипов фильмов, сериалов, музыки, мультиков все еще не представляет большой проблемы, несмотря на многократно участившееся удаления со стороны правообладателей контента из поисковых систем, торрент-трекеров и файлообменников, то поиск и скачивание оригинала (DVD или Blu-Ray) фильмов и сериалов или просто ТВ-рипов 7-летней давности на не-английском и не-русском языке — не такая уж простая задача.
Information
- Rating
- Does not participate
- Location
- Санкт-Петербург, Санкт-Петербург и область, Россия
- Registered
- Activity