• Как получить удалённый доступ к http контейнеру?

    @Drno
    Ну либо Вы выносите сервис на внешний IP.
    Либо используете VPN или mesh сеть - например Zerotier
    Ответ написан
    Комментировать
  • Как получить удалённый доступ к http контейнеру?

    Есть способ, который подходит только временно. Не для продакшена.
    С агентом Ngrok (обычно доступен в репозиториях) или его альтернативами:
    агент запускается локально и создает тоннель на локально работающий веб-сервер или другой сервис, работающий на определенном порту.
    Контейнер Докера должен пробросить порт приложения. Скажем, порт 3000.
    spoiler

    NAME:
      ngrok - tunnel local ports to public URLs and inspect traffic
    
    USAGE:
      ngrok [command] [flags]
    
    DESCRIPTION: 
      ngrok exposes local networked services behinds NATs and firewalls to the
      public internet over a secure tunnel. Share local websites, build/test
      webhook consumers and self-host personal services.
      Detailed help for each command is available with 'ngrok help <command>'.
      Open http://localhost:4040 for ngrok's web interface to inspect traffic.
    
    Author:
      ngrok - <support@ngrok.com>
    
    TERMS OF SERVICE: https://ngrok.com/tos
    
    EXAMPLES: 
      ngrok http 80                           # secure public URL for port 80 web server
      ngrok http --domain baz.ngrok.dev 8080  # port 8080 available at baz.ngrok.dev
      ngrok http foo.dev:80                   # tunnel to host:port instead of localhost
      ngrok http https://localhost            # expose a local https server
      ngrok tcp 22                            # tunnel arbitrary TCP traffic to port 22
      ngrok tls --domain=foo.com 443          # TLS traffic for foo.com to port 443
      ngrok start foo bar baz                 # start tunnels from the configuration file
    
    COMMANDS:
      api                            use ngrok agent as an api client
      completion                     generates shell completion code for bash or zsh
      config                         update or migrate ngrok's configuration file
      credits                        prints author and licensing information
      diagnose                       diagnose connection issues
      help                           Help about any command
      http                           start an HTTP tunnel
      service                        run and control an ngrok service on a target operating system
      start                          start tunnels by name from the configuration file
      tcp                            start a TCP tunnel
      tls                            start a TLS tunnel
      tunnel                         start a tunnel for use with a tunnel-group backend
      update                         update ngrok to the latest version
      version                        print the version string
    
    OPTIONS:
          --config strings    path to config files; they are merged if multiple
      -h, --help              help for ngrok
          --metadata string   opaque user-defined metadata for the tunnel session
      -v, --version           version for ngrok

    Ответ написан
    Комментировать
  • Возможно ли соединить работающий java код и так же работающий скрипт python?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Самая простая интеграция - это pipe в Unix. Этому методу 100 лет в обед но обычно
    разработчики не помнят о нем.

    java app.jar | python3 app.py

    Из недостатков - это в одну сторону работает. Как MQ.

    Если запускается джоб на java который передает информацию к python-job то можно вызвать через
    ProcessBuilder. Здесь можно проверить код возврата и принять решение о том правильно
    ли Python отработал. Из недостатков - запуск процесса - не очень быстрое событие поэтому
    на высокую частоту не стоит расчитывать.

    Если взаимодействие - более быстрое и сложное типа RPC то тогда java может быть например REST
    клиентом а python - сервером.
    Ответ написан
    Комментировать
  • Возможно ли соединить работающий java код и так же работающий скрипт python?

    Vindicar
    @Vindicar
    RTFM!
    В принципе - конечно, возможно.
    Если один из скриптов запускает другой, через стандартный ввод/вывод.
    Если работаешь под Linux - через unix-сокет.
    Можно организовать общую область памяти через отображение файла на память (но это рискованный трюк, тут лучше использовать как можно более примитивные структуры данных).
    Ну или наиболее прямолинейное (но, возможно, чуточку более медленное) решение - через обычный сетевой сокет.

    Во всех случаях тебе придётся как-то сериализовывать свои данные на стороне отправителя, и десериализовывать на стороне получателя.
    Ответ написан
    1 комментарий
  • Вывести из БД на страницу изображение base64?

    @KingstonKMS
    Может так?
    Ответ написан
    Комментировать
  • Как удалить потоки в java?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    Никак - объекты, которые вышли из зоны видимости, однажды будут удалены GC.
    Когда это случится - точно не известно.
    Ответ написан
    5 комментариев
  • Годная книга по Java Core для профессионалов?

    Vamp
    @Vamp
    class loader, JMM, GC

    Это не core, а продвинутые штуки. Их необязательно знать, чтобы программировать на java.

    Если хотите углубиться, то маст хэв - это многопоточность. Лучшая книга на эту тему - Java Concurrency in Practice. Читайте на английском, так как русский перевод ужасен.

    Далее Effective Java, Джошуа Блоха. Классика. Нельзя считать себя java профессионалом, не прочитав эту кингу.

    Ну и JLS. Это уже высший пилотаж. Очень сложное чтиво.

    Ещё посоветую смотреть записи докладов с конференций jpoint, jug, joker. Довольно доходчиво объясняют сложные вещи.
    Ответ написан
    1 комментарий
  • Почему цикл for не работает?

    ZhenyaMak
    @ZhenyaMak
    Писать качественный софт? Пфф, это не для меня.
    Потому что i никогда не равен kdn_max??
    Ответ написан
    2 комментария
  • Почему цикл for не работает?

    Lexxtor
    @Lexxtor
    PHP, Yii2, Android
    for(int i = 0; i == kdn_max; i++)
    Значит выполнять цикл пока i == kdn_max а это условие не выпоолняется.
    Наверно ты имел ввиду
    for(int i = 0; i <= kdn_max; i+=0.1)
    Ответ написан
    1 комментарий
  • Как создать exe из jar файла javafx приложения?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    С помощью исходников и Graalvm компиллятора можно собрать выполнимый файл для Java приложений.
    Но надо внимательно читать про стек технологий которые использованы в самом приложении.
    Graal компиллятор не гарантирует поддержку всех модулей Java. Для каждого конкретного случая
    надо смотреть и тестировать на месте.

    https://www.graalvm.org/

    С launch4j я не работал. Я подозреваю что это не компиллятор а просто упаковщик который собирает
    обертку для Java Runtime и нужного артефакта.

    Судя по доке есть опции вывода детальной информации по запуску. Смотрите там https://launch4j.sourceforge.net/docs.html

    --l4j-debug-all
    Ответ написан
    Комментировать
  • Возможно ли автоматически конвертировать большой проект с Java на C++?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    В C++ и Java разная идиоматика, поэтому если перевести с одного языка на другой не изменяя ничего в программе, результат получится хуже. Если для конвертации использовать даже самый совершенный из существующих на сегодняшний день ИИ, получится вовсе запредельный хлам.
    Ответ написан
    2 комментария
  • Есть ли SDK у метамаск?

    @402d
    начинал с бейсика на УКНЦ в 1988
    Вот прямо сейчас у себя в проекте скрешиваю java & kotlin.
    Пришлось форкнуть опенсорс на котлине из-за того, что он был слишком правильным.
    Исходная либа кидает в нескольких местах исключения на неправильные исходные (полученные от реального перефирийного устройства) данные.

    build.gradle.kts  проекта пришлось дополнить 
    plugins {
        id("com.android.application") version "8.2.1" apply false
        id("org.jetbrains.kotlin.android") version "1.9.10" apply false
        id("org.jetbrains.kotlin.jvm") version "1.9.0" apply false
    }
    
    в такой же файл приложения
    plugins {
        id("com.android.application")
        id("org.jetbrains.kotlin.android")
    }
    android {
       ....
        kotlinOptions {
            jvmTarget = "1.8"
        }
      .....
    }
    dependencies {
        implementation("androidx.core:core-ktx:1.12.0")
    }


    либа, которую я форкал изначально предполагала взаимодействие из java
    по коду раскиданы собачка JvmOverloads , JvmField, JvmStatic, set:JvmSynthetic
    Ответ написан
    Комментировать
  • Есть ли SDK у метамаск?

    vabka
    @vabka
    Токсичный шарпист
    Если эта библиотека сделана на kotlin jvm, то можно сделать так:
    https://stackoverflow.com/questions/59315911/how-t...

    Добавляешь в зависимости org.jetbrains.kotlin и дальше добавляешь эту библиотеку так, будто бы это была обычная java-библиотека из maven или откуда там.
    Ответ написан
    3 комментария
  • В поиске первой работы програмистом, предлагают бесплатную стажировку. Соглашаться?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Народ тут накинул на вентилятор, попробую раскидать по фактам: Варианта на самом деле 3, но мы сведем к очевидным 2:
    1) Вы ищете первую работу в стеке, из опыта у вас приложение ТуДуЛист и Хеловорлд.
    Такое предложение как минимум подарок, как максимум большая удача. Подарок если вам просто дадут поколупаться в серьезном проекте и покажут как работает команда в целом. Большая удача если при этом у вас будет вменяемый ментор и ревьювер, а кода писать вам дадут много. Для конторы это скорее всего в минус, но если у вас все пойдет норм, то к концу срока вы в любом случае уже будете тянуть на джуна. Даже если после этого вы расстанетесь, опыт штука которая навсегда останется с тобой, в крайнем случае вы в первый месяц можете спокойно свалить, если видите что вам там ничего не светит в плане роста. Короче кейс - "надо брать".

    2) Вы уже работали со стеком, знаете как работать с основными инструментами и работали с проектами посложнее чем в первом варианте.
    Если еще и в конторе с какой-никакой командой, то вообще другой коленкор. В данном случае спокойно отказывайтесь, если вам жалко 3 месяца нахаляву работать. Опять же, неплохо было бы хотя бы узнать что в эти 3 месяца вы будете делать забесплатно, возможно ли перейти сразу к фазе 2 в случае вашей очевидной компетенции и т.д., короче есть смысл разговаривать ртом. Короче кейс - "надо поговорить".

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Если использовать такие БД как DymanoDb, CosmosDb, Cassandra или кеш Redis, то там сразу
    можно создавать записть с отметкой TTL и указывать сколько времени запись будет актуальна.
    Впоследствии эту отметку можно продлить или сделать живщуей вечно.

    По поводу реляционок типа Postgres.

    В хранении ненужных записей я не вижу проблемы до тех пор пока вы в состоянии такие
    токены идентифицировать и почистить отдельно с помощью джоба который запускается
    раз в сутки например и просто удяляет их по признаку например "состояние ожидания
    ввода числа из СМС". Трекайте это состояние и все будет ОК.
    Ответ написан
    Комментировать
  • В Windows tomcat подключается к MySQL без проблем. Когда переношу проект на удаленный сервер, под управлением Ubuntu - не работает, почему?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    "База работает" - это значит, что вы на Убунте можете сделать mysql -h 127.0.0.1 -u root -p - и вас пустит в консоль с паролем root?

    Вообще, так как вы, уже не делают. "Локально работает" сто лет как означает, что разработчик запускает тот же самый docker-compose.yaml на своём компе - вот тогда имеет смысл говорить о работоспособности. А когда разные ОС, разные версии библиотек и так далее - это баловство. Причина может быть в ста местах.
    Ответ написан
    2 комментария
  • Как сказать «ничего не делаем» используя условные операторы?

    @nApoBo3
    Continue

    Но вообще считается "дурным" тоном использовать не "основное" поведение внутри if.
    Ответ написан
    Комментировать
  • По какому принципу работает очистка памяти в String Pool?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Дурным тоном считается создавать работу для сборщика мусора, как бы быстр он ни был, его работа потребляет ресурсы, которые не безграничны и стоят денег.
    Ответ написан
    Комментировать
  • Автоматическая генерация классов на основе других классов?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Если язык совсем не важен, то есть языки более пригодные для мета-программирования, например в Scala есть макросы, с помощью которых можно такое реализовать, а в Clojure и того проще. Если же ориентироваться на указанные в вопросе теги, то в Java можно написать плагин компилятора, который в процессе компиляции может с помощью Compiler API разбирать исходный код в AST, анализировать полученное дерево и на его основе генерировать новый исходный код.
    Ответ написан
    Комментировать