Fri 19:22
@maestro Ну там где-то 8.5Кб, если число из вопроса прямо в hex перевести как есть. Если файлики маленькие, то уместятся.
Fri 19:22
Ну то есть ИИ может быть не генерит этот PDF, а где-то его подсмотрела, и другие модели тоже думают, что именно вот этот вот PDF может быть почему-то связан с этими данными.
Fri 19:22
@P.M. Если у них внутри примерно одна модель и они учились примерно на одних и тех же данных, то почему бы и галлюцинациям их не быть похожими. Я не утверждаю на 100%, что это галлюцинация, но это очень может быть, если ИИ не раскрывает методику расшифровки.
Fri 19:22
Да уж. ИИ легко может галлюцинировать - выдать вам произвольный файл и сказать, что это он расшифровал из ваших данных.
 
Jun 27 18:03
@Kromster Я его тоже находил, но он тоже без ответа.
Jun 27 18:03
Гаммирование может ещё как сложение по модулю делаться, но я проверил, там тоже козябры получаются, даже если не коды символов, а позиции в алфавите использовать.
 
Apr 16 13:18
А вообще можно почитать builder.io/blog/fast-images и web.dev/articles/optimize-lcp?hl=ru
Apr 16 13:18
Ещё есть параметр fetchpriority="low"
 
Mar 21 10:47
@ToshaTatosha Я перестал понимать, о чём вы говорите, извините. Да, где-то требуется чисто знать Django и этого достаточно. А где-то нет.
Mar 21 10:47
@ToshaTatosha Невозможно выучить всё. Разных библиотек тысячи, разных тулзов для обеспечения процессов тоже. Можно выучить азы каких-то типовых штук, но когда ты приходишь на реальный проект, то всегда приходится разбираться, как именно там всё устроено, какие средства и библиотеки используются, какие там процессы разработки и т.д. и т.п. Программист всё время учится, и когда работает - тоже учится. Всегда.
Mar 21 10:47
@ToshaTatosha У меня 30 лет стажа в IT (или больше). Обычно проблема обратная - джун/миддл/иногда даже сениор сидит что-то там тупит, а время то идёт. Вместо чтобы подойти и спросить что непонятно. В нормальных конторах всегда всё расскажут и покажут, потому что заинтересованы в результате. Да, у людей может не быть свободного времени в какой-то конкретный момент, но они его обязательно найдут. И чем ниже грейд, тем больше человеку всё разжуют - копай отсюда и до обеда. Выше грейд - задачу ставят в общих чертах, а дальше ты сам разбираешься и думаешь, кого спросить.
Mar 21 10:47
Нужно выучить базу языка программирования ну и в целом какие-то базовые представления об IT получить. А дальше устраиваешься джуном (грамотно ответив базу на собесе) - и стараешься, стараешься, читаешь доки, изучаешь процессы. Пока ты джун - всё спрашивай и записывай, тебе всё объяснят, главное спрашивай всё, что непонятно и старайся делать. Не ленись, разбирайся, делай. И всё получится. Ко многим вещам в жизни невозможно "подготовиться на берегу", нужно отправляться в большое плавание, чтобы приобрести опыт.
 
Mar 18 19:08
@AlexanderPetrov Да не нужен тут второй воркер. Просто не нужен. И батчи по 100 не нужны. Я имею в виду прямо взять вообще этим одним воркером все записи. Но ставить флаг, сохранять и стартовать таску для дефайнера - по одной записи из этих прочитанных. Чтобы никто не дрался ни с кем за базу. Таски будут писать в другую таблицу, и поскольку они в неё только добавляют, я думаю они тоже за неё драться не будут.
Mar 18 19:08
@Xzizz Зачем транзакцию? Транзакцию вообще убрать надо. И где в этом сценарии вообще может быть эксепшен? С rawLinks работает ровно один воркер. А даже если не один, то он помечает isProcessing и сохраняет один элемент, после чего стартует таску. Вышел эксепшен - ничего страшного, берёт следующий элемент из списка. Возможно, так даже быстрее будет, чем если несколько воркеров будут драться за БД. Ещё сильно зависит от того, что и как долго делает Definer. Если он быстро работает, то вообще убрать множественные воркеры, тут это не нужно.
Mar 18 19:08
Чем больше я смотрю на эту задачу, тем меньше понимаю, зачем вообще упираться в тонкости работы с БД. Просто разберите всю очередь, каждый элемент пометьте IsProcessing и создайте таску, которая будет этим элементом дальше заниматься. Если это непрерывный процесс - ок, пусть крутится кругами, создавая таски. Дальше каждая из тасок обработает свой элемент и запишет результаты в БД. Готовые таски можно разгребать и чистить тем же воркером, который их создавал, ну и заодно удалять готовые rawLinks. И никто ни с кем за базу не конфликтует, таски пишут в другие таблицы.
Mar 18 19:08
А где расположена база - локально или на другом хосте и как ищется - по имени или по ip? А то в интернетах пишут разное интересное на эту тему. Типа что по ip может быть гораздо быстрее, DNS может тормозить, например. Даже если коннектиться на localhost.
Mar 18 19:08
Хм. Я бы попрофилировал, интересно, что же столько времени занимает. Если реально чтение/запись в БД, то как-то странно. Глупый вопрос - а на Id индекс есть, ну или там PK? А на IsProcessing? А то может у вас на самом деле каждый раз все индексы сначала читаются. И если их много, то реально разницы нет что 1 что 100 их брать, читаться будет вся таблица каждый раз.
Mar 18 19:08
Если у вас точно будет толпа воркеров и туча задач, то можно тот же принцип, что в шардировании применить - грубо говоря берём остаток от деления Id на число воркеров - и выбираем каждому воркеру задачи с вот этим номером только для него. И никаких пересечений.
Mar 18 19:08
А что вы пытаетесь выгадать, выбирая записи по 100 штук? Мне кажется вы только усложняете себе задачу так. Пусть воркеры берут по одной ссылке, тогда пересечение их если и будет, то минимальное и оно быстро обработается. Кроме того, если у вас вдруг Define упадёт, то опять же вся работа над пачкой на смарку. Или может не упадёт, а повиснет. Мало ли. Так что я бы просто разгребал по одной записи, да и всё. Буферизовать и пачками что-то обрабатывать нужно, когда это может дать пользу какую-то. Даст ли это пользу в данном случае - я что-то не уверен.
Mar 18 19:08
Спасибо, что работаете над улучшением вопроса. Я позже гляну - работа. Так то вроде и простой вопрос, а вроде и не простой. Может кто другой ответит, а может я потом доразберусь.
Mar 18 19:08
В идеале вы не должны брать из базы не связанные сущности пачками и что-то с ними долго делать. Вернее, подсмотреть то их можно, а дальше распределить по воркерам и пусть они атомарно с ними в базе работают по отдельности. Например.
Mar 18 19:08
Я так и не услышал ответа на вопрос: какую задачу вы решаете? Только в изначальной постановке. "Взяли 100 записей, куда-то передали, изменили, записали" - это не постановка задачи, а попытка решения. И не факт, что удачная.
Mar 18 19:08
Так а что именно вы хотите делать? От этого будет зависеть выбор средств.
 
Mar 11 09:18
Смысл в том, что примерно так сайты на уязвимость и тестируют. Есть некий список файлов, которые могут находиться на типичных веб-серверах. Если администратор сайта неопытный, он доступ к этим файлам не закрыл. А там может быть какая-то интересная информация, например, пароли какие-то для доступа куда-то. Ну и вот хакеры (или тестеры уязвимостей) перебирают такие ссылки, пытаясь скачать эти файлы наугад. Не вручную перебирают, а такой вот программой. Смысл её в этом.
Mar 11 09:18
А, ну то есть в файле всё-таки относительные ссылки. Нужно к url сайта пристыковать ссылку из файла и расширение (что странно, обычно ссылка уже с расширением) и проверить, доступна ли такая страница. Ну, задание не сложное, но чётко его сформулировать у вас так и не получилось.
Mar 11 09:18
Можете в дополнение к тому коду разместить. В вопросе может быть много кусков кода, много текста. Много инфы не мало. Главное не забывать всё разъяснять.
Mar 11 09:18
Я не знаю, что это за сайт. И в любом случае прежде, чем выполнять задание, нужно его чётко понять. Без этого без толку что-либо делать. Если у вас сложилось какое-то понимание этой задачи - попробуйте уточнить у менторов: 1) правильно ли вы всё поняли, что нужно сделать то-то и то-то 2) и что делать с трудностями по типу отсутствия доступа к каталогу у такого-то сайта. Ментор должен ваши вопросы разъяснить и тогда станет что-то более понятно.
Mar 11 09:18
Ну так то да, у сайта может быть закрыт доступ к конкретным папкам, это нормально. Лучше обсуждайте с менторами, что же они всё-таки от вас хотят, я лично до сих пор не понимаю. У меня тоже обе эти папки access denied и это вполне нормально.
Mar 11 09:18
Приведите в вопросе несколько ссылок из вашего входного файла. Чтобы понимать - там полная ссылка, частичная или что вообще.
Mar 11 09:18
Шиза сплошная. "Используйте библиотеку requests, но скачивать ничего не нужно." Что?! )) А вот это "Файл с ссылками(адрес относительный)" - у вас есть какой-то входной файл? Если есть, то что там - ссылки на конкретные файлы или что вообще? Кажется, я понемногу догадываюсь. Может там относительные ссылки на файлы, которые обычно бывают на сайтах и вам нужно попробовать запросить эти файлы на указанном сайте, проверить, есть ли они там? Но в любом случае заголовок вопроса всё ещё не имеет отношения к вопросу. Вы же не собираетесь никакой сервис создавать, да ещё и уязвимый?
Mar 11 09:18
В общем, вопрос очень некачественный. 1) Заголовок непонятный и не имеет отношения к тексту вопроса. 2) Сам вопрос тоже не очень понятен - то ли нужно искать ссылки на страницах сайта (для чего его нужно парсить, но автор вопроса необходимость парсинга отрицает), то ли нужно просто проверить рабочие ли ссылки в списке, которые заранее заданы (как в коде в вопросе). Ничего в общем непонятно, что же хотел собственно автор вопроса.
Mar 11 09:18
Что такое "фаззер"? Ну а в целом - что именно вам непонятно? Ходите по сайту (requests + BeautifulSoup), смотрите, не попадаются ли вам ссылки на файлы с нужным расширением, записываете имена этих файлов в файл.
 
Jan 27 13:31
Проблема в том, что нет await у shoppingCartService.AddToCart? Вообще непонятно, как эти два сервиса завязаны с вашим, у них что, один и тот же контекс с вами?
Jan 27 13:31
Покажите конкретный кусок кода, где возникает исключение. От момента начала использования контекста.
 
Jan 11 00:15
@MBo Ну, надо пробовать, может и норм будет, учитывая, что проверять нужно будет не все эти числа, а до <= введенного числа. Хотя всё-равно 2с выглядит нереально для миллиона таких тестов.
Jan 11 00:15
А точно наборов до миллиона? Просто даже взять миллион рандомных чисел с помощью ГСЧ - уже вылезет за рамки отведённого времени, например. А ведь ещё нужно проверить успеть каждое число.
Jan 11 00:15
А по сути да, задача хитрая. Тут явно нужен один там местный любитель математики. ) Явно какая-то хитрость есть. Стоп, про 3 я наврал, от 2 надо. "Хотя бы 2" - это не меньше 2. Блин. Сорри. Меня смутила ваша проверка на n == 2.
Jan 11 00:15
Так, а почему if divider * 2 > n:? Явно же нужно проверять divider * divider > n. Ну и могу ещё предложить кешировать результаты в словарь для скорости. Или числа во вводе точно не повторяются? Да, и искать начинайте от 3, а не от 2, согласно условию, если я правильно всё понял.
Jan 11 00:15
@pythonniy_chainik Правила такие. Задача - текстом, код - текстом. Ну а по сути - вы должны предложить своё решение, пусть и не оптимальное, прежде чем просить помощи. Чтобы было видно, что вы "не халявщик, а партнёр".
Jan 11 00:15
Что-то вывод явно со сдвигом приведён, его нужно на одну ячейку ниже опустить. Ну а так что. 1) Возводите число в квадрат 2) Добавляете к этому квадрату число 1 3) Раскладываете получившееся число на два множителя, причём тут явно нужно идти от меньших чисел в попытках разложения (и до корня числа) - чем больше разница между множителями, тем больше будет периметр. Ну и всё. Первые два действия вы явно можете и сами сделать, а про разложение числа на множители тут было 100500 вопросов и ответов, поищите.
 
Jan 9 16:10
@Harry Ну да, это дубль. scanf запихивает не подходящий ему \n обратно в поток ввода и его нужно оттуда как-то чистить.
Jan 9 16:10
А вы эту программу как вообще запускаете, в какой IDE или из командной строки или как вообще?
Jan 9 16:10
@AlexGlebe Обычно всё-таки во всех языках логические операторы "ленивые" и выполняются слева направо, на это много где логика завязана. Не уверен конкретно про C, но обычно порядок проверок фиксирован поэтому, иначе придётся слишком много лишних проверок придётся делать, если не полагаться на именно такой порядок. Ну или делать вложенные if-ы придётся, что выглядит не так уже компактно.
Jan 9 16:10
Ввод в буфер прекрасно работает, перевод строки в буфер не попадает. Вот почему дальше scanf не работает нормально - это я уже не знаю.
 
Nov 27, 2024 09:27
@SwaD Про тесты у меня, кстати, тоже была идея, но я её забыл написать. Возможно, это вообще самый простой способ проверить, что код не поменялся. Модификаций наверное нужно будет столько же, сколько тестов, если тесты хорошо подобраны.
Nov 27, 2024 09:27
@avp Контрольная сумма очень даже годный вариант. Можно и какой-то хэш от самой суммы возвращать, чтобы его можно было проверить )
Nov 27, 2024 09:27
Вот ведь пытливый ум. Так, но если искажение может быть любое, то во многих случаях программа просто не скомпилируется. И, мне кажется, мы с этим ничего сделать не можем. Или нужно бороться только с такими искажениями, которые оставляют программу исполнимой? В этом случае скорее всего кроме знака действия вряд ли что-то ещё можно изменить. А это уже можно будет как-то задублировать, проверить.
 
Nov 21, 2024 22:27
@AlexeyTrukhanov Kafka - для крупных компаний и высоконагруженных сервисов. Миллионы сообщений в секунду - легко. RabbitMQ попроще. Есть такая штука как ZeroMQ, но она вообще без хранилища, просто "connecting people" (ну то есть сервисы), как говорится. Ну это уже скорее замена API, наверное тут я её зря упомянул вообще.
Nov 21, 2024 22:27
@AlexeyTrukhanov Максимально неудобная схема )) Если нужно максимально быстро писать что-то и не ждать результата, то оптимально использовать брокер сообщений. А из него уже писать в базу, ну либо прямо из него данные и брать. Иначе всё же БД, да. Через файлы - это излишнее усложнение задачи.
Nov 21, 2024 22:27
Кстати, да. Простой какой-нибудь брокер сообщений - это тема. Много места и ресурсов не ест и не нужно думать, сформировался файл или нет. Что пришло - то и читаем. Правда, тут бинарные файлы, ну, если они небольшие, то можно их в текстовый вид запаковать.