• Допустимо ли воспроизведение программного обеспечения с точки зрения авторского права?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Код программы или игры, используемые в ней изображения, звуки, сюжет, сеттинг, игровая система (например, Dungeon&Dragons) могут быть защищены копирайтом. Название может быть защищено торговой маркой. В остальном самостоятельно сделать аналог вполне законно. На идеи и алгоритмы в России авторское право не распространяется.
    Ответ написан
    2 комментария
  • Что за формат чисел в ассемблерных файлах 000ABC100h в конце 'h', конкретно как парсить?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Ты немного путаешь формат записи и разрядность архитектуры.

    1. Чтобы отличать числа от меток и переменных, считается что любая запись числа должна начинаться с цифры, поэтому часто шестнадцатиричные записи могут быть записаны с дополнительным ведущим 0
    ( 0a10h ), именно чтобы в начале не было а.

    2.
    Для шестнадцатиричной записи используется суффикс h
    0293h, 0a123123h
    Также для шестнадцатиричной можно использовать формат 0x<ЧИСЛО>
    0xab, 0x01, 0xFF23

    Использовать и префикс и суффикс типа 0xA019h - не стандарт, и я навскидку не могу вспомнить где такое может быть, и скорее всего так будет неправильно. Но может быть где-нибудь какой-нибудь парсер предусмотрел и такую глупость, поэтому кушает без выдачи ошибок.

    3. Для двоичной записи используется суффикс b
    000101010b, 1b

    4. Для восьмиричной используется суффикс q
    1q, 2323q, 7283123q

    5. Для обычной десятичной можно указывать суффикс d, или не указывать его
    123, 123d, 982d, 1
    Ответ написан
    Комментировать
  • Что за формат чисел в ассемблерных файлах 000ABC100h в конце 'h', конкретно как парсить?

    @mayton2019
    Bigdata Engineer
    Давай слегка тормознем твой поток созднания. Слишком много у тебя тезисов.
    В каждом языке программирования есть свои числовые литералы. В си-шарпе - свои.
    И в ассемблере свои.

    Попробуем ответить на первый.

    А могул ли быть, А100000000000000h, то есть начаться с А


    Да могут быть. В хекс-системе числа состоят из цифр и букв от A до F. Другое
    дело что ты должен следить за разрядностью и понимать что в регистр процессора
    (ассемблер) и тип данных (для шарпов) может влезать ограниченный диапазон
    величин. Например для ассемблерного двойного слова (DWORD) максимальное число FFFFFFFFh
    И для шарпового unsigned long максимальное 0xFFFF_FFFF_FFFF_FFFF

    Тоесть правильный ответ состоит из проверки числа на допустимые символы и проверки
    ТИПА данных на диапазон.
    Ответ написан
    4 комментария
  • Как правильно типизировать переменную?

    Aetae
    @Aetae Куратор тега TypeScript
    Тлен
    Поменяй: props.item.office на 'office' in props.item.
    Ты не можешь обращаться к свойству которого нет сразу во всех типах union'a. Но ты можешь проверить его наличие, а дальше ts, в зависимости от результата, сузит тип до того, в котором оно присутствует.
    Ответ написан
    Комментировать
  • Может ли Раст полноценно заменить Джаву в сфере финансовых технологий?

    vabka
    @vabka
    Токсичный шарпист
    На Java пишется очень много разных вещей, в тч не требовательных к утилизации ресурсов и задержкам так что предположу, что многие вещи просто нецелесообразно переписывать.

    Кроме Java в финтехе вообще много разных языков используется. Даже такая экзотика как Haskell и F# бывает.

    Могу сказать, что сейчас работаю в большой корпорации и мы как раз пишем на Rust штуки, которые отвечают за работу с платёжными системами.

    Раньше примерно то же самое писалось на плюсах.

    На Java такое не писалось, тк авторизация транзакций должна меньше чем за секунду происходить после того как покупатель приложил карту к терминалу, и при этом нужно много разных проверок произвести.
    При этом многомиллионную ораву клиентов спокойно обслуживает не самый мощный сервер (емнип всего 32гб оперативки) с минимальным количеством сбоев.
    Ответ написан
    5 комментариев
  • Как Jit Компиляторы обнаружат недостижимой код и лишние проверки?

    @mayton2019
    Bigdata Engineer
    Как Jit Компиляторы обнаружат недостижимой код и лишние проверки?

    Если мне не изменяет память, JIT компиллятор компилирует java-метод целиком. Переводя byte-code в машинный код для x86 например.

    А то что спрашивает автор - это задача основного компиллятора который язык Java переводит в байткод.

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

    ли Космические Лучи, в Ram попали, что тогда будет?

    Программисты 20-го века работали в условиях глючной памяти (когда были ЭВМ на лампах и на тразнисторах)
    и обрабатывали специальное прерывание типа "глюк в ячейке памяти".

    С точки зрения современной парадигмы разработки - это невозможно. Никакой прикладной
    программист не ставит себе задачу отслеживания целостности памяти. Это как-бы не его
    уровень. Мы предполагаем что память надежна и всегда корректна. А иначе ОС выпадает
    в синий экран и никаких принятий решения мы все равно не сделаем а облачные балансировщики
    примут свои решения когда хост выпадет из сети.

    В современной ОС также по дефолту считается что никакой хакер никогда не меняет
    память вашего процесса. Это - основа безопасности ОС и если хакер все таки что-то может
    менять - то это плохая ОС и плохая безопасность и надо что-то решать на уровне системной
    архитектуры и тем более прикладной программист здесь ничего не сможет сделать.

    Рассматривать такие случаи в топике Java - бесполезно и контр-продуктивно. Давайте
    их рассматривать в топиках инфо-беза и операционок.
    Ответ написан
    Комментировать
  • Ассемблер, почему дизассемблированном коде много ненужных операций?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Почему не переписать вместо этого
    add ebx,dword ptr [rbp+ECX*4+10h]

    Буквально так написать нельзя, потому что нет такого режима адресации в котором можно было бы использовать вместе Rbp (64-битный) и Ecx (32-битный). Можно было бы написать add ebx,dword ptr [rbp+rcx*4+10h], но для этого счётчик цикла должен был бы быть 64-битным, а он, как мы видим, 32-битный (int i). Т.е. ответ на вопрос "для чего это": для беззнакового расширения 32-битного счётчика цикла в регистр, который можно использовать для доступа к памяти.

    Другое дело, что из исходного кода очевидно, что при обращениях к памяти i не выходит из диапазона 0..9, так что разницы между ecx и rcx нет и не может быть. Возможно я что-то упускаю и у компилятора другое мнение на этот счёт, но может быть он просто туповат и не имеет кода который бы мог использовать эту возможность оптимизации, а может такая оптимизация и есть, но она не была включена во время генерации этого кода.
    Ответ написан
    Комментировать
  • Что быстрее SQL или Javascript?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    В общем, чтобы не издеваться над девушкой, объясним на пальцах.

    Во-первых, заголовок у вопроса чудовищно некорректный. Это все равно что спросить, "что быстрее - пылесос или стиральная машина?"
    Во-вторых, ответ на вопрос "производить ли обработку данных в БД или же запросить все данные в клиентское приложение и обрабатывать там" совершенно очевиден: обработку данных следует производить в общем случае только в БД. Она для этого и придумана. Чтобы обрабатывать значительные объемы данных.

    Да, js тоже "может" обрабатывать большие объемы данных.
    Но чтобы значительный объем данных обработать, его сначала надо передать, полностью забив канал между сайтом и базой
    Чтобы значительный объем данных обработать, его надо сначала проиндексировать. Причем делать это каждый раз, а не использовать уже имеющийся набор индексов
    Чтобы значительный объем данных обработать, надо иметь значительный объем памяти или упасть из-за её недостатка
    Чтобы значительный объем данных обработать в многопоточном режиме (а сайт как раз является многопоточной системой), все вышеперечисленное надо умножить на количество посетителей сайта - при каждом запросе перегонять весь массив данных, выделять память, индексировать, считать. Если же вы оставляете все данные в памяти приложения, то их тогда надо как-то синхронизировать с БД. То есть вы себе собираете кучу проблем на пустом месте.

    Несомненно, из любого правила есть исключения. И бывают ситуации, когда приходится считать в приложении.
    Но на вопрос в общем виде ответ будет совершенно однозначный. Не "может так, может сяк", а только в БД.
    Ответ написан
    9 комментариев
  • Является ли безопасным отнять от указателя 1 и итерироваться по массиву [1,N], а не [0, N-1]?

    Adamos
    @Adamos
    Такие мелкие фокусы, ломающие читающему голову, небезопасны, если сопровождающий ваш код знает, где вы живете.
    Ответ написан
    2 комментария
  • Что планирует ОС - потоки или процессы?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Из всего изученного стало понятно, что процессы - это некие "контейнеры", содержащие id, статус, instruction pointer, значение регистров, открытые файлы и другие данные контекста.

    Вот уже по этому предложению видно, что понятно не стало. instruction pointer и значения регистров -- свои у каждого потока.

    какую роль в планировании играют процессы?

    Никакой.

    Для чего они нужны?

    Для учёта ресурсов и создания изолированных адресных пространств.

    Как планировщик ОС работает с процессами?

    Никак.

    Моя единственная догадка в том, что планировщик как бы "заглядывает" в каждый процесс и уже там работает с потоками.

    Не нужно ему никуда заглядывать. У него есть списки потоков находящихся в разных состояниях, а планирование заключается в перемещении потоков по этим спискам.
    Ответ написан
    9 комментариев
  • Как начать зарабатывать начинающему web-разработчику в 17 лет?

    Zoominger
    @Zoominger
    System Integrator
    Как начать зарабатывать начинающему web-разработчику в 17 лет?

    Макдональдс, стройка, кошение травы.

    зарабатывать на вебе

    Пхаха.

    Хочу устроиться джуном в веб-студию удаленно

    Никто. Никогда. Не берёт. Джунов. На удалёнку. Точка.

    Может устроиться к кому-нибудь на фриланс

    Нет.

    Как начать зарабатывать на фрилансе?

    Никак.

    Каждую, чёрт бы её побрал, неделю такие посты. Ну погуглите хоть по Тостеру-то.

    Коротко: это очень плохой план, дикая конкуренция людей со знаниями и опытом выше вашего не дадут вам никаких шансов. Выбирайте другую область.
    Ответ написан
    29 комментариев
  • Можно ли запустить программу на языке C в операционной системе FreeDOS или MSDOS?

    @mayton2019
    Bigdata Engineer
    Я думаю можно. Поищи такие компилляторы как Watcom C, Borland C.
    Они умеют генерить код для DOS. На ваткоме кажется была написана
    игра Doom for DOS.

    UPD +Линка www.openwatcom.org
    Ответ написан
    Комментировать
  • Можно ли запустить программу на языке C в операционной системе FreeDOS или MSDOS?

    vabka
    @vabka
    Токсичный шарпист
    Нужно компилировать под DOS, а ты скомпилировал под Windows.
    Каждая программа на Windows содержит в себе маленькую программу для DOS, которая выводит такое сообщение.

    Скорее всего - тебе понадобится компилятор и среда разработки примерно из тех же годов, что и DOS
    Ответ написан
    3 комментария
  • Как правильно подключать модули одного уровня?

    @res2001
    Developer, ex-admin
    Модуль B использует данные из Модуля A

    Что за данные?

    смаке оперирует целями и зависимостями, а не данными.
    Зависимости можно указать с помощью add_dependencies, подключить библиотеку с помощью target_link_libraries.
    Если у вас в каком-то из модулей генерируются какие-то данные, то, видимо, там есть custom_target - укажите его в зависимостях вышележащего уровня.
    Ответ написан
    9 комментариев
  • Не могу решать задачи по программированию?

    rqdkmndh
    @rqdkmndh
    Web-разработчик
    но когда доходит до задач, у меня появляются проблемы

    Просто, наверное никто не сказал вам, что правильная постановка задачи - это уже половина решения. Помню физичка, на меня дико орала в школе, когда я на доске сразу начинал писать решение - она требовала, чтобы сначала я писал секцию: 'Дано:'. Потом, я понял насколько это было важным. Перед решением любой задачи, сначала необходимо осмыслить все исходные данные и четко прописать их. Почему, это нужно делать? - потому что некоторые важные условия могут быть заданы неявно и ускользать от внимания. К примеру, в условиях пишут: 'машина начала двигаться и достигла скорости 70км/ч' - если вы просто прочитаете это, то в голове у вас будет вертеться только одна цифра (скорость 70). Но если обратить внимание на фразу начала двигаться - можно записать что начальная скорость была 0. И уже имеем: v0 = 0км/ч, v1 = 70км/ч После того как все исходные данные выписаны и установлены - остается протоптать из них дорожку к результату - это и будет решение, которое обычно само напрашивается при таком подходе.
    Ответ написан
    3 комментария
  • Как возвращать ошибки в REST API?

    yarkov
    @yarkov
    Помог ответ? Отметь решением.
    И вообще, стоит ли так слепо следовать правилам из приведённой в начале статьи?

    Разумеется не стоит. Делайте как того требует задача. Формат ошибок придумывать не надо. Мы например пришли к тому, что используем problemJson для ошибок.
    Ответ написан
    Комментировать
  • В чем суть приватных IP адресов, если можно выдавать любые IP и затем их Натить?

    @Drno
    Когда тебе понадобится зайти на белый IP из этой подсети, ты на него не попадешь, т.к. он будет искаться в первую очередь у тебя в локалке
    Ответ написан
    1 комментарий
  • Не понимаю, почему данные в разных строках?

    rozhnev
    @rozhnev
    Fullstack programmer, DBA, медленно, дорого
    Потому что нужно выучить хотя бы базовый синтаксис SQL! Одна строка вставляется одним запросом, каждый инсерт вставляет новую строку!
    execute('INSERT INTO table (FIO, Address, Email) VALUES (?, ?, ?)', ('ФИО', 'Your Address', 'your@email.com'))
    Ответ написан
  • Как подключиться к Wifi на C++?

    @mayton2019
    Bigdata Engineer
    Тебе работать с Wifi на С++ нужно будет только в одном случае - когда ты разработчик драйвера Wifi устройства.

    В остальных случаях - ты пишешь обычные приложения на С++ которые используют сокеты TCP/UDP, которые (сокеты) в свою очередь работают через стек технологий ОС для кидания пакетов в Wifi интерфейсы в соотвествии с правилами таблиц маршрутов.
    Ответ написан
    2 комментария
  • Кто создает .htaccess для сайта?

    @0x131315
    .htaccess - это часть сервера, сфера ответственности команды эксплуатации
    Обычно его создает/правит админ или бек-разработчик
    Работает этот файл только с веб-сервером apache/httpd, к nginx отношения не имеет
    Фронтенд-разработчики по идее никак с этим не связаны, это и близко не их сфера ответственности. Могут столкнуться, только если сами настраивают свое рабочее окружение и каким-то образом им помешал дефолтный .htaccess
    Управление кешем с серверной стороны точно не относится к фронтенд-разработке
    Ответ написан
    Комментировать