k-mx
Java язычки Я тут послушал РАЗНОЕ. Каждый первый если пишет на жабе, то на 8й. В лучшем случае на 11. Получается что до 21й с виртуальными потоками, блекджеком и шлюхами человечество вообще никогда не доберётся?

Кто на жебе пишет? Экспертное мнение в студию
Ilya-S-Zharskiy
MiddleWare Java eBook K8s книжка performance RTFM docker годный_Manual IBM Linux ApplicationServer эксплуатация_приложений контейнеризация publib.boulder.ibm.com

publib.boulder.ibm.com





Интересная книжка, но аж 857 страниц, целиком ниасилю, интересные штуки подчерпнул длдя себя.
Актуальна, обновлена 2022-07-26
Корпорации — малаццы, не зря инженеграм $$$$ платят

IBM WebSphere Application Server Performance Cookbook
IBM WebSphere Application Server
Performance Cookbook

The IBM® WebSphere® Application Server Performance Cookbook covers performance tuning for WebSphere Application Server (WAS). In addition, it includes deep dives into Java™, Operating Systems, theory, and other topics that may be applied to other products and environments. The cookbook is designed to be read in a few different ways:

On the go: Readers short on time should skip to the Recipes chapter.
Detailed chapters and sub-chapters such as WAS, Java, etc.

The cookbook may be viewed as a single HTML page (~20 MB),
ТРАФИК! publib.boulder.ibm.com
a PDF file (~10 MB), or browse the cookbook by section using the Table of Contents below.


Authors
Kevin Grigorenko (kevin.grigorenko@us.ibm.com) [Primary Contact]
Alexandre Polozoff (polozoff@us.ibm.com) [Secondary Contact]
Andrea Pichler
Andy Henderson
Anuradha Ramamoorthy
Ashish Deb
Ed Bernal
Eric M Covener
Gary Hunt
Gary J DeVal
Hermann Huebler
Jagdish Komakula
Keith B Smith
Marco Fabbri
Martin Ross
Phil Hirsch
Raquel Maldonado
Surya V Duggirala
Vishal A Charegaonkar
Younes Manton

Contributors
Andrew Levandoski
Benedict Fernandes
Chris Bailey
Pavel Malyutin
Rengan Sundararaman
Stephen A Hellberg
Tom Alcott
Walt Adams
Thank you to the IBM managers that helped support this project: Prasad Imandi, Dave Schell, Barry Foster,
Melissa Modjeski, Keri Olson, Frank Schembari, Michael Stuy, Mike Morin, Sree Ratnasinghe, and others.


Copyright International Business Machines Corporation 2022. All rights reserved. > U.S. Government Users Restricted Rights: Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corporation.

For comments or questions, contact Kevin Grigorenko.
anton0xf
Java math dev fp tl:dr: Монада — это враппер с возможностью оперировать над завёрнутым значением. Если вы пишете на Java то уже наверняка знаете, что это. Никакой магии или скрытых смыслов.

Со мной щас случилось неожиданное. Т.к. я на Хаскелях и Скалах так никогда и не писал ничего длиннее пятка строк, то меня, как и большинство остальных людей несколько смущало понятие "монада". Хотя и знал уже, что по сути это всего лишь умное название для некоего враппера. Но всегда оставалось ощущение, что там есть какой-то более сложный нюанс, т.к. про всякие джавовые Optional и пр. обычно говорят "это близко, но не совсем оно", и добавляют с придыханием, что там есть ещё "монадические законы" и начинают разговор про Теорию Категорий, с которой у меня тоже как-то всё не складывается.
А тут на конфе в который раз зашла об этом речь, и я решил прикола для заглянуть в вику. Долистал до определения и всё понял!

java.util.Optional — это натурально монада. Как стримы и любой другой враппер, если к нему прицепить метод flatMap() с поведением, как у соответствующих методов Optional или Stream.

Раскрою на примере того самого Optional. Как пишут в вики монада `M` над типом `T` (пишут `M T`) — это тройка, состоящая из
1. конструктора типа (`M T`), т.е. например `Optional<T>`
2. конвертера `unit: T -> M T`. Напомню, что в стандартной математической нотации `f: X -> Y` — это функция из `X` в `Y`. Для моего примера это будет создание Optional из значения, т.е. в той же нотации: `Optional::<T>of : T -> Optional<T>`
3. и комбинатора `(>>=): (M T, T → M U) → M U`, т.е. функа, который употребляет монаду и другой функ, который из значения, в неё завернутого, делает другое значение, завёрнутое в эту же монаду, и применяет второе к содержимому первой. Т.е. в точности то, что делает Optional::flatMap, если понимать объект, у которого этот метод вызывается, как неявный первый аргумент. Точнее если у нас есть `x : Optional<T>` (переменная `x` типа `Optional<T>`), то `x::<U>flatMap : (T -> Optional<U>) -> Optional<U>` (или как пишут в javadoc: `Optional<U> flatMap​(Function<? super T,​? extends Optional<? extends U>> mapper)`), что отличается от сигнатуры в определении только тем, что `x` — это неявный параметр, поэтому его тип e у меня написан отдельно, но это исключительно синтаксическая особенность — в том же Python этот аргумент пишется в сигнатуре методов явно.

Ну а "законы" — это абсолютно тривиальные ожидаемые от врапера свойства:
+ `unit(x) >>= f <-> f(x)` — означает что flatMap() применяет свой аргумент с завёрнутому значению, а не делает что-то более хитрое: `Optional.of(x).flatMap(f) == f(x)`
+ `ma >>= unit <-> ma` — если есть переменная `x : Optional<T>`, то примерение `flatMap()` к `Optional::of` ничего не поменяет: `x.flatMap(Optional::of) == x`
+ `ma >>= λx → (f(x) >>= g) <-> (ma >>= f) >>= g` — некое правило ассоциативности применения `flatMap()`, т.е. если `x : Optional<T>`, и `f: T -> Optional<U>`, а `g: U -> Optional<V>`, то `x.flatMap(x -> f(x).flatMap(g)) == x.flatMap(f).flatMap(g)`
vt
Java сделаноунас Я тут внезапно установил отечественное ПО: libericajdk.ru
Все сборки Liberica JDK прошли тесты TCK на реализацию спецификаций Java SE и соответствуют требованиям цифрового суверенитета.
Ржака в том, что у них единственных есть готовая сборочка для Mac(ARM64), у остальных или нету, или не взлетело с первой попытки установить, а у этих работает, лол
lex2d
Java боян Нейроночка пишет регрессионные юнит тесты. Пока не пробовал, но может руки дойдут фриварную версию скачать, хотя джавы в проекте становится все меньше.

diffblue.com
don-Rumata
Java работа IT soft Не помню как, но я нашёл BellSoft, которые пилят свою сборку Явы. В отличии от мамкиных джавистов — Оракл их сертифицировал. Кайф в том, что:
1. Бинарные сборки на Гитхабе.
2. ЕСТЬ РЕСТ АПИ!!! bell-sw.com Не надо парсить html Амазона, чтобы вытащить последнюю версию Corretto. Curl'у не надо подсовывать куки, чтобы дёрнуть jdk с oracle.com.
3. Чуваки из СПб, а значит ответят по-русски (с ингришем у меня всё ещё плохо).
4. Репы для deb и rpm: bell-sw.com Http тоже не отрубили, т.е. apt-cacher-ng будет чувствовать себя норм.
5. В jdk-full воткнут и jre и jdk и javafx! 1 msi для всего!
6. А ещё у них в api есть "latestLTS".
ndtimofeev
Java Linux химия Поставил MarvinSketch (это такое собственническое ПО для рисования молекул на Яве) и запустил его в oracle jvm (один хрен он был нужен чтобы в клиент-банк от Авангарда). Обнаружил что эта штука 1) тормозит 2) тормозит всеми восемью ядрами сразу. Удивился, поскольку раньше такого за marvin'ом замечено не было. Поставил icedtea — всё заработало. Мистика.
lex2d
Java боян dev решето Android В общем, jcenter показал, что там про секурити думали не очень и ныне рекомендуется в гредле прописывать jcenter() последним и юзать mavenCentral(). Основная неудобство, что jcenter() идет по умолчанию в в шаблоне новосозданного андроид проекта.
blog.autsoft.hu
SannySanoff
жизнь Java programming У меня IDEA с двумя проектами (один там даже с петоном) стартует 1м30сек пока цпу не утихнет, и это я к ней не прикасаюсь покуда не утихнет. Когда начинаю прикасаться, понятно, снова бурлит покуда не утихнет, потом уже потихоньку.

Время ли обновлять ноут? А сколько грузяццо ваши проекты?

(основной проект у меня нонче в Jupyter на удаленном компе, и мне вообще идея почти по сараю).
AlexVK
Java bug Жаба мне снесла root корневой раздел. Точнее попыталась. Т.к. прав нет никаких то удалила /home
Со всем. Конфиги, настройки, ключи — всё улетело нахрен. Какие то доки, проекты, сорцы....
Жалко только ключи и настройки. Документация вся в иторнетах, почта там же. проекты — там же. Книги — их тьма в телеге и на трекерах... А вот ключи и настройки, вот этого вот нет, так что всё настраивтаь таки заново.

Особый привет глючным либам в недрах которых могут быть shutDownHook с удалением рабочего каталога!!
ma1uta
Java фиас ЖЖ попытался сделать небольшую библиотеку, чтобы можно было бы импортировать ФИАС (fias.nalog.ru). В итоге всё работает (просмотр и импорт), но упирается в субд, что ожидаемо, всё это надо куда-нибудь скидывать в какой-нибудь hadoop и уже оттуда с ним работать.
OCTAGRAM
Java SWING JGNAT ada CheerpJ Допилил CheerpJ и JGNAT друг под друга

Посмотреть можно здесь

Пока что вижу: насчёт многозадачности — правда. Я думал, это фишка простого Cheerp, а раз в простом Cheerp нету асинхронизатора, то это всё может работать только на SharedArrayBuffer и не везде. Но нет. Планировщик находится в loader.js от CheerpJ и, насколько я могу судить, работает. В том числе можно динамически подгружать классы, и они грузятся (с поддержкой AOT) по сети, и исполнение зелёного потока продолжается с момента остановки. EmScripten так не умеет, там только синхронным XHR можно с файловой системой работать, и только в Web Workers, в общем, без асинхронизатора это ни о чём.

Вместе со Swing там, похоже, даже движок текста свой подгружается. Антиалиасинг явно получше, чем в браузере. Но время запуска будь здоров. Хотя большая часть сейчас зависит от производителя. Если они там у себя что-нибудь подкрутят, васм внедрят, например, ведь Cheerp умеет, то есть, куда ужаться. Просто начинать с тем, что есть, а оно само будет улучшаться.
OCTAGRAM
Java А в javax.xml.datatype.XMLGregorianCalendar есть и getTimezone, и getTimeZone. Это не где-то в частной поделке такой бардак, это основной программный интерфейс.

Нет, нельзя давать программистам регистрозависимость. Если неприятность может случиться, она случится.
OCTAGRAM
com Java совместимость
Bad class file: version 52.0 not supported

Да что ж вам неймётся-то по версиям скакать. Ну что не сидится на одной. Вот чем хорош COM и чем плоха Java, в COM совместимость десятилетиями держится, а тут каких-то несчастных четыре года отделяет, и уже инструментарий начинает отваливаться. В книге «Putting Metaclasses to Work» симуляция была специально реализована на Java, чтобы, как пишет автор, как можно надольше сохранить. В итоге компилятор DirectToSOM C++, библиотека SOM и прочее PE/COFF'ное запускается на современной Windows 10, а симуляция PMtW на современной JVM — нет. И на не очень современной 1.5 — тоже. Вообще надо какую-то древнюю находить, чтоб подошло тютелька в тютельку. Знал бы автор, как жестоко будут насмехаться над его потугами производители. Начиналось за здравие, столько надежд было.

И в Delphi CORBA IDL парсится утилитой не на Delphi, транслируемой в, как показывает практика, долгоживущий PE/COFF, а на Java, и тоже там совместимую версию надо постараться подобрать, собственно, почему эту фичу кроме особенно заинтересованных никто не смог увидеть в действии.

Предполагаю, что так пагубно влияет общая версия формата для интерфейса и реализации. Собственно, и нет разделения на интерфейс и реализацию. Новые фичи не могут просто сидеть и не высовываться в новых секциях и новых опкодах, на которые не любой инструментарий будет смотреть, им обязательно надо вылезать на самый верх, в общий номер формата, и там всё ломать.
RA
Java pre_junior dev Тут чел очень хочет на java програмить. Но он в алгоритмы ещё не очень умеет.
Что бы ему насоветовать? Так чтобы от основ: поиск, сортировка пузырьком, ...
Но так чтобы было понятно — берём эту ide, сюда пишем, так запускаем.

Я как-то бегло нагуглил какие-то книжонки по java. Ни одна мне не понравилась.
Думал ему линк на Кнута дать, чтоб по алгоритмам подтянуть, но там такая скука.

В общем рекоменд, если есть чо.
OCTAGRAM
web Java JavaScript CheerpJ как я заметил, уже вышел из закрытых альфа-тестов и находится в бете.

Те же разработчики, что делают Cheerp, транслятор C++ в JavaScript/Asm.js/WASM, делают CheerpJ для Java. Позиционируется он как нормально портированная Java. Никаких ограничений, как в GWT. Поддерживается байт-код. Поддерживаются Swing и Java-апплеты как с оффлайн конвертацией, так и в виде шима. Есть плагин для Хрома.