Вы видите копию треда, сохраненную 22 мая 2017 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
>Что скажите за ДжаваРаш
Нахуй.
>Посоветуйте книжек
https://github.com/qqqlll/Java-Thread/wiki
Раздел книг обновлен, смотрите New books.
>Что писать для портфолио?
google/подумой.
>А вот в языкнейм
Нахуй.
>Посоветуйте книжек по Java web'у
Вменяемого ответа в прошлом обнаружено не было.
Прошлый: https://2ch.hk/pr/res/944172.html (М)
> Что скажите за ДжаваРаш
> Нахуй.
То же самое относится и Гикбрейнс и прочей ебале.
> цитаты в шапке не гринтекстом
Парсер — лох.
Ват из хёр нэйм? Ай вонт ту джёрк май пайтон зис ивнинг.
Ну это из того вебм "хеллоу монгол, гибе моней плз"
Аха) и правда жирненько
Иначе ваше мнение не стоит нихуя.
Жабараш хуйня уже потому, что его создатели неасилили HTML5. Ради интереса как-то прошел с десяток занятий и дропнул, когда это говно потребовало установить Silverlight.
>>950301
Могу поссать тебе в рот с пруфами.
https://www.hackerrank.com
Есть просто задачки по джаве.
Есть курс от няшной тяночки где она вас будут учить:
https://www.hackerrank.com/domains/tutorials/30-days-of-code
Есть разные соревнования с призами.
алсо добавил ссылку в шапку, но ее все равно никто не читает
Ну хз, раз уж она в сф работает, то не за красивые глазки ее взяли?
+ она даже вуз какой то заканчивалаState University of New York at Buffalo, Buffalo
Глянул первый урок про объекты и переменные она рассказывала, вроде доходчиво.
В любом случае тебе решать, что стоит времени, а что нет. На сайте куча задач/соревнований по алгоритмам/кс/математике, что в 100 раз лучше того, что предлагает жавараш.
А есть ли что-нибудь с алгоритмами? Ну там быструю сортировку писать, факториалы подсчитывать (без BigInteger/BigDecimal), деревья обходить, лабиринты строить, тексты упаковывать-распаковывать-шифровать?
Я вот иногда подумаю сделать такой же сайт, типа жабораша, но не для вкатывальщиков-пиццевозов, а чтобы реально учил программированию. Но лень.
public static void main(String[] args) {
SpringApplication application = new SpringApplication(PhonebookApplication.class);
Properties props = new Properties();
props.put("spring.mvc.view.prefix", "/WEB-INF/jsp/");
props.put("spring.mvc.view.suffix", ".jsp");
application.setDefaultProperties(props);
application.run(args);
}
Я не он. Но шпрингбут это колясочка.
Которая работает на магии.
Если хоть чуток залезешь под капот коляски она может ебнуть в лоб и сломаться к хуям.
Если хочешь настраивать используй обычный спринг
Как раз подходит про явамирок и пхпдебила на спрингбуте
Как работает - смотри в сторону PropertySourcesPlaceholderConfigurer например.
Мастер колясочник в треде.
а что эта хуйня должна создать для тебя? Веб сервер на порту ил как ее вообще дрочить? Какой там контейнер под капотом в итоге?
если не колядовать с include/exclude пакетов, то спрингбут штатно пашет на томкате
Там наверняка должен быть какойнить джети джар, чтобы всю эту грушу локально превратить в веб сервер.
емнип, вся магия (типа вот такой: https://devcenter.heroku.com/articles/create-a-java-web-application-using-embedded-tomcat) происходит в SpringApplication.run(), оно там поднимает томкат, а дальше как у обычного томката с поднятием сервлетов, сканированием аннотаций и вот этого всего
Ах бля, все это говно еще можно пускать за пределами веб сервера, простит, проспал и обосрался(спрингом). Какой он всетаки универсальный говнопалка лепитель.
почему не видит проперти вайл, ну мля дай ему -Dspring.mvc.view.prefix=/WEB-INF/jsp/ на старте
этоже ябаная джава, нужно мыслить костыльно, все классно скомпоновать не получится.
если быть точным это спринг, а не джава. без спринга нет паники, куда лезть и что от чего зависит. А с ним велкам ту хелд.
Me: "What?".
Пишет как у отписавшегося ниже
is this still working for you with 2.22 ? I get the message Cannot contact reCAPTCHA. Check your connection and try again
Потому что ты даже не посмотрел и не запостил исключение, долбоеб. Защита от идиота.
я поснифал и не грузит вот эту страницу
https://www.google.com/recaptcha/api2/webworker.js?hl=ru&v=r20170228102020
т.е. почему-то джаваскрипт где-то неправильно отрабатывает
Это просто загрузка тестовой страницы. Чекбокс находится(не знаю нажимается или нет), но картинка каптчи не грузится
Есть алгоритмы
https://www.hackerrank.com/domains/algorithms , есть структуры данных
https://www.hackerrank.com/domains/data-structures/arrays .
Побампаю
Есть видео где ее трахают?
В некоторой компании возникла потребность в хранении и управление учетными записями пользователей. Задача по реализации данных потребностей выпала вам.
Необходимо реализовать REST сервис отвечающий следующим требованиям:
· Данные пользователя которые необходимо хранить: Фамилия, Имя, Дата рождения, email и пароль.
· Пароль пользователя должен храниться в безопасной форме
· Функции которые должен предоставлять сервис: добавление пользователя, удаление пользователя, поиск пользователя по email
· Использовать InMemory реализацию базы данных (т.е. хранить данные в памяти)
· Рекомендуется использовать стек технологий Spring не ниже версии 4.
Задали на неделю это и еще пару заданий, в принципе с остальными у меня вопросов нет, но тут он возник. Они в своей вакансии написали, что предполагают, что кандидат знает только java se8. А тут задают задание со спрингом. Так вот вопрос вот в чем: они хотят проверить, достаточно замотивирован ли я, что готов разобраться с этим меньше чем за неделю? Или они наврали в вакансии насчет навыков? И главный вопрос, с этим заданием реально разобраться за пару дней? При условии, что ни REST'а ни springa я не знаю?
Насчет разобраться не знаю.
Но сделать это можно на несколько часов.
А вообще гугли в инете пример рест сервиса на спринге и переделывай его.
Можешь уже готовый helloworld со всеми нужными фреймворками собрать на spring.io, а остальное тупо по аналогии сделать. Он тебе сконфигуренный мавен/гредл проект совсеми зависимостями может даже стартер спринговый будет предоставит.
Если на разбираться, как работает весь этот спринг и не сильно вдаваться в подробности, то что-то да можно сваять без проблем за пару дней.
Эта уебищная желтая кожа. Вангую пизда такого же невнятного цвета и анальное кольцо темное.
Хуясе! Ценитель чистых кровей и белых анусов в треде! Все по печкам!
Делается за полчаса на spring boot. Гугл в руки - за сутки справишься.
Я пока только подумываю, сейчас я вроде техлида на небольших проектах, не знаю как происходит когда в другую контору переходишь, тебя же не поставят сразу лидом пока в проект не вьедешь
Дайте же наводку.
допоможите, люди добрые
37-й лвл, Java SE от зубов отскакивает, плюс разобрался в алгоритмах и структурах данных. Жаль, они учебник не выпускают.
Не работает в клипсе printf(); какого хуя, все облазил, нигде по этому инфы нет, все установлено правильно, настройки проверял.
З.Ы
Можете обложить хуями.
Мань, без знания языка ты соснёшь с разбором фреймворков. Другой вопрос, что ты галерный Тяпкин-Ляпкин, который тяп-ляп всё делает.
Стало конечно охуенно быстро, но не то. Если нашли исходное слово в листе, то кладем в сет следующее, и продолжаем поиск.
Тогда раздели свой список на части и для каждой из частей примени свой алгоритм в нескольких потоках, а потом собери все полученные сеты в один (долго думать не надо, достаточно использовать джавовский fork-join). Но такое будет быстрее, только если исходный список строк довольно большой.
Плюс, у тебя там NPE может быть, если крайняя строка равна искомой.
>и для каждой из частей примени свой алгоритм в нескольких потоках
Имелось в виду обработка каждой части в отдельном потоке, если что.
Не брать элемент по индексу, а использовать итератор и запоминать предыдущий.
Lazy fetching.
>Сильно поможет?
Нет, если ты используешь ArrayList.
Классическая задача на поиск, на самом деле. В неотсортированном списке решается за O(n). Ускорить можно распараллеливанием.
Mapdb.
Никто не знает..... Летом еще видимо работало, а потом поменяли.
jre
Потому что ты его прочитал на предыдущей итерации.
>Сильно поможет?
Попробуй и узнаешь.
Если прям нужна скорость, то, как тебе уже сказали, распаралеливание. Ну либо поменять подход к решению задачи вообще.
Да, поменяй подоход. Начни подходить не спереди, а сзади.
(Автор этого поста был предупрежден.)
Ты опять вылазишь, ты, ебанашка?
Лан, походу придется Selenium+PhantomJS юзать
Антоны, как вам вирант webm на пик для следующего треда?
https://www.youtube.com/watch?v=fPrBvBH9G2o
Да ладно тебе.
Распараллелил. Примерно на 40% быстрее стало. Попробую еще итератор прикрутить, должно быть пиздато.
Братишка, я тебе покушать принёс.
http://pastebin.com/JCAcwX5Q
На моей машине (типа 4 ядра) твой изначальный вариант почти всегда выигрывает. Иногда его перебивает RecursiveAction со стилингом (LinkedWordsAction2). Почему так - я не догнал пока. Может есть у кого какие идеи?
- Сборка мусора: после каждого теста (да и во время) генерится мусор. GC (в зависимости от настроек) может начать убираться прямо во время выполнения какого-нибудь теста, иногда многократно;
- Шедуллинг потоков и нагрузка на ядра (возможно, в разных запусках процессор нагружался по-разному процессами в ОС);
- Тайминг при контеншене на вставку в конкурентный сет: помимо того, что CAS у одного потока может фейлить из-за того, что остальные потоки туда пишут, так ещё и сам CAS хуярит через memory barrier, что снижает эффективность кэширования.
Мб кто из прошаренных дополнит.
А вообще, конечно, для большей чистоты эксперимента надо в JMH тестировать.
>CAS у одного потока может фейлить из-за того, что остальные потоки туда пишут
Так получается, что они пишут не в память, а в кэш процессора, ведь эта линейка, скорее всего, уже там. Соответственно, никакого CAS там нет. Просто предположение, поясните, кто шарит.
Вот так лул, низкое качество материалов из-за таких вот учителей за тридцатку в месяц. Высокие цены за курсы. Тот же андроид 50к за курс(7к за один месяц, всего 7 месяцев). Зато гребут деньги лопатами.
Алсо ахуел с их сайста, который подгрузил мне 9 метров почти статичной страницы.
Мне на почту регулярно приходили от них вакансии типа "преподаватель курсов на Java". Занес этих петухов в спам-лист, заебали.
Не надо петушков банить. Они хорошие.
Аноны, делаю игрушку на андроиде (пока что только на бумаге). Растерялся на одном моменте. Игрок должен создать для себя очередь заданий типа собирать камень 3 минуты, собирать руду 40секунд, построить барак минута. В игрушке я могу сделать как-нибудь простенько, а вот в продакшне, как опытные джава ниндзя пишут код где задания разнесены во времени? Например всяких биржевых ботов, системы слежения или я хуй знает сервис который делает 15 минут это, 10 минут то и пол часа другое.
Я пидорок. Еби меня в задок.
Если у тебя есть класс мира, то запускай метод апдейта по таймеру. Либо апдейт обьекта по эвенту от юи.
Ну вот типичная задачка с двадцатого уровня, например.
[CODE]
/ Свой список
Посмотреть, как реализован LinkedList.
Элементы следуют так: 1->2->3->4 и так 4->3->2->1
По образу и подобию создать Solution.
Элементы должны следовать так:
1->3->7->15
->8...
->4->9
->10
2->5->11
->12
->6->13
->14
Удалили 2 и 9
1->3->7->15
->8
->4->10
Добавили 16,17,18,19,20 (всегда добавляются на самый последний уровень к тем элементам, которые есть)
1->3->7->15
->16
->8->17
->18
->4->10->19
->20
Удалили 18 и 20
1->3->7->15
->16
->8->17
->4->10->19
Добавили 21 и 22 (всегда добавляются на самый последний уровень к тем элементам, которые есть.
Последний уровень состоит из 15, 16, 17, 19. 19 последний добавленный элемент, 10 - его родитель.
На данный момент 10 не содержит оба дочерних элемента, поэтому 21 добавился к 10. 22 добавляется в следующий уровень.)
1->3->7->15->22
->16
->8->17
->4->10->19
->21
Во внутренней реализации элементы должны добавляться по 2 на каждый уровень
Метод getParent должен возвращать элемент, который на него ссылается.
Например, 3 ссылается на 7 и на 8, т.е. getParent("8")=="3", а getParent("13")=="6"
Строки могут быть любыми.
При удалении элемента должна удаляться вся ветка. Например, list.remove("5") должен удалить "5", "11", "12"
Итерироваться элементы должны в порядке добавления
Доступ по индексу запрещен, воспользуйтесь при необходимости UnsupportedOperationException
Должно быть наследование AbstractList<String>, List<String>, Cloneable, Serializable
Метод main в тестировании не участвует
/
[/CODE]
Ну вот типичная задачка с двадцатого уровня, например.
[CODE]
/ Свой список
Посмотреть, как реализован LinkedList.
Элементы следуют так: 1->2->3->4 и так 4->3->2->1
По образу и подобию создать Solution.
Элементы должны следовать так:
1->3->7->15
->8...
->4->9
->10
2->5->11
->12
->6->13
->14
Удалили 2 и 9
1->3->7->15
->8
->4->10
Добавили 16,17,18,19,20 (всегда добавляются на самый последний уровень к тем элементам, которые есть)
1->3->7->15
->16
->8->17
->18
->4->10->19
->20
Удалили 18 и 20
1->3->7->15
->16
->8->17
->4->10->19
Добавили 21 и 22 (всегда добавляются на самый последний уровень к тем элементам, которые есть.
Последний уровень состоит из 15, 16, 17, 19. 19 последний добавленный элемент, 10 - его родитель.
На данный момент 10 не содержит оба дочерних элемента, поэтому 21 добавился к 10. 22 добавляется в следующий уровень.)
1->3->7->15->22
->16
->8->17
->4->10->19
->21
Во внутренней реализации элементы должны добавляться по 2 на каждый уровень
Метод getParent должен возвращать элемент, который на него ссылается.
Например, 3 ссылается на 7 и на 8, т.е. getParent("8")=="3", а getParent("13")=="6"
Строки могут быть любыми.
При удалении элемента должна удаляться вся ветка. Например, list.remove("5") должен удалить "5", "11", "12"
Итерироваться элементы должны в порядке добавления
Доступ по индексу запрещен, воспользуйтесь при необходимости UnsupportedOperationException
Должно быть наследование AbstractList<String>, List<String>, Cloneable, Serializable
Метод main в тестировании не участвует
/
[/CODE]
Тогда спринг рест. Это отдельный проект в спринге.
Но что cxf, что resteasy, что jersey сделать проще.
> Алсо ахуел с их сайста, который подгрузил мне 9 метров почти статичной страницы.
Пороверь загрузку процессора, вдруг оно ещё и биткоины майнит.
> Вообще предлагаю всем кто петушится на Раш - или с пруфами дойти до 40 уровня или сделать аналогичный проект, причём ещё доказать что он лучше.
> Уровень 40: план уровня и доп. материалы
> План уровня:
> Domain, URL
> HTTP, port, request, response, REST
> Date, Callendar
> Date utils
> URI, openConnection
> URI, download file
Алсо обзмеился со ссылки на первой же странице в гугле по "javarush 40 уровень":
> Junior Java Developer в 40 лет. Реальность или самообман
> Есть знакомая, которая последние 20 лет проработала в СПбГУ на специальности слабо связанной с IT.
> PPS Она не тетушка просидевшая всю жизнь в кабинетах, а боевой экспедиционный товарищ, 40 кг лодку в гору или разобрать–собрать Нептун–23 с закрытыми глазами — без проблем (я серьезно).
Vim
че значит портейбл? мало весит, не нужно инсталить? уан баттон старт?
Это все можно самому собрать и впихнуть в флешку, все ИДЕ зависят только от джавы.
Собери один раз ИДе которая тебе по кайфу, сделай бат или сш файл на флешке и пускай себе на здоровье.
Еще есть Eclipse Che. Облачная ide. Из браузера можно хуячить.
Обычно, у ядер на одном сокете общий кэш только L3, а ядра на разных сокетах вынуждены общаться через главную память. При memory barrier происходит запись кэша в память.
Мир вашиму миру, бразы.
Учу спринг и хибернейт. Пилю пет проджект.
Есть вопрос по практике. Как лучше и правильнее чтобы говнокод не генерить, и не проиграли ревьюеры организовать методы дао, для работы с помощью методов хибернейт с объектами? CRUD в общем.
Меня терзают смутные сомнения, что лучше там оборачивать внутри транзакций. Как вам такое? И вообще, как надо? Если я хуйню пишу.
Да, ты прав. Слышал и видосы смотрел. Красиво. Но хочу, для начала, разобраться с хибернейтом. Надо же въехать в тему. А потом уже зарефакторить думаю все под спринг бутом с спринг дата.
Гляди в сторону абстракт дао
Может быть, есть какой-то механизм, при котором транзакционный метод уже "знает", что надо подгрузить из БД? Можно передавать туда замыкание из view, но это как-то криво, да и зависимость будет между представлением и бизнес-логикой.
Поясните, плиз.
Никто не знает верного ответа. Но два самых частых воркэраунда ты уже назвал: дто и фильтр на открытие сессии. А, ну еще есть eager loading. Сам выбирай, что из этого тебе подходит лучше.
Наружу транзакции передаешь нужные стейтлесс дтошки. Чтобы не руками маппить, юзай фреймворки для маппинга бинов. Ту же орику, например.
Или не юзай JPA и тащи из БД сразу что нужно и на месте маппи в стейтлесс модель.
Пока сделано так: в транзакционный метод передаются ассоциации, которые нужно подгрузить через fetch (например, "yoba.huy", "yoba.pizda"), транзакция коммитится, а при рендеринге используются уже проинициализированные объекты. По мне, так какая-то корявая хуйня, но ничего лучше я пока не придумал.
Что-то я не понял.
> в транзакционный метод передаются ассоциации, которые нужно подгрузить через fetch (например, "yoba.huy", "yoba.pizda")
В метод передаются "ассоциации", по которым ты подгружаешь список тех полей, которые тебе нужны и в респонсе юзаешь только те поля и объекты, которые проинициализировал по "ассоциациям"?
Криво выразился. Передаются названия полей, которые нужно подгрузить. В результате, они инициализируются при запросе к БД через join fetch.
Еще один кому СРОЧНО. Разбирайся.
Хуяк-хуяк подход: Open Session in View.
Не хуяк-хуяк: подгружать в сервисе всё что нужно засунуть во вьюху. Как это сделать "правильно" - ХЗ. У нас на одном из проектов одним из параметров передаются флаги указывающие на то, что нужно подгрузить. Не очень красиво, но работает. В другом сделаны несколько методов отличаюшихся лишь тем, что они подгружают: loadHuinya, loadHuinyaWithPizda, loadHuinyaWithJigurda, ну и loadHuinyaWithPizdaAndJugirda - куда уж без него. Ещё больший пиздец, как по-мне, но работает же. Короче, быдлокодят кто во что горазд. Универсального решения нет.
>Open Session in View
Можно изъебнуться и передавать замыкание в транзакционный метод. Но, как я уже выше писал, появляется зависимость между представлением и бизнес-логикой. Наверное, это можно как-то разрулить через интерфейсы. Но там есть еще и другая проблема: транзакция распухает.
Пиздец, я этот Open Session in View еще в 2006 году использовал. Неужели за это время так и не решили эту ебанутую проблему?
Думаю многим интересен вопрос, что и как происходит на собеседовании, когда ты хочешь соскочить с галеры и нацелен на большие деньги. Вкатывайтесь со своими историями и советами. Какие вопросы задают, как на них отвечать и в каком ключе всё проходит.
[b]Не из своего опыта: [/b]
-HR(А хуль не гребётся на своей галере?) :Хочу расти, замотивираван в участие в серьёзных проектах, компания моя не может мне этого дать, но вы же не такие, вы всё дадите?
-Тех.соб: 2-3 типичные(для джунов) алгоритмические задачи (дерево, сортировка, факториал рекурсией (плохо)). Какой нибудь аспект углубления (ex многопоточность). Далее рассказ с какими технологиями и фреймворками удалось поработать и последующее углубление в одну из них.
- мы вам перезвоним: просим на 20-30% больше нынешней зп, не унываем и идёт на следующее собесед. (те кто вкатывался за 3-5 собеседований в джунов, за 1-3 собеседования находят себе лвл ап в новой компании один даже на нынешней выбил +30%)
>дерево
Какое именно дерево?
>сортировка
Какая именно сортировка?
>факториал рекурсией (плохо)
А это нахуя?
Ты не за то уцепился, вопросов миллион можно придумать.
> дерево
да хоть принцип работы TreeSet или TreeMap
> сортировка
квиксорт, да что угодно, это же просто повод выйти на разговор и посмотреть как ты думашеь, ты даже можешь не знать, но попытаться закостылить что нибудь
> факторил
justforlulz, ну или рассказать почему это плохо после (некий НАВОДЯЩИЙ вопрос)
>да хоть принцип работы TreeSet или TreeMap
Self balancing binary search tree.
>ты даже можешь не знать, но попытаться закостылить что нибудь
Нихуя ты кроме сортировки вставками не закостылишь, если ничего не знаешь по этой теме. Там нетривиальные алгоритмы, которые просто так не получится изобрести на собеседовании. Когда ты про них знаешь, некоторые из них кажутся простыми, но когда не знаешь, то хуй ты их изобретешь вот так вот вдруг.
> алгоритмические задачи
ответ: для начала (по TDD) тесты на бумажке подготовьте, без этого НИКАК.
p.s. остальное все дельное.
Ну или посоветуйте нормальный учебник
а как idea в портабл сделать, в инте старые гайды и очень старая портативная версия (
Берешь и запускаешь экзешник установленной идеи. Главное чтобы в ини не было кэшей на несуществующих разделах. Все.
Горяченькие пирожки.
ретрофит посмотри.
но нужно чтобы апи было именно рест, а не просто жейсон кидало как например в апи харкача макакиного
На андроиде я его и использую. Решил спросить, вдруг в бэкенде что-то другое принято использовать.
Ну можно использовать и другие решения.
Camel тот же самый. Но если у тебя архитектура простая то лучше используй ретрофит. Если охота боли и унижений можешь хоть апачевский хттпклиент из коммонсов использовать.
Можешь из cxf клиент взять.
Но это не особо лучше.
http://cxf.apache.org/docs/jax-rs-client-api.html#JAX-RSClientAPI-JAX-RS2.0ClientAPI
Удваиваю сей реквест. Та же проблема.
В бэкенд могу норм, для нубаса , написал уже процентов 70 функционала. На фронтэнде все застряло.
Очевидная Scala.js
Set<String> s= new HashSet<>();
s.addAll(Arrays.asList( "ab", "jhvv", "ac"));
Set<String> s2= new HashSet<>();
s2.addAll(Arrays.asList( "ab", "fbb", "ac"));
Iterator<String> a= s.iterator();
while (a.hasNext()) {
String next = a.next();
if(s2.contains(next))
System.out.println(next);
}
Научись гуглить для начала
http://stackoverflow.com/questions/7574311/efficiently-compute-intersection-of-two-sets-in-java
Ok.
Да уже выкинул итератор нахуй.
Хули сложного-то блять? Там конструктор есть, с 3-мя, кажется, параметрами. В последний передаешь true. Все.
>950212
>Жабараш хуйня уже потому, что его создатели неасилили HTML5. Ради интереса как-то прошел с десяток занятий и дропнул, когда это говно потребовало установить Silverlight.
>950301
>Могу поссать тебе в рот с пруфами.
Поясни почему гикбрейн хуйня
Да это пишется в 3 строчки буквально. Только я не понял, что ты там пытаешься решить.
Надо смотреть за сколько часов в месяц это.
Потому что джавараш, только не ограничивающийся одним языком, а рубящий бабло по всей теме войти вайти и с людьми, читающими методичку вслух вместо потешных роботов между абзацами методички. Ну и с временным фактором в виде двух-трех чтений методички в неделю.
А хуй мне там отсосут?
герберт шилдт "Java 8 руководство начинающих"
мимо челик который собрался вкатиться в айти
> быстро мне назвали 3 преимущества жабы перед жабаскриптом. мимо челик который собрался вкатиться в айти
"Жаба" в отличии от
1 пишется короче
2 читается короче
3 и произносится тоже
Незачто
Анон помоги. Я только вкатываюсь в java. Как инициализировать массив в ручную?
Scanner sc = new Scanner(System.in);
int[] array = new int[5];
for (int i = 0 ; i < 5 ; i ++)
array = sc.nextInt();
Ты долбобоб? Они для разных задач.
1. Сильная и статическая типизация.
2. Хуева гора production ready библиотек и фреймворков, на порядки меньше кривых петушиных поделок.
3. Намного меньше школьников и других долбоебов в комьюнити.
Created by Sergio on 3/14/2017.
/
import java.util.Scanner;
public class Pr1 {public static void main(String[] args) {
Scanner in = new Scanner(System.in, "windows-1251");
System.setProperty("console.encoding", "windows-1251");
int sd, er;
String mas;
String slo, key;
System.out.println("Выберите способ шифрования: ");
System.out.println("0 - шифр Цезаря");
System.out.println("1 - побитовое шифрование");
int ven;
ven = in.nextInt();
switch (ven) {
case 0:
System.out.println("Введите символы: ");
mas = in.nextLine();
System.out.println("Введите величину сдвига: ");
sd = in.nextInt();
char[] mass = mas.toCharArray();
char o;
for (int e = 0; e < mass.length; e++) {
for (int p = 65; p < 91; p++) {
o = (char) p;
er = p + sd;
if (mass[e] == o) {
if (mass[e] == (char) 90) {
p = 64;
er = p + sd;
}
mass[e] = (char) er;
break;
}
}
for (int p = 97; p < 123; p++) {
o = (char) p;
er = p + sd;
if (mass[e] == o) {
if (mass[e] == (char) 122) {
p = 96;
er = p + sd;
}
mass[e] = (char) er;
break;
}
}
}
System.out.println(mass);
break;
//ЛАБА1 ЗАДАНИЕ 2
case 1:
System.out.println("Введите слово: ");
slo = in.nextLine();
char[] slov = slo.toCharArray();
System.out.println("Введите ключ такой же длинны: ");
key = in.nextLine();
char[] keyy = key.toCharArray();
char[] lol = new char[slov.length];
char[] lul = new char[slov.length];
int[] qw = new int[slov.length];
int[] qwe = new int[slov.length];
int[] qwer = new int[slov.length];
for (int s = 0; s < slo.length(); s++) {
for (int ss = 1040; ss < 1104; ss++) {
char at = (char) ss;
if (slov == at) qw = ss - 1040; //1040 включает большие буквы/1071 только маленькие
}
for (int ss = 1040; ss < 1104; ss++) {
char at = (char) ss;
if (keyy == at) qwe = ss - 1040;
}
qwer = qw ^ qwe;
qwer = qwer + 1040;
lol = (char) qwer;
for (int ss = 1040; ss < 1104; ss++) {
char at = (char) ss;
if (lol == at) qw = ss - 1040;
}
qwer = qw ^ qwe;
qwer = qwer + 1040;
lul = (char) qwer;
}
System.out.println(lol);
System.out.println(lul);
break;
}
}
}
Почему он скипает первую часть в каждом case?
Created by Sergio on 3/14/2017.
/
import java.util.Scanner;
public class Pr1 {public static void main(String[] args) {
Scanner in = new Scanner(System.in, "windows-1251");
System.setProperty("console.encoding", "windows-1251");
int sd, er;
String mas;
String slo, key;
System.out.println("Выберите способ шифрования: ");
System.out.println("0 - шифр Цезаря");
System.out.println("1 - побитовое шифрование");
int ven;
ven = in.nextInt();
switch (ven) {
case 0:
System.out.println("Введите символы: ");
mas = in.nextLine();
System.out.println("Введите величину сдвига: ");
sd = in.nextInt();
char[] mass = mas.toCharArray();
char o;
for (int e = 0; e < mass.length; e++) {
for (int p = 65; p < 91; p++) {
o = (char) p;
er = p + sd;
if (mass[e] == o) {
if (mass[e] == (char) 90) {
p = 64;
er = p + sd;
}
mass[e] = (char) er;
break;
}
}
for (int p = 97; p < 123; p++) {
o = (char) p;
er = p + sd;
if (mass[e] == o) {
if (mass[e] == (char) 122) {
p = 96;
er = p + sd;
}
mass[e] = (char) er;
break;
}
}
}
System.out.println(mass);
break;
//ЛАБА1 ЗАДАНИЕ 2
case 1:
System.out.println("Введите слово: ");
slo = in.nextLine();
char[] slov = slo.toCharArray();
System.out.println("Введите ключ такой же длинны: ");
key = in.nextLine();
char[] keyy = key.toCharArray();
char[] lol = new char[slov.length];
char[] lul = new char[slov.length];
int[] qw = new int[slov.length];
int[] qwe = new int[slov.length];
int[] qwer = new int[slov.length];
for (int s = 0; s < slo.length(); s++) {
for (int ss = 1040; ss < 1104; ss++) {
char at = (char) ss;
if (slov == at) qw = ss - 1040; //1040 включает большие буквы/1071 только маленькие
}
for (int ss = 1040; ss < 1104; ss++) {
char at = (char) ss;
if (keyy == at) qwe = ss - 1040;
}
qwer = qw ^ qwe;
qwer = qwer + 1040;
lol = (char) qwer;
for (int ss = 1040; ss < 1104; ss++) {
char at = (char) ss;
if (lol == at) qw = ss - 1040;
}
qwer = qw ^ qwe;
qwer = qwer + 1040;
lul = (char) qwer;
}
System.out.println(lol);
System.out.println(lul);
break;
}
}
}
Почему он скипает первую часть в каждом case?
Чаво? Я не понимаю, сорь. Объясните дауну. По отдельности работает, а как запихнул в свитч, перестало.
Две недели учил Python, говорят на него меньше вакансий.
22 года, последний курс.
Ты уже должен был три года работать
что пишет? или ты прямо так, со слэшами написал?
или его, или шарпы учи
А вообще у тебя блок после кейса без скобок.
В иде это было бы видно сразу.
Ну и мне лень глаза ломать.
Ставь иде
Учись писать красивый код.
Я уже дохуя статей на хабре запалил, но столько инфы, что я ахуеваю. С чего начинать то?
Сейчас сделал следующее:
Поставил НетБинс. Скачал погромирование для бабушек и ебенячих дедушек из шапки. Собираюсь прочитать его, а потом задрочить синтаксис. После этого переходить к серьезной литературе, учиться применять приобретенные навыки.
Все норм?
Двачую. В профессии уже не протолкнуться от долбоебов, так туда днище и продолжает лезть. Пошел бы в 1С или таксистом, например. Хули выебываться?
Пагни, выручайте.
Есть задачка одна сложная для вас легкая
String[] name = {"Vladimir Putin"}
Нужно вытащить первые буквы, т.е. инициалы: VP соответсвенно должно получиться.
Использую команды String or HashMap.
Я накидываю примерно так, но не работает:
import java.util.HashMap;
import java.util.Set;
public class SemifinalatSchool {
public static void main(String[] arg){
String[] name = {"Vladimir Putin"};
HashMap<String, Integer> hashMap = new HashMap<String, Integer>();
for (int i = 0; i < name.length; i++)
hashMap.put(name, 1);
if (name.length == hashMap.size())
System.out.println("Array has unique element");
else
System.out.println("Array does not have unique element");
Set<String> keys = hashMap.keySet();
for (String key: keys)
System.out.println(key);
hashMap.clear();
int value = 0;
for (int i = 0; i < name.length; i++)
if(hashMap.containsKey(name)){
value = hashMap.get(name).intValue();
hashMap.put(name, ++value);
}
else
hashMap.put(name, 1);
System.out.println(hashMap);
}
}
Можно любыми другими способами, но желательно коненчо черзе команды String
Пагни, выручайте.
Есть задачка одна сложная для вас легкая
String[] name = {"Vladimir Putin"}
Нужно вытащить первые буквы, т.е. инициалы: VP соответсвенно должно получиться.
Использую команды String or HashMap.
Я накидываю примерно так, но не работает:
import java.util.HashMap;
import java.util.Set;
public class SemifinalatSchool {
public static void main(String[] arg){
String[] name = {"Vladimir Putin"};
HashMap<String, Integer> hashMap = new HashMap<String, Integer>();
for (int i = 0; i < name.length; i++)
hashMap.put(name, 1);
if (name.length == hashMap.size())
System.out.println("Array has unique element");
else
System.out.println("Array does not have unique element");
Set<String> keys = hashMap.keySet();
for (String key: keys)
System.out.println(key);
hashMap.clear();
int value = 0;
for (int i = 0; i < name.length; i++)
if(hashMap.containsKey(name)){
value = hashMap.get(name).intValue();
hashMap.put(name, ++value);
}
else
hashMap.put(name, 1);
System.out.println(hashMap);
}
}
Можно любыми другими способами, но желательно коненчо черзе команды String
Блядь, обезьяна код поламала.
запилил сюда, для вас, ребята, только помогите.
http://pastebin.com/KDiB4bh6
Это же элементарная задача уровня физзбазз:
http://ideone.com/VbAI7n
У нас на собеседованиях джунам такие задают. Код нужно написать на бумажке без гугла. Если кандидат думает больше пары минут или допускает ошибки (код не компилируется/не работает), ему ПЕРЕЗВАНИВАЮТ.
Вообще советую изучить Stream'ы, годная вещь:
https://habrahabr.ru/company/luxoft/blog/270383/
Сокращают код на порядки, позволяя обоссывать всякое скриптобыдло. В .NET есть аналогичная конструкция, LINQ, но там еще кое-что добавили.
заместо getInitials()
int k = keys.length;
for (int i = 0; i < k; ++i)
Это типа оптимизация или писавший просто упорот? Что будет если я поменяю на:
for (int i = 0; i < keys.length; ++i)
Повлияет на время выполнения или вообще нихуя не произойдет?
Ну, теоретически, если keys не final или не effectively final и длина keys неизвестна во время компиляции, то тут мало что оптимизируешь. В другом случае можно либо сразу подставить константу длины (либо вообще сделать loop unrolling для достаточно малой длины), либо сохранить её в регистр.
>>954147
Благодарочка, ребятки!
Но меня немного поправили, потому что это не так как мы работаем ты какой-то слишком умный для нас!
Они делали так эту задачу, если кому интересно:
http://pastebin.com/9QP8wDZb
Ммаксимум сладкий хлеб.
Опять я. Но уже с JUnit у Мавена.
Начинаю делать такой шаблон для дальнейшего веб тестирования.
Не работает, пишет:
java.lang.NullPointerException
at com.Cruise.MultipleBrowsers.test(MultipleBrowsers.java:45)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
Выручайте, без вас помочь некому.
http://pastebin.com/Y73hD56c
Опять я. Но уже с JUnit у Мавена.
Начинаю делать такой шаблон для дальнейшего веб тестирования.
Не работает, пишет:
java.lang.NullPointerException
at com.Cruise.MultipleBrowsers.test(MultipleBrowsers.java:45)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
Выручайте, без вас помочь некому.
http://pastebin.com/Y73hD56c
Ах да, жалуется на эту строчку 45 почему-то.
>driver.get("http://www.google.com");
Я подозреваю, что проблема же в библиотеках Мавена, депенденсис?!
А он у тебя инициализирован? Я вижу только пустую переменную которая по умолчанию NULL
>953038
>Потому что джавараш, только не ограничивающийся одним языком, а рубящий бабло по всей теме войти вайти и с людьми, читающими методичку вслух вместо потешных роботов между абзацами методички. Ну и с временным фактором в виде двух-трех чтений методички в неделю.
Ясно, спасибо
Лол блять, почти свой токенайзер.
Есть веб и один воркер.
Как лучше поступить? Создавать 2 проекта: одно для веба, который буду деплоить, и другое для воркера, который я просто закину в папку с вебом? Или можно это всё как-то в 1 проекте сделать? В общем, посоветуйте.
Ладно.
То чувство, когда на работе нет няшной ламповой ждкшечки-восьмерочки.
i++ сначала возвращает значение переменной. А ++i возвращает измененное значение
Это не я код писал..Не совсем понимаю о чем ты. Я же только учусь.
Хотелось бы конечно услышать проблему. Спасибо!
Нереально. В яве нет доступа к консоли. Не, можно конечно выводить сотку переносов строк, но это немного не то.
Перейду сразу к сути:
Connecting to EJBs from Spring application.
Вот такое задание я получил. И вроде бы в инете есть примеры. И вроде на официальных сайтах есть примеры и описание. Но не работает эта хуйня. Ошибки разные, но из них я понял одно. Есть что-то, о чем не пишут в манулах и пазл не собирается воедино. Я грешу на часть, где заполняется контекст, для последующего лукапа jndi ресурса. Например вот тут
Properties env = new Properties();
env.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.openejb.client.RemoteInitialContextFactory");
env.put(Context.PROVIDER_URL, "ejbd://localhost:4201");
Допустим есть апач с запущенными на нем бинами. Но вот этот порт 4201 откуда берется? Не пишут.
Потом другой пример:
remote.connection.default.username=appuser
remote.connection.default.password=apppassword
Предлагают в пропертис прописать логин и пароль к СОЕДИНЕНИЮ Откуда я его высру? Какой нахуй пароль? Где его устанавливать, чтобы потом коннектиться с помощью пароля? Я хуею с таких манулов я не шибко умный.
Если я хреново объяснил суть проблемы, то вот ссылка
https://dzone.com/articles/connecting-ejbs-spring
на манул, исходники которого я даже скачал и запустил, но он не работает один хер, потому что не может приконнектиться к jndi. Ещё бы он блять мог, на сервере ведь нигде ресурс не создан, а что и как создавать нигде не пишут. Будто он как то сам должен УЖЕ быть
Хотя в JS каждые полгода новый фреймворк надо учить. Тебе в PHP.
Ты хреново учишся. Проблемцу тебе огласили, но ты так ничего и не понял. Снова...
У него есть какой то openejb плагин, как я понял.
В общем на 3й день тыканья лбом в жабье говно я таки смог запустить 125й по счету исходник из инета. Вот тут рабочий вариант на современном конфиге жи босса
http://www.mastertheboss.com/jboss-server/jboss-as-7/jboss-as-7-remote-ejb-client-tutorial
Если для каждого канала свой пайплайн, где висит свой инстанс кодека, то при массовой рассылке сообщений (перебор в цикле всех каналов) для каждого канала вызывается encode метод отдельно и кодируется одно и тоже сообщение тоже отдельно. Например кодирование сообщения для чата через сериализацию: создаем новый поток вывода -> создаем буфер -> сериализуем. Это же просто пиздец какой оверхед. Очевидно, что нужно сериализовать это сообщение один раз и потом отправить всем каналам, но как в нетти это сделать?
Это не чай, а кофе.
Хотел бы сделать всё в одном проекте, и чтобы были сабпроекты для каждой программы свои, но потом готовые jar собирались в отдельную папку. Получается корневой проект как бы "пустой".
Поколупал чуть-чуть gradle, вроде сделать можно без особого рукоприкладства.
Однако не могу завести всё это в идее, эта хуйня меня сегодня уже просто доебала. Сначала там какие-то модули блядские создаются, причём у меня есть модуль project, а потом рядом ещё один модуль project а внутри project_test итд, хотя оно мне в корневом проекте вообще нахуй не нужно. Пробовал удалять - они назад возвращаются.
В итоге удалил папку проекта вообще, всё пересоздал - так эта тупая сука где-то у себя сохранила все названия и создала мне их опять в модулях. К тому же, при синхронизации с gradle оно продублировало строки всех билдфайлов.
Стоит ли заморачиваться с идеей если у меня хуёвые нервы и iq89? Или взять вручную все сделать с gradle и собирать из консоли?
Я бы на гвидоне уже задачу бы решал полдня, но теперь чувствую себя побеждённым IDE и хочу разобраться как оно работает и сделать чтобы всё как у людей
Ну охуеть теперь.
Гм, а может доки почитаь за тебя?
Что за шмара на пике?
Дрочер закукарекал
Самое интересное, что это именно ВРЕМЕНАМИ, т.е. может почти сразу после запуска, может чуть погодя, а может и вообще не зависнуть.
Где залупа спрятана? за щекой нет, проверял
Я стараюсь, помимо жавы еще кучу всего учу.
У учителя этот код работает. Огласили проблему, что драйвер не инициализирован, а разве
это не инициализация?
driver = new ChromeDriver();
и driver = new FirefoxDriver();
Второй ответ >>954734 я не понял в чем проблема.
Что значит "подвисает"?
>Самое интересное, что это именно ВРЕМЕНАМИ, т.е. может почти сразу после запуска, может чуть погодя, а может и вообще не зависнуть.
Звучит как классический race condition.
Смотрел, но по странному стечению обстоятельств, когда трассирую, то этой проблемы не возникает. Все работает как часы.
>>955662
Значит, что все останавливается. Т.е. все потоки, которые выполнялись взяли в момент и встали. Хз, может это IDE чудит. Отдельно еще не пробовал запускать.
>Звучит как классический race condition.
Пойду гуголить, что это такое.
Самый популярный язык в странах третьего мира. Удачной конкуренции с раджой и кумаром из банановых республик.
>Звучит как классический race condition.
Хм. Но ведь у меня каждый поток работает со своим набором объектов (хоть и одного класса). Единственное, они все обращаются к БД. Но опять же - создают отдельные подключения, так что конфликта быть не должно.
Поймал таки это залипание отладчиком. Путь ведет в эту функцию - http://pastebin.com/NPwWNL6e
А именно на строчку String contentDisposition = connection.getHeaderField("Content-Disposition");
Но ведь выше ставится таймаут. Почему он иногда срабатывает, а иногда тупит?
Блеать, добавил connection.setConnectTimeout(readTimeout); и вроде как просралось.
Охуенно сам с собой поговорил.
Ну уж русский Иван то куда лучше!
Как правильно пилить историчность данных? Допустим, у меня есть очень сложные сущности и каждый раз, когда в сущность вносятся изменения, я хочу, чтобы и сущность изменилась, и у меня была бы возможность каким-то образом отследить историю изменений сущности. Было предложено охуительное решение - каждый раз создавать новую сущность, копировать всё туда и добавлять ссылку на сущность старую. Я, конечно, реализовал как сказали, но это, разумеется, полный пиздец, сущность огромная, у неё куча подсущностей, у них тоже.
Какие есть best practices на эту тему? Или по каким тэгам это вообще гуглить?
Json - всего лишь формат передачи данных. Из фронта (если ты не планируешь идти на фуллстак) тебе достаточно знать самые основы, чтобы на собеседовании не тупить над вопросами в духе "чем get отличается от post"
.
А я про твою мамашу шлюху.
В общем, читаю "115_Java_Interview_Questions_and.pdf" из шапки. Раздел "General questions about Java", вопрос 3 - "What does the static keyword mean? Can you override private or static method in Java?
Как Я понял вопрос - можно ли переопределять статик методы в классах-наследниках? И в ответе пишется, что нихуя нельзя, потому что переопределение базируется на динамическом контексте.
А с хуя ли это так, если в книжке говорят, что это можно делать, даже говорят, что при этом метод наследника "скрывает" метод родителя?
В общем, если что, с меня спасибо, и более нихуя. За развернутый ответ могу еще одно спасибо выдать
http://stackoverflow.com/questions/2223386/why-doesnt-java-allow-overriding-of-static-methods
Вот тебе вся необходимая информация, наслаждайся. Первая ссылка в гугле, ну чего ты.
Ладно, чуть более равёрнуто, если надо. Под оверрайдингом подразумевается, что если у тебя есть метод doSth() класса А, а потом ты его переопределил в классе B, то если ты сделаешь такую хуиту
A a = new B();
a.doSth();
то вызовется именно метод класса B. Так вот, для статического метода в этом случае всё равно вызовется метод класса А, то есть того самого оверрайдинга не будет.
Вот, я тебе даже небольшой наглядный пример набросал, можешь запустить и посмотреть.
>>955811
>>955819
Спасибо, вроде понял.
Оверрайдинг - это не есть сама возможность в классе переопределить метод, а использование непосредственно использование этого метода уже на объекте, так?
А ссылку читал - собсна потому и возник вопрос - они пишут что оверрайдинг не получается. А я, думая, что оверрайдинг это возможность переопределения метода, в ступор.
думаю, что вся проблема в том, что читал переводную книгу, а надо по-аглицки, тогда бы и вопроса не было
Вроде того. Оверрайдинг - не просто переопределение метода, он связан с полиморфизмом. В русскоязычной литературе его часто переводят просто как "переопределение", так что может быть небольшая путаница.
2. Может ли класс быть аргументом функции или возвращаемым значением? java.lang.Class - это оно? И можно ли с его помощью вызвать любой конструктор?
3. Может ли структура класса быть изменена динамически во время выполнения программы - в частности, добавление новых полей и методов? Если да, то отразятся ли эти изменения на уже созданных объектах?
Была такая ситуация в одном проекте, сделали так - для каждой таблицы tablename завели еще одну history_tablename, где те же самые поля + дата. Триггерами при изменении tablename старое значение отправлялось в history_name.
Может, это быдлокод и нарушение какой-нибудь N-й нормальной формы, но все было просто и понятно и работало.
Сейчас почти везде требуют знать Angular или React/Redux, классического набора HTML5/CSS3/JavaScript/jQuery уже недостаточно.
Сам ненавижу это говно, но приходится учить.
Объясни по первым 2 вопросам.
1. Анонимные классы? Или с помощью рефлексии как-то можно?
2. Как вызывать конструкторы?
Попробуй прикрутить Retrolambda:
https://github.com/orfjackal/retrolambda
На JDK7 точно работает.
CQRS, евент сорсинг
>>950956
https://www.pornhub.com/users/deepbunnyhole
http://www.sobaka.ru/city/internet/44317
Только не понял, причем тут жаба, она же на JS пишет, под ноду.
Но игорь, кроме майнкрафта и старой RuneScape, нету. Отчего так?
Оказывается, поехавший мочеблядок лютует и трет все хз по каким критериям.
Зашел еще раз перечитать полученные вчера полезные ответы - и ВОТ ЭТО ПОВОРОТ - а их уже нет.
Лучше бы действительно говно за ебанашками прибирал, уебок.
Потому что объект хранит ссылку на виртуальную таблицу методов своего класса. Нет объекта - нет ссылки, адрес функции подставляется уже на этапе компиляции.
Наслаждайся и не задавай глупых вопросов: https://habrahabr.ru/post/51229/
На всех досках так. Жаль, что Oчана больше нет, кoдач там был годный.
Для игровых движков нужно прямое управление памятью, иначе будет лагать и съедать всю память
Он что-то тоже не очень по перформансу
https://www.techempower.com/benchmarks/#section=data-r13&hw=ph&test=plaintext&a=2
Можно обмазаться и undertow и даже jetty (embedded), но нет сторонних вспомогательных либ (как-будто всех спринг устраивает).
Мне вот интересно на чем пишут микросервисы и бюджетные сайты в джаве?
Не троллинг, реально же кто-то пишет и на чем же?
Netty охуенен, кстати. Прямо очень приятно им пользоваться.
Спринг в ядре своем очень даже легковесен, зря ты так о нем. Это же всего лишь конфиг твоего приложения.
Согласен, он меня как реализация устраивает, но в тестах он в среднем два раза быстрее чем например джанга (питоновский фреймворк).
Все же выбирая джаву, хотелось по перформансу профит какой-то получить.
я согласен, я хотел собрать все по частям и не нашел не роутинг, не легковесного JDBC-маппер (или ORM) - везде какие-то титаны-фрейворки.
Посмотри на спринговый же JdbcTemplate. Очень удобно. Орм же все тормозят.
А легковесный роутинг - посмотри на спринг реактив. Может там дела лучше. Но он именно для микроговна.
Какие либы использовали, есть ли сорцы посмотреть?
Там демки-хеллоу-ворды. Я бы на полноценный проект глянул.
Вот интересные тесты
https://github.com/networknt/microservices-framework-benchmark
Наверняка за 20 лет могли бы придумать бууст фреймворк.
Maven твоё всё. Сейчас с телефона, конкретный пример не кину, но можешь погуглить "maven multiple modules".
Часик в радость, бразы.
Пилю проект на спринге. И, внезапно, прикручивая логгирование, появилось желание сделать это через AOP.
Чтобы, например, при вызове методов в классе сервиса логгирование происходило.
1. Тру или не тру? Извращение, не?
И еще, думаю, с помощью аоп, сделать запуск индексирования в hibernate-search при запуске приложения. Или какого-то метода, пускай, который индекс страницу выдает. И сразу запускается индексирование.
2. Через аоп - норм или нет? Может какой из спринга listner есть, который все знают, кроме меня. Как принято делать?
Проект пилю как профолио, ну и учу спринг на практике.
Все равно не работает. У учителя тхт был, смысл в том, что один раз пишешь такой скрипт, а потом просто заходишь в файл и меняешь браузер для тестов. Запускаем как JUnit.
В одну тырпрайзную компанию, каких вопросов стоит ожидать, где можно проверить свои знания?
Есть два стула...
Почему люки круглые?
У меня спрашивали про паттерны, я смог вспомнить только синглтон и фабрики. Если обычная тырпрайз контора, то скорее всего спросят пояснить за начальные знания ejb, у меня просили про стейтфул/стейтлес и транзакции. Обосрался только когда речь зашла о сoncurrency api, но им вроде как на это похуй. В инете куча статей на джуновские позиции, читай любую, они все одинаковые.
>Тру или не тру? Извращение, не?
Извращение.
>Через аоп - норм или нет?
Через спринговское АОП - это способ убить производительность твоего приложения в ноль.
Теперь я даже музыку не могу нормально послушать или в интернете покопаться, пока это говно грузится за то же самое время - проц выжирается на 100% и начинает лагать, хотя у меня core i5.
Виртуалка линукса не лагает же. С хуя ли тут такие лаги?
Если ты про линукс, то на нем нихуя нет из программ, которыми я часто пользуюсь (да даже игор), файлы синхронизировать пердольно. А через виртуалку настроил общую папку и работай.
Спасибо за ответ, анон.
Хоум мейд тырпрайз, бессмысленный и беспощадный.
С логгированием понятно. Сделаю по классике. А с запуском индексирования как поступить? Один раз при старте приложения будет индексирование запускаться, по задумке. Может все-таки можно с аспектами? Один раз напряжется производительность, а потом расслабон.
Spring mvc простой, не бут. Хибернейт. Контроллеры, сервисы, дао, все, как у людей. Как сделать SOLIDно?
Вопрос отпадает. Hibernate search по дефолту на старте запускает индексирование) StackOverFlow рулит)
Забейте на это гавно, пробовали. Транзакции попаболь с этими микросервисами. Ничего не получилось, когда откат нужен микросервисы это выстрел в ногу.
Нужно плюсом загружать скомпилированный файл весом 13 мб. Хотел узнать, правильно ли вообще так делать, чтобы сразу привыкнуть к нормальному способу деплоя.
По умолчанию какой-то бред, можно пометить настройку как
android:inputType="number", но сохраняется она все равно как строка, и вполне вероятно - пустая. Как поле, в которое вводят int может быть пустым?
Или я пиздоглазый и есть удобный способ хранить настройки в int без велосипедов?
В вики написано, что у IMAP есть команды протокола:
STATUS - запрос о текущем состоянии почтового ящика.
STATUS UNSEEN - кол-во непрочитанных сообщений. Как подобные запросы реализованы в JavaMail?
Как лучше реализовать поиск непрочитанных сообщений в ящике?
Все задания необходимо реализовать на языке Java 8 и сопроводить инструкцией по сборке. Рекомендуем использовать системы сборки maven версии 3+ или gradle версии 2+. Дополнительным бонусом будет считаться наличие тестов. И залить на свой репозиторий github.
Использовал maven. Но вопрос в другом: что они имели ввиду под "инструкцией по сборке" - pom.xml фаил? Плюс к этому вопросу еще один: в одном из заданий нужно было создать исполняемый jar фаил, я собрал такой с помощью того же pom'а. Так вот нужно ли пушить свой jar фаил на репозиторий? Является ли это корректным решением? Или же достаточно залить в репозиторий свой pom.xlm со всеми нужными зависимостями?
Бинарники, то есть jar, пушить не принято.
Инструкция - это написать в ридми в гите, типа: "для сборки набрать в консоли: mvn build".
Ну и напиши, что для джарника создания написать mvn jar. Только на инглише пиши, как положено.
Еще, анон, не проколись на нубских фишках. Пушить надо только src, pom.xml и гитигнор файл. Ну, еще ридми там, получается, будет. Никаких бинарников, target директорий, idea.iml и прочих файлов ide. В гитигнор это все занеси.
>>956374 - кун
Здесь не любят порно-картинки.
Ну хз, может мало кто это использовал. А что в документации по джава мейлу тому не можешь разобраться? Ну и гугл есть, StackOverFlow, наконец.
Суть в том, что в инструкции для эклипса, когда подключаешь либу, можно надо указать Native library location, я хз что это в нетбинсе. Потом я попробовал через maven, скопировал pom, и снова облом.
> Plugin com.googlecode.cmake-maven-project:cmake-maven-plugin:3.4.1-b2-SNAPSHOT or one of its dependencies could not be resolved:
> Failed to read artifact descriptor for com.googlecode.cmake-maven-project:cmake-maven-plugin:jar:3.4.1-b2-SNAPSHOT:
> Could not find artifact com.googlecode.cmake-maven-project:cmake-maven-plugin:pom:3.4.1-b2-SNAPSHOT -> [Help 1]
Короче я хуй знает как все это запустить, помоги, анон.
Ну, с еклипсом все заебись получается, только он мне не очень нравится.
вроде как Kotlin и Scala для разных задач.
Кокой ты молодец. И мнение у тебя аргументированное, интересное. И боевая картиночка смешная и свежая.
>>956648
И всё это только для того, чтобы найти элемент в массиве миллионом различных способов
Но это не меняет сути - котлин язык для одной IDE. Пока хомякам пиарат котлин - хомяки пиарят продукт - ничего личного, это бизнес.
>молодец.
Ты тоже пукнул, но в моих словах хоть есть доля правды, так что самоутверждайся, думай что это так важно (пока скалу, как и груви, котлин не отправил подыхать в апач).
Главное чтобы популяризировали, покупают всегда только определенный процент (хотели бы, давно могли эту лавку прикрыть, но это тоже маркетинг)
Проиграл с этого специалиста своего дела, не способного в траблшутинг.
У тебя нульпойнтер вылетает, когда драйвер вызывается. Значит там нихуя нет. Не инициализируется. Проверяй настройки. Свитч свой, файл, чтение из него. Сам же пишешь, что браузер и драйвер выделяет. Посмотри, что пишет идея.
Поставь брейкпойнт на 45 строчке и на свитче и дебажь. И смотри, что в тот момент в какой переменной. А что должно быть.
Бля, это эклипс же. Но пишет же что-то. Можно и прочитать.
У них с идеей отличие есть в том, что в эклипсе запускается приложение, даже если ошибки есть. А в идее - сразу напишет, ошибка там-то, исправляй, ёба. А то не запустится.
http://githut.info/
На гитххабе есть хоть один реп с вашим хипстерским говнецом для школьников старших классов?
А я твою. :3
JavaCV мань.
Есть простая model из 3 полей, есть соотвественно dao, service и controller, который отображает model.
Так вот, мне нужно сделать один api http request, получить ответ в json-e, распарсить его и выцепить оттуда url, который потом идет в базу к модели.
Вопрос, запрос к api и обработку ответа делается в controller-e или в service?
Вообще, было бы шикарно если ссылку на код похожий кинули. Спасибо заранее
Что значит регистрацию? Что ты используешь? Что значит для веба? Сервлеты чтоле? С какой целью интересуешься? Мутно как то.
Да, сервлеты. Ну вот мне нужна форма с кнопкой Sign Up. Чтобы пользователю воспользоваться сервисом, ему надо бы для начала зарегистрироваться, не? Вот нигде внятной инфы не могу найти.
http://www.javatpoint.com/registration-form-in-jsp
Вот единственный пример нашел, но там они тупо хуярят в базу нового юзера без валидации по емейлу, что не канонично.
Session используют, обычно, для таких вещей. Добавляешь атрибут юзернейм, например, в сессию. И в контроллере, или лиснере, который будет, например, проверять зареген юзер из под сессии, или нет, будешь дергать этот атрибут. А, как логаутится юзер - делаешь session.invalidate() и все.
Почитай про Session и HttpSession, в общем. И туториалы у оракла есть, обычно, по тамим вещам, если интересно.
Бля, и ты кажись не понял, что мне нужно. Мне надо сначала зарегистрировать нового юзера в базе, с подтверждением по емейлу.
Могу.
http://docs.oracle.com/javaee/7/api/?javax/servlet/http/HttpSession.html
Хз, зачем тебе эта хуета c документацией. Тем более которую в чистом виде никто не применяет. Почитай лучше Head First Servlets and JSP, если так нужно это.
Но сложной скалу называют только мартышки вроде тебя. Нормальные люди учат её, потому что на ней писать ПРОЩЕ чем на джяве, внезапно.
Как раз их и читаю. И там НЕТ примера с регистрацией нового пользователя. Там даже про бд ничего нет, только базовая инфа по сервлетам и jsp. Блядь, вы издеваетесь что ли? Хули всем это так очевидно?
В сервисе норм так делать. Это прокладка между слоями приложения. Контроллеры только получают данные для обработки или ответ дают. В контроллерах надо минимум хуйни. Вызов сервисных методов, в основном, получение от них данных и возврат значений к view.
Делал когда-то эту хуйню, когда тренинги проходил. Там все в чистом виде. Везде надо хуярить свои велосипеды. Реквест, респонс, сессия, еще приблуд немножко. А остальное все ручками. Поэтому, хардкодить там нормально.
Нуок, а какой общепринятый подход в энтерпрайз приложениях для форм регистрации? Этот функционал же типа в любом приложении должен быть. Это вообще точка входа считай для любой веб-хуйни. Может в спринге есть что-нибудь для этого?
Нету там нихуя
http://stackoverflow.com/questions/8597902/spring-security-user-account-registration-creation-and-management
"The framework does not have an API for user creation or registration as you asked."
http://stackoverflow.com/questions/23562266/create-account-forgot-password-and-change-password?noredirect=1&lq=1
"You are completely right. AFAIK there is no "generic" package that implements these flows. I've searched a lot for this kind of code a while ago, and found nothing. "
Такие дела. Бля, бесит, что для такой важной хуйни нужно свои манявелосипеды изобретать. Хотя бы бест практисис разместили, на том же спринг.ио
Типа:"вот вам тонна инфы, как секьюрно авторизовывать юзеров, но с регистрацией ебитесь сами"
Поэтому там есть несколько уровней владения языком, некоторые из которых не обязательны для изучения, т.к. слишком сложно?
>Нету там нихуя
Гуглить научись. Первые же ссылки:
https://spring.io/guides/gs/securing-web/
https://hellokoding.com/registration-and-login-example-with-spring-security-spring-boot-spring-data-jpa-hsql-jsp/
https://hellokoding.com/registration-and-login-example-with-spring-xml-configuration-maven-jsp-and-mysql/
Первая мимо. Вторая и третья по теме, но все же мне нужно нечто такое же по сервлетам. Если найдешь такой же гайд с верификацией по емейлу, признаю обосрамс.
вот странные люди - использовать механизм для изоляции но изоляцию нарушить
когда в архитектуре говно то таких задач будет бесконечно количество
можно просто не плодить объекты же, что вы как дети
но для этого опять таки нужно понимать как всё работает
libgdx вот движок на java
Это какие, компиляторные макросы и изъёбства с типами "смотрите как мы можем"? Они не для прикладных приложений.
Да, но оно пишет, но не запускается.
))))))))))))))))))))))))))))))))))))))) жава тред
Поставил обратно Public class
ОБА ЗАРАБОТАЛИ! Такое ощущение что его как бы пробило, буд-то он ржавый стоял. Все работает сейчас, парни, Спасибо!
Ты так и не понял на какую критичную проблему тебе указали.
Дебил, нахуй. Пора тебе признать, что программирование не твое. Попробуй Javascript.
Похоже что ни на что не указывали, пара хуил указывали на класс. С ним все было в порядке.
Все что я сделал, это поставил брейкпоинт и нажал дебагинг. Потом поменял в тхт файле Chrome на FireFox просто ради интереса и лиса открылась. Потом поменял на хром и все заработало.
> Пора тебе признать, что программирование не твое.
Да разве я претендую?! Я автоматизированным тестирование занимаюсь, ну да на джаве.
>говорят ему, сделай дебаг, а то сам не додумался.
Я тебе сказал, что дело в настройках или в инстансе драйвера. Когда я учил - то сам доходил до большинства вещей, а не как ты, спрашивает хуйню, не прочитав даже сообщение ide об ошибке. И не знает даже о существовании дебагинга, тестер хуев.
Ты хочешь сказать, что дебаг режим сам что-то починил? Просто ведь я ничего не менял после этого.
Блять, ну какая же свинья. А кто починил? Ты чтоле?
>Спрашивает, где баг, даже не прочитав сообщение об ошибке и не загуглив.
>Ему добрые аноны говорят в чем он может быть. Его там нет, обнаружил после того, как ткнули носом, что надо дебаг тупо сделать, сделал.
>Дебаг мод сделал дело, говноклассы обновились, говнокод заработал. Выебывается в треде, что он дохуя умный.
Этот быдларий порвался, замените.
Нет ты иди, петушара. Ему помогают, а он еще выебывается. Неблагодарное животное.
Мамашу твою ебал.
В общем, я погуглил примеры использования api, с последующим сохранением в бд и так не понял.
Я реализовал запрос к api и его распарсингом. А вот дальше путаюсь. Просто до этого уже делал простой проект spring + hibernate, но там все данные я брал из страницы jsp.
Только сейчас я хочу делать запрос к api, получать url фотки и день в который она была сделана. Я так понимаю, что нужно в пакете service, в photoServiceImpl в addPhoto через сеттеры запихать url и день?
Там прикреплен некий сервлет(понятие пока что не имею, что это, все, что понял это то, что это скрипт) который нужно каким-то образом передать в главный метод первым аргументом, а затем передать произвольную строку. Так вот как это включить, чтобы работало?
Взять контейнер сервлетов (tomcat, например) и задеплоить туда http://docs.oracle.com/javase/tutorial/networking/urls/examples/ReverseServlet.java (скомпилированный, конечно же). Как это сделать - загугли.
Так да. Пользоваться блокнотом ты тоже считаешь охуеть достижением?
Ну если дебагинг работает просто сам по себе, одним нажатием дебага - отлично, спасибо еще раз. Тебе нужно slow down немного, не все здесь сеньоры или даже джуниоры.
>>957540
HTTP-запросы делай через спринговый (Async)RestTemplate.
В getUrlFromJson() и getSolFromJson() не нужно делать два отдельных запроса. Лучше создай JSON модель как POJO и парси туда все сразу.
Если используешь DAO-Service-Controller слои, то между Service и Controller не надо передавать entity, а нужен еще один промежуточный DTO. Но лучше забить на этот сервис, который просто пробрасывает методы в DAO и вытащить туда логику из API.
И интерфейсы и Impl впизду. Пиши просто объекты.
В getPhotoById(int) возвращаешь null
Так дату ты сам проставляешь, а не берешь из http-сервиса? Можешь делать это через простую инициализацию поля, @PrePersist ну или в сервисе.
Колеблюсь между джавой и го для веб-проекта.
Можете меня убедить почему я должен выбрать джаву?
Если не знаете го, то можете сказать - какую главную фишку в джаве вы видите (одну или несколько)
Двойной трипл, в общем помогите
Потому что ГОвно ещё хуже
Выбирая из двух:
Если прямые руки - го. Если макака - джава. Хотя ща дженерико-энтерпрайс-боги с опытом в 30 лет скажут обратное, так что меня можешь не слушать.
Да, еще ты не указал подробностей о проекте, так что ты сейчас просто срач пытаешься развести, сам того не понимая.
Хуйня совет. Бери Retrofit лучше
Сформулирую, чтобы было понятнее. Из таблицы берётся несколько полей. В одно из них значение нужно выводить только в случае, если оно повторяется. Т.е. допустим таблица состоящая из полей caption и number. Если number - уникальный, то в результат запроса вставляется Null, если встречается два или больше раза, то выводим напротив своего caption.
спасибо, добрый анон
>Не в загон к js-петухам же идти
Я знаю и тот, и другой. Поясни за петухов или самого на парашу определю.
Зачем тебе жава, на ней одни индусы работающие чтобы не сдохнуть от голода. Попробуй лучше haskell, он сейчас очень перспективный и компаниям катастрофически не хватает специалистов на этом языке. Поэтому они поощряют работников заоблачными дивидендами, чтобы стимулировать рост популярности. И в основном вакансии на территории сша, так что это лучший способ завести трактор и воплотить все свои мечты в стране возможностей.
Ты все хочешь чтоб в мире появилось восемь вакансий хаскеля
>>958005
>Да, еще ты не указал подробностей о проекте
вместо семи?
Сказал же веб проект
Личный блог, лэндинг и rest api сервис это тоже веб проекты, но на них как правило берут разные технологии
Oh boy, here we go
Вот и первые ООП-нутые энтерпрайз bean'ы повылезали из под толстого слоя "удобной" и "гибкой" архитектуры
ArrayList<Integer>[] ar = new ArrayList[10];
Object or[] = ar;
or[0] = new ArrayList<>();
((ArrayList)or[0]).add("dfdsf");
Проект средних нагрузок, я не знаю как описать и какое имеет значения блог это с лентой или новостной сайт с лентой.
Но в общем не важно, толку от треда нет
Что должно быть в результате для данных ниже?
caption | number
-----------------------
pizda 1
hui 1
hui 1
hui 2
hui 2
hui 3
jigurda 4
а все. тут ссылка на лист обьектов же
Хаскель так-то удобен для веба:
https://hackage.haskell.org/package/hsp - MVC фреймворк для сайтов
http://www.yesodweb.com/ - для RESTful веб-сервисов
Проблема скорее кадровая - в энтерпрайзе нужна быстрая заменяемость макак, а среднестатический галерный раб пока этим языком не владеет.
Но это раньше, а сейчас в Индии бесплатно обучают всех желающих:
https://onlinecourses.nptel.ac.in/noc15_cs13/preview
С нетерпением жду, когда выебывающиеся славянские программистишки наконец соснут у толпы индусских хаскелистов, готовых писать сайты за тарелку риса.
Представляю, какой вой начнется в интернетах.
А какие возможности даёт нода?
а то понимаю, но, бля, все равно не выкупаю
>Представляю, какой вой начнется в интернетах.
Никакого воя. Найдут себе другую херню для понтов.
Ананас, суть такова. Есть хешсет с объектами. У каждого объекта есть некое поле(дабл) с числом. Как достать из хешсета тот объект у которого число в этом самом поле самое большое?
Collections.max + компаратор
Даже пхп так не сосал как сосут жс-ники с их нодой, пока успешный менеджер юзает бэкен + фронт разработчика по цене одного. Лолы
public class test {
public static void main(String[] args) {
String span = "<spanline>";
boolean b = span.contains("<span(\\w)");
System.out.println(b);
}
}
Чому на вывод false? ведь по идее <span + 1 рандомный символ, численно-буквенный. Хули ему не так?
public boolean contains(CharSequence s) {
return indexOf(s.toString()) > -1;
}
тут регулярок нет. подстрока ищется
Блядь, вот я даун, спасибо анон.
Соглашусь сразу что с синтаксисом у го проблема, но по крайней мере это лучше чем ебаться с xml или искать нужную аннотацию-настройку в глубине кода, в тяжеловесном спринге
Уносите этого малоумного. Джава самый популярный езык в мире, а самое главное в США - державе этой планеты!
мимо_гугл_джава_кун
Маркетологи открыли что разводить высокомерных-айтишников не сложнее чем обычное быдло (местами даже проще). А тогда хайповали джаву - вот и добавили приставку (и ввиду тупости айтишников, прокатило)
Его изначально хотели назвать LiveScript.
Еще в комплект жабы входит интерпретатор JS (пакет javax.script.*).
В любом случае это только раздражает, когда в вакансиях пишут Java, а уже на собеседовании узнаешь, что имели в виду JS.
У R'щиков зарплаты выше и конкуренция меньше. Индусы и пиццевозы этот язык не осиливают.
Что ты неосилятор обыкновенный.
Лол попробуй нормальный проект в виме держать. С тестами, покрытием, дебагом. Пальцев не хватит.
Есть такое приложение для телефонов для изучения языка. Там 60 заданий в уроке и тебе надо написать правильные ответы из слов. Например, тема present simple, правильный ответ будет I go. Java rush примерно на этой же волне. Вернее в потоке. Говна.
Вы видите копию треда, сохраненную 22 мая 2017 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.