Задать вопрос
  • Компьютер зависает намертво, из-за чего может быть?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Лето. Жара. Техника перегревается. Посмотри какие кулеры покрыты пылью уже. Или может остановились.
    Ответ написан
  • Существуют ли нейросети для воксельных 3D-объектов?

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

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

    В класическом варианте Радон описан как одномерная функция y=f(x) но для твоего варианта
    надо просто дать больше измерений на вход (фоток). И камеру крутить тебе надо не
    по кругу как в томографе а со всех всевозможных углов по Эйлеру. На выходе будут вещественные
    вокселы. (они будут все завсечены но с разной интенсивностью). Какие-то сильнее и какие-то слабее.
    И если прогнать их через трешолд то получится вполне себе точная 3Д модель.
    Ответ написан
  • Как исправить ошибку при установке Open JDK 17 Java на Ubuntu 22?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Ubuntu 22 уже устарела. Релизнулся 24 LTS поэтому можно переходить.
    По поводу archive.ubuntu.com. Есть много причин почему у вас нет доступа
    в том числе и политические причины. Но попробуйте найти региональное зеркало
    этого репозитария и прописать его хотя-бы в /etc/hosts чтобы доступ шел туда.
    Протокол - не секретный. Без https. Тоесть никакой проверки домена не будет.
    Ответ написан
  • Oracle RAC как правильно перезагружать?

    mayton2019
    @mayton2019
    Bigdata Engineer
    $ srvctl stop database
    ...
    Ответ написан
    Комментировать
  • Как найти решение для задачи?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Мы ищем функцию select_camera следующего вида. (На неком подобии Python/Scala)

    case class Range(begin:Double,end:Double)
    
    case class CameraProps(distance_range : Range, luminosity_range : Range) 
    
    def select_camera(distance : Double, luminosity : Double, cams : List[CameraProps]) : List[Int] = {
      ....
    }


    По смыслу мы можем найти не одну а много камер, удовлетворяющих условию. Тоесть результат
    это - список камер.

    По реализации - это похоже на поиск точки, которая попадает в прямоугольники.

    Быстрые алгоритмы и структура это QuadTree-s, R-Trees (Antonin Guttman).
    И те и другие - подходят. Они по сути - вспомогательные структуры для ускорения поиска камер.

    При условии что точка будет двигаться а камеры стоят стационарно а искать надо много.

    Если двигаются и камеры и точки - то тогда надо искать другие структуры данных.
    Ответ написан
    Комментировать
  • Почему некоторые программисты на GO работают с бд на голом SQL без ORM?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Скорее всего - специфика Go-задач.

    Дело в том что область применения ORM обычно ограничивается CRUD приложениями.
    И если мы заходим в область утилит для ETL и BigData то там оказывается что ORM вообще не нужен.
    Там работают во первых диалекты SQL, (Spark-SQL, Hive-SQL, MS U-SQL). Во вторых дизайн
    entities очень громоздкий (по 500-1000 колонок). И эти колонки еще и двигаются во времени
    следуя schema evolution на ходу. Тоесть добавляя новые колонки и расширяя типы от узких к широким.
    Представить себе ORM в таких условиях просто невозможно. Кроме того ORM кеширует объекты
    в коллекциях языка а это, сами понимаете не вопрос Bigdata и аналитики.

    Вообще ORM - это пугало, которым пугают на собеседованиях новичков. Для java-junior знание ORM - уже
    приравнивается к знанию сопромата и философии Конфуция. Знаешь ORM - получи должность
    в банке и сиди себе с умным видом на митинге.

    С моей точки зрения ORM ограничивает сильно в оптимизации запросов. Хинт уже так просто не поставить.

    Кроме ORM (Object-Relational-Mapping) есть и другая философия. Не от объектов к реляциям а наоборот.
    От базе к объектам. (Фреймворк MyBatis например). В нем причинно-следственная связь перевернута.
    Сначала таблицы и хранимые процедуры существовали в БД и уже потом, a posteriori, разработчик
    описывает для них мапппинги в обратном направлении.

    Существует также миф о том что ORM позволяет лихо прыгать по разным базам. Ни разу я для себя этот
    миф не подтвердил. Чем крупнее система - тем плотнее она сидит на лицензии от DBMS, и тем глубже
    она использует фичи этой DBMS (язык хранимых процедур особые режимы таблиц и партишенинга)
    и совершенно нет никакой надежды что миграция произойдет в один мышко-клик. Скорее наоборот.
    Миграция - это боль и слёзы и крупные платежи сектору разработки и облачным провайдерам.
    Баги и просадки перформанса в самых неожиданных местах БД.

    Хотя для вашего pet-project ORM вполне удобен особенно когда вы тестируете например веб-приложуху
    на H2 в перспективе с переходом на Postgres.
    Ответ написан
    Комментировать
  • Можно ли программно отключить HDD?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Купи внешний карман для HDD 3.5. Для backups, как это сделал я.
    Там будет кнопка на панели которой можно включать и выключать диск.
    Беря во внимание что backup нормальные люди делают раз в неделю -
    тебе незачем держать его включенным постоянно.
    Ответ написан
    Комментировать
  • Как экспортировать приложение с базой данных postgreSql?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Лучше всего - создать образ VirtualBox или Docker. Это ускорит процесс демонстрации приложения.
    Ответ написан
    Комментировать
  • Почему мерцает лампа при включении в ИБП?

    mayton2019
    @mayton2019
    Bigdata Engineer
    ИБП бывают разные по качеству. Некоторые выдают чистый синус на выходе. Некоторые - такую
    дискретную ломаную кривую. Как после квантизации. Возможно ты подсадил ИБП и ему стало еще хуже.
    Вообще я-бы на твоем месте не включал 95 Вт. Купи светодионое устройство. В люменах будет тоже
    самое а по мощности слабее.
    Ответ написан
  • Как правильно залить БД?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Найди дубликаты в wp_actionscheduler_logs по ключу log_id и поудаляй их.
    Ответ написан
    9 комментариев
  • Как скачивать медиа из инстаграма по ссылке пользователя, чтобы инстаграм не блокировал запросы?

    mayton2019
    @mayton2019
    Bigdata Engineer
    С помощью приложения instaloader мне удавалось скачивать какие-то коллекции фоток.
    После этого - не пробовал.
    Посмотри как он реализован. Есть в гитхабе сорцы. Может не сильно сложно.
    Ответ написан
    Комментировать
  • Зачем нужны DTO, когда есть типы и интерфейсы в языках программирования?

    mayton2019
    @mayton2019
    Bigdata Engineer
    DTO объекты часто пересекают границы Языков (Java/JavaScript/GWT) и сетевых протоколов (Rest/Graphql/SOAP/Avro).

    И эти объекты могут нести на себе семантику только чистых данных. Вы не сможете через сеть
    из Java в C# например передать интерфейс или объект с методами.

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Твоя задача может быть решена конфигурацией consumers вот как тут пишут https://www.baeldung.com/kafka-send-data-partition

    Но мне кажется что тебе выгоднее решать такое разделением на топики а не на партишены.
    Партишены - все таки больше для affinity, баланса нагрузки чем для разделения на бизнес-кейсы.
    Ответ написан
    2 комментария
  • Как найти фантомный бинарник Caddy, который мне не нужен?

    mayton2019
    @mayton2019
    Bigdata Engineer
    У меня lsof показывает среди прочих файлов и сам бинарник

    $ lsof -p PID
    Ответ написан
    Комментировать
  • Как сделать запрос на поиск 6 значений в одной таблице и 1 значения в другой, имеется не оптимизированный запрос с ILIKE?

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

    Про триграммы тут уже напихали. Нечего добавить.

    Есть идея попробовать следующее. Можно конкатенировать все искомые поля в одно большое
    виртуальное поле и построить по нему реальный триграммный индекс. Здесь мы сэкономим на количестве.
    Вместо 5 индексов сделаем один и результат будет тот-же самый. Нам по сути безразлично
    в каком поле найдена строка. Важно что просто была дизьюнкция предикатов.

    CREATE TABLE messages(
        .......
        all_fields text GENERATED ALWAYS AS (CONCAT(sender,' ',message,' ',receiver,' ',sim))
    );
    
    CREATE EXTENSION IF NOT EXISTS pg_trgm;
    
    CREATE INDEX messages_tr_idx ON messages USING GIN (all_fields gin_trgm_ops);


    Точно так-же поступить с табличкой user_apps.

    По поводу этого ограничителя.

    ....
    order by "messageId" desc 
    limit 51 offset 0

    Судя по всему - это дизайн запроса для показа на UI. Обычно так делают чтобы
    показать на формочке веба или в приложении.

    Limit и order - это плохая комбинация. Если смысл сортировки по messageId - это показать
    последние (оперативные) сообщения то я-бы заменил это на поиск по партишену сегодняшнего
    дня
    (или опер-дня) если можно так сказать.

    Разделение данных на оперативные и исторические ускорит поиск многократно. И если
    допустии опер-день занимает 500 тыс строк а исторические данные - 13 млн. То вы
    сразу получаете вместо 80 секунд ускорение ... эээ в сколько раз? 500 000/13 000 000 = x/80
    это будет примерно 3 секунды. Вот. Это если предполагать линейную зависимость от объема.
    Ответ написан
    Комментировать
  • Нынешние реалии стандарта Java?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Каковы нынешние реалии стандарта языка? Используются ли в каких-то моментах фишки новых версий (если это вообще возможно)? Ибо судя по всем статьям, практически большинство до сих пор сидит на восьмёрке.

    Да. Это отчасти правда. Основные заказчики Java разработки - это банки. А они не любят миграции версий
    без какой-то особой причины. Я работал с тремя банками и я могу сказать что большая часть кода - это
    легаси. И совершенно нет никакой надежды что будет bump версии языка. Product owner-ы в таком случае
    задают вопрос - "а что мы с этого будем иметь". И обычно для банка - ничего особенного. В некоторых
    случаях (использование CORBA или JAXb, com.sun.*) повышение версии чревато проблемами. Что-то
    может резко отвалиться в новой версии.

    Самые интересные новшества после JDK8 с моей точки зрения были не в языке а в других слоях JRE/JDK (GC, FFI, vectorization, unmanaged memory). Но вы еще попробуйте эти новшества продать бизнесу. Успехов вобщем.
    На какой версии лучше всего практиковаться в написании кода, да и обучаться в целом?

    Да. Ты можешь брать самую последнюю LTS-версию. Брать preview нет никакого смысла. Очень
    сомнительно что для учебы тебе кто-то даст в туториалах экспериментальные фичи. Скорее наоборот.

    Есть ли вообще предпосылки на переход большей части энтерпрайза в ближайшем будущем (ближе к 2030) на более современную версию? Почему тезис о дорогом переходе не нивелируется тем, что за 10 лет со времён восьмёрки завезли достаточно "контента", например, новый синт.сахар и обновленный GC?

    Никакого глобального перехода на самом деле нет. Потому что нет такой проблемы.
    По сути проблемой например для Java 21 может стать "end of extended support" а он условно отмечен
    например на 2031 год. Вы еще попробуйте доживите до этого года и попробуйте сидеть на одном проекте
    столько лет.

    Java может стать COBOL-ом XXI столетия. Но у нее будет даже меньше проблем чем у Кобола, потому что
    байткод и стек-машина имеет больший потенциал. Тоесть пока жива концепция байт-кода и пока существуют
    процессоры Фон-Нейман архитектуры, можно сказать что Java неубиваема.

    Вообще не стоит вам сильно циклиться только на языке. Параллельно существуют Scala, Kotlin, Groovy, Clojure
    и их само существование делает много альтернатив. Одна JVM - бесконечное число языков.
    Ответ написан
    3 комментария
  • Через какую программу перевести текст цветной с таблицами в электронный вид (Книга Английского Соловов В.Н)?

    mayton2019
    @mayton2019
    Bigdata Engineer
    То что в таблицах - не надо переводить. Перевод будет безсмысленным т.к. речь идет о
    тех формах английского, которые без контекста не существуют или не существуют в других
    языках. Это shall/will, will have to.

    Просто выучи как есть.
    Ответ написан
    Комментировать
  • Увидит ли сисадмин, чем я занимаюсь, если подключиться через Anydesk?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Корпоративный ПК полностью принадлежит корпорации. И все что вы там делаете - фотографируется,
    кей-логгируется и снифферится. И потом хранится в BigData.

    Я советую вам не играть в кошки-мышки с безопасником. Вы все равно проиграете.

    Используйте личный ноутбук для личных дел. И лучше выходить в коридор корпорации или на улицу
    чтобы не было к вам лишних вопросов.
    Ответ написан
    Комментировать