• Как нарисовать звезду (и не только) в полярных координатах

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

        схема_малая


        Хочу поделиться опытом проектирования, монтажа и эксплуатации своей системы приточной вентиляции совмещенной с канальным кондиционером. Система
        собиралась в 2012-2013 годах и с тех пор находится в постоянной эксплуатации.


        Статью разделил на две части:


        • в первой части описана классическая схема приточная вентиляции с использованием электрического канального подогревателя
        • во второй части рассказано про неоднозначный опыт переработки системы под водяной калорифер с питанием от общедомовой системы отопления
        Читать дальше →
      • Доступное объяснение гипотезы Римана

        • Translation
        image

        Посвящается памяти Джона Форбса Нэша-младшего

        Вы ведь помните, что такое «простые числа»? Эти числа не делятся ни на какие другие, кроме самих себя и 1. А теперь я задам вопрос, которому уже 3000 лет:

        • 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, p. Чему равно p? 31. Каким будет следующее p? 37. А следующее p ? 41. А следующее? 43. Да, но… как нам узнать, каким будет следующее значение?

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

        Введение


        Свойства простых чисел изучались многими великими людьми в истории математики. С первого доказательства бесконечности простых чисел Евклида до формулы произведения Эйлера, связавшей простые числа с дзета-функцией. От формулировки теоремы о простых числах Гаусса и Лежандра до её доказательства, придуманного Адамаром и Валле-Пуссеном. Тем не менее, Бернхард Риман до сих пор считается математиком, сделавшим единственное крупнейшее открытие в теории простых чисел. В его опубликованной в 1859 году статье, состоявшей всего из восьми страниц, были сделаны новые, ранее неизвестные открытия о распределении простых чисел. Эта статья по сей день считается одной из самых важных в теории чисел.

        После публикации статья Римана оставалась главным трудом в теории простых чисел и на самом деле стала основной причиной доказательства в 1896 году теоремы о распределении простых чисел. С тех пор было найдено несколько новых доказательств, в том числе элементарные доказательства Сельберга и Эрдёша. Однако до сих пор остаётся загадкой гипотеза Римана о корнях дзета-функции.
        Читать дальше →
      • Вред во благо: иммунная система миноги в борьбе с раком головного мозга человека



          Наш мозг — это наше все. Нарушение работы этого важнейшего органа приводит к ужасным, а порой и фатальным последствиям. Сложность мозга и его нейронной организации колоссальна, что сильно усложняет процесс лечения того или иного заболевания. Как правило, когда мы что-то лечим, то пытаемся избавиться от дефектов, которые вызывает болезнь. Но, что если использовать эти дефекты для борьбы с тем, что их создает? Именно это и решили сделать авторы рассматриваемого нами сегодня исследования. Как ученые применили нарушение работы гемато-энцефалического барьера, зачем нужен доступ к внеклеточному матриксу мозга и какую роль в этом сыграла паразитирующая на рыбах минога? Об этом нам поведает доклад исследовательской группы. Поехали.
          Читать дальше →
          • +23
          • 9.6k
          • 2
        • Julia. Генераторы отчётов и документации

          • Tutorial


          Одной из актуальных проблем во все времена, является проблема подготовки отчётов. Поскольку Julia — язык, пользователи которого непосредственно связаны с задачами анализа данных, подготовки статей и красивых презентаций с результатами расчётов и отчётов, то эту тему просто нельзя обойти мимо.


          Изначально эта статья планировалась набор рецептов для генерации отчётов, однако рядом с отчётами находится тема документирования, с которой у генераторов отчётов много пересечений. Поэтому сюда включены средства по критерию возможности внедрения выполняемого кода на Julia в шаблон с некоторой разметкой. Наконец, отметим, что в обзор вошли генераторы отчётов как реализованные на самой Julia, так и средства, написанные на других языках программирования. Ну и, естественно, не остались без внимания некоторые ключевые моменты самого языка Julia, без которых может быть не ясно, в каких случаях и какие средства стоит использовать.

          Читать дальше →
          • +20
          • 8.5k
          • 2
        • Зацените: сделал стол



            TL;DR В статье описывается мой опыт постройки стола c нуля из фанеры. От проектирования до сборки.

            Я очень долго страдал от плохих столов. Все они неудобные, плохого качества, маленькие и, самое главное, ШАТКИЕ. Более-менее приличные столы стоили тысячи долларов. В итоге я решил изготовить стол самостоятельно.

            Основные требования к столу:

            • Устойчивость! Предметы на столе не должны трястись, если резко положить руки на стол или оттолкнуться от него. Мой стол весит ~120кг. С его края можно делать сальтухи, при этом на другом конце паять SMD компоненты.
            • Ширина и глубина столешницы. Столы шириной 60 см — это унижение. Мне нужно иметь запас по глубине, чтобы можно было отодвинуть ноутбук вперед, и при этом получить достаточное рабочее пространство.
            • Вместительность. Мне нужны полки, чтобы разместить там оборудование: паяльники, лабораторный блок питания, осциллограф, аудио усилитель и т.д. При этом полки должны быть так же устойчивы, как и стол.
            • Цена. Я не готов выложить за стол несколько тысяч долларов. Мой стол обошелся в ~$300 с учётом покупки всего инструмента для сборки и покраски.
            Читать дальше →
          • Лицензия на вождение болида, или почему приложения должны быть Single-Activity

              image


              На AppsConf 2018, которая прошла 8-9 октября, я выступил с докладом про создание андроид-приложений целиком в одном Activity. Хотя тема известная, существует много предубеждений относительно такого выбора — переполненный зал и количество вопросов после выступления тому подтверждение. Чтобы не ждать видеозаписи, я решил сделать статью с расшифровкой выступления.



              О чем я расскажу


              1. Почему и зачем надо переходить на Single-Activity
              2. Универсальный подход для решения задач, которые вы привыкли решать на нескольких Activity
              3. Примеры стандартных бизнес задач
              4. Узкие места, где обычно подпирают код, а не делают все честно
              Читать дальше →
            • Полное практическое руководство по Docker: с нуля до кластера на AWS

              • Translation



              Содержание



              Вопросы и ответы


              Что такое Докер?


              Определение Докера в Википедии звучит так:


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



              Ого! Как много информации.

              Читать дальше →
            • От Space Invaders до Half Life 2: история игровых диздоков

              • Translation
              image

              Идеи могут появляться отовсюду, но на определённом этапе в начале разработки перед глазами всех её участников уже должен быть чёткий план. На протяжении истории видеоигр создатели игр оставляли ценные сведения об источниках своего вдохновения в текстах, которые мы обобщённо называем «дизайн-документами». От визуализаций до планирования проектов, от кода до творческих решений — все эти бумаги и цифровые данные сами по себе являются искусством. Давайте посмотрим, как на протяжении десятилетий создавались игры, на примерах таких редких, но всегда удивительных артефактов.
              Читать дальше →
              • +37
              • 11.6k
              • 3
            • Работаем в консоли быстро и эффективно

              В сети можно встретить много советов по эффективной работе в консоли. В большинстве таких статей авторы рассказывают про банальности типа "выучите горячие клавиши" или "sudo !! запустит последнюю команду под sudo". Я же расскажу о том, что делать, когда вы уже выучили горячие клавиши и знаете про sudo !!.

              Читать дальше →
            • Как защититься от переполнения стека (на Cortex M)?

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

                image

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

                В этой статье я расскажу о собственных изысканиях на эту тему. Поскольку я программирую в основном под STM32 и под Миландр 1986 — на них я и фокусировался.
                Читать дальше →
              • Сети для самых маленьких. Часть нулевая. Планирование

                • Tutorial
                Это первая статья из серии «Сети для самых маленьких». Мы с товарищем thegluck долго думали с чего начать: маршрутизация, VLAN'ы, настройка оборудования.
                В итоге решили начать с вещи фундаментальной и, можно сказать, самой важной: планирование. Поскольку цикл рассчитан на совсем новичков, то и пройдём весь путь от начала до конца.

                Предполагается, что вы, как минимум читали о эталонной модели OSI (то же на англ.), о стеке протоколов TCP/IP (англ.), знаете о типах существующих VLAN’ов (эту статью я настоятельно рекомендую к прочтению), о наиболее популярном сейчас port-based VLAN и о IP адресах (более подробно). Мы понимаем, что для новичков «OSI» и «TCP/IP» — это страшные слова. Но не переживайте, не для того, чтобы запугать вас, мы их используем. Это то, с чем вам придётся встречаться каждый день, поэтому в течение этого цикла мы постараемся раскрыть их смысл и отношение к реальности.

                Схема сети

                Начнём с постановки задачи. Есть некая фирма, занимающаяся, допустим, производством лифтов, идущих только вверх, и потому называется ООО «Лифт ми ап». Расположены они в старом здании на Арбате, и сгнившие провода, воткнутые в пожжёные и прожжёные коммутаторы времён 10Base-T не ожидают подключения новых серверов по гигабитным карточкам. Итак у них катастрофическая потребность в сетевой инфраструктуре и денег куры не клюют, что даёт вам возможность безграничного выбора. Это чудесный сон любого инженера. А вы вчера выдержали собеседование и в сложной борьбе по праву получили должность сетевого администратора. И теперь вы в ней первый и единственный в своём роде. Поздравляем! Что дальше?
                Читать дальше →
              • Сколько стоит для студента микросхему выпустить?

                  1. Введение


                  Всем нам известна проблема курицы и яйца: работодатели не хотят брать на работу выпускников без опыта работы, но где же в таком случае выпускникам получить опыт работы? В микроэлектронике эта проблема стоит особо остро ввиду требуемого огромного количества специфического опыта. Наши ВУЗы с советских времен знамениты широчайшей теоретической подготовкой, которая должна помочь выпускнику в любой сложной ситуации в жизни. Однако, современная индустрия требует практического опыта. Добавим сюда еще отсутствие мотивации, приводящее к тому, что по специальности работает процентов 15% выпускников, и получим жесточайший кадровый голод в отрасли, которая очень требовательна к качеству кадров. А ведь если бы каждый студент мог "поморгать лампочкой" со своего собственного кристалла ситуация могла бы развиваться совсем иначе.



                  Рисунок 1. КДПВ


                  Что же мешает таким грандам подготовки кадров отечественной микроэлектроники, как, например, МИФИ и МИЭТ, поступать аналогично своим зарубежным коллегам (например, MIT или UZH), а именно — давать возможность студентами-дипломникам выпускать свои собственные кристаллы? Можно, конечно, предположить, что выпуск собственного кристалла занятие крайне долгое, сложное и дорогое, а потому для института — дорого, а для студента — непосильно. Однако, это не так. Давайте же взглянем на одну из доступных технологий на отечественном рынке микроэлектроники, знакомство с которой позволит студенту стать значительно более привлекательным в плане будущего трудоустройства, а предложение которой для студента — позволит университету значительно поднять свой рейтинг в глазах абитуриентов и работодателей.

                  Читать дальше →
                • Создаём собственный физический 2D-движок: части 2-4

                  • Translation
                  image


                  Оглавление


                  Часть 2: ядро движка

                  • Интегрирование
                  • Метки времени
                  • Модульная архитектура
                    • Тела
                    • Формы
                    • Силы
                    • Материалы
                  • Широкая фаза
                    • Отсечение дубликатов контактных пар
                    • Система слоёв
                  • Проверка пересечения полупространств

                  Часть 3: трение, сцена и таблица переходов

                  • Трение
                  • Сцена
                  • Таблица переходов коллизий

                  Часть 4: ориентированные твёрдые тела

                  • Математика вращения
                  • Ориентированные формы
                  • Распознавание коллизий
                  • Разрешение коллизий

                  Читать дальше →
                  • +50
                  • 29.6k
                  • 7
                • Методы приближенного поиска ближайших соседей


                    Довольно часто программисты и специалисты из области data science сталкиваются с задачей поиска похожих профилей пользователей или подбора схожей музыки. Решения могут сводиться к преобразованию объектов в векторную форму и поиску ближайших.


                    Мы тоже столкнулись с необходимостью поиска ближайших соседей в задаче распознавания лиц. Там мы формируем векторные представления лиц при помощи нейросети и ищем ближайшие векторы уже известных людей. Изначально для поиска мы выбрали Annoy, как хорошо известный и проверенный алгоритм, используемый в том числе в Spotify. Но быстро поняли, что с его аппетитами по памяти мы либо не вмещаемся в RAM, либо сильно теряем в точности. Это привело к небольшому исследованию. О результатах которого пойдет речь ниже.

                    Читать дальше →
                    • +53
                    • 32.6k
                    • 4
                  • Заблуждения Clean Architecture

                      Превращаем круги в блоки

                      ­­ 


                      На первый взгляд, Clean Architecture – довольно простой набор рекомендаций к построению приложений. Но и я, и многие мои коллеги, сильные разработчики, осознали эту архитектуру не сразу. А в последнее время в чатах и интернете я вижу всё больше ошибочных представлений, связанных с ней. Этой статьёй я хочу помочь сообществу лучше понять Clean Architecture и избавиться от распространенных заблуждений.

                      Читать дальше →
                    • Метод BFGS или один из самых эффективных методов оптимизации. Пример реализации на Python



                        Метод BFGS, итерационный метод численной оптимизации, назван в честь его исследователей: Broyden, Fletcher, Goldfarb, Shanno. Относится к классу так называемых квазиньютоновских методов. В отличие от ньютоновских методов в квазиньютоновских не вычисляется напрямую гессиан функции, т.е. нет необходимости находить частные производные второго порядка. Вместо этого гессиан вычисляется приближенно, исходя из сделанных до этого шагов.

                        Существует несколько модификаций метода:
                        L-BFGS (ограниченное использование памяти) — используется в случае большого количества неизвестных.
                        L-BFGS-B — модификация с ограниченным использованием памяти в многомерном кубе.

                        Метод эффективен и устойчив, поэтому зачастую применяется в функциях оптимизации. Например в SciPy, популярной библиотеки для языка python, в функции optimize по умолчанию применяется BFGS, L-BFGS-B.

                        Читать дальше →
                        • +21
                        • 29.2k
                        • 4
                      • Сглаживание изображений фильтром анизотропной диффузии Перона и Малика

                        Фильтр анизотропной диффузии Перона и Малика — это сглаживающий цифровые изображения фильтр, ключевая особенность которого состоит в том, что при сглаживании он сохраняет и «усиливает» границы областей на изображении.

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


                        Крайнее левое изображение — оригинальное, справа от оригинального — фильтрованные с различными параметрами.
                        Читать дальше →
                      • Автопилот своими силами: sensor fusion с телефона и открытые обучающие данные

                          Всем привет. Продолжаем собирать автомобильный автопилот на компьютерном зрении из гитхаба и палок (начало здесь). Сегодня подключаем к делу датчики движения смартфона (акселерометр, гироскоп и GPS приемник) на Android, осваиваем несложный sensor fusion и окончательно закрываем с кодом для сбора обучающей выборки. Бонусы — Android приложение для записи всех сенсоров синхронзированных с видео и больше часа размеченных данных в рамках импортозамещения иностранных конкурсов. Весь код по-прежнему на github.



                          Это трехосные MEMS акселерометр и гироскоп, они будут нам крайне полезны.

                          Читать дальше →