• 1155 vs 2011. В бой идут одни старики

      В 2017 году AMD в очередной раз приоткрыла ящик Пандоры, выпустив на рынок mainstream процессоры с количеством ядер больше четырёх, при этом с производительностью на ядро хотя бы сравнимой с современными процессорами Intel при равных частотах. Полного паритета не вышло, но полутора-двукратного разрыва в зависимости от типа нагрузки, как во времена FX-ов, уже нет. В синтетике производительность ядер Ryzen примерна равна производительности ядер Ivy Bridge (3xxx). Ход оказался довольно таки сильным, так что синей команде пришлось спешно выпускать шестиядерники на обновлённом 1151. К чему это я? А собственно к тому, что с прошлого года шести и более ядерные процессоры с быстрыми ядрами перебрались в потребительский сегмент из узкой HEDT ниши. Кроме всего прочего это значит, что массовое ПО наконец всё же начали оптимизировать под многоядерные многопоточные CPU.

      Что такое современный массовый 6-8-ядерный процессор? Это частота 3.5-4.5GHz, относительно быстрая межъядерная шина той или иной архитектуры, двухканальная память DDR4 с частотой 2.4+ GHz. При этом ядра того же Ryzen рекордов производительности на такт не бьют. А что если… вместо современной и достаточно дорогой платформы взять старую 2011 платформу Intel, благо сейчас предложение списанных серверных процессоров линеек E5 v1 и v2 под этот сокет явно превышает спрос? Тем более предприимчивые китайцы, увидев такую ситуацию, оперативно освоили массовый выпуск материнских плат под эту платформу, а остальные комплектующие, процессор с памятью, стоят на вторичном рынке сравнительно недорого да и старению особо не подвержены. Пропускная способность регистровой DDR3 памяти пониже будет на один канал, чем у DDR4, но зато и каналов памяти на этой платформе четыре.

      Платформы Ryzen у меня под рукой нет, поэтому будем сравнивать имеющиеся конфиги, все относящиеся к поколения Ivy Bridge. В общем-то сравниваются малосравнимые в своё время (по крайней мере по цене) платформы, но время всех уравнивает.
      Читать дальше →
    • Как мы обучили нейронную сеть классифицировать шурупы

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



        Проблема интернет-магазина шурупов — в ассортименте. Тысячи или десятки тысяч моделей. У каждого шурупа свое описание и характеристики, поэтому на фильтры нет надежды. Что делать? Искать вручную или искать в гипермаркете на полках? В обоих случаях это потеря времени. В итоге клиент устанет и пойдет забивать гвоздь. Чтобы помочь ему, воспользуемся нейросетью. Если она может находить котиков или диваны, то пусть занимается чем-то полезным — подбирает шурупы и болты. Как научить нейросеть подбирать для пользователя шурупы быстро и точно, расскажем в расшифровке доклада Марии Мацкевичус, которая в компании Grid Dynamics занимается анализом данных и машинным обучением.
        Читать дальше →
      • Оптимизация кода: память

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

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

          image

          Иерархия памяти работает, потому что хорошо написанные программы имеют тенденцию обращаться к хранилищу на каком-то конкретном уровне более часто, чем к хранилищу на более низком уровне. Так что хранилище на более низком уровне может быть медленнее, больше и дешевле. В итоге мы получаем большой объём памяти, который имеет стоимость хранилища в самом низу иерархии, но доставляет данные программе со скоростью быстрого хранилища в самом верху иерархии.
          Читать дальше →
        • USB Генератор СВЧ

          Бывает так, что одного СВЧ генератора на рабочем месте не хватает, или же им кто-то пользуется, а проверить например смеситель (усилитель, АЦП…) очень нужно. А ещё стационарные СВЧ генераторы довольно большие и тяжёлые, лично мне часто лень их переносить и освобождать место на рабочем столе. По этим причинам два года назад я сделал свой маленький генератор, первую версию.

          Первая версия USB генератора

          Читать дальше →
        • ZappLight: светодиодная лампочка, которая также убивает комаров



            Хотя до нас ещё не дошёл вирус Зика, но его переносчики комары даже без вируса — мерзкие и противные существа. Вряд ли найдётся человек, которому нравятся комары и который с наслаждением слушает их писк. Услышав этот звук, возникает только одно желание — убивать. И здесь на помощь приходит светодиодная лампочка-убийца ZappLight.
            Читать дальше →
          • Интерполяция данных: соединяем точки так, чтобы было красиво

              Как построить график по n точкам? Самое простое — отметить их маркерами на координатной сетке. Однако для наглядности их хочется соединить, чтобы получить легко читаемую линию. Соединять точки проще всего отрезками прямых. Но график-ломаная читается довольно тяжело: взгляд цепляется за углы, а не скользит вдоль линии. Да и выглядят изломы не очень красиво. Получается, что кроме ломаных нужно уметь строить и кривые. Однако тут нужно быть осторожным, чтобы не получилось вот такого:

              Читать дальше →
            • Звуковые отпечатки: распознавание рекламы на радио

              Из этой статьи вы узнаете, что распознавание даже коротких звуковых фрагментов в зашумленной записи — вполне решаемая задача, а прототип так вообще реализуется за 30 строчек кода на Python. Мы увидим, как тут помогает преобразование Фурье, и наглядно посмотрим, как работает алгоритм поиска и сопоставления отпечатков. Статья будет полезна, если вы сами хотите написать подобную систему, или вам интересно, как она может быть устроена.
              Читать дальше →
            • Endless Eyewear: новый сервис, позволяющий менять солнцезащитные и оптические очки каждый месяц



                Разного рода сервисов и проектов сейчас очень много, и среди них попадаются очень оргинальные. Есть, например, сервис, высылающий подписчику несколько пар новых носков в месяц за определенную абонплату. Таким образом, занятый человек может не беспокоиться о том, что носки заканчиваются. Но речь сейчас о другом сервисе — Endless Eyewear, разработала и запустила его компания Ditto. Этот стартап позволяет менять очки (как оптические, так и солнцезащитные) практически ежемесячно, за относительно небольшую плату.

                Сам сервис предлагает не какие-то там китайские ноу-нейм изделия, а очки вполне себе известных компаний, включая Ray-Ban, Oakley, и Burberry. Всего компания работает с более, чем 50 различными брендами. А в подписку можно добавить и страховку от царапин и потертостей.
                Читать дальше →
              • Как «согнуть» свет? Или краткий экскурс в мир волоконной оптики

                Доброго дня, читатель! Наверняка каждый слышал о волоконной оптике, многие имели с ней дело в телекоммуникациях, у кого-то даже проведен оптоволоконный кабель в дом. В общем, этот термин на слуху; да и суть вопроса – передача света на расстояние по тонкому волокну – в общем виде понятна. Но я предлагаю немного углубиться в эту технологию, во многом изменившую мир. В этом посте я постараюсь простым и понятным языком объяснить суть волоконной оптики, как это работает – на уровне простого физического понимания, с упрощениями и примерами, без страшных формул. Иными словами, «на пальцах». Если интересно, то добро пожаловать под кат. Осторожно: много текста, наличествуют картинки.

                image
                Читать дальше →
              • ATtiny13a: Контроллер управления СТОП-сигналом и габаритными огнями автомобиля

                Здравствуйте!

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

                И вот на тебе! Пробка… А ехать еще и ехать. Путь не близкий, с учетом пробки — это не менее 3 часов до дома.
                Ну, соответственно: подбадриваю себя, что, мол, дома ужин, чай, снег за окном. И вроде настроение возвращаться начинает, как внезапно с правой полосы Toyota Prius (ну, знаете такой — на батарейках весь), включает левый поворот и лезет прямо перед моей машиной… «Хорошо, дружище! Езжай, все равно вместе стоять 3 часа.» Встроился, проехал два метра и встал. Как положено на дороге в пробке, зафиксировался тормозом.
                Читать дальше →
              • Преобразование Фурье в действии: точное определение частоты сигнала и выделение нот

                последняя редакция статьи доступна на сайте makeloft.xyz

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

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

                image

                Читать дальше →
              • Numcap — npm для определения оператора и региона по номеру телефона

                  Тем, кто работает с телефонией, приложениями связанных со звонками и т.п. время от времени приходится сталкиваться с вопросами: «а можно определять с какого региона этот звонок?» и «а этот номер какого мобильного оператора?»

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

                  Но ведь можно автоматизировать этот поиск? Конечно. И многие аккуратно парсят этот CSV и складывают к себе в базу данных. А затем используют. Я тоже так делаю.

                  Но недавно с моим коллегой мы решили немного это упаковать и сделать npm для быстрого подключения ресурса нумерации к проекту на node.js.

                  Ссылка на гитхаб, ссылка на npm.

                  Далее немного деталей.
                  Читать дальше →
                • Qt + MVP + QThread. Строим свой велосипед

                  image
                  Всем добрый день!

                  Недавно передо мной встала довольно интересная задача, сделать интерфейс пользователя для общения с одной железкой. Связь с ней осуществлялась посредством COM-порта. Так как работа предполагалась с системой реального времени (эта самая железка) в операционной системе Windows, для того, чтобы GUI не тормозил, было решено работу с COM-портом вынести в отдельный поток. Так как требования к самой системе постоянно менялись, для минимизации и ускорения исправлений также было решено писать используя паттерн проектирования MVP. В качестве среды разработки был выбран Qt. Просто потому, что мне нравится данная среда и ее возможности. Так и получилась связка Qt+MVP+Qthread. Кому интересно, что из этого всего вышло и по каким граблям я ходил, прошу под кат.
                  Читать дальше →
                • Восстановление трехмерных моделей активным параллаксным методом

                  Здравствуйте, дорогие читатели.

                  Я студент МГТУ им. Баумана. Спешу поделиться опытом в области обработки изображений и восстановлении трехмерных объектов активным параллаксным методом.

                  В настоящее время в различных областях деятельности, в таких как производство, медицина, компьютерная графика, робототехника и техническое зрение активно используется трехмерное моделирование и прототипирование объектов реального мира. В связи с этим все более актуальным становится разработка 3d сканеров и камер, которые создают 3d модель регистрируемого объекта.
                  Читать дальше →
                • Алгоритм TILT или нестандартное использование ранга матрицы

                  Сегодня мы рассмотрим алгоритм TILT (Transform Invariant Low-rank Texture) и множество его методов применения в области Computer Vision. Статья будет нести несколько обзорный характер, без плотного углубления в математические дебри.

                  Читать дальше →
                • Моделирование пандемий с помощью языка Wolfram Language (системы Mathematica 10) на примере лихорадки Эбола

                  • Перевод

                  Перевод поста Виталия Каурова (Vitaliy Kaurov) "Modeling a Pandemic like Ebola with the Wolfram Language".

                  Выражаю благодарность за помощь в переводе участникам сообщества ВКонтакте Русскоязычной поддержки Wolfram Mathematica: Еве Фрумен, Курбану Магомедову, Глебу Михновцу, Андрею Кротких.

                  Скачать перевод в виде документа Mathematica, который содержит весь код использованный в статье, можно здесь (архив, ~100 МБ).


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

                  EbolaAnimFINAL.gif
                  Читать дальше →
                • Белый Куб на страже чистоты воздуха, часть 1

                    Устройство для мониторинга параметров домашней среды с передачей данных по Wi-Fi.

                    image

                    В статье описывается устройство для измерения, индикации на встроенном дисплее и передачи в сеть по Wi-Fi параметров окружающей среды:

                    • уровень СО2 (углекислый газ)
                    • уровень СО (угарный газ)
                    • содержание паров этилового спирта (С2Н5ОН)
                    • уровень горючих газов (LPG)
                    • уровень аммиака (NH3)
                    • содержание водорода(H2)
                    • значения атмосферного давления
                    • влажности и температуры воздуха
                    • уровня освещенности
                    • уровня магнитного поля по трем осям
                    • уровня гравитации по трем осям
                    • уровня ускорений по трем осям
                    • температуры произвольного количества цифровых датчиков температуры типа DS18B20.
                    Читать дальше →
                  • Как использовать покадровую фотосъемку камерой GoPro для сервиса «Mapillary»

                    • Перевод
                    • Tutorial
                    За прошедшие полгода выросла популярность web-сервиса «Mapillary»: загружено свыше полумиллиона фотографий, причём более 100 тысяч штук — только за последние 10 дней!

                    На первый взгляд кажется, что для этого дела пригоден только обычный смартфон. А что, если бы для сбора фотоснимков для «Mapillary» можно было использовать экшн-камеру, например, GoPro? Установленную на велосипед, шлем или даже автомобиль? Как оказалось, это возможно.
                    Берегись! Статья изобилует фотографиями, картами и скриншотами
                  • Как мы осваивали вакуумное магнетронное напыление плёнок

                      Здравствуйте, друзья.

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


                      Читать дальше →
                    • Трекбол. Скажи нет «туннельному синдрому»

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

                        Но со временем этот манипулятор стал все более и более востребованным. А уж с выходом в 1995 году Windows 95 и вовсе незаменимым. Переход в исключительно графическую среду привел к тому, что «мышка» редко покидала мою руку.

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