Задать вопрос
  • Как соединить 2 bat файла в одну?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Можно один батник вызвать из другого.

    @call bat2.bat
    Ответ написан
    Комментировать
  • Как правильно сделать сортировку в таблице базы данных?

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

    UPD: Я обновлю свой ответ на основе новых данных.
    Менеджеры хотят в приложении задачи перетаскивать

    Если это наподобие двигания тасок в JIRA-borad то тогда действительно не нужны
    никакие даты. Нужно одно поле rank. Возможно поле priority это оно и есть.

    Тогда при накидывании тасок на доску мы просто делаем им sequence с любого
    стартового значения. А когда менеджер двигает - нам нужна процедура
    swap(id1, id2)
    которая просто меняет ранги местами для двух JIRA ids.
    Ответ написан
  • Как перенести базу данных postgresql с Ubuntu на windows?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Если кратко - то в Ubuntu делают pg_dump а в Windows - pg_restore.
    Все остальное - это просто детализация этой инструкции.
    Ответ написан
    Комментировать
  • Пропало создание сжатой ZIP папки. Как вернуть?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Сжатые папки и архивы - это кажется разные технологии. Я помню что в эпоху Windows 98 мы ставили
    ZipMagic. Он и обеспечивал прозрачную работу с архивами на лету. Вот. А SevenZip (7z) просто обеспечивал
    интеграцию приложения 7z и эксплорера. И добавлял контекстные действия над файлом.
    Ответ написан
  • Как уменьшить диапазон поиска для неизвестного числа?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Ну в задаче как-бы не хватает информации. Если мы ищем решение какого-нибудь корня квадратного
    то у нас есть методы дихотомии, Ньютона, всяких там хорд и прочее.

    Если функция более хитрая (не гладкая) то к ней надо с хитростью подходить.
    Ответ написан
    Комментировать
  • Нужен ли цикл для рекурсии?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Как то так должно быть.

    function find($number, $div = 1, $result = []) {
        if ($i <= $number / $div) {
            find($number, $div + 1, ($number % $i == 0) ? array_push($result[], $i) : $result;
        } else {
        	return $result;
        }
    }

    Я не спец в ПХП и могу ошибаться в том как arrays работают. Вобщем идея такая. Проверяйте и исправляйте.
    Ответ написан
    Комментировать
  • Может ли Grafana напрямую слать запросы в табличку на hdfs и рисовать временной ряд?

    mayton2019
    @mayton2019
    Bigdata Engineer
    А можно ли использовать отдельную табличку на hdfs для этих целей?

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

    Для стриминга информации действительно подходит связка Graphana + Prometeus + InfluxDb.
    Но тут дальше непонятно какой-такой посредник тебе нужен. Такие посредники существуют
    для Kafka/Cassandra и они называются коннекторы. Они льют информацию из очереди
    в таблички и наоборот (там есть правда условие). Но опять-же твою постановку надо грумить
    очень глубоко вплоть до объемов данных и лагов и условий чтобы понять что на самом деле надо.

    На hdfs есть табличка (обычно дергаю из неё данные в hive).

    По роду постановки - это очень близко к микро-батчингу или стримингу. Но я пока не вижу
    какой стек ты используешь. Обычно к стримингу ближе идут Spark/Databricks/Flink/Storm.
    У них хотя-бы существует терминология стриминга. Вот а hive - это точно не про стриминг.
    Ответ написан
    1 комментарий
  • Дебаг при разработке не обязателен?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Есть точка зрения (от функциональщиков) что если у тебя код разбит на функции и они покрыты тестами
    то никакой дебаг тебе не нужен
    . А если вдруг стал нужен - то что-то у тебя не то с тестовым покрытием.
    Я тут не могу на 100% согласиться потому что я лично не видел чисто функциональных проектов. Но
    эта мысль очень правильная. Она заставляет задуматься.

    Вообще сам процес дебага появляется когда программист говорит "я не знаю чему будет равна эта
    переменная в этой функции". Это как раз тестом и проверяется. Еще есть кейс когда програмист не знает
    какой результат вернул внешний datasource
    (база или микросервис). Но мы это закрывали логгированием
    уровня debug всех внешних сервисов (и желательно в отдельные логи).

    Есть особые условия безопасности когда программист физически не имеет доступа к периметру где работает
    его код. Я такое видел и даже участвовал. Это банковские продукты которые очень сильно защищены.
    И понятное дело что никто debug port вам туда не откроет. За этим следят безопасники и единственное
    что у вас будет для анализа это логи. Поэтому логи .. логи и еще раз логи с разной детализацией.

    Вобщем отсутсвие практики дебага на проекте - это нормально. Это просто повод сесть и задуматься
    а как вообще вам писать код чтоб не делать ошибок. Я считаю что это возможно. Вобщем это скорее
    положительный челлендж. Пробуйте и у вас получиться.
    Ответ написан
  • Как продвигаться дальше?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Вместе с С++ хорошо сочетается знания алгоритмов и железа.
    Попробуй для практики зарегистрироваться на codewars / leetcode и прочих задачниках
    и порешай задания. По железу. Поразбирайся с Arduino, Raspberry. Сделай что нибудь полезное.
    Ответ написан
    Комментировать
  • Как конвертировать чат в вопросы и ответы?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Можно попробовать токенизировать все вопросы. И сложить их в векторы токенов.
    И прогнать через алгоритм кластеризации. В настройках ты задашь например 100 центров
    кластеров. На выходе ты получишь 100 наборов ключевых слов по самым популярным тематикам.
    Ответ написан
    2 комментария
  • L3 кеш как сильно бустит производительность игровому серверу?

    mayton2019
    @mayton2019
    Bigdata Engineer
    L3 кеш как сильно бустит производительность игровому серверу?

    Да сильно. Вот формулы я не знаю. Да и никто не знает. Это как в симуляции.
    Чтоб узнать сколько - ты просто берешь две конфигурации. Запускаешь бенчмарк
    и смотришь как было ДО и как стало ПОСЛЕ. И ничего лучше пока не придумали.
    Компьютерное железо - это практическая наука. И здесь эксперимент - важнее теории.

    По какому алгоритму игровой сервер использует кеш процессора?

    Насчет алгоритма я не знаю. Возможно разновидность LRU. Я помню смотрел одно
    видео где один С++ ный маг и колдун (кажется Ulrih Drepper) рассказывал об алгоритмах
    кешей в железе.

    Алгоритм оперирует обычно кусочками памяти в блоках по 64 байта. Кеш-линии.
    И если тебе надо прочитать 1 байтик то будет прочитан кусок кратный кеш-линии.
    Зато при последующих попытках читать второй и третий байтики алгоритм будет
    оперировать с пирамидой кешов. Обычно L1 - самый быстрый и другие медлненее.
    Хорошо прогретые кеши обычно содержат 100% нужную информаицю для текущего
    ядра процессора. Или для thread.

    Кеш придумали для геймеров или для серверов тоже?

    Нет. Его создавали просто для эффективного использования железа еще в 20м веке.
    Мы его увидели начиная кажется с первых Pentium-ов.

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

    Как хорошо будет жить сервер с основной нагрузкой на одно ядро без кеша L3?

    Я не очень себе представляю подобную конфигурацию. Расскажи как ты этого достигнешь.

    Если в процессор дать кеша 2gb L3 то его IPC вырастет?

    Ну это ты загнул. Обычно кеши L3 стоят внутри процессора и их размер в десятки мегабайт.
    Цена их тоже пропорционально дороже. Поэтому здесь нет таких безкомпромиссных
    решений типа сделать кеш на сто гигов. Вот и делают такую эконом-пирамиду. Опираясь
    на такое предположение что вся память в один момент тебе все равно не нужна.
    Ответ написан
  • Стоит ли покупать мини-пк для подъема сервера для небольшого веб-сервиса или арендовать хостинг?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Обычно провайдер продает очень тухлый интернет в "обратную сторону". Допустим в
    рекламе звучало 100Мб и возможно вы можете смотреть футбол в full-HD
    но это не покрывает "трафик в обратную сторону".

    Тоесть ваши клиенты очень быстро почувствуют плохую полосу в обратную сторону
    особенно когда эта полоса коррелирует с типичной вечерней загрузкой сетевого
    оборудования в подъезде дома.

    По поводу "дешманский старый комп". Это не смешно. На самом деле плохое оборудование
    лучше даже не брать. Вам себе будет дороже им заниматься. Серверное железо не зря
    стоит своих денег. И хотя-бы его способность быть быстро заменяемым - уже ценное свойство.
    Ответ написан
    Комментировать
  • Как узнать память видеокарты и ее быстродействие?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Такие библиотечки как CUDA и OpenCL в части инициализаци должны выдавать сведенья о железе.
    Может эти сведенья будут очень high-level но должны быть.
    Ответ написан
    9 комментариев
  • Почему модуль имеет такой вид?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Двоичная система которая используется внутри железа имеет очень красивое представление в hex.
    Четыре бита - отображаются в один hex символ. И очень неудобное представление в десятичной.
    Ответ написан
  • Потребление ресурса записи ssd и как потребление памяти уменьшить?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Потребление ресурса записи ssd и как потребление памяти уменьшить?

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

    Ты совершенно правильно выбрал HDD для торрентов и фильмов. Я тоже так делаю уже 5 лет.
    Проблем никаких и мой NVM 2017 года до сих пор жив.

    Чтобы не быть голословным. Любая проблема измерима. Например у тебя есть некая средняя
    суточная нагрузка. Посчитай ее. Есть утилиты smartctl под Linux

    sudo smartctl -t long -a /dev/***
    Смотришь таблички. Там есть трешолды. Алёрты и прочие метрики здоровья.

    Есть графические наподобие HDTune под Windows. Их похожих несколько. Они показывают
    здоровье диска и прогноз на будущее.

    Любой инженер по этим цифрам может прикинуть срок жизни устройства.

    Можно накидать тебе всяких советов наподобие отключения обновления "даты файла при
    листинге каталога" или перенос paging файла на HDD но я считаю это шум и суета до тех
    пор пока ты не сделал ИЗМЕРЕНИЯ и сам себе не доказал что это реально необходимо.

    В противном случаае все советы - это гомеопатия и прочие бабушкины выдумки типа кушать
    чеснок чтоб не болеть в следующем году. Я уже кушал. Получил гастрит. Спасибо за вредные советы.
    Ответ написан
    Комментировать
  • Табличная бд, вопрос: как читать данные?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Колонки нельзя называть цифрами. Обычно дают имена начиная с латинских букв. id, c1, c2 например.
    тогда
    SELECT c2 WHERE id = 1
    выдаст
    C
    Вообще твой вопрос не про базы данных а про матрицы в программировании. По крайней
    мере ту картинку что ты нарисовал в чистом виде в БД никто не кладет.
    Ответ написан
  • Можно ли узнать ip и др.?

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

    IP адреса также находятся в ротации со стороны провайдера. Поэтому через сутки этот адрес после завершения
    аренды и ребута роутера может быть передан другому соседу в этом доме. И кого спецназ будет брать?
    Бабушку-божий-одуванчик которая смотрит телесериалы по нетфликсу?

    По поводу SWAT, вертолетов и прочее. Попробуйте в реальной жизни этот SWAT куда-нибудь отправить. В ПГТ или частный сектор например. Где даже номера домов толком не написаны. Этот сват там на пол-дня застрянет
    и будет спрашивать где найти улицу.
    Ответ написан
  • Как вывести кириллицу в консоли IntelliJ IDEA?

    mayton2019
    @mayton2019
    Bigdata Engineer
    У тебя исходники кривенькие. Текстовые литералы пробиты в win-1251 например.
    Пересоздай их заново в utf-8.
    Ответ написан
    Комментировать
  • Можно ли сделать так, чтобы когда электричество дешёвое, сервер работал на максимум?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Если смотреть с точки зрения физики - то есть много путей как решать эту задачу.
    По топику не очень понятно как сервер будет узнавать о падении цен? Наверное имеется в виду
    дневной ночно тариф. Ну допустим с 22 до 10 дешевое 0.02 цента и с 10 до 22 - дорогое по 12 центов.

    Тогда наша задача ночью - где-то накапливать электричество а днем его прожигать из этого накопителя.
    Подойдет просто мощный UPS который выдерживает 12 часов. Тем более что разница в двух тарифах
    6 кратная. Дизель-генератор тоже подойдет. Если посчитать. Вот. В некоторых странах вроде-бы есть
    гидро-электростанции которые ночью наполняют природные озера водой а вечером в час пик просто
    сбрасывают эту воду на генерацию вроде как для балансировки пиковой нагрузки. Здесь получается что вода
    накапливает кинетическую энергию для вечера. Вода - аккумулятор.

    Вот и майнинг-ферма может спокойно работать не сбавляя оборотов.
    Ответ написан
  • Разделение ответственности или производительность?

    mayton2019
    @mayton2019
    Bigdata Engineer
    А где проблема вообще? Ну будет 2 нотификации. Но они ведь нацеленные на своего потребителя?
    Тот кому надо их и прочитает. Или тут экономят сетевой трафик? Короче непонятно.
    Ответ написан