>>1620524 → >тот анон который думает укатиться с дотнета в жавамир
Кстати, у нас на работе есть крутой дотнетчик, который тоже решил перекатиться. Но выбрал он не жабу, а ноду и тайпскрипт. Перекатился, думаю, по тем же причинам, но я его порасспрашиваю.
>>1620982 Звучит уже как патология, хотя скорее всего речь про фронтент? Они там уже как взрослые, себе пару ультимативных йоб запилили, это тебе не верстальщик с jquery.
В прошлом треде озадачился вопросом, как с помощью Мавена менеджить зависимости в веб приложении (без Мавена Хибернейт не ставится, да и всё равно понадобится рано или поздно). Анон посоветовал плагин для embedded Tomcat. Собственно вопрос: я нашёл следующее http://tomcat.apache.org/maven-plugin-2.0/tomcat7-maven-plugin/usage.html Это оно? Если да, то можно ли где-нибудь почитать нормальный гайд по этому плагину? А то информация разбросана вообще непонятно как. Настройки вообще не описаны, только их список нашёл, инструкцию по деплоингу собираю по разным васянским сайтам, куча нюансов, вообще не упомянутых в документации.
Есть Spring Boot webapp, собирается мавеном в war. Внутри war в корне есть META-INF, WEB-INF.
Как сделать/что прописать чтобы в корневой META-INF добавлялся файл при сборке?
Хочу положить context.xml для томкэта. Пишут что в src/main/resources надо положить META-INF с нужным контентом, но в этом случае пользовательский META-INF появляется тут: /WEB-INF/classes/META-INF/... а надо чтоб в корневой /META-INF/...
>>1621192 В микросервисы я уже умею, а тут я хочу наоборот, по-старинке, хостить несколько аппов на одном сервлет контейнере. И для тонкой настройки каждого приложения хотел побаловаться с context.xml.
>>1621217 >хостить несколько аппов на одном сервлет контейнере Зачем? У меня есть десяток (and counting) небольших телеграм ботов и других инструментов с рестом, хочу хостить в одном месте всё. Никакого хайлоада, простая эргономика.
>>1621227 Хотя бы потому что так порт один юзается, а не у каждого embedded свой. Конечно можно единую точку входа сделать выставив вперед nginx и проксипасить на разные порты, но это же при развернывании нового аппа править конфиг nginx, это лениво, проще вар задеплоить в контейнер.
>I found a few posts that claim that this also works with Tomcat 8, but it's not clear how to configure maven plugin to run Tomcat version 8, instead of version 7.
Этот васянский плагин - точно единственный способ использовать Мавен в веб аппе? Как-то это подозрительно выглядит.
>>1621369 Я пока пытаюсь просто запустить уже сделанный проект через Мавен. Но tomcat7:run даёт слишком старую версию контейнера, которая не поддерживает какие-то фишки, которые есть в некоторых зависимостях. Поэтому я ищу, как настроить версию запускаемого контейнера.
>>1620861 (OP) Пиздец, ебал я в рот эту идею. По мере добавления новых мавенвоских модулей в проект она их не подцепляла и максимум подсвечивала синтаксис. Отладка работала только в декомпилированных классах, их исходники игнорились. Куча классов подчёркивалась красным из-за "незарезолвенных" импортов. При этом мавен всё собирал без проблем. Синхронизация не помогала. Реимпорт не помогал. Инвалидация кеша не помогала. Помогло только удаление папки .idea, блеать. Жду, когда в следующий раз придётся это проделать. Но ничего лучше нет.
>>1621396 Хорошо хоть, что проблема всего лишь в кешах. Если бы обход по дереву модулей был реализован криво, так бы и пришлось смириться, что не работает.
>>1621404 >Если бы обход по дереву модулей был реализован криво, так бы и пришлось смириться, что не работает. Либо завести баг на багрекере идеи. Но тебе лень.
>>1621413 >Как переехали на спрингбут ни разу не случалось. В чем проблема сделать у себя так же, как в спринг буте? Там стандартные фичи мавена используются. >>1621416 >Проблема ещё и в том, что обновлять софт я сам не могу. Ха-ха, ну ты и лох, а я обновился с 2018 если не более ранней на 2019 идею и у меня хуй встал.
>>1621413 Ничего подозрительного в помниках не видел, все теги <module> и <parent> были на месте. Даже навигация церез ctrl по ним работала. Но вот лежит один модуль, и в нём всё норм, а рядом лежит другой похожий модуль с практические таким же помником, но идея его игнорит.
>>1621409 Ну, я про конечный результат. Вообще, я за это беспокоюсь в свете того, что я не смог таким же образом установить руками Хибернейт. Все зависимости поставил (одну), код скомпилировался, но не заработал. Устанавливал по инструкции, шаг за шагом. В итоге анон мне посоветовал либо танцевать обскурные танцы с бубном, либо брать Мавен и ставить как все. Вот я и думаю. Сможет ли Мавен всё нормально сделать? Или дело вообще не в этом?
>>1621375 Еще раз, ты что пытаешься сделать и чем тебе не подходит вариант с распакованным/запакованным варником? Мавен собирает варник на таргете package и на таргете site (вроде site, если нет то deploy) копирует в tomcat/webapps. Тот следит за изменениями и автодеплоит. Чем эта схема плоха?
>>1621438 >Чем эта схема плоха? Тем, что гораздо удобнее все запускать одной кнопкой из проекта, прям как со спрингбутом. Без отдельно стоящих томкатов.
>>1621464 Так-то мавен тоже одной кнопкой запускается (пик 1), но я тебя услышал, ты скорее всего имелл ввиду что запаковка это лишний этап для быстрого дебага, и тут я согласен. Хотя это же ты там писал команду tomcat7:run? Мне кажется что это не кнопка, больше похоже на команду в консоли. В общем я не знаю этот плагин. Но я не понимаю всё же зачем нужен лишний плагин когда в идее это нативно делается (пик 2). Да, все еще нужен будет standalone tomcat, но как по мне это даже лучше - условия приближенные к продакшену.
А еще могу посоветовать юнит-тесты вместо студенческого воркфлоу "изменил пару строк - перезапустил все приложение".
>>1621493 > пик 1 К вопросу об уёбищьности против консоли. Если человек юзает консоль ты ему тупо пишешь: mvn package он тебе если надо копирует выво консоли.
UI-банаты же постят картинки со стрелочками и пояснениями куда, в каком порядке жмякать.
>>1621522 Я не консолеёб я мимо котлиноёб, но стоит заметить, если ранее уже была написана команда, то повторное использование - это всего лишь одна стрелочка вверх (ну и enter)
>>1621375 >>1621464 Ну так и зачем запускать tomcat плагином, но не standalone, если можно в этом случае напрямую запускать спринг бут на деве с embedded tomcat? А на проде уже собираешь раз в день мавеном и грузишь куда надо.
>>1621584 >>1621619 Бросишь фразу "одной кнопкой" в значении легко и просто (не надо волочить сбоку томкат) - начинают занудный срач про консоль или гуй, как будто, блять, enter на клавиатуре это не кнопка. Другие в 5й раз спросят "зачем xxx, если есть спрингбут". Я хуею с контингента.
>>1621645 >хуею с контингента Так и есть. Вчера спросили как context.xml в топовый META-INF засунуть в спринг буте; в итоге решили что нужно переезжать на vert.x %) Ну так-то чо, здесь не стаковерфлоу, здесь более философские вещи обсуждаются, спроси хоть котлиноёба.
>>1621140 Охуительно удобная штука для домашних поделок. Может запускать embedded или подключаться к уже работающему томкэту. А главное — даёт возможность отладки в IDEA Community.
В простейшем случае выглядит так. Добавляешь настройку плагина в свой pom.xml, в элемент <build><pluginManagement><plugins> (там, где maven добавляет по умолчанию свои плагины), такую настройку: <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <port>8080</port> <path>/myapp</path> </configuration> </plugin> где /myapp - адрес, по которому будет работать твоя приложуха.
Работает всё это по команде mvn tomcat7:run. Чтобы запустить из Идеи, нужно добавить Run Configuration с этой командой.
>>1621375 Ппоставь себе девятый томкэт и пропиши его в настройки плагина. Он же умеет не только embedded запускать, но и подключаться к другому контейнеру. Если ещё надо, могу написать, как настроить.
>>1621840 Это точно нужная в современных реалиях хуйня? Я что-то сомневаюсь. Выглядит как говно мамонта: - 404 на картинке-логотипе - последняя версия - SNAPSHOT - датируется 2014м - заявлена поддержка Tomcat7, когда позавчера десятка вышла
Сайт явно заброшен, как и разработка. Что плагин еще делает помимо деплоя с настраиваемым context-path? Обычным курлом можно того же добиться, не говоря уже что современная идея это поддерживает искаропки.
Таблицу в javaFX вообще можно заполнить БЕЗ ObservableList? Объекты, которые я помещаю в таблицу уже хранятся в массиве, и менять мне этого не надо. А везде гайды с ебаным списком.
>>1621888 >Что плагин еще делает помимо деплоя с настраиваемым context-path Запускает встроенный контейнер, что удобно (тут же все любят спрингбут?). Но именно этот плагин, да, стар и заброшен. Для новых томкатов может быть есть какой-то другой, или можно использовать jetty, как я выше советовал.
>>1621919 >Запускает встроенный контейнер Сам плагин содержит в себе контейнер или он отдельно скачивается или подтягивается из установленного? Иначе от семерки-то наверно мало пользы, сервлеты 3.0, вебсокеты только-только появились. Да и версия семерки получается несвежая и с багами, давно пофикшенными в сегодняшних семерках.
>>1621911 >>1621919 >>1621934 Для обучения он как раз-таки слабо подходит: обущающийся по-определению еще "зеленый" и наверняка столкнется с тем что какая-то фишечка из гайда не будет работать и он не будет понимать что с этим делать, ведь он делает все по гайду.
public String getUnitName() { String db_query = "select unit_name from fm"; try { mySql.dbQuery(db_query, resultSet -> { while (resultSet.next()) { final String unit_name = resultSet.getString("unit_name"); } }); } catch (Exception e) { LOGGER.error("Failed get unit_name from fm.", e); } return unit_name; }
Будет работать или почему не работает? В системе разбираться даже Аллах не сможет, единственный костыль не ходит, говноява хуже червя, а у Анона прошу помощи.
>>1621950 Синтаксически все верно. Работать будет при условиях: 1) mySql проинициализирована и у нее есть коннект к бд 2) У mySql есть метод dbQuery, принимающий строку и лямбду, и кладущий в лямбду стандартный резалт сет 3) В самой ьазе данных есть таблица fm с полем unit_name
(3) не так критично - код работать все равно будет, выкинет эксепшн
>>1621954 Ну, всё логично. Таблица есть, метод есть, коннект есть. Ответа от бд нет. Сейчас проверю, связанно с интерфейсами и взаимодействием или бд неопределённо себя ведёт, потому что рядом в коде есть похожие куски, откуда и брался копипаст.
Хм, тестовый ответ возвращается. Наверное, неправильно вопрос поставил.
Выше по коду к БД обращаются, но возвращают либо булевое значение, либо ничего. Так что у меня интерес к тому, будет ли возвращаться само значение, потому что на практике этого не вижу.
>>1621957 Так что с учетом этой правки - >>1621962 - в результате вызова всей функции должно будет возвращаться значение unit_name из последней строки резалт сета.
>>1621968 Idk, тут тоже восьмёрка, но gradle не валит ошибками, как если объявлять вне пространства. Судя по SO, ругается на то, что оно в цикле и нужен final, с которым трудности. мимо не явист, поэтому извините за нубство
Какой ide для java посоветуете? пробовал intellij, но по не понятным мне причинам, он у меня лагает, или придётся смирится с лагами, ибо лучше него нет?
>>1621965 Может быть оно и не компилится на самом деле. Легко проверить из консоли: javac /путь/до/класса.java
>>1621988 Дело в том что лямбды они по идее не должны иметь т.н. side effects (привет forEach). Считается что ты резалт сет должен внутри обработать и забыть про него, не возвращая ничего во внешний мир. Еще для проверки работает ли оно вообще, компилится ли, вызывается ли, можно вывод сделать: LOGGER.info("hello") между 546-547 (1) и между 547-548 (2). Только (2) недостаточно, вдруг там резалт сет пустой по какой-то причине.
А если надо все-таки вернуть что-то из лямбды, тогда такие варианты: 1) враппер, например, массив на картинке, либо коллекции 2) поле класса можно использовать в лябдах
>>1622011 Не знаю, скомпилится ли, потому что система. Не знаю, как оно отдельно работать будет. А сборщик и в нормальном состоянии ругается на всё.
Да, это имеет смысл, потому что в коде, который упоминал, как раз заполняются поля классов. А про присланный пример с массивом подумал, что это такой-то явовский грязный хак. Вроде собирается пока. И если переменные сами по себе не возвращаются, в отличии от массивов один хер указатели, что этим компайлерам не нравится :c, то проблема почти решена. Осталось всего зайти по голень в ангуляр-парашу и приписать сеты к написанному гету. :3
>>1622002 >intellij Ну он самый лучший на мой взгляд: красивый, функциональный, много чего умеет, классные хот-кеи, напр. Ctrl+W, теперь жить без него не могу. Лагало как? Пикрил отключать пробовал? Если hdd а не ssd, еще и старенький, то может и лагать. Если не идею то даже не знаю, я только эклипс пробовал, нно это такое. Рабочая штука конечно, но медленная, корявенькая и тд
>>1621934 И так, и так. Если не указываешь сервер явно, он запускает свою embedded семёрку. Но можно указать ему свой установленный томкэт, и приложение развернётся на нём.
>>1622021 нажимаю ентр, а оно могло на секунду зависнуть. после отлагивает, но фриз в 300/400 мс есть. hdd на 7200, со всем справляется, кроме прог от jetbrains
>>1622017 >Не знаю, как оно отдельно работать будет Компиляция? А не надо чтобы оно отдельно работало, надо было просто посмотреть будет ли ошибка компайлера как пикрил или нет. Может там к грейдле еще какие инструменты предварительной обработки участвуют, а javac дал бы чистейший результат.
>явовский грязный хак Так оно и есть, это хак, так говнокодить нельзя. Но это быстрый способ получить результат с минимальными изменениями окружающего кода.
>>1621988 Еще можно изменить while на if в 547 строке. Поидее у тебя там одна строка в таблице всего раз тебе while подошел? Если строк допустим 10 то после while в результат попадет последняя строка, а после if - первая. В общем-то этот код не подходит для обработки нескольких строк в том виде в котором он есть, т.к. из метода возвращается одно значение, а резалт сет может содержать много.
>>1622002 У меня на стареньком компе с лялихом дико тормозит, до полной невозможности работы, на относительно новом с виндой ещё ничего, но тоже не ожидаешь такой подставы от "лучшей IDE в мире".
>>1622029 Ну, костыль состоит в методе, который возвращает одно значение из таблицы, да. И хоть в таблице строк много, запрос же должен вернуть лишь одну строку? Про while/if да, так написал с самого начала, потому что одно значение, просто от бессилия пробовал по-разному.
>>1622029 Это хак на хаке, потому что по системе вызываются методы, которые по цепочки приводят к.. Они, блять, просто открывают сокет и пишут в него, например, просто "get". И даже найдя место, где серверный сокет создаётся, не смог найти обработчик. Поэтому пришлось к такому методу "методу" прибегнуть. >javac Просто привык, что при компейляции большого проекта куча зависимостей, о коих компилятор сообщит не дойдя до самого кода. Может в яве по-другому, конечно. Но пока что работает.
>>1622052 >запрос же должен вернуть лишь одну строку? >select unit_name from fm Нет. Таким запросом возвращается один столбец (unit_name) по всем существующим сотням-миллионам строк таблицы, так что while перебирает их все, постоянно затирая предыдущее значение, и возвращает последнее, а if вернет первую строку и выйдет. Изменения SQL запроса нужны, но я логику вашу не знаю. Можно поставить LIMIT 1; и будет тупо одна строка возвращаться, нельзя гарантировать какая именно, а можно предикат написать типа WHERE id = 1 или WHERE name LIKE '%world%'.
>>1622073 Блин, очень знакомое что-то, в 15-16 годах под глассфиш писал. Обновления сервера не было? Ну там типа админы без ведома девелоперов ночью апдейтнули сервер приложений.
>>1622076 >>1622083 Я вчера немного игрался с настройками, но, вроде, ничего критичного не делал. Только юзера добавил (уже убрал) и менял пару раз порт.
Сейчас убрал jar вообще из всех мест, где она предполагается. Ошибка осталась. То есть, видимо, и правда где-то в класспасе что-то не то. Сейчас собираюсь его проверить. Если наберу в консоли echo %path%, это будет та самая переменная, которую использует класслоадер?
>>1622093 >Если наберу в консоли echo %path%, это будет та самая переменная, которую использует класслоадер? Хуйню, похоже, какую-то написал. Но я правда не в курсе, какие пути берутся в класспас, кроме базовых классов и -ср.
>>1622093 >echo %path% Детектит в тебе очень начинающего %) Нет, это переменная среды и к джаве относится только тем что оттуда собственно ищется java. А класспас можно посмотреть в команде запуска джавы, например ps -ef | grep java в линуксах
>>1622098 >Детектит в тебе очень начинающего %) Да я уже покаялся. Просто не понимаю вообще, откуда может эта библиотека браться, если я её отовсюду удалил. Вот и предполагаю всякие небылицы.
>>1622073 Just in case, аппсервер может предоставлять некоторые зависимости (например, Java EE), которые у тебя прописаны в pom.xml. В таком случае нужно им проставить <scope>provided</scope>.
>>1622113 >>1622114 >>1622122 В общем, заработало обратно. Оставил архив только в одной папке из двух. Может быть, он как-то самостоятельно восстанавливался во второй папке, когда я его оттуда удалял. Спасибо анону, сам бы я, наверное, и не подумал на classpath так сразу.
>>1622289 Чисто qa тупиковая, т.к. почти непересекающийся скиллсет. Можешь в автоматизаторы попробовать, там хотя бы погромировать будешь и фреймворками обмазываться сможешь
>>1622304 Вот пишут автоматизированное тестирование по, проект по внедрению oracle siebel crm. Что это все значит? Чё платят автоматизатооам? Надо ли вообще, все это?
>>1622289 Ну смотри, работает это так: ты идёшь куа-джуном, работаешь, пусть даже что-то автоматизируешь на каком-нибудь селениуме или типа того, короче мало мальски программируешь, тебя повышают, до куа-джуна+, ну ты работаешь дальше и работаешь, того и гляди, куа-мидлом поставят, заебись. И тут ты рашаешь, что пора в программирование. Вот только никто тебя мидром не возьмёт. Пойдёшь заново джуном. Проще подрочить какие-нибудь курсы, да пойти на джуна девелопера сразу. Нет, есть конечно мифический сценарий, где ты работаешь пол года куа-джуном, параллельно задрачивая погромирование, а потом свитчишся в девелопера, но это скорее из области фантастики. У нас в конторе были куа, которые не смогли в девелопмент и пошли в куа, но они там в куа и оставались, потому что тупые. А если куа попадается толковый, то ему проще переквалифицировать в автоматизатора, чем начинать всё с начала джуном.
>>1622379 > Требуют выучить аннотацию @Test и класс Assertions Никогда не понимал таких требований. Как не понимал "Умение пользоваться Jira". Ещё бы стековерфлов в требования написали, блеать.
>>1622447 Тут везде есть свои затраты, но я в общемто-то и не писал про скорость. Речь шла о том, что использование консоли: 1. Требует более глубокого понимания как работает система, будь то git или Maven. 2. Консольные команды проще передать кому-то, чем объяснять какую кнопочку жмякать. 3. Консольные команды не привязаны к IDE - перешел ты с IDEA на Visual Studio, все твои навыки работы с git остались с тобой.
>>1622377 Да, там есть запары, но не уровня "у меня в браузернейм не работает кнопка увеличения хуя", фикс чего занимает пару дней просто потому, что разрабатывали браузер левой пиздой пятки. Передаю привет разработчикам Сафари, btw.
>>1622459 Бессмысленный спор. Вообще по настроению выбираю консоль или тыкнуть. Главный минус консоли - помнить команды, даже если ты их давно не юзал.
Что надо выучить чтобы в жаву из .нета успешно перекатиться? Планирую собеседование через неделю, из знаний жавы только то что спринг монструозная хуйня и что сахарный диабет жавистам не грозит.
>>1622489 Собрался за неделю вкатиться в стек джавы, который сам называешь монстроуозным? Ага, щас.
Собственно, нужно знать основные вещи спринга (core, data, jdbc, test, boot), разбираться в мавене и, возможно, иметь представление о EE (те же сервлеты). Ещё хибернейт, поиграться с одним из серверов приложений, хотя бы томкатом и, вроде, всё.
>>1622493 Да я думаю микропет накатать на спрингбуте а остальное на работе уже догнать если возьмут без снижения зп лол Мне интереснее скорее что нужно к собеседованию знать, как в >>1622503 короче
хотя наверное эффективнее у Гугла спросить, наверняка списки вопросов с 2000 не менялись
>>1622493 >>1622503 >>1622505 >>1622507 >>1622515 >>1622520 Самое главное-то не упомянули.. КЕМ ВЫ ВИДИТЕ СЕБЯ ЧЕРЕЗ 5 ЛЕТ ЕСЛИ БЫ ВЫ МОГЛИ ПОГОВОРИТЬ С ЛЮБОЙ ИСТОРИЧЕСКОЙ ЛИЧНОСТЬЮ КТО БЫ ЭТО БЫЛ И ПОЧЕМУ НАЗОВИТЕ ВАШИ СЛАБЫЕ СТОРОНЫ
>>1622527 >ЕСЛИ БЫ ВЫ МОГЛИ ПОГОВОРИТЬ С ЛЮБОЙ ИСТОРИЧЕСКОЙ ЛИЧНОСТЬЮ КТО БЫ ЭТО БЫЛ И ПОЧЕМУ Верцингеторикс. Потому что он был одним из тех, кто просто любил жизнь!
Господа джависты, есть jar-утилита, ее как бы можно запустить по двойному клику (в винде). Но получается так, что джарник отрабатывает без консоли. Можно конечно через консоль и запускать или батник сделать, но хотелось бы узнать, можно ли как-то вывод перенаправить (или что-то где-то подкрутить), чтобы консоль все-таки сама появлялась и ты был вывод утилиты?
Просто так-то она пишет только во время ошибки (записываю в файл), но хотелось чтобы прям консолька появилась и там весь лог посмотреть сразу.
>>1622710 Напиши батник-зарускатор. По умолчанию жарники исполняет javaw, который да, скрывает консоль. Либо можно через какой-нибудь swing создать окно с текстовым полем и срать туда.
>>1622683 Помимо того, что тебе уже порекомендовали, есть ассерты. Но это не куски кода, это небольшие выражения для логических проверок, и методы там вызывать хоть и можно, но не желательно, потому что side effects. И чисто технически, ассерты все равно "попадают" в релизный код, просто не исполняются.
>>1622710 Запускают по двойному клику обычно экзешник-лаунчер, а не jar-ник. Параметры, с которыми лаунчер запускает jar-ник обычно лежат рядом в ini-файле, либо можно на живую посмотреть в process explorer. Я не верю что у тебя прям .jar файл запускают по даблклику, потому что .jar не является исполнимым файлом MS Windows, и для этого нужно в реестре прописывать кто будет такой файл запускать. Если какая-то твоя прога так сделала, то проверь в реестре и узнаешь что является лаунчером.
>>1622807 Ты недооцениваешь степень умственной неполноценности некоторых экземпляров. Я например пару дней назад проходил интервью где мне на полном серьёзе затирали что проекту над которым предстоит работать уже 10 лет, но каждые 2 года они переписывают его почти с нуля, релизят, находят новые модные технологии и начинают всё с начала. Чувак к слову именно "модные" и говорил, я даже подумал что он траллирует так.
Народ, помогите, пожалуйста. Написал простенькую прогу на java, на компе. Недавно начал изучать язык и слышал, что он кроссплатформенный и что много приложения на андроид написаны на java. Так вот, у меня есть пару классов-файлов .java, как мне их запустить на андроид? Если я правильно понимаю файлы .java уже скомпилированы и мне нужна виртуальная машина для их запуска, и в архитектуре андроида она есть(Dalvik, но сейчас что-то другое). В общем, помогите, кому не сложно, что нужно делать, хотя бы примерно?
>>1622917 Я не понимаю, вас гуглить не учили? Первая же ссылка. Как ты дальше будешь программу писать?
От себя добавлю что ты неправильной дорогой идешь, сталкер, проще скачать андроид студию и подключать свои классы туда. "Кроссплатформенный" тут всмысле и на windows, и на бубунту, и на кофеварке, но не на андроиде.
сап жабаны, кто может знает какие видео курсы по жаве, начальный уровень хотя бы, что бы обьясняли про жава машину как там память работает и всякие другие интересные штуки. Наподобие видеокурсов хтмлкокодемии. Слышал про ITVDN но хз где найтии слитые курсы. Если у кого есть ссылка на трекер или хотябы где лежит, буду благорадарен
>>1623037 >начальный уровень хотя бы, что бы обьясняли про жава машину как там память работает и всякие другие интересные штуки вот у этого парня https://shipilev.net/ нормально для новичков. всякие интересные штуки, как ты просил
В россии нет энтерпрайза, у нас гопники и хачики бизнесом мутят и там максимум 1с склад юзают. >>1623062 Новичку будет интересно про бенчмарки String'ов? У него еще и сайт на табличной верстке, буэ.
>>1622752 >Я не верю что у тебя прям .jar файл запускают по даблклику Всю жизнь так запускал (причем и питоновские файлы тоже. Хз, сам попробуй. В реестре тоже самое что у тебя.
>>1623179 Попробуй заменить javaw.exe на java.exe в той строчке. Гугл пишет, что >отличается от java.exe тем, что при его работе не отображается окно команд
>>1622995 Какой-то обиженный пук в лужу. Тута я. Еще утром вам покушать приносил >>1622633 И мне же еще надо гнездо гофером палкой растормошить. >>1622584 →
Нет времени на контент, надо йоба-софт на котлин переписывать. Сам себя не перепишет, а часики то тикают. Дал Бреслав котлин, даст и среду разработки.
>>1623228 Код в UTF-8, а в памяти UTF-16, как везде. Дело в том что UTF-8 компактная, но "ебанутая" - в ней символ может занимать 1 байт, 2, 3 или 4 байта. И работа с ней сложнее чем с UTF-16, где возможны случаи только 2 байта или 4 байта для суррогатных пар. Ну тоесть UTF-8 не поддерживает свойство "кратно 2", что при работе с памятью вызывает определенные трудности.
>>1623237 >>1623228 Например, строка UTF-8: FF FFFF FF FF FFFFFFFF FF FF FF FFFF тогда как строка в UTF-16: FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF Даже количество символов в UTF-8 не подсчитаешь если не прочтешь всю строку. А в UTF-16 это просто bytes/2. Потом уже ввели работу с суррогатными парами и с тех пор str.length() считает неправильно если в строке есть символы по 4 байта из старших "планов" (Unicode planes)
>>1623141 Где-то в нулевых мелкомягкие пытаются увести и сделать свою жабу. Сан судится и наказывает. Мелкие - плохие Десятые гугл уводит и делает свою vm - оракл судится и наказывает. Но почему-то плохой оракл
>>1623341 Мелкие пытались проделать своё EEE с жабой. Дошли уже до второго E, вот сан и понял, что добром это не закончится. Да и так понятно, что они все пидорасы-копирасты
>>1622683 Есть способ с константами public static final boolean DEBUG = false; если в коде писать: if(DEBUG) { ... } то компилятор выбросит этот код или наоборот оставит без условия вообще смотра что там true или false.
Тут вопрос в том, что значение DEBUG должна быть константа времени компиляции, выкрутасы типа getDebugValue() не пройдут. Так что тут или переключать значение в исходниках или делать предпроцесинг исходников во время билда.
Тут вопрос зачем? Если просто перфоманса ради, то JIT эффективно устранит условие if(DEBUG) если DEBUG это static final переменная. Заморачиваться с полным вырезанием имеет смысл если софт публичный, а дебаг логика содержит что-то секретное.
>>1623179 >>1623188 Консоль java.exe закроется сразу после того как java приложение отработает. Чтобы консоль осталась открытой надо её через cmd /k выполнять.
>>1623388 Там идея в том, что не нужно железобетонно переходить, скачивай хоть все версии какие хочешь и какую-то из них включай как default. Точнее как current.
Господа матерые джависты, если ли в джаве/котлине де-факто стандарт аннотаций, который бы показывал какие классы это публичное API и его нужно юзать и читать, а какие классы, это внутренние кишки и вспомогательное "нутро"?
Я просто думал свои аннотации накатить, но потом подумал что по-любому такое уже кто-то делает, че велосипедить.
В джаве неудобно писать. Эти точки с запятой скучные. Их ставишь, ставишь, все одно и то же. И грузится все долго, старт спринга надо секунд 30 ждать, а нода за 8 секунд стартует.
>>1623705 Так старт самого спринга это и есть старт хелловорлда. Большие приложения стартуют дольше в основном за счет своих инициализаций, в которых спринг не виноват.
>>1623037 спасибо за то что не помогли как обычно, я нашел свои видео, и теперь смотрю изучаю что такое байты и биты, больше в ваш тред не приду так как не помогаете.
Итак, учу джаву уже с сентября 2019. Ранее опыта в программировании не было вообще. Учился в основном на джавараш, но, будучи на 20-25 уровнях, понял, что прогресс обучения дико торомозится из-за постоянного зависания на какой-нибудь сложной задаче. Стал смотреть видосы Алишева, читать книжки по алгоритмам, повторять вопросы и ответы на собеседованиях - то, что ранее было непонятно, вся эта куча стала более менее раскидываться по полочкам. В итоге, на данный момент более менее разобрался в коре, изучил SQL на уровне базовых запросов и простые команды Git. Продолжаю дрочить джавараш. Планирую повторить многопоточность и приступать к EE-фичам и спрингу. Вот только беспокоит, что к какому-либо самостоятельному проекту я так и не пришёл. По сути, за плечами знание теории и синтаксиса. Реально ли вообще найти работу джуна/стажера без портфолио в СПб?
>>1624061 Под портфолио имел ввиду гитхаб со своими проектами. Друг недавно устроился джуном после джавараш и видосов по Спрингу. Из проектов на гитхабе был только повтор кода по видео. Но он перед тем, как начал серьезно учиться, ушёл с работы и из дома не вылезал, штудирая книги и задачи на джавараш.
>>1624055 Чтобы видя только URI без другого контекста, можно было автоматически распознать, что это строчка для JDBC. Очень редко, но всё же иногда это требуется.
>>1624066 >>1624073 Мне просто интересно, кто именно этим префиксом пользуется. ДрайверМенеджер? Так ему это не надо. Сама база? Но зачем? Это как-то влияет на то, в каком виде возвращаются результаты?
>>1624071 >Друг недавно устроился джуном То друг, а не ты >ушёл с работы и из дома не вылезал Вангую появилась возможность подвязки в каком нибудь месте, сказали подтяни возьмем. Он и рванул. Адекватные люди не дропают работу ради нихуя. Впрочем ты начнешь оправдываться, что он сам, ведь ты свечку держал когда его брали.
>>1624095 Ну вот скажи, например: зачем в адресной строке браузера нужны префиксы http/https? Браузер может и сам разобраться, чо там, а пользователю это не интересно.
>>1624105 То есть от наличия/отсутствия этого префикса зависит, в каком виде будут отправлены результаты? Например, если jdbc, то в том виде, в котором они, по каким-то причинам, определены спецификацией?
>>1624095 >>1624055 Странный вопрос. А зачем нужен префикс http(s) в урлах? Его тоже никто "не использует": в HTTP хедере он передается, только хост и адрес ресурса относительно хоста. "Не использует" в кавычках потому что это все-таки не совсем так - по схеме (эта часть урла называется по-научному "scheme") определяется как именно клиенту общаться с сервером, по какому протоколу. Так же и в jdbc. Подозреваю что ничего другого там поставить сейчас нельзя, еще не придумали, но это же задел на будущее, может потом будет jdbcs. Возможно и с http не подозревали что когда-то другая схема появится для передачи именно HTTP, но люди-архитекторы они такие создания умные - могут думать наперед. Возвращаясь к jdbc - наверняка в клиенте, будь то драйвер менеджер или непосредственно драйвер, стоит проверка if (!scheme.equals(THE_ONE_AND_ONLY_ACCEPTABLE_SCHEME)) throw new Unsupported...
>>1624120 Но ведь это же никому не интересно. Как не интересны порт, с которого делается запрос, какие именно там хелеры, сколько IP-пакетов, через какие шлюзы. Так зачем пользователю в принципе давать знать про http, если браузер может выяснить это полным перебором по десяткам протоколов, переходя к следующему в случае ошибки?
>>1624128 А меня вот больше раздражает не http, а www. Ебучая приставка из девяностых, никак не сдохнет. Хотя с текущей тенденцией заводить все больше и больше хипстерских доменных зон действительно разпознать интернет-адрес становится всё сложнее. Пишет тебе челик, "подскочи на karasique.meme", и хуй проссышь это его ебучий скайп с такой фамилией, или корпоративный аккаунт почты без домена компании...
>>1624147 Ну типа угадал, я вкатыш, который повидал дохуя шизов и чсв хуесосов из мфти и шитмо, кто дают такие задачки на собесах. Но почему я плохой в твоем воображении?
>>1623465 Публичное API это немного размытое понятие: - есть классы с которых надо начинать - тут обычно в тьюториале пишут - есть классы которые для продвинутого использование - тут обычно документация или JavaDoc - в целом - все что public - то публичное API разной степени продвинутости, все что не public - то или приватное или advanced API
>>1624728 Какой же ИТ юмор тупой. Серьезно, когда-нибудь задумайтесь насколько туп этот юмор. Он выглядит как шутки про матан или физику от студентов которые только вкатываются и узнают новые понятия и свойства хахаха биссектриса это взбесившиеся крыса
И хватит форсить это динамичное и однопоточное говно - питон. Тем более, когда есть божественный котлин, с вменямым sdk, а не продукт больной фантазии какого мужика вечно, блядь, лезешь в SO чтобы узнать как эта известная херня делается именно на питоне, ебанные "не такие как все" кодеры.
>>1622683 В application.properties: logging.level.com.seriouscompany.seriousbusiness.SeriousClass=DEBUG В SeriousClass: @Component @Slf4j public class SeriousClass { public void myAwesomeMethod() { log.debug("My debug message!"); } }
>>1624643 Самоподдув треда закончился. Раньше это вообще был тред мертвее жабьего, периодически тонувший, потом пришел какой-то анимешник и их шапку сделал про язык багофф!
>>1625027 Slf4j - это типа универсальный интерфейс к другим логгерам. Полезно если разрабатываешь библиотеку которая может использоваться в проектах с разными логгерами - просто надо будет подключить соответвующий бекенд, Это была его основная фишка.
Но теперь и log4j тоже так устроен - API отдельно, сам логгер - отдельно. И тоже возможны варианты, в том числе и logback.
Прошел короче джавараш и там доп курсы еще с ним шли. Вроде более менее нормально, но вроде и все это же есть и бесплатно. Для шарпа один в один professorweb. Такое. Ну для не самых быстрых и по большой скидке сойдет за год со скрипом.
Или иначе. Есть машина. rootfs каждую перезагрузку стирается. Сначала брал данные из БД, о чём недавно писал, но, оказывается, бд тоже стирается при перезагрузки. Видимо, хуком каждый раз перезаписывается, ведь вроде бы находится на разделе, который не перезаписывается с перезагрузкой. Сейчас хотел брать/записывать строку в файл. Но может ещё какие-то варианты лучше будут?
>>1625092 Нет. >>1625094 Не знаю. >>1625130 Я бы и эту жабу в руки не взял. Но долг перед Родиной зовёт окунуться мордой в это. >>1625164 Так код быстрее работает. Мне так на дваче сказали. >>1625166 Сейчас взял всякие FileUtils из модуля, который уже был подкручен, но пикрил выбесил. Как жависты жрут эти 500 уровней с try-except. Пиздец же.
>>1625081 Привет. >unit_name Это с тобой мы во вторник лямбды решали? Операция присвоения (=) имеет меньший (самый наинизший кстати) приоритет чем операция сравнения (!=). Скобочки правильно расставь. Но это не решит всех твоих проблем. Сравнение строки с "-1" тоже невозможно. Зато у строки есть .isEmpty()
Пришёл. Узнал, что то, что должно работать, не работает. Пинаю хуи во время сборки йобы. >>1625204 >>1625213 Это же было ирония, ну. >>1625213 Да, вновь привествуем. Да, проблем не решит. Он сейчас вовсе выдаёт 404 в какой-то момент. А, как писал выше, хоть варинт с бд рабочий, но отчасти, потому что БД с каждой перезагрузкой машины перезаписывается.
>>1625208 Пришёл одним из первых, запилил сегодня одну фичу и сейчас пилю вторую. Когда все уходили праздновать, съебался раньше всех, ибо скучно. Выходные долгие, будет очень скучно.
>>1625130 Так уныло, серо, пресно.. Куда как интереснее писать вот такое живое, яркое, броское: Files.lines(Paths.get(fileName)).forEach(System.out::println);
У меня есть ArrayList который содержит в себе <Integer [][]>, то есть двухмерных массив. С помощью massiveName.contain(new Integer {a, b}) я проверяю наличие элемента в массиве, но это почему то не работает. При использовании обычного ArrayList, без массива всё ок. Как быть?
>>1625896 >содержит в себе <Integer [][]>, то есть двухмерных массив >list.contain(new Integer[] {a, b}) Ты говоришь двумерный массив, но добавляешь одномерный с двумя элементами.
Все просто: методы коллекций ArrayList.contains() и другие, напр. Map.putIfAbsent(), используют Object.equals() для определения есть ли элемент в коллекции. Если List<Integer> или List<String>, это работает потому что и у Integer, и у String метод equals переопределен и с помощью него проверяется равенство. Но ни у одного массива этот метод не переопределен и содержит стандартную имплементацию от Object.equals(), которая проверяет лишь равенство ссылок. Тебе нужно делать вместо массива свой собственный тип данных (класс) с переопределенными в нем методами equals() и hashCode(), только в этом случае коллекции будут нормально работать так как ты ожидаешь.
Сап, такой вопрос. Java, как первый язык - это нормально? Или до него лучше выучить Python, или даже паскаль какой-нибудь чтобы легче далось. Или нет разницы с какого начинать и можно начинать с джавы?
>>1625950 Полагаю Java вполне подойдет. Это пример "стандартного" языка, в ней есть все фишечки, которые нужно разобрать новичку: статическая типизация, модификаторы доступа, ламбды.
>>1625896 >>1625947 >System.out.println("Arrays.equals(iArr1, iArr2): " + Arrays.equals(iArr1, iArr2)); // true Еще добавлю что именно для этого случая - проверки массивов на равенство - был добавлен статический метод Arrays.equals(). Но в твоем случае тебе это не поможет, т.к. в лист не передать компаратор для contains() - только для sort(). Но в своем кастомном классе вполне можно вызывать Arrays.equals() внутри твоего собственного equals(). А вот как ты переопределишь hashCode() тут дело твое: equals() и hashCode() нужно переопределять только вместе.
Общий вердикт такой: ты используешь неправильный тип данных для своей задачи. Тебе точно нужны именно массивы? Или у тебя там всегда будет лишь два элемента (насколько я вижу это координаты x, y)? В твоем случае можно и нужно создать собственный тип данных - класс. Это не так сложно как звучит. Читай, делай.
>>1626046 Совершенно верно, начало положено. Про переопределение тебе лучше конечно читнуть как выше посоветовали. Вкраце это переопределение метода в классе-наследнике. В Java все объекты неявно наследуются от Object, поэтому у каждого объекта есть методы которые есть в классе Object, в частности equals и hashCode. Но они имеют дефолтную не очень полезную реализацию, и поэтому в своем классе мы их переопределяем, добавляя нужный функционал. Методы equals и hashCode тесно связаны: equals проверяет равны ли объекты, а hashCode проверяет, могут ли быть равны объекты теоретически. Если два объекта имеют разный хэшкод, то объекты гарантированно разные, а если хэшкод совпадает, то объекты могут быть как равны, так и не равны. Хэшкод это быстрая предварительная проверка, префильтр, перед тем как вызывать медленный equals. Еще по хэшкодам формируются корзины (buckets) чтобы группировать объекты. И еще хэшкод не должен меняться после добавления объекта в коллекцию, иначе все по пизде пойдет.
>>1626325 >И почему не Objects.hashCode(this) Я не думаю что здесь есть "правильный" вариант. Разработчик сам определяет значения хэшкода для его класса исходя из предположений о количестве объектов этого класса в коллекции, например. Если хочешь положиться на стороннюю реализацию - вперед, никто же не запрещает. Тут же я, во-первых, хотел продемонстрировать как это делать вручную, потому что это учебный пример в первую очередь, и во-вторых, performance-wise лучше написать свою простую формулу чем ощущать всю мощь рефлекшена и цепочки внутренних вызовов. Микрооптимизация, ну. А если серьезно, то я не смотрел реализацию этих методов, но даже и так понятно что общий случай сделать сложно, что все очень субъективно. А %16 это опять же во-первых чтобы показать как легко определять корзины, во-вторых, интуитивно "16 корзин хватит всем" (c).
Можно ли сделать юнит-тесты с помощью рефлексии? Вот у меня с лабы 100500 стратегий сортировки, как мне сделать отдельный тест на каждую из них, просто пройдя по циклу for (var streategy : strategies) ? Потому что сейчас у меня один тест на все стратегии.
>>1626363 Лично я не понял что ты хочешь. У тебя же есть и базовый абстрактный класс, и интерфейс. Ну вот первый пикрил с рефлекшеном, но это можно сделать и без, как на втором.
>>1626395 ну некрасиво же, не хочу плодить темлейтный код. Хотя, есть ли смысл в отдельном тесте на каждую стратегию? Я ведь и так проверяю каждую из них и если какая-то не сработает, то с логов пойму какая именно >>1626396 ubuntu mono
>>1626458 >ну некрасиво же, не хочу плодить темлейтный код @Test public void test_BubbleStratedy() { doTest(BubbleStrategy.class) или new BubbleStrategy() } Реализацию doTest пишешь одну на всех.
>>1626494 CRUD = Create Read Update Delete Обычные операции с данными (обычно БД)
Repository это паттерн доступа к данным, который рекомендуют на замену DAO, потому что он позволяет абстрагироваться от непосредственно самого доступа. Но внутри репозитори все равно зачастую используют те же DAO. Еще один уровень абстракции.
Че вы делаете, когда написали какое-то решение, а потом находите уже готовое в какой-то библиотеке? Причем, ваше решение уже работает и поддерживать его не надо.
>>1626644 Безопасность. Во внешнем мире смогут сделать UnsafeStates.getStates()[0] = 'ОП-Хуй'; Если это не твоя оригинальная задумка - возвращать ссылку на изменяемую сущность - то так действительно лучше не делать.
>>1626651 И кто из них это написал? В любом случае, иммутабельности на джаве нет. Хотя, ты можешь каждый раз возвращать копию массива. В большинстве случаев нахуй не нужно.
>>1626656 Комментарий "Не делайте так" скорее указывает на общую рекомендацию, а не на такие случаи. Часто ты видишь использование CopyOnWriteArrayList? Я даже Collections.unmodifiableList не вижу.
>>1626644 Для сохранения иммутабельности, помимо копирования всего массива каждый раз, можно добавить в апи вот такой метод: getState(int stateId) { / провеки индекса / return states[stateId]; }
>>1626659 Нет, не часто. Я бы даже сказал что наверное не видел вообще. Но он есть %)
>>1626729 А ты думал прогресс на месте стоит? Котлин это просто тестинг новых фич для джавы. Пусть они сначала грабли все соберут, а serious business дяди возьмут только то, что взлетит.
>>1626739 С офф сайта ультимейт скачать, с китайского сайта javaagent. Китайский сайт в конце комментах к раздаче idea на рутракере. К самой популярной по-моему.
Какая же жава уебищная блядь Пиздец 2020 год все еще нет автосвойств, нужно вручную гетеры-сетеры прописывать Да даже если генерировать их через IDE, все равно тонны уебищного бойлерплейта Пиздец блядь
>>1626751 Жри records или ломбок. Такой язык ему изобрели охуенный, который в 90-ых совершил революцию в айти, а он без чайной ложки сахара ебальник скривил.
>>1626751 Нахуй вообще нужны свойства и геттеры-сеттеры? Почти во всех случаях в подобных классах нет ничего, кроме данных, и поэтому поля можно тупо сделать публичными.
>>1626771 Usage: 0. Download the zip package and get jetbrains-agent.jar first. Download page: https://zhile.io/2018/08/17/jetbrains-license-server-crack.html 1. Run the IDE and evalutate for free. 2. Drag the jetbrains-agent.jar into the IDE window. (Actually you can drag jetbrains-agent-latest.zip too) Click "Restart" button to restart your IDE. 3. You will see the JetbrainsAgent Helper dialog. Select license type, check/uncheck offline option and click button. 4. Restart IDE, and all done. x. Support "License server" and "Activation code": 1). Entry license server address: http://fls.jetbrains-agent.com (If failed see no.2 [below]) 2). Active offline with the activation code file: ACTIVATION_CODE.txt If the activation window always pops up(error 1653219), remove jetbrains' domains from hosts file License key is in legacy format == Key invalid,check your agent's config again If you need a custom license name, visit: https://zhile.io/custom-license.html Хуй знает, я просто перетащил и заработало.
>>1626740 >serious business дяди А это кто, кстати? Если те люди из бизнеса, которые заказывают работу джавистам, то этих дядь обычно как раз совершенно не волнует, из каких исходников ты компилируешь байткод. Не их это уровень. Точно так же, как они не придут проверять, руками ты геттеры рисуешь или ломбоком. А если так, есть ли смысл ждать?
>>1626751 Ну канеш, самое главное же, это геттеры-сеттеры. Нахуй жвм, нахуй гарбедж коллектор, нахуй всё, самое главное, чтоб дебилу с двача не надо было геттеры и сеттеры писать.
>>1626799 В том, что найти девелоперов на джаве проще, чем на ёбаном котлине. Серьёзным дядям надо не 1.5 студента, а штук по 100 двелоперов на средний проект в ентерпрайзе. Джава получает, только проверенные и нужные фичи. А всякие скалы, котлины и груви - это чисто воды песочница на посмотреть пойдёт или нет.
>>1626825 >найти девелоперов на джаве проще, чем на ёбаном котлине Девелопер на котлине получается из девелопера на джаве буквально за несколько дней листания мануалов. Причем, что видно по той же популярности ломбока, девелопер только спасибо скажет. Потому что котлин это не скала, а именно что скорее "всего лишь" better java. Ну и тот же гугл насчет песочницы уже с тобой не согласился, например.
>>1626834 Они мудаки. Ебались тут на работе с кваркусом о фан, на гитбахе что не ишью, то ответ от редхата уровня "съеби, парниша". Нормальные пчелики из того же пивотала себе такого не позволяют, например.
>>1626836 Всего лишь беттер джава, которую потом заебёшься поддерживать, и придётся обратно переписывать. Проходили уже. Опять же, на работе черпи пытались писать на котлине, проблема в том, что он хуёво поддерживается примерно всем, включая грейдл, мавен и вообще без пердолинга нихуя нормально не работает.
>>1626848 >хуёво поддерживается примерно всем >без пердолинга нихуя нормально не работает Интересно. Есть конкретные примеры? Может речь о болячках первых месяцев, которые уже решены?
>>1626854 Недавно было, пол года назад может. Специфические вещи, плагины, код анализаторы и т.п. - всё это работает дико хуёво. Грайдл заебали настраивать, чтоб он в джарник всё собрал. Чтоб тесты запустить тоже ебля. Короче, первое впечатление обосрано. Захочу подобного - пойду во фронтенд.
>>1626861 >Грайдл заебали настраивать, чтоб он в джарник всё собрал. Чтоб тесты запустить тоже ебля Звучит очень странно, потому что у нас все нормально. Такие-то уж базовые вещи еще бы не работали. Что-то ваше особо специфическое могло и не заработать, понятно. Но, кстати, если на джаву завязаны какие-то локальные штуки типа кодогенераторов, можно прекрасно джаву сочетать с котлином даже в рамках одного проекта.
>>1626875 Перманентно заменили на всех проектах шеб на шебФлакс. Где нужно реактивщина - используем, где не нужна - не используем, и шебФлакс работает, как обычный шеб.
>>1626886 Это уже пердолинг начинается. Ну и да, тот же ломбок мы используем не для геттеров и сеттеров, а для геттеров, билдеров и реквайрд аргс конструкторов. Ни рекорд, ни котлин такое не решает.
>>1626685 Разбираться, что именно там было не нужно, мне лень, поэтому я просто построил частоту употребления этой фразы. Простыню с постами выложил сюда: https://pastebin.com/YnvZEFqb Искал по шаблону /[^а-я]н[еи] ?нуж[еи]?н/
Но я реально не понимаю зачем заворачивать нормальный SQL-синтаксис в псевдо-языковой синтаксис. Чтобы потом в очередной сложной ситуации сидеть и дрочить документацию, чтобы узнать как написать эту йобу, которую на чистом SQL уже бы написал и забыл.
>>1627168 И что? Кто этот код проверял? Ладно там какие-то организации иногда софт открытый исследуют на наличие бэкдора или подобного, а тут кто будет это тестить? Чаще распространителю кряка нужен ботнет, а не народная любовь.
Поясните мне, делаю первые шаги со спринг. Есть такой код, это пишет некий специалист, не я. Есть шабллонизатор еще, есть крудРепозитори, есть энтити. НИГДЕ не создается Map<String, Object> model, почему проходит вот эта строка model.put("name", name); ???? @GetMapping("/greeting") public String greeting(@RequestParam(name="name", required=false, defaultValue="World") String name, Map<String, Object> model) { model.put("name", name); return "greeting"; }
>>1627535 Его создаёт сам спринг под капотом и передаёт его в твой контроллер. В контроллере ты его заполняешь, а дальше спринг сам его передаёт в шаблонизатор.
>>1627566 Сервлеты помогут понять, как работает спринговый DispatcherServlet, но в спринге неявно ещё много чего делается - всевозможные автоконфигурации, автосканы и интерсепторы, и в этом сервлеты не сильно помогут. Поэтому в начале в любом случае придётся смириться с множеством странных и неочевидных вещей. Магии будет меньше, если забыть об аннотациях и делать всё через десятки старых xml-конфигов. Но она всё равно будет.
>>1627535 Методы Контроллера (@RequestMapping/@GetMapping/...) вообще достаточно волшебные: что в них ни попроси - всё доставляется. И в каком угодно порядке, неважно вообще. Может можно даже tyanochku попросить и спринг доставит, я не пробовал.
>>1627651 >15 Ну что же, внучек попишет на асинхронной джаве. Проигрываю как костыли прибивают в жабу, а оно то никому не нужно, все повисли на восьмерке
>>1627818 >все повисли на восьмерке Так потому что ближайшая LTS 11-ая, в которой кроме модулей ничего нового нет, а они оказались многим не нужны.
[ for excel ] не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно
>>1627818 Мне интересно, бизнесу то это все говно то надо? Корутины, конечно, инструмент реальный, но вот все остальное? Они реально очканули что котлин может хапнуть кусок пирога? Или их напугало что шарфик уходит полностью в опенсорс? Или их тревожит го с микросервисами и больше ничем Что блин с джавой происходит??
OpenJDK от оракля получается получает обновления только 6 месяцев до следующей версии джавы, и у них не бывает LTS? То есть 8 и 11 уже не поддерживаются. Хотя есть же oracle openjdk 8u242 и 11.0.6 - самые последние версии. И чтобы был долгий саппорт нужно ставить сборку например от AdoptOpenJDK?
>>1628007 Что так? Обычный openjdk сейчас 11.0.6 от 14 января, а по идее он не должен обновляться после 12 openjdk. Или это какие-то сборки от самих дистрибутивов линукса?
>>1628001 >OpenJDK от оракля получается получает обновления только 6 месяцев до следующей версии джавы, и у них не бывает LTS? То есть 8 и 11 уже не поддерживаются. Поддерживается. Текущая лонг тёрм сапорт сейчас 11, следующая, вроде бы будет 17. Поддержка восьмёрки кончается в этом году.
>>1628040 >Обычный openjdk сейчас 11.0.6 от 14 января, а по идее он не должен обновляться после 12 openjdk Он обновляется, но уже не ораклом, а только силами сообщества. Примерно то же самое, как с AdoptOpenJDK и т.п.
>>1628052 >>1628054 Так я тебе про openjdk, а ты мне про oracle jdk. Алсо, сейчас бы купить восьмерку до 2030 года и не перекатываться. Рай для вычищателей ереси.
>>1626715 Понял, спасибо. Нашёл, поставил, работает Зы. Эт я, автор оригинального вопроса. К тем дегродам что не смогли найти кряк в комментах отношения не имею
>>1628371 >Event Bus короч это автобус, оборудованный для проведения всяких эвентов. те там внутри диванчики, бар, диско шар и музыка. вы с посонами загружаетесь в автобус и катаетесь по городу.
>>1628052 Ну вот закончилась восьмерка, все же на асп дот нет коре чото там перейдут. Смысл платить деньги за то что бесплатно можно брать. Ну край на какое нибудь си плюс плюс куте уйдут.
А те у кого есть бабки, зачем им эта ваша джаба скрипт. Они САПОАБАПЕРАМ занесут. И будут правы.
>>1628487 Так и будет поверь, важен не язык, а знание основ, базы и умения учится. Перейдут сначала те кто не готов рисковать отсутствием поддержки восмерки. А дальше уже рынок стабилизируется и выработает свои новые стандарты. Конечно оракл скажет что мы все хотим вернуть в зад, но будет уже поздно.
>>1628517 А ну окей, я тогда передам чо делать битрик разработчикам и 1с внедряторам, что делать когда их параша схлопнеца. У них вроде похожая ситуация их говно вроде вообще умерло. Одно радует что это говно серьезные фирмы не используют. Так и вижу как мухосранская вебстудия с 3мя макаками ковыряет свое говно, что бы оживить. Ну а если серьезно подумать то перевели если без жертв, то как раз есть 2 года на перевод на другой стэк. Если были жертвы, то наверняка пользуют старую 8ку но уже пилят на новом стеке во всю и каждый день чекают новости и молятся, чтобы не нашли очередную дыру в восьмерке.
>>1628491 >поверь Да кто ты такой, чтоб тебе верить, мразь? Пошёл нахуй. У дотнета и сишарп литерали полумёртвая экосистема. Учитывая, что сейчас уже кругом контейнеры и прочие облачные технологии, в такой проприетарной хуйне вообще смысла нет. Я скорее поверю, что все ломанутся на каком-нибудь расте/го писать ентерпрайз, нежели на сишарпе.
>>1628563 До 2017 вообще ни про какие опенждк слышно небыло. А вот сисярп кор уже появился. Прошел поезд жавы, смирись. У дотнета то мертвая? С их нугетам который сама мс держит? Сириусли? Вот оракл это уже давно стало что то наподобие 1с у них там. Какая то тухлая контора, которая втюхивает курсы оракл спешиалистов за дохуя денег. Оракл считай сейчас убила жабу, своими платными ждк. Это остается только признать. И потихоньку перепиливать свое по на что нибудь посовременнее. Вообще уморительно с точки зрения оракла думать что кто то будет покупать их говно, только потому что они туда лямбы с фп запихнули. Еще бы блять за покупку ждк наклейки выдавали в качестве бонуса.
>>1628565 > джава чуть более бэквард компатибильная, чем полностью На словах-то может и так, а на деле всё упирается в кучу мелких особенностей реализации. Если попробовать запустить достаточно большой проект, работавший на 8, на 11, и он заработает, то повезло, и достаточно немного перепилить девопс. А если нет - хуй, придётся искать и фиксить сотни всплывших багов.
Зачем удалили сообщения парня с проблемами при чтении Concurrency in practice? >>1628525 - после вот этого было еще три сообщения, их потерли, что за лол? Свободная борда, свободное общение, мда..
>>1628580 Нет, но я примерно догадываюсь что там: вести себя прилично и по большей части обсуждать тему доски. Что из этого было нарушено в сообщении "У меня туго идет чтение Concurrency in practice, у всех так?"?
Сап, антоны. У меня есть массив строк из русских слов. Но, проблема в том, что у некоторых из них есть знак препинания в конце типо: {"мама", "мыла.", "раму!"}. Как убрать их наиболее аккуратно? Мне кроме как дробить строки на массив чаров и проверять каждый последний на знак препинания ничего не приходит на ум, какой то убогий способ, или нет? Если что эти слова парсятся через jsoup. Стягивается одной строкой и делиться через str.split(" "), не русские слова отсеивает через регулярку.
>>1628589 1) В апаче коммонс есть по слухам продвинутый трим, принимающий вараргс. Можешь скормить ему серию символов к удалению. 2) Если у тебя уже есть регулярки: \b - word-boundary, \W - не_буква. Дальше сам.
>>1628578>>1628573 Потому что надо было во время переходить на 9ку, а потом на 10ку и т.д. Сам оракл об этом ни раз говорил, что "ребята, если выбудете переходить только каждый ЛТС - вам будет пездец". Ну и да, монолиты на миллионы строк кода нахуй не нужны. Микросервисы во все поля.
>>1628632 > Ну и да, монолиты на миллионы строк кода нахуй не нужны. Микросервисы во все поля. Ну наконец-то нашёлся тот, кто перепишет с нуля всё легаси, написанное до популяризации микросервисов. И будет не один большой проект, а куча маленьких, которые независимо друг от друга всё равно не могут работать.
>>1628632 >Сам оракл об этом ни раз говорил Ну тык, бабло кончется, надо как то гоев разводить, вот и содавали 9ки 10ки, при этом усираясь кричать, что пора поцаны двигаться в светолое будущее. Пистон от такой хуйни аж на две мажорные версии раскололся.
>монолиты на миллионы строк кода нахуй не нужны Ну а в микросервисах кода нету. Одни абстракции с композициями, верно говорю?
>>1628637 Ну а хуйли ты хочешь? Ебаться с поддержкой в случае обновления какой-то технологии? Добро пожаловать. Нормальные проекты даже в кровавом ентерпрайзе, уже если не мигрировали, то мигрируют. >которые независимо друг от друга всё равно не могут работать. Не умеешь срать - не мучай жопу. Иди вот в дотнет, будешь с другими шизиками десктопные приложухи пилить из говна и палок.
>>1628645 >Адыхай А вместе со мной отдохнут от пистона разрабы, потому что это говно будут юзать только ученые в датасаенсе большом моченые, и полтара инвалида, кто подумал что это неплохая идея на новомодной поделке запилить свой интернет магазин. Так же срыгнут на какое нибудь похапе. Тоесть если раньше было 3 вакансии на мухосрань то теперь осталось 0.5.
>>1628650 Сомнительно. Вся бигдата написана пидоне, и я очень сомневаюсь, что кто-то ломанётся всё это переписывать на хуй пойми какой язык. В этом собсна вся суть, что написать всё можно на чём угодно, но важно на самом деле стереотипное отношение к языку.
>>1628642 Точно так же будешь ебаться с обновлением технологий в каждом микросервисе. > Нормальные проекты даже в кровавом ентерпрайзе, уже если не мигрировали, то мигрируют. Энтерпрайз всегда использовал очереди сообщений между множеством проектов и никогда не называл это баззвордом "микросервисы". Но ведь это всё неважно, важно обмазываться десятком апишек вместо того, чтобы просто вызвать нужный метод! Да здравствует построчная оплата кода!
>>1628652 Ну вот для биг даты и останется, а все то будущее которое пророчили петону как убийце похапе руби, теперь перечеркнуто. Тупа в паскаль превратился кароч.
>>1628654 Это проще. Во-первых, у тебя есть ответственные за микросервисы люди а.к.а команда, которая его разработала и поддерживает. Работать таким образом гораздо менее болезненно, чем пытаться обновить весь монолит. Это факт. >Но ведь это всё неважно, важно обмазываться десятком апишек вместо того, чтобы просто вызвать нужный метод! Глупый ты. Разобрался бы сначала в вопросе.
>>1628681 Первый на го, второй будет сидеть на 8 жабе и заставлять оракл исправлять баги, так как это дешевле чем переносить всю кодовую базу. Тритий на плюсах все ядро, а остальное переведут, так как им похуй на стеки, что моднее и дешевле, то и будут юзать Четвертый уже давно убийцу жабы в попенсорц выпустил, между прочим цветет и пахнет Неткор.
>>1628688 За монолит ответственны все, кто в него контребьютит. Если мы говорим, про нормальный проект, где хотя бы 10 команд - за такой монолит ответственный кто? Правильно, никто. Потому что такая вещь, как групповая ответственность в ИТ не распространяется на группы свыше 10 человек.
>>1628690 >никто Бред какойто, как это никто не ответственнен? Это же не совковое нии. Есть модуль или часть системы как угодно обзови. Так же эти части монолита поделены на команды. И у каждая своя граница ответственности. Я так понимаю у тебя пост трамватический синдром, когда то один ковырял монолит где все падало. И потом серебрянную пулю изобрели в виде микросервисов. Так вам стало проще спихивать с себя отвественность. Хотя по факту вам нужен был грамотный тимлид.
>>1628685 > Это проще. Во-первых, у тебя есть ответственные за микросервисы люди а.к.а команда, которая его разработала и поддерживает Вжух, и мы вернулись к монолитам, каждый монолит в системе тоже пишет отдельная команда. Вообще, "монолит" - это начиная со скольки строк? С 1000? Со 100000? Кто устанавливает этот предел?
> Разобрался бы сначала в вопросе. Разобраться надо тебе, раз ты веришь, что любые проблемы решаются микросервисами сами по себе.
>>1628700 >каждый монолит в системе тоже пишет отдельная команда Толсто. Во всех проектых про которые я знаю, или в которых работал, монолит делился между дюженой команд минимум. Опять же, если мы говорим про кровавый ентерпрайз. Да и монолит от количества сток не зависит. Идея в том, что у тебя вся бизнелогика в одной код базе. Т.е. чисто технически, если ты нарушает сингл респонсобили и опен-клоуз принцип на уровне бизнес логики - у тебя монолит. >любые проблемы решаются микросервисами сами по себе Не все, но многие. Очень многие. Цены за это - сложность системы. Вместо одного квадратика, у тебя сотни. Многих такой тред офф отпугивает.
Раз тут зашел разговор про монолиты и микросервисы Имеется старый монолит часть функционала уже выпилена часть еще нет, поэтому его еще нельзя убрать. Собственно вопрос как грамотнее всего его уничтожить разобрав на сервисы. Самый простой способ что вижу это логировать все что работает сейчас и по одному убирать попутно покрывая тестами. Есть какие то советы или рекомендации?
>>1628743 > Идея в том, что у тебя вся бизнелогика в одной код базе. Т.е. чисто технически, если ты нарушает сингл респонсобили и опен-клоуз принцип на уровне бизнес логики - у тебя монолит. Очень размытое определение. Прям представляю, как десятки тысяч программистов пишут одну убер-систему на всю корпорацию и запускают её на одно сервере приложений. Я уверен, что никогда никто так не делает, а из этого по твоему определению выходит, что термин "монолит" описывает несуществующее явление. Да и про сингл респонсибилити - опять же в каких масштабах? Если упороться этим принципом, то можно вообще создавать по микросервису на каждый класс, и в каждом классе должно быть не больше одного метода.
>>1628790 >Прям представляю, как десятки тысяч программистов пишут одну убер-систему на всю корпорацию Проект. Я работал в проекте, где было 11 команд по 10-12 человек. Расскажи мне, про то как удобно её поддерживать, и что это дурацкий оракл виноват. Алсо, у гугла вся код база всего находится в одном репозитории. >то можно вообще создавать по микросервису на каждый класс Погугли OpenFaas, или AWS Lambda, или Azure Functions(как у гугла называется я хз, не работал с GCP). Только в обморок не падай.
>>1628820 То есть выходит, что монолитная и микросервисная архитектура - не взаимоисключающие понятия? В одной системе могут быть и монолиты, и микросервисы? Значит, дело не в какой-то "архитектуре", а тупо в количестве кода и логики в отдельно взятом проекте.
>>1628820 > Расскажи мне, про то как удобно её поддерживать, и что это дурацкий оракл виноват. Пиздец как неудобно, кто спорит-то, лол.
>Алсо, у гугла вся код база всего находится в одном репозитории. Монорепозиторий - это не монолит. Это вообще непересекающиеся понятия.
>Погугли OpenFaas, или AWS Lambda, или Azure Functions(как у гугла называется я хз, не работал с GCP). Только в обморок не падай. Видел уже.
>>1628842 >То есть выходит Зачастую, именно так и есть. Есть легаси говно, написанное на коболе, и есть моднейшие микросервисы на всём чём попало(жаба есесно). А дальше - "ебитесь". >Пиздец как неудобно, кто спорит-то, лол. Ну дык мыкросервисы подразумевают, что одна конкретная команда отвечает лишь за несколько мыкросервисов(самый крутой рейт, это чёт типа 3 на девелопера, но это надо нормально систему запилить).
Аноны, я тут читаю про шедулинг процессов в операционных системах. JVM -- это ведь один процесс, так? Операционка, в независимости от кол-ва ядер, всегда обрабатывает один процесс на одном ядре. То есть это что же получается, что в жабе один хуй, запускаешь ты свою программу на одноядерном проце или на многоядерном? Я уверен, это не так естесна. Кто - нибудь может объяснить?
>>1629006 Единица исполнения кода - поток, а не процесс. Многопоточность, потокобезопасность, слышал? Процесс это коллекция потоков + метаинформация + статическая память. Один процесс может содержать много потоков (на пике - 39), причем этих потоков может быть быльше чем ядер. Вот они и свичатся.
>>1629010 По делу есть что сказать? >>1629017 Спасибо. То, что единица исполнения это поток, я знаю. Вопрос был не в этом. В ОС есть понятие процесса. Внутри процесса есть потоки уровня пользователя и потоки уровня ядра (user-level и kernel-level). ОС о потоках уровня пользователя не знает ничего (о них знает только библиотека, которой пользуется пользователь). Потоки уровня ядра ОС шедулит сама. Так вот, по идее треды в жабе -- это потоки уровня пользователя и они никак не контролируются ОС, а контролируются только JVM. Получается ОС отводит время JVM, а JVM распределяет это время по своим потокам и как бы неважно, сколько ядер в системе (потому что JVM -- это один процесс).
Короче, пока писал, сам ответил на свой вопрос. В джаве есть две реализации многопоточности. Большинство из них мапят потоки уровня пользователя на потоки уровня ядра и как бы все на этом (шедулер ОС сам их распределяет по ядрам). До версии 1.2 была еще поддержка green thread-ов. Это были чистые потоки пользователя, которые полностью контролировались JVM. Как следствие, у них был более скоростной context switch, меньше оверхеда, но при этом они никак не выигрывали от многоядерности.
>>1629025 >Так вот, по идее треды в жабе -- это потоки уровня пользователя Это называется зеленые потоки и в Java это не так с версии 1.1. Сейчас все потоки в Java это потоки ОС. Вот придет project loom - будут тебе зеленые потоки, а пока юзай Котилин или Акка.
>>1629058 Просто до этого JVM утилизировала только одно ядро процессора (как например современный CPython или Node.js). А с нативными потоками JVM стала использовать все доступные ядра.
Речь идет о той реализации, что была на тот момент, project loom будет конечно все доступные мощности использовать. Просто посмотри на дату выхода 1.1
>>1629065 Это не я писал, но loom это действительно зеленые потоки. Но улучшенные по сравнению с тем что было 1.0 - тут тебе и поддержка IO и прочие плюшки.
>>1629068 Поясни, нахуя китайцам ебаться с жабой и чото там допиливать, когда можно было взять шикарный неткор или, на худой конец, го и сделать то же самое, только быстрее и лучше?
>>1629079 Потому что не было понимания что нужно и зачем - это 1997 год. Ява тогда на сервера даже не пыталсь зайти, не было ни JEE ничего. JIT - только представили и то не на всех платформах. Java Memory Model - тоже еще не существует.
>>1629191 .Net Core первых версий неюзабельный прототип, только с 3-й версии им стало возомжно нормально пользоваться. На Java же у них было уже работающее приложение, куча разработчиков, библиотек, тулов и прочее. Просто были проблемы с масштабированием и они решили их. В принципе их можно решить и по другому - перейти на неблокирующие IO и фиксированный пул воркеров - но это опять затраты на переписывание всех приложений.
Го же тут вообще не пришей кобыле хвост. Горутины это те же акторы, но с немного другим синтаксисом. А еще незабываемое: if err != nil { return err }
>>1629436 С лета вкатываюсь, сейчас изучаю многопоточность. Сначала было тяжело собраться, потом начал регулярно каждый день по 4-6 часов заниматься, благо, друзей нет и из дома не выхожу никуда кроме колледжа.
>>1629436 Расскажу, как делаю я. Ищу на хх вакансии на стажёра, ждуна, откликаюсь. 40% смотрит по 3 раза на моё резюме и пропадает. 40% присылают отказ. 5% дают тестовое, почти всегда там круд на спринге, сохранение сущностей в бд, получаемых из JSON и/или XML. Первый раз было запарно, я жидко обосрался не став делать 5 абстракций на каждый класс и городить хелоуворлд-EE. Закономерно был послан нахуй, сделал выводы, пошёл читать Мартина. Стало проще. 5% зовёт на собеседование сразу. На собеседовании всегда один и тот же набор одинаковых вопросов про связанные списки, методы класса обжект, хешмапы, ООП, SOLID, паттерны, уровни доступа. Иногда спрашивают про Stream, ORM. Всегда SQL, один раз дали написать запросы, там хуета на джойны пары таблиц и т.д. Последний раз обосрался на вопросе "какой ассерт при создании своего функционального интерфейса". Неважно, как я отвечаю, ответ один. Схожий с названием соответствующего треда в разделе. Отсюда вопрос, чяднт?
>>1629458 >сколько же нужно изучать джаву Я начал осенью, до этого другой язык пытался выучить, но схожий. Там ничего сложного нет, в гугле есть списки с этими вопросами, я их просто вызубрил уже. Но собеседующие никогда на них не останавливаются, т.е. ебут до конца, до тех пор, пока не найдётся вопрос, на который ты ответить не сможешь. Я хз зачем так начинающих давить, я ж не на синьёра пришёл. >в каком городе Северо-запад дс, но в целом мне похуй, я уже и на другой конец города готов ездить.
>>1629436 >>1629456 Вакансии ждуна это, по-моему, днище полное. Обычно там нужен единорог, т.е. фактический миддл, готовый работать за доширак и рыбную котлету. Наверное, потому, что джуна нужно обучать и менторить, а они этого делать не хотят, ты потом ещё запросишь денег или свалишь. А вот стажировки, "лаборатории" и прочие "java-школы" это да, реальный шанс вкатиться.
>>1629473 Летом будет год, как я вкатываюсь. Правда, никуда особо не тороплюсь, так как помимо основной еще две работы упали. Понимаю, что никакое собеседование сейчас не пройду, поэтому кодю в свое удовольствие, недавно на кодварсе начал задачи решать. Вообще, наверное, джава - странный выбор для начинающего. Почитал сейчас про фичи, которые появятся в 14й версии, есть прикольные штуки. Но в целом, груз обратной совместимости не дает языку развиваться так, как он мог бы, имхо. Удачи тебе в трудоустройстве.
>>1629481 Я хз как отличить стажировку, где через N месяцев ты устроишься ждуном, от очередных курсов "вкат за 72 часа", где по их окончанию просто пошлют нахуй и наберут новых. Ко всем эти курсам, вроде того же джава-раша, у меня вообще хуёвое отношение, я лучше книгу прочитаю, чем буду ходить слушать какого-то долбаёба, который для абсолютных даунов по 2 часа разжёвывает очевидные вещи. От большинства за версту несёт наебаловом, может я не прав, конечно.
>>1629491 На самом деле я на торрентах нашел некоторые видеокурсы. Типа, пишем приложение и тупо сидишь повторяешь. В определенный момент ты понимаешь, что у тебя так не работает, как у чувака из курсов. И ты начинаешь гуглить проблему. И пока ты ее гуглишь, ты узнаешь овердохуя всего рядом с этой проблемой. Мне для того, чтобы подключить сраный JAXB для работы с XML-ем пришлось +- освоить мавен, так как просто подгружать либы в виде джарников не очень получалось. Так что теперь реально понимаю, почему все говорят, что для того, чтобы научиться кодить, надо тупо кодить. Задачи только себе надо подходящие искать и это самое сложное.
>>1629488 >джава - странный выбор для начинающего Ну хз. Литературы тонна, всё что ты захочешь написать за эти годы уже кто-то написал. Работы вроде тоже дохуя, комьюнити большой, значит всегда можно найти того, кто ответит на вопросы. Осталось только вкатиться. Или это вообще твой первый ЯП? Ни в школе, ни в вузе никаких паскалей, бейзиков, дельфи не изучал?
>>1629500 Да, для меня это условно первый ЯП. Я по специальности инженер, но решил наверстать упущенное. Родители когда-то сказали, что прогеров и так много, и что работы не найти и вот отказался от этого. В школе изучал Паскаль, но это был цирк. Самое мощное достижение - это машинка, которая езди из левой части экрана в правую. Потом пол года в университете были плюсы. Но там самая сложная моя работа - это курсовой проект, где нужно было из рандомного текста убрать все гласные или все согласные. Джаву выбрал за ее универсальность, стабильность, вроде как вакансии есть. Плюс сама идеология чего-то фундаментального мне ближе, чем то, что стильно/модно/молодежно.
>>1629498 Я читать люблю больше, чем видео смотреть. Когда со спрингом начал заморачиваться, на один из вопросов гугл выдал канал letsCode. Пару видосов глянул, норм. Но потом понял, что чел просто переписывает всё из офф. доков чутка поясняя. Это я и сам могу. Более менее заходят какие-нибудь лекции, но они само собой всегда на английском, чаще всего уж устарели, и их хуй найдёшь. Глянул так пару видосов с Venkat Subramaniam, ну и там тоже почти всё это пересказ его же книги. Вкусовщина короче. >Задачи только себе надо подходящие искать и это самое сложное. Знакомо. Поэтому я (почти) никогда от тестовых и не отказываюсь, хоть чем-то гитхаб забить.
>>1629491 Наверное, ты не так понял. Я имею ввиду курсы, которые проводят компании. Такие есть практически при каждой крупной конторе, они длятся два-три месяца, и после успешного прохождения тебе берут ждуном. Суть там не в охуительных знаниях, а в том, что ты поболтаешься в их системе и покажешь, что ты не хер с горы, а вполне себе обучаемый разработчик.
>>1629507 >машинка, которая езди из левой части экрана в правую Алгоритм Конвея? Делал похожее тз. >вроде как вакансии есть Ага, для синьёров.
поясните за JavaАноним10/03/20 Втр 17:02:37#715№1629513
Сап, программач, есть односвязный список, написанный в 2 классах: 1) class Node https://ideone.com/4kFXbi 2) class MyList https://ideone.com/pMWcaA Как новичок, не могу понять следующее: 1. Почему в классе Node объявлена переменная типа Node (private Node next в 3 строке)? 2. Что за конструкции типа this.value = value; this.next = next; в классе Node? 3. Как работает этот метод? public Node getNext() { return next; } 4. Ну и на закуску в классе MyList почти всё непонятно: Что делает этот код? (2-6 строки) private Node head; public MyList() { this.head = null; }
Что за переменная? Node node = head; (17 строка) Зачем переменная присваивается себе: node = node.getNext()
>>1629511 >после успешного прохождения тебе берут ждуном Или не берут. А раз >Суть там не в охуительных знаниях То я просто проебу 2-3 месяца жизни. Хотя вариантов особо нет.
>>1629509 Я тоже больше читал раньше. Теперь и видосы подключил. А вообще пришел к выводу, что найду себе ментора, который работает в этом всем, пусть лучше он расскажет-подскажет. Тем более, что в ДС2 такие есть.
>>1629513 >private Node next Ссылка на следующий элемент. >Что за конструкции типа Конструктор и есть, буквально. Т.е. ты будешь создавать экземпляр класса, передавая ему значения элемента и ссылку на следующий элемент. Зис это указатель на сам объект. >Как работает этот метод? Возвращает тебе следующий элемент. Ты же в курсе что такое связный список? У каждого элемента есть указатель на следующий, вот это оно и есть. Если следующего нет, то ты в конце. Если есть, то тебе дают next. >Что делает этот код? (2-6 строки) Конструктор пустого списка. В пустом списке первого элемента (хед) нет, но создать его как-то надо, поэтому присваивается нулл. >public int size(){ >Node node = head; (17 строка) Это метод, который возвращает размер списка. Для этого ты создаёшь переменную, счётчик int count = 0; Берёшь первый элемент в списке (хеад, голова), если он есть, значит в списке есть элемент, т.е. сайз как минимум 1. В цикле перебираешь все элементы, пока они есть while(node != null). >Зачем переменная присваивается себе Она не себе присвается. Ты берёшь первый нод, угу, ага, значит сайз +1. Потом делаешь также для второго. Каждый раз переключаясь на следующий (getNext).
>>1629515 Тебе решать. Знакомый так перекатился в 30 лет в прошлом году, раньше был юристом. Ну и не везде это унылые курсы джавы SE, есть куча мест с реальными проектами, по сути тот же испытательный срок, но почти без денег.
Анон, а правда говорят, что жаба-энтерпрайз - одна из самых рутинных работ в программировании? Когда-то был тред, в котором аноны писали свою ЗП, область работы и комментарии. Так вот, обеспеченные жаба-господа часто писали, что их заебала их работа, интереса не приносят. С другой стороны, жаба бэкеры часто обзывают фронтов "формошлепами", якобы это вообще не "настоящее" программирование, а вот в бэке все трушное и сплошные промывания архитектур и других важных штук. Опытные господа-явисты, внесите ясность. Спасибо.
Имеет смысл вкатываться пока учусь на вышке, а если позовут на стажировку/примут уходить на свободное посещение и кое как сдавать предметы? В вузовые практики не верю, 2 курс.
>>1629903 Не знаю, я кряк поставил и живу. Сброс триала они вроде поменяли, если найдет конфигурацию предыдущей идеи, скажет что 30 days left. Удалять надо со всеми настройками и плагинами.
>>1629456 >Отсюда вопрос, чяднт? Никто тут не ответит: потому что у разных компаний разные критерии тебе могут отказывать по разным причинам и непонятно что и как ты отвечаешь. Ну и плюс твои зарплатные ожидания - может ты просишь как мидл. А может это что-то лично, мотивация им твоя не нравится или ты лично чем-то им не понравился.
>>1629988 Не редко, по ту сторону стола сидит еще более глупое существо чем ты, с искаженным восприятием себя и мира. И оно, почему-то, будет спрашивает тебя о том, что ты на работе делать не будешь (или к чему тебя даже не допустят).
Переставь, приходишь устраиваться маляром, а у тебя расспрашивают о перспективе или теореме Дезарга. И это блин реалии текущего мира айти.
>>1629960 Просто хотел послушать истории анонов, взглянуть как делали другие люди, сделать свои выводы, понять где я делаю не так. >зарплатные ожидания На любую готов. >ты лично Возможно. Но с этим я ничего поделать не могу. Стараюсь улыбаться, нормально говорить, кошу под нормиса изо всех сил. >>1629983 Оставшиеся 10% это то, что не вписывается в остальные рамки. Зовут на собеседование, потом переносят, потом ещё раз переносят, потом хуяк, "о извините вакансия закрыта". Или приезжайте, приезжаешь, а там "ой тимлида нет, извините, давайте в другой раз". Или мы посмотрели ваше резюме, на эту вакансию вы не подходите, есть другая, а там вообще какая-то шляпа, про которую я никогда не слышал. Или Saleforce. С математикой у меня более-менее, читал несколько книг по алгоритмам. Хотя ни разу ещё про алгоритмы не спрашивали, про деревья один раз чё-то было и всё.
>>1630004 Не думаю что до конца поборол, просто увидел себя со стороны в таких же балбесах как я. И появилось желание личного роста из макаки в профессионалы. Правда, скорее, больше повлияла работа с грамотными людьми в ответственном проекте.
>>1630054 >заваливают По джаве вопросы из топ 10, почти всегда. Я не могу сказать, что это сложно, обычно я на них отвечаю. >по спрингу Один раз попросили назвать примеры аннотаций. Сидя на стуле перед двумя ёблами я смог назвать только рестконтролёры, аутовайред очевидный, Data, но потом вспомнил, что это из ломбока и исправился на Ентити. "Ещё что?" Я хз, не помню, начал что-то про репозитории пытаться вспомнить, но там просто расширяет же. Короче про Service я не вспомнил.
>>1630067 Да, про хибернейт тоже спрашивали, но как-то вскользь. >>1630069 Про это ничего не сказали. Я так понял, надо было про Service что-то рассказывать.
>>1630015 >На любую готов. Так и отвечаешь на вопрос о зарплате?
>>1630064 >Один раз попросили назвать примеры аннотаций. Сидя на стуле перед двумя ёблами я смог назвать только рестконтролёры, аутовайред очевидный, Data, но потом вспомнил, что это из ломбока и исправился на Ентити. "Ещё что?" Я хз, не помню, начал что-то про репозитории пытаться вспомнить, но там просто расширяет же. Короче про Service я не вспомнил. По мне так вполне нормальный ответ, если хотят услышать @Service - то пусть явно спрашивают как создать бин с помощью аннотаций.
>>1630081 Ты в курсе что Service, если мы оба про Service, который от Component, который MVC-шный, вообще НИЧЕГО не делает нового? Он просто имеет другой стринг в себе, разницы в @Component и @Service - 0
Помогите, а то я туплю и обмяк уже. У меня лист со стрингами, а стринги это названия городов. Проблема в том, что некоторые города имеет в себе апостроф ', а если value такого чара в стринге это '\'', а эта ебаная палка мне ломает кверю в SQLite, ибо выдаёт (near "k": syntax error). Как мне сделать так, чтобы жаба не всовывала эту хуйню, а содержала просто ' ? Я сейчас окончательно обмякну и пукнув сдоху, ибо заебался искать решение
>>1630269 >сам понял что делать пиши как решил. если ты задаёшь вопрос на ссаче, попутно понимая, как решить свою проблему, а потом съёбываешь в закат - это плевок в ебло всему почетному пр/ коммунити
Джависты и котлинисты, я вам тут интеллектуальную задачу принес.
В общем, нужно придумать альтернативу слову Util (MyClassUtil). Я знаю что не правильно и так нельзя, бла-бла-бла, но реально нужно иногда просто хелперы в кучу объединить и да, слово хелпер не предлагать Поехали..
>>1630342 С дата-классами (анемическая модель) будет пересекаться. User // дата-класс UserUtil Users // стиль как в java, но очень режет глаз с дата-классами
>>1630155 >Так и отвечаешь на вопрос о зарплате? Да, без задней мысли. Один хрен у всех начинающих плюс-минус одинаковые зарплаты. Больше я не стою. Или тут подвох какой-то, как в вопросах "кем вы видите себя через 10 лет?" >>1630258 Хз, что они хотели от меня услышать. Для себя решил, что почитаю поподробней про всю эту хуйню.
>>1629565 Спасибо за наводку. С некоторых в голос выдал, типа >Двухгодичная стажировка для студентов у Касперского. В КРОК попытался сделать тестовое. Заебись, так списки я ещё не крутил. Ещё и когда таймер в углу. Хз, как там вторую задачу решить, я тупой слишком. Брутфорсом не вышло, я пытался.
>>1630385 Двухгодичная это для тех кто вообще с полного нуля. Я так книгу по жабе читал и проект первый делал год с чем-то. Читал headfirst по 1 странице в 2-3 дня. Потом за неделю подготовился к интервью на стажировку, а попав туда дали проект игру на libgdx, где нужно было и сервер и аккаунты и анимацию и саму игру, там пришлось рвать жопу на спринтах и скрамах, но зато ебать поднялся в знаниях, потом устроился на 800 евро первую работу
>>1630329 MyRoutines? MiscRoutines? >не правильно и так нельзя А мне теперь за вот это поясните пожалуйста. В каждом проекте по классу есть со статическими методами-хелперами. У всех же есть методы которые ну некуда больше присунуть.
Привет, гайс. Вот я прочитал всю книгу Брюса Эккеля Философия Java(с кривым переводом) и учился по ней. А теперь куда дальше двигаться? Какие проекты можно делать с этими знаниями полученными из книги? Или без задней мысли стоит переходить на изучение андроида или спринга?
Вот предположим у меня есть несколько Closable объектов, соединения с бд, транзакции, во-втором и третьем треде I/O полным ходом. И в какой-то момент я вызову System.exit. Будет ли утечка памяти и какая? Я сам хз
>>1630457 Погуглив понял, что это вызовет освобождение всех ресурсов JVM и потому всё нормально. Разве что если там что-то намудрёное и таки что-то случиться, то это уже винда протекает
>>1630454 Я хз как вообще спринг учить. И зачем. В моём понимании это та штука, которая делает всё проще. Если что-то надо учить, чтобы сделать жизнь проще, то тут что-то не так. Со спрингом у меня всегда выходило просто. Как сделать мэни-ту-оне в гугле - ответ в двух строчках. Вот хз что тут учить. А в кишках этой хуйни копаться жизни не хватит.
>>1630457 >Будет ли утечка памяти и какая? Памяти - нет, т.к. память освободится вместе с процессом. Файлы и сокеты закроет ОС, но вот если было соединение с БД, то на стороне сервера сессия какое-то время будет жить и занимать ресурсы.
>>1630473 Делай свой интернет магазин с крудами и спрингом. Логин, пароль, сохранение в бд, возможность изменять заказ, JSON во все поля. Они любят давать тестовое в таком формате. Могу кинуть пример.
>>1630476 У меня есть работа, я все это и так каждый день вижу. К тому же такой простой проект вообще через Spring Roo делается. >>1630481 Она и так нормальная.
>>1630506 Ну хз, обычно вещи, которые должны упрощать что-то не требуют гайдов на 9000 страниц. Смску отправить не сложнее, чем голубя. Грубо говоря. Если ты в кишочки не лезешь конечно, и свою вышку строить для этого не придётся.
>>1630814 Только сейчас дошло. Ты создал класс FileWriter, свой собственный, создал его объект writer и теперь пытаешься вызвать методы, которые ты в своем классе не написал. У тебя и передача аргументов в конструктор подчеркнута. Либо переименуй свой класс (и файл, соответственно), либо, если ты пишешь в идее, то внимательнее смотри на пакет, в котором лежит класс, который ты вызываешь.
>>1630818 Получилось. То есть FileWriter это стандартный класс из библиотеки? Какой-то хреновый пример метанит выдал. Блин, почему вы такие умные, а я довн?
>>1630829 Ну .lang, .io и .util желательно знать хорошо. На Метаните много ошибок, но когда начинаешь копать, что не так, качаешь скилл. А вообще, спасибо тебе, анон. Ты немножечко укрепил мою веру в то, что я чему-то научился.
>>1630840 У меня было такое, что я написал свой класс Currency и каждый раз, когда создавал его объекты, внимательно следил, чтобы он не оказался из java.util.
>>1630847 Ну там, наверное, другие есть, которых нет в жабе. А вообще, кто в курсе, на Котлине сейчас можно делать все тоже самое, что и жабе или все таки есть какие-то фундаментальные ограничения? Когда-то давно читал, что у них нативных методов то ли нет, то ли очень мало.
>>1630883 >Рано мне в главу с файлами лезть. Лучше бы как раз научился файлики читать, будет на чём исключения обрабатывать. Покажи вообще, что там у тебя идея запускает, какая строчка в консоли
Пилю хуйню на спринге, круд обыкновенный по сохранению сущностей(задач), но вот это насторожило >параметр запуска ограничивающий количество незавершенных задач в списке, если достигнут, то задачу поставить нельзя Как бы хочется просто счётчик поставить, на отъебись. Но тут ведь по любому подвох какой-то?
>>1631005 инт каунт = число. При получении новой задачи буду проверять сколько несделанных в бд, если это число больше каунт, то задача отбрасывается, респонсэнтитит, бад реквес, хуё-моё. Ну это первое, что в голову пришло, идея хуёвая, сам понимаю, поэтому и решил спросить у кого-то ещё. Как нормальные люди это реализуют?
>>1630814 Нет бы узнать что там за ошибку выдает, половина анонов треде перебирает различные варианты синтаксического пиздеца, не относящиеся к проблеме.
>>1631021 Либо сделать maven-проект, тогда не надо весь путь указывать, потому что он в target будет рядом при компиляции, а текстовый файл засунуть в resources. Не юзаешь мавен - значит ты пидор!
>>1631224 Наверное для гибкости. Если каждый раз синхронизироваться на this, то методы класса, не зависящие друг от друга, будут зря друг друга ожидать. А при таком подходе как на пике можно легко добавить еще один виджет не зависящий от первого, со своим монитором, и лочиться уже параллельно с первым, а не последовательно при использовании всего одного монитора.
>>1631234 Да. Если функции класса (в общем смысле этого слова) независимы друг от друга, то каждая функция контролируется отдельным монитором (объекты-локи). А если весь класс выполняет что-то одно, т.е. у него одна функция (в общем смысле этого слова), и всё свое состояние он мониторит сразу, то тут удобно изпользовать всего один объект-монитор, либо объект-экземпляр класса, либо отдельный объект-лок.
Ради интереса открыл Collections.SynchronizedCollection (на нем основан, например, SynchronizedList): тут они используют все равно выделенный объект-лок, названный mutex, а не синхронизируются на this, что я в принципе поддерживаю.
>>1631239 Ох лол, а в конструкторе объекту-локу mutex присваивается this. Недосмотрел =) Видишь, эка гибкость. То есть по факту у них идет synchronized (this) {...} везде.
>>1631241 Хех, ясно. Ну, может, в данном случае тоже гибкости чуть больше, чем просто this из-за того, что там конструктор принимает какой-нибудь специфичный мьютекс, хотя фиг его знает.
>>1630918 Привет, анон. Специалист по гаданию на скриншотах в треде. Если ты еще не решил проблему, то давай разбираться. По картинке у тебя не совсем понятно что ты сделал.
Для начала скажу, что конфигурация запуска [1] показывает, что как минимум запускаешь ты все правильно, нужный класс и тд, а то некоторые в треде сомневались (и правильно делали). Далее, тебя просили показать как IDE запускает твой класс, т.е. развернуть командную строку. Это можно сделать, кликнув на [2], но я думаю нам это ничем не поможет.
Теперь ближе к сути. Откуда появляются файлы [3] именно в том месте в котором они сейчас лежат - сиблинги относительно класса ([6])? Ты их вручную создал? Потому что код, написанный в main(), такого не сделает. Файлы должны появляться в [5], в корне проекта. Я подвожу к очень важному моменту: файлы создаются самостоятельно, их не надо предварительно создавать руками, FileWriter способен сделать это сам. Т.е. ты удаляешь файлы [3], убеждаешься, что в [5] их тоже нет, запускаешь программу [1], и файл с именем [4] автоматически появляется в [5] (а не в [6]!).
Несколько замечаний по коду: 1) Использовать нужно try-with-resources конечно же. У тебя он изначально был (это конструкция try () {...}), но в процессе рефакторинга с анонами ты его потерял. Верни как было. И после этого close() можешь убрать (он вызовется автоматически т.к. AutoCloseable). 2) flush() можно не использовать при записи маленьких файлов, точнее файлов, которые ты очень скоро уже закроешь. При вызове close() флаш вызывается автоматически, данные не потеряются никогда. Ну конечно не "никогда", но это уже не связано с ручным вызовом flush(), так что смело удаляй. 3) Ошибки приятнее выводить в System.err, а не в System.out. Интерфейсы этих объектов полностью совпадают, просто замени три буквы и запомни: ошибки -> err.
PS: Если третий параграф не поможет тебе найти файл, в который осуществляется запись, то пиши, у меня уже готовы планы куда ковырять дальше. Но я предполагаю что это ты просто файл потерял.
Если на собесе на Джуна предлагают заняться олимпиадным программированием, о чем это говорит, чё они хотят? И надо ли стремиться к ним решая литкод, например? До этого изучал, совсем иное просто.
>>1631257 Тут у вас какой-то обмудок посты трёт, так что пока его ссаными тряпками не выгоните, я ливаю (и вам рекомендую). Двач превратился в форум нулевых, лол.
Всех приветствую. Я со студентами-джава[недо]программистами делаем одной командой проект - на базе Kurento API создаём разворачиваемое на отдельном сервере приложение для проведения онлайн видеоконференций. В рамках этого проекта потребовалось реализовать технологию WhiteBoard (белую {интерактивную} доску), чтобы участники конференции могли в режиме реального времени рисовать на доске и видеть нарисованное. Прошу что-нибудь посоветовать, какой-нибудь готовый проект на гитхабе где это реализовано, какую-нибудь технологию, в общем что-то, чтобы не создавать с нуля эту доску.
Есть jackson. Есть json с двумя уровнями вложенности. Дальше что?
Пробовал через mapper.readValue, выдавало кучу исключений. СО не осилил. Подскажете? Это всё тот же Анон, которому нужно хранить одно значение. БД отправляются в Вальгалу с каждым ребутом, а вариант с одним значением в файле начальство отвергло. Хоть и оправданно.
Что такое стажировка по java? Надо ли на нее идти? Или лучше пытаться сразу найти что-то полноценное? И после таких стажировок ведь отсеивают 99%, так ведь? И берут скорее всего не всех!?
>>1631962 Че хочешь сделать-то? Обычную десериализацию? Создаешь два класса, внешний и внутренний, во внешнем будет поле типа внутреннего класса. Дальше readValue, да. Два, три уровня вложенности - ничем в этом плане не отличаются от десериализации самого базового json вида {"hello":"world"}. Обвязка аннотациями не обязательна.
Поясните нахуя джуну в конторе со штатом в пару тыш человек нужно знание устного английского, а чтение/письменный даже не тестили обосрался на собосе с диким проебом по времени на курсы
>>1632371 нахуя мидлу устный англ он же разраб >с коллегами я в бульбостане, тут тарашкевицу знать надо >c заказчиками если я хотел бы общаться с заказчиками то пожалуй фрилансил бы, и нахуя тогда там работают было-манагеры?
>>1632537 >Теперь мне нужно их занести в jCombobox1. Как это реализовать? Именно так как ты и пишешь, методом addItem(). Что именно у тебя там не работает я угадать не могу. Собери маленький тестовый пикрил, потом увеличивай до своего исходного.
Котаны я разобрался. 1. У меня Combobox была декларирована как private поэтому я не мог из другого класса её вызывать. 2. Класс ктомуже откуда я её вызываю статический а Метод во Фрейме где лежит Сombobox не статический.
Вот теперь думаю как сделать это рабочим. А мне говорили Жаба лёгкая.
Гаес, вопрос по аннотациям. Решаю задачку, пишу типа фреймворк для тестирования, через аннотации и все такое. Хочу сделать так, чтоб в каждом классе можно было использовать только одну аннотацию @Before (ну и after тоже), как можно ограничить расстановку аннотаций? В таргете можно задать, например, что аннотацию можно ставить только на конструктор и т.д., а как бы количество на один класс ограничить?
Сап двач. Пытаюсь захуярить сервер GlassFish в IntelliJ IDEA. Не получается, происходит какая-то непонятная хуйня (см. скрин). Анон, помоги, прошу, очень прошу..
>>1633809 Но мне нужно ограничиться конкретным пакетом. Типа, протестировать все, что в com.example.ExampleTest, а не вообще все, что в com.example. Типа, разумеется, скорее всего аннотации висят только там, где и надо тестировать, но по условию задачи на вход идёт название пакета и я не должен трогать всего остального
>>1634179 Не надо ничего руками прописывать, ты же программируешь не для этого. У тебя "путь по-умолчанию" стоит - папка проекта, т.е. [5] как я на картинке выше писал. Путь по-умолчанию это пустой путь, т.е. "" (пустая строка). А часть пути от корня проекта до конкретной папки с классом можно получить из имени пакета, вот так: <ClassName>.class.getPackage().getName().replace('.', '\\') Только нужно помнить что это всё лежит в "src".
Получается итоговый вариант такой (относительный путь - "относительно" корня проекта): >String filename = "src\\" + WriterTest.class.getPackage().getName().replace('.', '\\') + "\\test.txt";
Если прям очень хочется получить именно абсолютный путь, от корня, то рекомендую java.nio.file.Paths: >String filename = Paths.get("") // получаем порень проекта > .resolve("src") // спускаемся на src > .resolve(WriterTest.class.getPackage().getName().replace('.', '\\')) // спускаемся на папку класса > .resolve("test.txt") // получаем файл > .toAbsolutePath() // конвертимся в абсолютный путь > .toString();
>>1634216 >>1634219 Чето ты совсем нулячий. Ну да ладно, все такими были.
>почему ретурн не дал выполнить блок трай? return ничего не дает выполнить, это выход из метода, а у тебя это метод main, так что return тут это полностью выход из программы. Поэтому после него ничего не выполнится.
>В книжке ретурн прописан Верю. Но в книжке же еще прописаны параметры запуска, ведь правда? Ведь ты не дословно скопировал сообщение, выдаваемое при ошибке, ты его переврал на свой лад как понял. То, что у тебя в коде звучит как "Использование файла .txt" в оригинале в книжке выглядит так: "Использование: ShowFile имя_файла". Это и есть параметры запуска. Эту твою програму надо запускать: "java <package.name>.ShowFile <filename>". А "if (args.length != 1)" как раз проверяет, передан ли программер ровно один параметр.
>>1634226 >java <package.name>.ShowFile <filename> Это запуск из командной строки, к такому ты еще возможно не готов. Идея тоже может запускать твою прогру с параметрами, вот так:
>>1634250 Наверное потому что передавать командные параметры в программу это к джаве напрямую не относится. В общем виде в любой операционке это: cmd arg1 arg2 arg3... В твоей книге это: CopyFile откуда куда
Почему у меня открывается старый файл при компиляции и выдается ошибка какая-то? >>1634247 Я и закомментить его пробовал, тогда ломается интерфейс. Поудалять всё нахуй или что? Идею перезапускал.
Всех приветствую. Я со студентами-джава[недо]программистами делаем одной командой проект - на базе Kurento API создаём разворачиваемое на отдельном сервере приложение для проведения онлайн видеоконференций. В рамках этого проекта потребовалось реализовать технологию WhiteBoard (белую {интерактивную} доску), чтобы участники конференции могли в режиме реального времени рисовать на доске и видеть нарисованное. Прошу, ЕСЛИ кто-то из присутствующих знает соответствующую js/java-штуковину, что-нибудь посоветовать, какой-нибудь готовый проект на гитхабе где это реализовано, какую-нибудь технологию, в общем что-то, чтобы не создавать с нуля эту доску.
Q: Поздно ли вкатываться в айти в 20/30/40/100 лет?
А: Нет, не поздно.
https://github.com/random76/Java-Thread/wiki
https://github.com/qqqlll/Java-Thread/wiki