Задать вопрос
  • Какие есть книги/руководства по разработке "простого языка программирования" для новичка?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Рекомендую начать с Форта: минимальный интерпретатор пишется за один-два вечера за чашкой чая. Форт очень простой, гибкий и очень мощный. Он позволяет реализовывать достаточно простым способом проблемно-ориентированные ЯП (DSL). У него крайне простой синтаксис - это просто слова, отделенные разделителем (пробелом). И всё! Проще не бывает. Для передачи аргументов используется стек. Математика реализуется обратной польской записью: число, число, оператор. Типа 1 2 +. Если смотреть с классической позиции, то Форт - это интерпретируемый И компилируемый процедурный ЯП высокого И низкого уровня. Почему одновременно и высокого и низкого? Потому что существуют Форт-процессоры в кремнии, для которых Форт - ассемблер (т.е. все слова сразу интерпретируются/компилируются в машинные коды без дополнительной прослойки). А ассемблер - это ЯП низкого уровня. Процедурный - потому что слово может как забрать любое число элементов со стека, так и оставить на стеке любое их число (а не только один аргумент как в функциях). Гибкость же языка реализуется открытостью его движка - можно на лету менять правила интерпретации, компиляции и даже в рантайме все это переписывать, перекомпилировать и прочее. Например, знаменитое сишное определение #define TRUE FALSE заиграет новыми красками, ибо его можно провернуть в рантайме не особо напрягаясь. А еще можно управлять стеком возвратов (это список адресов, куда продолжается поток управления после завершения процедуры) - GOTO в сравнении с этим в ужасе трясется под лавкой. Самое известное приложение для Windows, в котором раскрыты все возможности форта - это nnCron: один из мощнейших автоматизаторов для Windows.
    В качестве дипломной работы реализация Форта подойдет великолепно и чего-то лучше вы вряд-ли найдёте (проверено лично, если что).
    Литература


    Ссылки на англоязычные ресурсы из мана ннкрона:

    И наше русское Форт-сообщество находится вот тут: fforum.winglion.ru
    Ответ написан
    2 комментария
  • Решение для 3D симуляции физики?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Вот тут внизу список хороший есть https://en.wikipedia.org/wiki/Physics_engine
    Ответ написан
    Комментировать
  • Чем подобрать кириллический пароль из словаря к rar архиву?

    @maksam07
    Получить хеш пароля:
    rar2john archive.rar > hash.txt

    Пройтись словарем по хешу:
    hashcat -m 13000 -a 0 hash.txt dict.txt
    -m 13000 указывает, что вы работаете с RAR5 (если у вас архив создан в старой версии RAR, нужно использовать -m 12500).
    Ответ написан
    2 комментария
  • Почему, используя Bluetooth-адаптер серьёзной фирмы, интернет раздаётся на ПК, со смешной скоростью в 1.5 мегабита/сек?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Может потому что на оф. сайте пишут что этот адаптер поддерживает только BT 5.0, а не 5.3 ?

    https://www.tp-link.com/us/home-networking/usb-ada...
    Ответ написан
    Комментировать
  • Как сделать дополнительный источник света на нужный объект?

    @LanskoyGames
    У модераторов первое место, но только с конца...
    Culling Mask - Используется для выборочного освещения групп объектов; для получения дополнительной информации смотрите слои(https://docs.unity3d.com/ru/530/Manual/Layers.html).
    Ответ написан
    Комментировать
  • Как в Linux найти файлы одинакового размера?

    hint000
    @hint000
    у админа три руки
    Нужно получить список всех файлов с одинаковым размером. Чтобы потом уже вручную удалить дупликаты.
    Вы можете в несколько кликов искать и удалять дубликаты файлов, используя GUI-утилиту под названием FSlint. Находит не просто совпадение размера, а именно совпадение и размера, и содержимого. Имена файлов при этом могут быть разные. Просто добавляете несколько папок, по которым нужно искать дубликаты, потом среди найденных выделяете те, которые хотите удалить и удаляете. Т.е. вручную можно выбирать в какой из папок файл оставить, а в какой удалить. Можно все дубликаты оставить, можно все удалить (!).
    Утилита имеет и другие функции для поиска разных корявостей и неоптимальностей в папках (имена с "плохими" символами, пустые папки и т.д.)

    Есть ещё утилита командной строки fdupes, которая тоже ищет дубликаты.
    Ответ написан
    2 комментария
  • Реализация кэша для мульти поточного приложения?

    wataru
    @wataru Куратор тега C++
    Разработчик на С++, экс-олимпиадник.
    Вам нужна lock-free хеш таблица (гуглите Lock free unordered_map). В стандартной библиотеке таких структур нет. Или просто используйте свои мьютексы при каждом обращении к структуре.
    Ответ написан
    2 комментария
  • Как бэкапировать СХД RAIDIX?

    borisdenis
    @borisdenis
    Ленив и вреден...
    Ну так там репликация есть
    66a13ab47c5b6369400869.png

    Ни на какую СХД вы не сможете поставить своё ПО, только использовать штатные средства.
    Ответ написан
    2 комментария
  • Можно ли собрать пк с 256гб озу на Ryzen/Intel?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    99% что нельзя. Обычно, если заявлена поддержка такого-то объема памяти - оно столько и будет. Кроме того, в материнских платах обычно 4 слота памяти и надо будет вам искать планки памяти на 64 гигабайта. А то, что материнские платы поддерживают больше памяти, чем процессоры - так это с запасом сделано, на случай, если выйдет процессор с поддержкой указанного объема памяти.
    Так что если надо много памяти - берите сразу риппер/эпик или зион. Меньше проблем с подбором железа. Если финансы ограничены - то вам остаётся только вариант покупки Б/У сервера. Ну или риппер первых поколений: 12 ядер за 9к рублей и лимит памяти в 2ТБ - вполне адекватное решение (правда, все остальное вот вряд ли будет так дешево).
    Ответ написан
    Комментировать
  • Можно ли использовать ОС, созданную в hyper-v, как основную?

    Задался недавно вопросом: можно ли создать виртуальную машину в hyper-v, пробросить в неё свою видеокарту и использовать данную гостевую ОС как основную (то есть работать/играть на данной системе)?

    Да, можно, эта фича Hyper-V называется Discrete Device Assignment.
    И какая Windows понадобится для этого (имеется ввиду, можно ли использовать Win 10 или нужна Win server)?

    На хосте - серверная Винда, в качестве гостя вполне сгодится клиентская Винда.
    И если пробрасывать видеокарту в виртуальную машину, то понадобится второй видеоадаптер для хост машины?

    В данный момент - да, понадобится второй адаптер, т.к. устройство пробрасывается целиком. В Windows Server 2025 появится GPU partitioning, но пока хз с какими видяхами и материнками это будет работать.

    Да, кстати, насчёт оборудования. Всё это замечательно, но вам на вашей материнке скорее всего понадобится поддержка SR-IOV, ну и соответственно IOMMU на матери и процессоре.

    Во-вторых, далеко не все видяхи официально поддерживаются технологией DDA, обычно для этого тестируются только pro-шные линейки карт. Может оно будет работать и с вашей картой. Драйвера карт потребительского сегмента могут блокировать запуск карты, проброшенной в виртуальную машину, или просто работать некорректно (блокируют запуск, т.к. не поддерживают сценарий проброса). Например, сейчас для работы ряда AMD-шных карт с пробросом в ВМ нужен костыль vendor-reset (это линуксовый модуль ядра, для Hyper-V не годится). И NVidia относительно недавно начала поддерживать проброс линейки GeForce в виртуалку (и то непонятно, как там с Hyper-V DDA).

    Я сам использую подобный сетап и пишу прямо сейчас с него, но у меня в качестве гипервизора KVM (использую дистр Proxmox), и материнка ASRock Rack ROMED8-2T, где есть вышеуказанные плюшки (кстати, в качестве адаптера для хоста прокатывает встроенный в мать ASPEED AST2500, поэтому полноценная карточка у меня только одна). В гостевую виртуалку с Windows 11 проброшена карточка Radeon RX 5500 XT, с учётом вышеупомянутого костыля в целом работает. Есть некоторая нестабильность, плюс иногда приходится вместе с виртуалкой перезагружать весь хост. Но это следствие того, что AMD не поддерживает для этих карт работу в пробросе (хотя и не блокирует искусственно), с нвидией возможно было бы получше.

    Ищите информацию по ключевым словам VFIO и PCI passthrough, на Реддите есть неплохое коммюнити. И да, готовьтесь копать много информации и перепроверять её (например мой ответ тоже стоит перепроверить, всё довольно быстро меняется) и покупать оборудование сильно дороже потребительского (если у вас его ещё нет). По Hyper-V DDA информации тоже не так много, советую рассмотреть дистры с KVM, если вам не так принципиально.
    Ответ написан
    1 комментарий
  • Возможно написать авто бота или кликер на JavaScript под онлаин игры по типу WoW или Lineage 2?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    В онлайн играх применяются и постоянно обновляются различные механики и даже шифрование против рерверсинга клиента, написания и применения ботов, кликеров и прочего. Да, такого бота вполне возможно написать и на JS, но вот от задач обратной разработки игрового клиента и написания низкоуровневого кода на ассемблере и C/C++ вас это не спасёт. Это всё равно придется делать. И даже добавит веселья при переносе/конвертации данных между разными ЯП. Кроме того, JS - язык интерпретируемый, хоть он и обладает достаточной производительностью, он может и, скорее всего, станет узким местом в боте, которое будет не успевать за работой игрового клиента или банально не хватит скорости работы при обработке больших массивов памяти (например анализ изображения в реальном времени или сканирование памяти приложения в поисках нужных данных).
    Типовые инструменты разработчика ботов - это WireShark и другие снифферы трафика, различные утилиты для исследования и дизассемблирования скомпилированного кода типа IDA, Resource Hacker и прочее, а так же различные среды разработки, в зависимости от индивидуальных предпочтений. Вообще, софта для реверсинга много разного и всякого для различного рода задач.
    Ответ написан
    Комментировать
  • Почему время выполнения программы так сильно различается?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    … 75% cpu 2:23,52 total
    … 113% cpu 1:22,71 total
    … 73% cpu 2:20,75 total
    количество потоков в программе равно количеству потоков процессора (в моём случае - 8…

    Похоже, что твоя программа не справляется с загрузкой всех ядер, едва одно ядро она нагружает. Я бы смотрел в то как потоки взаимодействуют друг с другом и искал там явную или скрытую сериализацию.
    Ответ написан
    Комментировать
  • Сколько линий одновременно тянет старый контроллер SATA на 6 портов?

    VoidVolker
    @VoidVolker Куратор тега Железо
    Dark side eye. А у нас печеньки! А у вас?
    Нет, это не нормальное поведение: похоже на перегрев южного моста (сата контроллер там) - он там достаточно горячий. Попробуйте заменить термопасту на южном мосту и поставить какой-нибудь вентилятор на обдув (хотя бы просто корпус открыть). Термопаста там за пару лет высыхает. Если не поможет - то, скорее всего дохнет он или слишком сильно деградировал от старости. Ну и еще можно попробовать подключить диски через какой-нибудь PCI-E контроллер. У меня на этой материнской плате таких проблем ни разу не было. Кстати, на ней M2 вполне работает через PCI-E переходник, но только как обычный диск и на скорости не больше гига - системным не сделать (тут вообще без вариантов: надо в БИОС NVME драйвер встраивать, что уже за гранью разумных трудозатрат, т.к. для этого надо реверсить оригинальный биос).
    UPD: еще проблема может быть в кривых дровах чипсета и SATA контроллёра - надо смотреть нагрузку процесса System -> Interrupts, в норме меньше ~4-5% должно быть при копировании.
    Ответ написан
    2 комментария
  • Как в Google Chrome, одним разом открыть от 50 до 100 новых вкладок, с указанным url-адресом?

    smilingcheater
    @smilingcheater
    Т.к. не указано другое, предположу что это надо на десктопе и на винде.
    В закладках делаете папку, в неё добавляете закладку на эту страницу. Открываете диспетчер закладок, эту папку, выделяете закладку и делаете Ctrl-C + Ctrl-V столько раз, сколько вам надо.
    Открываете режим инкогнито, делаете Shift-клик на папку, подтверждаете открытие большого количества вкладок и они открываются.
    Ответ написан
    Комментировать
  • Почему паралельная сортировка слиянием выполняется на cpu быстрее чем на gpu в 100 раз?

    freeExec
    @freeExec
    Участник OpenStreetMap
    Выигрыш на GPU будет если нужно перемалывать гигабайты за один вызов. А на массивах в тысячу элементах ты теряешь больше времени на копирование в GPU и обратно, и на запуск ядра. И это не говоря о том, что код для GPU надо писать так, чтобы в шину уместились все данные нужные на данной итерации, а у тебя выходит, что первому потоку нужен 0 элемент, а второму не второй элемент, который бы закешировался при запросе, а тысячный. В итоге мы получаем нужные данные, не за один запрос, а за 32 (ну или столько там потоков в варпе).
    Ответ написан
    Комментировать
  • Kак смонтировать диск Linux?

    CityCat4
    @CityCat4
    Дома с переломом ноги
    Диски - вовсе не обязательно sd :) Если NVME - то там вообще черт знает что может быть
    /dev/nvme1n1p2                         1991528K     142580K    1727708K   8% /boot
    /dev/nvme1n1p1                           10202K        136K      10066K   2% /boot/efi

    вот например.

    Ищи в dmesg, где ведро нашло диски (и нашло ли вообще). Обычно с нуля ведро никто не собирает - там тысячи параметров - берут готовое и правят.
    Ответ написан
    3 комментария
  • Как регулярными выражениями оставить только цифры?

    Maksim_64
    @Maksim_64
    Data Analyst
    сделай замену. r'\D', '',все что не цифра, на пустую строку.
    Если конечно ты уверен, что все они выглядят так как у тебя в примере, если например присутствуют плавающая точка или запятая или число отрицательное, то получишь ошибку, неприятную.
    Ответ написан
    Комментировать
  • Правильно ли завершается TCP соединение с браузером?

    15432
    @15432
    Системный программист ^_^
    Вплоть до 29 пакета всё кажется идёт хорошо, но в 29 пакете браузер пытается отправить ACK, как я понял в ответ на FIN ACK, но похоже тут что-то не так.

    всё ок, браузер почему-то отправил сразу два ACK, без учета FIN (29) и с учетом FIN (30). Ну лишний пакет получился, и ладно. Последовательность FIN/ACK завершена корректно.

    У меня подозрение, что в после того как сервер в 28 пакете отправил FIN ACK он не дожидается ACK от клиента, верно ли это?

    не, там всё нормально

    но браузер тут-же создаёт новое подключение

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

    не присылает никаких запросов в этом подключении

    видимо в index.html не было больше ничего, что можно запросить

    поскольку я хочу просто отправить ответ и закрыть соединение

    так и вышло, но в первом соединении. второе так и висело на всякий случай.

    в этом варианте клиенту с сервером чуть-чуть не хватило что-бы полностью обработать последовательность:

    да не чуть-чуть, здесь вместо закрытия по таймауту (FIN), на стороне сервера соединение закрылось по RST (видимо по закрытию приложения сервера или по системному таймауту), клиент и не думал начинать закрывать сокет. логично - браузер всё ещё надеется, что вы откроете другую страничку

    Правильно ли я понимаю, что сервер посылая FIN ACK не дожидается ACK и в целом неверно производит завершение TCP подключения, завершая соединение раньше времени?

    всё корректно дожидается, тут проблем нет

    Именно поэтому браузер инициирует повторное подключение, но не присылает никаких данных.

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

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

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

    (я пробовал разные браузеры)

    видимо все браузеры конкурируют по скорости работы с Web и делают такую оптимизацию
    Ответ написан
    3 комментария
  • Как отправить post-запрос с сайта на localhost?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Только убрав/изменив заголовок Content-Security-Policy на сайте. Пока этот заголовок присутствует и в нём есть директива connect-src 'self' браузер будет блокировать запросы к любым другим источникам.
    P.S. На своём компьютере вы можете использовать DevTools хрома для переопределения заголовка.
    Ответ написан
    2 комментария
  • Почему письма отправленные с почты начали приходить в spam?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Лучшее решение - не отправлять спам.
    Ответ написан