Архив автора: muzhig

Лечим Steam-версию Rocksmith 2014 от кабеля

Вкраце: Rocksmith 2014 это игра-тренажер, в которой роль игрового контроллера выполняет реальная гитара. Плюсы: собственно, сама игра офигенная. Минусы: чтобы гитару как-то в воткнуть в компьютер, производители настаивают на покупке их весьма недешевого кабеля. И то, что у меня уже есть … Читать далее

Рубрика: Разное, Решение проблем, Туториалы | Метки: , , , | 21 комментарий

Python: динамическая подмена класса

Юзкейс Есть функция-фабрика, возвращающая объект класса A. Функция из сторонней либы, менять ее нельзя (либо вообще ее код закрыт). А нам очень нужно сделать класс B, наследованный от A, и перекрыть magic-метод, скажем __exit__. Проблема в том, что объекты класса A … Читать далее

Рубрика: На заметку, Программирование, Решение проблем | Метки: , | Добавить комментарий

Умножение матриц

A x B = C Это, наверное, самая важная операция над матрицами, детали которой, к сожалению, иногда выветриваются из головы. Вот шпаргалка в виде тезисов: количество столбцов левой матрицы должно совпадать с количеством строк правой результирующая матрица имеет то-же количество … Читать далее

Рубрика: На заметку | Добавить комментарий

Настройка радиомодуля APC220 в Ubuntu и Mac OS

APC220 — это модуль цифровой беспроводной связи, поддерживающий расстояние до 1 км (при отсутствии помех) и  поддерживает довольно большие скорости передачи. Кроме того, эти модули умеют организовывать между собой сети с поддержкой бродкаста. Да и цена привлекательная. Все классно, только … Читать далее

Рубрика: DIY | Метки: , , , | 4 комментария

Калибровка компаса — Хардкор

Этот пост немного выбивается из общей тематики блога и будет интересен скорее интересующимся DIY и роботостроением, чем программистам, однако нам пригодится все: и навык программирования в области анализа данных, и математическая смекалка, и 3D-воображение 🙂   Небольшое интро Очень часто … Читать далее

Рубрика: DIY, Алгоритмы, Программирование | Метки: , , , , , , , | 26 комментариев

Манкипатчим поддержку decimal.Decimal в json

TypeError: Decimal('0.99') is not JSON serializable Вот, что заставляет людей гуглить, как добавить поддержку новых типов в стандартную либу json. Вообще, пост не об этом, вот просто парочка правильных решений: использовать simplejson создать свой энкодер, пронаследовавшись от стандартного, и передавать … Читать далее

Рубрика: На заметку, Решение проблем | Метки: , | 1 комментарий

Загадка foo bar с ответом

>>> s = 'foo' >>>… >>> {s: 1, 'bar': 2} {'bar': 1, 'bar': 2} Что в пропущенной строчке? ЗЫ: никакие built-in функции или объект строки заменять нельзя. Ответ под катом.

Рубрика: Разное | Метки: | Добавить комментарий

Рандом с учетом весов за O(1) — Walker’s alias method

Есть массив A[n] с весами. Нужно выбрать случайный элемент, но не равномерным рандомом, а в соответствии с этими весами. (В общем, это дискретное распределение вероятности) Чем примечателен метод алиаса, так это константным временем выполнения O(1)

Рубрика: Алгоритмы, Программирование, Разное | Метки: , , , | 2 комментария

Поворот в пространстве и кватернионы

Ориентация в пространстве Термин «ориентация» подразумевает наличие какой либо начальной системы координат, относительно которой ориентация будет являться простым поворотом. Например, она могла бы быть привязана к Земле, если мы определяем положение относительно нее, или, другой пример, к туловищу модели, ориентацией … Читать далее

Рубрика: Алгоритмы, Программирование | Метки: , | 16 комментариев

Python: defaultdict с заданной структурой

collections.defaultdict defaultdict призван избавить ваш код от ужасных многострочных/длинных конструкций из if-else, has_key/in, обладающих, к тому же, дерьмовой производительностью, растущей из повторяющегося несколько раз поиска по словарю. Тем не менее, если значение по-умолчанию должно обладать собственной структурой из контейнеров, то … Читать далее

Рубрика: На заметку | Метки: , | 1 комментарий