• Почему в Rust использую Tokio?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Rust currently provides only the bare essentials for writing async code. Importantly, executors, tasks, reactors, combinators, and low-level I/O futures and traits are not yet provided in the standard library. In the meantime, community-provided async ecosystems fill in these gaps.

    There is no asynchronous runtime in the standard library

    Из документации.
    Ответ написан
    Комментировать
  • Почему в Rust использую Tokio?

    @D3lphi
    Потому что она реализует то, чего нет в стандартной библиотеке - асинхронный рантайм. Если писать сетевое приложение без токио, то придется плодить по отдельному потоку на каждый сетевой коннекшен. (на самом деле, речь идет про любой i/o, к которому чтение/запись файлов тоже относится) Каждый из этих потоков большую часть времени будет заблокирован в ожидании завершения сететвого вызова (передачи или приема данных). Однако, операционная система при разблокировке этих тредов будет постоянно переключать контекст для каждого потока и тратить процессорное время.
    Асинхронный подход позволяет обойтись лишь сравнительно небольшим пулом потоков, на которые токио рантайм будет распределять таски (грин треды) и, таким образом, экономить процессорное время.
    Ответ написан
    9 комментариев
  • Где можно пройти тесты по программированию и информатике?

    Maksim_64
    @Maksim_64
    Data Analyst
    Самые сложные тесты доступные онлайн которые, лично я проходил, да и сейчас иногда прохожу когда время позволяет это hakerrank Плюсом будет на собеседованиях (иностранных) прям тест с платформы могут дать.
    Ответ написан
    Комментировать
  • Почему некоторые декораторы жёлтого цвета а "@" голубого цвета на библиотеке disnake?

    Vindicar
    @Vindicar
    RTFM!
    А библиотека и версия питона тут ни причём. Это используемая тобой среда разработки (IDE) так показывает. На работу кода цвет текста в IDE не влияет. =)

    А вот разницу между
    @decorator
    def func():
        ...

    и
    @decorator()
    def func():
        ...

    понимать надо.
    Ответ написан
    7 комментариев
  • Какой процессор поставить?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Если чипсет 8x, то только 4-е поколение (Haswell), если 9х, то 4-е и 5-е (Broadwell).
    И то и другое сейчас купить можно только б/у.
    Ответ написан
    2 комментария
  • Как выкинуть пользователя с сайта?

    yarkov
    @yarkov Куратор тега JavaScript
    Помог ответ? Отметь решением.
    Показать плашку с текстом:
    Отключите блокировщик рекламы чтобы продолжить пользоваться сайтом.
    Инфа сотка. Меня выкидывало с сайта безвозвратно.
    Ответ написан
    Комментировать
  • Как вытянуть одну из вершин фигуры вверх?

    Get-Web
    @Get-Web Куратор тега CSS
    Front-End Developer
    Как вариант маска. В идеале SVG, чтобы края были ровнее
    Ответ написан
    Комментировать
  • Стотит ли менять asp.net mvc на asp.net web api + nextjs?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    нормально себя чувствует.

    Работает и не трогай
    Ответ написан
    3 комментария
  • Почему не срабатывает псевдокласс :last-child?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Это потому, что jsfiddle подставляет свои тэги в конец кода и Аист перестаёт быть последним потомком своего родителя, им становится script.
    65f2ea39a090e289033040.png
    Ответ написан
    5 комментариев
  • Как и на чем сделать пошаговую инструкцию на сайте?

    victormayorov
    @victormayorov
    Frontend разработчик
    один из первых результатов из гугла - https://driverjs.com/
    Ответ написан
    Комментировать
  • Как скачать защищенный от скачивания PDF-файл с сайта?

    @rPman
    Скопировать через буфер можно только неформатированный текст и только текущие +-10 страниц (вручную можно но долго и нудно, потом сшивать).
    1. Реверсить их вьювер долго и дорого.
    2. Скринить странички - для личного использования подойдет (набор картинок, соединить в pdf и читать не проблема, но железные слабые читалки могут такие не прожевать), сделать не программисту можно с помощью любой автоматизации, например autoit. Логика следующая - открываешь нужный сайт в максимальном размере на полный экран (полный экран и настроить По ширине страницы), затем продумываешь свои действия (мышь/клавиатура) такими, чтобы если их повторять, копировалось все содержимое без пропусков и повторов, в данном случае это кнопка PageDown и копирование экрана (можно по количеству страниц посчитать сколько это будет действий)

    В коде autoit это будет for loop
    For $i = 1 To 100500
    ...
    Next


    шлешь нажатие кнопки
    Send('{PGDN}')

    ждешь секунду (там примерно каждые 10 страниц генерация и удаление старых) sleep

    делаешь скрин с экрана
    _ScreenCapture_Capture(StringFormat('%09i', $i) & '.png', 0, 0, @DesktopWidth, @DesktopHeight, False)

    нужно подобрать размеры чтобы лишнее не копировать
    StringFormat тут добавляет к номеру слева нули, чтобы при сшивании порядок не был 1 -> 11 -> 2 -> 3....

    по итогу работы получишь тысячу картинок, объединяешь их с помощью imagemagic
    magick *.png out.pdf

    3. способ - их pdf просмотрщик генерирует валидный html для текста (с картинками сложнее),
    css selector
    $('#pageContainer2 > .textLayer').innerHTML
    тут номер у pageContainer это номер страницы, но в один момент времени заполнены текстом только текущие видимые +- поэтому код нужно будет написать, чтобы корректно в нужный момент времени читать нужные

    Можно конечно заморочиться и запилить selenium приложение которое будет листать странички и собирать html-ку, можно в полуручном режиме прямо в браузере в консоли написать пару строчек, собирая текст в localStorage (он ограничен 5-мб кажется). html код там прямо такой (по кускам текста как они были в pdf)
    Кликать на следующую страничку - $('#next').click()

    <div style="left: 83.5342px; top: 384.732px; font-size: 20.5963px; font-family: serif; transform: scaleX(0.793798);" data-canvas-width="404.5723586629188">Стенограмма  Нюрнбергского  процесса.  Том </div>

    т.е. останется только стили добавить или скопировать их с сайта и готовая отформатированная html будет готова
    Ответ написан
    Комментировать
  • Как проверить объект на присутствие неизвестного ключа?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    function isPermittedObject(obj) {
      if (!obj) return false;
      
      const permitted = new Set(["v", "c", "g"]);
      let max = 1;
    
      for (const key in obj)
        if (!permitted.has(key) || !max--) 
          return false;
      return true;
    }
    
    console.log(!isPermittedObject({
      v: 1,
      c: 3,
      g: 5
    }))
    
    console.log(!isPermittedObject({
      v: 1
    }))
    Ответ написан
    Комментировать
  • Как ведут себя данные при удалении?

    mayton2019
    @mayton2019
    Bigdata Engineer
    В реляционных БД не существует гарантий относительно порядка записей внутри таблицы. Этот порядок
    - это особенности технической реализации хранения данных внутри блоков и сегментов. Это - "know how"
    и это будет зависеть от типа DBMS (Postgres, MySQL, Oracle) и от типа таблицы (heap, index-organized, clustered e.t.c)

    Если говорить грубо, то записи (data-rows) лежат не плотно а вразнобой с пробелами с выравниванием
    к блокам. Ну тоесть вообще-вообще не так как в Excel. Удаление data-rows в Postgres насколько я помню
    физически не удаляет запись а помечает ее мертвой используя служебные поля. Впоследствии VACUUM
    делает работы по уплотнению.

    Поэтому порядок ты сам обеспечиваешь, делая запрос с опцией ORDER BY some_date_time.
    Ответ написан
    1 комментарий
  • Почему Python не видит файлы в Linux как в Windows?

    Vindicar
    @Vindicar
    RTFM!
    Если файл лежит в папке со скриптом - надо открывать его, используя путь к пкапке со скриптом, а не надеяться на то, что текущий каталог совпадёт. Под виндой тоже всё зависит от способа запуска скрипта.
    Так что читай про sys.argv[0] и модуль pathlib. Пригодится.
    Ответ написан
    2 комментария
  • Как обрабатывать свои события?

    Vindicar
    @Vindicar
    RTFM!
    aioschedule. Ну или тупо вечный цикл с asyncio.sleep(2*60*60) внутри, запущенный в отдельной корутине через create_task().
    Ответ написан
    Комментировать
  • Как принимать платежи из Европы при текущих санкциях?

    @starxchanger
    Lava - у них вроде есть казахский офис и собственно через него идут платежи из-за рубежа. По крайней мере многие платежи идут через него

    Можно и Енота, да и схожие кассы могут сделать вам кабинет. Правда комисии там довольно большие, вплоть до 15%.
    Ответ написан
    5 комментариев
  • Как сохранить заказы при обновлении сайта wc orders?

    @Refguser
    Делаю ИМ и другие решения
    можно ли скопировать таблицу wc_orders из базы данных на компьютер, а потом именно ее как-то заменить?

    Нет. Так ты угробишь базу.
    о работе с базой
    Вообще никогда ненужно лазить в базу напрямую, включая прямые SQL-запросы. Для работы с базой есть специальные инструменты.


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

    Им это надо для отчетности или статистики, короче "надо".
    А при переносе будет состояние заказов как 2 недели назад.

    Скажу больше - если не перенести заказы их потеряют и покупатели.
    Ответ написан
    2 комментария
  • Почему у черной дыры есть электрический заряд?

    Vindicar
    @Vindicar
    RTFM!
    Причина раз: правило сохранения заряда. Электрический заряд нельзя создать и уничтожить, только перераспределить в пространстве.
    Причина два: с точки зрения внешнего наблюдателя тело будет падать в чёрную дыру за бесконечное время. Его влияние на окружающую вселенную - например, испущенный свет - будет бесконечно ослабевать, но никогда не станет нулевым. При этом с точки зрения падающего тела, падение займёт очень даже конечное (и не слишком большое) время. Относительность - она такая.
    Ответ написан
  • Как пробросить порты с wsl в windows 10?

    @kavabangaungava
    Всякое бывало.
    Вообще на локальную систему из wsl порты пробросить можно, делается это так, пример с 80 портом:

    netsh interface portproxy add v4tov4 listenaddress=192.168.13.17 \
    listenport=8080 connectaddress=172.23.53.217 connectport=80


    Важно, чтобы пробрасываемые порты на самой системе не были заняты.
    Ответ написан
    1 комментарий
  • Как правильно выбрать железо для домашнего сервера?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Mini ITX со встроенным 4-х ядерным процессором, слотом M2 и полноформатными или ноутбучными слотами памяти - смотря какая завалялась пара плашек памяти в наличии. Маленький, но качественный БП (например FSP) и любой корпус. Ну и любой ССД под систему - М2 или сата тоже пойдет. Диски под хранилище чего-либо - тут уже по желанию и возможностям.
    Например: https://www.onlinetrade.ru/catalogue/materinskie_p...

    UPD: только что вышел обзор мини-пк от 3Dnews: https://3dnews.ru/1100970/kompyuter-mesyatsa-pokup...
    Ответ написан
    4 комментария