Задать вопрос
  • Как ускорить поиск на совпадение подстроки?

    Fragster
    @Fragster
    помогло? отметь решением!
    Как минимум закэшировать
    var variants = this.parentNode.nextElementSibling;
    var allVariants = variants.querySelectorAll('div.label-point');
    Затем убрать .toLowerCase() (возможно где-то закэшировать соответствие приведенного названия и элемента DOM дерева)

    Согласно https://proglib.io/p/javascript-performance-mistakes простой for быстрее forEach почти в 8 раз. Еще из серии экономии на спичках замена > на !==

    Можно воспользоваться библиотеками для дебоунса (например https://lodash.com/docs/4.17.11#debounce ), чтобы не вызывать обработку на каждое нажатие, а, например, не чаще, чем раз в секунду.

    Ну и почитать про профайлер в инструментах разработки, чтобы узнать, какие строки больше всего времени едят. С этого надо начинать.

    Еще подумалось, что можно сравнивать предыдущее и новое значение инпута, и если новое более строгое (Абыр -> Абырв), то искать не по всем, а только по найденным на предыдущем этапе. + нужно проверить, будет ли эффект, если не менять видимость, если она не должна меняться. Возможно такое, что пересчет стилей все равно происходит, даже если мы присваиваем стилям то же значение, что и в них хранится.

    А вообще отображение без пагинации тысяч элементов как-то странно. Так что прямая дорога дальше в реактивные фреймворки, потому что там это все намного прямее, чем прямая работа с DOM. Мне больше нравится vue.
    Ответ написан
    Комментировать
  • Что нужно делать при переводе сайта на HTTPS?

    NeiroNx
    @NeiroNx
    Программист
    Для перевода сайта на https все сводится к копированию двух файлов key.pem и certificate.cer и прописанию их в настройки. Для Apache:
    <VirtualHost *:443>
        ServerName mysite.com
    
        SSLEngine on
        SSLCertificateFile /home/mysite/certificate.cer
        SSLCertificateKeyFile /home/mysite/key.pem
    </VirtualHost>

    Сертификат может быть купленным - организация выдавшая тем самым подтверждает что сайт принадлежит такой-то организациии. Также сертификат может быть "самодельным"(selfsigned) - когда вы сами подтвержаете что сайт ваш, естественно это может сделать кто угодно и браузеры будут ругаться на недостоверность сертификата.
    Ответ написан
    2 комментария
  • Что даст дополнительное обучение по информационной безопасности системному администратору?

    @cssman
    Хотите учиться - учитесь, не хотите - не учитесь. Как бы издевательски не звучало - это лучший совет, который можно получить в ответе на Ваш вопрос.
    Ответ написан
    Комментировать
  • Идеи/советы для сисадмина в школе?

    @Jonatan_ice
    Metal
    Как-то я работал в школе). Вот что я делал:
    1. обязательно файловый сервер, можно на обычном ПК (обязательно с резервным копированием на другой ПК,сервер, винт...).
    2. Чат, как вариант vypress chat.
    3. Для кабинета информатики Netopschool, управления учениками и т.д.
    4. На всех компах учеников настроить "возврат к первоначальному состоянию", до этого у меня руки не дошли.
    Ответ написан
    Комментировать
  • Идеи/советы для сисадмина в школе?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    1. Поставьте сервер и сделайте на нем файлопомойку и домен авторизации и сетевых домашних каталогов (для компьютерного класса)
    2. Поставьте на него DHCP и раздавайте всем IP-адреса
    3. Поставьте FreeRadius и защитите WiFi, сделайте две WiFi сети, одну гостевую, вторую - рабочую.
    4. Если коммутаторы управляемые, можно снимать с них трафик (по snmp) и рисовать графики (Grafana/InfluxDB/Telegraf)
    5. На сервере развернуть виртуалочки для компьютерного класса

    Если это все делать под виндой, то вроде бы как в комплекте, но можно и на линуксе все воздвигнуть!
    Ответ написан
    4 комментария
  • Какая правильная архитектура с message bus для клиент-серверной IoT-системы?

    @yarkin
    Я не работал с IoT-устройствами, но мне кажется, что отдельная локальная шина звучит логично, так как позволит иметь наименьшие задержки и работать офлайн, а также, возможно, сэкономить батарею. Но зависит от задачи и ресурсов, может оказаться поначалу выгодней работать через серверв. RabbitMQ использовать на IoT-устройстве так себе идея, имхо, для простой отправки в маленьком масштабе он будет невыгоден по ресурсопотреблению.
    Ответ написан
    Комментировать
  • При использовании proxy_pass скорость работы приложения замедляется в разы?

    @ynblpb_spb
    дятел php
    Проверьте для начала канал и скорость загрузки от сервера в хецнере до сервера http://******.stream/stream.php;

    Есть подозрения, что дело не в proxy_pass, а именно в канале
    Ответ написан
    2 комментария
  • Запуск программы в Linux x64?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Есть ли подобные статьи для 64-бит архитектуры?

    Зачем? В этой статье почти нет процессорной специфики -- там описаны потроха С-рантайма, библиотеки С и динамического линковщика. Любая программа на С для любой архитектуры при запуске проходит через те же стадии.
    Ответ написан
    4 комментария
  • Как узнать производительность с/без Memcached на shared хостинге?

    kotomyava
    @kotomyava
    Системный администратор
    А у вас действительно есть memcached на обычном хостинге?

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


    В простейшем случае, можно потестировать ab (apachebench).
    Ответ написан
    Комментировать
  • Несёт ли программист отвественность за противозаконное применение своего кода?

    fox_12
    @fox_12
    Расставляю биты, управляю заряженными частицами
    Смотря какие данные карт. Если номер карты целиком и CVV2/CVC2 код с датой действия карты и владельцем, а у заказчика нет банковской лицензии- а её быстрее всего нет, так как вряд ли бы они оставили ваш email, поскольку там жесткие требования к ПО, - то это повод немедленно писать заявление в полицию. Иначе если у владельца карты обнаружится пропажа, то выйдут и на вас. А там попробуй докажи - может вы там специально свой емейл оставили...
    Если данные карт неполные - заблинденный номер карты и отсутствует CVV2/CVC2 код - то просто отпишите заказчику чтобы удалил ваш емейл из кода от греха подальше...
    Ответ написан
    Комментировать
  • Какие проблемы прямой вставки кода виджета в код стороннего сайта?

    @izheme Автор вопроса
    Познаю мир
    Еще раз благодарю всех принявшим участие в дискуссии. Наконец-то смог найти немного времени и написать небольшой обобщающий материал, может кому-то пригодится.

    Итак, ситуация. Вам необходимо сделать возможность вставки своих виджетов в код сторонних сайтов. Для реализации этого сторонний сайт вставляет в свой код ваш JS-код. Далее ваш JS код вставляет виджет. Виджет можно вставить либо прямо в код страницы (далее прямая вставка в DOM) либо создать Iframe. Рассмотрим потенциальные проблемы обоих подходов.

    JS конфликты
    Прямая вставка в DOM
    Здесь не должно быть конфликтов, когда используется “пространство имен”. Но при использовании сторонних библиотек, некоторые из них могут обращаться напрямую к window и это невозможно контролировать. Я столкнулся с проблемой когда vuetify обращается к window.$vue из своего кода и просто падает.

    Iframe
    Полная инкапсуляция, конфликты исключены

    CSS конфликты
    Прямая вставка в DOM
    Потенциально очень серьёзные конфликты. Код внешнего сайта влияет на виджет, код виджета влияет на внешний сайт. Ваш виджет ломает внешний сайт, внешний сайт ломает ваш виджет.

    Iframe
    Полная инкапсуляция, конфликты исключены

    Cookies (описанное ниже так же относится и к localStorage)
    Если необходимо отправлять ваши кукисы из виджета

    Прямая вставка в DOM
    Мы не можем отправлять кукисы третьей-стороны из JS. Если использовать для отправки кукиса заголовки с сервера во время загрузки статики или скрытый iframe, то браузер будет опознавать их как кукисы третьей стороны. По современным оценкам кукисы третьей стороны отключены у 25-50% пользователей. И тренд такой, что это число будет только расти.

    Iframe
    Мы можем устанавливать свои кукисы, как кукисы первой стороны. Возможно, для некоторых браузеров, потребуется выполнить POST запрос для одобрения установки кукисов.

    Безопасность
    Прямая вставка в DOM
    Если ваш виджет должен общаться с вашим сервером, то прямая вставка - это полный провал в безопасности. Для возможности выполнения запросов вам необходимо будет включить CORS (отключить same-origin policy). Это приведет к тому, что уязвимость, позволяющая исполнять код на внешнем сайте, позволит злоумышленнику отправлять запросы на ваш сервер от чужого имени, при стечении обстоятельств.

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

    Iframe
    Продолжаем использовать same-origin policy. Данные виджета изолированы.

    Заключение: единственный адекватный вариант - вставка через iframe.

    P.S. Тимлида я обыграл. Но меня поражает: как люди с такими познаниями становятся тимлидами с зп >700к (это не Россия, но все равно дофига)?!
    Ответ написан
    Комментировать
  • Потянет ли Intel HD 620 виртуалки линукса с GUI?

    Если вы не планируете на этих виртуалках обрабатывать видео или играть, то проблем быть не должно.
    Ответ написан
    Комментировать
  • Потянет ли Intel HD 620 виртуалки линукса с GUI?

    erniesto77
    @erniesto77
    oop, python, php, js
    да
    Ответ написан
    Комментировать
  • Какую нейросеть выбрать для определения машин на парковке?

    ZinBu
    @ZinBu
    Продам гараж (в лс)
    Похожая задача очень подробно рассматривается.
    https://tproger.ru/translations/parking-searching/
    Ответ написан
    Комментировать
  • Как освободить RAM на web-сервере uwsgi?

    @Lepilov Автор вопроса
    Возможно будет интересно кому то, чем закончилась борьба с памятью.
    Так как утечка наблюдалась при работе на локальной машине под родным фласковским сервером, настройки uwsgi отброшены. При вызове напрямую из консоли питоновского файла detect.py все работало четко, значит функция обработки не причем. Поэтому решил послушаться советов и запустить detect.py отдельным потоком используя Redis Queue (RQ).
    Заменил в def index()
    count = detect(images=img)
    return redirect(url_for("result", count=count))

    на
    job = q.enqueue(detect, img)
                while job.result is None:
                    pass
                else:
                    count = job.result
                    return redirect(url_for("result", count=count))


    И завертелось, никакой утечки. Для меня остается загадкой куда девалась память, но результатом я вполне удовлетворен. Плюс немного новых знаний по Redis, RQ, Supervisor поднял для себя)
    Ответ написан
    2 комментария
  • Возможно ли разрабатывать в .NET Core без Docker?

    DanielDemidko
    @DanielDemidko
    Программист
    Глупости! Докер не нужен для сборки проекта, всё прекрасно работает без него.
    Ставите студию, создаете проект, нажимаете кнопочку собрать, на выходе получается готовая сборка которую можно запустить из консоли безо всяких докеров, всё просто)
    Запускать так: dotnet YourBuild.dll
    Ответ написан
    Комментировать
  • Возможно ли разрабатывать в .NET Core без Docker?

    NYMEZIDE
    @NYMEZIDE
    резюме - ivanfilatov.ru
    Не обязательно.
    Есть сборка проекта - выходными файлами которого является скомпилированная библиотека, ресурсы и т.д.,
    А есть сборка контейнера, которая создает docker образ и туда помещает результат от сборки проекта.
    Это в простом варианте, на пальцах так сказать.

    Но я бы рекомендовал поставить win10 и научиться с ним работать. Он не такой сложный как кажется, но он дает много преимуществ когда разрабывается микросервисная архитектура.
    Ответ написан
    4 комментария
  • Какое есть ПО для поручений сотрудникам и отслеживанию задач?

    CityCat4
    @CityCat4
    Дома с переломом ноги
    Если народу не больше 10 челов - Jira. Реально крутая система, есть все что надо и сверх того. Но - лицензия на 10 челов стоит копейки, а вот на 50 (следующий шаг) - уже как элерон от крыла самолета, а на 100 - уже как само крыло :) Лицензия покупается на год.
    Если денег нет или народу больше - redmine, mantis, bugzilla, тысячи их...
    Ответ написан
    Комментировать
  • Как снизить нагрузку на БД или какую БД использовать?

    landergate
    @landergate
    IT-шный jack-of-all-trades
    Миллионы записей - это совершенно обычный и, я бы сказал, крайне небольшой кейс для MySQL.

    Самое быстрое: отпрофилировать запросы (например, performance_schema=1 и подключить sys-таблицы, они наполнятся данными по прошествии времени), найти неоптимизированные индексами и добавить недостающие индексы на этих таблицах.
    Ответ написан
    8 комментариев