• Как переделать маркдаун ссылку в хтмл?

    @Everything_is_bad
    А зачем так извращаться? Чем не устроили готовые библиотеки конвертации markdown в html?
    Ответ написан
    3 комментария
  • Каждые 10 сек. сайт должен получать цены с 11 бирж, но этих бирж станет больше, как распределять нагрузку?

    @Everything_is_bad
    Задача общая, не привязанная к фреймворкам, для начала переходишь на очередь, далее разделяешь загрузку (потому что почти всегда IO Bound по сети) и обработку данных (а тут часто работа с базой, CPU Bound и прочее). Мониторишь состояние очереди, регулируешь кол-во воркеров, дебажишь на поиск узкие мест, оптимизируешь (например, у многих бирж есть websocket, часто менее затратно подписаться на изменение цены, чем долбить своими запросами.)
    Ответ написан
    Комментировать
  • Возможно ли использование оборудования Cisco в 2024?

    @Komrus
    Если уж занудствовать и расписать подробнее немного, то:

    1. Правовой аспект
    Надо понимать, для кого? Физ. лица, частного юр.лица, государственной структуры?
    Для физ.лица и частных организаций никаких нормативных ограничений по российскому законодательству нет. Для гос. организаций - есть настоятельные требования по импортозамещению и использованию российского оборудования. (Но если большая сеть и что-то поломавшееся надо поменять - то есть шанс обосновать закупку и Cisco. Но небольшой.)

    2. Логистический аспект.
    Есть немалая пачка фирм, которые умеют в настоящее время привозить в Россию Cisco'вские железки по альтернативным каналам.

    3. Технический аспект.
    У Cisco линейка продуктов - разлапистая. Там не только железки, но и немалое количество программного обеспечения. Многое из ПО - лицензируется на основе годовых подписок. Да и ряд железок имеют лицензии (например DNA для коммутаторов; хотя и без них основной функционал работать будет). Во с лицензированием сейчас всё сложно. Возможны обходные манёвры, но, на мой вкус - это так себе идея. Риски великоваты. Хотя и работает.

    Резюме: если с "чистого листа" что-то новое начинать - я бы на что-то другое посмотрел бы. (Хотя раньше и плотно Cisco занимался). Элтекс тот же (с пониманием ограничений)
    Если дополнять имеющееся - надо вдумчиво существующую систему/ландшафт анализировать.
    Ответ написан
    Комментировать
  • Почему не обновляется бд на heroku?

    drygdryg
    @drygdryg
    Python-разработчик
    На Heroku используется временная файловая система, не сохраняющая изменения, которые вносятся в файлы во время работы приложения. Используйте клиент-серверную СУБД вместо SQLite, например, PostgreSQL, если хотите разместить приложение на Heroku.
    Ответ написан
    1 комментарий
  • Какие есть нейронные сети которые можно обучить на исходном коде?

    @rPman
    Ни одна gpt не сможет полноценно решать такую задачу
    скормить исходники движка Unreal Engine

    потому что это НОВАЯ информация, ее не получится добавить в виде обучающей выборки и finetune. Так как это заставит модель больше галлюцинировать.
    В теории это возможно
    но потребуется переобучение (пусть и с использованием уже pretrained модели на старте) на данных, на которых эту сеть обучали! это наиважнейшее условие, с некоторой эффективностью можно проредить исходные данные, буквально на днях читал об исследованиях, как можно оценить, какие данные можно использовать для дообучения а какие нет.

    Стоимость этого будет сравнима со стоимостью полного обучения - миллионы баксов, без преувеличения!

    После этого потребуется еще доводка с помощью алгоритмов RLHF (нужны серии специально подобранных вопросов, так же это очень связано с тем какая была обучающая выборка, иначе модель будет низкого уровня и способна только для задач completion и очень слабо для chat, а тебе нужны instruction

    GPT умеет легко обучаться только на данных, которые влезают в контекстное окно. У лучшей открытой сетки llama3-70b это 8к токенов (обычно это +-1 файл исходников) да и у других от силы 16к и 32к но они слабые и способности запоминать данные во всем окне очень слабые.
    Если что, советую mixtral 8x22b, требует 85гб для 4бит квантизации (в этом случае незначительно теряется качество) или лучше 96гб для 5битной. 64к размер контекста, работает несколько токенов в секунду на процессоре, т.е. будешь ждать но не критично долго

    Но это не значит что совсем нельзя. Привожу пример сессии моей беседы с бесплатным anthropic claude (у них большое окно контекста, влезает несколько исходных файлов), скармливал исходники приложения на c# для поиска дубликатов видео.

    Подготовил вопросы, они должны быть в старте промпта (тогда сетка их будет использовать на протяжении всей беседы) и подготовил промпты типа:
    - вот список файлов проекта, с каакого файла нужно начать анализ чтобы ответить на эти вопросы
    Смотрим что скажет сетка, и подсовываем ей по одному исходному файлу который она попросит
    - проанализируй этот файл, если тебе нужна информация по классам, определенным в другом месте, сообщи об этом

    Дополнительно в процессе беседы дублирую информацию из основных вопросов, либо задаю наводящие вопросы, если ответ получил не полный

    Сеть поняла написанный код, как он работает и смогла ответить на нетривиальные вопросы.

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

    Будь креативным в промптах, чем лучше запрос тем больше шансов получить ответ.

    Для новых вопросов начинай новую сессию, заново заливая файлы. Чем больше файлов в контексте тем хуже сеть их понимает.

    p.s. 'точно и без ошибок' не будет!
    Ответ написан
    Комментировать
  • Шифрование VeraCrypt и BitLocker одновременно, возможно ли такое?

    saboteur_kiev
    @saboteur_kiev Куратор тега Информационная безопасность
    software engineer
    в VeraCrypt в свое время были выявлены критические уязвимости, что говорит о соответствующем уровне разработчиков.

    И какой же?
    Вы как бы должны понимать, что софт непростой, и написать его вообще без уязвимостей, надо быть боженькой, что невозможно.
    Veracrypt - форк от Truecrypt, в котором уже точно были найдены определенные уязвимости, и в веракрипт они были исправлены.

    Соответствующие аудити выявляли возможные уязвимости, которые были исправлены. Последний публичный аудит был еще в 2020 году.
    Хотите провести аудит - исходники открыты, аудитируйте.

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

    То есть найти уязвимость или даже если есть открытые issue, это далеко не тоже самое, что иметь возможность легко расшифровать зашифрованный том. Уязвимость может лежать в других моментах. Например драйвер веракрипт, который как и все драйвера, внедряются на уровень ядра ОС, может позволить выполнить несанкционированные действия. Но к шифрованию это никакого отношения не имеет.
    Например https://www.cvedetails.com/cve/CVE-2015-7358/
    Ответ написан
    1 комментарий
  • Как ускорить работу сервера python flask?

    @Everything_is_bad
    чтоб скрипт использовал всё 4 процессора
    для этого достаточно запустить 4 инстанса фласка

    надо чтоб он обробатывал 10 млн строк за 3 секунды
    если обработка это поиск в файле, но нужно перестать извращаться с файлами и загнать данные в БД и проиндексировать

    probiv_telegram_onix
    /)_-) за пробив есть шанс присесть, особенно когда так без палева сюда приходишь
    Ответ написан
    Комментировать
  • Какие есть способы скомпилировать Python программу в исполняемый файл?

    Vindicar
    @Vindicar
    RTFM!
    Чтобы код остался питоном - никак. Питон по природе язык с виртуальной машиной, известные мне реализации питона не делают полноценную трансляцию в машинный код. Максимум JIT.
    Но можно поискать транспиляторы, вроде cython. На главной странице репозитория есть любопытный набор ссылок.
    Ответ написан
    1 комментарий
  • Как совершенно посторонний провайдер может не пустить в интернет?

    @rPman
    Устанавливаешь на смартфон/планшетник любой пакет сетевых утилит при котором есть traceroute (например ping tools) и смотришь какой путь проделывают пакеты при подключении к роутеру 'на балконе' и какой к остальным роутерам. Так же смотришь, какие ip адреса выдаются из какой подсети. какой шлюз и сравниваешь.

    Может так случиться что у тебя в сети настроено две локальные сети, подключенные к разным провайдерам
    Ответ написан
    2 комментария
  • Что такое пул в программировании?

    wataru
    @wataru
    Разработчик на С++, экс-олимпиадник.
    pool - переводится не только как "бассейн", но и как "общий фонд". Пул в пограммировании - это набор однотипных ресурсов, которые переиспользуются по мере надобности. А при осовбождении - возвращаются в общую кучу. Так экономятся расходы на создание и уничтожение этих ресурсов. Бывают пулы почти чего угодно: потоков, буферов, каких-то объектов.

    Например, вместо того, чтобы запускать поток под каждое новое подключение в сервере, у вас есть 20 потоков, которые просто ничего не делают, а когда появляетсся подключение, какой-то из свободных потоков его обрабатывает. Если свободных потоков нет, возвращается ошибка, или соединение ждет в очереди. Когда оно обработано, поток возвращается в пул, вместо уничтожения. Это работает хорошо, потому что создание потоков - сложная и дорогая операция. Гораздо дешевле поток усыпить и засунуть какой-то дискриптор в какую-то структуру данных.
    Ответ написан
    Комментировать
  • Как примерно выглядит async-await код, если его написать на промисах?

    sanchezzzhak
    @sanchezzzhak
    Ля ля ля...
    да правильно.

    await можно вызвать только внутри async блока.
    когда мы используем await отлов ошибки всегда нужно делать в try { ... } catch (e) {}.
    любой метод который возвращает промис можно использовать await внутри блока async
    и того вы можете комбинировать устаревший код с новым.

    (async () => {
    
    async function fetchData1(url) {
       try { 
        let response =  await fetch(url);   // promise
         return await response.json();      // promise
      } catch(e) {
         return null;
      }
    }
    
    // на промисах  это выглядело бы так, вам все равно нужно вернуть обьект промиса, если вам важно вернуть результат.
    
    function fetchData2(url) {
       return new Promise((resolve,reject) => {
           fetch(url).then(res => res).then (res => res.json()).then((result) => {
             resolve(result);  // говорим что наш промис достиг успеха,
          }).carch(e => {
              resolve(null);  // так как мы повторяем логику try catch  мы используем пустой ответ. вместо reject(e);
          })
       })
    }
    
    const promises = [
        fetchData1('/last-news'),       
        fetchData2('/last-comments'),  
        fetchData2('/popular-news'),
    ];
    // (после объявления массива методы уже будут выполнятся, лучше делать через promises.push(...) )
    // .. куча логики
    // приказываем ожидать если не все выполнялось.
    const result = await Promise.all(promises);
    console.log({result});    
    
    // или так 
    Promise.all(promises).then( results => {
        console.log({result});    
    })
    
    // a так если мы хотим последовательно и лапшой promise hell
    fetchData1('/last-news').then(resultNetws => {
            fetchData2('/last-comments').then(lastComments => {
                 fetchData2('/popular-news'').then(popularNews => {
               
                  })
           })
    });
    
    // рекомендую прочитать про статичные методы у обьекта Promise.all итд.
    
    
    })());
    Ответ написан
    1 комментарий
  • Ubuntu закрывает приложения без ошибок, в чем может быть проблема?

    @AlexVWill
    В момент вылета посмотри syslog, возможно там будет указана ошибка, по которой можно определить причины вылета. А причины могут быть разные, от проблем чисто софтовых (драйра например), до железных с памятью, процессором, питанием и пр.
    Ответ написан
    Комментировать
  • Какие есть оптимальные способы хранения и передачи изображений из MongoDB?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Да, есть: хранить сами изображения не БД, а в отдельном файловом хранилище с внешним доступом по ссылке-идентификатору. В самой же БД хранить только идентификаторы изображений в хранилище. Это стандартная практика работы с файлами и БД.
    Ответ написан
    Комментировать
  • Преобразование шрифта?

    wataru
    @wataru Куратор тега Алгоритмы
    Разработчик на С++, экс-олимпиадник.
    Этот текст - это символы Unicode.

    Например, "б" в слове "большое" - это символ 0x0431

    Проблема в том, что там символы не из одного алфавита, а полная солянка. На этом сайте можно получить коды всех символов: https://www.rapidtables.com/convert/number/ascii-t...
    Получите:
    1D04 1D00 28D 43E 1D07 20 431 43E 1D27 44C 26F 43E 1D07 20 28D 43E 1D29 1D07


    Как видите, они все разбросаны довольно сильно. 1D** - Phonetic Extensions . 04** - Cyrillic, 02** - IPA Extensions

    Символы из разных алфавитов подобраны по внешней похожести на нужные буквы (как Ш - это перевернутая m вообще). Наверно, какой-то онлайнг конвертер вроде этого где-то имеет набор из 33 кодов и подставляет их вместо русских букв. Не знаю, есть ли такой обратный.

    Можно написать обратный конвертер на том же питоне, только надо руками сопоставить каждому символу из текста нужный символ из обычного ascii. Например, заведите солварь (вам надо руками все встречающиеся символы в исходной строке туда добавить):
    convert = {'ᴀ': 'а', ... 'ʍ':'м', ...}

    Потом примените его ко всем символам в вашей строке каким-нибудь map().
    Ответ написан
    Комментировать
  • Как запросить по 2 записи из каждой категории с лучшим рейтингом?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Кажется можно решить через оконные функции. Посмотри как тут https://dev.mysql.com/doc/refman/8.0/en/window-fun...

    Пригодится RANK или LEAD.
    Ответ написан
    1 комментарий
  • На чем пишут современные соц.сети, способные выдержать большой поток людей?

    @Everything_is_bad
    Пишут на том, на чем умеют, главное чтобы это можно было поддерживать и масштабировать, начинающие на такое не способны, тут нужен опыт.
    Ответ написан
    4 комментария
  • На чем пишут современные соц.сети, способные выдержать большой поток людей?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Нужно писать соцсеть на "одних лишь ЯП". Производительность CMS принципиально ограничена. Все существующие соцсети, "способные выдержать большой поток" - это очень индивидуальные решения, без каких-либо готовых компонентов.
    Ответ написан
    Комментировать
  • На чем пишут современные соц.сети, способные выдержать большой поток людей?

    @bit8
    Большую соц.сеть на 1 языке не создать, в определенныый момент придется часть сервисов переписывать на другие языки, для производительности или фишек каких то
    Ответ написан
    Комментировать
  • Возможно ли на винде написать программу дешифровки?

    saboteur_kiev
    @saboteur_kiev Куратор тега Windows
    software engineer
    То, что вы хотите, делается через создание драйвера виртуального диска, а уже в драйвере можете реализовывать различные шифрования. Тогда это будет прозрачно для программ - они просто запрашивают файл, а драйвер обеспечивает к нему доступ.
    Изучать нужно API операционки и примеры существующих решений
    Ответ написан
    1 комментарий