Pull to refresh
Roman Naumov @sithread⁠-⁠only

Software Engineer

Send message

Что почитать (НаучПоп / Научная Фантастика)

Reading time6 min
Views66K

Некоторые время назад сильно увлёкся потреблением информации с научно-популярным уклоном. Но как не заблудиться в миллионах книг? Ресурс то ограничен. А значит придётся выбирать.

Удалось собрать библиотеку по 4 разделам:


Раздел 1. Законы науки и мышление
(Математика, Рациональность, Научный метод, Когнитивные искажения, Нейрофизиология, Ошибки мышления, Доказательная медицина)

Раздел 2. Законы природы
(Физика, Математика, Теория относительности, Квантовая механика, Астрофизика, Астрономия, Изобретения и открытия)

Раздел 3. Законы жизни
(Абиогенез, Теория эволюции, Молекулярная биология, Биоинформатика, Биология клетки, Антропогенез)

Раздел 4. Художественный научпоп / Научная фантастика

Обменяться рекомендациями

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

Reading time12 min
Views68K
Продолжая тему устройства в FAANG, которую уже мы поднимали в нашем блоге, и специально к старту нового потока нашего курса по алгоритмам сегодня делюсь описанием пути Эско Обонга, старшего инженера-программиста Uber.

Эта история началась в 2015 году, когда стартап, к которому я присоединился как «сотрудник-основатель», закрылся через шесть месяцев после первого раунда инвестиций, и я искал новую работу. Первое моё собеседование было с  Codecademy, где на этапе телефонного разговора меня заверили: «Не волнуйтесь, мы не задаём сумасшедших вопросов об алгоритмах или что-то в этом роде». И я им поверил…


Приятного чтения!

Выделяем ДНК банана в домашних условиях

Reading time5 min
Views74K

В анонсах мероприятий, которые проходят в Leader-ID, можно встретить неожиданные вещи. К примеру — мастер-класс по выделению молекул ДНК, для которого достаточно «оборудования» и «реагентов», присутствующих на любой кухне. Этот эксперимент можно провести вместе с детьми — погрузить их, так сказать, в мир биологии и химии.

Читать далее

Какие протоколы коммуникаций могут быть у продвинутых цивилизаций, кроме радиосвязи?

Reading time7 min
Views31K

Ускорители частиц вокруг нейтронной звезды в конструкции галактического маяка. Источник: A Neutrino Beacon. A. A. Jackson, arXiv:1905.05184

Поиск внеземной жизни и установление контакта — одна из самых важных задач, которые стоят перед человечеством. Согласно известному уравнению Дрейка, крайне маловероятно, что появление разумной жизни в бесконечной Вселенной — единичное событие. То есть цивилизаций должно быть очень много, в том числе и технологически развитых.

Но при этом возникает парадокс Ферми:

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

Кажется, на этот вопрос есть разумный ответ.
Читать дальше →

Вакцина «Спутник V»: инструкция, как испортить хорошее дело

Reading time9 min
Views223K

Давайте на минуту отбросим все предубеждения и стереотипы об отечественной медицине и попробуем объективно разобраться в том, что сделано правильно, а что неправильно с "первой в мире вакциной от COVID" — Спутник V от «НИИ эпидемиологии и микробиологии им. Н. Гамалеи».


Поговорим о том, как устроена современная наука в целом и доказательная медицина в частности, и при чем тут пиар.


image

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

Про хороший и плохой дизайн для недизайнеров

Reading time13 min
Views21K

Что нужно пользователю от сайта? Чтобы нужная информация находилась легко, как рыбка в аквариуме. Дизайн в первую очередь должен решать проблемы пользователя. Я часто сталкиваюсь с нарушением UX-принципов в программных продуктах, поэтому хочу помочь менеджерам, начинающим дизайнерам и программистам освоить базовые принципы юзабилити, а также научиться распознавать распространённые ошибки.

Читать далее

Графические войны #1: лагающее пиксельное XX столетие

Reading time43 min
Views22K

50 лет истории видеокарт (1970-2020): Полная история видеокарт и их прародителей


Часть 1


Часть 2

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

image

Предисловие эпохи. Зарождение компьютеров (1940-е/1950-е)


Эпоха компьютерных технологий у многих вызывает ассоциации с началом эпохи персональных компьютеров в начале 80-х, но на самом деле первые компьютеры появились гораздо раньше. Первые разработки таких машин начались еще до Второй Мировой войны, а прототипы, отдаленно напоминающие будущие ПК, увидели свет уже в 1947 году. Первым таким устройством стал IBM 610 — экспериментальный компьютер, разработанный Джоном Ленцем из Уотсоновской лаборатории при Колумбийском университете. Он первым в истории получил гордое название «Персонального автоматического компьютера» (Personal Automatic Computer, PAC), хотя оно и было слегка преувеличенным – машина стоила $55 тысяч, и было изготовлено всего 150 экземпляров.

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

Unity Addressables: памяти хватит всегда

Reading time13 min
Views30K
image

Вы руководите командой из нескольких программистов и художников, работающих над портированием красивой VR-игры на PS4 под Oculus Quest. У вас есть на это шесть месяцев. Каким будет ваш первый ход? Давайте попробуем воспользоваться Unity Addressables.

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

Предположу следующее: примерно 70% читателей скажут, что самой большой проблемой при портировании игры на Quest является производительность ЦП/GPU. Я могу ответить на это: скорее всего, вы правы. Повышение производительности — одна из сложнейших областей в VR-игре. Для оптимизаций такого типа необходимо глубокое изучение продукта, а на это требуется время. Иногда дальнейшая оптимизация невозможна, из-за чего обычно приходится избавляться от затратных элементов геймплея и графики. А разочаровывать игроков опасно.
Читать дальше →

Когда все будут ездить на электромобилях?

Reading time4 min
Views11K
11 января 1914 года в газете «Нью-Йорк Таймс» появилось заявление Генри Форда:

«Надеюсь, что через год мы начнем производство электромобиля. Я не люблю говорить о вещах на год вперед, но хочу рассказать вам кое-что о моих планах. Дело в том, что мы с мистером Эдисоном уже несколько лет работаем над созданием дешевых и практичных электромобилей. Они были сделаны в порядке эксперимента, и мы удовлетворены тем, что путь к успеху очевиден. Проблема электромобилей заключалась до сих пор в создании аккумуляторной батареи небольшого веса, которая могла бы работать на больших расстояниях без подзарядки. Мистер Эдисон уже некоторое время экспериментирует с такой батареей».

Но что-то пошло не так…

image
Томас Эдисон у электромобиля Detroit Electric
Читать дальше →

Почему об этом стоит задуматься всем: ответы на самые актуальные вопросы о коронавирусе Covid-19

Reading time7 min
Views186K
Автор статьи Dave Troy — исследователь онлайн-дезинформации и лжи, а также эксперт в области расчётов, связанных со статистикой болезней. В последнее время он отвечал на многие вопросы о Covid-19 в социальных сетях, пытался опровергнуть заблуждения и ложь. Здесь приведены наиболее распространенные ответы, в надежде, что так эта информация станет более доступной для других.

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

Почему люди беспокоятся об этом вирусе больше, чем о гриппе?


Каждый человек, зараженный сезонным гриппом, может заразить примерно 1,3 других людей. SARS-CoV-2 (вирус, вызывающий Covid-19) заражает примерно в три раза больше людей (по оценкам, от 2 до 4). Это число называется репродуктивным фактором, или «R0» (иногда произносится как R-ноль). Такая скорость распространения позволяет вирусу очень быстро размножаться, и это может привести к перегрузке и без того загруженной системы здравоохранения.
Читать дальше →

Почему translit в именовании это плохо и другие интересные особенности нашего восприятия кода

Reading time7 min
Views15K
image

Есть неожиданно много людей, считающих, что писать код можно как угодно, а все эти правила и рекомендации просто занудство. Что же, у каждого каждого человека есть право на своё мнение.

Однако, код написаный таким образом читать, почему-то, большинство людей отказывается.

И на то есть причина. Вам никогда не доводилось сталкиваться с усталостью от чтения? Например, сложной технической литературы, канцелярита, другого языка? Уверен, что доводилось. И да, это именно усталость, пусть и не та же что и при физических нагрузках. Сложный для чтения текст значительно сильнее расходует ресурсы мозга.

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

Теория категорий позволяет математике отказаться от равенств

Reading time14 min
Views30K

Две монументальных работы убедили многих математиков отказаться от знака равенства. Их цель – реконструировать основы дисциплины при помощи более слабого взаимоотношения – «эквивалентности». И этот процесс не всегда идёт гладко.




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

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

«Мы породили эту идею равенства, — сказал Джонатан Кэмпбелл из Университета Дьюка. – А на её месте должна была быть эквивалентность».
Читать дальше →

Shader — это не магия. Написание шейдеров в Unity. Вертексные шейдеры

Reading time8 min
Views16K
Всем привет! Меня зовут Дядиченко Григорий, и я основатель и CTO студии Foxsys. Сегодня мы поговорим про вершинные шейдеры. В статье будет разбираться практика с точки зрения Unity, очень простые примеры, а также приведено множество ссылок для изучения информации про шейдеры в Unity. Если вы разбираетесь в написании шейдеров, то вы не найдёте для себя ничего нового. Всем же кто хочет начать писать шейдеры в Unity, добро пожаловать под кат.


Введение в Git

Reading time17 min
Views160K

Оглавление


Предисловие
1. Настройка git
....1.1 Конфигурационные файлы
....1.2 Настройки по умолчанию
....1.3 Псевдонимы (aliases)
2. Основы git
....2.1 Создание репозитория
....2.2 Состояние файлов
....2.3 Работа с индексом
....2.4 Работа с коммитами
....2.5 Просмотр истории
....2.6 Работа с удалённым репозиторием
3. Ветвление в git
....3.1 Базовые операций
....3.2 Слияние веток
....3.3 Rerere
4. Указатели в git
....4.1 Перемещение указателей
5. Рекомендуемая литература

Предисловие


Git — самая популярная распределённая система контроля версиями.[1][2]

Основное предназначение Git – это сохранение снимков последовательно улучшающихся состояний вашего проекта (Pro git, 2019).
Читать дальше →

Делегаты и события в C#

Reading time8 min
Views83K
Перевод статьи подготовлен специально для студентов курса «Разработчик С#».




Что такое события в C#?


Событие может быть использовано для предоставления уведомлений. Вы можете подписаться на событие, если вам нужны эти уведомления. Вы также можете создавать свои собственные события, которые будут уведомлять вас о том, что случилось что-то, что вас интересует. .NET Framework предлагает встроенные типы, которые можно использовать для создания событий. Используя делегаты, лямбда-выражения и анонимные методы, вы можете создавать и использовать события удобным способом.
Читать дальше →

Как была устроена графика NES

Reading time14 min
Views23K
image

Выпущенная в 1983 году домашняя консоль Nintendo Entertainment System (NES) была дешёвой, но мощной машиной, достигшей феноменального успеха. При помощи блока обработки изображений (Picture Processing Unit, PPU) система могла создавать достаточно впечатляющую по тем временам графику, которая и сегодня в нужном контексте выглядит вполне неплохо. Самым важным аспектом была эффективность памяти — при создании графики приходилось обходиться как можно меньшим количеством байтов. Однако вместе с этим NES предоставила разработчикам мощные и простые в использовании функции, позволившие ей выделиться на фоне более старых домашних консолей. Поняв принципы создания графики NES, можно проникнуться техническим совершенством системы и осознать, насколько проще работать современным разработчикам игр.

Фоновая графика NES собиралась из четырёх отдельных компонентов, комбинация которых образовывала изображение, которое мы видим на экране. Каждый компонент отвечал за отдельный аспект; цвет, расположение, «сырая» пиксельная графика и т.д. Такая система может показаться излишне сложной и громоздкой, но в конечном итоге она намного эффективнее использовала память и позволяла создавать простые эффекты в малом объёме кода. Если вы хотите понимать графику NES, то ключевой информацией будут эти четыре компонента.

В этой статье подразумевается, что вы знакомы с компьютерной математикой, и в частности с тем, что 8 бит = 1 байт, а 8 бит могут обозначать 256 значений. Также необходимо понимание того, как работает шестнадцатеричная запись. Но даже без этих технических знаний статья может показаться интересной.
Читать дальше →

Как использовать прерывания в Unity Animator на полную

Reading time5 min
Views26K


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

Оптимизация Unity UI

Reading time10 min
Views33K

image


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

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

Звуки для UI: подборка тематических ресурсов

Reading time3 min
Views23K
Рассказываем о площадках, где можно найти и скачать аудиосемплы для озвучки пользовательского интерфейса. Подборка пригодится тем, кто разрабатывает приложения или игры.

Другие наши подборки:


О сетевой модели в играх для начинающих

Reading time11 min
Views41K
image

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

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

В целом существует два основных типа сетевых архитектур: peer-to-peer и клиент-серверная. В архитектуре peer-to-peer (p2p) данные передаются между любыми парами подключенных игроков, а в клиент-серверной архитектуре данные передаются только между игроками и сервером.

Хотя архитектура peer-to-peer по-прежнему используется в некоторых играх, стандартом является клиент-серверная: она проще в реализации, требует канал меньшей ширины и облегчает защиту от читерства. Поэтому в этом руководстве мы сосредоточимся на клиент-серверной архитектуре.
Читать дальше →

Information

Rating
Does not participate
Location
Victoria, British Columbia, Канада
Date of birth
Registered
Activity

Specialization

Mobile Application Developer, Game Developer
Lead
Unity3d
Unreal Engine
AR and VR development
C++
C#
Game Development