Как стать автором
Обновить
27
0
Михаил Белов @micb

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

Отправить сообщение

А в чем проблема работать с файлами?

Уровень сложности Средний
Время на прочтение 52 мин
Количество просмотров 11K

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

Меня увлекла тема отказоустойчивости, а конкретно - отказоустойчивой работы с файлами. В этой статье я попытался соединить все полученные знания:

Кто участвует в процессе записи

Ошибки, которые могут произойти

Что от нас зависит, а что нет

И самое главное - как это этого защититься

Читать далее
Всего голосов 83: ↑83 и ↓0 +83
Комментарии 12

Процедурные складки на одежде для мультфильма на основе Geometry Nodes

Время на прочтение 6 мин
Количество просмотров 4K

Привет, Хабр! Я Михаил Солуянов, ведущий разработчик в МТС Авто — занимаюсь генерацией синтетических изображений для обучения нейросетей. В рабочее время я Unity-разработчик, а в свободное — инди-аниматор мультфильмов. Сегодня расскажу о том, как сделать складки на одежде без симуляции ткани в Blender.

В 2020 году я сделал мультфильм «Мышиный Новый год» (ru, en), который попал на фестиваль Giffoni-50 — один из самых крутых фестивалей, специализирующихся на детской анимации. В мультфильме у меня были герои — антропоморфные мыши в миниатюрных одеждах. И мне захотелось добавить им складки на одежде, которые правдоподобно реагировали бы на их движения. Расскажу о том, как использовал Tension Map и почему перешёл в итоге на Geometry Nodes. Поехали!

Читать далее
Всего голосов 52: ↑52 и ↓0 +52
Комментарии 3

Двухтрубные системы отопления тупикового и попутного типа. Мнимая магия «петли Тихельмана»

Время на прочтение 21 мин
Количество просмотров 46K

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

Ранее в одной из статей я уже рассказывал об однотрубных системах отопления.

Теперь настала очередь рассмотреть особенности проектирования и эксплуатации двухтрубных систем, которые крайне популярны у частных домовладельцев в ИЖС.

Так же двухтрубные вертикально-стояковые системы отопления пытаются применять и в многоквартирных домах.

Далее мы рассмотрим гидравлический расчёт систем для одного этажа частного дома с периметром в те же 50м для дом 10х15м по внутренним стенам (150м.кв на этаж).

А позже попытаемся применить те же подходы для максимальной высоты 50м в стояковой системе высотного дома.

Тупиковая система

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

Читать далее
Всего голосов 74: ↑70 и ↓4 +66
Комментарии 173

Xiaomi Mi Thermometer 2 не только Bluetooth, но и ZigBee

Уровень сложности Средний
Время на прочтение 4 мин
Количество просмотров 71K

TL;DR: Да, можно программно изменить датчик для работы в сети Zigbee, достаточно по воздуху перезаписать прошивку.

Многим пользователям умного дома известен квадратный датчик температуры и влажности от Xiaomi LYWSD03MMC. Его очевидные плюсы — это LCD экран, подключение к системе умного дома MiHome и конечно же цена. Его без преувеличения можно назвать если не самым, то точно одним из самых дешевых "умных" датчиков, которые имеют интерфесы для подключения к умному дому. В данном случае это популярный bluetooth, который позволяет подключиться к датчику со смартфона и увидеть показания. Поэтому он завоевал своё место в сердцах строителей умных домов как дешевое и надёжное решение.

Читать далее
Всего голосов 91: ↑91 и ↓0 +91
Комментарии 152

adb: tap, swipe и два дымящихся event'а

Время на прочтение 6 мин
Количество просмотров 3.9K

Разработчики приложений для Android, а также тестировщики знают про команды adb shell input tap X Y и adb shell input swipe X1 Y1 X2 Y2 [DurationMs]. Но у каждой из них есть свой фатальный недостаток. Что это за недостатки, как их исправить с помощью event'ов и о нюансах я расскажу в этой статье. Да, чуть не забыл: сторонние приложения не используются, рут не нужен.

тап-тап
Всего голосов 8: ↑8 и ↓0 +8
Комментарии 0

Утром данные — вечером деньги: выбираем места под банкоматы на основе данных

Время на прочтение 9 мин
Количество просмотров 2.8K

Теперь место, где поставить новый банкомат, определяет система машинного обучения. Мы готовили её целый год: за 2-3 месяца сделали первое решение, а потом дорабатывали, оптимизировали и ждали новых данных по банкоматам, установленным уже с помощью системы. Под капотом я расскажу, как это происходило — и кто снимает много денег в безлюдных местах.

Читать далее
Всего голосов 5: ↑4 и ↓1 +3
Комментарии 3

Linux-порт Far Manager: что нового за 2022й?

Время на прочтение 5 мин
Количество просмотров 19K

Примерно раз в год я пишу длинный статус апдейт по проекту far2l — порту Far Manager под Linux, MacOS и BSD. Пожалуй, накопилось достаточно изменений для очередного выпуска.

Поддержка Unicode: составные символы и символы двойного размера

Оригинальный Far Manager для консоли Windows писался в парадигме «одна экранная ячейка — один символ». И даже когда Far переводили с однобайтных кодировок на Unicode (внутри у современного Far все строки в UTF16, в Linux версии — в UTF32), от этой парадигмы не отходили.

Однако Unicode устроен сложнее. Во-первых, существуют иероглифы, которые в одно знакоместо латинского символа помещаться категорически не желают. Для них придумали концепцию Full-Width знаков, которые в моноширинных шрифтах занимают не одно знакоместо, а два, логически являясь при этом одним символом. Во-вторых, существуют диакритические символы (это могут быть знаки ударения или, например, точки над ё), которые в Unicode кодируются отдельным символом, а отображаются над (или под) предыдущим.

В результате имена файлов, содержащие иероглифы или диакритику (или эмодзи, они тоже двойного размера) приводили к ошибкам рендеринга интерфейса.

Читать далее
Всего голосов 94: ↑94 и ↓0 +94
Комментарии 98

Альтернативная прошивка для датчика температуры и влажности Sonoff SNZB-02 Zigbee

Время на прочтение 5 мин
Количество просмотров 10K
Приветствую всех читателей Habr. В этой статье хочу поделиться с вами своим новым небольшим проектом.



Звездой этого проекта является датчик температуры и влажности воздуха SONOFF SNZB-02 от компании ITEAD. Этот датчик появился на рынке около 2 лет назад, это было по сути первой попыткой компании ITEAD войти в сегмент Zigbee устройств. Компанией была выпущена серия датчиков в количестве 4 штук и шлюз к ним.
Читать дальше →
Всего голосов 21: ↑21 и ↓0 +21
Комментарии 1

Мини-игра на Rust + macroquad

Время на прочтение 11 мин
Количество просмотров 6.6K

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

Читать далее
Всего голосов 24: ↑24 и ↓0 +24
Комментарии 8

Основы Linux (обзор с практическим уклоном)

Время на прочтение 14 мин
Количество просмотров 273K

Привет, Хабр!

В последние несколько лет все больше и больше людей ищут возможность войти в ИТ или поглубже изучить Linux, повысив уровень своей квалификации. Вместе с тем полноценных обзоров с практическом уклоном по типу «все и сразу» написано не так уж и много (особенно на русском языке).

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

Читать далее
Всего голосов 76: ↑72 и ↓4 +68
Комментарии 44

Классика фантастики и фэнтези, которая лишь недавно добралась до русскоязычного читателя

Время на прочтение 6 мин
Количество просмотров 57K

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

Читать далее
Всего голосов 124: ↑117 и ↓7 +110
Комментарии 22

Настройка LEMP сервера для простых проектов. Инструкция для самых маленьких. Часть вторая

Время на прочтение 13 мин
Количество просмотров 11K

Данная статья является продолжением предыдущей статьи https://habr.com/ru/company/nixys/blog/645451/. Статья является обучающим материалом для начинающих администраторов, а также для разработчиков, которые хотели бы познакомиться с миром администрирования проектов. Если вы являетесь опытным администратором, можете смело пропускать данный материал.

Целью серии статей является описание подготовки работы сервера со стеком LEMP (Linux, Nginx, MySQL, PHP), отмечу, что в качестве PHP интерпретатора здесь используется Apache2, а не PHP-FPM, так как показывает практика многим разработчикам по прежнему необходим файл.htaccess, работу с которыми PHP-FPM из коробки не поддерживает.

Со своей стороны мы переносим правила из файла .htaccess в Nginx при необходимости установки PHP-FPM, однако это также занимает определенное время, зачастую разработчикам проще и быстрее внести нужные правила для текущих площадок именно в .htaccess файл. Также статьи описывают развертывание стэка и поднятие на нем работающих площадок. Инструкция подойдет для небольших Bitrix проектов, а тажке для проектов развернутых под любой популярной CMS.

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

Целью статей не является показать как развернуть идеальное окружение, а лишь указать на нюансы в работе и защитить начинающих специалистов от базовых ошибок при настройке.

Читать далее
Всего голосов 28: ↑16 и ↓12 +4
Комментарии 17

Цифровой урбанизм в России: где брать данные для своего проекта по анализу городской среды

Время на прочтение 18 мин
Количество просмотров 11K

На Хабре время от времени появляются статьи про различные веб-сервисы и приложения, так или иначе анализирующие городскую среду. Такие сервисы, по задумке авторов, должны помогать жителям принимать какие-то решения - куда пойти, где купить жилье, где комфортнее жить и гулять.

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

В этой статье я постарался сделать обзор тех данных, которые можно использовать в урбанистически-айтишных сервисах в России. Что с их помощью можно сделать, что - нельзя, какие там есть подводные камни и типичные проблемы. Надеюсь, этот текст поможет как будущим авторам таких сервисов (чтобы не тратить время на то, что сделать не получится), так и для их пользователей (чтобы понимать, почему эти сервисы работают именно так, как работают, и не могут работать лучше).

Читать далее
Всего голосов 22: ↑22 и ↓0 +22
Комментарии 57

Как запустить свой сервер с белым ip из локальной домашней сети

Время на прочтение 5 мин
Количество просмотров 76K

Поднимаем свой веб-сервер в домашней сети видимый из вне для pet проектов на старом ноутбуке с Ubuntu Server.

Читать далее
Всего голосов 41: ↑28 и ↓13 +15
Комментарии 64

Визуализация данных при отладке в Visual Studio Code

Время на прочтение 2 мин
Количество просмотров 15K


Вообще Debugger Visualizers для обычного Visual Studio — это очень старая тема (статья 2009 года), но не очень популярная. В большинстве случаев принято учить сразу дебажить, представляя процессы в голове, а штуки вроде сортировок и списков показываются на доске. В вебе часто визуальную часть предоставляет браузер, и все всем довольны. Но бывает, что списки или деревья в голове уже не умещаются, таблицы хочется отсортировать, а графики строить не выходя из среды отладки. Для всего этого и был создан плагин для VS Code — Debug Visualizer.
Читать дальше →
Всего голосов 26: ↑26 и ↓0 +26
Комментарии 0

О самой первой компании по производству ПО, и о самом крупном программном проекте в истории США

Время на прочтение 9 мин
Количество просмотров 7.6K

Введение


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

Читать дальше →
Всего голосов 97: ↑93 и ↓4 +89
Комментарии 81

Как устроена Википедия (часть 2)

Время на прочтение 7 мин
Количество просмотров 35K
Привет, Хабр!
image
На основной работе дали пару дней отгула, и кроме важных личных дел я решил посвятить их продолжению серии постов про Википедию.

Первая часть серии была воспринята позитивно, поэтому вторую я постараюсь сделать еще более интересной для местной аудитории: сегодня она будет посвящена некоторым техническим аспектам работы проекта.
Читать дальше →
Всего голосов 54: ↑53 и ↓1 +52
Комментарии 8

Методы распознавания отпечатков пальцев и реализация средствами Python

Время на прочтение 12 мин
Количество просмотров 51K
В текущем семестре появился в расписании предмет «Методы и средства защиты компьютерной информации», частью которого являются лабораторная работа по биометрии, а точнее по распознаванию отпечатка пальца. Так же, недавно, на Хабре была статья про устройства предназначенные для сканирования. Решил написать здесь про алгоритмы распознавания.
Читать дальше →
Всего голосов 118: ↑115 и ↓3 +112
Комментарии 20

Как мне защитить свои права?

Время на прочтение 2 мин
Количество просмотров 916
В России необходимо построить гражданское общество, и первые ростки начинают появлятся. Основа гражданского общества — контроль гражданами за исполнением своих прав. Сейчас наши граждане терпят различные издевательства над собой, принося лишние документы, платя неправомерные взносы, терпя дез, который не чинит батарею вот уже две зимы, и т.д. и т.п.; естественно и от частных структур люди иногда терпят.

Я считаю, что тому есть несколько причин:
  1. Неверие в то, что что-то можно изменить, прищучить гос.орган какой-то;
  2. Недостаток информации о том, как это сделать;
  3. Отсутствие времени;
  4. «Никаких нервов не хватит»!

Читать дальше →
Всего голосов 28: ↑23 и ↓5 +18
Комментарии 34

FightCode: танковые войны на JavaScript

Время на прочтение 5 мин
Количество просмотров 68K
FightCode — это онлайн-игра для программистов, построенная по образу и подобию классической Robocode. Для программирования танков используется JavaScript, все сражения происходят прямо в браузере, а редактор кода на сайте имеет встроенную «песочницу», которая позволяет в реальном времени видеть эффект от изменений кода. В отличие от многих других подобных игр, создатели неплохо поработали над дизайном — игровое поле и весь сайт в целом выглядят привлекательно и ярко.



Всё это делает FightCode одним из лучших вариантов для новичков в подобных играх или для обучения программированию. Проект довольно молодой, и несмотря на то, что на сайте зарегистрировано почти 9000 игроков, пробиться в первую сотню рейтинга можно без особых усилий. Очень удобно организована система боёв со случайными соперниками — из всех доступных роботов автоматически выбираются те, чей рейтинг близок к вашему. Очки считаются по системе Эло — победа над более сильным противником даёт гораздо больше очков, чем над слабым.

Каждый участник может иметь сколько угодно роботов. Создание нового робота начинается с примитивного шаблона, который не делает почти никаких осмысленных действий. Добавив обработчики основных событий, таких как столкновения или попадания вражеского снаряда можно дать роботу набор «безусловных рефлексов», которые сделают его поведение более целесообразным и послужат отправной точкой для дальнейшего развития.
Вот как это делается:
Всего голосов 88: ↑87 и ↓1 +86
Комментарии 70

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность