Pull to refresh
-10
Karma
0
Rating
Алексей @KroTozeR

Программист C/C++

Как Linux заменит Windows в РФ

А что не так в Calculate Linux?

Российский микропроцессор Эльбрус 8С

Работал на предприятие, наследницу ранее советского НИИ. В 90-ых, когда заказов не было, от них отделилась группа инженеров и ударилась в модный технологический бизнес. Сейчас эта контора до сих пор живее всех живых. Они скупили у предприятия все площади. НИИ стало арендовать помещение у них. Позже к ним переехал полным составом другой НИИ, лишившийся за долги помещений. Вместе с памятником войнам-освободителям Второй Мировой. Ещё позже (уже при мне) предприятие, входившее в холдинг, вместе с подселенцами были проданы крупному производителю военой техники. Руководство холдинга приказало перевести наш отдел в их дочернюю контору через увольнение. В процессе перевода у нас отняли половину оборудования, т.к. у них бывший завхоз втихаря приторговывал техникой с Авито. Позже нас согнали в самый гнилой корпус под самый Новый Год, причём жёстко-административными пинками. Спустя год мы съехали (опять под Новый Год) в здание бывшей больницы в жопе города. В процессе переезда руководство наших "уже не товарищей" приказало тормозить грузчиков и вскрывать ниши упакованные коробки и воровать оттуда компьютерную технику. Сейчас мы только разместились в той самой больнице, но выясняется, что мы там без договора аренды и только на год, потом опять переезд... куда-то в другую жопу города. Надеюсь, теперь, хоть, воровства не будет.
...
О-б-о-р-о-н-к-а...

Установка принтеров Canon серии LBP в Ubuntu

Ок. А теперь всё то же самое, но для Gentoo!

Из студента-юриста в программисты на C/C++: личный опыт

А я-то думаю, что за удивительно "знакомая" история?)

Тут ключевой нюанствоё собственное желание поменяться. Это — тяжкий труд и не всем он под силу.

Самые главные проблемы на пути профессионального роста ещё впереди. Предстоит ощутить полную тяжесть стыка "менеджеры — отдел разработки". Захочется материться, бить стены, искать справедливости, но всё это — бесполезно. Потом будет несколько стадий выгорания и восстановления.

А потом в стране случится переворот,… и приспосабливаться придётся уже под новые условия работы. Кто знает, может и на той самой, пресловутой, «оборонке».

Что до стека Qt/C++ — всегда забавляла попытка "объединить" эти два понятия в единое. Так же, как и с «C/C++». Разные языки, разные инструменты, разные парадигмы, а вместе с ними и — разные сферы применения.

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

Любая программа на "современном" языке хороша до тех пор, пока варится в своей "песочнице". Как только задачи пересекаются с системными, наружу вылезают «кишки». Как с той же машиной Java, что не умеет адекватно общаться с API ядра ОС.

Нет, это не значит, что надо всем закопаться с СИ и C++. Но до тех пор, пока Embedded на СИ, можно лишь саркастически улыбаться на выкоблучивания любителей GoLang и Rust. Пока большая часть автоматики ОС написана на C++, даже Python, на котором написана большая часть скриптов GNU/Linux, не станет «системным» языком.

Ну а что до Qt, то тут надо понимать, какова роль этого диалекта C++, пытающемся оставаться в роли "фреймворка". Цена разработки на нём ниже, чем на большинстве альтернатив, но она скрадывается аппетитами Qt-Project. Потому-то лишь оборонка, традиционно кладущая болт на лицензию, может получить преимущество от широкого применения Qt и ряд Open Source проектов. Я уж не говорю про KDE. Им бы отвязаться от C++ и породить свой язык программирования. Для них это оправдано.

Хотя, в целом, связка Ubuntu + Gnome 3 делает популярным фреймворк GTK+.

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

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

STM32 абстрагируемся от регистров CMSIS при настройке GPIO

«И однотипная настройка\установка нескольких битов в порте вместо одного прохода потребует несколько: на каждый бит по отдельности. Плюс «switch-case» сейчас не в моде?»
Вся ветка обсуждения тянется от этого поста.

STM32 абстрагируемся от регистров CMSIS при настройке GPIO

Но сразу ломается, когда изменяется логика визуализации. Тут, внезапно, оказывается, что каждый пиксель — сам по себе. Я же не говорю, что плохо оптимизировать код под конкретную задачу, но человек-то размышлял об удобстве кода, а не решения той самой конкретной задачи. Это — из категории размышлений вида: «контроллер — это компьютер?».

Я конце 90-ых, имея под рукой IBM AT-286 с EGA-адаптером, для достижения скорострельности полез в системное программирование и стал управлять буфером кадров напрямую. Так там порядок байт бит-масок пикселей в буфере отличался от процессорного. К тому же, один байт — горизонтальная строка, длиной с ширину символьного сегмента (8x16: 80x25 для VGA и 8x14: 80x25 для EGA). У EGA-режима памяти хватало на два независимых кадра, а VGA — на 1,5 — соответственно один постоянно видимый.

Для отрисовки примитивов (это ещё никакого антиалиасинга) приходилось пересчитывать сдвиги битовых масок и накладывать их через смещения по коэффициенту. Но и то API выглядел примерно так:

graph->drowPix(x, y);
graph->drowLine(x1, y1, x2, y2);
graph->drowSquare(x1, y1, r);

И т.д.

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

Но то время ушло. Теперь даже жалкая AtMega тактуется выше, чем тогда процессор (8-12 МГц было). Теперь стало глупо заниматься побайтовой оптимизацией, хотя искренне жаль…

О русском языке в программировании

Разве кто-то утверждает, что идеи прошлого были лишены изъянов? Сейчас США ввели санкции против КНР не по идеологическим, а вполне себе по экономическим мотивам. И что, мы должны опять на кого-то ориентироваться?

Что такого сложного и непонятного в мысли, что должно существовать и развиваться своё? А своё — это значит своё, без какой-либо зависимости.

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

О русском языке в программировании

Опять же, постом выше: ну кто сказал, что надо обязательно опускать «железный занавес»? Параллельные разработки, но независимые. Не надо пускать иностранцев в свой огород, не предназначенный для них ни коим образом. И совершенно наплевать, какое там отставание. Это отставание рано или поздно перейдёт в иной путь развития, не позволяющий сравнивать наработки напрямую.

Отечественным разработкам вообще должно быть наплевать на весь остальной мир!

Боязнь «отсталости» — это проявление потребительского эгоцентризма, который жаждит всего самого нового и современного. А как можно доверять таким людям право выбирать путь развития целой отрасли? Они готовы выбросить на помойку последнее отечественное, если оно отстало от общемирового.

Предлагать добровольно развивать зависимость от де-юре американской программной базы под лозунгами «обмена опытом» может только… Ну понятно кто, в общем. Самое отвратительное, что эти люди не видят никакой крамолы и преступления в своей логике.

О русском языке в программировании

Аналогичный вопрос: в чём смысл глобализации? Впасть в зависимость от тех, кто не стесняется протекционных мер? Сесть на иностранные решения в самых критичных областях экономики государства и потерять контроль? Продолжать поддерживать экспортное отношение в угоду машине IT США, под красивыми лозунгами унификации, международного взаимодействия и заимствования закрывать глаза на плакаты крупных IT-компаний Запада, висящие в каждом техническом ВУЗ-е страны с предложениями переезда? Может так проще вообще всё распродать? Они не стесняются грести под себя, почему должны стесняться мы?

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

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

Зачем сразу догнать и перегнать-то? Что это за костное шаблонное мышление???

Не надо ни с кем гнаться! Отечественное ПО на отечественных языках под отечественную ОС для отечественного «железа» имеет прекрасную возможность ни с кем ни за что не гоняться и не драться.

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

Как говорится, «нести надо в дом, а не из дому».

О русском языке в программировании

А надо ли состязаться? Имеется внутренний, не освоенный рынок. Уже другой разговор, что усилиями правительства РФ он практически убит. Автор рассматривает ситуацию с положения задачи полноценного импортозамещения. Речи не идёт о «переводе» или «локализации» кодовой базы. Речь о построении всей логики отечественного ПО на русском языке изначально, игнорируя английскую терминологию, понятийный аппарат и инструментарий. Ни взаимодействие, ни состязание со «всем миром» тут не нужно.

STM32 абстрагируемся от регистров CMSIS при настройке GPIO

Ну, примеры по теме статьи может привести только автор. Я же хотел бы обратить внимание, что оптимизирующий компилятор успешно складывает цепочки вызываемых функций и пересчитывает все константные значения. Т.е., условно говоря, port->setPin(13); превращается в GPIOx->RegName = (GPIOx->RegName & 0xFFFFEFFFU) | 0x00001000U; самим компилятором, а потому бит меняется за минимум операций. А единовременное переключение группы пинов вероятно разве что в том случае, когда вообще весь алгоритм управления периферией может уложиться в логику конечного автомата. Только редко когда проектам на слабых контроллерах нужна подобная скорострельность.

STM32 абстрагируемся от регистров CMSIS при настройке GPIO

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

О русском языке в программировании

Хоть один здравомыслящий человек поднял эту тему на Хабре. Огромное Вам спасибо! К сожалению, мы живём и работаем в обществе людей, давным-давно продавших свою Родину. И результат опроса это ещё раз подтверждает.

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

И, да. Я старательно избегаю слова «российский», вам не показалось.
А теперь можете обижаться, сколько влезет.

PHP 8 — Что нового?

Увы, но так и не раскрыли архиважную тему для этого языка: Embedding его из других языков (того же C/C++) без извращений. Т.е., напрямую, прилинковать библиотеку, инициализировать, прочитать файл исходника и скормить в функцию, получить выхлоп.

Какой язык — D, Go или Rust имеет лучшие перспективы заменить C и почему?

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

Примерно так.
Хоть моя предвзятость, как соавтора D, очевидна, постараюсь быть предельно откровенным. Я слежу за Go и Rust, но куда лучше знаю грязные стороны D. Настоятельно советую коллегам по статусу из сообществ Rust и Go тоже поделиться откровениями. Итак, начну:

Для начала, к вопросу надо привлечь C++. Как ни рассматривай, в поддержку СИ или в качестве одного из кандидатов на его замену, язык C++ является ключевым в обсуждении. Он ближе всех к СИ и, очевидно, является развитием идеи. Однако почтенный возраст так же делает его целью для замены.

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

Как мы закрываем уязвимости в ОС Astra Linux Special Edition

А зачем ядро пересобирали?
Патчил на поддержку IME2 — стендовые платы от Intel игнорировали обыкновенные ACPI-вызовы, а потому ядро не могло завершить Init-0.

Как мы закрываем уязвимости в ОС Astra Linux Special Edition

Она и есть более закрытая. РусБитТех — коммерческое предприятие, у которых в заказчиках разные НИИ оборонного значения. То, что раньше было ФГУП-ами и принадлежало государству, а теперь пущено на самообеспечение и взаимную конкуренцию.

Я общался с Базальт СПО (AltLinux) и бывал в гостях в офисе и на конференциях. Придраться-то есть к чему, тоже далеко не всё в порядке. Но там чувствуется исключительно коммерческое основание компании, не оборонное.

Дело в том, что Базальт СПО (ранее «Альт Линукс») — это в прошлом российское отделение Mandrake (франция). Но ещё задолго до загибания мейнстрима они послали основной офис куда подальше, основав свою компанию и свой дистрибутив. Mandrake не спасло даже превращение в Mandriva куском коллектива разработчиков — тоже загнулись. Как следствие, АльтЛинукс стали мейнстримом сами по себе, но плотно встроенным в сообщество.

РусБитТех же с самого начала не имели такой привязки, а потому создали форк дебиана на оборонный манер (Смоленск), оставляя в доступе открытую версию (Орёл). По ряду моментов они «обогнали» конкурентов на низком старте. В частности по заточке на планшет, а сейчас и мобильники. Но у них та же проблема, что и у большинства оборонных разработок, основывающихся на Open Source — слабая связанность с этим сообществом.

И дело не в желании/нежелании, а в финансовой стороне вопроса — с точки зрения военного заказчика, Open Source не существует. Есть закрытая разработка отдельного оборонного предприятия и всё. И чем дальше отрывать дистрибутив от основания, тем больше потом потребуется усилий для внедрения в него дополнительного ПО, а поддержка связи с сообществом тормозит развитие продукции.

Дилемма, однако… Почему и говорю: для «оборонки» необходимо разрабатывать ОС целиком с нуля.

Как мы закрываем уязвимости в ОС Astra Linux Special Edition

Не путайте тёплое с мягким. Пересборка ядра была не по причине записи в tmp. Там проблема решалась за пару минут.

Как мы закрываем уязвимости в ОС Astra Linux Special Edition

Она и есть более закрытая. РусБитТех — коммерческое предприятие, у которых в заказчиках разные НИИ оборонного значения. То, что раньше было ФГУП-ами и принадлежало государству, а теперь пущено на самообеспечение и взаимную конкуренцию.

Я общался с Базальт СПО (AltLinux) и бывал в гостях в офисе и на конференциях. Придраться-то есть к чему, тоже далеко не всё в порядке. Но там чувствуется исключительно коммерческое основание компании, не оборонное.

Дело в том, что Базальт СПО (ранее «Альт Линукс») — это в прошлом российское отделение Mandrake (франция). Но ещё задолго до загибания мейнстрима они послали основной офис куда подальше, основав свою компанию и свой дистрибутив. Mandrake не спасло даже превращение в Mandriva куском коллектива разработчиков — тоже загнулись. Как следствие, АльтЛинукс стали мейнстримом сами по себе, но плотно встроенным в сообщество.

РусБитТех же с самого начала не имели такой привязки, а потому создали форк дебиана на оборонный манер (Смоленск), оставляя в доступе открытую версию (Орёл). По ряду моментов они «обогнали» конкурентов на низком старте. В частности по заточке на планшет, а сейчас и мобильники. Но у них та же проблема, что и у большинства оборонных разработок, основывающихся на Open Source — слабая связанность с этим сообществом.

И дело не в желании/нежелании, а в финансовой стороне вопроса — с точки зрения военного заказчика, Open Source не существует. Есть закрытая разработка отдельного оборонного предприятия и всё. И чем дальше отрывать дистрибутив от основания, тем больше потом потребуется усилий для внедрения в него дополнительного ПО, а поддержка связи с сообществом тормозит развитие продукции.

Дилемма, однако… Почему и говорю: для «оборонки» необходимо разрабатывать ОС целиком с нуля.

Как мы закрываем уязвимости в ОС Astra Linux Special Edition

Ограничения на записи в tmp — очень важное ограничение «не под админом». Там можно ещё кучу приколов понабрать, из-за которых словосочетание «оборонный Linux» начинает вызывать судороги.

в Астре нет selinux
Ну, внешнее проявление его сильно напоминает, что не отменяет. Шаг влево, шаг вправо… Из-за чего приходилось вырывать демоны с корнем, пересобирать ядро, чтобы оно начало себя вести как нормальный GNU/Linux.

Впрочем, закроем уже бесцельный спор. Я не собираюсь выписывать весь опыт работы с «оборонными» дистрибутивами GNU/Linux, гордо называемыми «российскими операционными системами» по баг-треккерам. Хватило общения с ними по горло…

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity