Задать вопрос
  • Как определить есть ли противоречия в цепочке логических выражений?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Можно попробовать на Prolog написать. Правила (rules) известны. А в качестве утверждений - просто
    проверить что существуют ли целые числа которые удовлетворяют всем rules.
    Ответ написан
    Комментировать
  • Как скачать файл через командную строку?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Слабый нынче геймдевелопер пошел. Пипка - это такой себе менеджер пакетов для питона. Как чоколядка для Виндовс.

    Вот тут можно скачать https://www.python.org/downloads/ или тут https://pip.pypa.io/en/stable/installation/

    Но вангую что на этом твои приключения только начнуться.
    Ответ написан
  • Как sql запрос для phpmyadmin оформить в php?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Ты его и для admin неоптимально сделал. Зачем 7 раз переписывать каждый документ. Вот будет у тебя база в 100 Гб - значит перепишешь почти терабайт.

    Сделай

    UPDATE wp_posts SET post_content = REPLACE(REPLACE(.... (post_content, '<pre><code>', '</code></pre>', '').......))))
    Ответ написан
    1 комментарий
  • Почему сайт падает при парсинге?

    mayton2019
    @mayton2019
    Bigdata Engineer
    сайт падает, в логах ничего

    Так не бывает. Если OOM киллер срубает процесс то где-то об этом остается след.
    Поищи в syslog, в сообщениях D-bus, в логах Апача, в логах Редиски или ПХП.
    Ответ написан
    Комментировать
  • Невозможно открыть файл?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Ох инженеры пошли совсем никудышние.

    Заходи в cmd. И делай
    c:
    cd \
    cd Users
    cd "Пользователь"
    cd "PycharmProjects"
    cd "pythonProject1"

    Вот на каком-то фолдере ты увидишь несоотвествие.
    Ответ написан
    Комментировать
  • Какие есть примеры построения большой организационной структуры?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Ох и амбиции. И что за перфекционизм в отношении Postgresql?

    Не знаю как автор посчитал миллиард. Это если все население планеты Земля составляет порядка 8 млрд.
    И что мы возьмем целую страну и инвентаризируем ее чтоб получить такое число?

    Для графовых БД существует не Postgresql а специальные БД типа Neo4j. Но еще до того как ты доберешся
    до графовых БД - задание может многократно измениться и выйдет что граф - рудимент. Так часто бывало.
    Вообще очень малое число задач требуют именно графов. Если табличка отражает семантику модели
    то можно и ее использовать. Только с условием не решать в ней задачи о рукопожатиях.

    По поводу того что в таблице что-то там кого-то убивает на 1 млрд. Я отвечу так что если вы строите OLTP
    систему то в ней этот миллиард никогда не будет использоваться целиком. Там будут горячие области.
    Их можно каким-то образом кешировать или алгоритмически пред-выбирать. Или брать key-value системы если ТЗ позволяет. Для них что миллиард что триллион все безразлично. Не забывайте только поднимать новые ноды и подкидывать диски в облачко. Или если речь идет
    о BigData к примеру то там есть свой техно-стек. Например Apache Spark / GraphX. Хотя я с модулем GraphX
    не работал ни разу. Но биг-дата запросы обычно никогда не запрашивают одного физ-лица или одну
    единицу тех-средства. Биг дате ставят задачу собрать всё про всех и отгрузить отчет в виде другой таблички
    или DataMart. И на это ей дадут пару часиков а то и день. Поэтому разговоры относительно убивания
    производительности - очень можно смягчить.

    Вообще такие сложные системы не обязаны строиться поверх Postgres или Neo или Spark. В их разработке
    вполне можно использовать целый pipeline из технологий где например Postgres будет просто одним
    из элементов. Или одним stage.
    Ответ написан
    3 комментария
  • Как сравнить данные двух mysql баз и внести изменения?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Импортируй первую базу во вторую. А потом вторую в первую.
    Ответ написан
    Комментировать
  • Как понять порядок столбцов в таблице в SQL (MS SQL)?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Ну любой API который работает с metadata из курсора - всегда выдаст тебе колонки именно в том порядке
    как и выдает фактический запрос. Для JDBC там была своя процедура https://www.baeldung.com/jdbc-database-metadata

    Да и даже еслиб ты не знал про метадату - можно просто выбрать запрос который выдает 1 строку и взать из него типы полей тоже через какой- то API (JDBC/ODBC).
    Ответ написан
    Комментировать
  • Kubernetes, десятки configmap и как это готовить?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Тут читается не техническая а организационная проблема.

    Не очень понятно но попробую дать совет.

    Вот ты говоришь что требуется в 10 конфигах сделать изменения.
    Какие? Они - взаимосвязаны? - Это должен быть 1 коммит в git.
    Эти все изменения должны быть просмотрены глазами хотя-бы несколькими людьми.
    Если цена изменения дорого стоит (инфраструктура) то по любому должна
    быть бригада девопсов. Они - страхуют друг друга от случайной ошибки.
    Если ты будешь брать на себя падения датацентров - то очень скоро
    станешь пациентом кардиолога. Бери коллег для подстраховки.

    Константы и зависимости - надо объявлять отдельно. Чтоб если меняется hostname
    или имя свойства - то это должно быть ровно одно изменение. Как поддержать
    константы в конфигах - я щас не помню но была куча всяких штук... толи Puppet
    толи Ansible вобщем поищи сам. Я думаю таких много конфигураторов.

    Когда несколько environments то на проекте создается просто несколько фолдеров типа
    /dev
    /qa
    /uat

    и в каждом фолдере лежит полностью сконфигурированная и оттестированная
    копия всех конфигов. Переключение между env тоже должны происходит
    изменением ровно 1 свойства.

    Если внутри конфигов есть некая базовая конфигурация которая очень похожа
    (прототип) то сделайте аналог COC (Convention Over Configuration). Пускай
    прототип будет всегда. А наследники dev, qa, uat будут просто изменять
    дельту. Пароль поменялся - в конфиге-наследнике - лежит ровно 1 строчка с паролем.
    Других строк - не надо. Потому что они наследуются от прототипа.

    Как технически реализовать COC - я не скажу. Это надо обсуждать. Я это делал
    на Java проектах но это как-бы идея "на подумать". На проектах у меня были
    *.properis файлы и эту конвенцию было реализовать несложно. С ЯМЛ ами я не делал.
    Ну думаю что это возможно. Почему нет?
    Ответ написан
    2 комментария
  • Как решить проблему ограничения кол-ва символов в SOLR?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Интересно. Вот тут пишут про похожий инцедент https://stackoverflow.com/questions/24019868/utf8-...
    Ответ написан
    Комментировать
  • Зачем использовать FileWriter?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Ну если открыть описание API то там достаточно четко описано.

    Object
     +- Writer (Abstract class for writing to character streams.)
         +- OutputStreamWriter (An OutputStreamWriter is a bridge 
              |                 from character streams to byte streams)
              +- FileWriter (Writes text to character files using a default buffer size.)


    Последний - буферизированный.
    Ответ написан
    6 комментариев
  • Как можно обновить файлы в папке без перезапуска docker compose?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Докер здесь непричем. Это проблема вашего прикладного софта. Софт видит любые папки через volumes.
    Да-да и изменения тоже видит. Тестируйте этот пункт. Все должно работать как и слокальным диском.
    Ответ написан
    23 комментария
  • "прикладной код Java" - это что?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    В тексте вопроса написано много чепухи. Java может использовать внешнюю память. Кажется еще
    в Java 8 для Apache Ignite (и других NoSQL систем) были попытки использовать неуправлямую
    память через ByteBuffer. История где-то об этом сохранилась я думаю.

    Начиная с JDK-14 (могу ошибаться) завезли Foreign Memory API который оперирует с памятью
    более продвинуто.

    По поводу
    в Java не надо следить за памятью

    - неправда. Следить за памятью надо всегда. Иногда это делает разработчик (для С/C++)
    а иногда это делает GC или умные механизмы borrow-checker (Rust).
    Если не следить то долго работающие процессы пожирают всю память ОС
    до тех пор пока не будут убиты через ОС OOM killer. Возможно под слежением
    имелись в виду накладные расходы на работу GC? Но эта проблема специфична
    только для приложений которые активно делают new и переживают хотя-бы одну
    эпоху. Кроме того в Java есть несколько разных GC которые просто обнуляют
    все тезисы например 2000х годов и обсуждать их надо уже совсем как другие
    алгоритмы которые имеют другие свойства. Грубо говоря знания по GC очень
    сильно устарели после G1, Shennandoh e.t.c. Нужно учить заново всё.

    прикладной код Java - заменить на “прикладной код движка Java”

    Это вообще невозможно прокомментировать т.к. идет жонглирование терминами без
    определений. Что такое движок в данном случае - непонятно?

    В любом случае тебе надо звать в студию этого загадочного Романа и не плодить свои домыслы.
    Ответ написан
    2 комментария
  • Как создать 2д мир?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Нет необходимости отслеживать состояние сразу всех 2х миллионов. В старых 2д играх слешерах 90х например уровни тоже были очень богатые на количество enemies но их не нужно было обрабатывать и хранить всех сразу. По сути игрок видел view-port размером с экран и игровому движку нужно было активировать рождение объектов-персонажей почти у границы экрана. Когда персонаж покидал экран - его можно было либо удалить либо поставить на паузу. Этим пользовались почти все движки и экономили ресурсы.

    Если речь идет допустим о клеточных автоматах - то там тоже есть свои оптимизации. Можно расчитывать эпохи параллельно используя опции параллелизма железа например. Или объединять близко стоящие кластеры клеток и обабатывать отдельно чтобы предотвратить расчет всего экрана. Тут нет предела совершенству. Можно брать такие индексы как Q-Tree/R-Tree для быстрого трекинга этих областей.

    В некоторых играх типа Age Of Empires или Cossacks можно было рассматривать в качестве единицы расчета не каждого пехотинца или всадника а целые фаланги. Этим пользовались особенно когда боевые
    единицы ходили в построении.

    Вобщем игровые движки - это не симуляторы физики. Это - скорее очень хитрая иллюзия. И талант геймразработчика как раз и состоит в том чтобы игроку казалось что он видит миллион объектов а с точки
    зрения игрового алгоритма - это будет просто один прямоугольник из целых чисел или каких-то других
    объектов.
    Ответ написан
    5 комментариев
  • Как называется технология объединения подключений?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Для сетевого оборудования был режим транка когда несколько сетевух объединялись в одно логическое устройство и пакеты раздавались по принципу четный-нечетный например. Но это очень low-level и очень жестко ограничивало и характеристики канала и сами железки. Я не конфигурил это никогда но знакомые сетевики делали.

    Идея объединять Wifi с проводным соединением мне непонятна. Что сделать со ошибками? Мы имеем по теории надежности более слабую схему где сильно зависит все от качества эфира например. Эфир вокруг Wifi всегда шумит ошибками и скорость плавает. Тоесть мы надежное кабельное устройство объединяем с крайне ненадежным. Что это будет? В какой части стека это можно вставить? IP? Кадры? Прикладной уровень?
    Как их чередовать?

    Я вспомниаю протокол SCTP. Он вроде бы создавался для таких двух-интерфейсных соединений.
    Но как он работает?
    Кто когда-то его использовал? Поделитесь информацией.
    Ответ написан
    Комментировать
  • Неполцноенное ООП в javascript и значение этого?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Тут нужно копнуть в историю и почитать для чего JavaScript созадавался. Какие цели и задачи перед ним ставились. Почитайте это интересно. И в части Lisp в браузерах - тоже.

    Что такое вообще ООП применительно к теории и к конкретному языку? На сегодняшний день не существует канонической реализации ООП. Грубо говоря ни один язык не может претендовать на трушное ООП. Хотя другие ООП (класса строго типизированных) просто вводят больше ограничений на компилляцию
    и рантайм запрещая на ходу менять тип объекта или внедрять в него новые методы и перегружать существующие.

    JavaScript является таким себе податливым пластилином который разрешает очень многое делать
    с объектами и именно это является объектом критики. Прототипирование вместо наследования и прочее.
    JavaScript насколько я знаю расширяет спецификацию и все таки вводит понятие класса. Ключевое
    слово есть. Это хорошо. Это его приближает к ООП и дает возможность больше проводить параллели с back-end например.

    Есть языковые надстройки (транспилляторы) типа type-script которые вводят некий повышенный уровень
    строгости по отношению к типам. Но Runtime насколько я понимаю по прежнему остается либеральным.

    Вообще тема чистоты ООП - это достаточно трольная тема особенно на собеседованиях. Теоретики до сих
    пор не могут посчитать сколько же свойств нужно для описания ООП. Там вроде как 3 свойства было или 4.
    До сих пор нед единого трактования термина инкапсуляция.

    Поэтому всех религоизных фанатиков ООП надо слать к чорту. А на собеседовании отвечать очень обтекаемо
    и с отсылкой на всяких Кентов Беков и Фаулеров и Дядек Бобов. Пускай они там друг с другом договоряться
    о терминологии а потом уж мы подтянемся.
    Ответ написан
    Комментировать
  • Как перенести образ Centos7 из готовой виртуалки hyper-v на WSL?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Задача имеет мало практического смысла. WSL создавался для Windows пользователей чтоб дать им хоть какую-то возможность тестировать и использовать Linux софт без особой нагрузки.

    И WSL работает на стеке docker, а hyper-v это насколько я понимаю полноценная виртуальная машина. Стеки технологий достаточно разные? Или я ошибаюсь?

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Тема хорошая. Только вот градус амбиций я-бы сбросил. Попробуй просто написать сокетное приложение
    которое передает события из точки А в точку Б. И придумай механизм персистенции. И балансировщик. И кластер. Да. правильно написал про Raft. Не только Raft. Еще есть Paxos используется в Cassandra. И централизованный ZooKeeper.

    Где почитать - я даже не знаю. Спектр технологий такой широкий. Тут и сети. И многозадачность. И хранение информации.

    Кстати Кафки в дефолтной комплектации почти не бывает. Каждый кастомер конфигурирует для себя регуляторы скорость-надежность. Влево-вправо. Понимаешь? Поэтому до того как "убивать" Кафку надо просто понять что любое ее нагрузочное тестирование просто ставит другие вопросы. А что собстенно вы ходите. Доставить опционально но быстро. Или с гарантией что месседж сохранился. Или с гарантией что сохранился в основной кластер и в реплику. Каждый кастомер еще для себя придумывает partitioning strategy что является очень важным аспектом скорости Kafka. Тоесть еще до бенчмарка нужно все эти вопросы проговорить. Иначе выйдет сравнительное тестирование "бульдога" и "носорога". И любая система которая будет быстрее Кафки на самом деле будет просто системой заточенной на более узкие условия. Это как узкий UDP может быть быстрее чем TCP но ... как говорил Василий Иванович есть один "нюанс".
    Ответ написан
    Комментировать
  • Как лучше оптимизировать вывод данных?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Как лучше реализовать логику получения данных. Получить все данные за один запрос, хранить их и на основе выбора пользователя, фильтровать и выводить нужные ему данные.

    Делай как тебе проще код писать. Наперед ни один архитектор не знает как лучше. Улучшение - это процесс итеративный. Но сначала тебе нужно поймать какой-то инцедент. Например performance issue. И уже начиная от этого улучшать.

    Пока у тебя такого инцедента нет - делай максимально простой код и это будет правильное решение.
    Ответ написан
    Комментировать
  • Имеет ли вес хеш сумма в юридической практике?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я-бы попросил переделать текст договора. На момент подписания мне должны быть ясны все реквизиты. Фамилии, условия, сумма и вдруг вы подкладываете какой-то непонятный хеш. Мы же не про хеши договаривались.

    Далее. Ты говоришь - в "случае чего" - доказать. Доказательство скорее всего будет происходить в суде. Суд призовет эксперта. А он будет рассматривать не какие-то хеши а как раз именно ваши чертежи и модели и прочее. Так как именно это будет звучать в главном вопросе.
    Ответ написан
    1 комментарий