#C_Language

2025-04-24

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

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

habr.com/ru/articles/903938/

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

2025-03-26

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

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

habr.com/ru/articles/894442/

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

2025-03-03

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

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

habr.com/ru/articles/887334/

#reverseengineering #c_language #elf

Harris Georgiouxgeorgio_gr
2025-02-07

: Roots and powers of any order in C

Watch the full video at Youtube channel central -- youtube.com/@apneacoding

Enable captions for more details and walk-through. Source code available at the Github repository (see channel info).

Harris Georgiouxgeorgio_gr
2025-02-07

: Roots and powers of any order in C

Watch the full video at Youtube channel central -- youtube.com/@apneacoding

Enable captions for more details and walk-through. Source code available at the Github repository (see channel info).

2024-09-06

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

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

habr.com/ru/articles/841472/

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

Harris Georgiouxgeorgio_gr
2024-08-10

: BAM neural network in Arduino 😃

See the full video in Youtube channel central -- youtube.com/@apneacoding

Enable captions for more details and walk-through. Source code available at the Github repository (see channel info).

Harris Georgiouxgeorgio_gr
2024-07-05

: Memory peek display DOS memory contents in C

See the full video in Youtube channel central -- youtube.com/@apneacoding

Enable captions for more details and walk-through. Source code available at the Github repository (see channel info).

Harris Georgiouxgeorgio_gr
2024-07-05

: Memory peek display DOS memory contents in C

See the full video in Youtube channel central -- youtube.com/@apneacoding

Enable captions for more details and walk-through. Source code available at the Github repository (see channel info).

2024-04-30

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

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

habr.com/ru/articles/811429/

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

Nikolay Robotoev 🐉🏔️mikolasan
2023-11-29

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?)

Screenshot of VS Code with my list implementation and tests for it
2023-11-17

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

Paul Blackburnpaul_blackburn
2023-01-20

Did you know: Dennis Ritchie was honoured by having a minor planet named after him?

en.wikipedia.org/wiki/List_of_

2022-04-26

I had to implement Object Oriented Programming paradigm in C language for a large library/toolkit, so I thought to share recent documentation draft for you all to see on what it takes to make it.

wordsmith.social/linuxlegend/o

#programming #c_language #development #linux

Юніксоїд :flag_wbw:linuxoid@mastodon.ml
2021-04-13

В качестве второй по-очереди книги по-самообразованию рекомендую "Язык С в 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

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

Client Info

Server: https://mastodon.social
Version: 2025.04
Repository: https://github.com/cyevgeniy/lmst