home.social

#c_language — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #c_language, aggregated by home.social.

  1. Тетрис в ядре Linux

    Вероятно, вы знаете, что если запустить ядро Linux без корневой файловой системы или файла initramfs, то оно упадет с сообщением о панике ядра. Но возможна ли работа ядра Linux без этих, вроде бы обязательных компонентов? Ответ на вопрос - да, возможна, но использовать такие возможности в конечном продукте не стоит. При запуске ядра ему могут передаваться параметры через командную строку. Одним из параметров является rootwait , указывающий ядру на то, что нужно подождать появление корневой файловой системы. В этом случае ядро ожидает появление корневой системы, а не завершается выполнение ядра с ошибкой. Формально ничто не мешает написать модуль ядра, который взаимодействует с клавиатурой и дисплеем и временно выполняет функции пользовательского приложения, пока ядро ожидает корневую файловую систему. Пользовательским приложением может быть, например, игра Тетрис. Она из-за своей простоты в реализации и зрелищности добавляет наглядности в изучении темы и дает чувство завершенности. А мысль о том, что тетрис, работает в ядре, усиливает эффект.

    habr.com/ru/companies/timeweb/

    #linux #linux_kernel #linux_modules #qemu #c_language #lowlevel #ненормальное_программирование #timeweb_статьи

  2. Тетрис в ядре Linux

    Вероятно, вы знаете, что если запустить ядро Linux без корневой файловой системы или файла initramfs, то оно упадет с сообщением о панике ядра. Но возможна ли работа ядра Linux без этих, вроде бы обязательных компонентов? Ответ на вопрос - да, возможна, но использовать такие возможности в конечном продукте не стоит. При запуске ядра ему могут передаваться параметры через командную строку. Одним из параметров является rootwait , указывающий ядру на то, что нужно подождать появление корневой файловой системы. В этом случае ядро ожидает появление корневой системы, а не завершается выполнение ядра с ошибкой. Формально ничто не мешает написать модуль ядра, который взаимодействует с клавиатурой и дисплеем и временно выполняет функции пользовательского приложения, пока ядро ожидает корневую файловую систему. Пользовательским приложением может быть, например, игра Тетрис. Она из-за своей простоты в реализации и зрелищности добавляет наглядности в изучении темы и дает чувство завершенности. А мысль о том, что тетрис, работает в ядре, усиливает эффект.

    habr.com/ru/companies/timeweb/

    #linux #linux_kernel #linux_modules #qemu #c_language #lowlevel #ненормальное_программирование #timeweb_статьи

  3. Тетрис в ядре Linux

    Вероятно, вы знаете, что если запустить ядро Linux без корневой файловой системы или файла initramfs, то оно упадет с сообщением о панике ядра. Но возможна ли работа ядра Linux без этих, вроде бы обязательных компонентов? Ответ на вопрос - да, возможна, но использовать такие возможности в конечном продукте не стоит. При запуске ядра ему могут передаваться параметры через командную строку. Одним из параметров является rootwait , указывающий ядру на то, что нужно подождать появление корневой файловой системы. В этом случае ядро ожидает появление корневой системы, а не завершается выполнение ядра с ошибкой. Формально ничто не мешает написать модуль ядра, который взаимодействует с клавиатурой и дисплеем и временно выполняет функции пользовательского приложения, пока ядро ожидает корневую файловую систему. Пользовательским приложением может быть, например, игра Тетрис. Она из-за своей простоты в реализации и зрелищности добавляет наглядности в изучении темы и дает чувство завершенности. А мысль о том, что тетрис, работает в ядре, усиливает эффект.

    habr.com/ru/companies/timeweb/

    #linux #linux_kernel #linux_modules #qemu #c_language #lowlevel #ненормальное_программирование #timeweb_статьи

  4. Тетрис в ядре Linux

    Вероятно, вы знаете, что если запустить ядро Linux без корневой файловой системы или файла initramfs, то оно упадет с сообщением о панике ядра. Но возможна ли работа ядра Linux без этих, вроде бы обязательных компонентов? Ответ на вопрос - да, возможна, но использовать такие возможности в конечном продукте не стоит. При запуске ядра ему могут передаваться параметры через командную строку. Одним из параметров является rootwait , указывающий ядру на то, что нужно подождать появление корневой файловой системы. В этом случае ядро ожидает появление корневой системы, а не завершается выполнение ядра с ошибкой. Формально ничто не мешает написать модуль ядра, который взаимодействует с клавиатурой и дисплеем и временно выполняет функции пользовательского приложения, пока ядро ожидает корневую файловую систему. Пользовательским приложением может быть, например, игра Тетрис. Она из-за своей простоты в реализации и зрелищности добавляет наглядности в изучении темы и дает чувство завершенности. А мысль о том, что тетрис, работает в ядре, усиливает эффект.

    habr.com/ru/companies/timeweb/

    #linux #linux_kernel #linux_modules #qemu #c_language #lowlevel #ненормальное_программирование #timeweb_статьи

  5. Chrome, Xfce и очень страшное кино

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

    habr.com/ru/articles/971828/

    #chrome #linux #systemd #inhibit #xfce #xfce4 #c_language

  6. Chrome, Xfce и очень страшное кино

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

    habr.com/ru/articles/971828/

    #chrome #linux #systemd #inhibit #xfce #xfce4 #c_language

  7. Chrome, Xfce и очень страшное кино

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

    habr.com/ru/articles/971828/

    #chrome #linux #systemd #inhibit #xfce #xfce4 #c_language

  8. Chrome, Xfce и очень страшное кино

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

    habr.com/ru/articles/971828/

    #chrome #linux #systemd #inhibit #xfce #xfce4 #c_language

  9. Парсим XML и JSON на ассемблере

    Отобрал для вас несколько крайне интересных, но малоизвестных проектов, реализующих работу с XML и JSON. Кроссплатформенных и без зависимостей. На чистом С и ассемблере.

    habr.com/ru/articles/964522/

    #json #xml #nasm #assembler #c_language #simd #simdjson #freebsd

  10. Продвинутое использование препроцессора C/C++

    Зачастую, в проектах ограничивается использование препроцессора по следующим причинам: — Он не похож на весь остальной язык; — Макросы могут возвращать неполные синтаксические конструкции, или вовсе различные, в зависимости от параметров. Ввиду перечисленных особенностей, читать код с активным использованием препроцессора зачастую становится на порядок сложнее кода без него. Со всеми его недостатками, инструмент есть в языке и достоин изучения.

    habr.com/ru/companies/timeweb/

    #препроцессор #c_language #макросы #метапрограммирование #c++ #C #ненормальное_программирование #функциональное_программирование #timeweb_статьи

  11. Реализация ГОСТ 32.12. Симметричный шифр Кузнечик

    Доброго времени суток. В качестве первой статьи решил выбрать разбор реализации отечественного шифра «кузнечик». Постараюсь объяснить сложные вещи простым языком. В качестве рабочего примера моя реализация на C.

    habr.com/ru/articles/903938/

    #Крипта #криптография #Кузнечик #гост #алгоритмы #c_language

  12. Необычный интерфейс

    Собрал для вас подборку редких, необычных и малоизвестных UI-библиотек — для построения интерфейсов в играх, на устройствах и десктопном ПО.

    habr.com/ru/articles/894442/

    #интерфейсы #графические_интерфейсы #cpp #sdl #linux_desktop #c_language

  13. WCC: Гримуар колдуна

    Рассказываю о еще одном необычном проекте, способном удивить даже опытных и подготовленных разработчиков. Добро пожаловать, снова.

    habr.com/ru/articles/887334/

    #reverseengineering #c_language #elf

  14. Корутины? Простейшая имплементация на C, protothread и Arduino

    *иногда хочется уйти от управляемых будней Корутины — это функции, которые могут приостанавливать своё выполнение и возобновлять его позже, сохраняя своё состояние между вызовами. Это позволяет выполнять несколько задач одновременно без необходимости создания отдельных потоков или процессов.

    habr.com/ru/articles/841472/

    #arduino #c_language #protothreads #duff's_device #coroutines #программирование

  15. Корутины? Простейшая имплементация на C, protothread и Arduino

    *иногда хочется уйти от управляемых будней Корутины — это функции, которые могут приостанавливать своё выполнение и возобновлять его позже, сохраняя своё состояние между вызовами. Это позволяет выполнять несколько задач одновременно без необходимости создания отдельных потоков или процессов.

    habr.com/ru/articles/841472/

    #arduino #c_language #protothreads #duff's_device #coroutines #программирование

  16. Корутины? Простейшая имплементация на C, protothread и Arduino

    *иногда хочется уйти от управляемых будней Корутины — это функции, которые могут приостанавливать своё выполнение и возобновлять его позже, сохраняя своё состояние между вызовами. Это позволяет выполнять несколько задач одновременно без необходимости создания отдельных потоков или процессов.

    habr.com/ru/articles/841472/

    #arduino #c_language #protothreads #duff's_device #coroutines #программирование

  17. Почему ни в коем случае НЕ надо становиться DevOps инженером! Предостережения начинающим и совет что же делать если «НЕ»

    Кто я такой, чтобы делиться своими суждениями и утверждениями? Мне почти 47, в сфере IT профессионально работаю около 25 лет, начав самообучение со школы, с папиного i386 с сопроцессором и модемного dial-up на зюхелях (ну... все же помнят.. да? ну да же? :-) Естественно, среди моего опыта и высшее образование, и технические сертификаты, и работа во множестве компаний самого разного масштаба и разных стран. Сейчас я обладаю как негативным, так и позитивным опытом в различных аспектах IT технологий, попробовав себя как в софте, так и в железе. Этот опыт заставляет меня поделиться информацией из той самой негативной составляющей с целью предотвращения его повторения читателями. И да, тут будет много злобы и яда к тому дерьму тем технологиям, с которым приходится работать каждый день DevOps и даже системным администраторам. Однако статья наполнена реализмом, а вовсе не пессимизмом! :-D В ней будет раскрыта вся голая правда про лично Ваше будущее как DevOps инженера!

    habr.com/ru/articles/811429/

    #devops #c_developer #programming_languages #карьера_итспециалиста #c_language

  18. Почему ни в коем случае НЕ надо становиться DevOps инженером! Предостережения начинающим и совет что же делать если «НЕ»

    Кто я такой, чтобы делиться своими суждениями и утверждениями? Мне почти 47, в сфере IT профессионально работаю около 25 лет, начав самообучение со школы, с папиного i386 с сопроцессором и модемного dial-up на зюхелях (ну... все же помнят.. да? ну да же? :-) Естественно, среди моего опыта и высшее образование, и технические сертификаты, и работа во множестве компаний самого разного масштаба и разных стран. Сейчас я обладаю как негативным, так и позитивным опытом в различных аспектах IT технологий, попробовав себя как в софте, так и в железе. Этот опыт заставляет меня поделиться информацией из той самой негативной составляющей с целью предотвращения его повторения читателями. И да, тут будет много злобы и яда к тому дерьму тем технологиям, с которым приходится работать каждый день DevOps и даже системным администраторам. Однако статья наполнена реализмом, а вовсе не пессимизмом! :-D В ней будет раскрыта вся голая правда про лично Ваше будущее как DevOps инженера!

    habr.com/ru/articles/811429/

    #devops #c_developer #programming_languages #карьера_итспециалиста #c_language

  19. Почему ни в коем случае НЕ надо становиться DevOps инженером! Предостережения начинающим и совет что же делать если «НЕ»

    Кто я такой, чтобы делиться своими суждениями и утверждениями? Мне почти 47, в сфере IT профессионально работаю около 25 лет, начав самообучение со школы, с папиного i386 с сопроцессором и модемного dial-up на зюхелях (ну... все же помнят.. да? ну да же? :-) Естественно, среди моего опыта и высшее образование, и технические сертификаты, и работа во множестве компаний самого разного масштаба и разных стран. Сейчас я обладаю как негативным, так и позитивным опытом в различных аспектах IT технологий, попробовав себя как в софте, так и в железе. Этот опыт заставляет меня поделиться информацией из той самой негативной составляющей с целью предотвращения его повторения читателями. И да, тут будет много злобы и яда к тому дерьму тем технологиям, с которым приходится работать каждый день DevOps и даже системным администраторам. Однако статья наполнена реализмом, а вовсе не пессимизмом! :-D В ней будет раскрыта вся голая правда про лично Ваше будущее как DevOps инженера!

    habr.com/ru/articles/811429/

    #devops #c_developer #programming_languages #карьера_итспециалиста #c_language

  20. Почему ни в коем случае НЕ надо становиться DevOps инженером! Предостережения начинающим и совет что же делать если «НЕ»

    Кто я такой, чтобы делиться своими суждениями и утверждениями? Мне почти 47, в сфере IT профессионально работаю около 25 лет, начав самообучение со школы, с папиного i386 с сопроцессором и модемного dial-up на зюхелях (ну... все же помнят.. да? ну да же? :-) Естественно, среди моего опыта и высшее образование, и технические сертификаты, и работа во множестве компаний самого разного масштаба и разных стран. Сейчас я обладаю как негативным, так и позитивным опытом в различных аспектах IT технологий, попробовав себя как в софте, так и в железе. Этот опыт заставляет меня поделиться информацией из той самой негативной составляющей с целью предотвращения его повторения читателями. И да, тут будет много злобы и яда к тому дерьму тем технологиям, с которым приходится работать каждый день DevOps и даже системным администраторам. Однако статья наполнена реализмом, а вовсе не пессимизмом! :-D В ней будет раскрыта вся голая правда про лично Ваше будущее как DevOps инженера!

    habr.com/ru/articles/811429/

    #devops #c_developer #programming_languages #карьера_итспециалиста #c_language

  21. As I understand C, it lacks many common data structures like list, vector, map. But this is exactly what people are asked about in interviews.

    So, today I'm reinventing the list. And also I keep using CTest (part of CMake) for this project. No library required for testing. So far I like it.

    (what hashtag people use for C?)

    #c_language

  22. Игоры! Как пишут код для SDL (+ интервью с создателем)
    Джек Лондон как-то написал: "Не стоит ждать вдохновения, за ним надо гоняться с дубинкой". Если речь идёт о создании игр, то проект SDL вполне себе может послужить такой дубинкой. Но как он сделан сам? Почитаем!
    #c_language #си #sdl #sdl2 #gamedev #gamedevelopment
    habr.com/ru/companies/pvs-stud

  23. В качестве второй по-очереди книги по-самообразованию рекомендую "Язык С в XXI веке"
    Бена Клеменса.
    litres.ru/ben-klemens-2/yazyk-
    Там есть действительно практические инструкции и рекомендации как писать программы в среде Unix/Linux/BSD.
    Оригинал можно читать на O'Reilly
    oreilly.com/library/view/21st-

    Также хорошая не переведённая на русский язык книга "Modern C" от Jens Gustedt доступна для бесплатной загрузки:
    modernc.gforge.inria.fr/
    #c_language #programming

  24. some time ago i have wrote a bit about keyboards #^https://hubzilla.dark-alexandr.net/display/b64.aHR0cHM6Ly9odWJ6aWxsYS5kYXJrLWFsZXhhbmRyLm5ldC9pdGVtL2EwNzFmMDFiLTNmYTEtNGUzMS1hNTRkLTc0NGU4NmZhMjBiOQ
    so, i have near perfect #wasd v3 keyboard with cherry mx green switches and nice pleasant pbt keycaps, only thing it lacks  is opensource firmware and ability to program it from pc (it does have integrated method to program layouts and macrosses, but it is limited to keycodes available on keyboard itself, i have talked a bit with their tech support, and most probably they will not implement advanced programming in near future) also, i am using it already for some time, and erase plastic case a bit with my fingers, it started to wearing, you can see glossy shining under space button, it also does not feel nice to put finger where, and as we all know, humans are shitty greedy creatures which always want more ....

    this time i decided to make myself present for new year, buy best available keyboard for my needs which currently exists in the world. I am dropped idea of buying shit from large vendors like shittech and company immediately, as they all currently have no quality at all in their so called "products" and funniest thing - more expensive and "top" items have lowest possible quality, so, nah this shit, shittech (лохитеч/лохотех on russian) can burn in hell using their shit as fuel, and i do not want to risk another ~$300-$500 just to learn what things get worsen, so i decided to buy from chinese friends, one more reason to not buy from "big" vendors - they do not have anything what suffice my needs and also does not support opensource software/firmware for sure.

    what i want:
    1. durable, high weight metal case
    2. preferable default layout or as close as possible to it
    3. ability to program non-default keycodes into layouts/macrosses
    4. preferable opensource firmware (i am targeted at qmk, but at a time of investigating i have near zero knowledge what is qmk really is)

    unfortunately very few keyboards in metal case is available, and very few metal cases for keyboards available also, most of  it is ... let's call it special purpose devices, so, no default layout of course (

    i am able to find 3 acceptable keyboards.

    1. x-bows ranger k6 - ansi  tkl (tkl - ten key less - no numpad).

    layout: - default ansi layout without numpad keyboard.

    case: - aluminum one piece tube

    pcb: - cherry switches hotswap, soldered rgb diodes for each key, Weltrend WT59F164 controller (i did not know this during review, unfortunately)

    firmware - proprietary, closed source (currently have no support from open source firmwares, see: #^https://github.com/qmk/qmk_firmware/issues/11325)

    software: - many keyboard features implemented in software (available only for shitos (windows playstation)), software quality is far from usable, it constantly eating a lot of cpu, to recognize keyboard it must be repluged after software gui is launched, e.t.c., e.t.c.

    price: ~$160 ( #^https://aliexpress.ru/item/4000874401110.html?spm=a2g0o.productlist.0.0.75a532ef84yiqD&algo_pvid=6430b693-2dc0-42bb-900c-9f96f9d6fb1b&algo_expid=6430b693-2dc0-42bb-900c-9f96f9d6fb1b-3&btsid=0b8b036d16135466096442838ef4da&ws_ab_test=searchweb0_0,searchweb201602_,searchweb201603_&sku_id=10000010059490671 )

    package: keyboard selling with small bag, without switches and keycaps

    features: keyboard have 4 programmable layouts, one of which only works with shitos driver, without driver this layout hardcoded to default ansi, 3 additional layouts store persistent state into controller memory, so they available without driver.
    doing any programming only possible via software in shitos.

    conclusion: despite what i am very disappointed with software and inability to use opensource firmware, it's overall very good keyboard, i will probably use it on shitos playstation gaming console, maybe in future i will port qmk to it...


    2. ymdk melody96 - ansi/iso non-default layout
    layout: - in this keyboard designers attempt to place fullsize (including numpad) layout into smaller case ( a bit larger than tkl size case), it's result in slightly non-default layout, but usable

    case: - it does support few cases, but since i am interested in durable metal case, my choice is - 3 parts aluminum case with separate backplate, switches plate and upper case part

    pcb: - cherry switches hotswap, soldered rgb diodes at pcb bottom (it's usable only in case with half-transparent acrylic backplate, which is not my thing), reset button which switching controller into boot (flashing) mode, atmega32u4 compatible controller

    firmware: - qmk as native firmware: #^https://qmk.fm/

    software: - no, not required

    price: ~$200 (#^https://aliexpress.ru/item/1005001831581291.html?spm=a2g0o.productlist.0.0.6c881464PUSbsR&algo_pvid=f87c96ec-5871-452b-87fa-1799548d4954&algo_expid=f87c96ec-5871-452b-87fa-1799548d4954-6&btsid=0b8b035616135468257053744eb315&ws_ab_test=searchweb0_0,searchweb201602_,searchweb201603_&sku_id=12000017796486980)

    package: keyboard selling without switches and keycaps

    features: it will take some time to get used to compressed layout, also this make it inconvenient to work on default layout if i need to, so take layout as negative feature.
    to be honest i am also little disappointed in case design, fittings look unreliable, i am also used layer of thin sealant to make sure pcb will not fall on backplate when fittings get loose


    keyboard does support most of qmk features available for keyboards and it is a lot, qmk have web frontend for inexperienced users to generate firmware (but of-course this keyboard is not for inexperienced users, so i will not explain it more), for programmers it's very nice, it allow to write software for keyboard in C directly, look at my test code for example:
    #include QMK_KEYBOARD_H

    #define default_layer 0
    #define fn_layer 15

    const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
           [default_layer] = LAYOUT(
        KC_ESC,  KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  KC_PSCR, KC_HOME, KC_END,  KC_PGUP, KC_PGDN, KC_DEL,
        KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_MINS, KC_EQL,  KC_BSPC, KC_BSPC, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
        KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_LBRC, KC_RBRC, KC_ENT,          KC_P7,   KC_P8,   KC_P9,   KC_PMNS,
        KC_CAPS, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT, KC_BSLS,                    KC_P4,   KC_P5,   KC_P6,   KC_PPLS,
        KC_LSFT, KC_NUBS, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT,          KC_UP,   KC_P1,   KC_P2,   KC_P3,   KC_PENT,
        KC_LCTL, KC_LGUI, KC_LALT,                            KC_SPC,                             KC_RALT, MO(fn_layer),   KC_LCTL,   KC_LEFT, KC_DOWN, KC_RGHT, KC_P0,   KC_PDOT, KC_PENT),

        [fn_layer] = LAYOUT(
        TO(default_layer), TO(1), TO(2), TO(3), TO(3), TO(4), TO(5), TO(6), TO(7), TO(8), TO(9), TO(10), TO(11), TO(12), TO(13), TO(14), KC_NO, KC_NO, KC_MUTE,
        KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MPLY, KC_MSTP, KC_VOLD,
        KC_NO, KC_NO, KC_WH_U, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MPRV, KC_MNXT, KC_VOLU,
        KC_NO, KC_WH_L, KC_WH_D, KC_WH_R, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_VOLU,
        KC_NO, KC_NO, KC_NO, KC_CUT, KC_COPY, KC_PASTE, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_VAI, RGB_MOD, KC_NO, KC_NO, KC_NO,
        RESET, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_NO, RGB_VAD, RGB_TOG, KC_NO, KC_NO, KC_NO ),
    };

    bool process_record_user(uint16_t keycode, keyrecord_t *record) {
        switch(keycode)
        {
            default:
                break;
        }
        return true;
    }


    for more advanced things qmk have api to do most stuff, program macrosses e.t.c., i dropped additional layers in example above, as qmk programming is not main topic of this post, you can learn more on official website #^https://qmk.fm/

    conclusion: most probably i will use melody96 as my main working keyboard, for now i am sometime missing at some keys on this compressed layout, but i hope i will get used to it soon, qmk does allow me to do everything i need from keyboard.

    3. id75 (idobo75) - ortholinear 5x15 layout

    layout - ortholinear 5x15 layout

    case: aluminum two parts with acrylic plate attached to backplate


    pcb - cherry switches hotswap, soldered rgb diodes at pcb bottom, reset button which switching controller into boot (flashing) mode, atmega32u4 compatible controller

    firmware - qmk as native firmware: #^https://qmk.fm/

    software - no, not required

    price: ~$100 ( #^https://aliexpress.ru/item/4000311498726.html?spm=a2g0o.productlist.0.0.762c2beehcJA5P&algo_pvid=c0f35677-3230-4fba-9aed-948254eccabc&algo_expid=c0f35677-3230-4fba-9aed-948254eccabc-0&btsid=0b8b036316135483975447747ecfd2&ws_ab_test=searchweb0_0,searchweb201602_,searchweb201603_&sku_id=10000001290207378 )

    package: keyboard selling without switches and keycaps

    feature: i am very unfamiliar with this layout, or more precisely with layout absence, it's just 5x15 key rows, surprisingly i am able to use blind typing on this keyboard immediately, of course with some misses and relatively slow speed, but still, i feared what i will not able to do anything at all....
    as for other features, it is also qmk so we have most qmk features for keyboards.
    one thing i liked very much about this keyboard - it have tight, very ease to assemble case in which acrylic plate for backpate doing same thing as sealant which i added into melody96 case, but additionally it's half transparent, so backside diodes on pcb actually can be seen, this acrylic plate shut tight pcb from the back, also front part of case used as switch fitting plate, have massive stabs as part of it so pcb can be screwed with long reliable screws, so assembled it looks and feel very reliable (which i can't say about melody96)

    conclusion: i am not sure if i will use this keyboard as main working board (most probably no), but as it do not take much space on desktop it will be used at least for additional hotkeys, also most probably i will take it with me in travels, and will use it for accessing "terminals"  which require physical keyboard connection without disconnecting my main working keyboard

    #hardware #kink #keyboard #keyboards #cherry_mx #programming #c_language