• Ssh-chat
    –2
    OpenSSL

    И что дальше? Зачем вообще тащить криптографию в чат сервер написанный на коленке?
    Найдите хоть одну библиотеку с биндингами в предложенном решении.

    Лучше бы она была, жирная реализация ssh на pure js — ещё больший скоуп для уязвимостей :).
    И много RCE вы в ноде знаете?

    Правильный вопрос будет — о скольких RCE в ноде я не знаю.
    А они-то каким боком могут RCE устроить?

    Ну вот тем, что могут :). Их можно использовать для формирования произвольного текста на ввод в терминале. Не везде это отключено/исправлено.
    И что дальше?

    RCE на серверах куда у этих людей есть доступ.
  • Ssh-chat
    –1
    Криптография, левые библиотеки nodejs с кривыми биндингами, сам nodejs, управляющие последовательности в терминале, люди которые ходят с ssh-agent по-дефолту.
  • Ssh-chat
    –1

    Ой да ладно, пароль в текстовом файле, я как представлю сколько там RCE в любую сторону...

  • Python + OpenCV + Keras: делаем распознавалку текста за полчаса
    0
    Привет! Ты на мой коммент специально ответил или полем промахнулся?.. Я тут в одном проекте Class Activation Maps для semi-supervised object detection пытаюсь абъюзить, так что про FindContours это точно не ко мне :-).
  • Python + OpenCV + Keras: делаем распознавалку текста за полчаса
    0
    Чтобы не путать символы с идентичным написанием надо или словари использовать, или обучать/применять сеть не на буквах, а на словах, то есть ещё добавить ещё RNN или CNN поверх фичемап до выходов классификации отдельных символов (выходы отдельных символов тоже можно на обучении использовать).
  • Python + OpenCV + Keras: делаем распознавалку текста за полчаса
    +2

    Зачем тебе база? Можно ведь просто нагенерить картинок с буковками с разными шрифтами и натравить на них аугментацию. Имеет смысл что-то такое искать сразу в виде скрипта, который такую базу нагенерирует.

  • Когда 'a' не равно 'а'. По следам одного взлома
    0
    Honeypot'ов то для хабровчан не забыли набросать?
  • Раздаем файлы с Google Drive посредством nginx
    0

    Статья — ок, но открой для себя rclone serve :-).

  • Признаки настоящих программистов-сеньоров и методы их выслеживания в дикой природе
    +2

    Senior'ов определяю как тех с кем можно нормально обменяться идеями проектов за кружкой пива. С мидлами — можно пообщаться за архитектуру и всякие solid'ы, тьфу на вас. С талантливыми джунами — за хайповые тулзы.

  • Настройка параметров ядра Linux для оптимизации PostgreSQL
    +3

    Тот случай когда комментарий на порядок полезней статьи.

  • Периодическая смена паролей — устаревшая практика, пришло время от неё отказаться
    0

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

  • Telegram. Безлимитный сетевой диск. Бесплатный
    +2
    1. Товарищи работодатели, спасите телеграм^W^W переманите его к себе кто-нибудь, а то в текущем месте автор не знает чем заняться.
    2. Девушки — обратите внимание, свободный перспективный мальчик.
  • Как я Keras на C++ запускал
    0
    Единственное, что всё-таки стоит отметить что TF можно собрать как с оптимизациями, так и без. И не известно с какой сборкой вы сравнивали свой код на Си.
  • Как я Keras на C++ запускал
    0
    Ок, всё верно, меня смутило про «родную библиотеку», прочитал как «стандартную» :).
  • Как я Keras на C++ запускал
    0
    > получил производительность где-то в 6 раз ниже, чем у аналогичного инференса на питоне

    Я про то что код на питоне внутри тоже может использовать низкоуровневые библиотеки с оптимизациями вплоть до SIMD :).
  • Как я Keras на C++ запускал
    0

    Есть Intel DAAL, который наверняка используется в вашем питоне, если это anaconda. Так что вряд-ли получится что-то ускорить если написать SIMDов самому.

  • Переход с Redshift на ClickHouse
    0
    Видимо мало было читателей знакомых с CH, потому что не ответили что ClickHouse умеет читать данные из Kafka напрямую. Сам. Правда вопрос в формате записей, что вы там шлете, поддерживает ли его Clickhouse (хотя переложить данные из kafka в kafka сменив формат это всё же лучше чем из Kafka в Influx, но возможно я не понимаю что такое «прямо транзакционка»).

    Ещё — InfluxDB (бесплатный) не масштабируется и не реплицируется (только если руками шардировать и слать данные в отдельные реплики, наличие kafka тут всё упрощает, но тем не менее), а ClickHouse умеет в Cross-DC репликацию и распределенные запросы из коробки.

    По скорости и плотности хранения информации ClickHouse тоже выигрывает.
  • Первый видеокодек на машинном обучении кардинально превзошёл все существующие кодеки, в том числе H.265 и VP9
    0
    Там все вычисления уже на GPU, всё изначально векторизировано. Но как вариант для декодирования такого видео вполне можно приспособить habr.com/company/intel/blog/430492 :).
  • Особенности использования Druid на примере Одноклассников
    0
    Попробуйте эластик, туда как раз SQL завезли.
  • Прощай, Google Maps
    0
    Переключил с локальных векторных карт на тайлы, посмотрел как оно. Действительно иногда подтормаживает (зумил туда-сюда районы Стокгольма, где сейчас нахожусь). Количество объектов на средних зумах стоит уменьшить — серая пиксельная каша из дорог не нужна, мелкие здания которые сливаются в пиксели — тоже. Девайс — Xiaomi Mi5, если это имеет значение.

    Вот скрины для сравнения — yadi.sk/a/aB4VvOHz3ZX2rL. Обратите внимание на количество объектов на карте гугла.
  • Прощай, Google Maps
    0
    Знатно потроллил. Это осознанно было? Нахваливать разработчику OsmAnd какую работу проделали в Maps.me :-).
  • Прощай, Google Maps
    0
    По железу, вот сетап что требуют для оф.серверов OSM — wiki.openstreetmap.org/wiki/Servers/Tile_CDN. На БД у них идет меньше диска, на кеш тайлов — больше.

    Там же есть ссылки на munin с графиками, на 4-х render нодах в сумме средняя нагрузка 2-3k RPS (в зависимости от дня недели) — munin.openstreetmap.org/openstreetmap/render.openstreetmap/apache_accesses.html.

    Тут можно посмотреть как система на одном из серверов это переживает — munin.openstreetmap.org/openstreetmap/orm.openstreetmap/index.html.
  • Прощай, Google Maps
    0
    У вас что-то не так. 1 млн тайлов в день — это усредненно 12 RPS, ну пусть будет 30 если считать что пик трафика продолжается 8 часов, а не равномерно размазан по суткам. На 8 ядрах получается по 4 RPS на ядро, звучит вполне нормально… Вообще если без нагрузки оно тоже тратит по 5 секунд на рендеринг одного тайла, при использовании SSD, то явно где-то не хватает какой-то фильтрации объектов, или индексов для их выборки, или просто какой-то компонент в стеке хреново выбран.

    Btw, выше по треду предложили ограничиться Европой, это сильно снижает требования по объему дисков.
  • Перевод Redmine-плагинов с TelegramCLI на Webogram
    0
    1. Не получилось совсем от манипуляций с DOM избавиться чтобы выкинуть phantom и взять чистый nodejs? Вот у Игоря тикет про это — https://github.com/zhukov/webogram/issues/124, кажется он был бы очень даже за если бы ему помогли.

    2. А реализаций mtproto на Ruby нет? Вот есть https://github.com/platphorm/telegram_rb, правда выглядит сыровато, да. Пробовали её?

    3. Зачем вообще нужна функциональность отправки сообщений по mtproto? Кажется через бота все задачи нормально решаются.
  • Badoo time-series storage: итак, она звалась Кассандрой
    0
    Нашел ниже.
  • Badoo time-series storage: итак, она звалась Кассандрой
    0
    А можно примерные характеристики серверов узнать?
  • Badoo time-series storage: итак, она звалась Кассандрой
    +1
    > Elasticsearch
    > И ещё мы столкнулись со странной особенностью: чем больше шардов в индексе, тем медленнее он работает на запись (хотя здравый смысл подсказывает, что должно быть наоборот).

    Есть такое. Лечится группировкой данных в bulk запросах по шардам. То есть в одном bulk запросе все документы должны отправляться в один шард. Этого поидее должно быть достаточно, чтобы избавиться от горлышка на синхронизации запросов в шардах. Но в идеале — смотрим в исходниках elasticsearch алгоритм вычисления номера шарда по routing (https://gist.github.com/ei-grad/c6794b151f6df49b6b6d94befff877e6), получаем через allocation explain API на какой ноде сейчас находится primary-реплика этого шарда, и шлём этот bulk запрос напрямую в неё, а не через Client-ноду (и уж тем более не через произвольную data-ноду).

    У меня при такой схеме количество шардов влияет на скорость индексации линейно (на самом деле нет, я просто стал в питонячий клиент упираться на подготовке данных :(, увеличивать число шардов дальше не хочется, и так уже по 10 шардов на 4-ядерную ноду с учетом реплик, а текущих 100к записей в секунду, до которых успевает разогнаться импорт на получасовых батчах вполне хватает).
  • 101 способ приготовления RabbitMQ и немного о pipeline архитектуре
    0
    > А особенно не тянул его веб-интерфейс. :(

    Ок) ¯\_(ツ)_/¯
  • 101 способ приготовления RabbitMQ и немного о pipeline архитектуре
    0
    А, ещё про Apollo забыл, который емнип забросили в пользу Artemis.

    Вообще на самом деле сравнивать особо нечего — ActiveMQ медленный из за синхронной архитектуры (они вроде скрещиваются с Artemis чтобы это побороть, но кажется что там в ближайшие N лет вряд ли будет что-то production-ready, проще HornetQ взять, хотя могу ошибаться), Qpid юзабелен скорее как набор библиотек а не готовый брокер. Остается мейнстрим — RabbitMQ, и кажется что других вариантов с AMQP нет.

    Если интересны альтернативы — http://queues.io/.
  • 101 способ приготовления RabbitMQ и немного о pipeline архитектуре
    0
    Да, и даже имея publisher confirms, всё равно гарантированную доставку (at-least-once) придется самому реализовывать.
  • 101 способ приготовления RabbitMQ и немного о pipeline архитектуре
    0
    Высокоуровневые сокеты не совсем верное название, более правильное — набор примитив для передачи сообщений. Нужна гарантированная доставка — реализуй на этих примитивах свой протокол, this is how it works. Btw, в обычном AMQP 0.9 даже подтверждений доставки нет. У RabbitMQ свое расширение — https://www.rabbitmq.com/confirms.html.
  • 101 способ приготовления RabbitMQ и немного о pipeline архитектуре
    0
    Уже как минимум три — Qpid, ActiveMQ, Artemis (бывший HornetQ). Если kafka и прочих не-AMQP'шных не считать.
  • Яндекс открывает ClickHouse
    0
    Да, с такими сценариями проще отдельную программу написать, которая с вложенными данными будет разбираться. Но ведь это не специфично для Protobuf, как в случае того же JSON'а поступать?..

    В документации описан тип данных Nested, будет ли работать вставка данных, если структура таблицы с Nested-полями и во входящем JSON совпадает? Или на вход поддерживается только JSON с плоской структурой?
  • Яндекс открывает ClickHouse
    0
    > а некоторые поля — это данные, которые нужно получить в довесок

    Кажется в случае elasticsearch таких полей обычно не много. А изначально мое замечание было про отключение индексации для всех полей. Хотя сейчас я уже понял что это вполне нормальная ситуация для стандартного сценария использования ES для full-text поиска — с одним analyzed полем, и набором не индексируемых полей данных, разным для разных документов, которые просто удобно сразу получать в результатах поиска.

    > метрики — это в основном числовые значения. Почему вы их не индексируете? Они не так уж много места занимают.

    Я не говорил что не индексирую метрики, просто отметил как отдельный случай в котором может быть допустимо выключить индекс.
  • Яндекс открывает ClickHouse
    0
    > монга хороша для очень быстрого доступа к данным (в том числе холодным), в этом плане она сильно выигрывает у эластика

    > Основное, в чем эластик менее эффективен относительно монги — это объем хранимых данных и объем индексов

    Я собственно это и имею ввиду. Опыт — построение сложных отчетов, когда агрегаций ES не достаточно и приходится выгружать миллионы документов в Python. Иногда эффективнее в hadoop'е по сырым сжатым данным пройтись, чем из эластика их достать. Выгрузка данных в JSON по HTTP из эластика сильно проигрывает выгрузке BSON по бинарному протоколу монги.

    В текущем кейсе у меня таких выборок не много, ES — нормально, он в основном для агрегаций используется. Хотя иногда приходится выгрузки делать, и это боль. А на прошлом месте работы был вполне успешный опыт подобных выгрузок с монгой.

    > взвешивая профит работы с данными, по большинству критериев выигрывает эластик

    Согласен, в нашем кейсе для аналитики ES тоже лучше монги :-).

    Но если данные не индексировать, то зачем их хранить в ES?.. Выборки по ним делать нельзя. Если для того чтобы просто доставать — лучше монгу взять.

    Отдельный вопрос — поля метрик. Не знаю, влияет ли отключение их индексирования на производительность аггрегаций по ним? Какие-то агрегаты для индексов насчитываются, что будет если для метрик выключить индексирование? Да и иногда по метрикам тоже выборки хочется делать.
  • Яндекс открывает ClickHouse
    0
    У вас в документации есть кусок про YT, может лучше убрать, чтоб не смущать общественность? https://clickhouse.yandex/reference_ru.html#Возможные глупые вопросы
  • Яндекс открывает ClickHouse
    0
    > parent-child всегда хранится в памяти, целиком

    Оказывается не совсем правда уже, но в любом случае вот правильный линк который необходимо прочитать при возникновении желания поделать JOIN'ы в ES — https://www.elastic.co/guide/en/elasticsearch/guide/current/parent-child-performance.html.
  • Яндекс открывает ClickHouse
    0
    Если говорить про удобные и эффективные форматы, то у Druid'а есть WOW-фича — указываешь ему класс со структурой Protobuf, и он читает данные через неё. Сложно ли будет вкрутить подобную функциональность в clickhouse-client?
  • Яндекс открывает ClickHouse
    0
    С помощью dynamic templates можно отключить индексацию для всех не заданных полей или по шаблону — https://www.elastic.co/guide/en/elasticsearch/reference/current/dynamic-templates.html.

    Но какой смысл в эластике, если не индексировать поля? Как хранилище он не эффективен, проще монгу взять.
  • Яндекс открывает ClickHouse
    –3
    Было бы интересно почему ты пришел к выводу, что я быдло, но не вижу смысла продолжать дискуссию, потому что ты ещё в предыдущих сообщениях успел доказать то что твое слово ничего не стоит, а мнение подкрепляется личными эмоциональными фантазиями.