Ответы пользователя по тегу Java
  • Почему не отображается верно кодировка?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Кратко, у вас кодировка входного потока не указана. Так как внутри все в юникоде, то прсто при чтении потока нужно ему указать кодировку, в которой этот поток лежит. Тоже самое и при записи, смотрите на кодировку. Все это хорошо описано в статье "java русские буквы и не только". Вот прямо так в гугл и вгоняйте. Если чего непонятно будет, пишите в комментариях.
    Ответ написан
  • Как предотвратить зависание linux сервера при нехватке озу/цпу?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Установите лимиты, пусть процессы пистреливаются системой, а уже по core-файлам будете разбираться что происходит. Лишь бы процессы в swap не уходили.. Ну и профильнуть ваши приложения не помешает, и поставьте мониторинг какой нибудь, типа collectd + influxdb + grafana
    Ответ написан
    Комментировать
  • Как конвертировать в Java файл в другую кодировку?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Например:
    String res = new String( src.getBytes("ISO-8859-1"),"Cp1251");
    Ответ написан
    Комментировать
  • Можно ли сделать выборку с таблицы, которое создавалось в другом приложении?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Конечно можно! Более того, очень часто так и делают, что конечно не очень правильно.
    1. Необходимо следить за кешированием и подразумевать, что оно может быть в любом приложении, иначе можно получить невалидные данные.
    2. Лучше писать в базу только из какого-то одного приложения, остальные читают, иначе П1.
    3. Вообще-то так делать не очень хорошо, из-за возможности потери консистентности данных, если несколько приложений пишут одновременно.
    4. очень трудно поддерживать изменения в коде и в структуре базы, когда изменения в одном приложении автоматически сказываются на всех остальных.

    Как правильней делать?
    Для данных пишется враппер(приложегние) типа веб-сервиса, через который все и работают с базой и ее данными! Или само приложение реализует вебсервис. json - рулит.
    Ответ написан
    Комментировать
  • Где можно хранить значения на момент роботы приложения и работать с ними?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Все сильно зависит от приложения, можно в самом приложении в синглтоне, можно в базу писать, можно в memcached, redis.... В общем, самое простое - синглтон + syncronize...
    Ответ написан
    Комментировать
  • Не могу осилить Spring что делать как к нему подойти??

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Начать с изучения Dependency Injection (DI). Для этого взять и почитать про эту технику. Ну и в добавок прочитать про Reflections. Дополнительно дполсмотреть что такое IoC. В рамках факультатива сломать голову Aspect Progtramming, но именно как факультатив...

    Собственно весь фреймворк и основан на DI и IoC. Можно даже свое написать, только лет через 5 тотже спринг и получится :-)

    https://ru.wikipedia.org/wiki/%D0%92%D0%BD%D0%B5%D...
    Ответ написан
    Комментировать
  • Существующие способы клиент-серверного общения на java?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Ответ написан
    Комментировать
  • Есть ли хорошие библиотеки для потокового видео в реальном времени?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    С java, увы, я бы это не делал, как минимум на стороне сервера.. Да и клиента тоже :-( очень плохая поддержка кодеков и протоколов. Есть конечно серверы red5 и wowsa. Но первый глючный, а второй коммерческий. Есть jni -интерфейсы к ffmpeg и gstreamer...но...
    Лучше взять ffmpeg, или live555, или gstreamer (мне более всего симпатичен) и использовать их нативно.
    Что касается задержки в 1-2 секунды, она уменьшается уменьшением прелоад буфера и подбором параметров кодирования... Ну и посмотрите на webrtc, opus и vp8/9...
    PS. Сейчас сам разбираюсь в этой теме (WebRTS). Вот есть сервер www.kurento.org Там есть клиент на Java, а также http5, javascript.
    Ответ написан
    Комментировать
  • В чем отличие сервисной шины предприятия(ESB) от брокеров сообщений (например RabbitMQ)?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Простым языком. ESB помогает связать кучу разрозненных приложений в единое целое. Например. Есть старый ftp, email серверы и новое приложение j2ee. Нужно, по приходу файла на ftp сообщить об этом по email и обработав, залить через REST в j2ee приложение. ESB будет сканировать папку на ftp, сообщит об этом по email, отпарсит файло и пульнет результат по http в j2ee.
    В нутрях у ESB обычно прячется MQ, но не всегда.

    MQ, собственно, занимается умной доставкой сообщений, и только, предоставляя пару тройку API для этого.

    Другими словами, ESB не подразумевает внедрения нового кода в старые приложения, MQ требует использовать во всех приложениях совместимый API.
    Ответ написан
    6 комментариев
  • Нужно ли использовать префиксы к именам переменных и классов?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    С введением умных IDE надобность отпадает абсолютно.
    А моду на это ввел мелкомягкий гигант со своей MFC. когда и переменные и функции и классы, по идее, должны были отражать всё что ни попади, вот и рождались numCfFlagForMyCoolBoolShitVariableToMemberAssHole.
    Мне лично практически никогда не пригождалось.
    Ответ написан
    Комментировать
  • JSF-реальный фрейворк или набор спецификаций?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Jsf стандарт, у которого, как обычно есть куча реализаций.
    richfaces.jboss.org
    https://myfaces.apache.org
    Далее везде
    Ответ написан
    Комментировать
  • Как организовать последовательное выполнение одинаковых запросов для пользователя?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Вариантов несколько: первый - блокировками типа мьютекса, второй очередями с флагом.
    Но, вообще-то это должна сама база данных разруливать своими блокировками и транзакицями!
    запустили транзакцию, делаем работу, закоммитили. если данные внутри транзакции стали невалидные, то база откатит транзакцию, а нам вернет ошибку.
    Ответ написан
    Комментировать
  • Как лучше получить данные удаленно?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Ну, почему же нет, есть. Вариантов масса:
    - поставить на сервер mongodb, elasticsearch или что-то подобное и работать через REST.
    - написать свой REST-сервер, пишется легко на любом языке, от явы до bash.
    - ну и просто изучить эту нехитрую REST-технологию habrahabr.ru/post/38730
    Ответ написан
    Комментировать
  • Можно ли использовать БД внутри программы (java) как её модуль?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    А еще есть apache derby. Достаточно мощная sql-база данных (инмемори, клиент/сервер, стандалоне, коча плюшек), очень похожа на DB2 от фирмы интернациональных бизнесмашин, собственно это ее разработка, кажется, и есть. Как бонус, она присутствует в полном объеме в JDK (тадам!). db.apache.org/derby/quick_start.html оригинал и JDK www.oracle.com/technetwork/java/javadb/overview/in...
    Ответ написан
    Комментировать
  • Какой framework выбрать для написания Web Service?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Посмею порекомендовать не связываться с xml, xsd, xslt, ws, и всё, что с этим связано. Это дорога в ад, кромешный. Вам будет казаться, что вы открыли кучу красивых и приятных технологий, но открыли то вы ящик Пандоры, пропахший нафталином 20-и летней давности.
    И если какой тичер говорит, что это кул - смейтесь ему в лицо.

    В мире давно все применяют более легковесные технологии типа json, stomp, amqp, rest и прочее. Передавайте данные в json через amqp, a обновляйте сервисами на основе rest по http. И для этого не нужно тащить мегабайтные фреймворки, делать преобразования, выписывать маппинги и отлаживаться с логарифмической линейкой. Это будет работать всегда и везде в связке с любым клиентом и языком программирования.

    PS. работал и с apache axis и с servise mix и с кучей другого разного под xml. Ну, посмотрите на apache cxf, но по моему все из одной бочки нафталина.. habrahabr.ru/post/137543
    PPS. И да, почитайте комментарии к статье, они рулят: " зачем писать километровый xml, чтобы просто вернуть дату и время", это так, лирика...
    Ответ написан
    6 комментариев
  • Почему на Java не разрабатывают операционные системы?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Всеё банально просто. Java компилируется в байткод, а не в ассемблер. Байткод интерпретируется виртуальной машиной JVM, которая при необходимости делает компиляцию в нативный код процессора (технология JIT - Just-in-time compilation).
    Другими словами, для того чтобы получить нативный код нужно запустить байткод внутри JVM. Именно поэтому никто не пришет на java драйверов и прочей низкоуровневой хрени. С другой стороны, чтобы эту хрень писать на java, нужно чтобы было одно из двух условий:
    1) либо процессор напрямую поддерживал спецификацию JVM (со всем барахлом типа GC, memory allocation^ resource management)
    2) либо операционная система поддрерживала в ядре спецификацию JVM (с тем же самым барахлом)

    Ну и не нужно говорить, что язык барахло, если на нем нельзя писать драйверы и секции для MMU. Есть еще десятка два языков, которые это не поддерживают, например все X.NET или erlang^ python и т.д.
    Java для прикладного программирования, а C/C++/D/ASM и прочее - для машинного.
    Ответ написан
    Комментировать
  • Есть ли сайт с документацией по java на русском?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Есть www.javable.com
    Куча статей и документации, плюс бесплатный учебник (нужна резистрация).
    Даже форум есть, то неживой... я по привычке туда раз в месяц захожу, но новых вопросов больше нет.
    Сам сайт увы, уже не развивается, заглох примерно 3 года назад :-(
    Раньше там кипела жизнь, статьи каждую неделю, здоровенное сообщество и прочее, ностальгия одним словом...
    Заходите, черпайте и впитывайте.
    Ответ написан
    Комментировать
  • Как настроить интеграцию c email (выгрузка и загрузка данных) на Java?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Ну, первое, нужен простой почтовик типа exim/postfix.
    1) На приход писем:
    В почтовике делаем алиас на pipe, который запускает программу и передает ей полный текст сообщения. Алиас естественно принадлежит ящику-получателю.
    В экзиме это делается так
    www.exim.org/exim-html-current/doc/html/spec_html/...
    Программа считывает письмо или со стандартного ввода/вывода или берет из файла, здесь как настроишь. Программа может быть написана и на яве, которая коннектится к приложению и пушит туда почту!

    2) На отправку писем из приложения - используем jakarta.commons.email, просто удобно и доступно - commons.apache.org/proper/commons-email/userguide.html

    PS. И да, в почтовике можно сделать редирект на пайп хоть по части адреса mycoollist-XXXXX, хоть по телу письма или заголовка "[thread-d-XXXXXXX]", как почтовик настроите, так и будет.
    Ответ написан
  • Как получить значение поля в классе через название поля?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Ну, как-то через java reflection
    // Одно поле
    Class c = obj.getClass(); 
    Field nameField = c.getField("name");
    // Или все поля
    Class c = obj.getClass(); 
    Field[] publicFields = c.getFields(); 
    for (Field field : publicFields) { 
        Class fieldType = field.getType(); 
        System.out.println("Имя: " + field.getName()); 
        System.out.println("Тип: " + fieldType.getName()); 
    }

    Почитать поболее здесь www.quizful.net/post/java-reflection-api например.
    Ответ написан
    Комментировать
  • Какие технологии используют для математич. обработки информации, получ. от пользователя на сервере?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Ну так яву и изучайте, или питон в качестве сервера. На мой взгляд питон даже более предпочтителен. У него много всяких хороших библиотек типа numpy и scipy (в качествте сильной математики). Правда ява в этом отношении не хуже, но "многословней".
    В качестве приема/отправки используйте обыкновенный web-сервер на питоне или яве. Для правильного использования подойдет какая-нибудь реализация техники comet. Вот статья на тему - javascript.ru/ajax/comet/server-patterns

    А ввобще-то для вашей задачи на стороне сервера подойдет практически всё, начиная от erlang и заканчивая go с nodejs. Даже php будет к месту (наверное).
    Ответ написан
    Комментировать