Задать вопрос
  • Оператор моб связи фиксирует местоположение абонента даже если не совершается звонков?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Да. Если брать абонентов А и Б то мобильный оператов всегда знает их положение с точностью
    до базовой станции. В противном случае А не смог бы дозвониться до Б. Радиус действия станции
    может быть от сотен метров до километров. Поэтому о точном местоположении абонента говорить сложно.
    Ответ написан
    Комментировать
  • Как сделать поиск данных из mysql которые сохраненны в формате unicode?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Эта строка просто не работает.
    $where .= " AND {$table_prefix}`{$this->search_by}` LIKE '%{$this->search}%'";
    Ответ написан
  • Почему в Java изменение интерфейса базового класса посредством модификации сигнатуры разрешено?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Несмотря на то что java/c++ формально являются ООП языками, многие вещи
    с перегрузкой у них реализованы по разному. В случае с методом sound в Java
    скорее всего будет создано просто 2 метода (разные сигнатуры).
    Ответ написан
  • Как сделать так, чтобы данные, которые я пишу в тг бота, заполняли сперва первую строчку в таблице postgre?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Ну в базах данных так не делают. Обычно все колонки именованы и имеют смысл.

    У тебя есть два варианта КМК. Можно провести еще один сеанс нормализации и сделать табличку
    так.

    id| q  | value
    1 | q1 | 1111....
    1 | q2 | 2222....
    1 | q3 | 3333333
    2 | q1 |......


    или сделать value как JSON и складывать туда массив

    id| json_value
    1 | [ "11111", "2222", "333333" ....]
    Ответ написан
    Комментировать
  • Как обойти размер файла и хеш? Как сделать чит?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Чтоб подогнать файл под хеш надо сначала знать алгоритм хеширования.

    А вообще - ты мелкий хулиган :) Найди себе нормальную работу лучше.
    Ответ написан
    4 комментария
  • Как узнать IP-адрес DNS-сервера, который использует сам провайдер?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я не думаю что у провадера - именно кеширующий. Ведь пров может ести какую-то свою политику. Банить неугодные
    сайты и перенаправлять пользователя на региональные ip зеркал для балансировки.

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Вряд-ли можно найти тут решение в 1 шаг. По смыслу задача звучит так. Дано число в Hex нотации.
    Отформатировать его как UUID.

    strval(new UUID("392981414524f56f68d9f4a47e7072f2")


    Это - гипотетический код который мог-бы быть PHP
    Ответ написан
    Комментировать
  • Что за скаляр получается при скалярном произведении векторов?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Скалярное произведение СП - это математическая абстракция. Математика - вообще не обязана иметь какой-то материальный смысл. Если заходить в теорию чисел - то там точно нет физики. Там - игры разума.

    Но вот СП на некотором софистическом языке. Почленно перемножаем все компоненты вектора и складываем.
    def scalar_prod(a:List[Double],b:List[Double]) : Double = a.zip(b).map(_*_).sum


    В резулльтате получаем тип - СКАЛЯР. Число. Именно поэтому операция так и называется.
    Для векторного произведения формула и суть будут другие.

    Если вектор а например - это различные валюты в твоем кошельке а вектор б - это курсы валют по отношению
    к какой-то единой условной единице - то твой кошелек стоит СКАЛЯРНОЕ произведение валют на их курсы.

    Если в Excel вы считаете стоимость сметы - то СП цен на количества даст нужную величину. Да много чего можно придумать. В теор-вере там.. Тоже можно придумать.

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Он их не брал с ПК. Скорее всего он использовал базы краденных паролей. Этим и объясняется
    их старость. Другой вопрос - почему он сумел ими воспользоваться?
    Ответ написан
    4 комментария
  • Где можно почитать/посмотреть о написании dll на c++?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Классическое С++/dll программирование для прикладника теряет смысл. Весь прикладной и бизнес код
    пишут на .Net или Java
    . А там по большей части и dll - другие.

    Какой такой сегмент разработки может от вас потребовать именно знаний Windows/DLL? Я не знаю. Может
    gamedev? Там щас тоже все нишевое. Разделено на UE/Unity. Своя вселенная короче.

    Может антивирусы и ИБ? Ну не знаю. Эти ребята вобщем-то даже не программисты. У них - другие задачи.

    Вобщем не берите в голову. Университет едет по очень старым рельсам. И это вам скорее всего не нужно.
    Не дай бох вам еще там будут Delphi читать или Borland C++ Builder. Старые куколды блин. Никак не
    перестроются под рынок.
    Ответ написан
    Комментировать
  • Какие недостатки у слишком большого корпуса ПК?

    mayton2019
    @mayton2019
    Bigdata Engineer
    У меня чаще бывало что не хватало слотов под HDD. И я чаще сожалел что не взял корпус побольше.
    То не хватило места в ширину под Zalman-кулер (поперечной компоновки). Тоесть крышка не закрывалась.

    Вобщем большой корпус - это очень хорошо. Еще лучше - корпус-штатив или конструктор как Antec
    (такой уже не выпускается).

    Нет недостатков у большого корпуса. Он как внедорожник с багажником. Просторный.

    А если у вас в квартите мало места ... ну. .. это уже про другое вопрос.
    Ответ написан
    Комментировать
  • Сколько всего будет вариантов?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Для первой задачи.

    Ну тут надо просто перечислить чего есть.

    range(0..1) = 2
    range(2..3) = 2
    range(4..5) = 2
    range(6..7) = 2
    range(7..9) = 3
    
    2 * 2 * 2 * 2 * 3 = 48


    48 вариантов будет. Ну это как камера хранения в которой все ручки имеют 2 положения и лишь последняя - 3 положения.

    Ну для второй задачи проще. Будет скорее всего 25. Два поворотных переключателя на сейфе.
    И всего 25 состояний замка.
    Ответ написан
    Комментировать
  • Prisma, как обновить множество данных без лимита по количеству соединений?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Ну ты можешь в качестве ключа использовать UUID. Так делают в распределенных системах когда много генераторов данных и все друг о друге не знают и не синхронизируются.

    Или можешь сам с собой договориться что каждому продюсеру данных дается диапазон. Для первого будет от 0 до 500 000 и для второго 500 001 до 1 000 000 и так далее.

    Есть генераторы основанные на текущем времени и мак-адресе хоста. Да много чего можно придумать.

    Игры в upsert или retry логикой могут заблокировать джобы надолго. Они могут кружиться в вальсе вместе
    постоянно наступая на конфликты. И это трудно пофиксить.
    Ответ написан
    Комментировать
  • Не могу разобраться как работает код?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Вот так работают.

    >>> for i in range(4):
    ...         x = (i % 2)
    ...         y = (i // 2)
    ...         print("i=", i, " x=", x, " y=",y)
    ...
    i= 0  x= 0  y= 0
    i= 1  x= 1  y= 0
    i= 2  x= 0  y= 1
    i= 3  x= 1  y= 1
    Ответ написан
    6 комментариев
  • Какую базу данных использовать для такого проекта?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Тут подходит любая реляционная SQL БД потому что нет противопоказаний. Реляционку мы выбираем
    уже более 30 лет как default вариант и почти не ошибаемся.

    Когда задача имеет признаки ярко выраженной high-load системы - мы делаем ей частичную денормализацию
    и раскладываем ее в NoSQL Key-Value решение. Но это не про улучшение а это про неизбежность. У нас нет выхода просто.
    Иначе мы клиенту не сможем быстро отдать какой-то резуальтат.

    Когда задача имеет ярко выраженную документную природу (нет спецификации на values) - мы берем MongoDb/CouchDb.

    Когда задача хранит граф и ищет в графе и вообще требует графовых алгоритмов - то мы берем Neo4j или ей подобные.

    Когда задача хранит данные измерений (телеметрия) - то предпочтительно взять InfluxDb или ей подобные. Здесь-же мы предполагаем что у нас - не будет joins а будет только измерения в диапазоне времени.

    Но в данном ТЗ и на картинке обычная SQL БД (MySQL/Postgres) вполне себе нормально справляется.
    Ответ написан
    Комментировать
  • Все признаки равенства треугольников?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я думаю что признаков можно придумать много. Но все они будут следствием из базового признака
    равенства.

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

    Ты не откроешь новых законов и не улучшишь положение дел в геометрии придумывая усложенные признаки.
    А в геометрии - всегда хороши те тезисы которые простые.
    Ответ написан
  • Почему не работает автоинкрементация в PostgreSQL при помощи knex?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Вот ошибка

    duplicate key value violates unique constraint "universitySpecialties_pkey"
    Ответ написан
  • Как построить путь из одной координаты в другую, используя промежуточные координаты из списка?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Задача выглядит как поиск кратчайшего пути в графе. Но решать в географических координатах
    сложно т.к. надо учитывать кривизну планеты Земля. На эту тему есть куча формул и еще лучше,
    куча систем координат и API.

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я не очень понимаю зачем здесь тема БД выпячивается наперед. Шаблон Retry используется очень широко.
    И это не к БД относится а к приложению. Мы использовали обычно Guava Retrying with exponential back-off
    вот как в примерах пишут https://github.com/rholder/guava-retrying и это примениме не только к БД
    а к любым внешним API (Rest/SOAP e.t.c.). Эта механика работае почти везде. Ей много лет и она
    воплощена многих сетевых протоколах а не только в приложениях.

    По поводу настроек БД. Я могу рассказать про Oracle. Update использует специальный неблокирующий
    синтаксис NOWAIT
    SELECT .... FOR UPDATE NOWAIT;
    который мгновенно возвращает ошибку если не удалось захватить сет строк для обновления. Это подходит
    для работы с UI и толстым клиентом например или с веб клиентом.

    Например для джоба которы должен работать ночью и взяв например
    1000 клиентов или фирм и обработать - предпочтителен подход блокировки всего курсора
    SELECT .... FOR UPDATE;.
    В этом случае другие джобы будут стоять в ожидании.

    А для дневной OLTP активности лучше брать корткие операции с NOWAIT. Проконсультируйтесь с вашей
    документацией по вашей БД поддерживается ли неблокирующая операция.

    Еще посмотрите видео от Филиппа Дельгядо. Он рассказывал как работали с очередями в Postgres,
    там есть интересные режимы блокировок когда не "все или ничего" а есть какой-то компромиссный
    режим.

    Вообще Retry и защита от перегрузок это броня и снаряд. Как DDOS. Если вы с одной стороны внедряете Retry то с другой
    стороны люди начинают плакать и стонать от ваших ретраев до тех пор пока не поставят
    вам троттлер или аварийный размыкатель.

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Этот вопрос нужно адресовать к современной физике. Сделать такой процессор не очень сложно.
    Но сложно сделать его потребительски привлекательным. Все делатели процессоров в современном
    мире бьются за энергоэффективность. А с повышением частоты там просиходит (пускай физики меня
    поправят) квадратичное увеличение потребляемой мощности (к коэффциентиком). Вот сколько именно
    ватт я сейчас не скажу но величина будет неприятная. Тоесть 8 ГГц процессор будет греться как кофейник
    и будет потреблять более чем в 4 раза если сравнивать его с 2Ггц ядром.

    Еще я-бы рассмотрел такой вариант как влияние на здоровье человека. Выж понимете да. Вся современная
    радиопередающая техника (мобилы, Wi-Fi, Bluetooth) со всех сторон зажаты медицинскими нормами
    всяких международных контролирующих организаций. И не дай бох хоть одна организация докажет
    что вероятность поймать рак мозга растет там на 5% от такого процессора - загнобят санкциями.

    По поводу мегафлопов. Фактически производительность техно-стека (Процессор-Память-I/O)
    зависит не только от проца но и от всех устройств которые в стеке. И даже работая на 8ГГц
    ты скорее всего не получишь желаемого роста скорости майнкрафта на переходе от 4 х 2 Ггц просто по той
    причине что кеш и память и диск остались ровно теже самые.

    Да и вообще. Эпоха гигантизма в процессорах прошла. Щас все двигаются к узкой специализации
    CPU/GPU/TPU и к интернету вещей. И майнкрафт здесь никак не будет главным регулятором стратегии.
    Уж извини. Водное охлаждение тоже вещь такая себе. Узкий сегмент энтузиастов. Обычным людам это
    так же не надо как и квантовый комп.
    Ответ написан
    8 комментариев