Этого треда уже нет.
Это копия, сохраненная 5 мая в 02:12.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Java Thread №263 /java/ 3031296 В конец треда | Веб
Вики по вкатыванию в джаву: https://github.com/java2ch/java-thread/wiki
Предыдущий: >>3009028 (OP)
2 3031312
>>3031294 →

>Самый главный кек это написанный лично Владом меседжинг на базе постгреса. Естественно это всё тормозит неимоверно и его пытаются разогнать добавляя новые ноды. Причем этот ЧСВшный мудак и слышать ничего не желает про кафку.


>Рест самописный на базе sparkjava.com


>Для работы с базой Влад написал библиотеку которая выполняет jooq в одной транзакции. Тот ещё Франкенштейн.


>Пробовали Котлин, и даже написали на нём пару сервисов. Но Владу он не зашёл, плюс плохо работал с Франкенштейном и его запретили для новый сервисов.


>Влад лично пишет код, периодически смотрит пул реквесты. Однажды пришёл в мой пул реквест и высрал своё особо ценное мнение.


>В целом очень гоняться за фичами, поэтому качество кода очень низкое. Плюс народ работает год - полтора и сваливает.


Ебаааать. Впрочем, что ещё ожидать от кодомакаки из UBS, выпустившейся из шараги н-цатого эшелона.
3 3031332
>>3031266 →
Наоборот же, the best practices, класс данных не должен наследоваться, это буквально структура без поведения.

> Приватный геттер


Можно, только что проверил. Нельзя создавать getFoo() когда у тебя уже есть val foo, потому что геттер и так автоматически генерируется для каждой переменной.
4 3031334
>>3031144 →

>Через енум - совершенно точно НЕ надо.


Бля, какой енум, какие статик константы для референсных данных?

>А как это надо было реализовать, по-твоему?


Ну, есть же на худой конец стандартный java.util.Currency. Если уж так хотелось вписать своё имя как создателя, могли бы хотя бы тупо оттуда реализацию слизать:
...
private static ConcurrentMap<String, Currency> instances = new ConcurrentHashMap<>();
private static HashSet<Currency> available;
...
5 3031558
>>31312

>Рест самописный на базе sparkjava.com


Самописный - значит не на спринге или что?
И что не так со спарком?
6 3031619
>>3030921 →
Так ты покажи результаты лучше, если это не предел. Там +-10 тулзов в топе, и все они имеют один и тот же результат в 7 миллионов с разницей в пределах погрешности. Объяснение этому феномену уже дали, это jit.
170687515885222567.jpg48 Кб, 613x786
7 3031644
>>3030957 →
>>3030986 →
Шо то хуйня, шо это. Вот годный рейтинг.
8 3031664
>>3031294 →
Весёлый человек. Всегда хотел быть таким, только наоборот, как рыцарь зла и рыцарь добра, оба весёлые, но первый делает хуйню, а второй нет.
9 3031674
>>31619

>Так ты покажи результаты лучше, если это не предел.



Ну смотри, ты написал:

>>> предел железа на 7 миллионах ответов в секунду



Каких-ответов? Допустим, если у тебя процессор 3 ГГЦ и одна инструкция занимает один такт (для простоты возьмём 1 клок = 1 операция, хотя на самом деле сейчас это не так и десяток параметров влияет на скорость исполнения инструкций, может быть и десяток тактов, а может быть и несколько инструкций за такт).

Что в остатке? 3 000 000 000 / 7 000 000 = 428 инструкций.

Оппять же, это не ответы, а от балды прикинуте количество инструкций. Вот в них ты и должен суметь поместить ответ.

И всё это при условии что сеть, железо и операционная система не вносят свои задержки.
10 3031713
Шарпомуху забанили?
11 3031780
>>31713
И того хуя, который ко всем доёбывался.
Как-то необычно тихо стало.
И градус ебанизма снизился до приемлемых значений.
12 3031783
>>31674
Ну так посмотри сурсы бенчмарка течемповереда, какие там ответы. Не важно, сколько там инструкций на один ответ тратится, суть в том, что по диаграмме явно видно упирание в предел на 7 миллионах в самых разных языках.
13 3031852
>>31558

>Самописный - значит не на спринге или что?


Там поверх него накручена авторизация и ещё некоторые плюшки.

>И что не так со спарком?


Кроме того, что Спарк это просто сахар поверх джетти - ничего.
image.png157 Кб, 274x274
14 3031925
>>31852

> Спарк это просто сахар



Скорее уже история, а не сахар.
15 3032065
>>31852

>Спарк это просто сахар поверх джетти


Да, я уже почитал.
Джетти - вещь.
Я на нём делал разное, когда слова REST ещё даже в проекте не было, лол.
16 3032131
Я мастер регулярок, задавайте вопросы.
17 3032133
>>32131
Нахуя, а главное нахуя?
18 3032136
Регуляркобляди, что вы ими парсите?
19 3032210
>>32136
Регулярками парсят данные.
Чтобы затем с ними работать не как с текстом, а как со структурами.

А в чём смысл вопроса? Ты сомневаешься в практической полезности этого колдунства или что?
20 3032216
>>31674
Ты забыл, что у каждого процессора куча ядер, а в сервере может быть куча процессоров.
21 3032262
Значитсс, в моем городе 0 вакансий по java и +- 10 вакансий по 1с. Вопрос, учить ли мне 1с ?
22 3032268
>>32262

>1с


Лучше учись управлять экскаватором, больше заработаешь
23 3032279
>>32216

>Ты забыл, что у каждого процессора куча ядер, а в сервере может быть куча процессоров.


Знаю. И ждал этого коммента.

Ну умножай на общее количество ядер и поправочный коэффициент.
Можно ещё несколько сетевух поставить.
24 3032287
>>32262
>>32268
1Сники весьма неплохо зарабатывают - те, у кого душа лежит к такому.
На экскаваторе хорошо пока молодой, и ничего не болит.
А 1Сник чем старше - тем дороже стоит.
И девки из бухгалтерии - все твои.
25 3032307
>>32287

>1Сник


Ну это так, на первое время работа, пока не восстановится рынок (Украина).
26 3032316
>>32262
Ответ валить из своего города и учить джаву
27 3032322
>>32287

>И девки из бухгалтерии


Ну возможно когда тебе будет 45+ они в твоих глазах станут девками, на перспективу думаешь
28 3032332
>>32316

>валить из своего города в Киев


0 вакансий
30 3032424
>>32136
Advent of code входные данные.
31 3032465
>>32332
Причём тут хуев?
Глупый вопрос 32 3032477
Знатоки java, вопрос.

Я понимаю, что вопрос глупый, но он есть

Я знаю, что есть как минимум одна игра на java, однако у меня возник вопрос, где происходят вычисления и через что это может быть отрисовано.

Если кратко: Работа любого интерпретора( а виртуальная машина и есть интерпретатор, но в случае java это байт-код) занимает больше времени, чем аналогичная работа напрямую на железе(это даёт прирост в скорости одинаковых алгоритмов на c/c++ в сравнении с java/python/js/p4gl...). Я правильно понимаю, что для большого числа вычислений ради скорости используют нативные методы? Да и для работы с видеокарты тоже используются нативные методы, которые реализованы на си с использованием каких-либо vulkan/opengl?
33 3032510
>>32477

>есть как минимум одна игра на java


Есть хуева туча игр на java. В том числе в стиме.

Как это отрисовывается - долго рассказывать.
Сама по себе джава вовсе не медленная. Стартует медленно, это да. А потом - всё ОК.
Работа с видеокартой в наше время всегда происходит через драйвер. Который тоже многослойный сам по себе. И нет вообще никакой проблемы дёргать нативные C/C++ библиотеки из джавы. 3d графика в OpenGL на джаве была ещё хуй знает когда вообще.

На практике сейчас игры делают на libGdx.
Пиздуй по ссылке и наслаждайся:
https://libgdx.com
34 3032525
>>32510

> И нет вообще никакой проблемы дёргать нативные C/C++ библиотеки из джавы.



Фишка в том, что нативные C/C++ библиотеки можно дёргать из всего. Практичкски любой язык это позволяет.

Но чего бы тогда не писать игру на том же языке, на котором написаны эти библиотеки?
35 3032535
>>32525

>Но чего бы тогда не писать игру на том же языке, на котором написаны эти библиотеки?


А сам-то как думаешь, сынок?
Или ты реально считаешь всех тех, кто пишет на джаве + libgdx глупее себя? Тебе годиков-то сколько? На ассемблере писал когда-нибудь? А opengl на си дёргал?
image.png115 Кб, 800x1378
36 3032540
>>32535

>А сам-то как думаешь, сынок?


Папа, я думаю что ты не пишешь на плюсах.

>На ассемблере писал когда-нибудь?


Какой конкретно тебя интересует? Для какой архитектуры?

>opengl


Не интересуюсь 3D графикой.
37 3032550
>>32540
Ну, раз ты такой умный, то почему ты такой бедный?
38 3032552
>>32540
И да, чуть не забыл:

>Папа, я думаю что ты не пишешь на плюсах.


Конечно нет. Я же не ёбнутый.
39 3032555
>>32550

>Ну, раз ты такой умный, то почему ты такой бедный?


Жена при разводе обобрала.
И?
40 3032569
>>32555
Это всё фигня. Деньги можно заработать, если есть мозги.
Но, как раз с этим-то у тебя и не очень.

>Но чего бы тогда не писать игру на том же языке, на котором написаны эти библиотеки?


Редуцируя твоё утверждение, мы приходим к тому, что писать игры (и вообще что либо) нужно исключительно в машинных кодах (т.е. даже не на ассемблере). Что есть натуральный кретинизм. Что и требовалось доказать.

прежде чем отвечать - подумай как следует
41 3032634
>>32262
Если не хочешь переезжать и тебе ОК 1С, то почему бы и нет?
42 3032648
>>32477

> Java


> Интерпретатор


> Занимает больше времени чем аналогичная работа на железе


Во-первых, жаба использует JIT, который компилирует байт-код в машинные инструкции, тем самым практически нивелируя разницу между жабой и С++. Хотя при холодном старте программы JIT потратит какое-то время на компиляцию.

Во-вторых, любой код выполняется на железе. Хоть пайтон, хоть луи, хоть баш. Разница между интерпретируемыми языками и компилирируемыми состоит в том, что первые не оптимизируются компилятором, а вторые оптимизируются. Что такое оптимизация компилятора? Например, банальное удаление инструкций из кода, которые ни на что не влияют. В интерпретируемом языке каждая инструкция будет выполнена. В компилируемом только необходимые. Тоже самое касается циклов, тоже самое касается условий и так далее. Фактически компилятор переписывает твою программу в другую программу, которая будет делать самый минимум операций, чтобы достичь того же результата. Это и есть секрет почему компилируемые языки быстрее интерпретируемых, а не то что у одних инструкции выполняются на железе (CPU), а у других нет.

В-третьих, если не хватает производительности на жабе, то действительно могут писать бинарники на С и их вызывать через Java API в жабовской программе. Но здесь ровно та же история, что до этого. Ты можешь запустить на С компиляцию с аргументом О1, что даст тебе сверх-оптимизированный код для текущей платформы (и возможно не корректный, так как это уже игра в угадайку со стороны компилятора). На жабе ты настолько оптимизированный код не получишь.
43 3032659
>>32648

>это и есть секрет


Такое слово как "оверхед" ты когда-нибудь слышал, теоретик мамкин? Интерпретируемый кал медленнен именно из-за него, а не из-за маняоптимизаций. Спарсить строку инструкции, превратить в машинные инструкции и отправить эти инструкции процессору медленнее, чем отправить инструкции процессору сразу.
44 3032661
>>32477
Нет, неправильно. Нативные методы медленные и каждый вызов занимает микросекунды, а джавовский код легко превращается в нативный житом. Используют их из-за того, что а) уже много кода написано нативно и нет смысла его переписывать на джаву б) мамкины теоретики на менеджерах, вместо того, чтобы спросить у умных людей, заставляют программистов страдать и писать код на нативной говнине, руководствуясь своими личными манявыводами о скорости нативного кода
45 3032671
>>32661
Расскажи нам, как ты будешь JIT'ом работать с видеокартой.
И чувакам из libgdx тоже расскажи, а то они там ебутся с нативным кодом, как дурачки.
46 3032673
>>32671
Ну это проблемы реализации. В теории ничего не мешает связать джаву и видеокарту напрямую. Вот вальхалла же как раз про что-то в этом роде.
47 3032675
>>32673
А нет, перепутал, это панама про это.
48 3032731
Когда будет валхала - победим сишарп по скорости! Вот увидите! У нас будут свои структуры, сможем игры писать. Сейчас нужно просто не бухтеть.
49 3032763
>>32673
Что значит, блять, "связать джаву и видеокарту напрямую"?
Ты вообще понимаешь, что такое джава и что такое видеокарта?
Вот с помощью libgdx и подобных вещей их и "связывают".

Была, в своё время, официальная Java3D. Ставилась как расширение виртуальной машины. Т.е. работало это на уровне VM. Но, оно так толком не взлетело. Хотя, даже что-то большое и энтерпрайзное на ней делали. Типа визуализации большого склада и т.п.
50 3032793
>>32569

>Деньги можно заработать, если есть мозги.


А с чего ты решил, что ты богаче? Может у тебя машина новее/мощнее или там... домик в Испании, которого у меня нет?

> мы приходим к тому, что писать игры


Не, моё утверждение гораздо проще - игры писать не надо, их уже написали столько, что даже половину не пройти, если только играть.

И ещё мы приходим к тому, что кто-то всё равно будет писать игры, поэтому у анона всегда будет во что поиграть.

Ах да, тред же про Java. Она хороша там, где похуй на потребление ресурсов, но важны малое время разработки, безопаность и полный контроль над ошибками.
51 3032848
>>32540

> Папа, я думаю что ты не пишешь на плюсах.


Писать на плюсах это все-равно что жрать с помойки - хуйпойми какой синтансис разбавлен "вкусняшками" std++, qt, boost, а компиляторы это вообще отдельная песня.
52 3032852
>>32793

> где похуй на потребление ресурсов


С++ на qt жрёт не меньше.
изображение.png41 Кб, 1564x940
53 3032869
>>32731
Хочу посмотреть на ебальнички дурачков связавших свою жизнь с технологиями M$, когда такое покажет студия, венда, ms sql, azure.
54 3032875
>>32848
>>32852
Ребяты, С++ это такой ассембьер на стероидах с блэкджеком и шлюхами.

Как бы в соседнем треде не изъёбывались с новомодными стандартами и синтаксическим сахаром, но если программист не представляет какой код ему скомпилирует компилятор, то абсолютно до пизды на его знание стандартов - он хуёвый программист.

А вот про другие языки так сказать нельзя. В других языках это знание не обязательно (но приветствуется).
55 3032917
>>32671
>>32477
>>32510
Мало того что куча игр на джаве, так еще больше игр на Юнити, который C#, который по сути та же джава и это почему-то никого не смущает.
Если кратко, то после старта программы виртуальная машина обнаруживает часто используемые участки кода и держит кэш его машинного представления, по сути в моменте являясь программой на С.
Посмотри например как быстро работает Rust (игра) - вот это игра на виртуальной машине.
56 3032945
>>32875
Да да оптимизировать все goto как вы любите и кичиться этим "какой я крутой программист".
57 3032995
>>31558
На самом деле был охуенный фремворк. Но он уже помер вроде. На замену Javalin.
58 3033000
>>32131
Mah respectung. Мастером себя не считаю, но хватило силушек забыдлокодить регулярку чтобы детектить один спецефический формат скушек.
59 3033125
Доброго вечера, дорогие анонсы.
Аналитик данных в одном красном банке (не том, что первое место в рейтинге работодателей, скорее, на последнем), стек - python (pd + np + sns + scipy) / excel (vba / прочая ересь) / sql. Хочу свичнуться в джуву, начав с самых низов (и потеряв процентов 50 в ЗП) - ибо тут развития нет, да и загорелся что-то мыслью.
Штудирую Хорстмана - "базовый курс java se 8", потом в планах - Крейг Уоллс : "Spring в действии". Думаю, для попадания на стажировку достаточно.
Сегодня наткнулся на рекламу Javarush, где со всеми скидками предлагают год за 30% от фулл прайса. Как считаете, аноны, оно того стоит? Или лучше не терять время и деньги, идти тем путем, что распланировал выше? Спасибо)
60 3033132
>>33125
Конечно покупай, лучше всего кредит возьми под это потребительский))) Пото станешь 600к на изичах после курсов зарабатывать)))) Сам после такси сразу на сеньку устроился))))))
61 3033185
>>33125
Курсы редко стоят своих денег. Я бы продолжал двигаться в том направлении, что ты выбрал + начал бы выполнять слитые тестовые задания на Java разработчика в Sping, чтобы применять теоретические знания на практике.
62 3033191
>>33125
Имхо быстрее будет взять питоний джанго/фласк/фастапи и попробовать перейти в бэкенд внутри компании.
63 3033206
>>33191
Не, компания деревянная в плане разработки - своей команды магов-программистов нет, всё исполняется на аутсорсе. Поэтому развития в компании и не вижу.
Спасибо за ответы, буду придерживаться прежнего пути + добавлю практики из заданий с собесов
64 3033223
>>33125
У джавараша стоит покупать только курс по мавену. И Collection API. Тонкостей оптимизации конструкций вроде linkedList += ("Hello, world") тебе нигде больше не объяснят. А на собесе спросят.
65 3033328
>>33223
Зачем заниматься оптимизацией если попадаешь в целевые цифры по перформансу?
66 3033423
>>32477
Вот хороший пример, как это делается:
https://github.com/CaffeineMC/sodium-fabric
Это не пример хорошего кода и практик, тупая чсв пизда на разработчике в последнее время только гадит, практически не улучшая или даже ухудшая перформанс и ломая совместимость со всем, с чем только можно, но это пример того, как в принципе можно рендерить очень много и сложного на чистой джаве.
67 3033570
>>33125

>>Аналитик данных в одном красном банке


Красный это типа подментованый? втб что ли?

>>Хочу свичнуться в джуву


Внутри конторы свичайся. Пока мидлом не станешь будешь наравне с тысячами таксистов после курсов биться за вакансию.

>>Думаю, для попадания на стажировку достаточно.


ты студент чтоб на стажировку попадать? алгосы еще порешай, чтоб не обосраться на конкурсе.

>>Как считаете, аноны, оно того стоит?


знание языка это от силы 20% из того что тебе надо для вката в джаву.

>>33206

>>компания деревянная в плане разработки - своей команды магов-программистов нет, всё исполняется на аутсорсе.


фарми стаж пока учишься, без опыта ты нахуй не нужен даже с знаниями. С годом опыта уже сможешь дойти до техсобеса.
68 3033582
>>33125
Прочитай шапку, там вся инфа.
69 3033677
>>33570
Тебя на banki.ru забанили? Красный, это - альфа, mts или unicredit.
70 3033816
>>33328
Затем, что целевые цифры могут быть приемлемы для того, кто их нарисовал, но вызывать налезание глаз на жопу у всех остальных, или у некропукашеров, или у триллионзапросоввнаносекундщиков, или у 360-герцмониторщиков.
71 3033833
>>33816
Тогда это косяк манагера или кто там рисовал цифры в ТЗ. Тратить время на оптимизацию если по ТЗ всё ОК это тратить время в пустую задерживая сдачу проекта.
72 3033838
>>33833
Нахождение программистов в капиталистическом рабстве и невозможность ими высрать хоть какое-то своё мнение на большинстве оплачиваемых должностей вообще много чего портит. Я говорю про подход, зачем нужна сильная оптимизация.
73 3033843
>>33838
Я понимаю тебя и уважаю твой подход. Тем не менее при разработке ПО нужно выбирать или качество или скорость разработки. И то и другое задаётся техническим заданием, согласовывается всеми сторонами работы и если с той стороны оказался некомпетентный человек, то это его проблемы. Если его проблемы это ваши проблемы (например, при разработке продукта), то тогда с вашей стороны менеджеры должны вписать требования к качеству.

В общем, когда разработчик на стендапе докладывает о работе, которой его никто не просил заниматься и при этом его таски никуда не двигаются, это повышает шанс того, что сроки будут профуканы, клиенты уйдут в другое место и вся команда не получит премию/пойдет на улицу.
74 3033849
>>33843
Так я и не спорил со всем этим. Ты сказал, что нет смысла пересекать планку по оптимизации, но во-первых само по себе наличие планки не совсем правильно и скорее артефакт строгих сделок чем что-то к чему надо стремится, во-вторых большинство высеров про ненужность оптимизации идут в ответ на претензию в использовании медленных подходов которые и в скорости разработки никакого преимущества не дают и просто являются тупыми оправданиями.
75 3033863
>>33849

> во-первых само по себе наличие планки не совсем правильно и скорее артефакт строгих сделок чем что-то к чему надо стремится


Не стремится, но использовать как индикатор нужно/не нужно выделять время на работы по оптимизации решения.

> во-вторых большинство высеров про ненужность оптимизации идут в ответ на претензию в использовании медленных подходов которые и в скорости разработки никакого преимущества не дают и просто являются тупыми оправданиями


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

Если ты решал когда-нибудь задачки на литкоде, то тебе должно быть это знакомо когда придумываешь какой-то алгоритм, так чтобы он просто корректно работал, получаешь результаты перформанса и видишь, что даже в топ 50 % не попал. Напрягает мозги, и через 30 минут рождаешь алгоритм, который входит по перформансу в топ 10 %.

Вот эти 30 минут помноженные на каждую фичу за год просуммируются в недели работы. Никакой проджект менеджер подобное не может позволить разработчику. Поэтому не важно оптимизированный или не оптимизированный алгоритм был написан, главное что он корректный, что он был написан быстро и что он попадает в требования по перформансу. Это оптимальный подход в разработке коммерческого продукта.
76 3033868
>>33863

> Не стремится, но использовать как индикатор нужно/не нужно выделять время на работы по оптимизации решения.


Есть ещё такая вещь как последствия изначально неверно сделанного вывода. Часто нельзя руководствоваться планкой, т.к. ещё никаких результатов цельной работы программы нет, а алгоритмы уже пишутся, и если будет написано говно, оно будет вонять вечно.

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


> Если ты решал когда-нибудь задачки на литкоде, то тебе должно быть это знакомо когда придумываешь какой-то алгоритм, так чтобы он просто корректно работал, получаешь результаты перформанса и видишь, что даже в топ 50 % не попал. Напрягает мозги, и через 30 минут рождаешь алгоритм, который входит по перформансу в топ 10 %.


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

> Вот эти 30 минут помноженные на каждую фичу за год просуммируются в недели работы. Никакой проджект менеджер подобное не может позволить разработчику. Поэтому не важно оптимизированный или не оптимизированный алгоритм был написан, главное что он корректный, что он был написан быстро и что он попадает в требования по перформансу. Это оптимальный подход в разработке коммерческого продукта.


Ну и нахуй тут эти передёргивания? Неделя в год не стоит умножения скорости в десяток раз? И я уже говорил если т.н. бизнес требует здесь и сейчас и ему неделя не стоит, это проблема самого подхода бизнеса, когда программистов заставляют делать хуйню, и это не оправдание по теме.
76 3033868
>>33863

> Не стремится, но использовать как индикатор нужно/не нужно выделять время на работы по оптимизации решения.


Есть ещё такая вещь как последствия изначально неверно сделанного вывода. Часто нельзя руководствоваться планкой, т.к. ещё никаких результатов цельной работы программы нет, а алгоритмы уже пишутся, и если будет написано говно, оно будет вонять вечно.

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


> Если ты решал когда-нибудь задачки на литкоде, то тебе должно быть это знакомо когда придумываешь какой-то алгоритм, так чтобы он просто корректно работал, получаешь результаты перформанса и видишь, что даже в топ 50 % не попал. Напрягает мозги, и через 30 минут рождаешь алгоритм, который входит по перформансу в топ 10 %.


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

> Вот эти 30 минут помноженные на каждую фичу за год просуммируются в недели работы. Никакой проджект менеджер подобное не может позволить разработчику. Поэтому не важно оптимизированный или не оптимизированный алгоритм был написан, главное что он корректный, что он был написан быстро и что он попадает в требования по перформансу. Это оптимальный подход в разработке коммерческого продукта.


Ну и нахуй тут эти передёргивания? Неделя в год не стоит умножения скорости в десяток раз? И я уже говорил если т.н. бизнес требует здесь и сейчас и ему неделя не стоит, это проблема самого подхода бизнеса, когда программистов заставляют делать хуйню, и это не оправдание по теме.
77 3033909
>>33868

> неделя в год


Недели в год. Помноженные на 10 разработчиков и уже будет полгода разработки потраченного на оптимизации того чего никто не просил оптимизировать.

> поиск по листу вместо хэшмапа


Я про это по сути и говорил. Если у тебя этот список используется для хранения 10 элементов, то абсолютно всё равно какую структуру используешь. Аргумент, что хэшмапа ускорит алгоритм на 50 % когда латенси 2 микросекунды интересен лишь в спортивном программировании, но не в коммерческой разработке.

> требование здесь и сейчас это проблема бизнес подхода


И как твои успехи в объяснении этой мысли кабану/менеджеру/тимлиду?
78 3033912
>>33677
Я каждую финтех парашу еще по логотипу что ли должен знать?
Напиши прямо че за банк или вообще не пиши. А то ебать нагнал таинстсвенности "красный банк".
79 3033917
>>33909

>>Недели в год. Помноженные на 10 разработчиков и уже будет полгода


10 недель это 2 с небольшим человеко-месяца, а не полгода. Просто одна фича из сотни ненужных.
К тому же в энтерпрайзе это не выбор между оптимизация vs фича, это выбор между оптимизация vs дунасинг.
80 3033918
>>33917

> дунасинг


У меня в бэклоге 96 задач. Я смогу делать дунасинг примерно никогда.
81 3033929
>>33909

> Недели в год. Помноженные на 10 разработчиков и уже будет полгода разработки потраченного на оптимизации того чего никто не просил оптимизировать.


А если подсчитать, сколько все жители планеты стоят на светофоре...

> Я про это по сути и говорил. Если у тебя этот список используется для хранения 10 элементов, то абсолютно всё равно какую структуру используешь. Аргумент, что хэшмапа ускорит алгоритм на 50 % когда латенси 2 микросекунды интересен лишь в спортивном программировании, но не в коммерческой разработке.


Ну ты даун значит, что сказать, раз копротивляешься за говнокод из-за своей спеси.

> И как твои успехи в объяснении этой мысли кабану/менеджеру/тимлиду?


Может по делу что-то высрешь?
82 3033933
>>33909
Дауну уже объяснили, что всё что он высирает вытекает из того, что его кабан тупое дегенеративное хуйло, а он рабская скотопидорашка, которая делает всё чтобы побольше фич ему запилить, и что все аргументы основанные на этом никакого отношения к теме необходимости оптимизации и программирования в целом не имеют, но он продолжает талдычить одно и то же, барин сказал, барин сказал. Энтерпрайз головного мозга, хули.
83 3033935

>Сап двач, сегодня я пришёл к очевиднейшей и непоколебимой истине вселенского масштаба: оптимизация не нужна. Вот мой аргумент: мой кабан сказал, что оптимизировать не надо.

84 3033959
Почему вы еще не перекатились на Котлин?
85 3033984
>>33959
А зачем?
86 3034038
>>33935
>>33933
>>33929

> РЯЯЯЯ1!!!!


)
87 3034091
>>34038
Нихуя себе аргументированный ответ энтерпрайз господина.
image.png1,3 Мб, 900x1200
88 3034164
Почему, мистер шарпоеб, почему? Во имя чего? Что вы делаете? Зачем, зачем несете хуйню? Зачем продолжаете щитпостить? Неужели вы верите в какую-то миссию, или вам просто страшно признать свою неправоту? Так в чем же миссия, может быть, вы откроете? Это дуднет, аспнет, может быть, шарп, или вы боретесь за майкрософт? Иллюзии, мистер шарпомух, причуды восприятия. Хрупкие логические теории слабого шарписта, который отчаянно пытается оправдать свой ЯП — бесцельны и бессмысленны! Но они, мистер шарпоеб, как и Матрица, столь же искусственны. Только индус из майкрософт может выдумать скучное и безжизненное понятие «.NET»! Вам пора это увидеть, мистер шарпоеб, увидеть и понять! Вы не можете победить, продолжать борьбу бессмысленно. Почему, мистер шарпомух, почему вы упорствуете?
89 3034176
>>34164

>пик


Груви тут лишнее. Это базовое говнецо от базового апача.
90 3034195
>>34164
Смотрю на твою картину и вспоминаю что ноги Windows NT растут из VAX и OpenVMS.

Интерполирую в "Все на VAX, ибо NT это мутировавший VAX".
91 3034296
>>33959
Ни к чему, если уж нужен действительно продвинутый инструмент, есть божественная скала.
92 3034402
>>34195
Там больше вроде OS/2 чем VMS.
93 3034403
>>34296
Этого нульчую
олдфаг
94 3034497
Посоветуйте материалов по сесурити в спринге.
Жвт токены, корсы, csrf.
Только в оф доку не надо слать. Она большая, много лишнего и примеры такие себе.
95 3034502
>>33918
Так у тебя разве только ты один в команде?
96 3034511
>>33918
Что мешает игнорировать открытые задачи?
97 3034741
>>34502
Эти задачи только на меня одного. Общий бэклог я не знаю какой.
>>34511
Тимлид, который накидывает следующую порцию после того как сделаю текущую. Пока делаю текущую появляется ещё парочка в бэклоге. Молодой продукт - горе разработчику. Я бы хотел как работники банка сидеть на каком-то древнем легаси и пилить одну тачку в месяц. Но я работаю на технологическом острие в моей заднице в молодом стартапе.
98 3034922
>>34741
Просто на созвонах говоришь что "задача в процессе, пока разбираюсь" или "жду ответа от другой команды, пока не приходили". У нас так полкоманды делает.
99 3034941
>>34741

>Эти задачи только на меня одного. Общий бэклог я не знаю какой.


Ничего себе у тебя команда. Вы никогда общий бэклог не просматриваете, не грумите?
100 3034948
>>34941
Смотрим, но достаточно редко, чаще всего я сам выбираю себе из него задачи + выбирает тимлид. На планинге задачи тимлиду засовывается в спринт + пара моих задач если лид считает, что его задач мало.
101 3036837
как в джаву вкатиться? что делать - учить?
102 3036913
>>36837
Не как, а зачем.
103 3036924
>>36913
Затем, чтобы получить лучший язык по сумме всех качеств, и просто лучший по возможностям и выразительности.
104 3036929
>>36913
получить работу в IT
105 3036934
>>36924
От того, что ты выучишь Java, язык лучше не станет.
106 3036935
>>36934
А причём тут я или тот кто спрашивал про изучение джавы вообще?
107 3036937
>>36929
Зачем?
108 3036945
>>36937
чтоб не работать на заводе и гайки крутить?
109 3036959
>>36945
Так на заводе лучше, чем в ИТ.
110 3036990
>>36959
бред
111 3036994
>>36990
Два блока вниз.
112 3037006
Какой язык программирования может быть полезен в карьере джависта кроме джавы?
113 3037015
>>37006
Груви, питон, го.
114 3037024
>>37015
А в чем их польза, можно развернуто?
115 3037032
>>37024
Завтра напишу если никто не ответит.
116 3037049
>>36959
гайки крутить? мне не хочется
117 3037054
>>37049
А что тебе хочется?
118 3037076
>>36837
Учи сам язык, спринг бут, мавен/грэдл, гит и старайся как можно быстрее начать работать где-угодно чтобы нарабатывать опыт
119 3037077
>>36934
Потому что он уже безупречен
120 3037085
>>37076
Все сделано. 2 года стажа "хоть где-то" есть. А дальше чего ?
121 3037092
>>37054
писать код и получать чуть больше среднего в регионе
122 3037204
>>37092
Сделано, что дальше?
123 3037267
>>37024
Ни в чём. Говно нахрюки.
124 3037269

>>3037091


Судя по тому как шарподауны ежедневно разрываются у нас в треде на ровном месте, именно их нервы попорчены, и я даже знаю чем. ГЕТСЕTNНNТ
125 3037386
>>37085
если профильная вышка - учи алгосы + сисдиз и вкатывайся в скотомяс на большие сотыги
126 3037679
Чем кнопочка билд отличается от мавен клин инстал?
127 3038299
>>37679
Тем, что под кнопочкой может находиться любая взбредшая в больную голову идеи команда вместо слин инсталла, ну или взбредшая тебе в голову, если ты настроишь это.
128 3038423
Как выполнить это условие в задаче?

"Обратите особое внимание проблемам при работе в конкурентной среде (1000 RPS по
одному кошельку). Ни один запрос не должен быть не обработан (50Х error)"

Запросы сохранять в кафку, а потом из кафки их забирать?
129 3038451
>>38423

>Ни один запрос не должен быть не обработан


Харкнул бы в ебало тому кто это написал.
130 3038560
>>38299
А по умолчанию он че делает
131 3038561
>>38423
Классическая "экзектли ванс",сначала пишешь в базу,потом из базы пушишь,на успешную фиксацию от брокера вешаешь колбек на удаление из базы, ещё идемпотентный режим на продюсере включи чтобы о дублировании при ретраях не думать
132 3038567
>>38423
Это откуда? Какое-то тестовое на работу? Дай ссылку. Жажду вкатиться.
133 3038586
>>38560
Ну так посмотри чё там в конфиге написано.
134 3038704
>>37032
Браток, можешь все таки рассказать? Вот хочется что-то выучить, кроме джавы. Но не хочется учить и потом никогда не использовать.
Из того что я сам представляю. Ну это
1. Жс и тс с фреймворками. Ну фрон для бека мочь написать. Но фулстеком быть не хочется.
2. Котлин. Есть вакансии где часть сервисов на котлине. Но выглядит, как просто свистоперделка.
3. Питон. Ну это для сиайки вместо баша использовать или руками запустить скрипт на виртуалке или на локальном линуксе. Такие кейсы были у коллег, но у меня пока не было, чтобы нагугленного скрипта баша не хватило.
135 3038811
>>38704
Первое можно, а вот 2 и 3 совершенно юзлес навыки.
136 3038826
>>38586
Ты посмотри
137 3038935
@Transactional это спринговское понятие или нет? Там же создаётся прокся и все. Если транзакция валится ее нужно роллбекнуть,а ведь не для всех операций можно сделать обратную. Мы ведь не можем вешать жту аннотацию на методы где внутри не происходит доступ к бд. Как это работает?
138 3038990
Убедите меня не скатываться на Nodejs
139 3039042
https://ionutbalosin.com/2024/02/jvm-performance-comparison-for-jdk-21/
Бесплатный граальВМ сосет у хотспота.
140 3039054
>>38935

>@Transactional это спринговское понятие или нет?


Сейчас уже добавили и Jakarta EE.

>>38935

>Если транзакция валится ее нужно роллбекнуть,а ведь не для всех операций можно сделать обратную. Мы ведь не можем вешать жту аннотацию на методы где внутри не происходит доступ к бд. Как это работает?


Это работает, только для тех операций которые поддерживают JTA. Обычно речь идёт только о базах, но может быть и меседжинг который подтверждает получение сообщения.
141 3039415
>>39054
Не знаешь в каком классе происходит проверка на "поддержку jta"? И что если не поддерживает,просто не создаётся прокси?
142 3039457
Подскажите пожалуйста, если комментарии пишутся на английском языке, то разработку ПО так же писать на английском языке ?
143 3039592
>>39457
Kommentarii na dvache tozhe nado pisat na angliyskom yazike.
144 3039930
>>39618 (Del)

> лучший президент


Не ври, я ещё не правлю
145 3040005
>>39415
Драйвер реализует поддержку XAResource, и тогда JTA может управлять транзакциями. https://www.progress.com/tutorials/jdbc/understanding-jta
146 3040009
>>39042
Херня какая-то. Не могли петшоп потестить и убидится, что постгре сосёт у оркала, а на джаву вообще похер.
147 3040074
>>39457
Комментарии на любом языке пишутся. Это названия классов и методов на производном английского.
148 3040200
>>38826
Да ты охуел что-ли?
149 3040420
>>39930
Ты пупуня
150 3040539
>>40200
Привет когда посмотришь
151 3040563
>>40539
Щас твою мамашу дозакапываю и посмотрю на могилу.
152 3040620
>>40563
Давай,таску на тебя перевел
153 3040748
>>31296 (OP)
Здравствуйте, а какие преимущества Java перед C# в 2024 с точки зрения разработчика?
154 3040761
>>40748
Никаких. Теперь иди нахуй.
155 3040771
>>40761
А какие еще компании помимо Тинькофф начали переходить на сишарп с джавы?
156 3040810
>>40748
Дохуя. Система сборки, меньше бойлерплейта (с лобком только правда), скорость, библиотек много, майнкрафт, обратная совместимость, ещё туева хуча всяких более мелких вещей, которые записаны в моей пасте, от которой шарподебилов жопа на луну высылает, но которая у меня на компе, а я с телефона печатаю щас.

Но, как тебе уже сказали, иди нахуй, порвакатор. Для языкосрачей отдельный тред есть.
157 3040927
Да как блядь написать этот парсер ебучий???
158 3040991
>>40927
Regrex?
159 3041010
>>40991
Я не могу. Надо распарсить аргументы функции из java сурс кода. Ту часть что между скобками. При этом аргументом может быть строка, символ, обычное число или переменная. Строки могут быть с конкатенацией и аргументы могут быть на нескольких строках.
160 3041029
>>41010
Какая-то наркомания, хотя не звучит как что-то сложное. Проверяешь типа аргумента и засовываешь его в соответствующий парсер если я правильно понял проблему
161 3041039
>>41029
Хз, третий день не могу написать, всю голову сломал.
162 3041041
>>41039
Скинь ТЗ, я в чатгопоту платную засуну
163 3041044
>>41041
Выше скинул уже.
164 3041049
>>41044
Ты это называешь ТЗ? >>41010
Если да, то у меня для тебя плохие новости
165 3041083
>>41049
Закинул в бесплатную чатгопоту, он расписал вроде. Завтра на работе буду пробовать. В твоей помощи я НЕ НУЖДАЮСЬ.
166 3041112
>>41083

> ноет в треде


> НЕ ПОМОГАЙТЕ МНЕ


Ладно, ладно
167 3041180
>>40771

>А какие еще компании помимо Тинькофф начали переходить на сишарп с джавы?


При Олеге такой хуйни не было.
168 3041217
>>41180
Че за пиздеж, с чего вдруг им переходить?
169 3041221
>>41217
Олег и Оливер ушли, бардак начался.
https://www.tinkoff.ru/career/it/net/
170 3041222
>>41217
Жавистов уже который год не могут под свой днищебюджет найти, вестимо. Не пойму только, почему они думают, что с шарпом такого не будет. Днищебюджет он и в Африке дно, даже шарпомухи на такое говно вряд ли сядут.
171 3041232
>>41010
Надо грамматику писать.
172 3041237
>>41221
То что у них появились проекты или сервисы на шарпе значит что они от джавы отходят?
У них до сих пор куча конф и блогов по джаве. На Хабре ведут дайджест по новинкам джавы.
А вот то, что озон именно переписывал огромную часть логики что была на шарпе на го, они сами много раз писали.
Screenshot from 2024-02-09 09-12-43.png7 Кб, 319x118
173 3041352
Задумал освежить в голове алгоритмы. Прочитал про быструю сортировку, идея сама понятна. Посмотрел реализацию на Питоне, вопросов не возникло. А вот реализацию на Java, которая на известных сайтах указана (тут например: https://www.baeldung.com/java-quicksort) я понять не могу. Точнее, один момент прежде всего смущает. Зачем в методе partition(...) в конце всегда свопаются эти элементы, вне зависимости от того, больше они или меньше, чем pivot?
2024-02-0913-16-49.png71 Кб, 802x632
174 3041499
FPU просто пиздец какие быстрые. Я бы даже сказал, учитывая их скорость, можно сказать, что они работают мгновенно. Сложно представить себе ситуацию, в которой будет упор на FPU. Я думаю это не только потому, что сами вычисления выполняются быстро, но и потому, что нагрузка на FPU обычно не стакается при увеличении абстракций, а вот количество всех остальных инструкций легко может расти экспоненциально от криворукости разработчиков.

Пришёл я к такому выводу, прикидывая наилучшие входные данные для генератора чисел в распределении weibull-length и заметив, что на большом разрешении программка для семплирования подлагивает нехило. Решил добавить небольшой бенчмарк, и оказалось, что сама генерация занимает тут считанные мгновения, а время в основном тратится внутри javafx.
Thymeleaf галлюцинирует? 175 3041526
Есть небольшой проект на Spring Boot 3.2.x и Thymeleaf. Когда я запускаю его из IDE, главная страница (localhost:8080) отображается корректно. Когда же я собираю его (mvn clean package) и запускаю через java -jar, по localhost:8080 мне открывается что-то странное и не похожее на index.html внутри jar'а. Где может быть проблема?
176 3041882
>>40927
Просто бери ANTLR
177 3041883
>>40748
Здравствуйте, преимущество в том что создатель языка не начал от него избавляться
https://www.theregister.com/2024/01/31/microsoft_seeks_rust_developers/
178 3041997
>>41232
Возьми ANTLR там есть грамматика для Java.
179 3042030
Вот что мне выдал chatgpt. Обьясните пожалуйста как это работает, что на выходе получается, и как мне определить что на картинке, например что это цифра 1 ?

Создание сверточной нейронной сети (CNN) без использования сторонних библиотек с использованием картинки включает в себя несколько шагов. В данном примере я использую Java для простоты, но реализация без сторонних библиотек может быть сложной, особенно в реальных проектах. Пример ниже включает в себя один сверточный слой и подвыборку:

java
Copy code
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import java.util.Arrays;

public class SimpleCNN {

public static void main(String[] args) {
// Загрузка изображения
BufferedImage image = loadImage("path/to/your/image.jpg");
if (image != null) {
// Преобразование изображения в трехмерный массив
double[][][] input = imageToMatrix(image);

// Параметры сверточного слоя
int inputSize = image.getHeight();
int kernelSize = 3;
int numKernels = 2;

// Создание сверточного слоя
ConvolutionalLayer convLayer = new ConvolutionalLayer(inputSize, kernelSize, numKernels);

// Прямой проход через сверточный слой
convLayer.forward(input);

// Получение выходных данных
double[][][] outputs = convLayer.getOutputs();

// Вывод результатов
System.out.println("Outputs after convolution:");
for (int i = 0; i < numKernels; i++) {
System.out.println("Kernel " + (i + 1) + ":");
for (int j = 0; j < inputSize - kernelSize + 1; j++) {
for (int k = 0; k < inputSize - kernelSize + 1; k++) {
System.out.print(outputs[j][k] + " ");
}
System.out.println();
}
System.out.println();
}
}
}

// Загрузка изображения
private static BufferedImage loadImage(String filePath) {
try {
return ImageIO.read(new File(filePath));
} catch (IOException e) {
e.printStackTrace();
return null;
}
}

// Преобразование изображения в трехмерный массив
private static double[][][] imageToMatrix(BufferedImage image) {
int height = image.getHeight();
int width = image.getWidth();
double[][][] matrix = new double[3][height][width]; // 3 канала для RGB

for (int y = 0; y < height; y++) {
for (int x = 0; x < width; x++) {
int rgb = image.getRGB(x, y);
matrix[0][y][x] = (rgb >> 16) & 0xFF; // Красный канал
matrix[1][y][x] = (rgb >> 8) & 0xFF; // Зеленый канал
matrix[2][y][x] = rgb & 0xFF; // Синий канал
}
}

return matrix;
}
}

// Класс сверточного слоя
class ConvolutionalLayer {
private int inputSize;
private int kernelSize;
private int numKernels;
private double[][][] kernels;
private double[][][] outputs;

public ConvolutionalLayer(int inputSize, int kernelSize, int numKernels) {
this.inputSize = inputSize;
this.kernelSize = kernelSize;
this.numKernels = numKernels;
this.kernels = initializeKernels();
this.outputs = new double[numKernels][inputSize - kernelSize + 1][inputSize - kernelSize + 1];
}

// Инициализация весов (ядер)
private double[][][] initializeKernels() {
// Реализуйте ваш метод инициализации весов
// Здесь просто случайные значения для примера
double[][][] newKernels = new double[numKernels][kernelSize][kernelSize];
for (int i = 0; i < numKernels; i++) {
for (int j = 0; j < kernelSize; j++) {
for (int k = 0; k < kernelSize; k++) {
newKernels[j][k] = Math.random();
}
}
}
return newKernels;
}

// Прямой проход (применение свертки)
public void forward(double[][][] input) {
for (int i = 0; i < numKernels; i++) {
for (int j = 0; j < inputSize - kernelSize + 1; j++) {
for (int k = 0; k < inputSize - kernelSize + 1; k++) {
double sum = 0;
for (int l = 0; l < kernelSize; l++) {
for (int m = 0; m < kernelSize; m++) {
sum += input[0][j + l][k + m] * kernels[l][m]; // Используем только один канал (например, красный)
}
}
outputs[j][k] = sum;
}
}
}
}

public double[][][] getOutputs() {
return outputs;
}
}
Этот пример загружает изображение, преобразует его в трехмерный массив, применяет сверточный слой и выводит результаты. Заметьте, что этот код предназначен для иллюстративных целей и может потребовать доработок и оптимизаций для использования в реальных приложениях.
179 3042030
Вот что мне выдал chatgpt. Обьясните пожалуйста как это работает, что на выходе получается, и как мне определить что на картинке, например что это цифра 1 ?

Создание сверточной нейронной сети (CNN) без использования сторонних библиотек с использованием картинки включает в себя несколько шагов. В данном примере я использую Java для простоты, но реализация без сторонних библиотек может быть сложной, особенно в реальных проектах. Пример ниже включает в себя один сверточный слой и подвыборку:

java
Copy code
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import java.util.Arrays;

public class SimpleCNN {

public static void main(String[] args) {
// Загрузка изображения
BufferedImage image = loadImage("path/to/your/image.jpg");
if (image != null) {
// Преобразование изображения в трехмерный массив
double[][][] input = imageToMatrix(image);

// Параметры сверточного слоя
int inputSize = image.getHeight();
int kernelSize = 3;
int numKernels = 2;

// Создание сверточного слоя
ConvolutionalLayer convLayer = new ConvolutionalLayer(inputSize, kernelSize, numKernels);

// Прямой проход через сверточный слой
convLayer.forward(input);

// Получение выходных данных
double[][][] outputs = convLayer.getOutputs();

// Вывод результатов
System.out.println("Outputs after convolution:");
for (int i = 0; i < numKernels; i++) {
System.out.println("Kernel " + (i + 1) + ":");
for (int j = 0; j < inputSize - kernelSize + 1; j++) {
for (int k = 0; k < inputSize - kernelSize + 1; k++) {
System.out.print(outputs[j][k] + " ");
}
System.out.println();
}
System.out.println();
}
}
}

// Загрузка изображения
private static BufferedImage loadImage(String filePath) {
try {
return ImageIO.read(new File(filePath));
} catch (IOException e) {
e.printStackTrace();
return null;
}
}

// Преобразование изображения в трехмерный массив
private static double[][][] imageToMatrix(BufferedImage image) {
int height = image.getHeight();
int width = image.getWidth();
double[][][] matrix = new double[3][height][width]; // 3 канала для RGB

for (int y = 0; y < height; y++) {
for (int x = 0; x < width; x++) {
int rgb = image.getRGB(x, y);
matrix[0][y][x] = (rgb >> 16) & 0xFF; // Красный канал
matrix[1][y][x] = (rgb >> 8) & 0xFF; // Зеленый канал
matrix[2][y][x] = rgb & 0xFF; // Синий канал
}
}

return matrix;
}
}

// Класс сверточного слоя
class ConvolutionalLayer {
private int inputSize;
private int kernelSize;
private int numKernels;
private double[][][] kernels;
private double[][][] outputs;

public ConvolutionalLayer(int inputSize, int kernelSize, int numKernels) {
this.inputSize = inputSize;
this.kernelSize = kernelSize;
this.numKernels = numKernels;
this.kernels = initializeKernels();
this.outputs = new double[numKernels][inputSize - kernelSize + 1][inputSize - kernelSize + 1];
}

// Инициализация весов (ядер)
private double[][][] initializeKernels() {
// Реализуйте ваш метод инициализации весов
// Здесь просто случайные значения для примера
double[][][] newKernels = new double[numKernels][kernelSize][kernelSize];
for (int i = 0; i < numKernels; i++) {
for (int j = 0; j < kernelSize; j++) {
for (int k = 0; k < kernelSize; k++) {
newKernels[j][k] = Math.random();
}
}
}
return newKernels;
}

// Прямой проход (применение свертки)
public void forward(double[][][] input) {
for (int i = 0; i < numKernels; i++) {
for (int j = 0; j < inputSize - kernelSize + 1; j++) {
for (int k = 0; k < inputSize - kernelSize + 1; k++) {
double sum = 0;
for (int l = 0; l < kernelSize; l++) {
for (int m = 0; m < kernelSize; m++) {
sum += input[0][j + l][k + m] * kernels[l][m]; // Используем только один канал (например, красный)
}
}
outputs[j][k] = sum;
}
}
}
}

public double[][][] getOutputs() {
return outputs;
}
}
Этот пример загружает изображение, преобразует его в трехмерный массив, применяет сверточный слой и выводит результаты. Заметьте, что этот код предназначен для иллюстративных целей и может потребовать доработок и оптимизаций для использования в реальных приложениях.
180 3042045
>>42030
Ты хочешь реализовать распознавание изображений на жабе не используя сторонних библиотек?

Для твоей задачи есть OpenCV, но он тяжёлый. Думаю проще найти на гитхабе какую-нибудь обученную сетку на распознавание цифр, с бэкэндом в виде тензорфлоу, и жаба апи.
181 3042264
>>41882
>>41997
Уже все решил с помощью чатгопоты. Не нужен там антлр.
182 3042363
>>42045

>хочешь реализовать распознавание изображений на жабе не >используя сторонних библиотек?



Именно.

Неужели настолько сложно переписать свёрточную нейронную сеть в обычный алгоритм ?
Вот например перцептрон -

If (x == 0) {
//then
} else if (x == 1){
//else
}

ChatGPT:
Алгоритм работы сверточной нейронной сети (CNN) можно разделить на несколько этапов: ввод данных, прямой проход (прямое распространение), обратный проход (обратное распространение) и обучение. Давайте рассмотрим каждый из этих этапов подробнее:

Ввод данных:

Изображение: Входные данные для сверточной нейронной сети часто представляют собой изображения. Изображение представляется трехмерным тензором, где размерности соответствуют высоте, ширине и количеству каналов (RGB, например).
Батч данных: Обычно данные передаются в сеть в батчах (наборах из нескольких примеров), что позволяет ускорить обучение и улучшить обобщение.
Прямой проход (Прямое распространение):

Сверточные слои: Сначала входные данные проходят через сверточные слои, в которых применяются фильтры (ядра) к локальным областям данных. Это помогает извлечь различные признаки из изображения.
Активации: Результаты свертки подаются через функции активации (например, ReLU), чтобы добавить нелинейность в сеть.
Подвыборка: Чтобы уменьшить размерность данных и выделить наиболее важные признаки, применяется подвыборка.
Полносвязные слои:

Вытягивание (Flattening): После сверточных слоев данные вытягиваются в одномерный вектор, чтобы передать их в полносвязные слои.
Полносвязные слои: В полносвязных слоях каждый нейрон связан со всеми нейронами предыдущего слоя. Эти слои позволяют модели объединять признаки и делать выводы на основе всего входного пространства.
Выходной слой:

Финальные прогнозы: Выходные данные с полносвязных слоев передаются в выходной слой, который генерирует прогнозы модели (например, для задачи классификации).
Обратный проход (Обратное распространение):

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

Итерации: Процесс прямого и обратного прохода повторяется на нескольких итерациях (эпохах) с новыми батчами данных.
Минимизация функции потерь: Целью обучения является минимизация функции потерь, чтобы модель могла делать точные прогнозы на новых данных.
182 3042363
>>42045

>хочешь реализовать распознавание изображений на жабе не >используя сторонних библиотек?



Именно.

Неужели настолько сложно переписать свёрточную нейронную сеть в обычный алгоритм ?
Вот например перцептрон -

If (x == 0) {
//then
} else if (x == 1){
//else
}

ChatGPT:
Алгоритм работы сверточной нейронной сети (CNN) можно разделить на несколько этапов: ввод данных, прямой проход (прямое распространение), обратный проход (обратное распространение) и обучение. Давайте рассмотрим каждый из этих этапов подробнее:

Ввод данных:

Изображение: Входные данные для сверточной нейронной сети часто представляют собой изображения. Изображение представляется трехмерным тензором, где размерности соответствуют высоте, ширине и количеству каналов (RGB, например).
Батч данных: Обычно данные передаются в сеть в батчах (наборах из нескольких примеров), что позволяет ускорить обучение и улучшить обобщение.
Прямой проход (Прямое распространение):

Сверточные слои: Сначала входные данные проходят через сверточные слои, в которых применяются фильтры (ядра) к локальным областям данных. Это помогает извлечь различные признаки из изображения.
Активации: Результаты свертки подаются через функции активации (например, ReLU), чтобы добавить нелинейность в сеть.
Подвыборка: Чтобы уменьшить размерность данных и выделить наиболее важные признаки, применяется подвыборка.
Полносвязные слои:

Вытягивание (Flattening): После сверточных слоев данные вытягиваются в одномерный вектор, чтобы передать их в полносвязные слои.
Полносвязные слои: В полносвязных слоях каждый нейрон связан со всеми нейронами предыдущего слоя. Эти слои позволяют модели объединять признаки и делать выводы на основе всего входного пространства.
Выходной слой:

Финальные прогнозы: Выходные данные с полносвязных слоев передаются в выходной слой, который генерирует прогнозы модели (например, для задачи классификации).
Обратный проход (Обратное распространение):

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

Итерации: Процесс прямого и обратного прохода повторяется на нескольких итерациях (эпохах) с новыми батчами данных.
Минимизация функции потерь: Целью обучения является минимизация функции потерь, чтобы модель могла делать точные прогнозы на новых данных.
183 3042394
>>42363
Нейронная сеть это просто огромная матрица. Её можно написать на любом языке
image.png2,1 Мб, 1600x900
184 3042398
185 3042436
>>41237

>То что у них появились проекты или сервисы на шарпе значит что они от джавы отходят?


Это большая копрорация - там будет всё. Есть вещи которые они купили. Условно это для примера, у меня нет инфы купили они права на некий сервис телефонии на .Net и теперь развивают свой телефонный спам на его базе. Понятно же что не будут переписывать на Java, а будут развивать и дальше.
Но дальше будет бодание между .Net и Java командами, на чем начинать писать проект Х. Но в реальности это больше административные вещи, у кого больше аппаратный вес. На технологические преимущества платформ руководству похуй.
186 3042630
>>42436
Тут еще такой аспект, что на джаве работы много и зп высокие, шарписты подешевле будут, а тинек контора невероятно жадная
187 3042684
>>42630
Щас любой анальник копеечная шлюха.
188 3042754
>>42363

>If (x == 0) {


>//then


>} else if (x == 1){


>//else


>}


Перцептроны-то в реальных нейросетях не с бинарными значениями работают, а с диапазонами от 0 до 1
А теперь тебе нужно написать N-слоёв таких ifelse'ов, по M перцептронов в каждом слое, и каждый перцептрон соединить со всеми другими следующего слоя и хранить коэффициенты для каждой связи.
Потом еще такие штуки как LSTM в дело вступают

>Неужели настолько сложно переписать свёрточную нейронную сеть в обычный алгоритм ?


Ну явно сложнее чем взять либу, хотя как говорится бешеной собаке семь верст - не крюк, так что всё можно написать самому.
189 3042880
Держу все старые джаватреды в избранном до того, как они утонут. Это примерно 10 тредов. Вижу все новые посты по джаве и ни одного не пропускаю. В чём я не прав?
190 3042941
>>42880
Ты пупуня
191 3042983
>>42880
Это случайно не ты письма на балабановскую спичечную фабрику пишешь?
192 3043250
Задавайте вопросы пока время есть.
193 3043336
>>43250
Какова вероятность найти работу на удаленке, если у меня нет профильного образования?
194 3043342
>>43336
Не знаю, я как устроился после вуза, так там и работаю.
195 3043409
Опыт написания плагинов и модов на майнкрафт уважается у джава-господ или это нерелевантная подзалупина?
3042066536previewбесплатно-ryan-gosling.gif1,2 Мб, 640x546
196 3043412
>>31296 (OP)
Какие есть видеоуроки норм на английском?
Хотел курс с юдеми найти самый популярный, а на торрентах нету.
Книги это конечно хорошо, но не хочется буковы читать. Хочется картинки смотреть.
197 3043432
1702420214532.jpg71 Кб, 554x682
198 3043448
>>43336
Звучит несложно, но это своего рода зависимость. Если я правильно понимаю суть вопроса, вы проверяете тип аргумента и помещаете его в соответствующий парсер!
199 3043479
>>43432
Ты ебанулся индусов смотреть?
200 3043568
>>43409
Уважается, по сути.
201 3043602
>>43409
Нерелевантная позалупина только если интервьюер не играл в твой мод
202 3043917
Сап джависты. Пришел за советом к сеньорам помидорам. Мне на работе дали в коим-то веке сурьезную задачу. Нужно сделать функционал который будет собирать статистику по потреблению сетевого трафика в терминалах. Проще говоря есть такая хуйня как на пикриле, она работает на дебиане, и в инторнет эта хуйня выходит через модем (смотреть на пик2). И собственно сам вопрос, как мне реализовать такой функционал? Есть одна идея, хочу раз в день отправлять ussd коды которые будут отвечать сообщением аля "осталось 110 мб на 11.02.2023" а на следующий день будет "осталось 60 мб на 12.02.2023". В итоге разница будет 50 мб, что и будет составлять потребление сетевого трафика. НО!

А есть ещё и другие способы? Какие-то новые утилиты ставить нельзя, терминалов куча, а ресурсов у каждого терминала мало.
203 3043946
204 3044205
>>33959
В 2024-м Котлин стал бессмысленным языком. Всё тоже самое есть в Java. Впрочем, они пилят сейчас Kotlin Script (на замену Groovy). Как допилят - тогда может смысл появится его использовать. И то, иногда.
205 3044207
>>37077
Я бы так не сказал. Например, очень не хватает возможность использования именованных параметров при вызове метода, вместо фиксированного жесткого порядка (как в Groovy или петоне).
206 3044269
>>44207
В груви это просто мапа передаваемая первым параметром, делай так же
207 3044353
>>44205

>В 2024-м Котлин стал бессмысленным языком. Всё тоже самое есть в Java.


И как мне заменить 100500 перегруженных методов, на один с дефолтными параметрами?
208 3044547
Приходишь на собес по джаве. Ехидный 15-летний тимлид просит назвать возможные состояния виртуального потока и чем PINNED отличается от PARKED. Твои действия?
209 3044552
>>44547
Ехидно отвечаю во всех подробностях, ведь я тоже ехидный (почти) 15-летний тимлид.
210 3044554
>>44552
Почти в смысле постарее немного, а не помоложе, чтобы не подумали.
211 3044590
>>44353
А в котлине как?
212 3045057
>>44554
Пиздючела,кому ты пиздишь,иди скибиди туалетов наверни
213 3045200
>>44547
Перед этим интересуюсь какая версия джавы на проекте
214 3045237
>>45057
Скуфынь, успокойся, по ту сторону монитора такой же скуф сидит.
215 3045249
>>45237

> скибиди доп доп ес ес

216 3045329
>>44590
В Котлине я юзаю дефолты и именованные параметры.
217 3045931
>>45200
Интересуюсь, какая версия мамкиного борща у умника.
218 3045977
>>45200
Отвечаю что пятая,но в ближайшее время планируем переехать на 21,твои действия?
219 3046007
>>45931
Сегодняший, завернула как раз мне на работку, c которой вы вызвонили меня на линкеде
>>45977
Хороший ответ. Остаётся отвечать серьёзно или троллить до конца, почему раньше не переезжали, коллектив старый получается? В ближайшее время это потянуть пока не выйдет 23 LTS?
220 3046009
>>45977
Отвечаю, что я программист на скрэтче, но в рабочее время планирую выучить спринг и начать приносить велью кабану.
221 3046023
>>46009
Круто!!! Желаю тебе достичь своей цели,мв вам перезвоним
222 3046025
>>46007
Расскажем после интервью
9bb066864b0d225c324551ee2c83125d (1).jpg24 Кб, 564x564
223 3047230
О великие эксперты, что можете вы сказать о курсе JavaRush ?
При чем не тот который у них по подписке, а тот который обещает "За 12 месяцев до Junior" ?
224 3047303
>>45329

>дефолты


Как правило это хуевый подход.
В питоне на большом проекте сейчас много боли из-за возможности в питончкие дефолты повесить.
Ну и у нас еще DI через декораторы, это ужас полный.
225 3047306
>>41222
>>42630
Ну они до сих пор ищут скалистов себе. Даже курсы проводят ежегодно.
Правда кому нахуй сейчас нужна скала? ФП в продовом коде с бизнес-логикой полностью провалилась как парадигма.
226 3047345
>>47306
Кафка на скале.
227 3047365
>>47230
У них же бесплатные статьи и приложения. Да и в целом, только идиот лоботомированный будет платить за то чтобы за него структурировали информацию
228 3047417
>>47303
Почему же хуёвый-то?
229 3047488
>>47303

> В питоне на большом проекте


>язык без ООП.


Вы бы ещё на C пожаловались.
230 3047686
>>47303

>Как правило это хуевый подход.


Любую технологию можно довести до абсурда, так что это будет треш.

Дефолтные параметры хорошо подходят для случаев когда есть много аргументов большая часть из которых опциональная. Например конфигурирование гсон парсера:
var gson = new GsonBuilder().serializeNulls().setDateFormat("yyyy-MM-dd").create();
в джаве приходится использовать билдеры. А в котлине можно создать один метод или просто конструктор.
231 3047754
>>47686

>>в джаве приходится использовать билдеры. А в котлине можно создать один метод или просто конструктор.


Дефолтные значения нужны чтоб не создавать несколько перегруженных методов. Билдеры не про это.
232 3047800
>>47686
Челик, челибосик, реализуй один метод, а тот говнокод с крушением поезда "крушение поезда".
233 3048041
>>47754
Чееееел ты не понимаешь.
1. Дефолтные параметры без именованных аргументов - говно без задач.
2. И перегрузка методов и билдер могут использоваться для того чтобы инициализировать объект в ситуации когда часть параметров опциональна, но есть свои ограничения. Перегрузку нереально сделать если у тебя десяток параметров тупо все комбинации не перебрать или у тебя есть параметры одного и того же типа. У билдера таких проблем нет, но там сложнее указать какие параметры обязательные. А с дефолтными и именованными параметрами всё просто: обязательные параметры оставил без дефолта, рациональные с и всё.
UzJ7PbcsBCI.jpg96 Кб, 1080x1080
234 3048794
ГикБрейнз. Итоги.
235 3048932
>>44547
Ехидно спрашиваю как вы это используете в повседневной разработке
236 3048934
>>44353
method(Object... args)
дальше проверяешь, назначаешь умолчания
237 3048939
>>48794
Что не так?
238 3048965
>>48934
Только шарпидора выгнали, так жопоскриптер завелся.
239 3049031
Задавайте вопросы пока я тут.
240 3049060
>>49031
Так ты и завтра будешь тут
241 3049352
>>48939
Обрати внимание на логотип справа над текстом "гарантированное трудоустройство...".
242 3049368
>>49352
JavaScript?
Стикер512x512
243 3049558
>>48934

>method(Object... args)


И весь API переписать в стиле:

>methodA(Object... args) Object


>methodB(Object... args) Object


>methodC(Object... args) Object

244 3049683
>>49558
Ну можешь шаблон Стоитель применить, только ты его нихуя не знаешь. А выёбываешься.
245 3049835
>>49683
Спокуха ретард. Билдеры уже обсуждили.
246 3049840
>>49683

>шаблон строитель


>ты низнаешь!!!!


>будто в этом костыльном говне вообще надо разбираться



Проиграл

мимо фп господин спокойно, но решительно пишет свой функциональный код на скале
247 3049918
>>49352
А в чем проблема с гарантией?
Предлагаешь лоху ученический договор. Должен отработать 3 года за зп 50к. Если не справляется с тасками или хочет уволиться досрочно - платит штраф в 3кк (официально - полная стоимость обучения, которую якобы покрыла контора, так что все законно).
248 3049931
>>49918
Затраты придется доказывать, обучение проводить реальными оплатами, какая то квалификация должна появиться после обучения. Не все так просто.
Но для гарантии, действительно, достаточно предложить ООО Рога и копыта с переездом в Зажопинск за МРОТ, но и такого не будет.
249 3049940
>>49918
Ты совсем что-ли даун? Кто-то про гарантию что-то говорил? Оно использовано лишь для того. чтобы показать, куда смотреть.
250 3049995
>>49918
Таких лохов не существует
251 3050051
>>49840

>фп господин


Жрёшь поди одно чаппи, с редким китикетом?
252 3050178
>>49995
в прошлом году даже скрины кидали как такие лохи жаловались во всяких твитерах что их кинули, но осознали они это слишком поздно
253 3050379
>>49918

>Предлагаешь лоху ученический договор. Должен отработать 3 года за зп 50к.


Так тут кругом орут что вката нет, поезд ушёл, 40 тысяч откликов на вакансию, а ты тут на такую манну небесную нос воротишь, пиздец, Первые несколько лет 500 долларов - нормальная зп, в регионах так мидлы уже получают.
254 3050385
>>49558
Ну не хотите перегружать методы, не хотите билдеры - пожалуйста
255 3050390
>>50051
охуеть ты шутник, сам понял что высрал?
256 3050423
>>50390
А ты не понял? Ты точно ФП программист?
257 3050686
>>50423
Ты просто дегенерат
258 3050749
>>50686
А может все-таки ты?
259 3050823
>>50749
Я думаю мы оба дегенераты. Иначе не воняли бы на двощах
260 3050824
Какие же скалисты дебилы, это пиздец. Я херкам сказал, что если у человека есть скала в резюме, сразу отказ.
261 3051023
>>50824
Ну хоть по ЗЗ и цвету волос не отсеиваешь.
262 3051188
>>51023

>Ну хоть по ЗЗ и цвету волос не отсеиваешь


С чего ты взял?
263 3051612
>>50824
Вот именно из-за таких ебланов, которые бегут жаловаться херкам после того, как их унизили на сосаче айти и в пизде (в том числе).
264 3051998
Новый красный флаг:

На гитхабе нет коммитов до 2020 год ( значит начал интересоваться ит только после освящения в СМИ)
image.png97 Кб, 198x254
265 3052041
>>51612

>ряяя, скалистов обижают!!1111

266 3052388
>>51998

>освящения



Какое освящение, чел, Бог с тобой. Айтишка проклята нахуй, в ней нет ничего святого.
267 3052407
>>51612
Учитывая что херкам поголовно похуй на гражданскую позицию анальников, и анальники это знают не понаслышке, унижаешься на сосаче только ты, коли так смешно порвался и не выкупил откровенный стеб анона выше.

Мимо
268 3052620
Пупуни,спок
269 3052842
>>52041
Ну и что за перефорс, обиженка?
270 3052844
>>52407
А ктл сказал, что он обычный анальник? Ну и вообще классическое "yes, epic troll! Im not retard, i was only pretending!"
271 3053961
Head First vs Курсы по синтаксису vs метанит ?
272 3054069
>>53961
ИМХО в 2024 полезнее всего Molotok и Sverlo.
273 3054107
>>53961
Курсы по мавену
274 3054196
>>54107

> живите в проклятом мире в котором существуют курсы по мавену

275 3054246
>>53961
Если нихуя не знаешь - Head First норм, он именно как учебник написан, а не просто справочник. Даже двачер поймет.
Но если это не первый ЯП - будет слишком много воды.
276 3054278
Всех градлодебилов нужно принудительно заставлять проходить курсы по мавену.
277 3054292
>>54278
По мавену 4.0.
278 3054499
Курс по синтаксису скоро нужен будет. Заебали пердиксы со своими рекордами, свичами и силед классами.
d9cfae806280fe3e7944b5c8f0213d89.jpg68 Кб, 794x798
279 3054959
>>54499

> силед классами


Как там в java 5 instanceof ещё не подключили?

> свичами


Пикрелейдед.
280 3054963
>>54499
Терпи, скоро еще текстовые шаблоны подъедут с non null типами.
281 3056259
Посоветуйте книгу по многопоточке,асинхронщине и подобной хуйне
282 3056334
>>56259
Хорстман Java в первом томе мнопоточка, во втором стримы.
Параллельное программирование в JAVA на практике. Брайан Гоетс при участии Тима Перлса, Джошуа Блоха, Джозева Боубира,
Дэвида Холмса и Дага Ли
283 3056474
Как заставить спрингодуру возвращать JSON если Accept и Content-Type не заданы?
284 3056677
>>56474
Ну так задай
image.png643 Кб, 1490x735
285 3056884
Пацаны, поясните, нахуя нужны sealed-классы.
Не, я понял идею, но не понимаю, нахуя?
Какой-то костыль на вид. Не понимаю, почему его так помпезно анонсировали как крутую фичу.
286 3056961
чо вы на работе пишите?
287 3056976
Гойда, братья, скоро фронт на котлине писать будем. Вы рады, джависты? БЫТЬ ДОБРУ
https://youtu.be/hrQBVwqq9cI
https://www.youtube.com/watch?v=zJNkIJCQohU
288 3056979
>>54278
>>54292
Всех, кто не может правильно прочитать даже элементарные английские слова, надо принудительно хуярить словарём по башке.
289 3056980
>>56884
Как в скале наверное, можно экстендить его только в том же файле
290 3057026
>>56976
Мне в принципе не нравится гуй писать.
291 3057034
>>56884
https://github.com/jOOQ/jOOQ/blob/main/jOOQ/src/main/java/org/jooq/GroupField.java
Ну например в библиотеке использовать. С одной стороны даешь своим библиотечным классам наследоваться, а пользователю не даешь.
292 3057084
Что сейчас используют все солидные дяди в чёрных костюмах, градл или мавен?
293 3057087
>>56976
А что уже не пишем? На петухлине уже ведь давненько компиляция в жопаскрипт есть. Опять кто-то где-то петухлинщикам в штаны насрал?
294 3057088
>>57084
Дегенерадл для тупой школоты.
295 3057109
>>56976
да вообще GWT уже успели изобрести и забыть, даже до котлина
296 3057110
>>56884
Единственный случай использования что я пока увидел - это использование таких классов в switch-е непосредственно, по сути как энум из классов
download.png7 Кб, 254x199
297 3057130
>>56976
Какой то ноунейм пукнул что гойтлин лучший для ноунейм технологии htmx в котором обычно используется гойланг или пхп
298 3057193
>>57087
>>57130
Да не тряситесь вы так. Сразу видно, что даже не поняли суть видоса
299 3057195
>>56976
Моча ёбаная, выгони этих петухов в своей тред.
300 3057341
301 3057541
>>57193
На вопрос-то ответишь?
302 3058071
>>57541
Не, вопрос слишком глупый. Сначала хотел ответить, но передумал.
303 3058083
>>58071
Слив принят.
304 3058161
>>57109
Есть ли кстати щас аналог гвт на новые версии джавы? Идея-то хорошая.
305 3058324
>>56259
Java Concurrency
306 3058331
>>56884
Этот >>57034 прав. Я читал книгу где предлагали для этих целей создавать абстрактный класс где мы в конструкторе проверялось бы имя пакета класса наследника и если не совпадало с ожидаемым, то RuntimeException.

Теперь же просто пишешь sealed и кайфуешь от того как легче стала жизнь.
307 3058340
>>57034
>>58331
Так вы объясните нахуя нужно запрещать пользователю наследоваться? Для меня силеды это просто енум++, который поддерживает разные наборы данных при разном значении и смысл я в нём вижу только со свичами вместе. Во всех остальных случаях силед-пидорахизм только закладывает бомбу замедленного действия, которую придётся потом в будущем решать другими средствами, например, акцессвайденером.

мимо
308 3058341
>>58340
К слову, енумы тоже сами по себе бомба замедленного действия. Сколько раз сталкивался с болью от нерасширяемого енума.
309 3058399
>>58340

>Так вы объясните нахуя нужно запрещать пользователю наследоваться?


Например чтобы никто не строил библиотек поверх твоих библиотек и не ебал бы тебе потом мозг, что ты не можешь выпилить метод из интерфейса, потому что у них все на тебя завязано.
>>58340

>закладывает бомбу замедленного действия


И в чем же бомба и будущие проблемы?
310 3058409
>>58399
А в чём проблема библиотек поверх библиотек? Как бы все библиотеки поверх стандартной либы. А они поверх операционки, только которая уже работает напрямую с процессором.

>в чём же бомба


Когда понадобиться необходимость расшириться, это будет невозможно.
311 3058414
>>58409
С чего бы это невозможно? Добавляешь в интерфейс еще один подкласс и все.
312 3058417
>>58414
У тебя всегда есть доступ к изменению используемых библиотек, да?
313 3058486
>>58340
Объясняю на дваче. Написал ты свою либу для двача, например вот такую

Либа v1:

interface Dvach {
fun sendMessage()
}

class Mailach : Dvach {
override fun sendMessage() {
println("Спасибо Абу!")
}
}

class Sosach : Dvach {
override fun sendMessage() {
println("Двач, есть одна тян...")
}
}

Клиент:

fun main(year: Int) {

val dvach = when {
year < 2009 -> throw IllegalArgumentException("Вы молодые, шутливые, лучше сюда не лезьте.")
year < 2016 -> Sosach()
year < 2024 -> Mailach()
else -> MyDvachWithBlackjackAndWhores()
}

welcomeAgain(dvach)
}

fun welcomeAgain(dvach: Dvach) {
dvach.sendMessage()
}

class MyDvachWithBlackjackAndWhores : Dvach {
override fun sendMessage() {
println("МЯУ")
}
}

___
А потом понадобилось добавить капчу, а то набегают боты.

Либа v2:

interface Dvach {
fun sendMessage()
fun enterCaptcha()
}

class Mailach : Dvach {

override fun sendMessage() {
println("Спасибо Абу!")
}

override fun enterCaptcha() {
println("2 + 2 = 4")
}
}

class Sosach : Dvach {

override fun sendMessage() {
println("Двач, есть одна тян...")
}

override fun enterCaptcha() {
println("666666")
}
}

Клиент:

fun main(year: Int) {

val dvach = when {
year < 2009 -> throw IllegalArgumentException("Вы молодые, шутливые, лучше сюда не лезьте.")
year < 2016 -> Sosach()
year < 2024 -> Mailach()
else -> MyDvachWithBlackjackAndWhores()
}

welcomeAgain(dvach)
}

fun welcomeAgain(dvach: Dvach) {
dvach.sendMessage()
}

// Class 'MyDvachWithBlackjackAndWhores' is not abstract and does not implement abstract member public abstract
// fun enterCaptcha(): Unit defined in ord.example.Dvach

class MyDvachWithBlackjackAndWhores : Dvach {
override fun sendMessage() {
println("МЯУ")
}
}

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

Как выглядит этот же код при использовании sealed интерфейса. Код либы не изменился кроме добавления модификатора, а у клиента ещё в версии v1 будет такое сообщение:

// Inheritor of sealed class or interface declared in package my.client but
// it must be in package org.example where base class is declared
class MyDvachWithBlackjackAndWhores : Dvach {
override fun sendMessage() {
println("МЯУ")
}
}

И он не сможет прострелить себе ногу, а тебе не придется трястись каждый раз когда нужно изменить интерфейс предназначенный только для имплементации внутренними классами.
313 3058486
>>58340
Объясняю на дваче. Написал ты свою либу для двача, например вот такую

Либа v1:

interface Dvach {
fun sendMessage()
}

class Mailach : Dvach {
override fun sendMessage() {
println("Спасибо Абу!")
}
}

class Sosach : Dvach {
override fun sendMessage() {
println("Двач, есть одна тян...")
}
}

Клиент:

fun main(year: Int) {

val dvach = when {
year < 2009 -> throw IllegalArgumentException("Вы молодые, шутливые, лучше сюда не лезьте.")
year < 2016 -> Sosach()
year < 2024 -> Mailach()
else -> MyDvachWithBlackjackAndWhores()
}

welcomeAgain(dvach)
}

fun welcomeAgain(dvach: Dvach) {
dvach.sendMessage()
}

class MyDvachWithBlackjackAndWhores : Dvach {
override fun sendMessage() {
println("МЯУ")
}
}

___
А потом понадобилось добавить капчу, а то набегают боты.

Либа v2:

interface Dvach {
fun sendMessage()
fun enterCaptcha()
}

class Mailach : Dvach {

override fun sendMessage() {
println("Спасибо Абу!")
}

override fun enterCaptcha() {
println("2 + 2 = 4")
}
}

class Sosach : Dvach {

override fun sendMessage() {
println("Двач, есть одна тян...")
}

override fun enterCaptcha() {
println("666666")
}
}

Клиент:

fun main(year: Int) {

val dvach = when {
year < 2009 -> throw IllegalArgumentException("Вы молодые, шутливые, лучше сюда не лезьте.")
year < 2016 -> Sosach()
year < 2024 -> Mailach()
else -> MyDvachWithBlackjackAndWhores()
}

welcomeAgain(dvach)
}

fun welcomeAgain(dvach: Dvach) {
dvach.sendMessage()
}

// Class 'MyDvachWithBlackjackAndWhores' is not abstract and does not implement abstract member public abstract
// fun enterCaptcha(): Unit defined in ord.example.Dvach

class MyDvachWithBlackjackAndWhores : Dvach {
override fun sendMessage() {
println("МЯУ")
}
}

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

Как выглядит этот же код при использовании sealed интерфейса. Код либы не изменился кроме добавления модификатора, а у клиента ещё в версии v1 будет такое сообщение:

// Inheritor of sealed class or interface declared in package my.client but
// it must be in package org.example where base class is declared
class MyDvachWithBlackjackAndWhores : Dvach {
override fun sendMessage() {
println("МЯУ")
}
}

И он не сможет прострелить себе ногу, а тебе не придется трястись каждый раз когда нужно изменить интерфейс предназначенный только для имплементации внутренними классами.
314 3058497
>>58340

> Так вы объясните нахуя нужно запрещать пользователю наследоваться?


Сокрытие внутренней реализации. Чтобы стабилизировать апи, и менять реализацию, как угодно не завися от обратной совместимости.
315 3058529
>>58486
1. Нахуй ты на котлине написал? Чтобы никто ничего не понял?
2. В большинстве случаев писать sealed чтобы запретить имплементировать интерфейс никто не будет.
316 3058571
>>58529

> 1. Нахуй ты на котлине написал? Чтобы никто ничего не понял?


Если ты джавист и не понимаешь базовый котлин, то ты какой-то неправильный джавист.

> 2. В большинстве случаев писать sealed чтобы запретить имплементировать интерфейс никто не будет.


Сколько библиотек написал?
317 3058583
>>58571

>Сколько библиотек написал?


0 не считая тех что на работе, но кода библиотек прочитал достаточно. Показывай где там используют sealed.
318 3058636
319 3058640
Почему котлин медленнее джавы? Там свои коллекторы?
320 3058644
>>58640
Дегенераты зачем-то решили дюпнуть стандартную библиотеку, и дюпнули её очень хуёво. Плюс дополнительные фичи медленные.
321 3058652
>>58644
Нахуя так делать,в джаве же кучу всего можно оптимизировать если не поддерживать обратную совместимость и делать язык с чистого листа,я сначала думал они наоборот облегчили джаву и нативных приколов завезли
322 3058657
>>58652
Ну во первых они не ломали обратную совместимость, у них наоборот было целью её сохранить. Но

>нахуя так делать


Задача стояла не в решении наболевших проблем джавы, а в САЗДАТЬ СВОЙ ЕЗЫГ ПАНРАМИРОВАНИЯ. Как школьники видят шутки в тиктоке и повторяют их, постя другое видео с точно такой же шуткой. Если бы хотели решить проблемы джавы, то оставили бы оригинальный синтаксис джавы. Всё то, что авторы петухлина называют преимуществами, является вторичным и появилось уже после постановки цели создания своего говнеца.
323 3058660
>>58657
Блядь,а как же бетер джава,понятно что джава бессмертна,но нахуя делать ее кастомную сборку вместо полноценного ремейка
324 3058669
>>58629 (Del)
Я уже другой анон, хотя похуй. Вокруг тебя одни слитые, шизоид, продолжай срать под себя.
325 3059824
Как этот ёбаный спринг учить? Попытался почитать хвалёный Spring in Action, но объяснения в стиле "вот так делай" мне чёт нихуя не нравятся. Есть какой-нибудь вменяемый гайд или книга?
326 3059870
>>59824
Хули там учить?
328 3060189
>>59824
Попробуй видеокурсы на Udemy, по спрингу там точно видел годноту.
329 3060663
сап с чего начать вкат в 2024 году

мимо инженер на завод_нейм 40к/мес
330 3060692
Как нормально реализовать equals для неабстрактного класса, от которого можно будет наследоваться?
inb4 сделать его final
Нет, практической задачи нет. Я даже не вкатун, просто интересно.
331 3060738
>>60692
Как для обычного final класса. Класс потомок должен переопределить equals и сначала вызвать equals родителя, если он true, то запускать свои сравнения полей. Если equals родителя выдает false, то возвращать false.

Кури принцип подставки Барбары Липсков.
332 3060761
>>60738
https://pastebin.com/ZZ7HET8c

Угадай, что будет, если попытаться сделать так:

A a = new A(0);
B b = new B(0, 1);

System.out.println(a.equals(b));
System.out.println(b.equals(a));
333 3060852
>>60761
По моему в equals должна быть проверка на идентичность классов.
334 3060860
>>60761
Антон, ну что за пиздец у тебя со стилем? Используй линтеры по полной, не ограничивайся дефолтыми настройками.

Насчет твоего вопроса, ты не сравниваешь классы в equals из-за этого появляется ошибка:

https://pastebin.com/vXufpuL4
335 3060874
>>60761
p.s.
Вообще погуглил я твой вопрос меченый и выглядит всё так что есть два решения:
1) Сделать как я в прошлом посте, то есть нарушить принцип Липсков, что не есть гуд
2) Не нарушать принцип Липсков и сделать equals final в базовом классе (я лично ставлю лайк этому способу, так как никогда не наследуюсь от классов, только от интерфейсов)

https://pastebin.com/AsXRNQ76
336 3061262
Зачем в 2к24 нужна Java, если есть C# и Котлин?
337 3061366
>>61262
Зачем в 2к24 нужны C# и Котлин если есть Java?
338 3061438
>>61262
Зачем вместо нуля писать К? Какой смысл? Или у петлинистов всё через жопу?
339 3061445
>>58640
пруфы будут? может бенчмарки там?
340 3061446
>>60663
Ну очевидно с основ программирования, переменные/функции/ циклы
341 3061459
>>61445
https://youtu.be/kwS3OeoVCno 25:30
Я уже устал ссать на петухлинщиков, честно.
342 3061467
>>58660
Очевидно потому что главное в дажве - это огромная инфраструктура и наработки сделанные за все время ее существования. Сделай они отдельный язык - был бы еще один никому не нужный раст.
343 3061470
>>61467
Ну раст так-то активно используется в новых проектах. Но я бы все же выбрал джаву, попривычнее она мне.
344 3061474
>>61470

>Ну раст так-то активно используется в новых проектах.


Тут главное почаще это вслух повторять, как манифестации, тогда точно станет реальностью
345 3061475
>>61474
Ты главное вслух почаще повторяй то что высрал, и тогда точно перестанет.
346 3061477
>>61475
Не рвись манька, в новых коммерческих проектах раст точно не используется
347 3061478
>>61477

>коммерческих


А вот манька и заднюю дала, ведь запруфать использование в клозед сурс параше сложновато.
348 3061479
>>58161
да, Vaadin, это по сути и есть ГВТ
349 3061480
>>61478
Лол, ну так и знал что порвешься, никому не интересно что ты там корябаешь для души в свободное время.
350 3061481
>>61479
Щас бы гавнадином с платными модулями пользоваться. Да и это вообще другая вещь, она основана не на компиляции джавы в жопу.
351 3061482
>>61480
Слив принят, манюнь.
352 3061519
>>59870
А потом мы таких кадров попускаем на незнании спрэнг сакурити или кишочках спринг фримверка
353 3061556
>>61459
То есть ты взял одну единственную фичу языка: корутины. И в искусственном сценарии обнаружил, что они работают хуже чем треды. После чего ты заявил, что котлин принципиально медленнее чем жаба и срешь этим в треде уже хуй знает сколько времени?

Иди к психотерапевту.
Про AWT 354 3061642
В классе Container, что в awt, есть метод remove. Я допустим, что я имею такие строки кода:

Container a1=...,
a2=...;
a2.add(a1);
И теперь вопрос: если использовать строку a2.remove(a1);, то
1) Будет ли существовать объект, на который изначально была ссылка a1? Ведь не было строки вида a1=null;

2) Что будет с объектами, вложенными в a1? Они будут удалены?
355 3061668
>>61642
Почитай про GC. Объект существует до тех пор, пока ты до него тем или иным образом можешь добраться.
356 3061679
>>61668
Ну расскажи тогда вот чего - деструктор когда вызывается? Когда сборщик мусора собирсет объекты без ссылок или когда число ссылок на объект обнуляется? Между этими событиями можнт быть значительный интервал времени.
357 3061687
>>61679
Из C++ что-ли пришёл?

> Когда сборщик мусора собирсет объекты без ссылок


Это. Поэтому финализаторы deprecated и в принципе не рекомендуются к использованию.
358 3061740
>>61642

> 1) Будет ли существовать объект, на который изначально была ссылка a1? Ведь не было строки вида a1=null;


Да.

> 2) Что будет с объектами, вложенными в a1? Они будут удалены?


Нет.

1. Ссылка существует на стеке, сам объект в куче.
2. Пока ты не сделаешь a1 = null ссылка всё также будет существовать как и объект.
3. Когда ты добавляешь ссылку в список, то создаёшь вторую ссылку на объект. Теперь даже если ты сделаешь a1 = null, то объект никуда не исчезнет, так как осталась ссылка в списке.
4. Когда ты удалишь ссылку из списка и занулишь переменную a1, тогда GC сможет очистить кучу от объекта, так как на него больше нет ссылок.

При этом GC не факт, что сделает это сразу. Это может вообще никогда не произойти, но тебя как разработчика это не должно беспокоить, так как это уже детали реализации GC.
359 3061748
>>61642
p.s. Если тебе нужно освободить используемые ресурсы объекта в Java/Kotlin, то используй AutoClosable интерфейс

https://pastebin.com/PYq7Sxy4
360 3061786
>>61748
Зарепортил котлиношизика.
361 3061896
Тут мелькают мнения, что скала - пиздатый язык и лучше котлина. Поясните чем именно лучше и почему тогда всем похуй на скалу в 2к24
362 3061927
>>61896

>Тут мелькают


Где?
363 3061933
364 3061951
>>61933
Так это троллинг.
365 3061954
>>61896
хз это все проекции комунити что где-то там что-то умерло итд, пишу код на скалке, ФП стек cats effect, http4s не представляю как вообще перекатываться на что-то другое теперь. Хайп безусловно ушел, но в любой технологии так.

Котлин выглядит как костальная поделка после скалы. Мало какой язык сравнится с экспресивностью и элегантностью скалы. Правда порог вката высокий.

Котлин мне видится Го в мире жвм лол, сделали простой удобный язык, но джава догоняет и хз нахуй он нужен по итогу.
366 3061986
>>61556
Это нинужно или врёти? В целом по языку можешь посмотреть на течемповереде, как все это замедления вместе влияют.
367 3062054
>>61954
Ну так скажи конкретно чем скала лучше котлина, в чем скала хороша то?
Назови что-нибудь, что есть в скале, но нет в котлине.
Такое чувство, что ты не пробовал котлин и просто воздух гоняешь
368 3062091
Скоро жаба 22 выходит, все в курсе?
369 3062102
>>62091
Самое главное в джаве 22 — стрим газонюхи. Наконец-то можно будет использовать стримы для операций длиннее 2 строк. А ещё выражения до super().
370 3062134
>>62102
Че?
372 3062305
>>62054
сильная система типов, high kinded типы, имплиситы, нормальный паттерн матчинг, иммутабельность по дефолту, в целом поддержка ФП лучше чем в котлине (не в ущерб ООП). Я правда не понимаю зачем котлин нужен, когда есть современная джава. Корутины, лол?
373 3062338
>>62091

>Скоро жаба 22 выходит


Ура, лет через 30 перейдем на неё.
tempupload.jpg93 Кб, 650x463
374 3062426
Френдзона
375 3062430
>>62305
На джаве мобильные приложения не попишешь никак.
Я к чему спрашиваю: мне предлагают по книге скалу выучить и вкатиться, наверное, в гос контору в бэк джуном
376 3062443
>>62430
Какой же ты дегенерат,уму непостижимо
377 3062448
>>62443
На жабе работать не буду, соси
378 3062506
>>62448
Тебе только дворником работать,косолобый
379 3062539
>>62305

> Я правда не понимаю зачем котлин нужен, когда есть современная джава.


Ну начнём с

> Корутины, лол?


А что, джавистов корёжит от моих базированных корутин?
Дальше по тексту:
- Nullable типы (нет, @NonNull не подходят, не врите себе)
- Дефолтные значения для аргументов методов
- Нормальные, не кастрированные лямбды
- Scope-функции
- Свойства (ну зачем же нам нужна такая бесполезная штука, у нас в современной джаве есть ломбок)
- Нормальный : вместо дурацких extends и implements
- Отсутствие дурацкого throws
- Не нужно создавать отдельный класс, в который ты будешь писать статические методы
- Уже много лет как есть интерполяция строк

А нахуя я собственно это пишу, джависты всё равно скажут, что нинужно.
380 3062548
>>62430

>На джаве мобильные приложения не попишешь никак.


Всмысле, а на чем же их писали до Котлина?
381 3062550
>>62539
Нинужно
382 3062554
>>62548
На реакте.
image.png5 Кб, 469x46
383 3062582
В вашей современной джаве даже uint'а нет, приходится проверять положительность числа в рантайме...
384 3062593
>>62582
Смысл в uint если всё равно на входе будут int, которые ты для своей части программы будешь также конвертит в uint с проверкой на положительность входного int?
385 3062624
>>62338
Всё ещё раньше чем шарподебилы с нет фреймворка сдриснут.
386 3062625
>>62582
А хули не ноешь, что нет even и odd? Разных ограничений числового пространства можно дохуя понапридумывать. На все типы не понаделаешь. Разве что нормальную компайл-тайм типизацию ебашить, но такого пока ни в одном языке не сделали.
387 3062630
>>62539

> А что, джавистов корёжит от моих базированных корутин?


Твоих? Ты к их созданию ни пальца не приложил. Ты просто залётный школьник, потребитель контента, уровня зрителя тиктока.

> нет, @NonNull не подходят, не врите себе. Яскозал!



> - Дефолтные значения для аргументов методов


Доказывай, что нужно.

> - Нормальные, не кастрированные лямбды


А что в джаве кастрированное? Явность лямбд? Пиздец, наглость перефорса на уровень шарпопетушни.

> - Свойствгетсетинитгет сет коко ко гет сет гет сет гет сет гет сет гет сет


Ясн. Приходи когда хоть лучше чем в петушарпе будет, я даже не говорю про достижение уровня лобка (что сам не идеален).

> - Нормальный : вместо дурацких extends и implements


> - Отсутствие дурацкого throws


> - Не нужно создавать отдельный класс, в который ты будешь писать статические методы


> - Уже много лет как есть интерполяция строк. Питухлиноссия — родина слонинтерполяций!


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

А теперь что есть у джавы, чего нет у петухлина, даже учитывая его паразитирование на jvm:
1) Скорость
2) Нормальный синтаксис extends и implements вместо ебучего :
3) Нормальный синтаксис в принципе, а не обмазанное сокращениями говно с лишними словами
4) Универсальная интерполяция строк, а не нашлёпанное за 5 секунд говно не поддерживающее что-то больше дебаг мессаджей
5) Нормальный синтаксис лямбд
6) Проверяемые исключения
5) Как и в сравнении с петушарпом, отсутствие гетсет-клоунады
387 3062630
>>62539

> А что, джавистов корёжит от моих базированных корутин?


Твоих? Ты к их созданию ни пальца не приложил. Ты просто залётный школьник, потребитель контента, уровня зрителя тиктока.

> нет, @NonNull не подходят, не врите себе. Яскозал!



> - Дефолтные значения для аргументов методов


Доказывай, что нужно.

> - Нормальные, не кастрированные лямбды


А что в джаве кастрированное? Явность лямбд? Пиздец, наглость перефорса на уровень шарпопетушни.

> - Свойствгетсетинитгет сет коко ко гет сет гет сет гет сет гет сет гет сет


Ясн. Приходи когда хоть лучше чем в петушарпе будет, я даже не говорю про достижение уровня лобка (что сам не идеален).

> - Нормальный : вместо дурацких extends и implements


> - Отсутствие дурацкого throws


> - Не нужно создавать отдельный класс, в который ты будешь писать статические методы


> - Уже много лет как есть интерполяция строк. Питухлиноссия — родина слонинтерполяций!


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

А теперь что есть у джавы, чего нет у петухлина, даже учитывая его паразитирование на jvm:
1) Скорость
2) Нормальный синтаксис extends и implements вместо ебучего :
3) Нормальный синтаксис в принципе, а не обмазанное сокращениями говно с лишними словами
4) Универсальная интерполяция строк, а не нашлёпанное за 5 секунд говно не поддерживающее что-то больше дебаг мессаджей
5) Нормальный синтаксис лямбд
6) Проверяемые исключения
5) Как и в сравнении с петушарпом, отсутствие гетсет-клоунады
388 3062633
>>62630
Ну, то есть преимуществ нет. Ясно.
389 3062634
>>62633
Преимуществ у петухлина перед джавой? Ну по сути серьёзных нет, хотя я конечно бы методы расширения потрогать хотел нативно, без лобка.
390 3062706
>>62548
Раньше на джаве не писали, а говнокодили, это разные вещи
391 3062749
>>62539

>А что, джавистов корёжит от моих базированных корутин?


я не джавист, я на скале пишу же

всё что ты описал в скале есть только лучше, потому что её не пидорашки делали из жидбрейнс, а учёные в говне мочёные из швейцарского института.

Но несмотяр на всё то, что ты высрал - котлин это всего лишь надмножество джавы которое фиксит её проблемы, понимаешь? Когда джава реализует всё что ты написал (а она частично уже это сделала), то что будет делать котлин потом? Какая будет его selling-feature?
392 3062885
>>62749

> в скале есть только лучше


Пруфы-то будут?
393 3062889
>>62582
А лонг использовать не пробовали?
394 3062891
>>62749

>Какая будет его selling-feature?


Компиляция под WASM/Native/JS/iOS
Тут к сожалению скала и джава дрищут в штанишки
395 3062893
>>62891
Дрищут разве что тебе в ебальник жиденьким непереваренным. Грааль вм всё это делает и даже больше.
396 3062897
>>62893
Хуй там, покажешь как там грааль в WASM компилирует? Под iOS? В JS?
Только без верчения жопой пожалуйста
397 3062900
>>62897

> Хуй там, покажешь как там грааль в WASM компилирует?


https://www.graalvm.org/latest/reference-manual/wasm/

> Под iOS?


https://github.com/MobiVM/robovm

> В JS?


https://github.com/google/j2cl

Ебальник к осмотру.
398 3062906
>>62900
ОЙ, а чего это ссылок 3, а на грааль только одна ? :D
А что случилось?
399 3062908
>>62885

>пруфы


я опущу глупые вещи типа пропертей, дефолтных значений и прочий говносахар и кейворды лол которые есть тупо везде уже, вот тебе самое главное, петух:

> Nullable типы (нет, @NonNull не подходят, не врите себе)


наллабл типы это хуйня на постном масле которая делает систему типов менее sound
Инт это инт, никакого null там быть недолжно, null вообще быть недолжно, сам Hoare это признал. Скала использует Option. java интероп понимает нулы ибо jvm, но в скале они не используются

>- Нормальные, не кастрированные лямбды



в скале ультра лямбды которые поддерживают Eta expansion, это когда ты метод можешь сделать лямбдой например, использовать их взаимозаменяемо

- Scope-функции
какой-то сахарок бессмысленный, в скале есть мощные implicits, которыми можно добавить этот сахар через extension methods, но это самый простой юзкейс, вся мощь имплиситов раскрывается в либах типа cats, библиотеке тайпклассов (которые в котлине нормально и не сделать к слову)

Мне продолжать? Или может погуглишь сам, чмондельс?

Что вообще на петухлине хорошего написано? погугли либы в скалке типа cats, zio, shapeless, akka есть что-то подобное у вас? Или хоть что-нибудь кроме КОРУТИН лол

Котлину далеко до скалы, а скоро будет и до джавы далеко
400 3062909
>>62906
Просил без верчения жопой, а сам вертится как уж. Петухлинщики что-ли как шарподебилы не принимают всё что не с лопаты скормлено, а сделано комьюнити?
401 3062915
>>62891
ты сам в курсе о чем пишешь вообще? Скала жс давно уже в проде юзается, есть скала натив, ты вообще тупой?

>>62900
вот джава анон тебе еще в ротешник поссал

Вопросы?
402 3062917
>>62909
Я просил показать где грааль это делает, но жопа у тебя завертелась со страшной скоростью и из 3х ссылок на грааль была только одна.
Почему так?
403 3062920
>>62917
Ну мало ли ты что там попросил показать, ты ещё попроси показать как твоя мамаша не блядует, я тоже не смогу. По теме что-то будет или сливаешься?
404 3062977
>>31296 (OP)
Почему на жаве выходит такой многословный код? Банальные вещи требуют тысячи строк кода, которые выдавливаешь из себя целый месяц, а потом два месяца дебажишь нюлы..
Хваленные фримверки делают только хуже и код мало того что сложно читать (его дохуя выходит) так еще он и тормозит. Смешно говорить, но дернуть хатэтэпе ручку через спрэнг - 100-150 мс на локалхосте, лал))
405 3063092
>>62977
Толстовато,вряд ли наберёт много ответов
406 3063173
>>62977
Много кода, потому что жаба - старый язык, а если менять его кардинально, то сломается совместимость.
Скорость у жабы нормальная, не пизди
407 3063276
>>62908

>>Инт это инт


>>null вообще быть недолжно


>>Скала использует Option.


А в чем принципиальная разница? Что опцион, что нул - все равно надо проверить есть ли там содержимое или нет.

мимо
17040578326353.png532 Кб, 748x328
408 3063282
Чем петухам на котлине и шарпомухам не нравится джава? Ведь относительно других ЯП именно джава объективно великолепна с минимум недостатков и богатой экосистемой.
409 3063289
Что сейчас используют для длительного ознакомления с intellij idea - постоянный сброс триала или поиск ключей?

мимо нищий кодер, даже не программист
410 3063290
>>63276
НЕЕЕЕЕТ, null ГОРАЗДО ХУЖЕ ЧЕМ OPTION!!!!!!
411 3063291
>>63289
сброс триалки офк.
412 3063310
>>63289
идею комьюнити
413 3063312
>>63290
Почитай про type safety и type system soundness. Если у тебя каждый тип может быть наллбл сложнее рассуждать о программе как о типобезопасной. Но котлинмакакам думаю не до таких материй, у них же есть КОРУТИНЫ!
414 3063324
>>63312

>soundness


Это когда железные штуки в письку суют?
415 3063330
>>63289
Кряк с рутрекера
416 3063336
>>63324
Да тебе
417 3063340
Мне гораздо интереснее, а че будут делать с null в яве, когда введут !.
image.png47 Кб, 1088x309
418 3063419
Как такое на Java написать?
419 3063430
>>63419
Че тут написано?
420 3063436
>>63430
Функция которая умеет принимать сколько угодно параметров вида int, string, int, string ....
Например, dup(1, std::string("aboba"), 2, std::string("xyz"), 3, std::string("a"))
выведет abobaxyzxyzaaa
421 3063448
>>63436
Пиздец, такое говно ни на каком языке писать не стоит
422 3063454
>>63448
Нинужна?) Ладно, я шучу. Меня с теоретической точки зрения возможность написания такого интересует. Так можно или нет?
423 3063457
>>63419
Через объекты. Принмаешь список объектов/рекордов, хуячишь туда свои инты, строки, небо и Алллаха.
424 3063460
>>63457
Ну такая хуйня же не тайпчекается. С тайпчеком никак?
425 3063486
>>63436
А какого хуя она так делает? Где информация о том что T это int, string?
426 3063488
>>63486
Догадайся
427 3063491
>>63486
T... - шаблонный варарг. В месте вызова инстанцируется по переданным параметрам
428 3063495
>>63460
у тебя например record YobaObjectRecord (int n, String s)
и ты передаешь List<YobaObjectRecord>

Если захочется оопшно - можно даже метод dup засунуть в сам рекорд и вызывать его

list.stream().map(YobaObjectRecord::dup).collect(Collectors.joining())
429 3063500
>>63495
Ненене. Это уже другое. Суть моего плюсового кода в том, что в момент вызова тип T определяется. В Java так нельзя получается?
430 3063517
>>63491
И? T - один параметр типа, int и string - два типа.
431 3063518
Не джавист, но выглядит as simple as передать просто тайп параметр и всё, не? В скале по крайней мере изи
%%или в джава дженерики както иначе работают?%
432 3063519
Проебался с разметкой соре аноны
1708886233533.jpg81 Кб, 322x575
433 3063521
Эволюция джависта
434 3063523
>>63521
Пупуня соскуфилась😭
435 3063527
>>63517
T... - parameter pack, а не просто типовой параметр
>>63518
Ну вот в Java просто varags сахар над передачей массива, на сколько я знаю. В плюсах нет. В плюсах он как бы раскрывается.
436 3063530
>>63527

>T... - parameter pack, а не просто типовой параметр


Но тип-то у него один.
437 3063540
>>63282
жабадебилам уже over 99999 раз объясняли почему...
Нет смысла, одни и те же маняврирования. Одно "нинужна", другое "уже есть в жабе, жаль только, что с хуевым синтаксисом и только с n-ой версии, когда в котлине сразу всё есть с нулевой"
Я готов согласиться с единственным аргументом - жаба побыстрее.
438 3063541
>>63312
ахах, ебать ты дегенерат, мда
439 3063543
>>63530
Мне кажется ты не понял что такое параметр пак
440 3063549
Конченые ублюдки блядь больные ебанаты используют сука интерфейсы для доменных моделей. Конченые блядь олигофрены предлагают сука ебануть блядь ебаный интерфейс shape и реализовывать его в сущностях круг и квадрат. Конченые блядь ебанаты ебаные ублюдки почему они свободно выкладывают это на ютуб мрази твари уроды
441 3063553
>>63543
Типа это не параметр типа варарга, а параметр типа типа варарга? Ну это хуйня какая-то, в джабе нет такого. Только Object args...
442 3063559
>>63540
Забыл упомянуть про то, что любят оправдывать отсутствие свойств ломбоком, который не является частью джавы. Это просто костыль, который можно для любого языка запилить, но никто этого не делает, т.к. там блять ЕСТЬ эти самые свойства и всякие хуёмбоки и guava там просто без надобности, всё это есть в самом языке.
Когда мне пришлось в говне ковыряться на джаве, я охуел с того, что для нормальной работы с языком нужно минимум 3 библиотеки добавлять, это пиздец
443 3063561
>>63553
Типо T... != список аргументов типа T. Оно буквально раскрывается в другие типы
444 3063569
>>63559
Ну и конечно кайфанул с того, что я не могу нормально с коллекциями работать, т.к. версия жабы старая, и её нельзя было поднимать. Плюс проблемы были с тем, что нет опциональных параметров именованных и нормальной проверки null. Какой же кайф везде проставлять аннотации, писать без экстеншнов в 2 раза больше кода, чем обычно, вот это копиум.
И в этом же проекте можно было писать на котлине без проблем, с лямбдами, экстеншнами, коротким синтаксисом, со всеми удобствами...
445 3063615
>>63500
В Java нельзя. В котлине можно через reified, но это котлин.
446 3063737
>>63521

> Эволюция джависта


То что манька пересказала букварь хид ферст, не делает её джавистом.
447 3063766
>>63500
Никого не слушай, в джаве так можно через вот такие штуки https://www.javadoc.io/doc/com.google.code.gson/gson/2.6.2/com/google/gson/reflect/TypeToken.html
java.PNG19 Кб, 435x260
448 3063772
>>63419
Так?
449 3063783
>>63772
Почитал про этот параметр пак, по-моему такого в джаве нет
450 3063813
>>63540
>>63559
>>63569

>гет спт гет сет гет сет


Это обоссаный по фактам петухлинщик решил так перекрыть свой слив, или чё?
451 3063815
>>63276
Я так понимаю, суть в том, что опцион прилетает редко и там, где чётко заявлено в сигнатуре метода, в рамках стандартной логики программы, а нулл вылезает как прыщ на жопе там где его не ждёшь совершенно. В этом есть по сути логика, хоть и опционы имеют опасность той же проблемы, что и проверяемые исключения, со временем оказаться renundant.
452 3063817
>>63521
Разные каналы же.
453 3063819
>>63436
А нахуя? Это как минимум нарушение сингл респонсибилити. На джаве просто делаешь dup(1, "aboba")+dup(3, "govno") немного не так будет, на джаве строки иммутабельные и такое совмещение перформанс убъёт, надо это через стринг билдер делать, но для примера сойдёт.
454 3063896
>>63817
Плейлист скуфа же
455 3063907
>>63559

>>любят оправдывать отсутствие свойств ломбоком, который не является частью джавы


Частью джавы являются рекорды, где можно получать поля по одноименному методу.

А писать гет/сет для каждого класса в джаве - это и есть костыль и каргокульт.
Петушарперы прибили это гвоздями к языку и считают себя не говноедами теперь.

Повторяют ошибки джавы из 90-х, когда в нее тащили хайповое говно типа гоф паттернов. Мода на гет/сет пройдет, а у них останется этот кусок говна в языке.
Или сломают обратную совместимость, чем обрекут код на легасность. Переписывать надо будет так много, что проще будет остаться без обновлений а если переписывать - то уже на го.

>>63569

>>не могу нормально с коллекциями работать, т.к. версия жабы старая, и её нельзя было поднимать


Версии меньше 8 сейчас уже не найдешь, а там все это есть.

Можешь еще поискать паскаль и жквери для полноты ощущений программирования начала 00-х
А то что тебе дали ковырять какой то копролит и не позволили что то менять - многое говорит о тебе как о специалисте.
456 3063916
>>63521
Почему именно в джаве полно быдловкатунов за 30?
image.png479 Кб, 688x617
457 3063925
>>63916
Студент омежка отложил кирпичей, когда его попросили пояснить за ревью?
458 3063929
>>62977
Поищи проблемы в прокладке между монитором и сидушкой.
459 3063963
>>63925
Да ты просто сравни чатик котлина (kotlin_lang) и чатик javastart с залетной гречневой быдлятиной. Хуже я видел только в чате начинающих питонистов.
460 3063978
>>63963
Зашёл в калфу петухлина, увидел анальные правила для утешения чувства собственной неполноценности у пидорашей мочерации, в которых даже запрещено спрашивать вопросы если они имеют хоть какое-то отношение к джаве (лол) и ещё простыню всяких запретов и нипущаний, посмотрел на аву главпетуха, увидел заплывшего скуфа-чурку, пролистал безмерный список всяких субчатов, увидел "флудилку-курилку", лол, блядь, ахаха.

Зашёл в калфу джавы, сразу открылся чат, в котором идёт адекватная дискуссия, и из информации о чате никаких правил и только совет как правильно задавать вопросы чтобы на них можно было ответить.

Что сказать-то хотел?
461 3064198
>>63907
ну да, когда надо, так ломбок дохуя крутой и нужен, КРУЧЕ ШАРПА, но когда вас ткнули носом в то, что ломбок - костыль для джавы, так сразу ломбок говно и вообще "НИНУЖНА", вот это маняврирования, ещё скажи, что guava никто не пользуется.

Рекорды в джаву завезли, вот это да. Угадай откуда спиздили, и напиши версию, с которой я смогу этим пользоваться плиз.

>А то что тебе дали ковырять какой то копролит и не позволили что то менять - многое говорит о тебе как о специалисте.


Хуя ты высрал. Даа, именно поэтому...
Стикер512x512
462 3064329
>>62977

>Почему на жаве выходит такой многословный код?


Очень жырно.
463 3064333
>>62908

>в скале есть мощные implicits, которыми можно


любой код сделать нечитабельным.
464 3064393
>>64198
Кого ты там ткнул, маня? Что за маняфантазии? Ломбок продолжает ебировать в рот и в жопу петушарпоговно.
465 3064394
>>64333
Вот петухлинщик бы за нечитаемость не высирался, ей-богу.
466 3064396
>>64333
пофиксили, щас имплиситы делаются через given/using
но в целом да, проблема такая была во второй скале
467 3064397
>>63559

>который можно для любого языка запилить


но почему-то ни для шарпоговна, ни для петухлина не запилили, и шарподебилы продолжают шлёпать бойлерплейт...
468 3064481
Аноны, приветствую. Пост по теме и одновременно нет. Суть изложу кратко, имеем игру на жаве именуемой Project Zomboid. Пытался сам в джаву, но не смог, поэтому ищу энтузиастов по созданию и развитию одного проекта. Приветствуются аноны, кто имел дело с майнкрафтом. Не на добрых началах, все обсудим в телеге
@kokdilla
469 3064603
>>64198
Ну так ломбок сейчас нужен, а потом станет не нужен.
С появлением рекордов уже от многих его фич отказался.

>>guava никто не пользуется.


У нас апач комонс вместо гуано. В петушарпе выбора не дадут - жри что дали.

>>Угадай откуда спиздили


Взяли @Value из ломбок и довели до ума. Никаких гет/сет там уже нет.

>>версию, с которой я смогу этим пользоваться плиз.


17+. Если на завязан на специфичных либах - то 11 легко апается до 17 или 21. С 8 - могут быть проблемы (а могут и не быть)

>>Хуя ты высрал. Даа, именно поэтому...


Любой джавист просто апнет версию хотя бы до 11. А шарпомухе видимо по кайфу ковыряться в протухшем говне.
470 3064943
>>64329
А что жирного? Ответ прост: потому что макаки не могут в архитектуру.
Надо читать Буча, GoF и другие умные книги, как правильно писать код с использованием ООП.
Для сокращения кода есть все необходимое в Lombok (а чего нет, можно самому описать аннотациями).
471 3064959
>>64481
Посмотрел в википедии:

>После произошедшей эпидемии огромная часть населения округа заразилась неизвестным вирусом и превратилась в зомби


Когда сценарий писали анальники, у которых абсолютно отсутствует фантазия...
У меня бы, например, в зомби превращались зумеры под влиянием соцсетей.
472 3064971
>>64959
Да там и игра 2013 года выпуска так-то
473 3065059
>>64971
А. ну да, неудобная тема, тогда как раз стартанула повесточка с геймергейтом и #MeToo.
Хотя Стивен Кинг писал про что-то похожее (зомби-мобилодрочеров) в 2006 году:
https://ru.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B1%D0%B8%D0%BB%D1%8C%D0%BD%D0%B8%D0%BA_(%D1%80%D0%BE%D0%BC%D0%B0%D0%BD)
474 3065068
>>64943

>>Надо читать Буча, GoF и другие умные книги, как правильно писать код с использованием ООП.


другое дело, так намного тоньше
java-csharp-5479522.jpeg156 Кб, 700x1369
475 3065105
Майкрософто-лахта что-то совсем больше не старается. Где вбросы про async/await, где табличка с соснули.рф?
Асинхронность в Спринге включается @EnableAsync
476 3065392
Изучаю сокеты на примере парсинга сайтов (GET запросы к страницам).

https://pastebin.com/AA9ZAnZ5

В методе readResponse, когда убираю вызов readBodyData (59 строка) и раскомментирую строки 49-58 - не хочет выводить тело Web-страницы. Как исправить, чтобы работало корректно с учетом нужной кодировки?
477 3065403
Зачем нужны всякие AbstractList/AbstractSet/прочие? Костыль со времён когда жаба не поддерживала дефолтные реализации методов в интерфейсах?
478 3065406
>>65403
Да, это со 2й джавы.
На самом деле это дефолтные методы - костыль. Интерфейсы должно задавать правила взаимодействия с объектом, а не логику.
479 3065415
>>65406

> Интерфейсы должно задавать правила взаимодействия с объектом, а не логику.


Потому что тыскозал?
480 3065445
>>31312
Ху из мистер Влад?
481 3065507
>>65415
Потому что нарушает Single Responsibility Principle
482 3065574
Шарпобактерии ебаные
483 3065676
>>65415
Да. Вопросы?
484 3065979
>>65507
1. Каким хуем?
2. Даже если, и что?
485 3065995
>>65979
1. Тем, что теперь твой интерфейс это и интерфейс и абстрактный класс
2. Любишь вместо существующего языка использовать выдуманный язык? Потому что именно так это выглядит со стороны когда разработчик вместо конвенционального способа проектирования программы начинает изобретать свои собственные. И конвенция говорит, что интерфейсы не содержат в себе имплементацию.

Я так понимаю твой код никто никогда не ревьюрил, потому что такие вещи не знают только программисты-одиночки.
486 3066003
>>65995

> и интерфейс и абстрактный класс


Ты еблан, лол? По такой логике кроссплатформенность тоже нарушает мантру, ведь и шинду поддерживает и пердоликс. Или там иерархия классов, и Shape и Rectangle и Square.

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



> Я так понимаю твой код никто никогда не ревьюрил, потому что такие вещи не знают только программисты-одиночки.


То есть из твоих аргументов только "здесь так принято" и "ты не программист"?
487 3066006
>>65995

>>разработчик вместо конвенционального способа проектирования программы начинает изобретать свои собственные.


спринг так и поступает, за чистым ООП на джаве - это к бугаенке.
488 3066014
>>66003

> Ты еблан, лол? По такой логике кроссплатформенность тоже нарушает мантру, ведь и шинду поддерживает и пердоликс. Или там иерархия классов, и Shape и Rectangle и Square.


Ты хуйню какую-то лишённую логики спизданул. Попробуй ещё раз.

> То есть из твоих аргументов только "здесь так принято" и "ты не программист"?


Почему ты пишешь на русском языке? Говори на идише, иди против системы. В коде же ты идёшь против "здесь так принято", так давай, здоровайся с людьми носом, переходи дорогу на красный и ходи задом - следуй своему инженерному чувству анон, нахуй эти правила.
489 3066019
>>66014

> Ты хуйню какую-то лишённую логики спизданул. Попробуй ещё раз.


Слив принят.

> Почему ты пишешь на русском языке? Говори на идише, иди против системы. В коде же ты идёшь против "здесь так принято", так давай, здоровайся с людьми носом, переходи дорогу на красный и ходи задом - следуй своему инженерному чувству анон, нахуй эти правила.


То есть ты подтверждаешь что аргументов у тебя помимо "здесь так принято" нет и объяснить зачем это нужно ты не в состоянии?
490 3066024
>>66019
Иди нахуй просто, ещё на говнодебилов время тратить
491 3066026
>>66003
Пиздец порвало беднягу в клочья от открытия принципов организации программ
492 3066034
>>65392
Ты используешь BufferedReader для паркинга хедера. Но проблема в том, что BufferedReader буфферизирует чтение кто бы мог подумать, да?. Соответственно он почти гарантированно вычитает лишние байты из SocketInputStream. И дальше твой ридер для тела запроса будет читать его с середины.

Тебе надо отказаться от ридера для заголовка. Читай побайтово пока не встретишь \n дальше байты в строку и парсить. Когда закончишь с заголовком, можно будет создавать ридер поверх того стрима из которого ты читал.
493 3066109
>>65445
Мне кажется это Влад Яценко, СТО Революта
494 3066149
>>66014

>>здоровайся с людьми носом, переходи дорогу на красный и ходи задом


Тебе скажут что это нерушимые принципы - и ты будешь так делать. Адекваты пошлют нахуй эти правила и будут делать так как удобно им, пока ты будешь визжать что это неправильно и так делать нельзя, ведь бог накажет!!!!
495 3066154
>>66149

> и будут делать как удобно им


> буквально первое, что написано в любом руководстве как писать хороший код: пишите так, чтобы другие легко могли понять написанное


Что ты забыл в программаче?
purple square.jpg2 Кб, 351x316
496 3066390
Предстоит увольнение с текущей работы, на которой проработал 3 года (была первая работа в ИТ) как разработчик. Дайте советов мудрых, как подготовится к миддл собеседованию. Возможно есть у кого полезные ссылки. Я погуглил, но как-то по крупицам всё разбросано.
497 3066434
>>66154

>>первое, что написано в любом руководстве как писать хороший код: пишите так, чтобы другие легко могли понять написанное


Я про это и написал, принципы идут нахуй если они идут вразрез с удобством и понятностью. Иногда они просто устаревают, но долбоебы вроде тебя продолжают дрочить на какую то книжку из 90-х.
498 3066449
Давно в треде не задавал вопросы.

Как профилировать джаву? Вот например у меня есть игра на джаве (копрокубы), и при рендеринге каждый 5-10 кадр рендерится в 4 раза дольше, чем нормальные кадры. Меня это немного доебало и я хочу избавиться от этого. Я могу например найти метод рендера кадра, и после сборки данных профилировки фильтровать результаты, чтобы сравнить, чем занят движок в те микростататтеры, и чем при нормальном рендеринге, и попытаться это как-то распараллелить. Но как собрать данные профилировки, чтобы была выдача, что подметод залупа тратит 70% времени исполнения профилируемого метода, говно 25%, анус 5%?
499 3066492
Давайте добивайте тред, мне завтра некогда будет перекатывать
500 3066498
ПЕРЕКАТ >>3066497 (OP)
ПЕРЕКАТ >>3066497 (OP)
ПЕРЕКАТ >>3066497 (OP)
ПЕРЕКАТ >>3066497 (OP)
ПЕРЕКАТ >>3066497 (OP)
501 3066514
>>66449
Самый распространенный профайлер - VisualVM
В IDEA можно запускать в профилированием
Саму джаву можно запускать с FlightRecorder
502 3066581
>>66434
Нет, ты сказал если тебе конвенции становятся неудобными, то и пусть тогда идут они нахуй. Про других ты ничего не говорил.
Тред утонул или удален.
Это копия, сохраненная 5 мая в 02:12.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски