Как стать автором
Обновить
133
0
Андрей @rhaport

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

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

Написание змейки для Android на Kivy, Python

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

[UPD от 2021: этот туториал создан исключительно из-за отсутствия нормальных туториалов по теме на момент написания, а не из побуждения научить мир программистов чему-то правильному]

Много людей хотели бы начать программировать на андроид, но Android Studio и Java их отпугивают. Почему? Потому, что это в некотором смысле из пушки по воробьям. «Я лишь хочу сделать змейку, и все!»



Начнем! (бонус в конце)
Читать дальше →
Всего голосов 20: ↑17 и ↓3+14
Комментарии13

ML,VR & Robots (и немного облака)

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

Хочу рассказать об очень не скучном проекте, где пересеклись робототехника, Machine Learning (а вместе это уже Robot Learning), виртуальная реальность и немного облачных технологий. И все это на самом деле имеет смысл. Ведь это и правда удобно — вселяться в робота, показывать, что ему делать, а затем обучать веса на ML сервере по сохраненным данным.

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


Читать дальше →
Всего голосов 8: ↑7 и ↓1+10
Комментарии2

GPS антенна своими руками за 5 минут

Время на прочтение1 мин
Количество просмотров62K
Для приема GPS сигналов, можно изготовить несложную антенну, которая по своим возможностям будет соответствовать маленькой патч-антенне.

Предлагаемая антенна — диполь, пассивная, поэтому небольшой выигрыш в токе потребления GPS модуля достигается.

Принимаем центральную частоту GPS сигнала равной 1575.42 МГц, находим длину одного плеча антенны L/4 = 47.7 мм. Цифра справедлива для провода без изоляции. Провод в изоляции должен быть чуть короче. Длина плеч диполя и монополя отсчитывается от грани оплетки кабеля.

Если половинка диполя одна, то это уже монополь. Я подготовил диполь и монополь.



Антенны крепятся на короткий коаксиал с разъемом типа IPX.В качестве эталонной антенны используем активную маленькую патч-антенну. GPS-модуль NEO6.


Читать дальше →
Всего голосов 22: ↑17 и ↓5+19
Комментарии46

Адаптивная фоновая подсветка для телевизора на Raspberry Pi – аналог Ambilight

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

Это телевизор с диагональю 50” и 37 RGB точками адаптивной фоновой подсветки по верхней и боковым сторонам экрана. Как сделать аналогичную адаптивную фоновую подсветку для любого экрана или ТВ — тема избитая, но вполне актуальная по ряду причин.

Во-первых, все меняется. Пару лет назад еще не было проекта, работающего без программных или аппаратных костылей. Во всяком случае мне не встречались такие публикации. Те, что описаны на просторах рунета – либо потеряли актуальность в связи с устареванием программных или аппаратных платформ, либо реализуют данную технологию только применительно к мониторам, подключенным к ПК.

Во-вторых, на рынке нет и не будет самсунгов, сони, элджи и прочих ТВ с поддержкой данной технологии, так как она запатентована на многие годы вперед компанией Philips. И наконец — все решения «из коробки», доступные на али и иже с ним – имеют ряд ограничений в гибкости настроек и адаптации к размеру кадра видеоконтента, корректировок цветовой гаммы и т. д, являясь при этом всего лишь аппаратным костылем, анализирующим внешний сигнал и работающий только на формирование подсветки.
Всего голосов 35: ↑35 и ↓0+35
Комментарии38

Никогда больше не игнорируйте обучение с подкреплением

Время на прочтение6 мин
Количество просмотров11K
Привет, Хабр! Представляю вашему вниманию перевод статьи «Don’t Ever Ignore Reinforcement Learning Again» автора Michel Kana, Ph.D.

Обучение с учителем и обучение без учителя — это ещё не все. Все это знают. Начните с OpenAI Gym.

image

Собираетесь победить чемпиона мира по шахматам, нардам или го?

Есть способ, который позволит вам это сделать — обучение с подкреплением.
Читать дальше →
Всего голосов 18: ↑17 и ↓1+16
Комментарии5

Raspberry Pi и модем SIM7600E 4G HAT

Время на прочтение3 мин
Количество просмотров41K
Добрый день всем. В этой статье я хотел бы рассказать о своем опыте использования 3G-модема SIM7600X, который можно подключать к Raspberry Pi. Статья может оказаться полезной тем из вас, кому необходимо использовать Raspberry автономно, в условиях отсутствия WIFI-сети.

Параметры системы


Raspberry Pi 3B+
OS: Raspbian GNU/Linux 10 (buster)
Модем SIM7600E 4G HAT, версия прошивки LE11B08SIM7600M22

image

Читать дальше →
Всего голосов 17: ↑17 и ↓0+17
Комментарии30

Драйвер-фильтр операций в реестре. Практика

Время на прочтение6 мин
Количество просмотров5.1K
Привет, Хабр!

Когда передо мной встала задача написать свой драйвер, осуществляющий мониторинг операций в реестре, я, конечно же, полезла искать на просторах интернета хоть какую-то информацию по этому поводу. Но единственное, что вылезало по запросу «Драйвер-фильтр реестра» — поток статей по написанию драйвера-фильтра (ура), НО все эти статьи касались только фильтра файловой системы (печаль).

К сожалению, единственное, что удалось найти — статью 2003 года, код из которой вы никогда не соберете в своей новенькой VS19.

К счастью же, есть прекрасный пример от Microsoft на GitHub (сразу кидаю ссылочку), на котором и будет строиться бОльшая часть этого разбора.

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

Читать дальше →
Всего голосов 10: ↑9 и ↓1+16
Комментарии4

Маджонг с детьми: для чего, когда и как

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


Когда мы готовим ребенка к поступлению в школу и помогаем ему адаптироваться к школе, поддерживая его интеллектуальное развитие, то одно из классических игровых средств – это обыкновенные игральные карты. Обучая ребенка карточным играм, мы можем давать нагрузку на все когнитивные функции. Зрительное восприятие понадобится, чтобы различать символы мастей (не путать пики и червы, в частности). Память – чтобы следить за тем, какие карты уже сыграны. Мышление – чтобы составлять комбинации и просчитывать выгодные ходы. Внимание – чтобы не проморгать в своей руке те карты, которые позволят эти выигрышные ходы сделать. Играя по разным правилам одной и той же колодой, мы совершенствуем произвольную регуляцию деятельности и учим гибкому, нелинейному поведению. В общем, игральные карты – это замечательная вещь. Но у них есть существенный недостаток: в нашей культуре они плотно ассоциированы с азартной игрой на деньги и воспринимаются поэтому как нечто порицаемое. Это означает, что специалист, играя в карты с ребенком, будет провоцировать реакции вида «чему вы тут его учите?» со стороны семьи, а ребенок не сможет принести игральные карты в школу, чтобы поиграть на перемене, не провоцируя аналогичных реакций со стороны педагогов. Причем понятно, что этот культурный стереотип к жизни давно уже имеет весьма опосредованное отношение, и какая-нибудь браузерная многопользовательская игра с куда большим успехом приобщит ребенка к игре на деньги, чем колода карт на перемене. Но перед нами все же встает проблема того, что ребенок может начать ощущать, будто делает что-то аморальное и неприличное. Это его либо отвратит от игры (и потеряется смысл игры как самоподдерживающейся развивающей деятельности), либо негативно скажется на самовосприятии – а у нас нет цели заставить ребенка ощущать себя хулиганом и правонарушителем.

Вариант решения этой проблемы – играть с ребенком не в карты, а в маджонг.
Читать дальше →
Всего голосов 29: ↑27 и ↓2+36
Комментарии40

Как я учу детей Питону

Время на прочтение7 мин
Количество просмотров36K
image

Моя основная работа связана с данными и программированием на R, но в этой статье я хочу рассказать про своё увлечение, которое даже приносит некий доход. Мне всегда было интересно рассказывать и объяснять что-то друзьям, одноклассникам и однокурсникам. Ещё мне всегда просто было находить общий язык с детьми, не знаю, почему. Вообще, я считаю, что воспитание и обучение детей это одно из важнейших занятий из всех, да и жена у меня педагог. В общем, примерно год назад я дал объявление в местной группе на фейсбуке, набрал группу и стал преподавать скратч и питон раз в неделю. Сейчас у меня пять групп, свой класс в доме и индивидуальные занятия. Как я дошёл до жизни такой и как именно я учу детей, я раскажу в этой статье.
Читать дальше →
Всего голосов 66: ↑65 и ↓1+84
Комментарии91

50 оттенков matplotlib — The Master Plots (с полным кодом на Python)

Время на прочтение39 мин
Количество просмотров394K
Те, кто работает с данными, отлично знают, что не в нейросетке счастье — а в том, как правильно обработать данные. Но чтобы их обработать, необходимо сначала проанализировать корреляции, выбрать нужные данные, выкинуть ненужные и так далее. Для подобных целей часто используется визуализация с помощью библиотеки matplotlib.



Встретимся «внутри»!
Читать дальше →
Всего голосов 67: ↑67 и ↓0+67
Комментарии15

Что нужно знать про арифметику с плавающей запятой

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


В далекие времена, для IT-индустрии это 70-е годы прошлого века, ученые-математики (так раньше назывались программисты) сражались как Дон-Кихоты в неравном бою с компьютерами, которые тогда были размером с маленькие ветряные мельницы. Задачи ставились серьезные: поиск вражеских подлодок в океане по снимкам с орбиты, расчет баллистики ракет дальнего действия, и прочее. Для их решения компьютер должен оперировать действительными числами, которых, как известно, континуум, тогда как память конечна. Поэтому приходится отображать этот континуум на конечное множество нулей и единиц. В поисках компромисса между скоростью, размером и точностью представления ученые предложили числа с плавающей запятой (или плавающей точкой, если по-буржуйски).

Арифметика с плавающей запятой почему-то считается экзотической областью компьютерных наук, учитывая, что соответствующие типы данных присутствуют в каждом языке программирования. Я сам, если честно, никогда не придавал особого значения компьютерной арифметике, пока решая одну и ту же задачу на CPU и GPU получил разный результат. Оказалось, что в потайных углах этой области скрываются очень любопытные и странные явления: некоммутативность и неассоциативность арифметических операций, ноль со знаком, разность неравных чисел дает ноль, и прочее. Корни этого айсберга уходят глубоко в математику, а я под катом постараюсь обрисовать лишь то, что лежит на поверхности.
Читать дальше →
Всего голосов 245: ↑242 и ↓3+239
Комментарии75

Преобразование черно-белых изображений в ASCII-графику при помощи неотрицательного матричного разложения

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

В общем случае преобразование изображения в ASCII-графику представляет собой довольно трудоемкую задачу, однако существуют алгоритмы, позволяющие автоматизировать данный процесс. В данной статье рассматривается подход, предложенный исследователями Paul D. O’Grady и Scott T. Rickard в работе «Automatic ASCII Art Conversion of Binary Images Using Non-Negative Constraints». Описанный ими метод предполагает представление процесса преобразования изображения как задачи оптимизации и решение этой задачи при помощи неотрицательного матричного разложения. Ниже приведены описание рассматриваемого алгоритма, а также его реализация:
Читать дальше →
Всего голосов 64: ↑62 и ↓2+60
Комментарии19

Памятка по борьбе с алкоголем или Как пережить фуршеты

Время на прочтение20 мин
Количество просмотров178K
Тут вот праздники скоро. Спросил недавно друг «как мне это все пережить?». Я сначала объяснял, а потом решил написать статью на Хабр. Рассказанное — услышит один человек, а написанное — прочитают сотни!

Меня, если честно, достаточно сильно раздражают всевозможные застолья. Потому что гораздо приятнее посидеть с паяльником или читая книгу, а не "… хорохорясь, ерепенясь и валяясь, как колода..." провести выходные. Но традиции-с, будь они неладны, формировались столетиями и не умея пить — бывает достаточно сложно вписаться в коллектив, найти нужный подход и т.д. Особенно грешат этим делом всевозможные руководящие кадры из старого поколения. Что же делать тем, для кого алкоголь и необходимость его употреблять — это просто лишняя головная боль? Самый простой ответ — НЕ ПИТЬ, но на практике полностью это очень сложно реализовать. Эффективнее в наших реалиях принять тезис «алкоголь — просто инструмент» и учиться с ним правильно работать и использовать для решения своих задач с минимизацией ущерба для здоровья.

Статью кладем в закладки и рассылаем всем друзьям, подчиненным и т.д. и т.п. Есть время подготовиться и встретить новогодние корпоративы во всеоружии. Практически уверен, что многое из описанного активно используют те, кто «не напиваться» обязан по долгу службы. Простой же обыватель чаще про это не думает, полагаясь на удачу и легкую руку. И чаще всего оказывается в проигрыше. Предупрежден = вооружен, поэтому под катом читаем, как победить в битве с алкоголем.

Читать дальше →
Всего голосов 155: ↑119 и ↓36+118
Комментарии478

Основы работы с Robotic Operating System

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

Введение


    Доброго всем времени суток!
    Осваивая в очередной раз просторы Хабра, заметил, что здесь практически нет информации о Robotic Operating System (далее просто ROS). Поспешу исправить эту оплошность и популяризовать замечательный продукт.
image
    Что же это такое? ROS представляет собой надстройку над ОС, которая позволяет легко и просто разрабатывать системы управления роботами. Что это означает и как с этим потом жить — и призвана рассказать серия топиков.
    По сути, ROS — это набор из различных широко (и неочень) известных библиотек, таких как:
  • OpenCV — библиотека, содержащая алгоритмы компьютерного зрения и обработки изображений;
  • PCL- библиотека для работы с облаками 3D-точек;
  • Ogre — объектно-ориентированный графический движок с открытым исходным кодом;
  • Orocos — библиотека для управления роботами (например, расчет кинематики).

    Также в ROS входят драйвера для различных манипуляторов и сенсоров (включая MS Kinect).
Читать дальше →
Всего голосов 36: ↑34 и ↓2+32
Комментарии20

Робот -тележка на ROS.Часть 2. Cофт

Время на прочтение7 мин
Количество просмотров11K
Посты серии:
8. Управляем с телефона-ROS Control, GPS-нода
7. Локализация робота: gmapping, AMCL, реперные точки на карте помещения
6. Одометрия с энкодеров колес, карта помещения, лидар
5. Работаем в rviz и gazebo: xacro, новые сенсоры.
4. Создаем симуляцию робота, используя редакторы rviz и gazebo.
3. Ускоряемся, меняем камеру, исправляем походку
2. Софт
1. Железо

Продвигаемся к улыбке


Собрав «бургер» по схеме из прошлого поста, перейдем к программному наполнению.

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

Все очень удобно и там же можно скачать уже готовый образ с Raspbian Stretch + ROS + OpenCV, записать его на sd карту для raspberry. (ROS Kinetic, OpenCV 3.4.1. Да, есть и поновее, но иногда лучше взять и поехать, чем собирать все самому из исходников).
Читать дальше →
Всего голосов 14: ↑13 и ↓1+12
Комментарии2

Подробный разбор симплекс-метода

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

Пролог


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

Замечание. Пост будет написан достаточно формальным языком, но будет снабжен комментариями, которые должны внести некоторую ясность. Такой формат позволит сохранить научный подход и при этом, возможно, поможет некоторым в изучении данного вопроса.
Читать дальше →
Всего голосов 33: ↑33 и ↓0+33
Комментарии27

Что показывает вольтметр, или математика розетки

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


О чем эта статья


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

Родилась эта статья из дискуссий за чаем, когда разразился спор среди «всезнающих и всеведающих» программистов о том, чего многие из них не понимают, а именно: как измеряется напряжение в розетке, что показывает вольтметр переменного напряжения, чем отличается пиковое и действующие значения напряжений.

Скорее всего, это статья будет интересна тем, кто начинает творить свои устройства. Но, возможно, поможет и кому-то опытному освежить память.

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

Кому не интересно читать про интегралы, ГОСТы и фазы — могут сразу переходить к заключению.
Читать дальше →
Всего голосов 138: ↑135 и ↓3+132
Комментарии161

Шпаргалка по аббревиатурам C++ и не только. Часть 1: C++

Время на прочтение20 мин
Количество просмотров57K
Когда-то я собеседовался на должность C++ разработчика в одну приличную и даже известную контору. Опыт у меня тогда уже кое-какой был, я даже назывался ведущим разработчиком у тогдашнего своего работодателя. Но на вопросы о том, знаком ли я такими вещами, как DRY, KISS, YAGNI, NIH, раз за разом мне приходилось отвечать «Нет».

Собеседование я с треском провалил, конечно. Но упомянутые аббревиатуры потом загуглил и запомнил. По мере чтения тематических статей и книг, подготовок к собеседованиям и просто общения с коллегами я узнавал больше новых вещей, забывал их, снова гуглил и разбирался. Пару месяцев назад кто-то из коллег небрежно упомянул в рабочем чате IIFE в контексте C++. Я, как тот дед в анекдоте, чуть с печки не свалился и опять полез в гугл.


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

Инициализация в современном C++

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


Общеизвестно, что семантика инициализации — одна из наиболее сложных частей C++. Существует множество видов инициализации, описываемых разным синтаксисом, и все они взаимодействуют сложным и вызывающим вопросы способом. C++11 принес концепцию «универсальной инициализации». К сожалению, она привнесла еще более сложные правила, и в свою очередь, их перекрыли в C++14, C++17 и снова поменяют в C++20.


Под катом — видео и перевод доклада Тимура Домлера (Timur Doumler) с конференции C++ Russia. Тимур вначале подводит исторические итоги эволюции инициализации в С++, дает системный обзор текущего варианта правила инициализации, типичных проблем и сюрпризов, объясняет, как использовать все эти правила эффективно, и, наконец, рассказывает о свежих предложениях в стандарт, которые могут сделать семантику инициализации C++20 немного более удобной. Далее повествование — от его лица.

Всего голосов 62: ↑61 и ↓1+60
Комментарии125

Make C++ great again!.. in Tula

Время на прочтение11 мин
Количество просмотров21K
Не так давно на базе нашего офиса мы провели бесплатный курс лекций «Современный и эффективный С++» и записали их на видео. Курс был рассчитан на недавно прибывших в наш коллектив программистов, стажеров и всех желающих. В этой статье мы хотели бы осветить цель данного курса, процесс подготовки к нему, подвести итоги. Надеемся, что для кого-то из вас наш курс лекций будет интересен и вы оцените наш труд. Желаем приятного просмотра докладов!

Всего голосов 67: ↑61 и ↓6+55
Комментарии16

Информация

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