• Проектирование импульсного источника питания с активным ККМ. Эпизод I

    • Tutorial

    Предисловие


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

    Еще одной причиной отсутствия статей была моя работа в одной «современной успешной IT-hardware-компании», сейчас наконец-то я ее покинул и окончательно пересел на фриланс, так что время для статьи появилось))

    Недавно ко мне обратился мой старый наставник и просто очень хороший человек. Естественно я не мог отказать в помощи, а оказалось все достаточно просто — меня попросили сделать блок питания для КВ трансивера FT-450, который будет более стабильный в работе, особенно при пониженном входном напряжении, чем уже имеющийся Mean Well. Прошу заметить, я не говорю о том, что Mean Well плохая фирма, просто в данном случае нагрузка достаточно специфическая, а так продукция у них вполне себе хорошая.

    Диагноз примерно такой:


    — Заявлен выходной ток в 40А, на деле при потреблением в 30-35А (на передаче) блок уходит в защиту;
    — Наблюдается сильный нагрев при длительной нагрузке;
    — Совсем становится плохо, когда использует его на даче, где напряжение в сети 160-180В;
    — Напряжение максимальное 13,2-13,4В, а хотелось бы 13,8-14В с возможностью подкрутить +-20%.

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

      Я уверен, что многим программистам знакома формула:

      Y = 0.299 R + 0.587 G + 0.114 B

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

      Вычисляет она относительную яркость цвета (relative luminance или в некоторых контекстах luma; не путать с lightness и brightness) и широко применяется для преобразования цветного RGB-изображения в Grayscale и связанных с этим задач.

      Формула растиражирована и процитирована в тысячах статей, форумных обсуждений и ответов на StackOverflow… Но дело в том, что единственно-правильное её место — на свалке истории. Использовать её нельзя. Однако же используют.

      Но почему нельзя? И откуда же взялись именно такие коэффициенты?
      Мини-экскурс в историю
    • Идеальный Мини-Хакинтош

      • Tutorial
      image

      Когда в 2005 году Apple перешла на платформу Intel, энтузиасты со всего мира задались целью установить MAC OS X на обычные PC (Хакинтош). На пути реализации этой затеи стояли четыре причины. 2 физические и 2 юридические. Дело в том, что для запуска компьютера MAC используется не привычный BIOS, а собственный EFI загрузчик. Вторая причина, это чип SMC который установлен в каждом компьютере Mac. Он генерирует ключи для запуска всех системных приложений MAC OS X. Благодаря нашему соотечественнику под ником Netkas, удалось обойти эти два ограничения созданием эмулятора загрузчика EFI (Chameleon, Chemera, Clover) и эмулятора чипа SMC (FakeSMC.kext). Этих двух программных решений достаточно, что бы установить MAC OS на PC.
      Читать дальше →
    • Суперскалярный стековый процессор: оптимизация


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

        Предыдущие статьи:
        1 — описание работы на линейном куске
        2 — вызов функций, сохраняем регистры
        3 — вызов функций, взгляд изнутри
        Читать дальше →
      • Аспирантка из Астрахани разработала биопрепарат для защиты сельскохозяйственных культур от грибных заболеваний

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

          При реализации проекта в полевых условиях на 70-80% повысилась устойчивость растений к грибным заболеваниям, на 30-40% — урожайность, а количество больных клубней и плодов снизилось на 70-100%.

          Патент на штамм уже получен, сейчас команда работает над патентом для биопрепарата.

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



            Продолжение серии статей, разбирающих идею суперскалярного процессора с OoO и фронтендом стековой машины.
            Тема данной статьи — вызов функций, вид изнутри.
            Читать дальше →
            • +12
            • 7,5k
            • 3
          • Помехоустойчивое кодирование с иcпользованием различных кодов

              Это продолженеие статьи о помехоустойчивом кодировании, которая очень долго лежала в черновиках. В прошлой части нет ничего интересного с практической точки зрения — лишь общие сведения о том, зачем это нужно, где применяется и т.п. В данной части будут рассматриваться некоторые (самые простые) коды для обнаружения и/или исправления ошибок. Итак, поехали.
              Читать дальше →
            • За один проход

                Среди задач по программированию часто попадаются такие: дана последовательность однотипных элементов (обычно это числа), требуется за один проход по ней найти какую-нибудь характеристику (среднее квадратическое отклонение, количество минимальных элементов, непрерывный участок с наибольшей суммой...) Дополнительное ограничение — последовательность может быть очень длинной, и в память не поместится. Других ограничений на элементы последовательности, обычно, не накладывается.
                С этими задачами всё, более или менее, понятно: нужно найти то, что на мехмате МГУ называют «индуктивным расширением» искомой функции, и реализовать её вычисление. Если найти не удалось (требуемый объём памяти слишком велик), то задача не решается.
                Но попадаются и другие задачи. В них есть дополнительные ограничения на элементы последовательности в совокупности, и эти ограничения приходится существенно использовать для решения (и проверять их не надо). Простейшая такая задача выглядит так:

                Задача 1. В последовательности записаны целые числа от 1 до N в произвольном порядке, но одно из чисел пропущено (остальные встречаются ровно по одному разу). N заранее неизвестно. Определить пропущенное число

                Решение очевидно: просматриваем числа, находим их количество K и сумму S. По условию, N=K+1, значит, сумма чисел от 1 до N будет равна (K+1)*(K+2)/2, и пропущенное число равно (K+1)*(K+2)/2-S. Если вы почему-то боитесь переполнений, то работайте с беззнаковыми числами (там переполнения не страшны — но будьте осторожны при вычислении (K+1)*(K+2)/2 :) ), или вместо суммы ищите XOR всех чисел.
                Другие задачи
              • Об одной изящной конструкции

                  Введение


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

                  Распечатать в порядке возрастания все несократимые дроби, знаменатель которых не превосходит n, n<=100.

                  Когда я прочитал условие задачи до конца, она не показалась мне сложной (она таковой и не является). Первое, что пришло мне в голову это просто перебрать все знаменатели от 2 до n и для каждого знаменателя перебрать числители от 1 до знаменателя, при условии, что числитель и знаменатель взаимно просты. Ну, а за тем отсортировать их по возрастанию.

                  Такое решение верно и задача прошла все назначенные ей тесты. Однако, мой преподаватель сказал, что задачу можно решить намного красивее (он уже сталкивался с этой конструкцией). Так я и познакомился с этой замечательной конструкцией — деревом Штерна-Броко.
                  Читать дальше →
                • Суперскалярный стековый процессор: продолжаем скрещивать ужа и ежа


                    Продолжение статьи, где удалось продемонстрировать, что фронтенд стековой машины вполне позволяет спрятать за ним суперскалярный процессор с OoO.
                    Тема данной статьи — вызов функций.
                    Читать дальше →
                    • +12
                    • 6,5k
                    • 3
                  • Исследование: Считавшаяся «неуязвимой» память DDR4 подвержена уязвимости Rowhammer



                      Американские исследователи из компании Third I/O на состоявшейся в Китае конференции Semicon China представили доклад, в котором рассказали о том, что уязвимости Rowhammer подвержены и чипы DDR4. Ранее считалось, что память этого типа не подвержена данной уязвимости, которую весной 2015 года обнаружили ИБ-специалисты из Google.
                      Читать дальше →
                    • Парадокс Симпсона и немного Pandas

                        О чем статья?


                        В этой статье я хочу рассмотреть один из наиболее известных примеров парадокса Симпсона, попутно немного рассказав о MultiIndex в Pandas.
                        Обо всем по порядку.

                        Парадокс Симпсона — контринтуитивное явление в Статистике, когда мы видим в каждой из групп данных определенную зависимость, но при объеденении этих групп зависимость исчезает или становится противоположной. Например, если смотреть изменение среднего заработка женщин 25 лет и старше, работающих полный день, между 2000 и 2012 годами с различным уровнем образования, то мы получим следующие цифры (все расчеты проводились с поправкой на инфляцию):

                        • Less than 9th grade -3.7%
                        • 9th-12th but didn’t finish -6.7%
                        • High school graduate -3.3%
                        • Some college but no degree -3.7%
                        • Associate’s degree -10.0%
                        • Bachelor’s degree or more -2.7%

                        По этим цифрам можно сделать вывод, что заработок женщин за 12 лет снизился. Однако, на самом деле, средний заработок женщин с полной занятостью вырос на 2.8% (подробнее про этот пример можно почитать тут).

                        Одним из наиболее известных примеров парадокса Симпсона является случай половой дискриминации при поступлении в Калифорнийский унивеситет Berkeley. Его и будем рассматривать далее.
                        Читать дальше →
                        • +43
                        • 22,2k
                        • 7
                      • Об одном забавном подходе к фильтрации унимодальных сигналов

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

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

                          ===> ===>
                          Читать дальше →
                          • +13
                          • 5,5k
                          • 3
                        • Что читать о перспективных языках программирования

                            image

                            Начнем с важной информации: совсем не обязательно перспективные языки являются новыми. Им не так много лет, как вашим любимым Python или Ruby, их нет ни в одной топовой десятке популярных рейтингов (GitHut, RedMonk, TIOBE Index), а знание этих языков не дает пока существенной прибавки к зарплате (за исключением, возможно, Swift). Но и назвать их революцией, набирающей обороты в среде избранных, тоже нельзя. Безусловно, у них есть своя ниша, определенная доля рынка (до 2%) и сложившееся комьюнити. Просто в будущем именно они могут посягнуть на лавры топ-5, если не случится событие типа «черный лебедь».

                            За последние годы в рейтингах популярности языков мало что изменилось — одни опускаются, другие поднимаются, но никто не врывается в топ под лозунгом «лучший из лучших». Процесс захвата новых территорий для языка чаще всего занимает годы, и за это время успевает сформироваться необходимая база развития. Поэтому никаких эксклюзивов и написанных за вчерашний вечер уникальных языков в обзоре не будет — просто потому, что их время еще не настало. Но в ближайшие годы популярность незыблемых столпов, таких как Java (вся), JavaScript или PHP, будет снижаться, а их место постепенно займут «новички».
                            Читать дальше →
                          • Реализация грида для работы с большими таблицами. Часть 1

                              Таблица (грид) с вертикальной полосой прокрутки — наиболее распространённый элемент пользовательского интерфейса для работы с данными реляционной БД. Однако известны сложности, с которыми приходится сталкиваться, когда таблица содержит так много записей, что тактика их полной вычитки и сохранения в оперативной памяти становится неразумной.

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



                              Мы расскажем об одном из возможных методов реализации табличного элемента управления, обладающего свойствами Log(N)-быстрого 1) первоначального отображения 2) прокрутки на всём диапазоне записей 3) перехода к записи с заданным уникальным ключом. Всё это — при двух ограничениях: 1) записи могут быть отсортированы только по индексированному набору полей и 2) collation-правила базы данных должны быть известны алгоритму.

                              Изложенные в статье принципы были реализованы автором в проекте с его участием на языке Java.

                              Читать дальше →
                            • Уникальный Нанокомпозит для контактов в переключателях электрических сетей

                                Сегодня мы вам расскажем о Научно-Исследовательском Центре «Конструкционных Керамических Наноматериалов» и о том, как получают уникальный нанокомпозит для контактов в переключателях электрических сетей. Вас ждет большой фоторепортаж с пошаговым описанием получения конечного продукта с применением метода высокоэнергетичной обработки порошков металлов в шаровой мельнице с последующей консолидацией полученных нано — структурированных композиционных частиц методом искрового плазменного спекания. Специально для нашего корпоративного блога на GT инженер центра Кирилл Кусков проделал весь эксперимент, который будет интересен целевой аудитории: инженерам и специалистам из релевантных областей. Полученный композит отличается от предшественников большой энергоэффективностью, экономичностью и надежностью.


                                Научно-Исследовательский Центр «Конструкционных Керамических Наноматериалов» (НИЦ ККН) был основан в июне 2011 года в НИТУ «МИСиС» под руководством ведущего ученого д.ф.-м.н. А. С. Мукасьяна, который также является профессором факультета химической и биомолекулярной инженерии университета Нотр Дам (США).
                                Читать дальше →
                                • +13
                                • 7,4k
                                • 4
                              • Суперскалярный стековый процессор: скрещиваем ужа и ежа


                                  В данной статье мы будем разрабатывать (программную) модель суперскалярного процессора с OOO и фронтендом стековой машины.
                                  Читать дальше →
                                • Вычисление значения многочлена. Все ли тривиально в этом вопросе?

                                    Вычисление значения многочлена в точке является одной из простейших классических задач программирования.
                                    При проведении различного рода вычислений часто приходится определять значения многочленов при заданных значениях аргументов. Часто приближенное вычисление функций сводится к вычислению аппроксимирующих многочленов.
                                    Рядового читателя Хабрахабр нельзя назвать неискушенным в применении всяческих извращений. Каждый второй скажет, что многочлен надо вычислять по правилу Горнера. Но всегда есть маленькое «но», всегда ли схема Горнера является самой эффективной?

                                    Читать дальше →
                                  • Когда ВВС США осознали изъян со средними числами

                                    • Перевод
                                    Отрывок из книги "The End of Average" Тодда Роуза


                                    В начале 1950-х американцы измерили тела более 4000 пилотов по 140 характеристикам, чтобы спроектировать идеальную кабину для среднего пилота

                                    В конце 1940-х у американских военно-воздушных сил была серьёзная проблема: пилоты теряли контроль над самолётами. Тогда наступала эпоха реактивных двигателей, так что самолёты стали более быстрыми и сложными в управлении. Но катастрофы случались так часто и на таком количестве разнообразных самолётов, что ВВС США столкнулись с реальной проблемой спасения жизней. В худшее время разбивалось до 17 пилотов за день.
                                    Читать дальше →