• Время отклика компьютеров: 1977−2017

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

    Компьютер Отклик
    (мс)
    Год Тактовая
    частота
    Кол-во
    транзисторов
    Apple 2e 30 1983 1 МГц 3,5 тыс.
    TI 99/4A 40 1981 3 МГц 8 тыс.
    Haswell-E 165 Гц 50 2014 3,5 ГГц 2 млрд
    Commodore Pet 4016 60 1977 1 МГц 3,5 тыс.
    SGI Indy 60 1993 0,1 ГГц 1,2 млн
    Haswell-E 120 Гц 60 2014 3,5 ГГц 2 млрд
    ThinkPad 13 ChromeOS 70 2017 2,3 ГГц 1 млрд
    iMac G4 OS 9 70 2002 0,8 ГГц 11 млн
    Haswell-E 60 Гц 80 2014 3,5 ГГц 2 млрд
    Mac Color Classic 90 1993 16 МГц 273 тыс.
    PowerSpec G405 Linux 60 Гц 90 2017 4,2 ГГц 2 млрд
    MacBook Pro 2014 100 2014 2,6 ГГц 700 млн
    ThinkPad 13 Linux chroot 100 2017 2,3 ГГц 1 млрд
    Lenovo X1 Carbon 4G Linux 110 2016 2,6 ГГц 1 млрд
    iMac G4 OS X 120 2002 0,8 ГГц 11 млн
    Haswell-E 24 Гц 140 2014 3,5 ГГц 2 млрд
    Lenovo X1 Carbon 4G Win 150 2016 2,6 ГГц 1 млрд
    Next Cube 150 1988 25 МГц 1,2 млн
    PowerSpec G405 Linux 170 2017 4,2 ГГц 2 млрд
    Пакет вокруг света 190
    PowerSpec G405 Win 200 2017 4,2 ГГц 2 млрд
    Symbolics 3620 300 1986 5 МГц 390 тыс.
    Читать дальше →
  • Использование SVG в качестве Placeholder’a

    • Перевод
    image

    Генерация SVG из изображений может использоваться для Placeholder’ов.

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

    В последние дни я сталкивался с некоторыми методами загрузки, которые используют SVG, и я хотел бы описать их в этом посте.

    В этом посте мы рассмотрим следующие темы:

    • Обзор различных типов Placeholder’ов
    • Placeholder на основе SVG (контуры, фигуры и силуэты)
    • Автоматизация процесса.

    Читать дальше →
  • Взлом Bitcoin по телевизору: обфускуй, не обфускуй, все равно получим QR

    • Перевод

    История про то, как секретный ключ для Bitcoin’a в виде QR-кода восстановили из размазанной картинки


    image

    Мы могли бы просто назвать этот пост «Насколько хорош QR-код и как мы его восстановили практически из ничего». Но гораздо интереснее, когда QR-код является ключом к кошельку на сумму $1000 в битках.
    Читать дальше →
  • Британские спутниковые снимки 2: как все было на самом деле

      image

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

      Краткое содержание первой части:

      1. DSTL (научно-техническая лаборатория при министерстве обороны Великобритании) провела открытое соревнование на Kaggle.
      2. Соревнование закончилось 7 марта, результаты объявлены 14 марта.
      3. Пять из десяти лучших команд — русскоговорящие, причем все они являются членами сообщества Open Data Science.
      4. Призовой фонд в $100,000 разделили брутальный малазиец Kyle, команда Романа Соловьева и Артура Кузина, а также я и Сергей Мушинский.
      5. По итогам были написаны блог-посты (мой пост на хабре, пост Артура на хабре, наш с Серегой пост на Kaggle), проведены выступления на митапах (мое выступление в Adroll, мое выстпление в H20.ai, выступление Артура в Yandex, выступление Евгения Некрасова в Mail.Ru Group), написан tech report на arxiv.

      Организаторам понравилось качество предложенных решений, но не понравилось, сколько они отстегнули за это соревнование. В Каggle ушло $500k, в то время как призовые всего $100k.
      Читать дальше →
    • Создание шейдеров

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

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


      Сцена из Minecraft, до и после добавления нескольких шейдеров.

      Задача этого туториала


      Иногда программирование шейдеров представляется загадочной чёрной магией и его часто понимают неправильно. Существует множество примеров кода, демонстрирующих создание невероятных эффектов, но в которых практически нет объяснений. В своём руководстве я хочу восполнить этот пробел. Я сосредоточусь в основном на базовых принципах создания и понимания кода шейдеров, чтобы вы смогли с лёгкостью настраивать, сочетать или писать свои собственные шейдеры с нуля!
      Читать дальше →
    • Обзор исходного кода Quake 2

      • Перевод
      image

      Около месяца свободного времени я уделил чтению исходного кода Quake II. Это был удивительный и поучительный опыт, потому что в движок idTech3 внесено большое изменение: Quake 1, Quake World и QuakeGL объединены в одну красивую архитектуру кода. Особенно был интересен способ, которым достигли модульности, несмотря на то, что язык программирования C не обеспечивает полиморфизма.

      Quake II во многих отношениях является блестящим образцом программного обеспечения, потому что это был самый популярный (по количеству лицензий) трёхмерный движок всех времён. На его основе было создано более 30 игр. Кроме того, он ознаменовал переход игровой индустрии от программной/8-битной системы цветов к аппаратной/24-битной. Этот переход произошёл примерно в 1997 году.

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

      Процесс «подчистки» меня сильно увлёк: в статье теперь более 40 мегабайт видео, скриншотов и иллюстраций. Сейчас я не знаю, стоили ли мои труды того, и нужно ли публиковать в будущем необработанные заметки в ASCII, выскажите своё мнение.
      Читать дальше →
    • AdBlock похитил этот баннер, но баннеры не зубы — отрастут

      Подробнее
      Реклама
    • Опасайтесь прозрачных пикселей

      • Перевод
      image

      Если вы используете в своей игре спрайты с прозрачностью (а обычно так и бывает, как минимум для UI), то вам, вероятно, стоит уделить внимание к полностью прозрачным пикселям текстур (или «текселам»).

      Даже если значение альфа-канала равно 0, с пикселем всё равно связано значение цвета. Этот цвет ни на что не влияет, так ведь? В конце концов, пиксель полностью прозрачен, кому есть дело до его цвета…

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

      • Tutorial


      «Галоп пикселя» — часть 1 (линк)
      «Галоп пикселя» — часть 2 (линк)
      «Галоп пикселя» — часть 3 (линк)
      «Галоп пикселя» — часть 4 (линк)

      Доброго времени суток Хабру и ценителям пиксель-арта, поклонникам квадратных точек, адептам лимитированных разрешений и цветов. Рад представить на ваш суд очередную статью из цикла «Галоп Пикселя». Не буду тратить время на оправдания моего долгого отсутствия и в виду явного присутствия перейду к сути дела. Сегодня мы продолжим изучать анимацию. На этот раз это будет анимация света и тени. Большей частью на статических объектах. Всё помнят – сначала база. Сначала фундамент. Сначала простое. Ну а сложное ввалится в ваши двери само, вслед за детишками.

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

      Цель этой статьи показать насколько силён дуэт брата и сестры, Света и Тени в движении. Мы уже видели, как они преображают сцены в статике. Но динамика нам ещё не знакома. Давайте исправим это упущение.

      Лопаты в руки.


      Лопатить пиксели
    • Обзор топологий глубоких сверточных нейронных сетей

        Это будет длиннопост. Я давно хотел написать этот обзор, но sim0nsays меня опередил, и я решил выждать момент, например как появятся результаты ImageNet’а. Вот момент настал, но имаджнет не преподнес никаких сюрпризов, кроме того, что на первом месте по классификации находятся китайские эфэсбэшники. Их модель в лучших традициях кэгла является ансамблем нескольких моделей (Inception, ResNet, Inception ResNet) и обгоняет победителей прошлого всего на полпроцента (кстати, публикации еще нет, и есть мизерный шанс, что там реально что-то новое). Кстати, как видите из результатов имаджнета, что-то пошло не так с добавлением слоев, о чем свидетельствует рост в ширину архитектуры итоговой модели. Может, из нейросетей уже выжали все что можно? Или NVidia слишком задрала цены на GPU и тем самым тормозит развитие ИИ? Зима близко? В общем, на эти вопросы я тут не отвечу. Зато под катом вас ждет много картинок, слоев и танцев с бубном. Подразумевается, что вы уже знакомы с алгоритмом обратного распространения ошибки и понимаете, как работают основные строительные блоки сверточных нейронных сетей: свертки и пулинг.

        Читать дальше →
      • Стилизация изображений с помощью нейронных сетей: никакой мистики, просто матан

          Приветствую тебя, Хабр! Наверняка вы заметили, что тема стилизации фотографий под различные художественные стили активно обсуждается в этих ваших интернетах. Читая все эти популярные статьи, вы можете подумать, что под капотом этих приложений творится магия, и нейронная сеть действительно фантазирует и перерисовывает изображение с нуля. Так уж получилось, что наша команда столкнулась с подобной задачей: в рамках внутрикорпоративного хакатона мы сделали стилизацию видео, т.к. приложение для фоточек уже было. В этом посте мы с вами разберемся, как это сеть "перерисовывает" изображения, и разберем статьи, благодаря которым это стало возможно. Рекомендую ознакомиться с прошлым постом перед прочтением этого материала и вообще с основами сверточных нейронных сетей. Вас ждет немного формул, немного кода (примеры я буду приводить на Theano и Lasagne), а также много картинок. Этот пост построен в хронологическом порядке появления статей и, соответственно, самих идей. Иногда я буду его разбавлять нашим недавним опытом. Вот вам мальчик из ада для привлечения внимания.


          Читать дальше →
        Самое читаемое