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

    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
    ML Engineer
    Ну смотри, 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.
    Далее идут запросы к опсосам, чтобы они у себя в логах посмотрели подключение этого модуля к сети.
    Ну и не сообщая в полицию тебе координаты ничего не дадут полезного, тк ты не имеешь права ничего ни у кого забирать.

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

    @alexalexes
    На вновь купленном ноутбуке заказать глубокую декоративную гравировку на крышку ноута, на верхнюю часть и на поддон, чтобы с любого ракурса фотографирования, как для продажи легко узнавалась, и было проблематично удалить. Тогда красть такой ноут для перепродажи будет бессмысленно, только на запчасти пускать, а это меньше выгода для вора.
    Ответ написан
    Комментировать