LINUX.ORG.RU

Новое хобби

 , ,


0

2

Привет, ЛОР!

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

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

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

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



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

Тебе надоело потому что наверное ты делаешь всё в стол. Выкладывай, делись, описывай свои приключения и открытия программистские/железнячные. Без цели кого-то чему то научить, доказать, показать. Просто мол «я сделяль» и всё =)

Есть ещё беда при возни с железками это бесконечная доработка, хочется то, сё, это. Задел на будущее такой что хоть суперкмпьютер их это всего можно собрать, а идея была полить цветочки и мигнуть лампочкой со звуком, мол я полило =) Короче готовое устройство, и жалко железо в него отправить, мол как!! да ты что я ещё уууугугугоого с ним наковыряюсь, ещё всякого сделаю. Ну, а по итогу? А по итогу пара платок кочует от проектика к проектику, осталвляя за собой лишь память в голове как что было устроено до этого.

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

А так, может тебе попробовать поработать с графикой? Ну не знаю от GUI до 3D или обработке изображений. Мне кажется вот тебе, будет в новинку.

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

Разработка под мобилки, а чего нет. VR тот же самый (шлем не обязательно можно очки за 500 рублей для мобилки взять), и сделать так что-бы работало без гироскопа. Библиотеку написать которая по камере будет отслеживать все наклоны и повороты, движения в пространстве, вот нифига не тривиальная задача.

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

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

Пробуй всё подряд, а по ходу отбрасывания вариантов определишься.

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

Это в точку, :D тоже думаю, что надо больше выкладывать всякого и выносить на обсуждение. Просто иногда застряешь в порочном круге «да ну ж, это тривиально», и в итоге так все и остается в столе.

Правда, проблема уже в том, что все электронные детали, кондики, мк и паяльная станция остались дома, а я от него далеко. Можно было бы и купить новых, но бюджет пока не позволяет. %( Поэтому думаю попробовать что-то новенькое.

Нейросетки и графика сразу отпадают, мой новый ноутбук еще слабее прежнего (Thinkpad X1 Carbon 3rd gen, i7-5600U с двумя ядрами и интеграшкой).

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

Советы просят, чтобы было на кого потом свалить )

Все люди разные - уникальные - трудно что-то советовать. Кого-то прёт от компьютеров (пока зрение в норме). Меня больше влечёт на природу.
Техника - это всё тлен навсегда, а природа вечна: растения живут или оживают каждый сезон.
Кто-то из них съедобный, кто-то лекарственный, кто-то просто красивый, кто-то смертельно ядовит, малопознанное великое многообразие.

Но никому другому не посоветую изучать природу в живую: на природе комары, клещи, медведи, тигры, медузы, топкие болота, мухоморы. Люди, правда, когда на природе - лучше.

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

Да не, не советы - идеи скорее. Народу на ЛОРе много (по крайней мере, раньше было), большинство причастно к каким-то специфическим проектам или направлениям, о некоторых из которых я могу впринципе не знать. =D А так мож что-то зацепит.

Природа мне нравится, но это так, на выходных отдохнуть. А хочется задачек чтобы извилины напрячь.

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

Название универа не назову, анонимность все же. Но ща учусь на Electronics and Electrical Engineering, на первом курсе (пришлось начать сначала после законченных двух, из-за смены места жительства).

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

Просто иногда застряешь в порочном круге «да ну ж, это тривиально»

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

Мне хорошо в том что во внешнем поощрении не нуждаюсь и я рад за тех кто может чем то заниматься без внешней конфетки от социума, но это играет злую шутку ибо ты становишься сферическим конём в вакууме с космосом в голове и кучей всякого нерабочего в реальности, ведь зачем делать сразу готовое я ещё 100 раз всё улучшу и продумаю до положения молекул. Бесконечное улучшение несуществующих вещей получается :D

Вот и получается что делится мыслями/делами по сути своей эксперимент тоже и тоже можно отнести как к форме некого увлечения, не полноценного, но хорошо дополняющего другие.

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

Мля хотел кратко написать, а опять вода :D Нутыпонял хехе.

Нейросетки и графика сразу отпадают, мой новый ноутбук еще слабее прежнего

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

Я не знаю актуально ли, но вот например Embedded шрифт 6x7 на полуглифах (комментарий) и ниже по сообщениям, кратко там у них дебильная реализация RLE декодера чел заморочился с байтодрочерством от которого должен быть профит, но болт забил на остальное. Много данных туда сюда гоняется. Суть в том что-бы получить блок данных RLE не по байтику, а куском в 32 бита, декодировать RLE выплюнуть и так по кругу.

Я было начал, но забросил упёрся в баг LVGL самого он вместе с сжатыми глифами RLE мусор в конце давал. А потом времени не стало

Выкину сюда это

all:
	echo " 1) 'make depends' for get,configure/reconfigure and build/rebuild depends"
	echo " 2) 'make decomp'  for rebuild changes lvgl and decompressor"
	echo " 3) 'make go'      run application"

depends:
	-git clone https://github.com/lvgl/lvgl  # main project
	-git clone https://github.com/lvgl/lv_fs_if.git # PC filesystem support
	cp ./lvconf/lv_conf.h ./lvgl/src/ && cd ./lvgl/ && cmake . && make; # build main project

decomp:
	cd lvgl && make #rebuild main project before build decompress
	-rm ./decompress
	$(CC) -I ./lvgl/src/ -I ./lv_fs_if/ -DLV_LVGL_H_INCLUDE_SIMPLE=1   main.c ./lv_fs_if/lv_fs_posix.c ./lv_fs_if/lv_fs_if.c -llvgl -L ./lvgl/lib/ -o decompress

clean:
	-rm ./decompress 

clear:
	-rm -rfd ./lvgl/ 
	-rm -rfd ./lv_fs_if/ 
	-rm ./decompress 

go: 
	./decompress

.SILENT: clean all go


#include <stdio.h>
#include <stdlib.h>
#include "lvgl/src/lvgl.h"
#include "lv_fs_if/lv_fs_if.h"
#include "fonts/code.font"

void info(const char *);
//const uint8_t * lv_font_get_bitmap_fmt_txt(const lv_font_t * font, uint32_t unicode_letter);
static uint32_t get_glyph_dsc_id(const lv_font_t * font, uint32_t letter);

int main(int argc, char *argv[])
{
    /*просто отладка, видеть глазами явно что я подсунул, а то мало ли =)*/
    info("./fonts/bin.font");

    lv_init();
    lv_fs_if_init();/*драйвер файловой системы*/

    lv_font_t  * lf = NULL;
    lf = lv_font_load("S:./fonts/bin.font");
    /* Заметка:
     *
     * Если скормить пробел lv_font_get_bitmap_fmt_txt(lf,' ');
     * то возвращается NULL ибо dsc->box_w и gdsc->box_h равны нулю
     *
     * Шрифт собирался вот так. 
     * env DEBUG=* lv_font_conv --font Roboto-Regular.ttf -r 0x20-0x7F --size 16 --format bin --bpp 3  -o output.font
     * 
     * если собрать с параметром --format lvgl то внутри видно что
     *
     * static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
     *{.bitmap_index = 0, .adv_w = 0, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0} // id = 0 reserved ,
     *{.bitmap_index = 0, .adv_w = 63, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0},
     * и тут
     * static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     * U+0020 " " 
     * пусто
     * Это баг или нет пока непонятно.
     * */

        int x = 0;
        int s = '#';
        //for (; x < 10; x++)
        {
            const  uint8_t * buff = lv_font_get_glyph_bitmap(lf,s+x);


            printf("[OUT][%c] -> ",s+x);
            //GSIZE : 120   boxw 10  boxh 12 boxw*boxh 120  
            for (int i = 0; i < 120; ++i)
            {
                printf("%#0x, ",buff[i]);
            }
            printf("\n\n");



         }




        /* Текущая реализация выдаёт разные данные в конце
         * баг или фича? Или особенность сборки под 64 бит?
         *
         * */
    return 0;
}


/*---------------Чисто для себя------------------*/
void info(const char * font)
{
    FILE * file = fopen(font,"rb");

    /*узнаём его размер*/
    fseek(file,0,SEEK_END);
    long len = ftell(file);
    fseek(file,0,SEEK_SET);
    printf("font file size: %li bytes\n",len);

    /*выделяем под размер память и отпускаем файл*/
    char *  bitmap_file = malloc(len);
    fread(bitmap_file,1,len,file);
    fclose(file);

    /*читаем нужное и пропускаем заголовок*/
    uint32_t head_len = *(uint32_t*)bitmap_file;
    printf("font head size: %u bytes\n",head_len);

    uint16_t font_size = *((uint16_t*)(bitmap_file+14));
    printf("font symb size: %u px\n",font_size);

    uint8_t bpp = *((int8_t*)(bitmap_file+37));
    printf("font bpp  size: %u bit/pixel\n",bpp);

    uint16_t compress_alg = *((int8_t*)(bitmap_file+41));
    switch(compress_alg)
    {
        case 0: printf("font compress algoritm: raw \n"); break;
        case 1: printf("font compress algoritm: RLE + XOR \n"); break;
        case 2: printf("font compress algoritm: RLE only \n"); break;
        default: printf("WTF! - font compress broken!\n"); exit(1);
    }

    free(bitmap_file);
    /*пока чистим, может потом чего надо будет*/
    //char * bitmap_data = bitmap_file + head_len;



}

Декодер находится в lv_font_fmt_txt.c его то и нужно переписать. Проект популярный, заинтересован в этом @Vit. Суть в получении профита по скорости от RLE.

Если будет интересно поймёшь зачем я всё это сбросил тут. Глянул https://github.com/lvgl/lvgl/blob/master/src/font/lv_font_fmt_txt.c#L357

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

Мне бы научится ещё кратко излагать мысли ёпрст…

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

Техника - это всё тлен навсегда, а природа вечна

Красноглазие на компуктером никак не мешает походов на рыбалку/грибами и стойку раком на огороде. Лично мне так точно.

Люди, правда, когда на природе - лучше.

Смотря какие, некоторые что и делают что только ноют, когдааа домой, чегооо тут делать. Надо и в лесу лазать с увлечением и в консольке :D

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

Бесконечное улучшение несуществующих вещей получается :D

:D.

Вот и получается что делится мыслями/делами по сути своей эксперимент тоже и тоже можно отнести как к форме некого увлечения, не полноценного, но хорошо дополняющего другие.

Он идеален! С сегодняшнего дня стартую сей эксперимент, только сначала домашку по Logic Design доделаю.

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

Я почему-то сразу подумала о deep learning’ах всяких, но если именно мелкие нейронки - может быть очень даже интересно. Да что уж там нейронки, пару лет назад я банальную цепь Маркова для генерации предложений сделала, скормишь ей «Just for Fun - Linus Torvalds» - результаты получаются из серии «Улыбнуло» :D. Так что в принципе у маленьких нейронок должно быть больше потенциала в десятки раз.

LVGL декодер

Хм, графическая либа для embedded, выглядит довольно интересно. Единственное, проблема с симулятором может возникнуть, он официально реализован под VSCode и Eclipse, а оба в репозиториях генты только в бинарном виде. Поясню: в среде с musl-ом вместо glibc бинарники, собранные под вторым, не работают. В принципе, я попробую собрать их из сорцов хотя гайд еще в состоянии затычки. Но выглядит оч интересно для ковыряния в байтах. Вообще у меня есть одна плата ESP32, но нет пока программатора.

А ты использовал симулятор или физическую плату? И если симуль, то в какой IDE?

В общем спс за вдохновение.

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

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

Да ну, мне пачку лапши и компик, и жизнь идеальна. А работа меня сама найдет.

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

Единственное, проблема с симулятором может возникнуть

А он нахер не нужен, возьми данные это А получи их в сжатом виде RLE это Б (выше там написано как это сделать) глянь что по ссылке в функции декодера, перепиши на декодирование по 32бита за раз получи выхлоп данных это В А == B должно быть, вот и всё. Херачим эмбедед вслепую ))

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

Займись рисованием 🎨 каким-то.

🎨      🎨  🎨     🎨  🎨      🎨  🎨      🎨
🎨          🎨🎨   🎨  🎨      🎨    🎨  🎨
🎨      🎨  🎨 🎨  🎨  🎨      🎨      🎨
🎨      🎨  🎨  🎨 🎨  🎨      🎨    🎨  🎨
🎨      🎨  🎨   🎨🎨   🎨    🎨   🎨      🎨
🎨🎨🎨  🎨  🎨     🎨    🎨🎨🎨  🎨          🎨

111

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

Опоздали лет на 20. Сейчас у Perl роль Кобола то есть поддерживание старых проектов.

Да ну, а как же скрипты на скорую руку для, допустим, быстрого парсинга текста? И в принципе тулзы вроде awk или perl, как мне кажется, должны увеличить удобство использования консоли и возможности оного.

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

Моддинг как вариант. Выбираешь игру, которая нравится с поддержкой модов и вперед.

Звучит как неплохая идея, расскажи, а ты играешь в опенсорсные игры?

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

Хорошо написал, молодец. Внешний социум ещё больший тлен, чем инжененерные поделки. За пару последних времён я много нового познал про социальные сношения, о чём не подозревал ранее. На словах, да, говорится много чего. Но слова - это фон, к ним давно никто серьёзно не относится. За поделки спасибо, быть может, скажут. Если не скажут, то подумают. А социум может и в морду плюнуть, но утираться придётся тебе.

Мне бы научится ещё кратко излагать мысли ёпрст…

Это не самый тяжкий грех. Говорить «по-спартански» навык, конечно, не последний, но и не абсолютный.
У нас была классная учился по литературе, очень душевная женщина. В дальнейшей жизни я немного встречал подобных людей, таких же душевных и неравнодушных.
Одно из сочинений, которое я «родил» в ту пору, уместилось на половине тетрадки. При разборе я услышал такую оценку:
-- Антон Палыч Чехов сказал: «Краткость — сестра таланта», но на этот раз только три.

sparkie ★★★★
()

Список интересных занятий на текущий момент:

  1. Мини-нейросети
  2. LVGL и декодер
  3. Моддинг
  4. Пайка
  5. DIY с двача
  6. Еще появилась такая идея, как поиграть с Olimex OpenEEG
  7. Ногти, ресницы…. XD

Вечером подумаю, че и как выбрать.

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

Если работа будет нравится то будет хобби

Если ты имеешь в виду работу как некое место, куда тебя наняли совершать полезный труд за денежный эквивалент, то нет, это так не работает.
На моей крайней работе меня устраивало всё, кроме повсеместных камер, которые контролировали лица с формализованными моральными принципами или вовсе лишённые таковых. Я много чего завязал на себя, подал достаточно красивых идей, научился скармливать камерам то, что считал нужным.
Казалось бы? Тем не менее меня вышибли оттуда со свистом.
И никто не дёрнулся. Ни улыбчивые «друзья», ни сонные профсоюзы, ни надутые представители иных вааааааажных структур.
Не, я не переживаю. Мне сугубо пофиг. Я к тому, что нефиг лезть туда, где тебе никто не рад. Мир надо искать внутри себя и отделять хобби от формальных обязанностей.
Херню просят - херню даём.

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

Мини-нейросети

У меня есть прикладная идейка, которой я занимаюсь. Обозначать её я не буду, она на микро-нейросети. Есть о чём подумать. Так что тема, да.

Ногти, ресницы…. XD

Это ты зря. В этих ваших интернетах обретается весьма няжная тяночка. Реснички стоечкой, губки бантиком. Я б её погладил. Тем не менее тяночка не безмозглая гламурочка, а вполне себе продвинутый в high-tech экземпляр.

«Быть можно дельным человеком, И думать о красе ногтей...»

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

Да что угодно. Можешь заняться ремонтом и реставрацией старой техники. Походи по знакомым, может у них найдётся какой хлам, вроде старой Нокии.

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

rootree
()
Ответ на: комментарий от X512

Опоздали лет на 20. Сейчас у Perl роль Кобола то есть поддерживание старых проектов.

Не поверите - живее всех живых. Однозначно есть ниши которую perl очень плотно занимает: скрипты чтобы чесать логи, собирать статистику, генерить репорты etc.

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

скрипты чтобы чесать логи

В логи а) не нужно срать всяким бредом «на всякий случай» б) для раскопок насраного есть целые «ынтерпрайзные решения» уровня SPLUNK, ненужность которых ясна из пункта а) ))) стату и т.д. один фиг собирать не перлом единым, а всякими там ганглиями/графанами, которым пофиг на клей — модули хоть на перле/питонен/джаве, хоть на баше, хоть на чистом ц.

slackwarrior ★★★★★
()