• На замену TCP: обсуждение протокола QUIC

      QUIC — новый транспортный протокол, работающий поверх UDP. Некоторые в шутку называют его TCP/2. Расскажем, что сейчас обсуждают, как принять участие и кто внедряет поддержку QUIC.

      Читать дальше →
    • Подробное введение в rvalue-ссылки для тех, кому не хватило краткого

      • Tutorial

      Вместо КДПВ — короткая драма для привлечения внимания, основанная на реальных событиях. Ее можно смело пропустить и перейти к статье, которая поможет вам разобраться в rvalue-ссылках, конструкторах перемещения, универсальных ссылках, идеальной передаче (perfect forwarding) и т. д.


      Драма в трех действиях


      Действие первое


      Компилятор. Локальный объект x типа T, проживающий на стеке, вы приговариваетесь к изъятию у вас всего имущества в связи с тем, что не будете пользоваться им до конца своей жизни.


      Объект x. Что? Я не какой-то там временный объект, у меня постоянная регистрация, вы не имеете права!


      Компилятор. Никто вас не выселяет. Но согласно одиннадцатой редакции стандартного кодекса, все ваши вещи будут переданы другому объекту, которому они нужны больше.


      Объект x. И как вы это сделаете? Все мои данные надежно инкапсулированы, я не позволю никому бесцеремонно обращаться с ними. Если уж они так вам нужны, то пусть приходит конструктор копирования со своей флешкой, я ему скопирую.


      Читать дальше →
    • Тест 10 автомобильных зарядок по стандартам ISO

      Стенд для тестирования автомобильных зарядок по схеме №1

      Недавно я разработал автомобильный USB источник питания. Но статья будет совсем не о нем. В процессе разработки я ознакомился с двумя стандартами: ISO 16750-2, ISO 7637-2, которые подробно отвечают на часто задаваемый вопрос «Какое напряжение в автомобиле», а потом познакомил с ними десяток покупных USB зарядок разных производителей. Здесь (12) и там я видел статьи о разработке/доработке/запиле готовых источников для автомобилей, где авторы не задумываются о таких вещах, как защитные цепи. В моём источнике схема защиты получилась сложнее самого источника, т.к. пожар в машине — это, безусловно, неприятно. Как показали себя испытуемые и почему выжил только один — в этой статье.
      Читать дальше →
    • Kill switch для OpenVPN на основе iptables

      • Tutorial
      Известно, что при подключении к открытым Wi-Fi сетям ваш трафик может быть легко прослушан. Конечно, сейчас всё больше и больше сайтов используют HTTPS. Тем не менее, это ещё далеко не 100%. Возникает естественное желание обезопасить свой трафик при подключении к таким открытым Wi-Fi сетям.

      Популярное решение этой проблемы — подключение через VPN. В таком случае ваш трафик передается в зашифрованном виде до VPN-сервера, и уже оттуда идет в интернет.

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

      В этой статье я расскажу, как можно этого избежать.

      Читать дальше →
    • Источники выделения энергии на кристалле ИМС

      Вся современная микроэлектроника базируется на полупроводниках. На кристалле создаются зоны различной проводимости, которые объединяются в некоторую логику. Кристаллы работают, потребляя электрическую энергию и преобразуя её в тепло. Эта статья описывает основные процессы, на которые расходуется энергия при работе ИМС.

      Источником выделения тепла на кристалле ИМС являются три основных процесса: динамическая мощность, короткое замыкание и токи утечки. Обзор этих процессов будет проводиться на примере n-МОП технологии (хотя все описанное будет справедливо и для р -МОП)
      Читать дальше →
    • Балансировка 70 тысяч запросов в секунду на HighLoad++


        Библиотека докладов


        Это не просто статья — это целая библиотека докладов про внутреннее устройство тех или иных крупных и высоконагруженных проектов. Все эти доклады звучали на конференциях HighLoad++ и РИТ++ за последние несколько лет.


        Читать дальше →
      • Механизмы профилирования Linux



          Последние пару лет я пишу под ядро Linux и часто вижу, как люди страдают от незнания давнишних, общепринятых и (почти) удобных инструментов. Например, как-то раз мы отлаживали сеть на очередной реинкарнации нашего прибора и пытались понять, что за чудеса происходят с обработкой пакетов. Первым нашим позывом было открыть исходники ядра и вставить в нужные места printk, собрать логи, обработать их каким-нибудь питоном и потом долго думать. Но не зря я читал lwn.net. Я вспомнил, что в ядре есть готовые и прекрасно работающие механизмы трассировки и профилирования ядра: те базовые механизмы, с помощью которых вы сможете собирать какие-то показания из ядра, а затем анализировать их.
          Читать дальше →
        • Когда не помогает ЦАП. Цифровые потенциометры в деталях. Часть первая



            Прогресс не обошёл стороной не только велосипед. Сегодня традиционные переменные и подстроечные резисторы в очень многих приложениях уступают место цифровым сопротивлениям. В англоязычных источниках их называют digital potentiometer, RDAC или digiPOT. Область применения этих устройств гораздо шире регулировки уровня звукового сигнала. В частности они приходят на помощь в очень многих случаях, когда требуется изменять параметры обратной связи, что трудно реализовать с помощью традиционных ЦАП.

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

            Изначально я хотел написать краткую статью, но в результате углубленного изучения темы материал с трудом уместился в две части. Сегодня я постараюсь рассказать об архитектуре данных устройств, их возможностях, ограничениях использования и тенденциях развития. В заключении вскользь затрону тему областей применения, поскольку конкретные примеры практической реализации схем на их основе будут рассмотрены во второй части. МНОГО примеров!

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

            P.S.Так получилось, что уже вышла ещё одна статья из этой серии и в ней пример всего один, зато подробно разобранный. Для остальных обещанных примеров придётся писать третью.
            Читать дальше →
          • Как я нашел лучший в мире язык программирования. Часть Йо (2.72)

              Поскольку после второй части у меня случился перерыв на работу, я поимел возможность получить некоторый фидбек, который я хоть и еще не обработал, все же заставляет меня написать внеплановую часть Йо, которая мне кажется важной для дальнейшего разговора. С тем же перерывом на работу связана задержка третьей части, прошу меня извинить тех, кто действительно ждал и пока не дождался.
              Читать дальше →
            • openEMS — электромагнитный симулятор с открытым исходным кодом

                Этот пост рассказывает об электромагнитном симуляторе с открытым исходным кодом openEMS. Автор проекта — Thorsten Liebig (Германия, университет Дуйсбург-Эссен). Сайт проекта — openems.de. Репозиторий на Гитхабе: github.com/thliebig/openEMS-Project. Симулятор является кроссплатформенным и работает под Linux и Windows.

                Когда я впервые увидел этот проект, то не поверил, что такое может быть создано. Создание электромагнитного симулятора представляет собой достаточно-трудоемкую задачу, и раньше я думал, что такое не под силу open-source сообществу. Тем не менее openEMS опровергает это представление. Это полноценный электромагнитный симулятор. Конечно, он не дотягивает до уровня HFSS, но это уже весьма достойный результат.

                Здесь изображен пример использования симулятора. Это диаграмма направленности рупорной антенны на частоту 15 ГГц, полученная при помощи openEMS.


                Читать дальше →
              • Сделай сам: MSc Computer Science на уровне топ американских университетов из дома

                  Вступление


                  Давно хотел написать статью про образование в Computer Science, но руки не доходили. Решил все-таки это наконец сделать. Итак, о чем пойдет речь? Речь о том, что из себя представляет диплом MSc Computer Science топовых университетов США (во всех подробностях, включая основные курсы, книги и проекты) и как ему соответствовать.

                  Почему именно MSc? Это — некая развилка: с одной стороны после MSc — вы уже готовый к жизни инженер (да, речь идет о инженерной подготовке, как мне кажется это самое больное место в нашей системе образования), с другой — можно спокойно идти по пути PhD. Как известно, в PhD программу можно попасть и не особо умея программировать — особенно это касается теоретического Computer Science. С другой стороны найти работу программиста тоже дело не очень сложное, и часто не требует мощного образования. Но достигнув уровня MSc — вы получаете возможность разбираться как во всех новый идеях в Computer Science, так и возможность их воплотить в практику. То есть с одной стороны круто разобраться в каком-нибудь deep learning и сделать в нем что-то новое, а также взять и написать свою операционную систему (кто так сделал?). Причем вы не зажаты в рамки узкой специализации (если конечно продолжаете учиться). То есть вы теперь — универсальный солдат, готовый на все.

                  Надеюсь что эта статья будет полезна:
                  1. Студентам, которые хотят соответствовать высоким стандартам топ вузов США, или собирающиеся туда в аспирантуру по Computer Science
                  2. Профессионалам, которые хотят закрыть «дыры» и пробелы
                  3. Может кто-то из преподавателей возьмет на заметку для своих курсов.
                  4. Студентам, аспирантам американских вузов — хотелось бы тоже получить фидбэк, особенно касается последних трендов в образовании

                  Что же здесь будет написано? Минимум философии и общих мыслей: конкретная программа undergraduate и graduate курсов, конечно из дисциплин наиболее мне близких. Все курсы были лично прочувствованы на собственной шкуре, по этому и пишу. (Я пытался записаться на все интересные курсы, которые были, но мой основной упор — системное программирование, базы данных и искусственный интеллект. Отсюда конечно некий bias, но пытаюсь предложить более-менее универсальную программу).
                  Читать дальше →
                • Управление «умной» BLE лампой без смартфона

                  Прошлым летом, когда началась неразбериха с рублём, я решил купить себе что-нибудь забавное, чего в нормальных ценовых условиях никогда не купил бы. Выбор пал на умную управляемую светодиодную лампу "Luminous BT Smart Bulb", про которую, собственно, прочитал до этого здесь же. По-хорошему, для начала нужно было бы купить смартфон с BLE, но на тот момент я не беспокоился о таких мелочах. Лампа приехала, мы немного поигрались с ней на работе, она оказалась довольно прикольной. Но я не мог управлять ею дома, поэтому она отправилась на полку. Один раз, правда, я одолжил лампу коллеге на день рождения маленького ребёнка.


                  Так продолжалось пока я случайно не узнал, что на моём ноутбуке как раз установлен чип Bluetooth 4.0. Я решил использовать этот факт как-нибудь для управления лампочкой. Программа-минимум — научиться включать/выключать лампочку, устанавливать произвольный цвет или выбирать один из заданных режимов. Что из этого вышло — читайте под катом.


                  Читать дальше →
                  • +15
                  • 14.2k
                  • 7
                • Немного об основах схемотехники светодиодных ламп

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

                    image

                    Читать дальше →
                  • Многозадачность в ядре Linux: workqueue

                      Продолжаем тему многопоточности в ядре Linux. В прошлый раз я рассказывала про прерывания, их обработку и tasklet’ы, и так как изначально предполагалось, что это будет одна статья, в своем рассказе о workqueue я буду ссылаться на tasklet’ы, считая, что читатель уже с ними знаком.
                      Как и в прошлый раз, я постараюсь сделать мой рассказ максимально подробным и детальным.

                      Статьи цикла:
                      1. Многозадачность в ядре Linux: прерывания и tasklet’ы
                      2. Многозадачность в ядре Linux: workqueue
                      3. Protothread и кооперативная многозадачность


                      Читать дальше →
                      • +68
                      • 30.1k
                      • 4
                    • Исследование устройства WiFi Led Controller

                      Сегодня к осмотру представлено устройство, созданное для того, чтобы сделать нашу жизнь проще.
                      Данное устройство предназначено для управление освещением. При подключении RGB диодов можно управлять цветом и яркостью, а при подключении одноцветных диодных светильников только яркостью. В последнем случае 3 цветовых канала могут быть использованы раздельно. Кроме этого у устройства существует несколько режимов которые задают либо постоянное освещение, либо мигание. Питание устройства от 5 до 24 вольт. Это же напряжение устройство выдает в каналы. Технические характеристики таковы:
                      Max нагрузка: 288 Вт
                      Удаленное управление: 50 М
                      Модель: WIFI100 wifi controller

                      image

                      Однако, при включени моя жизнь проще не стала. Даже наоборот, усложнилась. Причиной этого стало приложение MagicColor v1.0, вошедшее в комплект поставки. Несмотря на то, что эта программа работала на телефонах HTC и LG, на моих устройствах Samsung Galaxy Note 10.1 и Galaxy Nexus она не заработала, что заставило ее немного препарировать, а вместе с ней и сам чудный девайс.
                      Читать дальше →
                      • +6
                      • 21.2k
                      • 7
                    • Как я проект в OpenSCADA сделал

                      image

                      Речь в статье пойдет о той самой OpenSCADA, которая под Linux и с oscada.org.

                      Зачем:
                      • потому что SCADA на самом деле достойна внимания и популяризации;
                      • в некоторых малобюджетных или маленьких проектах просто безальтернативная;
                      • судя по статьям про АСУТП на хабре, многим читателям АСУТП представляется черной магией, недо-IT или чем-то похожим (ломают несчастный modbus, мучают WinCC, которая и так еле тарахтит… Люди читают и охают: «Как так можно…. дырявое ПО в промышленности», но никого не удивляет ломание Win95 и 6го ослика. Поломали бы LON шифрованный, OPC, OPC_UA…… А WinCC сама расшаривает папку с проектом с именем вида WinCC_Project_xxxxxx при первом открытии + это вы еще не видели как ее плагин к Excel может намертво винду подвесить при неаккуратной вставке ячеек чуть больше, чем он может за раз осилить!) – добавим ликбеза;
                      Читать дальше →
                    • Свой проект на Кикстартере: практическое руководство



                        Мы – российская студия, более двенадцати лет занимающаяся разработкой компьютерных игр. Нами были созданы «Мор. Утопия» (Pathologic), «Тургор» (Tension), «Тургор. Голос цвета» (The Void), «Эврика!» (Cargo! The Quest for Gravity) и «Тук-тук-тук» (Knock-Knock).

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

                        Несмотря на сомнения, первая кампания успешно завершилась в середине сентября 2012 года. Мы собрали сорок одну тысячу долларов при заявленных тридцати. На полученные деньги была разработана и доставлена вкладчикам игра «Тук-тук-тук» (Knock-knock).

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

                        Поэтому мы решили провести еще одну кампанию. Мы собираемся сделать графически, технологически и геймплейно более совершенный ремейк нашей первой игры «Мор. Утопия» (Pathologic).

                        Не так давно сборы достигли заявленной суммы в двести пятьдесят тысяч долларов. Это один из крупнейших результатов в постсоветском пространстве, и нам бы хотелось поделиться своими наблюдениями за течением двух кампаний, которые, возможно, будут полезны другим командам, решившимся выйти на Кикстартер или другую краудфандинговую площадку.
                        Читать дальше →
                      • Kdump — диагностика и анализ причин сбоев ядра

                        • Tutorial
                        Kdump

                        Хотя в современных Linux-системах ядро отличается достаточно высоким уровнем стабильности, вероятность серьезных системных ошибок, тем не менее, имеется всегда. Когда происходит неисправимая ошибка, имеет место состояние, называемое паникой ядра (kernel panic): стандартный обработчик выводит на экран информацию, которая должна помочь в устранении неисправности, и входит в бесконечный цикл.
                        Читать дальше →
                      • Wi-Fi сети: проникновение и защита. 2) Kali. Скрытие SSID. MAC-фильтрация. WPS



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

                          В этой статье мы поговорим о том, как можно обнаружить «скрытые» сети, обойти MAC-фильтрацию на точке доступа и почему же WPS (QSS в терминологии TP-LINK) — это «бэкдор в каждом доме». А перед этим разберёмся, как работает беспроводной адаптер и антенна и как Kali Linux (ex. Backtrack) поможет нам в тестах на проникновение в беспроводные сети.

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

                          Перед прочтением настоятельно советую ознакомиться с матчастью — она короткая, но на её основе базируются все наши дальнейшие действия и выводы.

                          Оглавление:
                          1) Матчасть
                          2) Kali. Скрытие SSID. MAC-фильтрация. WPS
                          3) WPA. OpenCL/CUDA. Статистика подбора
                          Много текста. Очень.