И это всё МОЁ

А то какие-то непонятки. Вот например, по описанию на вики https://en.wikipedia.org/wiki/CPUID#EAX=1:_Processor_Info_and_Feature_Bits получил cpuid (с аргументом EAX = 1) своего процессора = 00870F10 - и это действительно Ryzen 9 3900X, вот даже в таблице есть http://instlatx64.atw.hu/

Но что-то я никак не могу распарсить 00870F10 согласно «Processor Version Information »

В двоичном виде


008710F10 = 0000 0000 1000 0111 0000 1111 0001 0000

биты 0-3 - Stepping ID == 0

биты 4-7 - Model == 1

биты 8-11 - Family ID == F

биты 12,13 Processor type == 0

биты 16-19 Extended model == 7

биты 20-27 Extended Family ID == 8

Теперь смотрим хотя бы cat /proc/info или информацию из разных других источников. Для моего процессора должно быть Family == 17h, модель 01, ревизия B1.

Ну откуда взялось 17h, почему 17h, а не F??? Оно же и по cat /proc/info == 17h (23) да и ревизия откуда взялась

Допустим порядок байт обратный, все равно не сходится ни при варианте две пары байтов переставить, ни все байты в обратном порядке.

wtf, чего не понимаю?








 ,








И это всё МОЁ

Доброй ночи, ЛОР.

Разбирая в своей программе структуры vCard и vMessage, я наткнулся на поля, которые помечены как quoted-printable, но на самом деле таковыми не являются.

RFC 2045 определяет Literal representation только для ASCII-символов, всё остальное оборачивается в HEX (что-то типа =D0=9E=D0=BB=D0=B5=D0=B3). Такой quoted-printable у меня обрабатывался давно и обрабатывался нормально.

Но вот я столкнулся с полями, где указано ENCODING=QUOTED-PRINTABLE, а дальше идёт чистый текст в UTF8. В шестнадцатиричку закодированы только переносы (=0A=0A).
Варианты действий:



  1. игнорировать такие поля как неправильные. Самый простой и самый плохой подход (пользователь потеряет данные);

  2. ввести искусственный хак — при обнаружении non-ASCII символов в «кодированном тексте» возвращать его как уже декодированный (возможно, заменив =0A на символы перевода строки);

  3. сделать полноценный парсер с учётом юникода.


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


По уму, если делать вариант 3, надо пробегаться по всем юникодным символам в ожидании знака =, и то, что с него начинается, уже трактовать как 16-ричку. Но при этом надо уметь для каждого UTF8-символа определять его длину, чтобы не принять за = какой-нибудь средний байт какого-нибудь 4-байтного символа. Алгоритм определения, в принципе, найти можно. Вопросов только 2: стоит ли этим заморачиваться для уже нестандартного случая, и нельзя ли сделать это как-нибудь проще?









 ,








И это всё МОЁ

Поставил debian 10, и понял, что максимальное разрешение которое я могу выбрать это 720x480
Монитор PHILIPS Black 223V5LSB2/62
Графическая оболочка lxde
Видеокарта ati radeon hd 2600 xt
Пробовал добавить новый режим, но каждый раз failed to get size of gamma









 , , , ,








И это всё МОЁ

Пиртуб как-то не взлетает, в том числе по причине замороченности.

А есть ли готовый пакет софта, чтобы поставил на VPS и в идеале забыл?

Чтобы функциональность примерно как у ютуба в плане просмотра в браузерах и комментирования. И в плане подготовки к просмотру было бы не очень сложно.

Смысл, что не только youtube-dl, но вообще слишком много правил развелось и для самих авторов роликов: например, смотрю ролик, где рассказывают про наипалово компьютерных мастеров и документ с их списком выполненного в подтверждение приводят, но закрывают шапку листа, чтобы не видно было кто это. Иначе страйк будет видео. Или видео, собранное из чужих документальных кадров с комментариями и там в углу ведущий, опять же требование гугла, чтобы себя показывать в таких ситуациях.

И тд. и тп как говорится.








 ,








И это всё МОЁ
И это всё МОЁ

Надо грамотно привернуть тесты к https://github.com/lvgl/lvgl. При этом комрады не особо шарят в тестировании, а я не особо шарю в сях и тулзах для билда.


Подскажите опенорсы, с которых можно «передрать по аналогии» инфрастрктуру.


Мне нужно:



  • Чтобы файлы тестов можно было по желанию отстраивать:

    • одним билдом (быстрее),

    • группами (иногда нужны разные конфиги)

    • независимо (для особо мутных случаев)



  • Чтобы это все потом пускалось одной командой в едином порыве и выдавало суммарный результат.

  • coverage reports


То есть вопрос не в том, какой фреймворк взять и как юзать моки, а в том как все благоустроить.


Если фреймворк имеет значение - склоняюсь к googletest (это уже в отдельной теме обсуждали).









 ,








И это всё МОЁ

Скачать:


Баг в самом начале, mpv воспроизводит без нареканий.


Тут были люди, вообще отрицающие это, попробуйте.













И это всё МОЁ

Представлен значительный выпуск библиотеки libtorrent 2.0 (известна также как libtorrent-rasterbar), предлагающей реализацию протокола BitTorrent, эффективную с точки зрения потребления памяти и нагрузки на CPU. Библиотека задействована в таких торрент-клиентах, как Deluge, qBittorrent, Folx, Lince, Miro и Flush (не путать с другой библиотекой libtorrent, которая используется в rTorrent). Код libtorrent написан на языке C++ и распространяется под лицензией BSD.


Выпуск примечателен добавлением поддержки протокола BitTorrent v2, в котором осуществлён уход от использования алгоритма SHA-1, имеющего проблемы с подбором коллизий, в пользу SHA2-256. SHA2-256 применяется как для контроля целостности блоков данных, так и для записей в индексах (info-dictionary), что нарушает совместимость с DHT и трекерами. Для магнитных ссылок на торренты с хэшами SHA2-256 предложен новый префикс «urn:btmh:» (для SHA-1 и гибридных торрентов используется «urn:btih:»;).


Так как замена функции хэширования нарушает совместимость протокола (поле с хэшем 32 байта вместо 20 байт) разработка спецификации BitTorrent v2 изначально велась без оглядки на обратную совместимость и в состав были приняты другие существенные изменения, такие как использование хеш-дерева Меркла в индексах для сокращения размера torrent-файлов и проверки загруженных данных на уровне блоков.


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


Для сглаживания сосуществования BitTorrent v1 и BitTorrent v2 реализована возможность создания гибридных torrent-файлов, которые включают помимо структур с хэшами SHA-1, индексы с SHA2-256. Указанные гибридные торренты могут использоваться с клиентами, поддерживающими только протокол BitTorrent v1. Ожидаемая в libtorrent 2.0 поддержка протокола WebTorrent из-за нерешённых проблем со стабильностью отложена до следующего значительного выпуска, который выйдет не раньше конца года.









 








И это всё МОЁ

Приветствую. Подскажите пожалуйста, какие есть способы кастить рабочий стол на телефон\планшет под управлением Android ?


VNC не предлагать, слайдшоу ненужно.









 ,








И это всё МОЁ

Прошу прощения, что объединяю две темы в одну.


Проблема: есть mp3 с нестандартными ID3v2, где теги записаны кодировкой cp1251, и, следовательно, любые проигрыватели отображают только кракозябры, ибо стандарт ID3v2 требует только UTF, перезапись файлов невозможна, стало быть необходимо составить плейлист с инфой взятой из тэгов… В связи с этим два вопроса:




  1. EasyTag понимает кракозябры правильно и показывет содержащийся в тегах текст, но он сохраняет плейлист только в m3u8, а нужен cue, как конвертировать одно в другое ?




  2. kid3 в настройках кодировок для ID3v2 позволяет только кодировки ISO-8859-1/UTF-8/UTF-16, можно ли заставить его работать с CP1251 в ID3v2 ?











 , ,








И это всё МОЁ

Доброго времени суток,


Новичек в сфере RAID, возникла необходимость быстро сделать RAID массив из 4х SSD M2 nvme и 4х HDD;
подскажите как правильно сделать и какое железо докупить к раид контроллеру?


SAS / NVMe RAID контроллер LSI MegaRAID 9440-8i который хочу приобрести;
в один интерфейс SFF-8643 я планирую поставить SFF-8643–>4xSATA для подключения 4х HDD дисков,
а вот как обьеденить nvme диски, тут вопросы.


Спасибо









 , , , ,








И это всё МОЁ

Салют, ЛОР! Расскажите, какие нынче популярны поставщики JRE и JDK?


Сейчас проекты собираются с помощью стандартного Ubuntu образа от AWS Codebuild: https://github.com/aws/aws-codebuild-docker-images/tree/master/ubuntu/standard/4.0


А запускается приложение в контейнере построенного на основе adoptopenjdk/openjdk11 alpine-slim.


Стало интересно, есть ли какая выгода строить / запускать джаву на сборках от альтернативных поставщиков? Текущий расклад никаких проблем не доставляет, посему вопрос на будущее. Вдруг скучно будет предстоящей зимой, можно будет вбросить идею команде сменить JRE / JDK и… самому это сделать.









 , ,








И это всё МОЁ

Добрый день.


В связи с добровольным переходом на wayland сессию (KDE opensuse tumbleweed), возник вопрос с редкой нуждой запустить X(lutris\steam\wine) в отдельном tty, т.к. под wayland это всё не гладко работает.(в сравнении с X)


Пробовал как написано в Archwiki - xinit /usr/bin/lutris – :1 vt$XDG_VTNR. Запуск производил от обычного пользователя и получил ошибку server already running.


Прошу ткнуть что конкретно нужно сделать, чтобы запустить программу либо игру в отдельном X сервере?


Спасибо.









 , , ,








И это всё МОЁ

Для «не-Ъ»: https://www.opennet.ru/opennews/art.shtml?num=53964


Для «Ъ»: в инсайдерской сборке добавлен флаг ntp-shopping-tasks-module, который позволяет показывать рекламу на новой вкладке, внимание, на основе уже собранных данных!


Такая наглость вызывает только желание найти «главиндуса», взять и у… ну вы поняли, короче.









 , , ,








И это всё МОЁ

Когда есть роликовые подшипники. Тем более, что изготовить ролики гораздо проще, чем шарики. Ролики элементарно нарезаются на токарных станках.


Какой профит от использование шариков в обычных, не упорных, подшипниках?









 








И это всё МОЁ

Очередной pacman -Syyuv мне сказал


 -> These were most likely installed directly by cpan or a similar tool.
Run the following command to get a list of these files:
LC_ALL=C find "/usr/lib/perl5/5.30" -type f -exec pacman -Qqo {} + |& sed -n 's/^error: No package owns \(.*\)$/\1/p'


Вот эти файлы:


~ >>> C_ALL=C find "/usr/lib/perl5/5.30" -type f -exec pacman -Qqo {} + |& sed -n 's/^error: No package owns \(.*\)$/\1/p'
/usr/lib/perl5/5.30/core_perl/perllocal.pod
/usr/lib/perl5/5.30/site_perl/Term/ReadKey.pm
/usr/lib/perl5/5.30/site_perl/auto/App/cpanminus/.packlist
/usr/lib/perl5/5.30/site_perl/auto/Term/ReadKey/ReadKey.so
/usr/lib/perl5/5.30/site_perl/auto/Term/ReadKey/.packlist
/usr/lib/perl5/5.30/site_perl/auto/Log/Log4perl/.packlist
/usr/lib/perl5/5.30/site_perl/auto/Sysadm/Install/.packlist


Что это за перловка? Убить их всех?









 ,








И это всё МОЁ

имеется протокол

package ru.cow.moo;

message Message1 {
string Id = 1;
int32 code = 2;
}

message Message2 { ...

Каким-то образом получены строки foo и bar, например отсылающая сторона из запаковала и прислала

std::string foo, bar;
int foo_id = 1, bar_id = 2;
moo::Message1 m1;
m1.set_id("123";);
m1.set_code(1);
m1.SerializeToString(&foo);
...

Как написать единую функцию ParseMessage, которая распарсит строку и вернет сообщение в соответсвии с его id

moo::Message1 m1 = ParseMessage(foo, foo_id);
moo::Message2 m2 = ParseMessage(bar, bar_id);

???

P.S. далее вот этого, что не вытянул

void ParseMessage(const std::string & data, int i, google::protobuf::Message* mess) {
switch (i) {
case 1:
mess->ParseFromString(data);
mess->PrintDebugString();
// other actions
// case 2:
}
}


google::protobuf::Message *m = new moo::Message1;
ParseMessage(foo, 1, m);
std::cout << "id = " << static_cast<moo::Message1*>(m)->id() << std::endl;
delete m;








 ,








И это всё МОЁ
После четырёх месяцев разработки состоялся выпуск очередной стабильной версии геоинформационной системы QGIS 3.16 "Hannover", одной из наиболее мощных и быстро развивающихся свободных геоинформационных систем (ГИС). Система включает как настольную программу QGIS, так и сервер QGIS. Согласно принятому плану выхода релизов выпуск QGIS 3.16 станет выпуском с расширенным сроком поддержки. Код проекта написан на языке С++ с использованием библиотеки Qt и распространяется под лицензией GPLv2.



И это всё МОЁ

Задолбали синицы - жрут монтажную пену вокруг окна и разбирают москитную сетку. Нахрена им это нужно? Есть рецепты как их отвадить? Стрелять из пневматики или травить не очень хочется.


Линукс тут при том что чую придётся ставить на подоконник одноплатник с парой USB камер чтобы мониторить тварей, и возможно через поделку на AVR добавить какую-нибудь махалку чтобы их отпугивать.









 








И это всё МОЁ
Сообщество RISC OS Open представило выпуск операционной системы RISC OS 5.28, оптимизированной для создания встраиваемых решений на базе плат с процессорами ARM. Выпуск основан на исходных текстах RISC OS 5.24, открытых в 2018 году компанией RISC OS Developments (ROD) под лицензией Apache 2.0. Сборки RISC OS сформированы для плат Raspberry Pi, BeagleBoard, Iyonix, PandaBoard, Wandboard, RiscPC / A7000, OMAP 5 и Titanium.