• Какие навыки нужны для создания iOS-приложения? Доклад Яндекса

      Мобильному разработчику нужно обладать понятным набором навыков. Рассказывать о них нужно в контексте конкретных задач, которые возникают по ходу создания и публикации приложения. Артур Антонов работает iOS-разработчиком в отделе машинного перевода Яндекса. В своём докладе для студентов и начинающих специалистов Артур объяснил, что должен уметь разработчик, чтобы создавать современный мобильный софт.


      — В нашем отделе есть два мобильных приложения: Яндекс.Переводчик и Яндекс.Клавиатура. В Переводчике у нас очень много сложных технологий, например голосовой ввод, распознавание текста по фото, перевод текста при помощи нейросетей. Отдельной сложной задачей является поддержка этой функциональности в офлайне. То есть у вас эта функциональность будет работать даже без интернета.
      Читать дальше →
    • Написание змейки для Android на Kivy, Python

      • Translation
      • Tutorial
      Привет!

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



      Начнем! (бонус в конце)
      Читать дальше →
    • ML,VR & Robots (и немного облака)

        Всем привет!

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

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


        Читать дальше →
        • +10
        • 2.4k
        • 2
      • GPS антенна своими руками за 5 минут

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

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

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

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



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


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

          image

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

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

          Во-вторых, на рынке нет и не будет самсунгов, сони, элджи и прочих ТВ с поддержкой данной технологии, так как она запатентована на многие годы вперед компанией Philips. И наконец — все решения «из коробки», доступные на али и иже с ним – имеют ряд ограничений в гибкости настроек и адаптации к размеру кадра видеоконтента, корректировок цветовой гаммы и т. д, являясь при этом всего лишь аппаратным костылем, анализирующим внешний сигнал и работающий только на формирование подсветки.
          Читать дальше →
        • Никогда больше не игнорируйте обучение с подкреплением

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

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

          image

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

          Есть способ, который позволит вам это сделать — обучение с подкреплением.
          Читать дальше →
          • +16
          • 8.3k
          • 5
        • Raspberry Pi и модем SIM7600E 4G HAT

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

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


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

          image

          Читать дальше →
        • Драйвер-фильтр операций в реестре. Практика

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

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

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

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

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

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



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

            Вариант решения этой проблемы – играть с ребенком не в карты, а в маджонг.
            Читать дальше →
          • Как я учу детей Питону

            image

            Моя основная работа связана с данными и программированием на R, но в этой статье я хочу рассказать про своё увлечение, которое даже приносит некий доход. Мне всегда было интересно рассказывать и объяснять что-то друзьям, одноклассникам и однокурсникам. Ещё мне всегда просто было находить общий язык с детьми, не знаю, почему. Вообще, я считаю, что воспитание и обучение детей это одно из важнейших занятий из всех, да и жена у меня педагог. В общем, примерно год назад я дал объявление в местной группе на фейсбуке, набрал группу и стал преподавать скратч и питон раз в неделю. Сейчас у меня пять групп, свой класс в доме и индивидуальные занятия. Как я дошёл до жизни такой и как именно я учу детей, я раскажу в этой статье.
            Читать дальше →
          • 50 оттенков matplotlib — The Master Plots (с полным кодом на Python)

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



            Встретимся «внутри»!
            Читать дальше →
          • Что нужно знать про арифметику с плавающей запятой



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

            Арифметика с плавающей запятой почему-то считается экзотической областью компьютерных наук, учитывая, что соответствующие типы данных присутствуют в каждом языке программирования. Я сам, если честно, никогда не придавал особого значения компьютерной арифметике, пока решая одну и ту же задачу на CPU и GPU получил разный результат. Оказалось, что в потайных углах этой области скрываются очень любопытные и странные явления: некоммутативность и неассоциативность арифметических операций, ноль со знаком, разность неравных чисел дает ноль, и прочее. Корни этого айсберга уходят глубоко в математику, а я под катом постараюсь обрисовать лишь то, что лежит на поверхности.
            Читать дальше →
          • Преобразование черно-белых изображений в ASCII-графику при помощи неотрицательного матричного разложения


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

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

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

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

            Читать дальше →
          • Субботнее: Мысли программиста об экономике, Марксе, Ленине и Капитале

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

              При обсуждении одной IT-статьи спонтанно возникла оффтоп-дискуссия о марксизме и экономике. Из уважения к количеству букв я собрал комментарии, и с минимальными правками выкладываю здесь. Считаю, что умеренный экономический дискурс, хоть частично, укладывается в тематику ресурса, посвященного Будущему. Особенно в свете последних событий. Не судите строго программиста, он стреляет как умеет (с).
              — Два томика Капитала этому господину :)
              — В Капитале три тома. Какой том этому господину не нужен? :)
              … Капитал мне лично не зашел. Вся его терминология нуждается в уточнении, например:
              — что такое средства производства, репутация журналиста сюда входит?
              — в чем измеряется труд, надеюсь не в человеко-часах?
              — являются ли природные ресурсы капиталом — по бухучету да, но ведь в них не вложено труда?
              — патентное право — справедливо?
              — акционерные общества — это демократия?
              Наука начинается там, где базовым величинам даются метрологически состоятельные определения (длина, масса, заряд), а пока все крутится вокруг эмоционально-окрашенных понятий — Эллиот будет научней чем Маркс.
              Читать дальше →
            • Основы работы с Robotic Operating System

              Введение


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

                  Также в ROS входят драйвера для различных манипуляторов и сенсоров (включая MS Kinect).
              Читать дальше →
            • Робот -тележка на ROS.Часть 2. Cофт

              • Tutorial
              Посты серии:
              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. Да, есть и поновее, но иногда лучше взять и поехать, чем собирать все самому из исходников).
              Читать дальше →
            • Подробный разбор симплекс-метода

              Пролог


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

              Замечание. Пост будет написан достаточно формальным языком, но будет снабжен комментариями, которые должны внести некоторую ясность. Такой формат позволит сохранить научный подход и при этом, возможно, поможет некоторым в изучении данного вопроса.
              Читать дальше →
            • Полное руководство по CMake. Часть третья: Тестирование и пакетирование

              • Tutorial


              Введение


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

              Читать дальше →
              • +14
              • 11.9k
              • 4
            • Что показывает вольтметр, или математика розетки



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


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

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

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

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

              Кому не интересно читать про интегралы, ГОСТы и фазы — могут сразу переходить к заключению.
              Читать дальше →