инженер
Умный дом / Обновления в Lazurite
Всем добрый день! Продолжаю развивать свой проект Lazurite. За последние несколько месяцев было проведено много работы по оптимизации и улучшению программы. Об основных изменениях хочу рассказать вам. Прошлая публикация.
Iodide: интерактивный научный редактор от Mozilla
Изучение аттрактора Лоренца, а затем редактирование кода в Iodide
В последние десять лет произошёл настоящий взрыв интереса к «научным вычислениям» и «науке о данных», то есть применению вычислительных методов для поиска ответов на вопросы, анализа данных в естественных и социальных науках. Мы видим расцвет специализированных ЯП, инструментов и методов, которые помогают учёным исследовать и понимать данные и концепции, а также сообщать о своих выводах.
Но на сегодняшний день очень немногие научные инструменты используют полный коммуникационный потенциал современных браузеров. Результаты дата-майнинга не очень удобно просматривать в браузере. Поэтому сегодня Mozilla представляет Iodide — экспериментальный инструмент, который помогает учёным составлять красивые интерактивные документы с использованием веб-технологий, всё в рамках итеративного рабочего процесса, который многим знаком.
Wolfenstein 3D: трассировка лучей с помощью WebGL1

После появления прошлым летом графических карт Nvidia RTX трассировка лучей (ray tracing) снова обрела былую популярность. За последние несколько месяцев мою ленту в Twitter заполнил бесконечный поток сравнений графики со включенным и отключенным RTX.
Полюбовавшись на такое количество красивых изображений, я захотел самостоятельно попробовать скомбинировать классический упреждающий рендерер (forward renderer) с трассировщиком лучей.
Страдая синдромом неприятия чужих разработок, я в результате создал собственный гибридный движок рендеринга на основе WebGL1. Поиграть с демо рендеринга уровня из Wolfenstein 3D со сферами (которые я использовал из-за трассировки лучей) можно здесь.
Задача N тел или как взорвать галактику не выходя из кухни

Не так давно я прочёл фантастический роман «Задача трёх тел» Лю Цысиня. В нём у одних инопланетян была проблема — они не умели, с достаточной для них точностью, вычислять траекторию своей родной планеты. В отличии от нас, они жили в системе из трёх звёзд, и от их взаимного расположения сильно зависела «погода» на планете — от испепеляющей жары до леденящего мороза. И я решил проверить, можем ли мы решать подобные задачи.
Запускаем датчик скорости потока газа
В прошлый раз у меня была возможность только
Мы начнём с теоретической базы, а закончим видео, где с помощью велосипедного насоса и скотча демонстрируется работа прототипа измерительного устройства на базе FS7.
Модульные боты-муравьи с памятью

Одним из проектов, которые я долго мечтал реализовать, были модульные боты задач с памятью. Конечная цель проекта заключалась в создании мира с существами, способными действовать независимо и коллективно.
Раньше я уже программировал генераторы миров, поэтому хотел заселить мир простыми ботами, использующими ИИ, определяющим их поведение и взаимодействия. Таким образом, благодаря влиянию акторов на мир можно было увеличить его детализацию.
Я уже реализовал базовую систему конвейера задач на Javascript (потому что это упростило мою жизнь), но мне хотелось чего-то более надёжного и масштабируемого, поэтому этот проект я написал на C++. На это меня сподвиг конкурс по реализации процедурного сада в сабреддите /r/proceduralgeneration (отсюда и соответствующая тема).
В моей системе симуляция состоит из трёх компонентов: мира, населения и связывающих их набора действий. Следовательно, мне нужно было создать три модели, о которых я расскажу в этой статье.
Для увеличения сложности я хотел, чтобы акторы сохраняли информацию о предыдущем опыте взаимодействия с миром и использовали знания об этих взаимодействиях в будущих действиях.
Как заставить игру работать с частотой 60fps
while(running) {
update();
render();
display();
}
Очень просто! Теперь игра работает с 60fps и всё идёт как по маслу. Готово. Спасибо, что прочитали этот пост.

Ну ладно, очевидно, что всё не так хорошо. Что если у кого-то слабый компьютер, который не может рендерить игру с достаточной для обеспечения 60fps скоростью? Что если кто-то купил один из тех крутых новых 144-герцовых мониторов? Что если он отключил в настройках драйвера vsync?
Взгляд биолога на мутационную теорию старения
По просьбам читателей я нашёл в себе силы написать продолжение вот этой статьи. Первая статья была направлена, главным образом, на обоснование существования и важности естественной смертности, а также необоснованности некоторых положений теорий «накопления ошибок». Я, пожалуй, продолжу эту статью в том же ключе, но на этот раз с небольшим уклоном к подходам поиска эликсиров бессмертия – ведь всех же интересуют именно они.
В первой статье явление естественной смертности мы рассматривали, так сказать, с самой высокой точки биологической организации. С этого уровня хорошо видно, за что могла «зацепиться» эволюция и начать устанавливать норму жизни для того или иного вида. С точки зрения создания эликсира бессмертия этот уровень нам совершенно не интересен, потому как к бессмертию мы хотим привести конкретную особь, а конкретные особи как известно не эволюционируют в биологическом смысле. Нам интересен механизм, посредством которого приговор приводится к исполнению и то, как сломать этот механизм. А значит в этой статье мы будем рассматривать проблему с более «низкой» точки зрения – индивидуальном и клеточно-молекулярном (я постараюсь сделать это как можно понятнее без зубодробительных биохимиоругательных слов).
Жизнь на частицах
Классический пример системы с простыми правилами и сложным поведением — клеточные автоматы, именно на них я и ориентировался, пытаясь подобрать правила. Конечно же, для клеточных автоматов правила будут в большинстве случаев проще. Но частицы могут быть красивее!
Под катом много мегабайт гифок.

Алгоритм Брезенхема в паяльной печи — теория

Как давать и получать обратную связь, если ты воробушек-социофобушек
Геннадий — middle-разработчик в большой IT-компании. Он интересуется джавой, кодит с 11 до 20, ездит на работу на самокате, ходит в бар с коллегами по пятницам и скучает на эджайл-митингах. Геннадий участвует в код-ревью и легко даёт советы младшим товарищам, когда дело касается прямых рабочих обязанностей. Проблема в том, что прямыми рабочими обязанностями работа не ограничивается, и тогда начинается адок.
«Как сказать начальнику, что можно бы получше начальничать?», «Как объяснить коллеге, что переживаю из-за проекта», — подобные вопросы возникают у Геннадия регулярно, и он не знает, что с ними делать. Как сказать о недостатках и при этом не обидеть? Как похвалить так, чтобы у сотрудника загорелись глаза? И главное — как это сделать, если вы всю жизнь пытаетесь минимизировать взаимодействие с незнакомыми людьми?
Такие вопросы возникают у многих разработчиков (и не только), но часто непонятно, как начать и правильно построить разговор. Давайте разберемся, как подступиться к обратной связи так, чтобы не страдать из-за этого остаток дня и не винить себя за странные фразы.
Неожиданная эффективность квазислучайных последовательностей

Рисунок 1. Сравнение различных квазислучайных последовательностей с низким расхождением. Заметьте, что предлагаемая мной -последовательность создаёт более равномерно распределённые точки, чем все остальные методы. Более того, все остальные методы требуют тщательного подбора базовых параметров, а в случае неправильного подбора приводят к вырожденности (например справа вверху)
Рассматриваемые в статье темы
- Последовательности с низким расхождением в одном измерении
- Методы с низким расхождением в двух измерениях
- Расстояние упаковки
- Множества с многоклассовым низким расхождением
- Квазислучайные последовательности на поверхности сферы
- Квазипериодический тайлинг плоскости
- Маски дизеринга в компьютерной графике
Какое-то время назад этот пост был выложен на главной странице Hacker News. Можете прочитать там его обсуждение.
Суверенный LPWAN, часть 1: лицензирование и эксплуатация LPWAN-сетей в России — старые новые требования ГКРЧ
В конце прошлого года причастные к «интернету вещей» сайты, блоги и каналы всколыхнула новость — якобы ГКРЧ приняла решение, согласно которому базовые станции любых IoT-сетей LPWAN должны быть только российского производства, а при установке их в обязательном порядке необходимо регистрировать.

Базовая станция LoRaWAN российского производства
Хотя для самой популярной из открытых технологий — LoRaWAN — российские БС вполне себе существуют, это, например, новосбириская Вега БС-2, новость вызвала у многих серьёзное волнение. Во-первых, одной Вегой сыт не будешь, Kerlink, Multitech и даже Sagemcom тоже иногда хочется. Во-вторых, ну хорошо, сегодня все строят LoRaWAN, а завтра? Такое решение попросту закрыло бы путь на российский рынок для новых стандартов — зарубежное оборудование эксплуатировать нельзя, а в разработку аналогичного российского вкладываться никто не будет, пока не станет хоть как-то понятна окупаемость и перспективы.
Впрочем, на самом деле, как обычно с российским законодательством, совы — не те, кем они кажутся.
Давайте разбираться.
MQTT/UDP, предвесенние итоги: дистанционная конфигурация и цифровая подпись
Для начала, ссылки на предыдущие введение и статью.
Спасибо всем, кто с интересом отреагировал и отдельно тем, кто делился мыслями. Вы мне очень помогли с подходом к цифровой подписи. Итак, что изменилось по крупному:
- Появился механизм гибкого расширения протокола: Tagged Tail Records, TTRs
- На его базе сделана схема цифровой подписи пакетов
- Сделан механизм дистанционной конфигурации компонент
- Поднят полный цикл CI: сборка, юнит-тесты, сквозные тесты протокола (4*4 языка программирования)
- Реализация на Си теперь поддерживает разные архитектуры и умеет интегрироваться с разными ОС и мониторами.
- Есть публичные пакеты для Питона и Луа, хотя, конечно, они уже устарели.
Ну и многое по мелочи: интеграция с OpenHAB, конфиг-файлы и логгинг, проверка совместимости с облачным MQTT сервисом, сделан тестовый пример для Wemos D1 (NodeMCU), сделан тестовый пример для atmega128+ethernet (не ардуино), сделан пример протокольного коннектора на Яве (CCU825), сделан пример информера-контроллера в desktop tray (наконец-то я могу включать свет в комнате в два клика мышки:), и ещё разное.
Теперь по порядку.
О линтерах, качестве кода, качестве вообще и управлении качеством
Народная мудрость.
Одна пара пожелала пожениться и обрести вечное счастье. Я взорвал их машину у церкви сразу после венчания.
One Wish Grant, фильм Трасса 60.

Ещё одна философская заметка про управление, а данном случае качеством, состоит из трёх частей: очень абстрактной, в меру абстрактной, конкретной и отдельного вывода. Содержит критику существующей практики применения линтеров.
DIY тепловизор на Raspberry PI или «Кажется теперь я знаю, чем займусь этим летом»

Всем привет!
Пришла зима, а с ней и задача проверить теплоизолирующие свойства
Восстановление когнитивных способностей 100 пациентов (перевод статьи Дейла Бредесена)

Привет, Хабр! Представляю вашему вниманию перевод оригинальной статьи Дейла Бредесена, директора отдела нейродегенеративных заболеваний медицинского факультета Калифорнийского университета в Лос-Анджелесе (UCLA), автора «The End of Alzheimer's: The First Program to Prevent and Reverse Cognitive Decline» (Конец болезни Альцгеймера: первая программа предотвращения и восстановления когнитивных функций). Если у вас есть родственник или знакомый, страдающий болезнью Альцгеймера, то описанный здесь протокол, возможно, сможет помочь.
Дополнительные программные средства безопасности для NAS
Цикл статей назван "Построение защищённого NAS". Поэтому в данной статье будет рассматриваться повышение уровня защищённости. Также, будут описаны и те инструменты, которые я не использовал, но возможно применить.
Расшифровка трассировщика лучей размером с открытку

«Он снова это сделал!», — вот, что первое пришло мне в голову, когда я посмотрел на оборотную сторону флаера Pixar [1], полностью заполненную кодом. Скопление конструкций и выражений была подписана в правом нижнем углу не кем иным, как Эндрю Кенслером. Для тех, кто его не знает, скажу: Эндрю — это программист, придумавший в 2009 году 1337-байтный трассировщик лучей размером с визитку.
На этот раз Эндрю придумал нечто более объёмное, но с гораздо более интересным визуальным результатом. Так как я закончил писать свои Game Engine Black Books про Wolf3D и DOOM, у меня появилось время на изучение внутренностей его загадочного кода. И почти сразу меня буквально очаровали обнаруженные в нём техники. Они сильно отличались от предыдущей работы Эндрю, основанной на «стандартном» трассировщике лучей. Мне было интересно узнать о ray marching, функциях конструктивной объемной геометрии, рендеринге Монте-Карло/трассировкой пути, а также множестве других трюков, которые он использовал, чтобы ужать код в такой небольшой кусок бумаги.

Information
- Rating
- Does not participate
- Location
- Москва, Москва и Московская обл., Россия
- Date of birth
- Registered
- Activity