Чтобы добавлять сообщения и комментарии, .

@mismatch:
mismatch

// Как жить без приватных методов в интерфейсах?
// Например, пишем такое в DefaultsInterface.java:
public interface DefaultsInterface {

	default void test1() {
		DefaultsInterfaceCompanion.INSTANCE.test("S1");
	}

	default void test2() {
		DefaultsInterfaceCompanion.INSTANCE.test("S2");
	}
}

enum DefaultsInterfaceCompanion {
	INSTANCE();

	void test(String suffix) {
		System.out.println("test" + suffix);
	}
}

// Да, замена не равноценная, но проблему дублирования кода 
// в дефолтных методах решает, не загрязняя интерфейс. 

@mismatch:
mismatch

java.util.stream.Stream как результат выборки из базы данных — вроде как не очень удачное решение, если этот результат внушительных размеров. А вы как думаете?

@AlexVK:
AlexVK

В Spring-е , якобы защищённым spring security совершенно случайно обнаружили огромную дырень.
Якобы защищённые ресурсы можно легко попасть просто немного изменив url
Уязвимость находится в antRequestmatcher и работает только при использовании оного.
Уязвимы все версии spring 3 и ветки 4.0, 4.1 и 4.2
Протестил сочетия со всем ветками spring security 3.x и 4.x — дело не в нём, дело именно в spring.
Подробностей пока не будет.
Очень интересно во многие ли вещи можно будет элементарно заглянуть чуть изменив url :-)

@sagax:
sagax

подскажи juick, правильно ли я понял, что Clojure это Lisp на Java стероидах?

@sansentrailles:
sansentrailles

Если я джаву хотел только для андроида, то теперь можно на нее забить и удариться в Котлин?

@SannySanoff:
SannySanoff

Я свичнулся с Жабы на Котлин в основной разработке.
Основная причина проста: просто приятна обновка.
Всякие фичи Котлина прекрасны. К Жабе претензий тоже нет — изумительный язык. Я не страдаю от ее многословия.
Можно назвать множество причин переключения — фич ради, конечно.
Но основная — это просто что-то новое, просто новизна, которая будит уснулую часть мозга, которая уже сделала свое дело, доведя до автоматизма свою часть работы — выражение себя на жабе — и спала уже давно.
Это могла быть и Скала, — Скала просто прекрасна, — но Скала более неудобная в работе: из-за ее гениальной разноликости она чересчур тормозит в инструментарии (компилятор, IDE), что начинает напрягать через некоторое время. Это чувствует и Одерский, который пишет другую, несовместимую версию Скалы, более шуструю.
Больше пока вариантов нет. Остальные либо тормозят в рантайме, либо без статической типизации, либо без tools.

@den-po:
den-po

а кто play framework юзал? чот AhcWSClient не смотрит в секцию play.ws.ssl в конфиге. это так и должно быть?

@necromant:
necromant

Приехал из китая фитнес браслет TTLIFE DF30.. Фирмваре апдейт лился с телефона в браслет час. Ну я, как положено джедаю, решил отдизассеммблить апликуху, ибо как-то не ку, что оно облачно-завязана на китаез... В общем нашел ответ почему апдейт шел так долго: govnokod.ru

@alex0b:
alex0b

Эта ужасная поделка только и может шуметь вентилятором процессора (а я его даже раньше и не слышал никогда) и писать в консоль это:
(Jaspersoft Studio:2651): Gtk-WARNING **: Allocating size to SwtFixed 0x7f8329029550 without calling gtk_widget_get_preferred_width/height(). How does the code know the size to allocate?Я надеюсь им воздастся по делам их.

@SannySanoff:
SannySanoff

Открыл для себя Vert.x, плюс Kotlin = полностью асинхронное всё: http сервер, https (!!) клиент, кафка, постгрес, вебсокеты уже то понятно. В котлине 1.1.1 все на корутинах.. прямо скала. Адопшн кажется будет побольше чем у скалы, поэтому ожидаем вскорости бум. С небольшим набором корутинных врапперов пишем буквально следующее:

    suspend fun graphAPI(request: String, access: String) : JsonObject {
        val resp = VX.getJson("https://graph.facebook.com/v2.3/$request&access_token=$access")
        when(resp.statusCode) {
            200 -> return JsonObject(resp.response)
            else -> throw IOException("Facebook invalid response: "+resp.toString());
        }
    }

        when (req.path()) {
            "/register_server" -> {
                exec("delete from other_servers where ip_address=${v(param("ip"))}")
                exec("insert into other_servers(ip_address, hostname) values(${v(param("ip"))},${v(param("host"))}) ")
                commit()
                output(JsonObject(Pair("result","OK")))
            }

(во втором куске кода sql bindings безопасные если шо)
(может можно кое что еще проще, пока не знаю как)
(обработка ошибок, выделение коннекшнов, транзакциы всякие итп - все снаружи)
(ексепшны в котлине отлично дружат в асинхронном коде)
(а и не скажешь, что асинхронный, верно?)

21 век настал.

@mismatch:
mismatch

The Secrets of Concurrency — доклад от Heinz Kabutz

@segfault:
segfault

opennet.ru
В случае, если заголовок Content-Type содержит некорректное значение, срабатывает исключение для отображения сообщения об ошибке, которое, если в тексте присутствует маска "multipart/form-data", также приводит к вызову обработчика Multipart parser и выполнению произвольного кода, передаваемого через выражение OGNL <commons.apache.org>.

@Strephil:
Strephil

Я не понимаю, зачем какое-то WebAssembly (что это?), когда уже давно есть Java и java-апплеты?

@JIecHou:
JIecHou

Яхве-программист

@JIecHou:
JIecHou

JAR-птица

@enaken:
enaken

Привет всем. Люди, подскажите, пожалуйста, где можно посмотреть подробный мануал, как в Java подключать библиотеки, создавать пакеты? А то иногда не ясно, вроде подключил, а оно не работает(((

@ndtimofeev:
ndtimofeev

Господа java-программисты, по этому бэктрейсу можно сказать чего не хватает этому куску говна скомпилированному в 2014ом году?

ERROR: Uncaught Exception: java.lang.ExceptionInInitializerError
        at com.bric.swing.QDialog.createOKButton(Unknown Source)
        at com.bric.swing.QDialog.createDialogFooter(Unknown Source)
        at com.bric.swing.QDialog.showDialog(Unknown Source)
        at com.bric.swing.QDialog.showDialog(Unknown Source)
        at com.treestar.lib.dialogs.SDialogs.notify(Unknown Source)
        at com.treestar.lib.dialogs.SDialogs.notify(Unknown Source)
        at com.treestar.lib.dialogs.SDialogs.notify(Unknown Source)
        at com.treestar.flowjo.main.Main.javaCheck(Unknown Source)
        at com.treestar.flowjo.main.Main.initMain(Unknown Source)
        at com.treestar.flowjo.main.Main.main(Unknown Source)
Caused by: java.lang.NullPointerException
        at com.treestar.lib.FJCommand.<clinit>(Unknown Source)
        ... 10 more

Нет, исходников у меня нет.

@mismatch:
mismatch

LinkedHashMap для LRU-кэша на коленке. Наткнулся здесь, а потом и в JavaDoc это нашел. Идея не новая, но всегда полезно вспомнить базовые вещи.
На практике я использовал CacheBuilder из Guava, а еще советуют Caffeine (но там, как я понял, другой алгоритм вытеснения элементов из кэша).

@mismatch:
mismatch

Может ли TreeSet содержать дубликаты? Не спешите с ответом, а лучше почитайте этот пост.

@ermine:
ermine

Прочитала первые три главы спецификации Java. Что узнала нового? В Preface упомянули Андрея Бреслава, шеф-повара Котлина. В третьей главе неожиданно для себя открыла, что можно писать 0b1________1. Ждём новых открытий.

@Rainbow-Spike:
Rainbow-Spike

Костыли даже в заднице

@ermine:
ermine

А что в Яве быстрее работает Map или List на списке из не более 5-10 итемов, с поиском?

@ermine:
ermine

Объясните мне, пожалуйста, как ява справляется с 32-битной уникодой, выделяя всего два байта на char?

@ermine:
ermine

есть ли у вас тут гении, которые прочитали спецификацию языка java? там же много букв! надо ли читать вообще?

@alar:
alar

*maven *docker *nix *СЯУ: stack умеет собирать в докерные образа и nixовые окружения. Чтобы изоляция была уж совсем уж изолированной и воспроизводимой. А когда maven такое начнёт делать?

@den-po:
den-po

зачем жава оставляет постоянно висеть эти процессы?
jucheck.exe
jusched.exe
что, из планировщика винды нельзя запускать периодически?

@tzirechnoy:
tzirechnoy

Прекрасный пример разбора полётов по оптимизацыи кода под процэссоры: cr.openjdk.java.net

Это разбор скорости перебора по массиву указателей и по спискам.

Там в комментариях написаны результаты автора ( это Aleksey Shipilev ) и выводы, к которым он пришёл. Кстати, несмотря на то, что это java, видно что с её JIT отличия от сишэчки минимальны (буквально в паре вычислений адреса по индэксным регистрам добавлено по регистру), а от плюсов вообще почитай никаких. И как джависты с таким прекрасным JITом умудряются такой тормозной отстой делать, что перл с питоном плачут в сторонке?

Но, в общем, всем кто плюс-минус прочёл какой-нибудь гайд по оптимизацыи под современные процэссоры, я настоятельно рекомендую прочесть ссылку. Поскольку хорошый, классический разбор задачи.

@AlexVK:
AlexVK

На Jpont есть , хм, своебразный человек yegor256.com , говорящий за то как вы вот все неправильно мыслите и неправильно програмируете.
По сути 2 доклада , это Объектно-ориентированное вранье youtube.com и ORM — это обидно youtube.com об одном и том же. Где то в начале он предлагает купить свою книжку на Амазоне, где он описал советы. А дальше он говорит о том какой у нас неправильный ООП который и не ООП а что ни на есть процедурное программирование. Много говорит за single responsibility который сформулировал не он.
Что тут не так. Довольно мало примеров "как правильно". По сути их нет, есть одни только теоретические рассуждения. Нет указаний на других авторов, занимающихся подобной практикой. Взять того же Мартина Фаулера. Он много говорит о том же что и Мартин писал лет этак 10 назад. Причём у Мартина в книгах куда богаче и понятнее.
Принцип тут — я тут вам немного расскажу, а всё остальное прочитаете в моей книге.
Примеры, не рассуждения, примеры. Этим берёт Файлер, вот вам код, вот это конкретно в нём неправильно и вот почему. Берём неправильно и делаем правильно. А так в общем то зёрна есть, в архитектуре java действительно хватает недостатков.
Геттеры и сеттеры, например, действительно зло, пришедшее со старого стандарта javaBeans, и т.к. заявлена поддержка всего ранее написанного то имеем то что имеем.

@AlexVK:
AlexVK

Понравился доклад по JMS youtube.com
Хотя и прошлогодний. Интересно коснулся раз тем — и о архитектуре LinkedIn, про NoSQL и про катастрофу 11 сентября.
Действительно, oc4j и ряд Oracle-вых приблуд — говно и ни нужно. С oc4j в своё время хорошо натрахались.

@schors:
schors

Зачем-то я теперь умею и Java. В зачаточном виде, но таки умею

@mismatch:
mismatch

youtube.com — !адекватное Java — интервью!

@AlexVK:
AlexVK

На стоп обожает выдавать такое
pastebin.ru

@Ilya-S-Zharskiy:
Ilya-S-Zharskiy

Про Spark расскажите кто-нибудь, PLZ!

У меня умирает очередной legacy сервак — интерфейс не работает, тормозит, лечится только перезагрузкой.

Там на нём Kerio WinRoute зачем-то и openfire.

Спарки — клиенты, авторизация доменная.

Цепляются почему-то к частному (серому, внутреннему) IP-адресу, без проверки сертификатов.

Хочу сделать домен типа chat.example.com, прикрутить Mattermost и выпустить наружу (для мобилок, с привязкой к номеру).

jabber похерю наверн

@OCTAGRAM:
OCTAGRAM

Причина, по которой некоторые языки программирования вообще и Оберон в частности находятся в таком бедственном положении
В переводе про совместимость примечательна сноска
e Текущие реализации Java не поддерживают такое, но новые спецификации ясно требуют, чтобы все наши трансформации поддерживались.В оригинале доклада были ещё номера страниц в спецификации. То есть, как я вижу ситуацию, у индустрии была серьёзная проблема с обеспечением совместимости, и в спецификации Java английским по белому писали, что можно, а что нельзя допускать, и одновременно была целая эпопея со способами вызова из других языков:

* JDK 1.0 native method interface
* Netscape’s Java Runtime Interface
* Microsoft’s Raw Native Interface and Java/COM interface
* Java Native Interface
* Java Native Access

Одновременно несмотря на претензии типо-Java-вости и украденных идей со стороны некоторых адвокатов Оберона я что-то не припоминаю, чтоб было какое-то аналогичное соревнование, как лучше совместить код на Обероне с другими языками программирования. По ключевым словам «Oberon Runtime Interface» и «Oberon Native Interface» ничего не находится. А было ли что красть?

И вообще, это надо ещё сильно постараться поискать, чтобы узнать, как обстоят дела в конкретной реализации, если скомпилировать динамическую библиотеку классов и приложение, а потом к библиотеке применить описанные в докладе трансформации и перекомпилировать её, а приложение — нет. Покажи адвокату Оберона таблицу из доклада — сможет ли он там расставить крестики и галочки для знакомых ему реализаций?

То есть, пока разработчики Java и около бурно решали серьёзнейшие проблемы индустрии и представили хоть и во многих смыслах дурацкое решение, но-таки решение, оберонщики занимались чем-то своим, щёлкали клювом, проблемы, стоящие перед индустрией, не решали и закономерно оказались не нужны. Даже, похоже, до сих пор так и не поняли, как это произошло.

@OCTAGRAM:
OCTAGRAM

Заколебался, но разгрузил X-Wiki от большинства запросов. Теперь, только если историю ковырять, запрашивать ревизию или делать ещё что-нибудь достаточно необычное, запрос пойдёт в J2EE, что можно заметить по времени ответа в 3-7 секунд.

Новый наскоро сделанный движок на Аде не всё ещё делает красиво. Хлебные крошки сделал лишь бы соблюсти приличия. Ссылки для поделиться кривые. Страницы 404 не сделаны. Ну и прочее по мелочи.

@OCTAGRAM:
OCTAGRAM

Заглянул в список «Кто в онлайне» и не увидел никого с сайта, хотя я интегрировал их. Решил посмотреть, а что там с сайтом. Ну конечно, он опять не открывается! Правильно, а зачем обслуживать посетителей, когда есть другие, более интересные дела, такие, как сборка мусора? javaw.exe ест весь CPU, а страница так и не открылась. Придётся всё же заняться переносом вики на Аду. Достало!

@segfault:
segfault

Судя по цвету, он написан на смеси говна и мочи!

@ermine:
ermine

Мавен — говно! В нём ничего найти нельзя! Как в нём искать вообще нужный депендс?

@ermine:
ermine

Целый день гуглила-гуглила и переругивалась с @vt (дядечка втирал, что надо абстрагироваться!) и вроде бы определилась в выборе ембедед базы данных — LMDBJava. Что скажете?

@ermine:
ermine

Посоветуйте мне хорошую базу данных с API на яве (или котлине), но только embeded базу, не отдельный мега-пупер сервер типа Mongo.