Казалось бы, каждый, кто осваивает ардуино, первым делом конструирует или повторяет прибор для измерения температуры и(или) прочих параметров окружающей среды. Только большинство подобных конструкций, к сожалению, мало применимы в домашнем хозяйстве — в качестве тренировки сгодится, а пользы нет. Попробуем исправить эту недоработку. В статье расскажу о создании комплекса для измерения и хранения любых данных на примере сбора показаний датчиков температуры, влажности воздуха и атмосферного давления. Начну с требований к прибору и описания протокола обмена, закончу web-службой для получения данных из БД. Подробных выкладок и пошаговых руководств не будет, но будет немного теории и много кода.
Рубрика «C» - 75
Система сбора измерений на примере метеостанции
2016-05-30 в 10:14, admin, рубрики: arduino, C, python, sqlite, программирование микроконтроллеровТак вы думаете, что знаете Const?
2016-05-28 в 13:56, admin, рубрики: C, const, квалификатор типа, ПрограммированиеОт переводчика:
Предлагаю вам перевод поста из блога Мэтта Стэнклиффа (Matt Stancliff), автора нашумевшей на хабре статьи Советы о том, как писать на С в 2016 году.
Здесь Мэтт делится знаниями о квалификаторе типа const
. Несмотря на вызывающий заголовок, возможно, многое из того что здесь описывается будет вам известно, но, надеюсь, и что-нибудь новое тоже найдется.
Приятного чтения.
Думаете, что вы знаете все правила использования const
для С? Подумайте еще раз.
Читать полностью »
Вызываем Java код из Love2D
2016-05-21 в 9:04, admin, рубрики: C, game development, Gamedev, java, jni, love2d, Lua, luajit, разработка игр
Всем доброго времени суток!
Возникла потребность встроить рекламу в свою игру на Love2D. Решил показывать банер после выиграша игрока и тут возникли сложности: банер вызывается Java кодом приложения, а выиграш определяется в Lua коде. Свзязывает их код на Си, туториалов, как добавлять свои методы в движок не было, и пришлось копаться в коде самостоятельно. Репозиторий Love2D для Android лежит вот тут.
RS232 устройство 3-в-1 для домашнего Linux сервера: Часть 2 (Серверная)
2016-05-19 в 12:53, admin, рубрики: C, daemon, driver, linux, open source, true rng, uart, watchdog, демон, Драйвер, Программирование, программирование микроконтроллеров, Разработка под Linux, случайные числа, сторожевой таймерRS232 устройство 3-в-1 для домашнего Linux сервера: Часть 2 (Серверная)
- Часть 1 (Аппаратная)
- Часть 2 (Серверная)
Для устранения некоторых недостатков сервера, собранного из бытовых комплектующих, разработал недавно устройство, которым хочу поделиться. Его подробное описание, со схемой и исходными кодами, доступно на Geektimes в первой части.
Устройство получило наименование WRN от составляющих его подсистем:
- Аппаратный сторожевой таймер, работающий с watchdog демоном;
- Генератор истинно случайных чисел;
- Радиомодуль nRF24L01+ для сбора данных с автономных датчиков.
В этой части статьи будет рассмотрено как взаимодействовать с последовательным портом из пространства ядра (kernel space) и как организовать работу с несколькими подсистемами устройства через RS232 в Linux.
Microsoft избавится от телеметрии в Visual C++ в Update 3
2016-05-11 в 8:10, admin, рубрики: C, c++, visual c++, Visual Studio, информационная безопасность, но ненадолго, телеметрия, шапочки из фольги отменяются
Месяц назад Евгений Гречников grechnik опубликовал пост «Стандартная библиотека Visual Studio 2015 и телеметрия», в котором рассказал об интересной находке: оказалось, что в любом бинарнике, скомпилированном VS2015 из программы на C или C++, есть код, который может писать логи — и выглядело это всё слегка подозрительно, особенно в силу отсутствия исходников telemetry.cpp.
Три дня назад этот вопрос был снова поднят на Reddit, где время от времени в комментариях появляются разработчики Visual Studio — и вот сегодня общественности наконец-то удалось получить вполне себе официальный ответ от представителя Microsoft.
Самое важное: телеметрия будет убрана из статических библиотек в обновлении Update 3.
Читать полностью »
Краткий курс от ESET по проектированию малвари
2016-05-04 в 7:03, admin, рубрики: C, c++, ESET, ess, информационная безопасность, Программирование Хочешь верь, а хочешь — нет, но дело было так. В одной из контор, куда я был приглашен в качестве консультанта, уже давно заняты поисками «вменяемого» антивируса (уже предвижу на некоторых лицах ядовитые улыбки), а потому решились они снять пробы с ESET Smart Security. И вроде бы все ничего. До вчерашнего дня.
Читать полностью »
Проверка PHP 7
2016-04-28 в 10:41, admin, рубрики: C, open source, php, pvs-studio, static code analysis, Блог компании PVS-Studio, Си, статический анализ кода
Повторная проверка проектов нередко бывает весьма интересной. Она позволяет узнать, какие новые ошибки были допущены в ходе разработке приложения, а какие ошибки уже были исправлены. Раньше мой коллега уже писал о проверке PHP. С выходом новой версии (PHP7), я решил ещё раз проверить исходный код интерпретатора и нашёл кое-что интересное.
Читать полностью »
Проекты студентов в рамках Google Summer of Code
2016-04-25 в 7:05, admin, рубрики: C, kolibrin, kolibrios, open source, Блог компании KolibriOS Project Team, колибри, Программирование
22 апреля объявлены результаты отбора студентов в рамках Google Summer of Code. Этому предшествовали 4 напряженные недели, во время которых менторы на собственной шкуре ознакомились с парадоксом Фредкина (чем больше похожи друг на друга два объекта, тем труднее сделать выбор между ними) и его предельным вариантом — парадоксом Буриданова осла. Это было связано со «взаимозаменяемостью» студентов, которые одинаково хорошо подходили на два разных сетевых проекта.
Читать полностью »
C-C++: как измерять процессорное время
2016-04-23 в 22:02, admin, рубрики: benchmark, C, c++, cpu time, время, кроссплатформенность, оптимизация кода, Программирование, производительность
КДПВ
От переводчика:
Большинство моих знакомых для измерения времени в разного вида бенчмарках в С++ используют chrono
или, в особо запущенных случаях, ctime
. Но для бенчмаркинга гораздо полезнее замерять процессорное время. Недавно я наткнулся на статью о кроссплатформенном замере процессорного времени и решил поделиться ею тут, возможно несколько увеличив качество местных бенчмарков.
P.S. Когда в статье написано "сегодня" или "сейчас", имеется ввиду "на момент выхода статьи", то есть, если я не ошибаюсь, март 2012. Ни я, ни автор не гарантируем, что это до сих пор так.
P.P.S. На момент публикации оригинал недоступен, но хранится в кэше Яндекса
Функции API, позволяющие получить процессорное время, использованное процессом, отличаются в разных операционных системах: Windows, Linux, OSX, BSD, Solaris, а также прочих UNIX-подобных ОС. Эта статья предоставляет кросс-платформенную функцию, получающую процессорное время процесса и объясняет, какие функции поддерживает каждая ОС.
Главный вопрос программирования, рефакторинга и всего такого
2016-04-15 в 12:34, admin, рубрики: C, c/c++, c++, code review, Блог компании PVS-Studio, обучение программированию, ошибки в коде, Программирование, Совершенный код, учимся на ошибках, хороший код
Я написал маленькую электронную книгу в которой рассматриваю вопросы как сделать код лучше. Книга ориентирована на Си/Си++ программистов, но будет интересна и разработчикам, использующих другие языки. Формат книги не подходит для моего любимого Хабра, но мне интересно получить обратную связь и обсудить мысли, изложенные в статье. Поэтому я решил разместить здесь только анонс, а с самой статьей можно познакомиться здесь. И приглашаю в комментарии для обсуждения.
Читать полностью »