LINUX.ORG.RU

Избранные сообщения drsm

Вышел NoRT CNC Control

Новости — Open Source
Группа Open Source

Сегодня, после длительной разработки, вышла первая стабильная версия системы управления фрезерным станком с ЧПУ.

Ключевой особенностью, отличающей его от многих других систем, является разделение исполняемого кода на 2 части - часть, требующая realtime, и часть, не требующая realtime. Причем часть, работающая в realtime, исполняется на отдельном микроконтроллере. Это позволяет, с одной стороны, отказаться от необходимости установки realtime ядра на компьютер, а с другой - позволяет обойти ограничения памяти, которые возникают, если весь код находится в микроконтроллере.

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

( читать дальше... )

 

cvs-255
()

nDPI как замена l7filter [продолжение2]

Форум — Admin

Продолжение предыдущей темы

Оригинальный рецепт для тех кто умеет самостоятельно прикладывать патчи и собирать ядра/софт.

Отдельно и более подробно для Ubuntu и CentOS от as_lan

В понятиях netfilter оно умеет проверять пакеты на принадлежность к протоколам (match) и ставить на пакеты метки/классы (target) по аналогии с MARK & CLASSIFY. Есть поддержка NET_NS и IPv6.

Исходники теперь только на Github!

Ветка netfilter основана на nDPI-1.7.

От основной ветки на github/ntop/nDPI/1.7-stable отличается меньшим потреблением памяти и «улучшением» определения bittorrent.

Ветка netfilter2 основана на nDPI-2.0

Ветка netfilter-2.2 основана на nDPI-2.3(dev)

Ветка netfilter-2.6 основана на nDPI-2.6

Ветка flow основана на nDPI-2.6 nDPI-2.8

Продолжается тестирование ветки.

информации о соединении:

  • время создания коннекта и время последнего обновления.
  • протокол L3 и L4
  • адрес источника ipv4/6
  • порт источника (если есть)
  • адрес назначение ipv4/6
  • порт назначения (если есть)
  • счетчики пакетов и байтов в обе стороны
  • интерфейсы
  • обнаруженный протокол (nDPI)
  • имя сертификата SSL
  • имя хоста (для http,dns)
  • информация о nat ipv4 (если применялся)

В некоторых случаях можно будет отказаться от ipt_NETFLOW.

 , ,

vel
()

Хороших задачников по программированию тред

Форум — Development

Разыскиваю задачники по программированию, как отечественных авторов, так и заграничных. Нужны как на стандартные структуры данных и алгоритмы, так и с нетривиальными формулировками. Пока что нашёл книги Пратта, Вирта и Ченя.

Спасибо всем откликнувшимся.

 ,

LongLiveUbuntu
()

Навеяно предыдущим топиком: посоветуйте юзер-френдли онлайн-кинотеатр с плагином для XBMC/Kodi

Форум — Multimedia

Давно хотел спросить. А посоветуйте юзер-френдли онлайн-кинотеатр, по возможности доступный в виде плагина для Kodi.

Требования:

  • Юзер-френдли — рабочий поиск, правильные метаданные и т. д. Что я имею в виду: не хочу ситуаций вида «вот ты вводишь название и год, получаешь три одинаково подписанных результата поиска, но на самом деле в первом есть только 720p на украинском, во втором только 4K на русском с закадровым переводом от студии Рога и Копыта, в третьем вырезаны сцены, а то, что ты на самом деле ищешь, в выдаче по этому запросу отсутствует, потому что там не проставлен год», типичных для всевозможных торрент-трекеров.
  • Хороший охват контента: чтобы я мог с вероятностью >90% найти там любой достаточно известный фильм, российский или нет, старый или новый (в разумных пределах).
  • Также нужна возможность выбора между переводом/дубляжом (если он существует) и оригинальной аудиодорожкой. То же самое для субтитров.

Другими словами, нужен вариант без пердолинга (совсем), который было бы не стыдно накатить на домашний кинотеатр родителям. DRM — ок. Главное — юзабилити.

 , , ,

intelfx
()

Система не видит wifi-адаптер, если его не перевоткнуть. Как исправить?

Форум — Linux-hardware

Есть RPi Zero, Raspbian на ней и паршивый wifi-адаптер, который не хочет отображаться через iw dev, пока его не выдернуть и не воткнуть обратно. Нужно либо автоматизировать перевтыкание при загрузке системы, либо вовсе исправить проблему с обнаружением. Нужно, чтобы при включении RPi в сеть она станет доступна через ssh автоматически, т.к. клавиатура и монитор скоро станут мне недоступны по внешним причинам. Какие будут предложения? Сразу предупреждаю, что в линуксах сравнительно недавно, так что тапками не бейтесь.

 

tsmx
()

Метод QTextEdit::insertHtml() съедает ведущие пробелы. Как обойти?

Форум — Development

Решаю сейчас в своем WYSIWYG-редакторе следующую задачу:


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

Задача:
Написать функцию (метод), очищающий форматирование выделенного текста в виджете-наследнике QTextEdit.

https://github.com/xintrea/mytetra_dev/issues/5

То есть, нужно изменить только начертание символов. Ссылки должны остаться ссылками. Картинки должны остаться картинками. Таблицы должны остаться таблицами. Изменяется только начертание.

При кажущейся простоте, подводных камней у этой задачи много. Сейчас я почти достиг цели - написал жуткий magick-код, который берет HTML-код выделенного фрагмета текста, обрабатывает его (убирает лишнее, подменяет теги, компенсирует многочисленные закидоны Qt-овского HTML-движка), и вставляет его обратно.

Такая методика наконец-таки заработала чисто, за одним маленьким исключением: при вставке HTML-кода через метод insertHtml(), съедаются ведущие пробелы в тексте. То есть, если в тексте встретится кусок исходного кода, то indentation у него слетит.

Вот пример HTML-кода до вставки и что реально вставилось:

Вставляли:

<p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px;"><span style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px;">    QMessageBox msgBox;</span></p>
<p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px;"><span style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px;">    msgBox.setText(welcomeText);</span></p>
<p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px;"><span style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px;">    msgBox.setInformativeText(infoText);</span></p>


Получили:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
</style></head><body>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><!--StartFragment-->QMessageBox msgBox;</p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">msgBox.setText(welcomeText);</p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">msgBox.setInformativeText(infoText);<!--EndFragment--></p></body></html>


Видно, что ведущие четыре пробела в каждой строчке исчезли.

Код, который это делает:

...
  qDebug() << htmlCode;

  // Вставка очищенного фрагмента
  textArea->textCursor().insertHtml(htmlCode);

  // Выделение только что вставленного фрагмента (это тоже магия)
  cursor.movePosition(QTextCursor::End);
  int afterClearLen=cursor.position();
  int calculateEndCursorPos=startCursorPos + (afterClearLen - afterRemoveSelectionLen);
  cursor.setPosition(startCursorPos, QTextCursor::MoveAnchor);
  cursor.setPosition(calculateEndCursorPos, QTextCursor::KeepAnchor);
  textArea->setTextCursor(cursor);

  qDebug() << textArea->textCursor().selection().toHtml();
...


Вопрос: как можно обойти эту особенность Qt, чтобы в данном случае все пробелы сохранялись?

Я уже готов выбрать редко используемый UTF-8 символ (какой-нибудь иероглиф), заменить им все пробелы во вставляемом HTML, а потом заменить в документе эти символы на пробелы. Или не иероглиф, а нигде-никогда-не-встречаемую-строку. Но это же все неправильно (вдруг иероглиф кто-то использует, или так получится, что уникальная строка таки встретится). А хотелось бы правильно.

А как правильно?


Последний актуальный коммит: https://github.com/xintrea/mytetra_dev/commit/11bde04320971b28420f1fba217ad0e...

 ,

Xintrea
()