Это раньше нужно было писать на чистом C со вставками на Ассемблере, чтобы программы выполнялись быстро и точно, потребляли как можно меньше оперативной памяти и занимали немного места на диске. Сейчас мощности процессоров, объёмы памяти и другие параметры компьютеров таковы, что можно ради "Hello, world!" запускать виртуальную машину на виртуальной...
В Сети множество заметок о том, как заставить Qt компилировать приложения под Android. Однако, я столкнулся с некоторыми проблемами при использовании этих рецептов, и теперь хочу опубликовать своё решение указанных проблем в этой короткой заметке.
Собственно, чтобы Qt научился создавать приложения для Android, нам потребуется только четыре компонента: сам Qt,...
Я уже писал, как настроить и собрать прошивку на основе ОС OpenWRT для роутера GL-MT300N-V2. Почитать эти заметки можно
здесь и
здесь. Теперь я решил построить свою виртуальную частную сеть на основе этого роутера. Структура этой сети предполагается такой. Есть роутер с двумя портами: WAN и LAN.
Понадобилось мне как-то нанести план дачного посёлка с номерами домов на карту. Геодезисты дали топосъёмку. Ну, как топосъёмку... Просто сетку участков, выгруженную в графический файл *.bmp - вот такую примерно: (изображение) Эту сетку мне и требовалось наложить на карту. Задача показалась мне интересной, а решение - нетривиальным, поэтому решил опубликовать небольшую заметку о...
Так сложилось, что основным языком, применяемым в проектировании систем машинного обучения, стал Python. На Python написаны многие библиотеки машинного обучения, например,
scikit-learn. Однако, для некоторых приложений уместнее использовать другие языки, и для них, конечно, есть свои библиотеки. Так, было бы интересно применить технологии машинного обучения на веб-сайте, а веб-сайты часто пишут на PHP.
Итак, будем писать свою программу на Си под OpenWRT. Отличий от обычного программирования под UNIX или Linux здесь, в общем-то, нет, за одним исключением: процесс компиляции программы осуществляется не на роутере, а на компьютере, в среде OpenWRT Buildroot. То есть, сначала нужно скомпилировать toolchain и прошивку, а потом уже можно собирать свою программу.
Есть такой замечательный DIY-роутер GL-MT300N-V2 от GL-iNet. Он интересен тем, что позволяет радиолюбителю получить доступ к портам ввода-вывода GPIO (они выведены на плату) и совместим с роутерной ОС OpenWRT. Плюс, имеет всего один LAN-порт. Смекаете? Да, его можно и нужно использовать для удалённого управления периферией по Ethernet и создания VPN-туннелей.
Механизм расширенных атрибутов во FreeBSD (extattr) позволяет управлять дополнительной информацией, связанной с файлом или директорией. При помощи семейства команд setextattr, getextattr и rmextattr можно редактировать расширенные атрибуты файла, принадлежащие к двум пространствам имён: системному и пользовательскому. Редактирование пользовательских атрибутов может пригодиться для классификации файла: добавления описания, ключевых слов и других метаданных.
Путь к открываемому файлу передаётся в качестве первого параметра при запуске соответствующей программы. Кроме имени файла в открываемую программу можно передать, например, номер документа, который должен открыться при старте программы (если документы берутся из, скажем, базы данных). В программе нам нужно просто получить передаваемый ей параметр и должным образом обработать его.
Пример получения списка всех доступных COM-портов.
Список всех COM-портов в системе
QT += serialport #В pro-файле
-----
#include <QSerialPort>
#include <QSerialPortInfo>
...
foreach (const QSerialPortInfo &info, QSerialPortInfo::availablePorts()){
ui->comboBox->addItem(info.portName(),info.portName());
}