• Взлом визуальной системы: 11 оптических иллюзий в графическом дизайне

    • Перевод
    Глубока ли кроличья нора?

    image

    Сколько минут вам потребуется, чтобы понять в чем фишка?

    Фрэнсис Бэкон в 1620 году разделил источники человеческих ошибок, стоящих на пути познания, на четыре группы, которые он назвал «призраками» или «идолами» (лат. idola).

    • «Призраки рода» проистекают из самой человеческой природы, они не зависят ни от культуры, ни от индивидуальности человека. «Ум человека уподобляется неровному зеркалу, которое, примешивая к природе вещей свою природу, отражает вещи в искривлённом и обезображенном виде».
    • «Призраки пещеры» — это индивидуальные ошибки восприятия, как врождённые, так и приобретённые. «Ведь у каждого, помимо ошибок, свойственных роду человеческому, есть своя особая пещера, которая ослабляет и искажает свет природы».
    • «Призраки площади (рынка)» — следствие общественной природы человека, — общения и использования в общении языка. «Люди объединяются речью. Слова же устанавливаются сообразно разумению толпы. Поэтому плохое и нелепое установление слов удивительным образом осаждает разум».
    • «Призраки театра» — это усваиваемые человеком от других людей ложные представления об устройстве действительности. «При этом мы разумеем здесь не только общие философские учения, но и многочисленные начала и аксиомы наук, которые получили силу вследствие предания, веры и беззаботности». [Wikipedia]

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

    • Перевод

    Мне всегда нравились классические шутеры от первого лица 90-х. Я часами просиживал за моим 386-м, играя Doom, потрясённый тем, как кому-то удалось написать код, отрисовывающий на моём экране 3D-графику в реальном времени с отличным разрешением 320x200. Я немного знал программирование (только что начал изучать BASIC), поэтому осознавал, что глубоко внутри это всего лишь куча математики и байтов, записываемых в видеопамять. Но в то время даже массивы для меня были довольно сложным понятием, поэтому я не мог даже начать постигать всю сложность 3D-рендеринга.

    В то время все писали 3D-движки с нуля, потому что другого способа не было. Но сегодня написание логики 3D-рендеринга с нуля скорее всего окажется плохой идеей. Очень плохой. Почти как изобретение колеса! При наличии огромного количества 3D-движков и библиотек, намного более хорошо протестированных и оптимизированных, чем то, что вы можете сделать сами, нет никаких причин для разумного разработчика начинать писать собственный движок.

    Если только…

    Представьте, что вы можете вернуться в машине времени назад в 90-е, когда ещё не было OpenGL и DirectX, не было видеопроцессоров. Всё что у вас есть — ЦП и экран, заполненный пикселями. Вам всё придётся писать самому.

    Если эта идея кажется вам интересной, то вы не одиноки: это именно то, что можно сделать на такой выдуманной консоли, как TIC-80.
    Читать дальше →
  • Поиск и исправление багов в исходниках PHP

    • Перевод


    Честно предупреждаю: воспринимайте этот текст с определённой долей скептицизма. Я лишь недавно начал знакомство с внутренностями PHP, но хотел бы рассказать вам о том, что творится за кулисами бага #75237.

    Читать дальше →
    • +66
    • 11,1k
    • 9
  • Бесплатная YouTube-трансляция DevOps-конференции DevOops 2017

      Если вы ранее видели мои посты, вы знаете, что мы в JUG.ru Group делаем большие технические конференции для IT-инженеров (разработчиков, исследователей, тестировщиков, сисадминов). И вот, пару недель назад я обратился к одному из ребят из сообщества с просьбой поддержать конференцию постом в блоге, на что получил категорический отказ. Мол, раз билеты платные, то вы находитесь на оси зла, не поддерживаете сообщество, не помогаете индустрии, а только развлекаете богатые корпорации и помогаете им еще больше «корпоратеть».

      Тогда я ответил, что все видеозаписи докладов мы через несколько месяцев выкладываем на YouTube в общий доступ, делаем открытые JUG'и и вообще, деньги берем только за то, что мы делаем интересный для индустрии продукт, а не преследуем свои цели (как большинство крупных корпораций, которые собирают базы для отделов HR или отделов продаж): отбираем доклады, которые нужны людям и которые будут покупать, это наш козырь и наш хлеб.

      Вот только я совсем забыл еще кое о чем: о бесплатных трансляциях наших конференций. Если покопаетесь в нашем блоге, вы поймете, что весь 2017 год мы делали открытые трансляции главных треков наших конференций.

      20 октября 2017 в 9:30 утра (по московскому времени) начнется бесплатная онлайн-трансляция из главного зала конференции DevOops 2017! И не просто трансляция, а 2к трансляция, наконец-то ваши Retina и 4k мониторы окажутся нужны для чего-то полезного!


      Читать дальше →
    • Как отлаживать маленькие программы

      • Перевод
      Довольно много плохих вопросов, которые я вижу на StackOverflow, можно описать следующей формулой:
      Вот моё решение домашнего задания. Оно не работает.
      [20 строк кода]
      И… всё.

      Прим. пер.: это перевод статьи "How to debug small programs", на которую ссылаются в справочном разделе английского StackOverflow, посвящённом созданию минимальных, самодостаточных и воспроизводимых примеров. Мне кажется, она прекрасно описывает то, что должен знать каждый программист — основы отладки нерабочего кода.

      Если вы читаете эту заметку, то, скорее всего, вы перешли по ссылке, которую либо я, либо кто-то ещё оставил под вашим вопросом на StackOverflow незадолго до того, как этот вопрос был закрыт и удалён. (Если вы читаете эту заметку по другому поводу, оставляйте свои любимые советы по отладке маленьких программ в комментариях).
      Читать дальше →
    • Моноиды, полугруппы и все-все-все

      • Перевод

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


      Mark Seeman расскажет о функциональном программировании просто и быстро. Для этого он начал писать цикл статей, посвященных связи между паттернами проектирования и теорией категорий. Любой ООПшник, у которого есть 15 минут свободного времени, сможет заполучить в свои руки принципиально новый набор идей и инсайтов, касающихся не только функциональщины, но и правильного объектно-ориентированного дизайна. Решающим фактором является то, что все примеры — это реальный код на C#, F# и Haskell. Этот хабрапост — перевод самого начала цикла, первых трех статей, слитых воедино для удобства понимания.


      Кроме того, с Марком можно пообщаться вживую, посетив конференцию DotNext 2017 Moscow, которая состоится 12-13 ноября 2017 г. в Москве, в «Славянская Рэдиссон». Марк прочитает доклад на тему «From dependency injection to dependency rejection». Билеты можно взять здесь.

      Читать дальше →
    • Реклама помогает поддерживать и развивать наши сервисы

      Подробнее
      Реклама
    • Мы на Highload++ в этом ноябре: задай вопрос инженерам Badoo


        Привет, Хабр! А особенный привет тем, кто в этом году идет на конференцию Highload++, потому что мы там обязательно встретимся. Мы придем, и не с пустыми руками: восемь докладов в семь разных секций.


        Но нам не хочется просто показать описания наших докладов, чтобы вы прочитали и сказали: “Понятно”. Мы разыграем 3 билета на конференцию. Для того, чтобы получить их, нужно задать вопрос в комментариях к этому посту одному из нижеперечисленных спикеров, а мы посоветуемся и наградим троих участников. Чтобы вы смогли придумать вопросы, каждый из ребят немного рассказал о команде, в которой работает, и о своей роли в ней.


        Под катом – имена, пароли и, конечно, описания наших докладов на конференции.

        Читать дальше →
      • Ардуино головного мозга: импульсный датчик положения

        • Tutorial

        Задача на сегодня: как определить угол поворота инкрементального энкодера?


        Сегодня в серии публикаций про ардуино головного мозга коротенькая статья с небольшим экспериментом и парой рецептов. В комментариях к одной из моих прошлых статей меня обвинили в том, что ардуиной подсчитывать импульсы энкодера — фу так делать:
        Оптически энкодер 1000/оборот и ATMega не имеющая аппаратной схемы работы с энкодером (как у серий STM32, например) — это тупик.
        Дальше в комментариях было много теоретизирования, которое лучше пропустить. Давайте лучше попробуем протестировать в железе, насколько это тупик. Для начала, что такое инкрементальный энкодер? Тот, кто помнит эпоху до-оптических мышек, ответ знает точно. Внутри энкодера есть диск с прорезями, вот для наглядности я сделал фотографию диска с пятьюстами прорезями:


        Читать дальше →
      • Введение в архитектуры нейронных сетей



          Григорий Сапунов (Intento)


          Меня зовут Григорий Сапунов, я СТО компании Intento. Занимаюсь я нейросетями довольно давно и machine learning’ом, в частности, занимался построением нейросетевых распознавателей дорожных знаков и номеров. Участвую в проекте по нейросетевой стилизации изображений, помогаю многим компаниям.

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

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

          Дальше я расскажу про важные тренды, что происходит в этой области. Затем мы углубимся в архитектуру нейросетей, рассмотрим 3 основных их класса. Это будет самая содержательная часть.

          После этого рассмотрим 2 сравнительно продвинутых темы и закончим небольшим обзором фреймворков и библиотек для работы с нейросетями.
          Читать дальше →
          • +48
          • 18,1k
          • 1
        Самое читаемое