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

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

        Всем привет!

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


        Читать дальше →
      • Смешение уровней абстракции закладывает бомбу в основание вашего проекта

          За годы работы архитектором я видел разных заказчиков, и одна из самых частых ошибок формулирования ТЗ и хотелок заказчика — это смешение разных уровней абстракции. Приходит человек и говорит:

          — Мне нужна железка, которая будет управлять приводом дверей, и показывать на семисегментном экране текущее состояние, и обязательно с внешним сервером для удаленного управления, чтобы по TCP общалось с этим сервером, а для панели управления взять VueJS.

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

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

          • Translation

          Наиболее полный источник информации о жизни создателя TempleOS Терри Дэвиса


          Легко заклеймить Терри Дэвиса параноидальным, нарциссическим, душевнобольным и психически нестабильным расистом, 12 лет своей жизни проведшим за созданием бесполезной операционной системы TempleOS, предназначенной для разговоров с богом; но перед тем, как выносить ему свою оценку, нужно сначала составить полное представление о нём. История Терри – это трагическое повествование о том, как психическая болезнь забрала у нас человека, объявившего себя «величайшим из когда-либо живших программистов».

          Ранние годы Терри Дэвиса


          Терри Дэвис родился 15 декабря 1969 года в г. Вест-Аллис, шт. Висконсин. Но затем в течение жизни переезжал в Орегон, Вашингтон, Мичиган и Аризону. Он родился в большой семье, был седьмым ребёнком из восьми, а отец его был промышленным инженером, работавшим над ракетной системой "Титан" в 70-х и 80-х.

          Рос он в близком контакте с братьями и сёстрами, но когда в зрелом возрасте начали проявляться проблемы с психикой, он решил, что: «Иисус не разговаривал со своими братьями и сёстрами, ему не хотелось иметь с ними ничего общего, ему лучше было с незнакомцами. И я такой же».
          Читать дальше →
        • Эх, айти, куда ж ты котишься? 

            Ну что, Хабр, прошло полгода какого-то очень неприятного 2020, до конца десятилетия ещё чуть-чуть — и уже сегодня я могу сказать: это десятилетие прежде всего стало золотым веком IT-сферы. Накопленный опыт, новые эксперименты и крутое железо сделали своё дело. Казалось, что айти стало новым рок-н-роллом, но как-то быстро оно приблизилось к тому, чтобы стать новой попсой. Все хотят в айти, неважно кем: менеджерами всего и по всему, переводчиками, деврелами, пиарщиками, копирайтерами, ну и собственно программистами, тестировщиками, инженерами. А отрасль тем временем сильно видоизменяется. Предлагаю вам поговорить о нас, о нашем айти и о том, куда всё катится. 

            Читать дальше →
          • Что делать, если в вашей команде появился «эффективный» менеджер?

            Пару лет назад друзья скинули очень забавный комикс под названием “Сова — эффективный менеджер”. Я посмеялась, подумала, что смешно, такого же не бывает, как классно утрированы ситуации. Но очень скоро этот комикс стал моей реальностью — в нашей команде появился он: “эффективный” менеджер, и стало не до смеха.


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


            Читать дальше →
          • Как управлять состоянием React приложения без сторонних библиотек

            • Translation
            • Tutorial

            image


            Реакт это все что вам нужно для управления состоянием вашего приложения.


            Управление состоянием это одна из сложнейших задач при разработки приложения. Вот почему каждый день появляются все новые и новые библиотеки для управления состоянием, их становится все больше и больше, причем многие из них разрабатываются поверх уже существующих решений. В npm вы можете найти сотни "упрощенных Redux" библиотек. Однако, несмотря на то что управлять состоянием сложно, одной из причин того почему так получилось стало именно то что мы слишком переусложняем решение проблемы.


            Существует метод управления состоянием который лично я пытаюсь применять еще с тех пор как я начал использовать Реакт. И теперь, после релиза хуков (hooks) и улучшения контекстов (context), этот метод управления состояниями стало очень просто использовать.

            Читать дальше →
          • 10 советов схемотехнику

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


              Читать дальше →
            • Почему палитра современных фильмов оранжево-синяя

              • Translation
              image
              Jupiter Rising (2015)

              Может быть, вы не заметили, но за последние 20 лет в Голливуде развился устойчивый курс на оранжево-синюю палитру картинки. Также эта цветовая схема известна под именами «оранжевый и зеленовато-голубой» или «янтарный и зеленовато-голубой». Не верите? Давайте проверим. Предупреждаю сразу – после увиденного развидеть его уже не удастся, вы будете замечать эту палитру везде.
              Я предупредил
            • В Сеть выложили неизвестную адаптацию SimCity для нефтяников — SimRefinery



                В коллекцию Internet Archive добавлена рабочая копия игры SimRefinery, её можно скачать и поиграть в эмуляторе.

                Игра нашлась после статьи двухнедельной давности Фила Сальвадора (Phil Salvador) о компании Maxis Business Simulations. Это было подразделение Maxis, которая выпустила известный хит SimCity.
                Читать дальше →
                • +34
                • 9.4k
                • 3
              • 60+ игр для гиков

                Приветствую всех брутальных Хабрачан и чувственных Хабрачаночек!

                Благодаря вашей поддержке я смог написать статьи про сериалы в мире IT. Вместе мы прошли через многое. В последней статье я попросил вас рассказать своё мнение о том, стоит ли мне писать статью про гиковские игры и вы снова поддержали меня. Спасибо за это!

                Что же, как я и обещал — подборка 60+ игр для гиков перед вами. Сразу хочу оговорить один момент. Все мы гики. У кого-то есть любимые игры, которые могли сюда не попасть. Напишите о них в комментариях. Все ваши комментарии очень ценны и добавляют интереса в наш диалог. Часть из игр моей подборки непосредственно про IT и вокруг нас с вами, часть — не про IT, но гику эти игры наверняка понравятся. Часть игр чему-то учат, часть — просто веселят и развлекают.

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

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

                Что же. Давайте не будем тянуть время и поговорим о подобранных мною для вас играх!


                Читать дальше →
              • Искусственная глупость: искусство намеренных ошибок

                • Translation
                image

                Всё должно быть изложено так просто, как только возможно, но не проще.
                — Альберт Эйнштейн

                Чтобы игра была развлекающей и интересной, не обязательно делать управляемых компьютером противников умнее. В конце концов, игрок должен побеждать. Однако позволять ему выигрывать только потому, что управляющий противниками ИИ разработан плохо, тоже неприемлемо. Интерес к игре можно увеличить, если совершаемые противником ошибки будут намеренными. Тщательно настроив ошибки противников, сделав их намеренными, но правдоподобными, программисты позволят противникам выглядеть умными и одновременно обеспечат победу игрока. Кроме того, отслеживая системы ИИ и соответствующим образом управляя ими, можно превратить ситуации, в которых противники выглядят глупо, в интересный игровой процесс.

                Частая ошибка в разработке и реализации систем ИИ в компьютерных играх заключается в слишком сложном дизайне. Разработчику ИИ легко увлечься созданием умного игрового персонажа и потерять из виду конечную цель, а именно создание развлекающей игры. Если у игрока есть иллюзия того, что компьютерный противник делает что-то умное, то неважно, каким образом ИИ (если он есть) создаёт эту иллюзию. Признак хорошего программиста ИИ — способность противостоять искушению добавить интеллекта туда, где он не нужен, и распознавание ситуаций, в которых достаточно более «дешёвых» и простых решений. Программирование ИИ часто больше похоже на искусство, чем на науку. Способность различать моменты, в которых достаточно дешёвых трюков, и тех, где требуется более сложний ИИ, даётся непросто. Например, программист, обладая полным доступом ко всем структурам игровых данных, легко может читерить, сделав NPC всезнающими. NPC могут знать, где находятся враги, где лежит оружие или амуниция, не видя их. Однако, игроки часто распознают такие дешёвые трюки. Даже если они не могут определить саму природу читерства, у них может создаться ощущение, что поведение NPC не похоже на естественное.
                Читать дальше →
              • Нечеткая логика и конечные автоматы против ПИД-регулятора. Избиение младенцев продолжается

                • Tutorial

                Продолжаем изучать нечеткую логику по книге Гостева В.И «Нечеткие регуляторы в системах автоматического управления». После того, как мы насладились прекрасными видами поверхностей отклика, перейдем непосредственно к решению очередной задачи из книги Гостева В.И «Нечеткие регуляторы в системах автоматического управления».


                Этот текст является продолжением предыдущих публикаций:


                1. Простой регулятор на базе нечеткой логики. Создание и настройка.
                2. Нечеткая логика в красивых картинках. Поверхности отклика для разных функций принадлежности.
                3. Создание регулятора на базе нечеткой логики с многоканальной настройкой.
                4. Простая нечеткая логика слеплена «из того что было» для газотурбинного двигателя.
                5. Нечеткая логика против ПИД. Скрещиваем ежа и ужа. Авиадвигатель и алгоритмы управления АЭС.


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


                Сразу должен предупредить, у меня получился очередной пост унижения традиционного ПИД-регулятора со стороны нечеткой логики. Это не потому, что я специально старался. Должен ответственно заявить, что в исходной книге нет сравнения качества управления ПИД и Fuzzy. Все сравнения я выполнял сам, по собственной воле, в трезвом уме и ясной памяти. И, да, мне не платили наймиты мировой буржуазии, распространяющие нечеткую логику, как продажную девку империализма.


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


                Далее под катом – ПИД-регулятор, нечёткая логика и конечные автоматы для управления газотурбинным двухроторным двигателем (ГТД). Тем, кто впервые планирует познакомиться с работой нечеткой логики, рекомендую начать со статьи «Простой регулятор на базе нечеткой логики. Создание и настройка»

                Читать дальше →
              • Новый сервис фотографирует сотрудников каждые 5 минут. За это его ненавидят



                  Удалённая работа «славится» у менеджеров тем, что многие из них чувствуют, как будто у них меньше контроля. Чем занимаются работники, делают ли они то, что должны? Чтобы следить за трудолюбием сотрудников, кто-то смотрит только на результаты. Что иногда хорошо, но годится далеко не для всех сфер и проектов. Кто-то вводит систему учета рабочего времени за компьютером, хотя большинство из них при желании довольно легко обмануть.

                  Но сейчас в США на фоне коронавируса становится популярна другая система. Видеоконференция, которая постоянно на связи, и через периодические снимки веб-камеры определяет, находится ли сотрудник на своём рабочем месте. Самая популярная система называется Sneek, и у неё уже нашлось много ярых противников…
                  Читать дальше →
                • «Я понял, что многие хотят любви»: журналисты нашли создателя червя ILOVEYOU

                    image

                    Спустя 20 лет после того, как в мире произошла первая крупная атака компьютерного вируса, журналисты нашли его создателя и пообщались с ним. Речь идет о филиппинце Онеле де Гузмане, который создал червя ILOVEYOU (Love Bug) для кражи паролей.
                    Читать дальше →
                  • За пределами массива

                    image

                    Усталость


                    Смотрю в код и совершенно не понимаю, что он делает. Мысли путаются, вижу знакомый синтаксис и набор конструкций, но информация на экране монитора абсолютно не несет для меня никакой смысловой нагрузки. Читаю код построчно, делаю даже пометки в черновике, пытаясь понять алгоритм, но вскоре все сваливается в бессмысленную кашу. Слишком мало кофе или слишком много? Последнее время у меня к нему выработался иммунитет. Выпиваю его словно воду и кажется, что эффект нулевой, но без него никак. Дедлайн наступает на пятки. Руководство дает о себе знать все чаще. Еще один сорванный дедлайн и, пожалуй, мне предложат искать новую работу. От психологического давления и ограниченных сроков исправлять баги становится только тяжелее. Как же много багов и легаси кода, пытаюсь разложить по полками и размотать этот клубок, но все тщетно.

                    Я слишком глуп для этой работы. Может сказывается отсутствие математической базы? Или может просто нет таланта. Наверное, у меня другой склад ума. Смотрю по сторонам и вижу беззаботный смех моих коллег, кажется, что им дается все намного легче. Код на кончиках пальцев. У меня все не так. Хотя это пройдет, я точно это знаю. Как только я закрою этот проект, появится легкое чувство эйфории, так бывает всегда. А потом, снова окунувшись в очередное болото программного кода, ты теряешь веру в себя. Это “колесо сансары” и я из него не выйду никогда.
                    Читать дальше →
                  • Современные архитектуры фронт-энда

                    • Translation

                    image


                    В статье "Contemporary Front-end Architectures" рассмотрены архитектуры фронт-энда с точки зрения потоков данных в исторической ретроспективе.


                    Материал состоит из трех частей


                    1. Теория и история
                    2. Реализация
                    3. Перспективы

                    Читать дальше →
                  • ICANN отозвала согласие на продажу домена .org частной компании



                      Корпорация по управлению доменными именами и IP-адресами (ICANN) отказалась от продажи домена .org частной компании Ethos Capital. Как указано в сообщении корпорации, руководство ICANN пришло к этому решению после «тщательной юридической проверки».
                      Читать дальше →
                    • Удобные архитектурные паттерны

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


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


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

                      Читать дальше →
                      • +24
                      • 11.8k
                      • 2
                    • Немного про устройство современного радио на примере HackRF One

                        Приветствую, Habr!
                        Некоторое время назад в поле моего зрения очень часто попадало множество статей, видеороликов о теме SDR трансиверов. Тема представляет интерес и сегодня. Большой популярностью среди радиолюбителей и других, разного рода, «технарей» пользуются устройства HackRF One (и по сей день, несмотря на то, что данный трансивер появился на рынке довольно давно, и в настоящее время уже существует масса других вариантов SDR похожего плана, в том числе и более производительных). Практически во всех статьях этой тематики рассматриваются программные инструменты (как правило — работа с GNU Radio, описываются алгоритмы ЦОС и т. п.), приводятся практические примеры по захвату сигналов радиостанций, демонстрируется GPS-спуфинг, приём сигналов с метеоспутников и т. п. Hack-RF One используется как некая универсальная «коробочка», позволяющая делать множество интересных вещей. Достаточно иметь небольшой опыт в программировании и общее понимание о том, что такое цифровой сигнал – в принципе порог вхождения для самых простых экспериментов с SDR преодолен. На самом деле это, конечно, здорово.
                        Но среди множества статей пока не встречал ни одной, где бы внимательно рассматривалось «железо» этого приемопередатчика, где более или менее подробно анализировалась его схема (если Вы встречали, дайте, пожалуйста, ссылочку в комментариях).
                        Более того, настораживает некая пренебрежительность к этому вопросу со стороны «пользователей» этого и других подобных модулей-трансиверов. Во многих популярных статьях проскальзывает, что приемник/передатчик SDR – это:

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