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

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

Send message

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

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

Ок. А теперь всё то же самое, но для Gentoo!
А я-то думаю, что за удивительно "знакомая" история?)

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

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

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

Что до стека 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-решений в целом, чтобы это понять.

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

Я конце 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-компаний Запада, висящие в каждом техническом ВУЗ-е страны с предложениями переезда? Может так проще вообще всё распродать? Они не стесняются грести под себя, почему должны стесняться мы?

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

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

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

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

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

Как говорится, «нести надо в дом, а не из дому».
А надо ли состязаться? Имеется внутренний, не освоенный рынок. Уже другой разговор, что усилиями правительства РФ он практически убит. Автор рассматривает ситуацию с положения задачи полноценного импортозамещения. Речи не идёт о «переводе» или «локализации» кодовой базы. Речь о построении всей логики отечественного ПО на русском языке изначально, игнорируя английскую терминологию, понятийный аппарат и инструментарий. Ни взаимодействие, ни состязание со «всем миром» тут не нужно.
Ну, примеры по теме статьи может привести только автор. Я же хотел бы обратить внимание, что оптимизирующий компилятор успешно складывает цепочки вызываемых функций и пересчитывает все константные значения. Т.е., условно говоря, port->setPin(13); превращается в GPIOx->RegName = (GPIOx->RegName & 0xFFFFEFFFU) | 0x00001000U; самим компилятором, а потому бит меняется за минимум операций. А единовременное переключение группы пинов вероятно разве что в том случае, когда вообще весь алгоритм управления периферией может уложиться в логику конечного автомата. Только редко когда проектам на слабых контроллерах нужна подобная скорострельность.
Смотря какова конечная задача. Тем более, что люди продолжают по привычке считать, что код с несколькими слоями трансляции вызовов будет таким же в результирующем бинаре. Т.е., про оптимизацию компилятором успешно забывают, а потом кидаются экскрементами в код, облегчающий конфигурацию. Зато стоически молчат о том, как тяжко копаться в их «быстром» и «однопроходном» коде.
Хоть один здравомыслящий человек поднял эту тему на Хабре. Огромное Вам спасибо! К сожалению, мы живём и работаем в обществе людей, давным-давно продавших свою Родину. И результат опроса это ещё раз подтверждает.

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

И, да. Я старательно избегаю слова «российский», вам не показалось.
А теперь можете обижаться, сколько влезет.
Увы, но так и не раскрыли архиважную тему для этого языка: Embedding его из других языков (того же C/C++) без извращений. Т.е., напрямую, прилинковать библиотеку, инициализировать, прочитать файл исходника и скормить в функцию, получить выхлоп.
А разве тут нужен точный перевод? Куда лучше подойдёт вольная отсебятина, надо только держаться в русле контекста. Полагаю, для перевода этого текста лучше не понимать английского или вовсе его презирать, как я. =)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Information

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