• Предложите хорошую литература по электронике (в основном цифровой) для новичков?

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

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

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

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

    vabka
    @vabka
    Токсичный шарпист
    то меня не возьмут именно с дипломом по такой специальности.

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

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

    Да и возможность поработать учителем, если вдруг не сможешь найти работу в 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 комментарий
  • Существуют ли курсы с "арендной" моделью?

    vabka
    @vabka
    Токсичный шарпист
    Есть. Тот же 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/
    читайте ООП в общем то делалось для удобства, как и паттерны
    Ответ написан
    Комментировать
  • Зачем нужны корневые сертификаты?

    CityCat4
    @CityCat4 Куратор тега Цифровые сертификаты
    Внимание! Изменился адрес почты!
    Вся система PKI - она иерархична и построена на доверии. Больше ни на чем. Только на доверии, которое достаточно один раз обмануть, чтобы перестать доверять системе в целом.

    Есть некое множество контор, которые выпускают SSL-сертификаты. Они не самые лучшие и не самые правильные, просто однажды они собрались и решили замутить бизнес. Почему все доверяют им? Да просто потому что до недавнего времени не было поводов их обвинить в мошенничестве - там все в порядке (было) с "внутренней полицией", которая нарушителей выкидывала нафиг с пляжа.
    Ну и - самое главное - все доверяют им, потому что их корневые сертификаты размещены в хранилищах корневых сертификатов у Windows и Mozilla (Google использует хранилище Windows).

    И все

    Никакой исключительности - просто тупой договорняк размером с мир. Но, поскольку всегда есть возможность поместить в хранилище корневых (кроме как в андроиде, который сразу же начинает визжать "аааа, меня контролирует Большой Брат!") свои собственные сертификаты - эта схема всех устраивала.

    Пока ребята не решили выстрелить себе в ногу, прекратив выпуск сертификатов в зонах .ru/.su/.by/.рф просто по политическим мотивам. Их право - частный бизнес - он такой частный бизнес. Но тут все резко как-то вспомнили, что все "мировые удостоверяющие центры" вовсе нифига не мировые, а просто кучка самозванцев.

    И будут у нас скоро госСA, госсертификаты, госбраузеры и все прочее в порядке импортозамещения.

    Теперь о том, как проверяется валидность сертификата. А проверяется она очень просто - если сертификат выпущен CA, который находится в списке доверенных - он валидный.

    ВСЕ!

    Ты можешь развернуть свой CA, поместить его сертификат в хранилище корневых у себя на компе - и все сертификаты, выпущенные им - для тебя - станут валидными. Выпускай хоть для vk.com, хоть для whitehouse.gov.

    И вот именно поэтому все так боятся поместить в хранилище корневых сертификат от какого-нибудь госСA - потому что все сертификаты, выпущенные им система будет считать валидными! Она не делает разницы между сертификатом от Thawte и от "Товарищ Майор Inc." - она примет сертификат и от того, и от того. А товарищ майор, получив возможность выпускать сертификаты, валидные в Вашей системе, будет выпускать их на ходу и подсовывать их вместо "настоящих", получая доступ к сессионным ключам и таким образом расшифровывая https-трафик (что собственно Fiddler и делает)
    Ответ написан
    8 комментариев
  • Зачем нужны корневые сертификаты?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Кажется, что вся эта конструкция держится на том, что тот единственный корневой (?) сертификат, которым подписаны все остальные, есть только у удостоверяющего центра.
    Именно. Система держится на доверии к УЦ.

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

    И сразу второй вопрос: почему какой-нибудь Fiddler, который устанавливает в систему свой корневой сертификат вообще работает?
    Без установки своего корневого сертификата Fiddler не сможет перехватывать https-трафик. Тот, кто ставит себе Fiddler, должен понимать, что в системе возникает уязвимость.
    Ответ написан
    2 комментария
  • Зачем нужны корневые сертификаты?

    vesper-bot
    @vesper-bot
    Любитель файрволлов
    Ну начнем с того, что корневых сертификатов приличное множество. Не один, и не один десяток даже. Пример:
    624e91669b7e4193133731.png
    64 штуки. И сертификат, подписанный любым из них, система считает доверенным. Это, собственно, и причина, почему боятся получить дополнительный корневой сертификат - заранее не знаешь, у кого есть возможность подписи с его помощью, и отличить сертификат, подписанный новым добавленным корневым (транзитивно или нет), можно только после того, как ты его получишь, при этом большинство программ не позволяют пользователю заблокировать соединение, установленное с использованием доверенного сертификата. То есть, вначале тебя с ним поимеют, потом тебе вычищать последствия.
    Fiddler точно так же устанавливает свежесозданный (это важно, новая пара ключей, которых ни у кого нет) корневой сертификат тебе в доверенные корни, и использует его, чтобы на лету генерировать сертификаты для каждого сайта, куда ты ломишься, подсовывая их браузеру, чтобы тот не вякал, а сам выполняя роль man-in-the-middle.
    Вопрос доверия имеющимся "корням" остается на совести администратора системы (то есть вас), при этом по сети могут прилетать обновления списка корневых сертификатов, после которых опять нужно проверять хранилище на случай появления нежелательных для вас корневых сертификатов.
    Ответ написан
    1 комментарий
  • Зачем нужны корневые сертификаты?

    15432
    @15432
    Системный программист ^_^
    Fiddler перехватывает подключение, создает "промежуточный сайт", с тем же именем который и подписан левым сертификатом. Так он может видеть все пересылаемые данные и HTTPS перестает быть безопасным.

    Потому все и боятся левых сертификатов, чтобы локально или на уровне провайдера ваш трафик / пароли / данные карт / переписку не прослушивали.
    Ответ написан
    1 комментарий