• Как ускорить или запустить многопоточно pupeteer?

    @d-sem
    1) Поделить 60000 страниц на порции кратные числу инстансов. Каждому инстансу скармливать свою кучку. Получить ускорение кратное числу инстансов.
    2) Положить 60000 страниц в очередь (rabbitmq, redis, db). Скриптами брать url в работу из очереди. Запускать новые воркеры пока хватает ресурсов. https://www.rabbitmq.com/getstarted.html

    Также может быть полезно https://habr.com/ru/post/413547/
    Ответ написан
  • Как выбрать сервер для проекта на 1С-Битрикс?

    Битрикс требовательная к железу хрень.
    И нужно понимать конкретно что будет узким горлышком.
    1. однозначно частота на ядро, тут нужно понимать что большая часть это будут запросы в бд, а бд может паралелить на ядна запросы, но не сам запрос не раскидывается на ядра, и если он тяжелый тут поможет только частота.
    По этому 30X2GHz будет хуже чем 2 с 5GHz притом значительно. Именно по этому зеоны тут хреново идут там как правило маленькая частота и большое количество ядер, обычный i9900 стоящий в 5 раз дешевле даст скорости куда как больше.
    по этому максимальная тактовая, по факту лучше I9900k или райзен.
    если страна не принципиально то hetzner и там есть такие тарифы.
    2. ssd -100% поскольку его I-O позволяет быстрей поднимать тяжелые таблицы с бд. ( и да не все они лежат в памяти)
    конечно же желательно Nvme поскольку опять же тут уже играет и скорость, у битрикса при 100К товаров запросы могут быть больше 1Гб размером, его физически нужно поднять в память.
    Ну и да при 100 К товаров вам очень нужен I-O особенно при импорте и экспорте, да и сама скорость будет не лишней.
    Но железо толко тповое. А вот количество камней уже не так существенно.
    Больше 16 гб памяти вы наврядли скушаете, притом если дже поднимите большую часть бд в память.
    Все-же пыха 7 ест акуратно память.
    Рекомендую
    https://ru.hetzner.com/hosting/produkte_rootserver...
    малый бизнесс на нем окол 100-170 попугайчиков в тесте. ( опять же как собрали)
    яндекс облако - тоже как вариант.
    Дай сайт я скажу реально какая нужна конфа.
    Плюс покажи скриншот на странице каталога с фильтром, сколько запросов некешированно ( отладка) при втормо хите.
    Все-же 100К товаров тут уже начинает реально играть качество сборки сайта, а оно как правило не учитывает особенности движка при таком количестве.
    Ответ написан
  • Как «будить» iOS приложение после нескольких часов неактивности телефона?

    DevMan
    @DevMan Куратор тега iOS
    https://developer.apple.com/documentation/uikit/ap...
    https://medium.com/snowdog-labs/managing-backgroun...

    емнип, это всё что есть. работает своеобразно, но лучше, чем ничего.

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

    begemot_sun
    @begemot_sun Автор вопроса
    Программист в душе.
    Здесь буду собирать ссылки на вероятностные алгоритмы:
    1. Фильтр блума https://ru.wikipedia.org/wiki/%D0%A4%D0%B8%D0%BB%D...
    2. MinHash habrahabr.ru/post/115147
    3. LogLog habrahabr.ru/post/119852
    4. habrahabr.ru/post/250673 --- Поиск похожих документов с MinHash + LHS
    5. https://en.wikipedia.org/wiki/Count%E2%80%93min_sketch -- приближенный сбор частот событий в потоке.
    Ответ написан
  • Как грамотно изолировать сервисы на linux-сервере?

    leahch
    @leahch Куратор тега Linux
    Я мастер на все руки, я козлик Элек Мэк :-)
    Технологий конечно же есть.
    1) Это виртуализация - KVM/Xen
    На мой взгляд предпочтительнее KVM, лучше поддержка, не нужно специальное хост-ядро.
    Немного, процента на 2-3 проигрывает перед XEN, но в удобстве выигрывает однозначно. XEN - только линукс, и только со специальными патчами в ядре на хосте и клиенте.
    Фактически получаете полноценную виртуальную машину, ставите туже все, что душе угодно, хоть линукс, хоть BSD, хоть винду.
    Проблема одна - требует жесткого выделения ресурсов. Поэтому только десяток-другой виртуалок (да и то заивисит от нагрузок).
    По сравнению с железом, сожрет от 3 до 7-10 процентов производительности.
    Тем не менее: мой выбор KVM.
    2) Контейнеризация - Docker/LCX/Virtuozzo.
    Сразу скажу за virtuozzo - ничего про нее говорить не буду. В принципе - очень похожа на XEN.
    Остальные две основаны на CGroups, более того, docker внутри использует LXC.
    Docker - очень распространен и популярен, фактически лидер рынка. Заточен на запуск одной задачи в одном контейнере. Контейнеры можно объединять в группы.
    LXC/LXD - менее распростанен, но очень удобная технология, если нужно контейнеризировать окружение операционки с кучей процессов.

    Мы пользуем и Docker и LXC/LCD. И даже в LXC пускаем Docker.
    Все зависит от задачи.
    Нужен сервис с кучей процессов и окружением - LXC
    Нужен один процесс - docker.
    Нужно полноценное окружение с ядром, куртизанками и гусарами - KVM.

    По факту - около 10 виртуалок KVM, порядка 10 контейнеров LXC, и порядка 20 контейнеров Docker.
    Ответ написан
  • Сколько мониторов поддерживает MacBook?

    Big_PixeL
    @Big_PixeL
    Из официальных документов Apple следует, что к модели можно запросто подключить четыре монитора разрешением 4К или два разрешением 6К.
    А вообще вот сайт где расписано какие можно подключить и сколько: [жми сюда].

    В целом, пользователю 16-дюймового MacBook Pro доступны следующие варианты:
    • 4 монитора разрешением 4К (4096 x 2304 пикселя);
    • 2 монитора разрешением 5К (5120 х 2880 пикселей);
    • 2 монитора разрешением 6К (6016 х 3384 пикселя);
    • 1 монитор разрешением 5К (5120 х 2880 пикселей) и три монитора разрешением 4К (4096 x 2304 пикселя).
    Ответ написан
  • Почему разрешается добавить значение в кортеж?

    bingo347
    @bingo347
    Ткнуть в доку лучше готового к копипасте ответа
    Потому что кортеж в ts это подтип массива, а система типов ts настолько убога, что через нее нельзя выразить, что у подтипа недоступны какие-то методы основного типа.
    qwe[2] = 77
    Тут просто сразу 2 ошибки типов:
    во-первых 77 нельзя присвоить типу undefined - так как [string, number] - это вполне себе сахар над типом
    {readonly length: 2; 0: string; 1: number} & Readonly<typeof Array.prototype>

    во-вторых 2 в индексе опять таки нельзя воткнуть в тип 'length' | 0 | 1 | keyof typeof Array.prototype
    Ответ написан
  • Как прафильно сформировать инфраструктуру для проекта с онлайн просмотров фильмов?

    pro100chel
    @pro100chel
    Python && PHP Developer
    бери дешевые гигабитки-серваки и не парься. если одного не хватит, то покупай несколько и распределяй нагрузку.
    Дешевый гигабит можно взять в хетзнере https://ru.hetzner.com/hosting/produkte_rootserver...
    50 евро за гигабит это норм тема.

    Вот тут https://orders.fdcservers.net/order/plan/820 можно купить vps с 10 гбит каналом за 200 долларов.

    Также есть варик просто с cdn работать.
    https://www.fdcservers.net/cdn тут терабайт стоит 5 долларов то есть примерно 350-400 рублей
    Есть еще другой cdn, российский https://mnogobyte.ru/cdn.html берет 250 руб за терабайт.
    Ответ написан
  • MustHave плагины для wordpress?

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

    Akismet - СПАМ-фильтр
    CleanTalk - СПАМ-фильтр
    Contact Form 7 (интеграция Recaptcha) - Форма обратной связи
    Cyr to Lat - Транслитерация URL (ЧПУ)
    Classic Editor - классический редактор
    TinyMCE Advanced - Расширенный текстовой редактор
    Use-your-Drive - (платный) Файловый архив для WP Google Drive
    WPML (wordpress multilanguage) - мультиязычный сайт
    AdRotate - ротатор баннеров
    Yoast SEO - SEO, карта сайта и т.д.
    NextScripts: Social Networks Auto-Poster - кросспостинг
    WP-PostViews - кол-во просмотров записей
    WP ReCaptcha Integration - рекапча (уже устарел). Имеются аналоги
    Broken Link Checker - проверка битых ссылок
    Better Search Replace плагин поиска и замены
    TESTME - Плагин для создания тестов (уже устарел). Имеются аналоги
    uLogin - виджет авторизации через социальные сети (вроде отсутствует в репо, надо с оф. сайта устанавливать)
    WP No Category (WPML) Base убирает /category
    WP Sitemap Page - HTML карта сайта
    WP-Ban бан пользователей по IP и т.д.
    WP-Polls опросы
    WP-PageNavi постраничная навигация
    Slider Revolution - слайдер
    User Submitted Posts - фронтэнд форма для публикации записей
    Woocommerce интернет-магазин
    WP All Import плагин для импорта материалов
    WP All Export - плагин для экспорта материалов
    Oi Yandex.Maps for WordPress карта Яндекс
    WP Grabber платный плагин-парсер (вроде уже и не разрабатывают)
    TablePress создаем и импортируем таблицы csv и т.д.
    Visual Composer (визуальный редактор). Тут каждый выбирает свое. Elementor, WpBakery Visual Composer и другие.
    Redirect Editor редактор редиректов
    UpdraftPlus Backup плагин для создания резервных копий
    MailPoet Newsletters создаем рассылки
    Wordfence Security защита для сайта
    WooCommerce Measurement Price Calculator
    Menu Icons - иконки в меню
    Delete Duplicate Posts - удаление дубликатов записей
    WP mail SMTP - настройка smtp сервера
    Abandoned Cart Lite for WooCommerce (напоминание пользователю о наличии товара в корзине)
    HTML Import 2 - уже устарел. Использовался для импорта html файлов в виде записей или страниц
    Bulk Delete - массовое удаление
    Advanced Custom Fields PRO платный плагин. Есть бесплатная версия (кастомные поля)
    Sream - логирование ВП
    Login LockDown - ограничение кол-ва попыток входа
    Redirections - редиректы
    Custom Permalinks - кастомные урлы
    Autoptimize - оптимизация сайта
    Above The Fold Optimization (уже устарел). плагин для оптимизации сайта
    WP Mass Delete - плагин для удаления статей и страниц по ключевому слову и т.д.
    Quick Featured Images - массовое назначение миниатюр для
    Search Regex - поиск по БД при помощи regex (вроде бы уже устарел)
    Bulk Move - массовое перемещение записей и т.д.
    P3 plugin performance profiler - профайлер плагинов
    Title and Nofollow For Links - nofollow для ссылок. Можно обойтись простым кодом
    YITH WooCommerce Badge Management - значки для Woocommerce
    Original texts Yandex WebMaster - добавление статей в "Оригинальные тексты" Яндекса
    Disable Comments - отключит комментарии
    Update Image Tag Alt Attribute - массовое обновление alt для изображений
    Image Watermark - добавление водяного знака
    BulkPress - массовое создание записей, рубрик и других терминов для таксономий
    popup maker - модальное окно
    DB Tables Import/Export - импорт / экспорт БД
    Media Cleaner - чистка библиотеки
    WP Fastest Cache - оптимизация сайта
    Media from FTP - создание медиафайлов в библиотеке загруженных по фтп
    Simple Follow Me Social Buttons Widget - виджет "мы в соц. сетях"
    Upload Media by Zip - загрузка zip медиа и распаковка
    Auto Upload Images закачивает внешние изображения и заменяет URl
    WordPress Infinite Scroll — Ajax Load More Scroll аякс загрузка записей
    EWWW Image Optimizer - оптимизация изображений
    FG Joomla to Wordpress - перенос Joomla на WP
    Enlighter - подсветка кода
    Ответ написан
  • Как организовать удаленную работу сотрудников?

    gbg
    @gbg Куратор тега Windows
    Баянист. Тамада. Услуги.
    Мое решение (работеает уже давно). Работает на всем, что шевелится - Андроиды, Windows, Макинтоши.
    SSH тоннель с ключами, защищенными пасскодами.

    -ставим сервер с выходом в инет на белом IP
    -отрубаем вход под рутом
    -отрубаем шелл
    -вешаем ssh на рандомный порт
    -всем юзерам делаем персональные учетки, генерим ключи

    На машине клиента (домашней):
    нужен батник из одной строчки, программа plink.exe и закрытая часть ключа.
    plink -P ПОРТ -l ЛОГИН -i КЛЮЧ_ЗАКРЫТЫЙ.PPH  -N -L 23389:МАШИНА_КЛИЕНТА_В_ОФИСЕ:3389 АДРЕС_ШЛЮЗА_В_ИНЕТЕ
    pause


    Клиент у себя врубает батник, вводит пасскод от ключа и подключается на адрес типа 127.0.0.1:23389, а SSH его уже туннелит куда надо.

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

    sim3x
    @sim3x
    Нужны пакеты
    sudo apt-get install jpegoptim imagemagick optipng
    mogrify

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

    Оптимизируем jpeg
    find . -type f \( -name "*.jpeg" -or -name "*.jpg" \) -exec mogrify -resize x100 -quality 90 {} \; -exec jpegoptim -o --strip-all {} \;


    Оптимизируем png
    find . -type f -name "*.png" -exec mogrify -resize x100 {} \; -exec optipng -o1 {} \;


    mogrify -resize ШИРИНАxВЫСОТА -quality КАЧЕСТВО
    если высоты(ширины) нет, то изменяем пропорционально

    optipng -o9 file.png
    максимальное количество проходов по изображению, очень эффективно для запущенных случаев, очень-очень долго
    пару минут на файл 1500х1500

    optipng -o5 file.png
    просто долго

    # код предоставляется как есть

    # почему оптипнг - он офигительный

    # для других типов картинок меняем find и ищем каким софтом их оптимизируют
    Также можно сконвертить картинки в пнг-жпг, но часто это как-то нужно синхронизировать с бд, и тут нет простого пути
    Ответ написан
  • IOS миграция данных при обновление версии приложения?

    briahas
    @briahas
    ObjC, Swift, Python
    1) userdefaults стираются при обновление или нет ? - НЕТ
    2) .plist стирается при обновление или нет? - ОБНОВЛЕТСЯ
    3) Исходя из второго вопроса,.... - ----
    4) Как вообще можно сохраниться какие нибудь данные так что бы они не исчезали при обновление ? - ДАННЫЕ бывают разные - флаг выполнения события, небольшой набор данных(имя, телефон, итп), файлы. Для каждого - своя стратегия. Есть такое хранилище которое не очищается даже после удаления приложения.
    5) если я прав в 4 вопросе , то как в Xcode поставить так что бы сразу сохранялся в нужную директорию - САМО НИЧЕГО НЕ ДЕЛАЕТСЯ, надо ручками компоновать тот путь который вам нужен.
    6) keychain при обновление как ведет себя ? - ОСТАЕТСЯ
    Ответ написан
  • Как перейти с PhpStorm на Sublime Text?

    ikeagold
    @ikeagold
    Ikeagold Web-Dev
    Для фронтенда я бы посоветовал Brackets(из-за фич с psd/livepreview/quickedit) или Atom + сборщик типа gulp с настроенным фтп.
    Мой список плагинов для ST3 3065 версии (почти 90% из них повторяются так же для Atom и Brackets потому удобство есть везде).
    Во всех них есть одинаковые плагины для фронтенда, и все по своему особенные, для фронтенда выбрал бы брекетс т.к. эти три возможности что описаны в скобочках выше слишком оп :D пробовал все эти редакторы и больше всего нравится Atom, но в нем не нашел рабочего sftp плагина и пришлось юзать gulp для этого (ftp/ftps работают ок).
    Если заинтересует скину плагины под Brackets.
    п.с. все эти редакторы вполне годны для php т.к. после установки fabpot-php-cs-fixer, phpmd, php_codesniffer и их настройки, все эти три редактора превращаются в полноценную ide.
    Есть лишь одна функция которая кардинально рулит у phpStorm это ctrl+клик по функции который ищет ее вызов или определение или применение по всему проекту (подобную фичу нашел в атоме и в st3 но в проекте не проверял, по файлу ищет 100%!).
    По скорости запуска phpStorm -> brackets -> atom -> st3 самый быстрый.
    Про проекты, есть во всех и делается не тяжело.
    Ответ написан
  • Где хранить файлы для работы?

    Fox_exe
    @Fox_exe
    Мой вариант: Домашний NAS + SyncThing (Либо BitTorentSync).
    Ну или любые другие аналоги дропбокса вплоть до банального rSync.
    OwnCloud тоже вещь хорошая и удобная.
    Ответ написан
  • В какие страны можно эмигрировать путем открытия там компании или студии?

    mahnunchik
    @mahnunchik
    https://about.me/vlasenko
    Сервисы не мои, но меня поразило обилие информации:
    • passports.io - сравнение возможностей проживания и получения гражданства в разных странах
    • incorporations.io - сравнение стран для создания компании, налоги, отчётность, легальность итд
    • bankaccounts.io - сравнение банков для открытия "международных" счетов
    • flagtheory.com - разложенные по полочкам планы как уйти в офшор
    Ответ написан