home.social

#си — Public Fediverse posts

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

fetched live
  1. АКПП Voith не включается выше второй передачи: разбираемся в J1939

    Изучаю шину CAN J1939 через написание самописных утилит. Целенаправленно отключал датчик наддува для проверки своих программ. И здесь случай: Идёт выпуск машин на маршрут. На одном из автобусов АКПП не включается выше второй передачи. Сканера нет читать нечем. Но есть C, Linux, CANable, map_id_j1939, viz_j1939.

    habr.com/ru/articles/1066490/

    #j1939 #canbus #linux #диагностика #си #утилиты #diy #визуализация_данных #визуализация #биты

  2. Программисты на Руси программируют на Си. RUSI: Концепт билингвального компилятора

    Это статья про разновидность языка Си с русским и оригинальным английским синтаксисом, работающими одновременно. «Если» и «if» работают как синонимы. Это не интерпретатор. Это компилятор, который способен собрать себя сам. Это даже не транспилятор русского в английский - оба набора слов работают равноценно. Код можно посмотреть кодыч.рф/administrator/rusi . Вот это поворт

    habr.com/ru/articles/1066662/

    #Си #компиляторы #linux

  3. С++: Пиши, сокращай, оптимизируй

    Попалась функция на языке С++. На её примере прям просится показать, что, делая рефакторинг, можно не только эстетично сократить код, но и оптимизировать его. Давайте разомнём мозги, они нам ещё пригодятся, несмотря на эпоху вайб-кодинга. Кто-то ведь должен понимать, как делать надо, а как не надо.

    habr.com/ru/companies/pvs-stud

    #c++ #си++ #VibeTensor #open_source #вайбкодинг #вайбкодинг #genai #оптимизация_кода #рефакторинг #красота_кода

  4. Операционная Система нс C без знаний C

    Всем привет! Давно не писал статей и вот наконец решил вернуться. Эта статья будет не столько о написании собственной операционной системы, сколько о личных переживаниях, которые, возможно, знакомы и вам. Может быть, она повлияет на ваше отношение к обучению и поможет не совершить тех же ошибок, которые совершил я.

    habr.com/ru/articles/1060354/

    #своё_ядро #си #обучение_программированию #limine #make #рассуждения #переживания

  5. Пишу алгоритм FFT на Си для процессора Эльбрус

    Примерно полгода назад я познакомился с VLIW ‑процессором Эльбрус-8СВ. На тот момент у меня уже был опыт написания кода на ассемблере для VLIW‑процессора TMS320C66. Поэтому я захотел написать нечто похожее для Эльбруса. А именно, реализовать алгоритм FFT на ассемблере. Но из‑за нехватки документации на инструкции процессора мне пришлось начать с реализации какого‑нибудь простого алгоритма на Си, чтобы изучать его ассемблерный вывод. По результатам той деятельности была написана предыдущая статья . После написания той статьи я решил попробовать реализовать алгоритм FFT на Си для Эльбруса. Работа ещё не завершена, но определённые успехи уже есть (сравнение с EML присутствует). В этой статье я хочу поделиться полученными на данный момент результатами.

    habr.com/ru/articles/1045901/

    #эльбрус8св #эльбрус #e2k #vliw #simd #интринсики #ассемблер #си #оптимизация_кода #fft

  6. Язык программирования T

    Язык T создавался как прямой наследник C для вычислительных систем, работающих в сбалансированной троичной логике. Подобно тому, как C стал универсальным языком для двоичных машин, T призван занять ту же нишу в мире троичных процессоров. Мы сохранили философию минимализма и эффективности, но заменили биты тритами, байты трайтами, а бинарные операции — их трёхзначными аналогами. Книга следует проверенной структуре «Языка программирования C», чтобы читатель, знакомый с C, мог быстро освоить T, а новичок получил систематическое введение в троичное программирование.

    habr.com/ru/articles/1040370/

    #си #троичные_компьютеры #троичные_вычисления #сетунь #фантазии

  7. [Перевод] В С неопределённое поведение повсюду

    Если бы Кардинал Ришелье был программистом, он бы сказал: «Дайте мне шесть строк кода, написанных рукой самого профессионального C-программиста в мире, и я найду в них лазейку для вызова неопределённого поведения. Никто не может написать безошибочный код на С или C++. И я говоря об этом как человек, который пишет на этих языках почти каждый день около 30 лет. Я слушаю подкасты по C++. Я смотрю выступления про C++ на конференциях. Мне нравится читать и писать на этом языке. C++ послужил нам сполна, но на дворе 2026 год, и современная рабочая среда явно отличается от среды 1985 (C++) или 1972 (С). И я далеко не первый, кто об этом заговорил. Помню ещё с десять лет назад читал статью какого-то известного человека, в которой он утверждал, что использование C++ вполне обоснованно можно подвести под нарушение закона Сарбейнза-Оксли (SOX). И хотя с остальной его критикой я не был согласен (как и с тем, что он путал «its» и «it’s»), конкретно с этим пунктом я никогда не спорил. Мало того, со временем я всё больше убеждался в его истинности. На деле в С для возникновения неопределённого поведения (undefined behaviour, UB) есть гораздо больше возможных причин, чем вы могли предполагать. Все знают, что двойное освобождение памяти, её использование после освобождения, выход за границы объекта (например, массива) и чтение неинициализированной памяти — это UB. Как ни крути, но в контексте работы с памятью C и C++ безопасными не назовёшь. Тем не менее даже эти ошибки продолжают совершаться повсеместно раз за разом.

    habr.com/ru/companies/ruvds/ar

    #ruvds_перевод #программирование #с++ #неопределённое_поведение #undefined_behavior #компиляторы #оптимизация_кода #си #легасикод

  8. На периферии трёх миров: ещё один шаг к нейронной операционной системе

    Я в Termux (планшет, смартфон) пытаюсь понять, как из нескольких строк на чистом Си рождается свободная и не зависимая личность - Нейрон. Этот проект об искусственном интеллекте, который начался не с установки библиотек, а с чертежа в тетради. Здесь машинное обучение - это не абстрактный т тоермин, а физическая подстройка " Виртуальных резисторов ". На нахожусь на периферии трёх миров :

    habr.com/ru/articles/1031400/

    #си #termux #нейронные_сети #машинное+обучение #планшет #смартфон #обучение_с_нуля

  9. Ревью вайб-кода с гнильцой, который притворяется оптимизированным С++ кодом

    Ценность квалифицированного программиста смещается в сторону умения проводить обзоры кода. Генерировать код становится проще, но всё так же важно проверять его с точки зрения качества декомпозиции, корректности реализации, эффективности, безопасности. Посмотрим на примере маленького проекта markus, созданного с помощью Claude Opus, почему важно понимать сгенерированный код и уметь видеть, что скрывает красивый текст программы.

    habr.com/ru/companies/pvs-stud

    #вайбкод #вайбкодинг #вайб_кодинг #информационная_безопасность #c++ #c++20 #си++ #качество_кода #обзор_кода #claude_opus

  10. ICMP-туннель на уровне ядра Linux: передаём TCP/UDP-трафик через эхо-запросы

    Недавно я наткнулся на статью о том, что в ICMP-пакеты можно вставлять произвольные данные . Сразу возникла мысль: а почему бы не попробовать загнать весь трафик через ICMP (да, о существовании ICMP-туннеля я тоже ничего не знал). Так появился проект — ICMP?туннель на уровне ядра, который:

    habr.com/ru/articles/1025264/

    #linux_kernel #си

  11. Место Питона, Си и Паскаля в образовательном процессе

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

    habr.com/ru/articles/1017594/

    #pascal #free_pascal #python #си #образование #обучение_программированию #школа #дополнительное_образование #методика_обучения #программирование

  12. Давайте заглянем в этот самый вайб-код

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

    habr.com/ru/companies/pvs-stud

    #pvsstudio #машинное_обучение #говнокод #си #vibecoding #вайбкодинг #vibeos #информационная_безопасность #статический_анализ #рбпо

  13. Сам себе шедулер (sheduler) — планировщик

    Это мой развернутый ответ на тему организации программных таймеров который я обещал в комментариях (ссылка на комментарии будет ниже). На самом деле это не совсем то что я изначально имел ввиду - хотел рассказать, то есть это на самом деле только часть ответа. Картинки я здесь не стал рисовать, так как они уже у меня нарисованы в одной из предыдущих статей, ссылка тоже будет, но в самом конце.

    habr.com/ru/articles/1010270/

    #си #программирование_микроконтроллеров #шедулер #sheduler #shedule #shedule_task

  14. Почему функции rand и lrand48 из glibc годятся только для Тетриса: о случайных числах всерьёз

    Функцию rand из стандартной библиотеки языка Си для генерации псевдослучайных чисел, наверное, не ругал только ленивый. В довольно известном докладе Rand considered harmful рассказывалось о проблемах с переносимостью, ограниченным диапазоном, многопоточностью, качеством и т.п. Иногда в учебниках упоминают о том, что алгоритм в rand может быть не очень качественным, иметь проблемы с младшими битами, периодом, прохождением статистических тестов. Но крайне редко можно увидеть разбор конкретных критериев, выявляющих дефекты генераторов. В этой статье я постараюсь наглядно показать не просто отдельные недостатки rand , lrand48 и random из glibc, но их полную непригодность для каких-либо вычислений в принципе. Также вы увидите превосходство поточных шифров над minstd , линейным конгруэнтным генератором из 1980-х, не только в качестве, но и в производительности.

    habr.com/ru/articles/1005118/

    #Генераторы_псевдослучайных_чисел #glibc #си #c++ #математическая_статистика #математическое_моделирование #тестирование_по

  15. Непотребные алгоритмы, ненормальные трюки и всевозможные хаки на C

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

    habr.com/ru/companies/timeweb/

    #c #трюки #хаки #фаны #алгоритмы #структуры_данных #ненормальное_программирование #си #программирование #timeweb_статьи

  16. Первые мысли питониста о Си на примере игры «камень-ножницы-бумага»

    Привет, Хабр! Недавно я задумался: Python — не единственный инструмент, которым я хочу оперировать в своих инструментах. Python, понятно, легко освоить и он применяется везде, но язык-то не идеальный! Ресурсов требует много, да и время выполнения не ахти, а учитывая нынешние темные времена... Мне нужно что-то получше. В общем, тут я вздумал попробовать Си.

    habr.com/ru/articles/1002612/

    #рандом #си #python #питон #новичкам #история_it #каменьножницыбумага

  17. Невозможные возможные трюки и интересные алгоритмы на C

    Доброго времени суток, господа и дамы! Иногда у некоторых людей возникает желание заняться откровенным непотребством в программировании — то, что не несет практической пользы напрямую, но раздвигает границы дозволенного. А иногда позволяет найти необычные эффективные решения. В этой статье я хочу рассказать вам об интересных алгоритмах, и невозможных возможных трюках. Идея написать эту статью зародилась из моего поста , после него я начал серию статей, которая раскрывала много интересных моментов — от математических алгоритмов и оптимизации до ГПСЧ и битовых трюков. Если вы видите на экране эту часть нашей бесконечной саги о ненормальном программировании на C, значит, мы с вами прошли уже немало. В этой статье будет еще порция свежих алгоритмов, фанов, трюков, еще больше магии и скорости! Добро пожаловать в новую часть. Прошу под кат — там будет жарко, быстро и очень, очень интересно.

    habr.com/ru/companies/timeweb/

    #C #трюки #хаки #фаны #алгоритмы #алгоритмы_поиска #си #ненормальное_программирование

  18. Думал что дебаггер, а на деле HexEdit: Основы работы с опкодами и патчинга для начинающих

    Привет Хабр, и всем читающим! Сегодня разберемся в патчинге, в отличиях между ним и дебаггингом, и поймем как пользоваться hex-редактором для реверс-инжиниринга. (И да, я когда писал статью, перепутал термины Debugger и Hex-editor, и только под конец понял что стоит статью изменить, прошу учитывать) Дисклеймер важен, его пожалуйста прочитать обязательно! Ну и приятного чтения, господа :) Начать Исследование

    habr.com/ru/articles/991524/

    #реверсинжиниринг #дебаггинг #hexкоды #reverseengineering #опкоды #ассемблер #си #ghidra #байткод #hex_редакор

  19. Синтезатор на PSP с подключением MIDI клавиатуры

    Я сделал синтезатор на PSP с управлением по MIDI! Приложение максимально простое, 4 голоса (квадрат, пила, треугольник, синус), огибающая, фильтр и возможность сохранять 5 пресетов. MIDI клавиатура через классическую схему с оптопарой подключается в PSP's headphone remote (HPRM), тот самый порт рядом с гнездом 3.5мм для наушников

    habr.com/ru/articles/991224/

    #psp #PSPSDK #diy #электроника #homebrew #pcb #uart #MIDI #синтезатор #си

  20. Спасаем Бингус, и как я поправил ИИ помощника. Мануал для новичков

    Ещё одна очередная задачка! На этот раз нам предстоит спасти нашего друга! Bingus'а! Давайте же спасём его! А ещё посмотрим на то как ИИ к сожалению, не смогла помочь нам. Спасти Bingus

    habr.com/ru/articles/988732/

    #реверсинжиниринг #декодирование #reverseengineering #reversing #ghidra #crackme #скриптинг #си

  21. Очередной CrackMe или Как я мучался с Ghidra. Мануал для новичков

    Думаю, новички в реверс-инжиниринге всегда хотели бы разбираться во всем? Но язык профессионалов не всегда понятен? Что-ж, я попробую помочь вам в этом нелегком деле! Начать погружение

    habr.com/ru/articles/988388/

    #Ghidra #Crackme #Static_Analysis #reverseengineering #linux #decompilation #декомпиляция #реверсинжиниринг #ассемблер #си

  22. Ненормальные непотребства, трюки, хаки и алгоритмы на C

    Доброго времени суток, господа и дамы! Иногда у некоторых людей возникает желание заняться откровенным непотребством в программировании — то, что не несет практической пользы напрямую, но помогает развлечься. И я — не исключение. В этой статье я хочу рассказать вам о лайфхаках, трюках (магических и не очень), алгоритмах на языке C! Идея написать эту статью зародилась из моего поста , после него я начал серию статей, которая раскрывала много интересных моментов — от математических алгоритмов и оптимизации до ГПСЧ. Если вы видите на экране эту шестую часть нашей бесконечной саги о ненормальном программировании на C, значит, мы с вами прошли уже немало: от конвертации миль в километры через Фибоначчи до ГПСЧ и быстрых вычислений. В этой статье будет еще порция свежих хаков, фанов, трюков, еще больше магии и скорости! Добро пожаловать в шестую часть. Прошу под кат — там будет жарко, быстро и очень, очень интересно.

    habr.com/ru/companies/timeweb/

    #c #ненормальное_программирование #трюки #хаки #фаны #алгоритмы #структуры #си #timeweb_статьи

  23. IBM 5150 и разработка под самый первый PC

    Есть много интересных способов провести новогодние праздники, но поскольку я уже старенький — вместо классических алкогольного угара, ведра оливье и просмотра «Иронии судьбы» выбрал себе более редкое и необычное занятие.

    habr.com/ru/articles/982954/

    #5150 #pcdos #borland #си #эмуляторы #dosbox #pce #freebsd #8080

  24. [Перевод] Создаём замыкания С из замыканий Lua

    Когда я взялся полноценно портировать API Windows с C на Lua, одна из самых интересных и занимательных задач заключалась в том, как делать обратные вызовы к коду C из функций Lua. Без них значительная часть API — например, WNDPROC – осталась бы бесполезной.

    habr.com/ru/articles/981388/

    #ассемблер #lua #си #api

  25. Фантастические трюки на языке C

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

    habr.com/ru/companies/timeweb/

    #С #tricks #hacks #funs #алгоритмы #хаки #трюки #си #ненормальное_программирование

  26. Моё знакомство с процессором Эльбрус-8СВ. Оптимизирую сложение массива байтов

    Месяц назад мне в телеграм написал человек и предложил доступ к системе с процессором Эльбрус-8СВ. И конечно же я согласился. Так как мне интересно. Не каждый день неизвестные люди предлагают доступ к удалённым хостам. Разве может что-то пойти не так?

    habr.com/ru/articles/978730/

    #эльбрус8св #эльбрус #e2k #vliw #simd #интринсики #ассемблер #си #оптимизация_кода

  27. ООП и Синглтон(На примере простого консольного рендера) в Си

    Всем привет, это Stalker320. Я вернулся на Хабр, осознав несколько концепций, с интересным подходом к разработке ПО с использованием Си.

    habr.com/ru/articles/976256/

    #ооп #си #программирование #программирование_игр #консольные_игры

  28. (en original ^)
    если библиотеку скомпилировать и статичесяи .a и динамически .so, и подключить обе к программе (gcc -o main main.o utils/libutils.a -Lutils -lutils)... бинарник будет знать функции из библиотеки, но! без динамической .so библиотеки откажется запускаться! в readelf будут определены адреса функций, но при этом эти функции с определёнными адресами будут включены и в верхний динамический блок😱 что заставляет бинарник искать .so библиотеку

    #программирование #линукс #си #с

  29. История одного патча II: приключения в FreeBSD

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

    habr.com/ru/articles/960300/

    #freebsd #acpi #батарея #батарея_ноутбука #си

  30. Динамическая память и реализация динамического массива в C

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

    habr.com/ru/articles/949024/

    #массив #память #динамическая_память #си #структуры_данных #программирование #динамический_массив