• Как автоматизировать сборку тулзов в убунте?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Есть такая тулза. Во FreeBSD это называется порты, в gentoo/calculate - портеджи (portage). Это набор инструкций, который описывает, как собрать ту или иную вещь с сырцов - с учетом нюансов размещения конфигов, зависимостей и тети Моти. Работает как из пушки :)

    Одна проблема - идеология бубунты, как пакетного дистриба - полностью отрицает подобные вещи. Идеология любого пакетного дистриба "мы майнтайнеры, мы боги, вы никто, что и как мы собрали - то и будете вкушать". И такая идеология устраивает большинство (а меньшинство, которое она не устраивает - давно освоило дистрибы, где это работает - гента/calculate, арч (в нем вроде бы тоже есть, но не проверено). Там правда порог входа выше, чем в бубунте, например просто потому что то, что в бубунте делается автоматом при установке пакета, зачастую нужно делать самому - и самое главное - понимать что и зачем ты делаешь (а с этим у нынешних linux-чайников ничуть не лучше чем у их собратьев в винде)
    Ответ написан
    1 комментарий
  • Как сделать графический интерфейс для своей ОС на rust?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Начать можешь с этого туториала - https://os.phil-opp.com/vga-text-mode/
    В нем реализуется простой текстовый интерфейс, но как пример этого достаточно: объясняются основные концепции как буфер видео памяти, представление букв и т.д.
    Ответ написан
    Комментировать
  • Почему имя параметра может совпадать с именем члена класса?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Как плюсы понимают, что с одной стороны параметр, а с другой - член класса?

    Это называется семантический разбор. На вход компилятору подается исходный текст, на выходе - дерево выражений (очень грубо говоря).
    Существуют правила, по которым эти деревья строятся. Например, БНФ.
    Вот в них и описывается что и где может находиться. В данном случае, в списке инициализации могут находиться только члены класса, но ты передаешь еще и параметры. В этот момент компилятор сходит с ума, т.к. нарушаются эти правила .
    P.S. чтобы подобных проблем не было, то для полей классов используй префикс подчеркивания
    Ответ написан
    7 комментариев
  • Предложите хорошую литература по электронике (в основном цифровой) для новичков?

    msHack
    @msHack
    Есть основополагающие книги по ним все обучались

    Борисов В.Г. Юный радиолюбитель
    Б.С Иванов Электронные самоделки
    Жеребцов И.П. - Радиотехника (1954)

    Скачать можно в билиотеках
    Библиотеки
    LibGen
    Z-Library
    Sci-Hub
    Anna's Archive
    или вот ссылка
    https://disk.yandex.ru/d/6gae4iIPRxvELg
    Ответ написан
    Комментировать
  • Почему команда IN не меняет флаги процессора?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Во-первых, а что если там был 0? Тебе все равно придется писать свои костыли для проверки чтения. Разница будет в том, что больше процессорного времени будет затрачено
    Во-вторых, предположу, что это также для унификации чтения/записи. Легче работать, когда работа ведется по одному шаблону и не нужно постоянно помнить подобные детали.
    Ответ написан
    1 комментарий
  • Стоит ли перепоступать в другой вуз ради айти?

    то меня не возьмут именно с дипломом по такой специальности.

    Тут всё просто - не показывай диплом. Без диплома на работу вполне берут.
    Жёстко на диплом смотрят только в оборонке и на госпредприятиях.

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

    Да и возможность поработать учителем, если вдруг не сможешь найти работу в IT или вдруг настанет какой-то кризис - будет тоже только плюсом.

    Так что лично я бы не менял вуз.
    Ответ написан
    Комментировать
  • Где найти недостающие куски пазла, что лежат между сеньором и архитектором?

    @12rbah
    В общем, есть идеи, чтобы такого почитать, чтобы перейти на следующий уровень?
    Мб посмотреть исходники проектов типа wireshark или libre office? Можно поискать курсы(скорее это серии видосов) по system design - можно так и вбить в ютуб/гугл "system design playlist/course", часто разбирают вполне рабочие решения
    Ответ написан
    1 комментарий
  • Существует RISC процессоры с архитектурой фон Неймана?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Обычно RISC процессоры строят по Гарвардской архитектуре, а CISC - по архитектуре фон Неймана. Бывают другие варианты?

    Думаю, что дело в том, что разделение между программной памятью и памятью данных естественным образом возникает в процессорах с конвейерной архитектурой, лежащей в основе множества реализаций RISC-процессоров. Первая стадия конвейера читает инструкцию из памяти и может делать это каждый цикл. Стадия обмена с памятью может читать и писать в память, и тоже может делать это каждый цикл. Если объединить эти две памяти, то для доступа к ним либо потребуется арбитр, и тогда первая стадия конвейера будет простаивать во время чтения/записи данных, либо потребуется память с двумя портами, что требует существенно больше ресурсов. В любом случае такое объединение на уровне процессорного ядра -- это пессимизация дизайна, приводящая к его преждевременному усложнению и ухудшению производительности. Думаю, что именно поэтому процессорные ядра с конвейером выводят наружу две шины и оставляют следующему уровню интеграции решение о том, как с ними поступать. И поэтому в учебниках рассматривающих проектирование процессоров (например Харрис и Харрис или Паттерсон и Хеннесси) программная память и память данных идут поотдельности.
    Ответ написан
    Комментировать
  • Существует RISC процессоры с архитектурой фон Неймана?

    @pfg21
    ex-турист
    Нет никаких привязок CISC или RISC архитектуры к Гарвардской или фон Неймана архитектуре.
    вы что то не правильно поняли.
    Гардвардской или фон Неймана нет никакого дела до длины команды, с их точки зрения это просто "потоки битов" (чуть не сказал данных :) ).
    как и CISC и RISC командам нет никакого дела как их будут пересылать, вместе с данными али отдельно.
    Ответ написан
    Комментировать
  • Что за странная запись в С++?

    @MarkusD Куратор тега C++
    все время мелю чепуху :)
    Для обращения к любому выражению по его имени в C++ имеется механизм поиска имен. Это довольно сложный и многоэтапный механизм, в результате которого исходя из контекста обращения и самого имени транслятор силится понять что же там такое прекрасное имел в виду писатель кода.

    Насколько видно, базово механизм делится на две ветви: поиск квалифицированных имен и поиск неквалифицированных имен.
    И именно в этот момент речь заходит о т.н. квалификации имени выражения.
    Квалификация имени выражения тем полнее, чем точнее от самого корневого пространства имен (т.е. от ::), через все пространства имен и пространства составных типов, написано имя выражения.

    Имя Process::WaitForExit, хоть и является уже квалифицированным за счет указания пространства типа, в котором метод объявлен, все еще остается недостаточно квалифицированным чтобы считаться полностью квалифицированным.
    Вызов метода по его полной квалификации выглядел бы так:
    process.::base::Process::WaitForExit(&exit_code);

    Для чего это нужно. Как уже было сказано выше, UNL силится понять что там задумал писатель исходя из контекста кода и используемого имени. И иногда UNL в этом деле не преуспевает.
    Например если шаблон типа наследуется от шаблона другого типа и пытается в своем интерфейсе использовать поля или методы своего родителя. Иначе транслятор просто не найдет в шаблоне родителя того, к чему там не было прямых обращений.
    Или, например, более полная квалификация требуется для невиртуального вызова виртуального метода.
    Полная квалификация всегда требуется для обращения к выражению внутри пространства имен из кода в другом пространстве имен.
    Еще полная квалификация всегда требуется для обращения к статическим выражениям структур и классов снаружи этих структур и классов.

    Для чего нужно было писать полную квалификацию конкретно в приведенном коде?
    А кто его знает. Метод base::Process::WaitForExit[?] не является виртуальным чтобы сделать предположение о невиртуальном вызове.
    Просто автору так захотелось, наверное.
    Ответ написан
    2 комментария
  • Как найти утилиту для проверки COM объектов?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    https://learn.microsoft.com/en-us/windows/win32/co...

    ставите разработку для си и там где то внутри эта утилита, так же есть и в sdk
    Ответ написан
    1 комментарий
  • Существуют ли курсы с "арендной" моделью?

    Есть. Тот же JavaRush, например, имеет подписочную модель.
    Ну и при оплате через рассрочку или даже всей суммы целиком - тебя никто не запрещает отказаться от курса и запросить возврат суммы за недополученные уроки.
    Ответ написан
    2 комментария
  • Что не так с кавычками в bash?

    saboteur_kiev
    @saboteur_kiev Куратор тега bash
    software engineer
    Перед тем как выполнить любую команду происходит parameter expansion
    Поэтому если выполнить команду
    find . -name a*
    и в каталоге есть файлы a1, a2 и a3, то баш проведет expansion и на самом деле попытается выполниться команда
    find . -name a1 a2 a3
    что будет синтаксической ошибкой, так как непонятно что такое a2 и a3

    А если написать так:
    find . -name "a*"
    то параметр "a*" уже отправится именно в find и он его распарсит согласно всем правилам wildcard в линукс

    P.S. это касается выполнения любой команды. Просто в find . -name люди чаще всего попадаются.
    А так можно поэксперементировать на
    echo a*
    echo "a*"
    Ответ написан
    Комментировать
  • Почему Doom портируют куда только можно?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Doom - это была одна из первых игр где была реализована в полной мере техника BSP (Binary-Space-Partition). Это позволяло в реальном времени очень быстро сортировать и рендерить полигоны без привлечения Z-Buffer. (Рендеринг был чисто прогарммный. На то время еще не было ускорителей 3Д графики и видеокарточка умела только отображать память на экран. ) Игра не была по настоящему трехмерной. А только рализовывала 1 этаж. Рендерить надо было только пол и потолок. Для каждой точки где стоял персонаж. И наклонных горизонтальных поверхностей в ней не было как раз по этой причине. Ее называли 2.5-мерной игрой. Было также много идей оптимизации вычислений. Например вместо вещественных чисел - целые 32х битные с fixed point.

    В скобках замечу что это был 1993 год и на дворе было царство Intel 286/386. Это были машины с тактовой частотой меньше ваших телефонов (Pentium только только релизнулся и еще ни у кого не был). И трехмерный Doom был прорывом. На моем тогда еще 386SX от подтормаживал но играть было можно. И со звуком для SoundBlaster. И конечно это было лучше чем Wolfenstein.

    Аналогичное было реализовано в Duke Nukem 3d. Но Дюк был менее популярен ИМХО. Были и масса других 3д игр в жанке RPG но они были не такие динамичные. Походовые в основном.

    Вобщем сегодня если вы гейм-дев то вам желательно хотя-бы ознакомиться с техниками оптимизации которые были в Doom. Можно почитать и про Quake но это просто развитие идеи BSP деревьев для полного 3D с 5 или 6 степенями свободы. Еще можно почитать про реализацию игры Esctatica. Там не на полигонах а на шариках или эллипсах реализована игровая графика. Тоже интересно.

    UPD: Заменил MMORPG на RPG.
    Ответ написан
    6 комментариев
  • Что делать с кросс-компиляцией на gcc?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    apt-get install gcc-aarch64-linux-gnu

    после этой команды команда dpkg -L gcc-aarch64-linux-gnu покажет тебе содержимое пакета, откуда ты узнаешь, что имя компилятора -- aarch64-linux-gnu-gcc
    Ответ написан
    1 комментарий
  • Как реализовать Алгоритм Брезенхэма?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Брезенхем не использует вещественные числа. В этом его суть. Вещественные появляются просто в ходе доказательства его правильности. Но сама реализация - только на целых числах.
    Ответ написан
    4 комментария
  • Может кто-нибудь дать реальную задачу на которой можно применить ООП?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    https://habr.com/ru/post/87205/
    читайте ООП в общем то делалось для удобства, как и паттерны
    Ответ написан
    Комментировать