Задать вопрос
  • Как правильно организовать поиск по большому кол-во бд?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Как сделать поиск максимально производительным? Что использовать? Асинхронность? Многопоточность?

    Оптимизация запроса к БД начинается с того что вы выделяете сет активных запросов которые важны для вас.
    Для каждого из них строите план исполнения запросов
    EXPLAIN [ ANALYZE ] [ VERBOSE ] ......
    Потом с этим планом приходите к специалисту (или сюда) и спрашиваете что надо улучшить в
    тексте запроса или в таблице или в индексе чтоб было быстрее.

    Добавление большего числа исполнительных потоков (сессий БД) обычно не улучшает ситуацию
    а только ухудшает. Практика это показывает. Мы быстро выходим на пологую кривую пропускной
    способности диска - и дальше хоть добавляй потоки - все будет только хуже.

    Насчет асинхронных операций - не знаю. Если мы работаем через пул коннектов - то надо обсудить
    построение абстракции асинхронности над абстракцией пула. Это тема отдельного топика.
    Ответ написан
    Комментировать
  • Как удалить программу через Ubuntu Software?

    @Nikita1244
    Anonymous
    Установите пакетный менеджер Synaptic и забудьте навсегда о существовании убогой, глючной программе Ubuntu Software. Была такая же проблема, решил Synaptic'ом.
    Ответ написан
    Комментировать
  • Где хранятся логин и пароль от MongoDB?

    Grapeoff
    @Grapeoff
    В чём концепция...?
    Т.К. я вижу в тегах Vue.js, то отвечу на вопрос так: на фронтенде не подключаются к БД
    Ответ написан
    Комментировать
  • Как классифицировать числовой ряд?

    wataru
    @wataru Куратор тега Математика
    Разработчик на С++, экс-олимпиадник.
    Это называется кластеризация. Вам надо разбить данные на 3 кластера. Метод ближайших соседей, упомянутый выше, подходит.

    Все-таки все эти методы кластеризации разработаны для более общего случая. А у вас тут данные одномерные и численные уже - так что все совсем просто.

    Во-первых, данные надо отсортировать, если уже не. А дальше у вас тут 2 переменные - (i,j) - первый и последний элемент в средней группе.i>0,j<n-1.

    Можно эти индексы тупо перебрать двумя вложенными циклами. А дальше надо считать какую-то целевую функцию - насколько хорошо кластеры выбраны и брать лучшее значение. Надо, чтобы внутри различие было поменьше, а между кластерами - побольше. Можно брать максимум разности в каждом кластере и делить на разницу между двума кластерами. Вот минимизируйте эту функцию.

    Но вообще можно, наверно, просто взять 2 максимальных промежутка между соседними числами и по ним разделить. В примере выше этот метод отлично разбивает на 3 группы: 1-103, 999-1001, 9000-9500

    Если разность между маленькими числами важнее разности между большими, то возьмите сначала логарифм от всех чисел и уже это разбивайте на группы.
    Ответ написан
    7 комментариев
  • Как запустить две асинхронные функции паралельно?

    Fragster
    @Fragster
    помогло? отметь решением!
    let [dataRu,dataEn] = await Promise.all([getProductsDataRu(urls),getProductsDataEn(urls)])
    Ответ написан
    4 комментария
  • Как в виртуальных процессорах устроена виртуальная память?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    зачем там реализуют разные модули, типа кеша, вроде в каком-то даже увидел конвеер исполнения команд, предсказатели переходов. И прочие. К примеру кеш, тлб, зачем он там нужен. если все как бы просиходит внутри машины?

    Фронт-енды QEMU реализуют большую часть наблюдаемого поведения моделируемого ими процессора. Одно большое исключение -- это процессорный кеш: QEMU не моделирует поведение процессорного кеша. TLB во многих архитектурах доступен для прямого чтения/записи через команды процессора, нельзя сказать что он "внутри машины".

    Зачем адрес куда-то в кеш записывать, если этот кеш 3 уровня, или регистр лежит с точки зрения внешней среды, там же где и ram и доступ должен быть одинаковым.

    Покажи пример, обсудим конкретику?

    Ассоциативная память. Если там внутри делается таблица адресов, виртуальных адресов. То к примеру для адресного пространства 4гб, будет 2^32 это будет в 32 раза дольше.

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

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

    Нифига. В QEMU есть два уровня TLB -- один, моделируемый процессорным фронт-ендом, второй -- собственный TLB QEMU softmmu независимый от эмулируемого процессора, поиск по которому встроен в генерируемый JIT (который в QEMU называется TCG) код. Собственный TLB QEMU прямого отображения, т.е. поиск в этом TLB -- это всегда проверка одного элемента массива и загрузка одного отображения в случае успеха. Например вот так генерируется код для этого на хосте x86. В случае неудачи происходит вызов функции поиска в архитектурно-зависимом TLB. Вот так этот вызов генерируется, а вот пример его реализации во фронт-енде. Поскольку этот TLB моделирует конкретную архитектуру его ассоциативность может варьироваться в широких пределах, или он может вообще отсутствовать. В случае промаха или отсутствия TLB поиск может либо продолжаться дальше в таблицах страниц, например так, либо фронт-енд генерирует исключение доступа к памяти, например так.

    В итоге операций при поиске трансляции для виртуального адреса может быть гораздо больше чем 32, которые ты предположил, в случае промахов, но цена промахов амортизируется тем, что чем более они дороги, тем более они редки. Но, конечно, задача намеренно обращающаяся к никогда не повторяющимся страницам памяти будет иметь очень низкую производительность при выполнении в QEMU softmmu.
    Ответ написан
    2 комментария
  • Как сверстать такой заголовок?

    delphinpro
    @delphinpro Куратор тега CSS
    frontend developer
    Как-то так
    Ответ написан
    1 комментарий
  • Так КАКАЯ математика нужна для работы с базами данных???

    @rPman
    хватит школьных знаний

    Да, когда говорят про реляционную алгебру, мыслят категориями математического анализа, но знаний особых тут не нужно, достаточно просто запомнить (если честно, серьезно углубляться в такую математику нужно разработчикам серверов баз данных, когда начинаешь это дело оптимизировать, не забывая про доказуемую корректность, обывателю же это не надо)
    Ответ написан
    Комментировать
  • Есть ли смысл использовать rest api с http вместе с tcp или websockets?

    GavriKos
    @GavriKos
    Что быстрее - поднять готовый HTTP-сервер, или самому разруливать нагрузку, нестандартное железо/оси, дыры в безопасности и еще пачку проблем, которые уже решены? Если вы готовы конкурировать с предложеными решениями - окей, пожалуйста, делайте без них

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

    Нестандартные решения плохи тем, что вы кратно множите бас-фактор. Вот написали вы какую то свою реализацию http-сервера. И умерли (вас сбил автобус). Кому поддерживать? Стандартную реализацию поддержит любой спец. И есть еще гонка технологий, за которой вы не угонитесь.

    Нет, я не говорю что нельзя использовать свои решения, писать напрямую в ТСП и вот это все. Но только в том случае, если плюсы перевесят минусы. Плюсы вы перечислили - научитесь и видеть минусы ;-)
    Ответ написан
    4 комментария
  • Как работает asyncio.sleep?

    Vindicar
    @Vindicar
    RTFM!
    Идея простая.
    Асинхронные приложения - это набор пар "операция - обработчик", где операция - это некоторый длительный процесс (скажем, вводы/вывод), который не требует постоянного внимания со стороны кода. Когда операция завершается, выполняется её обработчик. Этот обработчик может планировать другие операции, и так далее.

    Корутины - это такие функции, которые умеют сохранять своё состояние, и восстанавливать его. Т.е. когда корутина делает await-вызов, она начинает длительную операцию, а обработчик этой операции просто восстанавливает контекст корутины и продолжает её выполнение.

    Соответственно, await-вызов сохраняет текущий контекст корутины, и планирует новую длительную операцию. Какую - зависит от того, что идёт после await. Эта операция представлена тем или иными awiatable значением (Future, Task и т.п.).

    Рабочий цикл (loop, его также называют реактор) просто проверяет текущие операции. Как только одна из них завершилась, он выполняет её обработчик. А потом продолжает проверять остальные активные операции.

    Ключевой момент - выполняет обработчик, а только потом проверяет остальные операции. Т.е. если обработчик планирует операцию через await - это не проблема, она будет выполняться наравне с остальными. А вот если обработчик просто делает что-то длительное, он не возвращает управление циклу, и не даёт выполняться остальным операциям.

    asyncio.sleep() планирует ничего не делающую операцию, которая завершится успехом через заданное время. Поэтому её выполнение не мешает циклу-реактору. Просто ещё один await вызов, который приостанавливает текущую корутину и возвращает управление реактору.

    time.sleep() ничего не знает о реакторе и асинхронных операциях. Она приостанавливает выполнение обработчика, не прерывая его и не отдавая контроль реактору. Поэтому на время time.sleep() (или любой длительной синхронной операции) спит вся программа.
    Ответ написан
    5 комментариев
  • Почему при входе в Docker возникает ошибка?

    @d-stream
    Готовые решения - не подаю, но...
    bios обновлён до самого актуального?
    Ответ написан
    3 комментария
  • Отказоустойчивое взаимодействие с медленным внешним сервисом?

    Fragster
    @Fragster
    помогло? отметь решением!
    Нужно класть задание в БД, получать в фоне, класть в БД ответ, затем на клиент прокидывать через пушер/аналог или если лень его настраивать - то с клиента раз в 5 секунд дергать "уже готово? а сейчас?"
    Ответ написан
    1 комментарий
  • Что за фильтр используется?

    pozZzitiv
    @pozZzitiv Куратор тега Дизайн
    Дизайнер и перфекционист
    Это не фильтр и даже не фотография. Это векторное изображение, где каждый объект автор окрасил в желаемый цвет.
    https://www.shutterstock.com/ru/image-vector/horiz...

    Ну и дополню:
    • сделать/перекрасить такое же векторное изображение можно в любом векторном редакторе — Adobe Illustrator, Corel DRAW, Inkscape и др.;
    • обрабатывать растровые изображения (фото) можно в Adobe Photoshop, Lightroom, Corel Painter и др.

    Если вообще не знаете ничего, то поищите уроки по созданию желаемого эффекта и пробуйте повторить в той программе, которую использует автор.
    Ответ написан
    Комментировать
  • Как запустить контейнер docker?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Поудаляй все базы графаны и прометеуса. Это вернет компоуз в некое нулевое состояние с которого ты начинал.
    Ответ написан
    5 комментариев
  • Функция json_decode не работает пока не вызвать её 2 раза подряд, почему так происходит?

    Newto
    @Newto
    Для решения любой проблемы нужно смотреть в суть этой проблемы. Напишите
    $response = json_decode($response, true);
    var_dump($response);
    $arResult = json_decode($response, true);
    var_dump($arResult);

    Смотрите на результат и делайте выводы.
    Ответ написан
    6 комментариев
  • Как корректно изменять библиотеки, устанавливаемые из PyPI?

    fenrir1121
    @fenrir1121
    Начни с документации
    - Открыть исходники (обычно кнопка Homepage)
    - Сделать форк
    - Внести изменения в форке
    - Сбилдить и использовать свой форк вместо оригинала
    Ответ написан
    1 комментарий
  • Можете раскодировать код?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Обычно мозговые игры с шифрованием-дешифрованием выглядят так.

    1) Вы пытаетесь представить открытый текст. Например он может начинаться со строки "Привет".
    Или мы можем заведомо знать о том что в открытом тексте есть русский или болгарский или польский
    язык и исходя из его свойств (гистограмма или биграмма) проверять гипотезы.

    2) Вы начинаете перебирать все известные методы доисторической криптографии
    - Шифр Цезаря (Виженнера)
    - Квадрат Полибия
    - Пасьянс Шнайера (колода карт)
    - Палочки-веревочки и прочее
    и последовательно применять их до тех пор пока не получим ответ.
    Разумеется все это надо делать автоматизированно иначе это похоже на брейн-фак. А кому нужно
    факать себе мозг да еще и безплатно?

    В блоге Романа Душкина есть много науч-попа на эту тематику. Практически по всем темам.

    3) Если к открытому тексту пременен современный метод криптографии типа AES/Blowfish
    то пишите - пропало. Нет надежды на нахождение открытого текста. Можете обещать любую
    денежную премию. Эти шифры слишком серъезны чтобы их пытаться угадать в хабре.

    Да и ключом в таких шифрах обычно идет не парольная фраза а вполне себе длинный вектор
    ключа и инициализации (256 бит например).
    Ответ написан
    4 комментария
  • Как отказать так, чтобы не порвать отношения с заказчиком?

    webinar
    @webinar Куратор тега Веб-разработка
    Учим yii: https://youtu.be/-WRMlGHLgRg
    А в чем проблема? Скажите, что это задание стоит столько, при этом назовите желаемую стоимость + 20%. А потом скиньте эти 20% и все будут довольны.
    У меня есть супер постоянный клиент, иногда он просит сделать что-то дешевле, чем оно должно быть, но при этом я говорю ему, что это стоит в три раза дороже. Я сделаю для тебя по той цене, что ты хочешь, только сейчас. В результате у нас давно уже открытые отношения, мы доверяем друг другу, но ни кто из нас не лезет на шею другому.
    Надо просто общаться и обозначать свою позицию, озвучивать мысли и отношения. Скрывая от него свое недовольство ценой, Вы на самом деле отталкиваете его в долгосрочной перспективе.
    Ответ написан
    1 комментарий
  • Как ускориться и быстрее писать веб-приложения?

    webinar
    @webinar Куратор тега Веб-разработка
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Сколько времени у вас уходит на развертыванием веб-проекта

    3 часа 14 минут. Не зависимо от ТЗ и сложности. Просто чудо какое-то что б не делал всегда 3,14 часов. Что бы не делал - 3,14 просто ПИ...тое число.

    Хочу ускориться, делать больше работы за единицу времени

    Найми сотрудников. Или прими за единицу времени большую единицу. Еще есть опыт, он со временем даст прирост скорости.

    Неужели создание сайта (верстка, бэкенд, фронтенд, проектирование бд итд) настолько нудный и муторный процесс?!

    Вам виднее, это дело вкуса. Если Вам нудно - значит нудный. Попробуйте копать траншеи, может веселее пойдет.

    Поделитесь секретными инструментами, приемами, фреймворками, позволяющими выполнять проект за считанные дни.

    boostrap, vue, jquery, gulp, нормальная IDE, опыт и т.д.
    если надо волшебства - беритесь за проекты, которые делаются за "считанные дни". Например, работайте только wp и готовыми шаблонами. Думаю за пару часов можно собрать сайт (3 часа 14 минут).
    Ответ написан
    Комментировать
  • Какие разделы английского стоит выучить для фриланса?

    sim3x
    @sim3x
    Количество слов для владения языком примерно такое
    OED-chart.png

    Список из 2к слов с частотой их употребления
    www.talkenglish.com/vocabulary/top-2000-vocabulary.aspx

    etc
    www.manythings.org/vocabulary/lists/l

    Гуглить core english vocabulary
    Ответ написан
    4 комментария