Задать вопрос
  • Есть ли возможность получить читаемый текст?

    yakovlev_13
    @yakovlev_13
    Шаманство, экзорцизм и некромантия.
    pdf24 toolbox - вот эта прога сносно перекодировала. Что-то придётся поправить конечно, но результат есть

    spoiler
    655c6d52f0208059533717.jpeg
    Ответ написан
    Комментировать
  • Хочу реализовать проект калькулятора подписок в валюте, с конвертацией валют из одной в другую; есть подводный камень. Как его решить?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    1) https://www.cbr.ru/currency_base/
    2) учись , можешь ORM в помощь (это в Питоне), но можно и на сырую (RAW Data)
    поля там должны быть Decimal или Finance - не Float ни в коему случае, а лучше вообще INT и потом менять разряд
    3) опа! да ты и сам волокешь , я за Decimal
    4) ты не представляешь глубину и сложность вопроса, поверь ... бухгалтера засовывают язык в жопу при попытке конкретики. Ну что тебе скажу - один из бух метдов по GAAP / МФСО - тупо курс на 31.12. года и учет остатков в нем...
    как сделаешь так сделаешь - считай на конец периода, или на максимуме. Короче , повторю, проблема непроста:
    можешь считать каждый день, но по итогу сумма у тебя не будет равная сумме в другой с каким-то коэффициентом. )))
    Если же это не касается бухучета - то есть строгости - можно счиатть как угодно )))
    5) запросы к базе фигня в сравнении с методолгией, повторюсь - единой нет, спроси целевого буха и делай как он скажет

    короче - начни считать каждый день - как ЦБРФ ставит курс на СЕГОДНЯ основываясь на ВЧЕРА, а там как пойдет...
    Ответ написан
    Комментировать
  • Совместимость NVME и Z77?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Совместимости и поддержки нет и не будет. Завести можно только если в биос добавить ручками драйвер. Вот тут тема с модифицированным биосом и инструкцией по прошивке (классический способ добавки поддержки NVME там, где её нет - где-то работает, где-то нет, где-то проще, где-то сложнее): https://forums.overclockers.ru/viewtopic.php?f=1&t...
    Будьте готовы, что если что-то пойдет не так, то придется покупать новую материнскую плату или нести окирпичившуюся плату спецам для ремонта. Имеет смысл заниматься этим только ради искусства и веселья. В производительности разница не настолько большая будет - проще и быстрее будет просто два любых саташных диска в рейд поставить.
    Вот еще тема на СО: https://ru.stackoverflow.com/questions/1144143
    Плата не
    Ответ написан
    Комментировать
  • Как хранится c++ struct в памяти и как определить размер вручную?

    @Mercury13
    Программист на «си с крестами» и не только
    Выяснилось, что на компьютерах с разрядностью 16 и более бит минимальной единицей памяти стоит делать всё равно 8-битный байт: это сильно упрощает работу с узкими типами данных, как в памяти, так и на вводе-выводе. Например, канал RGB8 или кодовая единица UTF-8 — байт. Считаем для простоты, что разрядность 16, порядок Intel.

    Чтобы загрузить 2-байтовое число в 2-байтовый регистр, есть ДВА варианта.
    1. ОЗУ, кэш и другие устройства хранения передают нижний байт данных на нижний байт шины, верхний, соответственно, на верхний.
    2. Байты, чьи номера кратны двум, соединяются только с нижним байтом шины, не кратные — только с верхним. А уж процессор как-то разбирает, что делать, если двухбайтовое число сидит по нечётному адресу и считывается за два обращения к шине.

    Более простым оказался второй подход: он упрощает схемотехнику всех сидящих на шине, кроме процессора. В частности, дешифраторы становятся на 1 бит меньше, и упрощается топология. А процессор — в нём и так микропрограммное управление, и в нём и так до хрена соединений, и если обратился к байту (!) по адресу условно 4, вероятно, скоро потребуется адрес 5 и его один хрен стоит закэшировать.

    Но это значит, что доступ к 2-байтовым числам по нечётному адресу (1-2, 3-4, 5-6) будет медленнее, чем по чётному (0-1, 2-3, 4-5). И потому по умолчанию двухбайтовые числа располагаются именно по ЧЁТНЫМ адресам, и структура { char a; short b; char c; } будет иметь длину 6 байт (0 — a, 1 — выравнивание, 2,3 — b, 4 — c, 5 — выравнивание), а структура { short b; char a; char c; } — всего 4 байта (всё упаковано плотно).

    Но это приводит к двум вещам.
    1. Если нужно сочетать скорость и компактность, надо чётко выравнивать структуры данных. Обычно подобная ручная оптимизация делается для мелких частых структур.
    2. Если кусок памяти подготавливается в памяти, а потом отправляется на устройство, надо принудительно отключить выравнивание. Если в предыдущем примере формат файла так устроен, что байт 0 — a, байты 1 и 2 — b, байт 3 — c, то можно написать
    #include <iostream>
    
    struct Q1 { char a; short b; char c; };
    struct __attribute__ ((packed)) Q2 { char a; short b; char c; };
    
    int main()
    {
        std::cout << sizeof(Q1) << ' ' << sizeof(Q2) << '\n';   // 6 4
    }

    Q1 (или более оптимизированную short-char-char) использовать для хранения в памяти, а Q2 — для записи в файл, раз уж у него такой формат.

    Да, почему компилятор сам этого не делает? Это нарушает совместимость компиляторов. В Си++ до 20 включительно он имел право кое-что переставить, если в struct/class были поля с разными правами доступа (но никто по факту не делал), в 23+ больше не имеет права.

    Ну а алгоритм прост.
    1. Длина := 0, выравнивание := 1
    2. Для каждого поля: позиция := длина, округлённая по выравниванию[i]; длина := позиция+длина[i]; выравнивание := max{выравнивание; выравнивание[i]}
    3. Общая длина := длина, округлённая по общему выравниванию

    Существует очень простой способ уменьшить выравнивание: отсортировать поля по убыванию выравнивания.

    Для того же Q1:
    0. Длина = 0, выравнивание = 1
    1. char a: длина округляется до 0, затем 1, выравнивание = 1
    2. short b: длина округляется до 2, затем 4, выравнивание = 2
    3. char c: длина округляется до 4, затем 5, выравнивание = 2
    4. Общая длина округляется до 6. Ну а выравнивание = 2
    Ответ написан
    Комментировать
  • Какие есть самые распространённые причины появления багов?

    "самой распространённой причины" не существует. Она будет сильно зависеть от конкретного продукта и процессов разработки.

    Вот просто список начиная с ранних багов:
    1. Несоответствие спецификации и ожиданий заказчика. Возникает из-за ошибок в коммуникации между аналитиком и заказчиком. Например заказчик что-то не сказал, а аналитик не стал задавать уточняющих вопросов и додумал сам.

    2. Не полная спецификация. Например в спецификации не было описано, как система будет себя вести при ошибках - разработчик при реализации решил додумать сам.
    Либо ещё может произойти из-за того что спецификация сама себе противоречит или её нельзя реализовать в полной мере за адекватное время.

    3. Разработчик ошибся при реализации спецификации и не достаточно протестировал перед передачей тестировщику. Например бага может не быть в happy path или каком-то определенном подмножестве данных, но при этом на каких-то граничных случаях баг происходит.

    4. Регресс. Разработчик нормально реализовал спецификацию, но тестировщик проверил только новую фичу и не стал проверять регресс - в итоге новая фича работает, а какая-то старая - сломалась, из-за того что её задели при разработке.

    5. Несоответствие среды выполнения на этапе разработки, тестирования и в продакшене.
    Например разрабатывали и тестировали на мощном железе, а при работе на слабом - всё плохо. Или сетевые задержки приводят к ошибкам, или на целевой машине стоит старая версия ОС, браузера, каких-то ещё зависимостей и поведение совсем меняется.

    6. Во время разработки у заказчика поменялись планы. Старая спецификация больше не отвечает новым требованиям. Нужны доработки.

    Чтобы минимизировать вышеперечисленное, нужно:
    1. Плотное общение между разработчиком, аналитиком, и QA.
    2. QA должен начинать тестирование ещё на этапе спецификации
    3. Разработчик должен сообщать аналитику о всех случаях, когда он не может что-то реализовать или о каких-то пробелах.
    4. Разработчик должен сообщать QA о возможном регрессе в других фичах.
    5. Должны быть автотесты, чтобы уменьшить нагрузку на QA и чтобы минимизировать шанс на регресс
    6. Тестирование должно обязательно производиться на том оборудовании и в том окружении, на котором система будет потом работать.
    7. Чем чаще релизы - тем лучше.
    Ответ написан
    1 комментарий
  • Нормально ли keras тдёт на windows?

    Maksim_64
    @Maksim_64
    Data Analyst
    Ну смотри, tensorflow - это операции с тензорами. Keras - это просто интерфейс для нейронок. Так вот tensorflow версии > 2.10 не поддерживает Windows GPU. То есть на сегодняшних версиях ты не сможешь использовать GPU для операций с тензорами.

    Изучать то можно, но если сегодняшняя библиотека не поддерживает windows, то в чем смысл, все не стоит на месте. И инвестируя свое время в изучение инструмента, ты должен быть уверен что сможешь использовать его завтра.
    Ответ написан
    2 комментария
  • Как настроить автоматический выход из windows 10 при отключении от RDP?

    pindschik
    @pindschik
    ФЫВА ОЛДЖ
    Я бы ковырял в таком направлении:
    Вместо проводника при входе запускайте .bat с двумя командами - первая запуск mstsc, вторая - выход из системы. Окно батника спрячьте за пределы рабочего стола.
    Кроме того - назначьте в планировщике проверку наличия процесса mstsc в текущем контексте. Если нету - выполнять логаут.
    Ответ написан
    Комментировать
  • Как запретить играм засорять директорию "Документы"?

    snaiper04ek
    @snaiper04ek
    Не стреляйте в эникея, он админит как умеет
    Нет, установка на другой диск проблемы не решит.
    Игры пишут свои сейвы туда, куда считают нужным. Хотят - в документы, хотят - в AppData, захотят - сунут в programm data, раньше иногда писали в свою же папку.
    Ноги у твоего вопроса растут оттуда, что ты документы используешь для хранения документов, а туда ещё и игры пишут свои сейвы. Вообще, не только игры, а многие программы. Поэтому, если у тебя много игр/программ постоянно устанавливаются, то эта директория является мусоркой по умолчанию, ты же когда игру удаляешь, не удаляешь за ней все сейвы?

    Значит, решением будет не хранить свои файлы в документах. Храни, не знаю, в музыке, в изображениях. В конце-концов: на рабочем столе.
    Так же, можешь где угодно создать папку, на любом диске, и эту папку закрепить в быстрый доступ, например, по этому гайду: https://windows-school.ru/publ/dobavlenie_ehlement...
    Ответ написан
    Комментировать
  • Почему не запускается вин 10 на интегрированной видеокарте?

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

    Заранее скачайте утилиту для полного удаления виеодрайверов.
    Ответ написан
    Комментировать
  • Почему браузеры и curl дают разные результаты?

    ValdikSS
    @ValdikSS
    На сайте используется TLS Fingerprint (вероятно, JA3) как один из индикаторов сессии в системе перед веб-сервером, вероятно, это анти-DDoS.
    Так как браузер и curl используют разные SSL-библиотеки и передают разные наборы шифров, сервер предлагает вам пройти challenge.
    Ответ написан
    5 комментариев
  • Анонимность, шифрование при использовании IOS?

    CityCat4
    @CityCat4
    Дома с переломом ноги
    Не существует проблемы "некоей" анонимности. Есть либо выдуманная анонимность, которой хочется просто потому что хайповая тема, либо реальный сценарий, где есть реальная модель нарушителя.

    Но яббл одновременно и лучший и худший выбор для этого.

    Лучший - потому что он реально немало прилагает усилий к тому, чтобы достичь некоей сферической "анонимности".
    Худший - потому что при этом он сам будет знать про Вас все и это никак не изменить, не отключить и вообще ничего не сделать.

    Но рассматривать нужно конкретный сценарий с конкретным государством - потому что законы у всех разные (да и степень исполняемости их - тоже).
    Ответ написан
    3 комментария
  • Почему некоторые программы запускаются и обновляются без диалогового окна UAC?

    pindschik
    @pindschik
    ФЫВА ОЛДЖ
    Есть два основных способа:
    - через свой сервис, который соответственно работает с привилегиями localsystem и обновляет что хочет (напр продукты Adobe)
    - через планировщик задач (напр Chrome)
    Нужный сервис/задача создается с запросом UAC при (первой) установке приложения, т.е. однократно.

    "Надежность" UAC - понятие относительное. оно повышает безопасность, да. Вот только проблема в том, что система безопасная на 99% и на 1% небезопасная - это система на 100% уязвимая, и следовательно на 100% небезопасная.
    Ответ написан
    Комментировать
  • Почему некоторые программы запускаются и обновляются без диалогового окна UAC?

    Если программа лезет в какие-то системные папки / требует привелегий администратора, то UAC будет.
    Если программа не требует привелегий администратора, то UAC не будет.
    Очень много программ сейчас ставятся в %AppData% - для доступа к этой папке не нужны права администратора, в отличие от Program Files
    Ответ написан
    Комментировать
  • Как узнать, что веб-адрес официальный?

    @SunTechnik
    В частных случаях может помочь:

    1. Если на сайте сертификат типа OV, c валидацией организации. ( сравните сертификат qna.habr.com и cnews.ru у последней - проставлено поле организации)

    2. Посмотреть на кого зарегистрирован домен через whois (но тут и чаще путаница и сложнее разобраться)
    Ответ написан
    Комментировать
  • Как узнать, что веб-адрес официальный?

    paran0id
    @paran0id
    Умный, но ленивый
    Что касается сертификатов, бывают ssl-сертификаты с organization validation, когда в адресной строке зеленое поле с названием компании. Стоят дорого (притом что обычные - бесплатны), поэтому используются там, где это действительно важно - например, в банках.
    Ответ написан
    3 комментария
  • Как узнать, что веб-адрес официальный?

    Нет, в общем случае никак.
    Ответ написан
    Комментировать
  • Что применить для бортового компьютера летающего транспорта?

    @formasters777
    В статье написано "Самая ходовая ракета SpaceX — Falcon 9 — работает на процессорах x86 на базе Linux, поэтому знание операционки необходимо многим сотрудникам компании."
    но думаю можно и на fpga и других вариантах, тут вопрос в надёжности, тестировании, потреблении энергии, например, некоторый код может и на Atmel микроконтроллере работать, но тут наверно, они выбрали процессор, т.к. в линии обработки программы, его легче заменить.
    например, если 1 процессор откажет остальные 10 будут работать,
    но всё это слова, т.к. нужны реальные испытания с силами перегрузки например 5g - 8g.
    Только имея реальные данные Вы сможете что-то планировать из программного обеспечения и микроконтроллеров, базы радиоэлементов.
    Ответ написан
    1 комментарий
  • Что применить для бортового компьютера летающего транспорта?

    NeiroNx
    @NeiroNx
    Программист
    Большинство многослойных плат уязвимы к вибрациям: проблема в переходных отверстиях. Большинство BGA корпусов тоже уязвимы к ним. Нужно искать чипы в больших корпусах, чтобы их контактные площадки были больше. Для защиты от излучений взять корпус из алюминиевого сплава с добавлением веществ поглощающих излучение. Для вибростойкости корпус заливают компаундом, теплопроводность должна быть повышенной - чтобы он мог эффективно отводить тепло. Особо греющиеся компоненты - через термопрокадки. Разъемов по минимуму - оперативка распаянная на плате 8...16 гиг проц лучще x86 у них выше быстродейстивие. Техпроцесс чем больше размер элемента - тем мене он чувствителен к излучению - нужно искать грань межу энергоэффективностью и чувствительностью к излучениям. Архитектура - лучше всего распределенная система, где много слабых процов(компов) выполняющих свою задачу(жизнеобеспечение, навигация, доступ, развлечения) и центральный, для ресурсоемких задач. Сеть - желательно оптика. По два интерфейса - паралельно резервируемая сеть(PRP) - прокладка по противоположным частям корпуса. Питание - также резервирумая сеть на 48 вольт. Если карабль можно делить на отсеки - значит у каждого отсека свой контроллер и система питания АКБ, солнечных панелей. Чтобы каждый отсек мог работать самостоятельно - являясь аварийным спасательным модулем.
    Желательно предусмотреть аварийный носитель данных в каждой минимальной системе, работающий в режиме только чтения(аппартно) и содержащий проверенную исправную систему предыдущей стабильной версии и выбираемый к загрузке при определенных условиях.

    Консоли и визуализация: у каждой консоли свой графический процессор и процессор вычислительный, операционная система, возможно и АКБ. Грубо говоря планшеты с тачскрином и двумя оптическими сетевухами, экран OLED гибкий - меньше стекла.

    Таким образом получается некоторая распределенная система, где каждый компонент выполняет свою роль/задачу/обаботку. В то же время система получается универсальной и масштабируемой - от простого шатла до межзвездного корабля-города, космической станции. Набор компонентов соответсвует задаче - например если для обработки радиосвязи нужна специфическая FPGA то естественно она должна там быть. Но смысл модульности в том - для того чтобы сделать радиостанцию достаточно взять интерфейсный модуль и модуль радиосвязи. В то же время в целом корабле - все модули объединяет некий центральный процессор - модуль который анализирует данны с ввода и формирует вывод - назначает какую функцию будет исполнять дисплейный модуль, сигнализирует оператору, устраняет неисправности.
    Выбор компонентов ведомых - от FPGA до различных ARM - в зависмости от функции память согласно задаче, у главного x86 много ядер, много памяти. У дисплейных меньше памяти, проц наверно ARM, зато есть вся перефирия. Можно поделить на малые -универсальные, средние, и большие - каждый способен работать автономно и нести какие то функции центрального, но основная его задача - интерфейс пользователя. При этом каждый модуль решающий специфичную задачу - связь, навигация, защита - имеет свой веб интерфейс в сети который бы позволил его конфигурировать и взаимодействовать с ним - без специального дисплейного модуля.
    Ответ написан
    1 комментарий
  • Возможно ли отследить утерянный ноутбук с сим картой?

    По логике сотовый телефон можно отследить, сработает ли такая схема с ноутбуком?

    Да даже и без симкарты можно отследить.
    Сообщаешь в полицию о краже, сообщаешь о наличии сим-модуля, сообщаешь его IMEI.
    Далее идут запросы к опсосам, чтобы они у себя в логах посмотрели подключение этого модуля к сети.
    Ну и не сообщая в полицию тебе координаты ничего не дадут полезного, тк ты не имеешь права ничего ни у кого забирать.

    Из-за того что у тебя шифрование - никакое ПО не поможет, тк оно не запустится)
    Ответ написан
    Комментировать