Задать вопрос
  • Правильное ли решение к задаче про "среднее время доступа к слову"?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Откуда взято это утверждение?
    Если показатель успешного поиска в кэш-памяти составляет 95 %
    Ответ написан
  • Где применяют python помимо веба и data science?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Питон активно применяется инженерами НЕ из сегмента It. Химиками. Физиками. Металлургами. Строителями.

    Жестокая ирония но часто его выбирают не по желанию а потому что ничего другого бесплатного под рукой не оказалось. Вот отсюда и проистекает его широкое распространение. А по рейтингам tiobe, он перегнал С++ и Java.

    Тоесть реально на вопрос "где" можно ответить - "везде".
    Ответ написан
    Комментировать
  • Python в образе на базе alpine - все плохо?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Python в образе alpine это не плохо. Это просто параноидально секюрно. Безопасники считают что alpine настолько ограничен что потенциальный злоумышленник даже если получит консоль - все равно ничего не сделает. Даже листинг файлов не просмотрит. Вот такая парадигма. Плюс альпин - маленький. Грузится быстро. Хотя кому какое дело? Мне вообще все равно сколько образ грузится. Плевать короче. Но может комуто важно.

    Если вам такой параноидальный уровень безопасности не нужен - то берите спокойно дебиан. Не надо себя мучить каким-то бондажом с наручниками и альпином.
    Ответ написан
    Комментировать
  • Как обеспечить консистентность данных между БД и поисковым движком?

    mayton2019
    @mayton2019
    Bigdata Engineer
    В любой информационной системе я-бы выделял single-source-of-truth (типа главный источник правды) и этот главный источник должен быть согласован сам с собой всегда. Будет ли это дисковый файл. Kafka, или база PG - неважно. Важно что он будет арбитром в спорных ситуациях.

    В ситуации с потерей электричества что вы описали - совершенно невозможно правильно восстановить обе системы. Одна из ник полюбому будет опережать другую. В high-load системах она будет опережать не на 1 на на сотню транзакций например. Честно я даже не могу придумать алгоритм восстановления. Особенно если часы где-то разошлись на милисекунду и одна из систем сделала update на уже вставленные данные.

    Мне нравится вариант когда мы сразу пишем информацию в Postgres и делаем commit (по правилам которые нужны бизнесу) и дальше уже индексируем содержимое базы эластиком. После аварийного ребута я будут знать что PG содержит именно то что было закоммичено. То что нужно тоесть. Эластик будет просто догонять.
    Ответ написан
    Комментировать
  • Параллельные запрос как уязвимость?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Эта проблема к браузерам не имеет никакого отношения. Это можно рассмотреть как несогласованность транзакций при работе с балансом пользователя. Если развивать идею то так можно и 2 кредита взять.
    Воспроизвести ее можно и без бразуеров.

    Вобщем если 2 потока работают с одной разделяемой volatile переменной баланса то возможна ситуация когда проверка баланса и его обновление выполняются в различных потоках что приводит к ошибке списания средств. 100% новичков попадают в эту ловушку просто не зная что мультипоточка - коварна и может прервать выполнение вашего треда в любую милисекунду и передать управление другому потоку в этом же коде.

    Гипотетический код на несуществующем языке который делает блокирование баланса перед проверкой.
    boolean withdraw(account : Long, amount : Decimal) : boolean = {
      with(account.lock()) {
        if (account.balance >= amount) {
          account = account - amount;
          return true;  
        } else {
          return false;
        }
      }
    }

    И код на SQL (ближе к Oracle-диалекту).

    SELECT amount FROM accounts WHERE accountID = :accountId FOR UPDATE;
    
    UPDATE ... 
    
    COMMIT ...;
    Ответ написан
    Комментировать
  • Как включить mod_rewrite в docker compose (nginx-proxy + php:*.*.*-apache)?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Попробуй взять образ jwilder/nginx-proxy и внести в него нужные изменения. Я думаю там будет 1 строчка.
    Ответ написан
  • Путь развития сетевого инженера/администратора?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Иди на гос-предприятие. Там легче устроится. Потом оглядись и дальше как пойдет.
    Ответ написан
    Комментировать
  • Зарезервированные СНИЛС?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Хм. Там как в банковской карте - последняя цифра контрольная. 9 цифр + 1.
    Тоесть всего 1 млрд корректных номеров и 9 млрд некорректных которые никогда
    никому не выдадут. Отключи в своей системе контроль этой цифры и бери рандомное
    из диапазона вот этих некорректных.
    Ответ написан
    2 комментария
  • Как называется символ "?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Лучше всего искать в справочниках Unicode https://en.wikipedia.org/wiki/List_of_Unicode_char...
    В разделе базовой латиницы его называют Quotation Mark. Українською мовою этот символ называют "в лапках".
    Еще называют двойная кавычка. В XML его называют & quot ;
    Ответ написан
  • Почему может не запускаться autovacuum?

    mayton2019
    @mayton2019
    Bigdata Engineer
    А если ты вручную запустишь вакуум - это влияет на LiveTuples / DeadTuples ?
    Ответ написан
  • Фильтр по части строки?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Значит сразу скажу что у меня для вас - плохие новости. DynamoDb как и многие ему подобные облачные key-value решения расчитаны на выборку по сету ключевых полей. Обычно это хеш-ключ и ключ диапазона. В этом случае вы платите немного. Если вдруг вы решили выбирать по не-ключевым полям это уже будет другое тип запроса. Называется scan. Его можно писать на любом языке разработки но суть в том что будет выбрана ВСЯ таблица. Если она большая - то charge за текущий период вас неприятно удивит. Фиксить это почти невозможно. Это неправильный дизайн и неправильное использование AWS Dynamo. Вам следует вообще отказаться от использования Dynamo и думать над тем как НЕ делать сканов в будущем. Можете теоретически создать индекс по хвосту от строки. Но индекс с точки зрения Динамо - это копия таблицы просто по другому расположенная и реплицируемая. Вобщем не советую тоже.
    Ответ написан
    3 комментария
  • Что значит умение использовать GNU?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Тут-же из контекста все понятно. Вакансия С++. Gnu == gcc.
    Ответ написан
    3 комментария
  • Что требуется чтоб разместить html сайт на VPS?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Ну обычно регистрируют публичное имя. И запрашивают сертификат для https. Я-бы с этого начал.
    Ответ написан
  • Можно ли обновить пакеты разархивировав образ в папку?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Вот по ссылке один господин редактирует дистрибутивы Ubuntu на образах.
    https://www.unixmen.com/edit-iso-files-using-mkiso...

    Но он использует только mkisofs и mount -t iso9660 -o loop ...

    Я думаю что ничего тут сделать нельзя. Надо вот так вот и работать. Как с архивом zip. Короче последовательный он и readonly. А редактирование на лету - это опция других файловых систем которые read-write.
    Я так думаю.
    Ответ написан
  • Ошибка с данными. invalid literal for int() with base 10: ''?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Вот здесь в скобочках
    if int(i[0])==int(ch_id) and int(mesid)>int(i[1]):
    идет попытка кастовать строку в число десятичной системы но неудачно. Видимо строковый литерал не похож на число.

    Воспроизведение подобной ошибки
    >>> int("555")
    555
    >>> int("555x")
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ValueError: invalid literal for int() with base 10: '555x'
    Ответ написан
    Комментировать
  • Почему служба Jenkins занимает порт, но не запускается?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Что-то ты не то делаешь. Сделай
    docker run .....
    с указанием правильного image и все заработает.
    Ответ написан
  • Как можно определить что цвет относится к синему (оттенки синего)?

    mayton2019
    @mayton2019
    Bigdata Engineer
    В базисе RGB тоже можно посчитать. Сначала выбирай центр кластера. Эталонный синий с которым хочешь сравнивать. Дальше для всех цветов считай просто декартово расстояние. И если допустим оно будет меньше какой-то величины- то близко к эталону. Вот неполный пример на другом языке. Можно как-то дописать на Python.

    public double getDistance(int color1,int color2) {
            double rv = 0.299 * (getRPixel(color1) - getRPixel(color2));
            double gv = 0.587 * (getGPixel(color1) - getGPixel(color2));
            double bv = 0.114 * (getBPixel(color1) - getBPixel(color2));
            return sqrt(rv * rv + gv * gv + bv * bv);
    }


    Можно выбрать базис HSV, тогда для похожести брать измерение H (Hue) как эталон.
    Но цветовой тон - вращается. Тоесть надо учитывать его как часовую стрелку например без 5 минут 12
    близко к без 15 минут и к 12:05 одинаково.
    Ответ написан
    Комментировать
  • Где ошибка в коде?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Посмотри чистым взглядом на то что ты скачиваешь

    $ wget https://api.bittrex.com/api/v1.1/public/getticker?market=USD-BTC


    может там сайт вообще не работает. Короче учись видеть исходные данные глазами.
    Ответ написан
    Комментировать
  • Зачем нужен отдельный синтаксис для препроцессора?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Макросы - это рудимент. Пережиток прошлого. Во многих современных языках их нету принципиально. Хотя в C/C++ они выполняют функцию такого себе прозрачного преобразования исходника перед сборкой. С помощью М. можно например принять решение о платформенной компилляции WIN32/LINUX/MAC. Напихать ассемблера с вариантами.

    В gcc кажется есть ключи которые позволяют увидеть код программы после макро-подстановки.

    Вообще с помощью М. можно делать разные веселые вещи например переименовать TRUE в FALSE. Такая себе тема троллинга на собеседовании.

    Вот это предложение - хорошее.
    compiled{
       if(something){
       }
    }

    Но я думаю что комитет его уже обсуждал. Надо найти только протоколы.

    Почитайте еще спецификацию ZigLang. Там были реализованы какие-то фичи с compile time.
    Ответ написан
    Комментировать
  • Как оптимизировать запрос с подзапросами с COUNT?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Вот эта колбаса - по смыслу - group-by с фильтрацией. Попробуй сделать из 3 запросов 1.
    ,(SELECT COUNT(comment_system.id) FROM comment_system WHERE itemtype='qqq' AND item_id = ebids.id) AS has_qqq_comment 
      ,(SELECT COUNT(comment_system.id) FROM comment_system WHERE itemtype='www' AND item_id = ebids.id) AS has_www_comment 
      ,(SELECT COUNT(comment_system.id) FROM comment_system WHERE itemtype='eee' AND item_id = ebids.id) AS has_eee_comment
    Ответ написан
    Комментировать