• Как я, в итоге, написал новую RTOS, протестированную и стабильную

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

      image


      Процессоры, используемые в наших продуктах — это, в основном, 16- и 32-битные микроконтроллеры Microchip, имеющие RAM от 8 до 32 кБ, и ROM от 128 до 512 кБ, без MMU. Иногда, для самых простых устройств, используются еще более скромные 8-битные чипы.

      Очевидно, что у нас нет (разумных) шансов использовать ядро Linux. Так что нам нужна какая-нибудь RTOS (Real-Time Operating System). Находятся даже люди, которые не используют никаких ОС в микроконтроллерах, но я не считаю это хорошей практикой: если железо позволяет мне использовать ОС, я ее использую.

      Несколько лет назад, когда мы переходили с 8-битников на более мощные 16-битные микроконтроллеры, мои коллеги, которые были гораздо более опытными, чем я, рекомендовали вытесняющюю RTOS TNKernel. Так что это — та ОС, которую я использовал в разных проектах в течение пары лет.

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

        Начало


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

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

          Конечно, до коммунального рая нам пока далеко, но позитивные сдвиги все-же намечаются. Сегодня я расскажу о том, как электронными системами управления отоплением в моем многоквартирном доме было сэкономлено 124 тысячи рублей кровных денег жильцов в отопительном сезоне 2013-2014 года. Как только это случилось — все стали довольны, но по началу эта история была практически детективной.
          Как это было?
        • Фильтр Калмана — Введение

            Фильтр Калмана — это, наверное, самый популярный алгоритм фильтрации, используемый во многих областях науки и техники. Благодаря своей простоте и эффективности его можно встретить в GPS-приемниках, обработчиках показаний датчиков, при реализации систем управления и т.д.

            Про фильтр Калмана в интернете есть очень много статей и книг (в основном на английском), но у этих статей довольно большой порог вхождения, остается много туманных мест, хотя на самом деле это очень ясный и прозрачный алгоритм. Я попробую рассказать о нем простым языком, с постепенным нарастанием сложности.
            Читать дальше →
          • Wi-Fi термометр на ESP8266 + DS18B20 всего за 4$



            В последнее время всё большую популярность набирают Wi-Fi модули на основе ESP8266. Я тоже решил приобщиться к прекрасному, задумав реализовать термометр, отдающий данные по HTTP. Итак, поехали.
            Читать дальше →
          • ASN.1 простыми словами (кодирование типа REAL)

            Введение для Хабра


            Приведённый ниже текст является на самом деле первыми двумя главами моей статьи "ASN.1 простыми словами". Так как сама статья достаточно большая по меркам Хабра я решил сначала проверить являются ли знания по кодированию простых типов востребованными на этом ресурсе. В случае положительной реакции аудитории я продолжу публикацию всех остальных глав.


            Читать дальше →
          • 300 потрясающих бесплатных сервисов

            • Перевод


            Автор оригинальной статьи Ali Mese добавил ещё 100 новых бесплатных сервисов. Все 400 потрясающих сервисов доступны здесь. И еще подборку +500 инструментов от 10 марта 2017 г. смотрите здесь.



            A. Бесплатные Веб-Сайты + Логотипы + Хостинг + Выставление Счета

            • HTML5 UP: Адаптивные шаблоны HTML5 и CSS3.
            • Bootswatch: Бесплатные темы для Bootstrap.
            • Templated: Коллекция 845 бесплатных шаблонов CSS и HTML5.
            • Wordpress.org | Wordpress.com: Бесплатное создание веб-сайта.
            • Strikingly.com Domain: Конструктор веб-сайтов.
            • Logaster: Онлайн генератор логотипов и элементов фирменного стиля (new).
            • Withoomph: Мгновенное создание логотипов (англ.).
            • Hipster Logo Generator: Генератор хипстерских логотипов.
            • Squarespace Free Logo: Можно скачать бесплатную версию в маленьком разрешении.
            • Invoice to me: Бесплатный генератор счета.
            • Free Invoice Generator: Альтернативный бесплатный генератор счета.
            • Slimvoice: Невероятно простой счет.

            Читать дальше →
          • Мониторинг сетевого оборудования Cisco в системе Observium



            Observium — это система, ориентированная на сбор и анализ информации, позволяющая выявлять глубинные проблемы в работе сети. Если перед вами стоит задача провести аудит сетевого оборудования, составить схему и IP план незнакомой сети — Observium один из лучших бесплатных инструментов для этого. В статье содержится обзор основных возможностей системы — в первую очередь применительно к оборудованию Cisco, а также несколько реальных примеров выявления проблем с сетью заказчика при помощи Observium (много картинок).
            Читать дальше →
          • Запуск VMWare образов на реальном железе и другие нюансы Zalman VE-300

            Предисловие


            Был обычный вечер. Заняться было нечем, а скоротать время до сна каким-то образом надо было.
            Решил я почистить свой внешний HDD от хлама, а заодно и проверить, есть ли новая прошивка на любимый карман Zalman VE-300. Зайдя на сайт Zalman, я как раз такую и обнаружил. Пока прошивка скачивалась через невероятно медленный EDGE, я просматривал changelog. Мой взор привлекла такая строчка:
            Support VHD of MS / VMDK of VMWare which is virtual Hard disk file (Still not support for Dynamic)
            Читать дальше →
          • Живительная флешка

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

            Я не собираюсь описывать процесс установки GRUB4DOS, так как это не изменилось и в сети полно инструкций. Просто скажу, что GRUB4DOS просто должен быть установлен на флешку. Также я НЕ собираюсь выкладывать здесь образы систем (все имеется на торрентах), но, тем не менее, выложу полное меню из LST-файлов со структурой папок. Также необходимо учесть, что все образы ISO необходимо дефрагментировать.


            Читать дальше →
          • «Never say never» или Работаем с таймзонами правильно

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

              TL;DR: Работа с таймзонами — это боль и унижение. Никогда не работайте с таймзонами!

              Итак, все кругом твердят вам, что при получении времени от пользователя нужно сразу же переводить его в UTC, работать со временем нужно только в UTC и хранить время тоже нужно строго в UTC. Совет, на первый взгляд, выглядит разумным, и следование ему делает вашу жизнь проще… Если только ваша программа не предполагает сложной работы с датами. Записать в базу данных дату и время регистрации пользователя на сайте? Сохранить время отправки сообщения или дату создания заказа в интернет-магазине? Вывести сообщение в лог с указанием даты-времени? Используйте UTC и всё будет в порядке, можете даже не читать эту статью дальше. Любое текущее время можно совершенно спокойно конвертировать в UTC и забыть о проблемах. Но что, если мы хотим работать с временем в будущем? Или в прошлом? Например, если мы пишем сервис календаря, или сервис для отложенной отправки сообщений?

              Читать дальше →
            • Видео с МКС в HD качестве в режиме реального времени: High Definition Earth Viewing



                Не знаю, почему, но новость о том, что с МКС начали трансляцию в HD-качестве, прошла как-то мимо Хабра. А ведь это — новый эксперимент, который стартовал еще 30 апреля этого года.

                В рамках проекта установлено несколько весьма качественных HD видеокамер, направленных на Землю. Камеры, насколько можно понять, находятся снаружи МКС, на обшивке, но заключены в корпус с контролируемым давлением, и температурой.

                Читать дальше →
              • C# + WPF + сторонние сборки -> один .exe-шник

                  Бывает приходится разработать маленькое приложение на C# и WPF, однако в следствие использования сторонних сборок(например SharpZipLib, Unity) — получается так что на выходе у нас кроме нашего маленького .exe-шника получается ещё и куча .dll-ок, а нам нужно чтобы был именно один .exe-шник.
                  Читать дальше →
                • Рекомендации для начала карьерного роста

                    По мотивам недавно прошедшей конференции в ЯрГУ 25 марта, на которую пришло уж очень немного народу, решил я написать небольшой мотивирующий пост для студентов и начинающих программистов/IT специалистов. Мою презентацию с доклада можно посмотреть на skydrive. Здесь же я постараюсь вкратце, на сколько это возможно, осветить этот доклад.

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

                    Ну и до нас не раз еще поднимали эту тему. Рекомендую читать и заряжаться всеми этими топиками.
                    Читать дальше →
                  • Гаджеты для бега: от простого к очень простому

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

                      Исходные данные: один условный «айтишник», перешагнувший рубеж 30 лет, и 90 кг.
                      Необходимо: заинтересовать техногика простыми тренировками, помогающими сохранить физическую форму, сбросить вес и укрепить сердце.


                      А теперь встали и пошли на тренировку!
                    • Жизнь разработчика (в картинках)

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

                        Когда я показываю босу, что окончательно пофиксил баг



                        Когда проджект-менеджер входит в офис



                        Читать дальше →
                      • Изменение часовых поясов и перевод стрелок 2014

                        • Tutorial
                        Несколько лет назад я у себя в блоге публиковал статью об отмене перехода на зимнее время, которая в это время года пользуется популярностью. В статье шла речь о том, каким образом можно вручную изменить свой часовой пояс для компьютера, находящегося в рабочей группе или в домене Active Directory. Иначе говоря, там я описывал параметры системного реестра, позволяющие вносить изменения в эту функциональную возможность операционных систем Windows.

                        В этом году, согласно федеральному закону Российской Федерации от 21 июля 2014 г. N 248-ФЗ, в закон об истечении времени под номером N 107-ФЗ от 3-го июня 2011 года, были внесены некоторые изменения (о самих изменениях немного ниже), в связи с которыми 26 октября 2014 года осуществляется перевод часов и устанавливаются соответствующие часовые зоны и значения времени.

                        Следовательно, корпорация Microsoft не заставила себя ждать и 23-го сентября этого года выпустила очередной патч, предназначенный для учета текущих изменений в порядке исчисления времени, благодаря которому в операционные системы Windows будут внесены соответствующие правки. Этот патч (под номером KB2998527) можно проинсталлировать практически на все актуальные операционные системы Windows.

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

                        Начнем мы с
                        Читать дальше →
                      • Сериализация объектов Qt

                          Здесь меня будет интересовать как сериализовать объект Qt, передать его по сети и поддерживать между оригиналом и копией связь синхронизирующую состояние копии. Использовался Qt 4.8.
                          Читать дальше →
                          • +22
                          • 16,3k
                          • 4
                        • Биохакинг сна: подтверждённые наукой советы

                          • Перевод


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