LINUX.ORG.RU

Новое хобби

 , ,


0

2

Привет, ЛОР!

В последние несколько месяцев многое изменилось, пришлось покинуть моё рабочее место со всеми тулзами, осциллографами и прочим. И, признаться честно, появилось такое ощущение, что мои компьютерные хобби (stm32, гента) свелись к нулю. До сих пор использую Gentoo, даже на Musl-Hardened перешла ради интереса. Но все же хочется найти новое хобби, и сложно с ним определиться. Попробовала вступление в физику, химию и квант.мех., крайне интересно, но компьютеры и желёзки все же не имеют аналога в восхитительности.

Из вариантов пока:

  • Выучить Perl? :D
  • Почитать Khalid Sayood - Introduction to Data Compression.
  • Найти какой-нибудь OSS проект в стадии разработки (C/C++) и исправлять баги / добавлять плюшки.
  • Почитать про аудио/видео кодеки типа H264, AAC.

В общем, что думаете, есть идеи?



Последнее исправление: x86- (всего исправлений: 1)
Ответ на: комментарий от LINUX-ORG-RU

Ты прав, у меня тоже рандомные данные в конце выдаются при получении битмапа ‘#’:

nav@localhost ~/workspace/src/lvgl $ make go
font file size: 4360 bytes
font head size: 48 bytes
font symb size: 16 px
font bpp  size: 3 bit/pixel
font compress algoritm: RLE + XOR 
0x5613bfc80dd7
[OUT][#] -> 0, 0, 0xf0, 0xf, 0x40, 0, 0x4, 0xd0, 0x2f, 0, 0, 0x9, 0xb0, 0x4d, 0, 0xd, 0xff, 0xff, 0xff, 0xf4, 0x2, 0x2f, 0x62, 0xd9, 0x20, 0, 0xf, 0, 0xf4, 0, 0, 0x4f, 0, 0xf0, 0, 0x6f, 0xff, 0xff, 0xff, 0xb0, 0x2, 0xb9, 0x29, 0xb2, 0, 0, 0xd4, 0xb, 0x90, 0, 0, 0xf2, 0xd, 0x40, 0, 0x2, 0xf0, 0xf, 0x20, 0, 0x13, 0x56, 0, 0, 0x21, 0x1, 0, 0, 0, 0, 0, 0, 0xc0, 0xa7, 0xcf, 0xbf, 0x13, 0x56, 0, 0, 0xc0, 0xa7, 0xcf, 0xbf, 0x13, 0x56, 0, 0, 0x10, 0xb4, 0xcf, 0xbf, 0x13, 0x56, 0, 0, 0x3, 0x1, 0, 0, 0, 0, 0, 0, 0xc0, 0xa7, 0xcf, 0xbf, 0x13, 0x56, 0, 0, 0xc0, 0xa7, 0xcf, 0xbf, 0x13, 0x56, 0, 0, 

Запуск №2:

nav@localhost ~/workspace/src/lvgl $ make go
font file size: 4360 bytes
font head size: 48 bytes
font symb size: 16 px
font bpp  size: 3 bit/pixel
font compress algoritm: RLE + XOR 
0x5617650b6dd7
[OUT][#] -> 0, 0, 0xf0, 0xf, 0x40, 0, 0x4, 0xd0, 0x2f, 0, 0, 0x9, 0xb0, 0x4d, 0, 0xd, 0xff, 0xff, 0xff, 0xf4, 0x2, 0x2f, 0x62, 0xd9, 0x20, 0, 0xf, 0, 0xf4, 0, 0, 0x4f, 0, 0xf0, 0, 0x6f, 0xff, 0xff, 0xff, 0xb0, 0x2, 0xb9, 0x29, 0xb2, 0, 0, 0xd4, 0xb, 0x90, 0, 0, 0xf2, 0xd, 0x40, 0, 0x2, 0xf0, 0xf, 0x20, 0, 0x17, 0x56, 0, 0, 0x21, 0x1, 0, 0, 0, 0, 0, 0, 0xc0, 0x7, 0x13, 0x65, 0x17, 0x56, 0, 0, 0xc0, 0x7, 0x13, 0x65, 0x17, 0x56, 0, 0, 0x10, 0x14, 0x13, 0x65, 0x17, 0x56, 0, 0, 0x3, 0x1, 0, 0, 0, 0, 0, 0, 0xc0, 0x7, 0x13, 0x65, 0x17, 0x56, 0, 0, 0xc0, 0x7, 0x13, 0x65, 0x17, 0x56, 0, 0, 

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

x86-
() автор топика
Ответ на: комментарий от ex-kiev

Фольклор говорит нам о том что его можно устанавливать на тостеры. =)

Аааа, легковесность. Интересно, почему назван он «NetBSD», а не «ToasterBSD» XD.

x86-
() автор топика
Ответ на: комментарий от another

В спорт рекомендую. Штырит очень основательно, если правильно заняться.

Мой спорт - бег пальцами по клавиатуре.

x86-
() автор топика

Добавь в vlc уплавнялку и масштабирование на нейросетке, чтобы 480p@24 проигрывать как 4К@60

DumLemming ★★★
()
Ответ на: комментарий от x86-

@Vit чё за херня? )))) Я в своё время тоже добрался, декодер написал вообще отдельно, а это отложил так и отложилось насовсем времени не было разбирать.

что это может быть мусор

Ты перед дебагами от lv_font_conv получи данные символа в сжатом и несжатом видах. Там можно получить в виде исходника на си ещё выхлоп.

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

Ну ковыряйся =) Расскажешь потом чво там было. К слову в файле lv_font_fmt_txt.c рекомендую реализацию декомпрессора скомпоновать, убрав функции и вызовы, схлопнуть всё в одну функцию, я задолбался по началу глазами прыгать то туда то сюда,

например вызов decompress_line() нафиг не нужен, ибо это просто

static inline void decompress_line(uint8_t * out, lv_coord_t w)
{
    lv_coord_t i;
    for(i = 0; i < w; i++) {
        out[i] = rle_next();
    }
}

Скопировать эту писюльку сразу в decompress() и так со всем остальным почти, гораздо удобнее будет уже переписывать. С учётом того что вызов rle_next() тоже потом будет не нужен, короче всё не нужно всё в итоге схлопнется в 1 цикл ну или парочку вложенных на свищах и всё такое. Хоть тут и inline везде, но компиляторы сейчас такие компиляяторы.

Ладно химичь =)

LINUX-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 1)

Нет, чтобы няшиться с кунами под пледиком и полностью проживать жизнь, она предпочитает пердолиться и затворничать! Ну и молодежь пошла

SpaceRanger ★★★
()
Ответ на: комментарий от x86-

Аааа, легковесность. Интересно, почему назван он «NetBSD», а не «ToasterBSD» XD.

Аааа, легковесность.

Приоритетна переносимость на всякие разные платформы.

ex-kiev
()
Ответ на: комментарий от x86-

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

На опен есть Тэо и ему подобные. Если нравится развивать проект одного человека, пожалуйста.

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

untitl3d
()
Ответ на: комментарий от x86-

Потому что это первая бздя, которую начали активно пилить коммунити по сети, а не 1-2 человека в кулуарах шараги или универа. К сетям и tcp/ip название не относится.

untitl3d
()

Почитать про аудио/видео кодеки типа H264, AAC.

Лучше написать на ЛОР что-то вроде статьи про прикладное применение этих кодеков.

ex-kiev
()
Ответ на: комментарий от SharpTits

Ставится даже на чайник.

Из моего личного опыта у меня нормально поставился только OpenBSD на 2 ноута и на 1 нетбук. Остальные отвались на этапе установки.

Dr64h ★★★
()
Ответ на: комментарий от x86-

Для нубов: в чем его основное отличие от тех же FreeBSD и OpenBSD? (Краткое предназначение)

Опёнок ориентирован на стабильность и безопасность. Про Фряху тут уже отписали. В чём основная особенность NetBSD честно не в курсе.

Dr64h ★★★
()

Есть идея совместно разработать 3D-микропринтер на шаговиках от телефона. Можно даже на 5, а то и на 7 осей сразу сделать. Рабочая поверхность не важна, важно чтобы весь принтер помещался в объем 5х10см, чтобы распечатать его одним куском на фотополимернике. Для чего? Шобы было! Практического применения оно скорее всего иметь не будет. Зато как можно прокачаться, это просто рай для эскапизма!!!

ruzisufaka
()
Ответ на: комментарий от LINUX-ORG-RU

Лично у меня жабаскриптовый код тестами покрыт, причем компрессора - особо.

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

Если делать нормально - надо сначала лепить тесты, и бенчмарки которые количество тактов выдадут. Иначе выйдет опять кривулина, только под другим углом.

Vit ★★★★★
()
Ответ на: комментарий от Vit

Ну мадам взялась, разберётся =) Хотя может это особенность работы на пк, я что-бы запустить использовал lv_if_if для IO. Или я там делал что не так, у меня память как у рыбки я уже забыл чего там к чему.

LINUX-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 1)
Ответ на: комментарий от x86-

Если тебе не особо надо LVGL, можешь отдельно запилить декодер, типа как референсную имплементацию, с прицелом на реп lv_font_conv.

Vit ★★★★★
()
Ответ на: комментарий от x86-

Хм, AOSP ж очень распространен, неужели таких гайдов еще никто не создавал?

Имеется в виду, гайды по конкретным устройствам. Они же сильно отличаются. Это ж не x86, где легко любую ОС можно поставить.

Еще PostmarketOS можно переносить на устройства, которые пока не поддерживаются.

damix9 ★★★
()

Найти какой-нибудь OSS проект в стадии разработки (C/C++) и исправлять баги / добавлять плюшки.

Пилить туллинг для цпп. Никто этим не занимается. Из идешек мёртвый 10 лет как кдевелоп/цлион-проприетарщина.

right_security
()
Ответ на: комментарий от Dr64h

Я в последнее время увлёкся созданием компиляторов, там много сложных подтем (лексический анализ, синтаксический анализ, транслирование/ассемблирование, оптимизация и много чего ещё).

Может Вам стоит устроиться в МЦСТ, дабы поработать над развитием компилятора для «Эльбруса»?

Mischutka ★★★★★
()
Ответ на: комментарий от SpaceRanger

Точняк! Компуктер с компилятором никуда не денуться, а молодость пройдёт очень быстро.

DrBrown
()
Ответ на: комментарий от Mischutka

Может Вам стоит устроиться в МЦСТ, дабы поработать над развитием компилятора для «Эльбруса»?

Если берут без вышки, то может быть.

Dr64h ★★★
()
Ответ на: комментарий от right_security

Пилить туллинг для цпп. Никто этим не занимается. Из идешек мёртвый 10 лет как кдевелоп/цлион-проприетарщина.

Я этим занимаюсь. :)

Dr64h ★★★
()
Ответ на: комментарий от SharpTits

Раскладку в студию! Default - ты не спортсмен, так, любитель.

Colemak. =-)

x86-
() автор топика
Ответ на: комментарий от LINUX-ORG-RU

К слову в файле lv_font_fmt_txt.c рекомендую реализацию декомпрессора скомпоновать, убрав функции и вызовы, схлопнуть всё в одну функцию, я задолбался по началу глазами прыгать то туда то сюда,

Есть такое, тоже заметила. Пару функций типа rle_next() все же оставлю, а то каша получится (=. Ну и ее по-любому придется выкинуть, если переписывать декодер с побайтовой обработки на поблоковую.

Ты перед дебагами от lv_font_conv получи данные символа в сжатом и несжатом видах. Там можно получить в виде исходника на си ещё выхлоп.

В сжатом есть, в несжатом пока нет (пробую lv_font_conv --font Roboto-Regular.ttf -r 0x20-0x7F --size 16 --format lvgl --bpp 4 --no-compress -o code_nocompress.font, но немного неясно, в какое значение ставить bpp, чекну еще документацию формата через пару часов).

x86-
() автор топика
Ответ на: комментарий от untitl3d

Потому что это первая бздя, которую начали активно пилить коммунити по сети, а не 1-2 человека в кулуарах шараги или универа. К сетям и tcp/ip название не относится.

Любопытно, буду знать. Он вообще предназначен сугубо под серваки/эмбед, или некоторые на десктоп его тоже накатывают?

x86-
() автор топика
Ответ на: комментарий от ex-kiev

Лучше написать на ЛОР что-то вроде статьи про прикладное применение этих кодеков.

Нуу, прикладное следует за теоретическим. =D. (Но если точнее, то когда как)

x86-
() автор топика
Ответ на: комментарий от ruzisufaka

Есть идея совместно разработать 3D-микропринтер на шаговиках от телефона. Можно даже на 5, а то и на 7 осей сразу сделать. Рабочая поверхность не важна, важно чтобы весь принтер помещался в объем 5х10см, чтобы распечатать его одним куском на фотополимернике. Для чего? Шобы было! Практического применения оно скорее всего иметь не будет. Зато как можно прокачаться, это просто рай для эскапизма!!!

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

x86-
() автор топика
Ответ на: комментарий от Vit

Если тебе не особо надо LVGL, можешь отдельно запилить декодер, типа как референсную имплементацию, с прицелом на реп lv_font_conv.

Тоже неплохой вариант.

x86-
() автор топика
Ответ на: комментарий от x86-

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

ruzisufaka
()
Ответ на: комментарий от x86-

но немного неясно, в какое значение ставить bpp

Вит пишет что ничего кроме трёх бит на пиксель не надо. Это в разы упрощает реализацию. Embedded шрифт 6x7 на полуглифах (комментарий)

Если потом понадобится весь фарш и поддержка любой битности, то будет эффективнее раздуть код и на каждый bpp сделать свою реализацию (мало чем отличающуюся) чем делать единую с if или switch выбором как обрабатывать. имхо иначе внутренние проверки будут нивеливать профит от RLE сжатия, оно должно молотить всё в лоб как снегоуборочный паровозик без остановок на станции. Иначе проще просто прочитать сырые данные и всё =)

Ещё не забыть что там есть XOR, когда после декодирования 1й строки для получения следующей надо откскорить следующую перед обработкой.

@Vit не мучай мадам, дай ей два(или три учитывая XORнутую версию) файла эталона с сжатыми данными и сырыми и тогда её вообще не надо будет парится по поводу шрифтов и прочего =)

Compression algorithm

    At least 1 repeat requires to fall into RLE mode (first pixel pass as is). That helps to pass anti-aliasing pixels without size increase.
    First 10 repeats are replaced with 1 bit (0 - end).
    Next (11-th) is followed by 6-bit counter. If counter overflows, max possible value used, and process starts from begining (1).

See I3BN for initial idea and images.

https://thesai.org/Downloads/Volume7No7/Paper_34-New_modified_RLE_algorithms.pdf

LINUX-ORG-RU ★★★★★
()

но компьютеры и желёзки все же не имеют аналога в восхитительности.

Попробуй психологию. Люди, люди восхитительны.

Aceler ★★★★★
()
Ответ на: комментарий от x86-

Дорого чет как-то, увлечение не для нищебродов как я.

Можно найти недорогие. Лет 10 назад прикупил DE0-Nano меньше чем за 100$.

exst ★★★★★
()
Ответ на: комментарий от ruzisufaka

Бгг, удары током получать, пусть и микро.. Как-то не по себе от такого становится. :D Другие расположения девайса тоже отлетают, можно и пояс, и шапку, разница только в удобстве. Ну, например, в шапке в помещении особо не походишь. А пояс находится на линии живота, ваще раздражать будет. А вот наколенник - минусов не имеет.

x86-
() автор топика
Ответ на: комментарий от LINUX-ORG-RU

Вит пишет что ничего кроме трёх бит на пиксель не надо. Это в разы упрощает реализацию. Embedded шрифт 6x7 на полуглифах (комментарий)

Так разве он не имеет в виду 3 bit/px в сжатом варианте? Просто lv_font_conv отказывается генерить именно -bpp 3 для несжатого, а все остальные опции поддерживает:

lv_font_conv --font Roboto-Regular.ttf -r 0x20-0x7F --size 16 --format lvgl --bpp 3 --no-compress -o code_nocompress.font
LittlevGL supports "--bpp 3" with compression only

Допустим, 1, 2, или 8:

lv_font_conv --font Roboto-Regular.ttf -r 0x20-0x7F --size 16 --format lvgl --bpp 8 --no-compress -o code_nocompress.font
Работает

@Vit не мучай мадам, дай ей два(или три учитывая XORнутую версию) файла эталона с сжатыми данными и сырыми и тогда её вообще не надо будет парится по поводу шрифтов и прочего =)

Вооот, это бы упростило многое %-).

x86-
() автор топика
Ответ на: комментарий от Aceler

Попробуй психологию. Люди, люди восхитительны.

Они слишком непостоянны… Компьютеры точны, не считая, разве что, нейтринные бит-флопы, что запрограммируешь - то и будет выполнять. В точности бит-в-бит. =D Разве что гипнозом заняться, что ли… Но скептически отношусь к такому.

x86-
() автор топика
Ответ на: комментарий от exst

Можно найти недорогие. Лет 10 назад прикупил DE0-Nano меньше чем за 100$.

100$ это как раз таки тот эталон «дорогого», который я имею в виду. Те ПЛИС борды, которые мне попадались, все примерно столько и стоят. Ну, с разницей в 20-30$, но эт тоже дороговато. На хобби денег не жалко, канеш, но если есть другие интересные проекты подешевле, они в приоритете. X)

x86-
() автор топика
Последнее исправление: x86- (всего исправлений: 1)
Ответ на: комментарий от x86-

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

Вот именно.

Aceler ★★★★★
()
Ответ на: комментарий от x86-

Бгг, удары током получать, пусть и микро..

Нет, удары или приятное пощипывание - выбираешь ты сам. Ну, или твоя программа, как ты напрограммишь.

Другие расположения девайса тоже отлетают, можно и пояс, и шапку, разница только в удобстве

Я за шею

А вот наколенник - минусов не имеет.

А через двое штанов работать будет?

ruzisufaka
()

Алсо, к слову о Хобби. Я тут проектирую город будущего для IT-сычей. Вот из параллельного обсуждения:

…Зато появилась идея принципиально новой коптильни-кальянной. В коптильне поджигают стружку и добывают дым, в кальянной тоже поджигают растительные волокна и тоже добывают дым. Почему бы не совместить эти 2 действа? Только поместить курильщиков в коптильню и коптить их там до золотистой корочки. Или как в модных современных коптильнях, использовать накачку в 20-30 киловольт для лучшего прилегания дыма к тушке. Опять же, дым или пар - не принципиально, так что можно в этом же помещении делать как сушку древесины, обрабатываемую паром, так и вполне себе баню для живых человеков.

ruzisufaka
()
Ответ на: комментарий от Dr64h

На счёт необходимости наличия профильного высшего образования при приёме на работу в МЦСТ у меня, к сожалению, никакой информации нет. :-(

Mischutka ★★★★★
()
Ответ на: комментарий от x86-

Посмотри на Алиэкспрессе Gowin GW1/GW2 (TangNano разных модификаций, Tang 20K) или Lattice iCE40 или ECP5. Во-первых, они все дёшевы, а во-вторых для них есть тру-опенсорсный маршрут (Yosys, Nextpnr и т.д.).

Ну и ПЛИС хороши тем, что они хоть и электроника, но основная работа происходит в симуляторе, по этому часто обращаться к осциллографу не требуется.

Puzan ★★★★★
()
Ответ на: комментарий от LINUX-ORG-RU

дай ей два(или три учитывая XORнутую версию) файла эталона с сжатыми данными и сырыми и тогда её вообще не надо будет парится по поводу шрифтов и прочего =)

Я должен потратить свое личное время взамен на обещание может быть подумать как помочь? Пока не заинтересовал :)

Vit ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.