ru_java, posts by tag: java - LiveJournal (original) (raw)
Программа для преобразования xml в json, версия 2023-07-31
August 18th, 2018
Привет!
Вот программа (swing/java11).
Вы можете скачать её по следующей ссылке:
https://github.com/javadev/underscore-java/releases/download/test/xmltojson.jar
Чтобы запустить программу, выполните следующие действия:
- Скачайте файл по указанной ссылке.
- Откройте командную строку и выполните команду: java -jar xmltojson.jar
September 20th, 2017
JDK 9 это вещь которая начнет причинять разработчику боль поскольку совместимость уже не 100% с JDK 8, ну а на фоне планов Оракла с частыми релизами новых версий, вероятно скоро можно будет испытать боль которая лет 15 назад была известна разработчикам мобильных приложений под J2ME, что бы как то ыкрутиться был разработан JEP-238 поддержанный в JDK 9 который позволяет делать JAR файлы прозрачно содержащие варианты для разных версий и JVM будет выбирать подходящие
(скорее всего это всё приведет нас в конце концов в ад, но до этого надо еще дожить)
. Я вот подумал можно ли при таком прикрутить подход который юзал 15 лет назад для мобил, когда мне не хотелось дуплицировать код для поддержки как бы стандартных APi разных вендоров и сделал пример maven проекта который собирает мультиверсионный JAR в мавене с применением препроцессинга, я не призываю такое юзать, это чисто такой лайфак и может кому будет интересно взглянуть
https://github.com/raydac/jep-238-jcp-example
Как сделать неблокирующую загрузку из базы?
October 7th, 2015
На всякий случай опишу текущую ситуацию:
Есть web сервер, сделанный из Tomcat+Tapestry+Hibernate+Postgresql+еще всякое до кучи.
И вот приходит пользователь и говорит: отдай мне страничку.
А чтобы страничку нарисовать, надо слазить за данными в postgres и еще другие удаленные места.
Допустим, для страницы нужны данные d1, d2, d3 из внешних источников s1, s2, s3 (один из которых postgres)
Как это выглядит с точки зрения потоков:
Для обработки пользовательского запроса tomcat достает из пула рабочий поток и говорит ему: нарисуй html. Рабочий поток последовательными блокирующими запросами лезет за данными в s1, s2, s3 и рисует html.
Итого получается, что общая задержка на извлечение данных суммируется: t1+t2+t3.
Хочется запросить данные параллельно неблокирующими запросами. То есть сказать что то типа: источник, вот тебе запрос на эти данные. Но ты пожалуйста мой поток не блокируй и верни сразу же управление. А когда данные приедут, кинь мне какой-нибудь event или дерни мой callback.
Тогда бы я одновременно сделал запросы в s1, s2, s3 и спокойно ждал, пока они все не приедут. Задержка бы получилась не сумма, а max( t1, t2, t3)
С прочими внешними источниками так договориться можно, а вот можно ли так договориться с Hibernate?
Ну или если Hibernate так не умеет, может есть что-то аналогичное, что умеет?
Underscore.js библиотека для java.
June 3rd, 2015
Привет, Java Developers!
Недавно выпустил новую версию библиотеки underscore-java. Реализованы почти все функции оригинальной утилиты на javascript. Есть возможность расширять функционал. Примеры модулей math и string в этом же репозитории.
Буду рад пожеланиям и замечаниям.
UPD:
Недавно вышло обновление для библиотеки: версия 1.4
Исправлена ошибка при вызове метода slice(0, N)
Стали доступны генераторы для списков и карт внутри плагинов.
Появился новый модуль - underscore-lodash (реализованы почти все функции оригинальной библиотеки).
UPD 2:
Недавно была выпущена новая версия библиотеки: 1.5
Обновился сайт с документацией.
Добавлены методы toMap(), value(), chain(), eachRight() и forEachRight().
Появилась поддержка методов size() и isEmpty() для chain().
Исправлен тип для метода sort().
Добавлены методы groupBy(), indexBy(), countBy(), every() и some() для chain().
Добавлен параметр массив для методов diferrence(arrays) и union(arrays).
Улучшено вычисление для equals и hashCode в классе Optional.
UPD 3:
Недавно была выпущена новая версия библиотеки: 1.6
Добавлен метод chunk(array, size).
Появилась поддержка методов invoke(), pluck(), where(), findWhere(), max() и min() для chain().
Добавлена поддержка вычитывания данных из классов по имени объекта в методах where(), findWhere() и pluck().
Появилась поддержка методов toJson() и fromJson() в модулях lodash и string.
UPD 4:
Недавно была выпущена новая версия библиотеки: 1.7
Добавлена поддержка методов range() для chain().
Появилась поддержка метода sum(array, function) в модулях lodash и math.
Добавлена поддержка chain методов в модулях lodash, math и string.
Появилась поддержка форматирования для метода toJson() в модулях lodash и string.
Добавлена поддержка кириллических символов для метода words() в модулях lodash и string.
UPD 5:
Недавно была выпущена новая версия библиотеки: 1.8
Добавлена поддержка методов fromNullable(), or() и orNull() для класса Optional.
Появилась поддержка метода toXml() в модулях lodash и string.
Исправлен парсер юникода в модулях lodash и string.
Добавлена поддержка методов upperFirst() и lowerFirst() в модулях lodash и string.
Исправлены предупреждения компилятора.
UPD 6:
Недавно была выпущена новая версия библиотеки: 1.9
Добавлена поддержка метода uniquePassword() для генерации паролей.
Улучшен метод toJson() в модулях lodash и string.
Добавлена поддержка типов для методов chain().
Улучшены методы escape/unescape.
Добавлены примеры юнит тестов для java 8.
С уважением, Валентин
SWT: StackLayout и композиты различного размера
April 8th, 2015
Имеется StackLayout, в который добавлено 3 композита разного размера. Проблема в том, что они автоматически выравниваются по размеру большего из них, а хотелось бы видеть их в оригинальном размере. Как это сделать? Можно ли заменить StackLayout на что-то другое с аналогичным функционалом? Пробовали менять на include/exclude - получили заметные тормоза при отрисовке.
February 8th, 2015
Здравствуйте. Первый раз пользуюсь ЖЖ поэтому, если есть какие то требования и я их не выполняю извините. Я хочу разместить или поднять вопрос я начинающий java пользователь(пока не программист). Как организовать простую программу что бы с WIFI компьютера передать информацию (например текст), на другое устройство напрямую и через WiFi роутер. Какие библиотеки? Какие команды? Может примерный код. Спасибо!!!
JSP: Табличное представление данных. По столбцам
January 29th, 2015
Приветсвую. В наличии имеется у заказчика JSP-шка, где стат. данные по анализу поломок собраны. Надо добавить вот
такую таблицу
представление данных в JSP-шку (упрощенный вариант):
Reasons % | Total | Power Systems | Endoscopic |
---|---|---|---|
Surface | |||
reason-sA | 30 | 50 | 50 |
reason-sB | 70 | 20 | 80 |
Repair | |||
reason-rA | 23 | 100 | 0 |
reason-rB | 77 | 0 | 10 |
В JSP-шке уже данные организованы в html table. В настоящее время имеется структура данных, отображенная на столбцы необходимой таблицы, т.е имееццо инфо, сгрупированноe по причине повреждения (reason-sA, reason-sB,...) по каждому из типов повреждения (Surface, Repair,...) для Power Systems, для Endoscopic итд. Как представить данную структуру как таблицу желательно без script-летов и изменений/добавлений на стороне сервера в ява-коде?
Пока что только идея с изменениями на стороне сервера: а именно формирование объектов-строк
напр.:
с необходимой инфо...
UPD.0 Сделал так, вынес столбцы как бины. Итерировал foreach по индексу. макс. значение индекса - длина-1 Можно было бы элегантнее решить, если бы сервлет 3.0 да томкат 7.0 был бы. Но увы - 6.0 у заказчика. Апдейту не подлежит
28 августа 2014 г. Вебинар "Code Coverage"
August 18th, 2014
28 августа 2014 г., в 15:00 (GMT+4, Moscow Time) состоится вебинар "Code Coverage".
Вебинар посвящен обзору теории сбора статистики по покрытию кода тестами с практическими примерами из жизни.
Этот вебинар будет интересен в основном разработчикам, тем, кто пишет не только код, но и тесты. И хочет узнать
как проанализировать качество покрытия кода тестами.
Также вебинар полезен тимлидам, менеджерам, тем, кто собирает статистику покрытия кода и репортует об этом заказчику.
August 14th, 2014
Доброго дня. Помогите, пожалуйста. Задали на лабораторке задание: вывести на экран с помощью двоичных литералов изображение смеющегося лица.
Я написал следующее:
public static final short[] HappyFace = {
(short)0b0000011111100000,
(short)0b0000100000010000,
(short)0b0001000000001000,
(short)0b0010000000000100,
(short)0b0100000000000010,
(short)0b1000011001100001,
(short)0b1000011001100001,
(short)0b1000000000000001,
(short)0b1000000000000001,
(short)0b1001000000001001,
(short)0b1000100000010001,
(short)0b0100011111100010,
(short)0b0010000000000100,
(short)0b0001000000001000,
(short)0b0000100000010000,
(short)0b0000011111100000
};
for(int i = 0; i< HappyFace.length; i++) {
String s=Integer.toBinaryString(HappyFace[i]);
System.out.println(String.format("%64s, s.replaceAll("0", " ")));
}
Eclipse сказал, что я написал фигню, но я не могу понять, что именно нужно поправить, чтобы заработало. В инете похожего не нашёл, а сам сообразить не могу. Подскажите, как должен выглядеть код, чтобы оно заработало?