Pull to refresh
2
0
Владислав Бескровный @vlad20012

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

Send message

Популярная музыка на самом деле деградирует

Reading time4 min
Views216K

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

Читать далее
Total votes 252: ↑234 and ↓18+216
Comments868

Опубликован исходный код Command & Conquer: смотрим, что внутри

Reading time19 min
Views36K

Компания Electronic Arts открыла исходный код первой Command & Conquer, а также Command & Conqueror: Red Alert. Скачать его можно с GitHub.

Всё содержимое имеет лицензию GPL v3; кроме того, в исходном коде сохранены все комментарии. Отсутствует только changelog использовавшейся при разработке системы контроля версий. Похоже, всё просто недавно выложили на Git.

Я решил изучить, что же происходит внутри этого игрового движка. Не буду описывать каждую строку кода, но, по крайней мере, будет интересно взглянуть на то, какой была разработка на C++ в начале 1990-х.

Изучать мы будем только исходный код «Command & Conquer: Red Alert», потому что он похож на форк первой игры. В репозитории он находится в папке REDALERT.

Статистика


  1. 290 файлов заголовков C++
  2. 296 файлов реализации на C++
  3. 14 файлов ассемблера, содержащих инструкции ассемблера x86
  4. 222090 строк кода на C++

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

Почти все файлы имеют имена в верхнем регистре.

Кроме того, есть файл «RedAlert.vcxproj», поэтому можно предположить, что проект можно собрать в более новых версиях Visual Studio, но этого я не проверял.
Читать дальше →
Total votes 82: ↑82 and ↓0+82
Comments13

Отзыв сертификатов не работает

Reading time11 min
Views58K
Прямо сейчас у нас есть небольшая проблема, но на мой взгляд, со временем ситуация может только ухудшиться. Всё больше и больше сайтов получают сертификаты — необходимые документы для внедрения HTTPS — но у нас нет механизма для защиты от злоупотреблений.

Сертификаты


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


Процент сайтов из первого миллиона самых популярных сайтов по статистике Alexa, где стоит редирект на версию HTTPS
Читать дальше →
Total votes 103: ↑103 and ↓0+103
Comments123

Как стать долларовым миллионером за 30 лет, лежа на диване

Reading time12 min
Views239K


На Хабре недавно вышел пост ״Новичкам фондового рынка: честные разговоры о трейдинге״. Этот пост, опубликованный в одном из самых читаемых блогов Хабра, вводит людей в заблуждение и создает у них ложное представление о том, что игра на бирже — хороший способ заработка. Это вынудило меня написать комментарий, постепенно переросший в целую статью, с детальным разбором того, почему трейдинг — это не способ разбогатеть, а способ потерять деньги, и о том, как на самом деле заработать на инвестициях.
Поехали!
Total votes 308: ↑291 and ↓17+274
Comments557

Внутри супер-быстрого CSS-движка: Quantum CSS (aka Stylo)

Reading time9 min
Views26K

Привет, Хабр! Представляю вашему вниманию перевод статьи Inside a super fast CSS engine: Quantum CSS (aka Stylo) автора Лин Кларк.


Вы возможно слышали о Project Quantum… Это проект по существенной переработке внутренностей Firefox с целью ускорить браузер. По частям мы внедряем наработки нашего экспериментального браузера Servo и значительно улучшаем остальные элементы движка.


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


image


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

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

Доступно о криптографии на эллиптических кривых

Reading time37 min
Views242K
image


Тем, кто знаком с криптографией с открытым ключом, наверно известны аббревиатуры ECC, ECDH и ECDSA. Первая — это сокращение от Elliptic Curve Cryptography (криптография на эллиптических кривых), остальные — это названия основанных на ней алгоритмов.

Сегодня криптосистемы на эллиптических кривых используются в TLS, PGP и SSH, важнейших технологиях, на которых базируются современный веб и мир ИТ. Я уже не говорю о Bitcoin и других криптовалютах.

До того, как ECC стала популярной, почти все алгоритмы с открытым ключом основывались на RSA, DSA и DH, альтернативных криптосистемах на основе модулярной арифметики. RSA и компания по-прежнему популярны, и часто используются вместе с ECC. Однако несмотря на то, что магия, лежащая в фундаменте RSA и подобных ей алгоритмов легко объяснима и понятна многим, а грубые реализации пишутся довольно просто, основы ECC всё ещё являются для большинства людей загадкой.

В этой серии статей я познакомлю вас с основами мира криптографии на эллиптических кривых. Моя цель — не создание полного и подробного руководства по ECC (в Интернете полно информации по этой теме), а простой обзор ECC и объяснение того, почему её считают безопасной. Я не буду тратить время на долгие математические доказательства или скучные подробности реализации. Также я представлю полезные примеры с визуальными интерактивными инструментами и скриптами.
Читать дальше →
Total votes 127: ↑125 and ↓2+123
Comments72

Раньше они служили по 50 лет

Reading time8 min
Views132K
image

Сегодня холодильники работают по 8-10 лет, если повезёт. Как же так получилось, что наша бытовая техника так сильно сдала за последние несколько десятилетий? Я покупаю и продаю холодильники и морозильники, сделанные в 1950-х, прекрасно работающие до сих пор. Я встречал стиральные машины и сушильные машины 1960-х и 1970-х, которые всё ещё работали так же, как в день их производства. А сейчас бытовая техника ломается и требует обслуживания через 2-3 года, и в целом новая техника служит треть или четверть того срока, какой служила техника, сделанная десятилетия назад. Она ломается чаще и быстрее, чем раньше. Она ржавеет и разрушается быстрее, чем в прошлом. Почему это происходит, и что вообще происходит? Я годами мучился этими вопросами, продавая тысячи единиц техники, а с недавнего времени – и вместе с продавцами б/у техники и ремонтниками со всей страны. И вот, что я обнаружил.
Читать дальше →
Total votes 103: ↑91 and ↓12+79
Comments1047

Лекции по биоинформатике: от статистики до генетических конструкций

Reading time8 min
Views12K
Чтобы погрузиться в относительно новую для себя научную область, существует огромное количество самых разных мероприятий и проектов. В последние годы их количество и форматы значительно расширились: это открытые лекции и целые научные фестивали, онлайн-курсы и онлайн-программы, летние стажировки и школы, неформальные лекции в барах, опенсорсные проекты и так далее.

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

Программа школы разрабатывается таким образом, чтобы объединить мир биологии и программирования и стимулировать не только развитие профессиональное развитие, но и междисциплинарное общение.

image

Мы продолжаем делиться архивом видеозаписей лекций летних школ. Лекции, которые можно смотреть без дополнительной подготовки, отмечены «*». Просмотр остальных лекций требует знаний в области биологии и программирования. Под катом описание содержания лекций, ссылки на слайды и видеозаписи.
Хочу всё знать
Total votes 12: ↑12 and ↓0+12
Comments3

История про realloc (и лень)

Reading time9 min
Views47K

Простой макрос


Все началось с простого макроса: (приблизительный код)
#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 байт).

Мы добавляем байты в динамический буфер — это одна из наиболее распространенных операций практически в любой программе (для работы со строками, массивами и т. п.).

Но как понять, насколько эффективна стратегия перераспределения?
Читать дальше →
Total votes 103: ↑102 and ↓1+101
Comments51

Трагедия стопроцентного покрытия кода

Reading time3 min
Views34K
Забавно, как всё меняется. Пятнадцать лет я свято придерживался принципов TDD (разработка через тестирование, или, как её раньше называли, подход test-first) или уж по крайней мере того взгляда, что разработчикам следует писать юнит-тесты. Но в последнее время я всё чаще говорю не «Это нужно затестить», а «Зачем вы писали этот тест?».

Читать дальше →
Total votes 103: ↑96 and ↓7+89
Comments138

Механизмы контейнеризации: namespaces

Reading time11 min
Views60K
namespaces

Последние несколько лет отмечены ростом популярности «контейнерных» решений для ОС Linux. О том, как и для каких целей можно использовать контейнеры, сегодня много говорят и пишут. А вот механизмам, лежащим в основе контейнеризации, уделяется гораздо меньше внимания.

Все инструменты контейнеризации — будь то Docker, LXC или systemd-nspawn,— основываются на двух подсистемах ядра Linux: namespaces и cgroups. Механизм namespaces (пространств имён) мы хотели бы подробно рассмотреть в этой статье.

Начнём несколько издалека. Идеи, лежащие в основе механизма пространств имён, не новы. Ещё в 1979 году в UNIX был добавлен системный вызов chroot() — как раз с целью обеспечить изоляцию и предоставить разработчикам отдельную от основной системы площадку для тестирования. Нелишним будет вспомнить, как он работает. Затем мы рассмотрим особенности функционирования механизма пространств имён в современных Linux-системах.
Читать дальше →
Total votes 42: ↑39 and ↓3+36
Comments0

Реализация на Java хешированного бинарного дерева

Reading time9 min
Views30K
Один мой друг любит говорить (не знаю, его это слова или он их где-то взял), что в программисты идут по двум причинам: если ты хочешь стать хакером или если ты хочешь писать игры. Мой случай второй. Всегда интересовался разработкой игр, причём той частью, которая отвечает за искусственный интеллект в играх. Очень много времени я потратил на изучение алгоритмов поиска пути. Реализуя очередную версию алгоритма A* на Java, столкнулся с интересной ситуацией, связанной с коллекциями TreeSet и TreeMap.
Читать дальше →
Total votes 17: ↑14 and ↓3+11
Comments22

Brainstorm: электростимуляция мозга на дому

Reading time4 min
Views27K

Электростимуляция была хорошо известна медикам СССР

На Geektimes не раз публиковались статьи об электростимуляции мозга. Мы в Madrobots всегда следим за новостями о различных технологических новинках и не могли пропустить настолько интересную информацию. Тема эта постоянно развивается, всплывают все новые аспекты использования электростимуляторов (причем, по большей части, положительные). За последние несколько лет ученые выяснили, что электростимуляция (tDCS) оказывает позитивное влияние на когнитивные функции людей.

Это, например, скорость реакции, концентрацию внимания и многое другое, о чем поговорим ниже. Стали постепенно появляться бытовые системы для нейростимуляции, и мы решили проверить, что есть достойного из предлагаемых вариантов. Забегая наперед, скажем, что нашлись варианты, один из которых мы и выбрали. Прежде, чем рассказать о нем, давайте вспомним, что собой представляет сама электростимуляция.
Total votes 14: ↑12 and ↓2+10
Comments45

E Ink-2016: как сегодня обстоят дела на рынке ридеров-покетбуков?

Reading time8 min
Views39K
Портативные электронные ридеры (читалки, букридеры, покетбуки и пр.) – это своего рода устройства-невидимки информационного пространства. В Интернете о них в последнее время пишут редко и скудно, обзоры таких устройств нынче мало кто делает, в социальных сетях их практически не обсуждают… Но стоит прокатиться на московском или питерском метро – и человека с ридером можно встретить практически в каждом вагоне. Причём это наверняка будет даже не один человек, а два или больше. Стоит зайти в гости в какому-нибудь книгочею – и на кровати/столе/подоконнике чаще всего можно будет увидеть электронный ридер.



Отдельные персонажи пишут в дискуссиях на форумах, что читалки, дескать, вымерли, и больше ими никто не занимается, а ещё их никто не покупает. Что тут можно сказать? Желаю таким персонажам почаще оглядываться вокруг. Если вы не верите мне на слово, то приведу немного цифр: в 2013 году объем российского рынка ридеров-покетбуков с экранами E Ink составил 800 тысяч штук, в 2014 – 870 тысяч штук, в 2015 – остался примерно на уровне 2014 года. То есть рынок в последние годы не то что не сжался до размеров грецкого ореха, а очень даже рос! Достаточно сказать, что в 2011 году, когда в России начался видимый невооруженным глазом бум на читалки, объём рынка таких устройств с экранами E Ink составил «всего» 680 тысяч штук. То есть куда меньше, чем сейчас.
Читать дальше →
Total votes 46: ↑27 and ↓19+8
Comments237

802.одиннадцать чего там ещё? Почему WiFi – отстой, и что с этим делать

Reading time12 min
Views83K

Хорошая новость в том, что если правильно его построить, он уже не будет таким отстойным


image

Когда сети на основе стандарта беспроводной связи 802.11b в конце 90-х вышли на рынок, то на бумаге они выглядели прекрасно. Они обещали «11 Мбит/с» по сравнению со скоростью 10 Мбит/с по проводам Ethernet, и можно было подумать, что беспроводная сеть на самом деле работает быстрее, чем Ethernet. Прошло немало времени, прежде чем я познакомился с беспроводными сетями – смартфоны тогда ещё не выстрелили, ноутбуки были чрезвычайно дорогими, маломощными и тяжёлыми. А я уже ставил в офисы своим клиентам и себе домой Fast Ethernet (100 Мбит/с), так что идея урезания скорости на 90% меня не привлекала.

В начале 2000-х всё начало меняться. Ноутбуки уменьшались, становились легче и дешевле – а ещё в них стали встраивать WiFi. Малый бизнес начал присматриваться к обещанным стандартом «11 Мбит/с» и размышлять – раз 10 Мбит/с в старом офисе хватало, почему бы не поставить в новом беспроводную сеть? Моё первое знакомство с WiFi состоялось, когда я разбирался с последствиями такого решения, и первое впечатление оказалось плохим. Оказывается, что «11 Мбит/с» – это максимальный физический уровень чистого битрейта, а не скорость, с которой реальные данные смогут передаваться между компьютерами. На практике он был не особенно лучше диалапа – как по скорости, так и по надёжности. На самом деле, если разместить все устройства довольно близко друг к другу и к точке доступа, то можно было ожидать, в лучшем случае, 1 Мбит/с – около 125 Кб/с. А так было ещё хуже – если десять компьютеров пытаются достучаться до сервера, нужно поделить эти 125 Кб/с и получить 12,5 Кб/с для каждого из них.
Читать дальше →
Total votes 64: ↑59 and ↓5+54
Comments199

Разработка игр на Rust. Моя история

Reading time5 min
Views25K
image

Привет Хабр! Я занимаюсь разработкой игры на Rust. В этот раз я хочу показать немного гифок и показать всю историю игры от идеи до страницы в стиме.

Почему раст можно прочитать в начале прошлого поста. Но почему такой странный геймплей? Я же ненавижу футбол и всё что с ним связано!
История в гифках
Total votes 88: ↑85 and ↓3+82
Comments19

Итак, мы сделали дамп JVM на 150 Гб. Что дальше?

Reading time3 min
Views19K
Возможность сделать снимок (или дамп) памяти виртуальной машины Java — это инструмент, ценность которого сложно переоценить. Файл дампа содержит копии всех Java объектов, находившихся в памяти в момент снимка. Формат файла хорошо известен, и существует множество инструментов, которые умеют с ним работать.


Читать дальше →
Total votes 37: ↑36 and ↓1+35
Comments11

Настраиваем приватный Docker-репозиторий

Reading time3 min
Views81K

Docker одна из горячих тем в разработке. Большинство новых проектов строится именно на Docker. Как минимум, он отлично зарекомендовал себя для распространения ПО, например, наша система поиска по документам Ambar устанавливается с помощью docker-compose.


В начале работы над Ambar мы использовали публичный docker-репозиторий, но с ростом проекта и появлением enterprise версии мы задумались над созданием собственного приватного репозитория. В данной статье мы поделимся своим опытом развертывания селф-хостед репозитория: пошагово опишем весь процесс, попытаемся обойти все подводные камни.

Читать дальше →
Total votes 43: ↑38 and ↓5+33
Comments14

Ищем и скачиваем непопулярные и старые файлы в интернете

Reading time14 min
Views202K
Преимущественно медиафайлы. На полном серьезе, без шуток.

Введение

Бывает, случается так, что вы хотите скачать альбом 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-летней давности на не-английском и не-русском языке — не такая уж простая задача.
Читать дальше →
Total votes 215: ↑213 and ↓2+211
Comments74

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity