Вы видите копию треда, сохраненную 2 февраля 2017 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Шапка: https://github.com/qqqlll/Java-Thread/wiki
Бля, хочу уже работать, но вакансий нет, че делать? На собес ни разу не ходил.
>903635 (OP)
>Бля, хочу уже работать, но вакансий нет, че делать? На собес ни разу не ходил.
Дс?
>А чем тебе JAX-WS не нравится?
Я так понял, что мне под каждый вызов придётся интерфейс писать, создавать инстанс и его уже дёргать. А надо-то всего лишь отправить имя команды на сервер и получить строку с ответом.
Хохлуша.
А английский ещё проще чем джава - сравни число джавистов и число говорящих по-английски.
А как все осиливают английский?
А какие могут быть вопросы по жаве? Она проста и логична
До ньюфагов наконец-то дошло, что надо учить JS (после проебанных рублей и времени на обучение и множества проваленных собеседований), анончикам-олдфагам, дорабатывающим последние годы мертвого языка что обсуждать? Ничего нового не выходит, о реакте и ангуляре сраться не надо - работать надо пару лет до пенсии.
Чисто из любопытства: сам ты на чем пишешь? Или ты из тех самых даунов, что попроходили кучу курсов по джаве, но слишком тупые, чтобы работать?
Разве джава мертва? Вроде на superjob и hh не намного меньше, а то и больше вакансий, чем на js
Работаю с Java шестой год, этом году направление закрывают и ухожу на пенсию - продукт переводят на NodeJS, т.к. проблемы с биг датой и производительностью.
Нулл вакансий на жабе, 5 вакансий на пхп. Даже по базам SQL есть вака. мухосрань 300к
> проблемы с биг датой и производительностью
>продукт переводят на NodeJS
Ты бы постеснялся такую хуйню писать
Ньюфаг.
Это была вся ИТ сфера. Я бы работал баристой, но не могу улыбаться успешноблядям и бери от жизни все, что пожелаешьблядкам.
Двухмерная топ-даун ММО песочница вроде зельды на геймбоях.
Как считаете, жава осилит, или лучше на плюсах?
Посоветуйте какой движок может? :3
> продукт на pure java
> имеет графический интерфейс
Го анимацию открытия модалки на ассемблере запилишь, я создал.
по крайней мере там проскакивает информация
>>904504
одно другому не мышает http://typeclassopedia.bitbucket.org
Спасибо за годноту!
Есть libGdx, но это не движок, а библиотека для кроссплатформенности и отрисовки.
Гугли Terasology. Хотя ясен хер, что волюметрик лайтинг и глобал илюминейшн, скрипты и крутая физика, тени сразу мимо.
runescape на джаве написан, что тебе мешает?
Сравни число джавистов и число знающих латынь
У него там LWJGL, OpenGL, 3D.
Мне бы просто тайлы двигать.
За ссыль спасибо, прошуршу его гитхабчик.
>по крайней мере там проскакивает информация
Просто в ява треде пишут в основном вкатывальщики. Вот и разбираем тут хеллоуворлды со спринг бутом который тред подряд.
Что не так, поясните? Ошибок не выскакивает, но пост не отправляется.
мимо-говнкодер-без-знаний
> зато сотрудники по-умнее будут
> по-умнее
Тебя не возьмут.
>>904785
Это и плюс сколько архитектурных слоев в приложении. Если не будет четкого быстрого ответа, то это означает, что
а) ты пидор
б) Хендлер экзекьютором через фасад погоняет и в процессе через аспекты поебывает твою мать в жопу, пока ты этого не видишь, а первым твоим заданием будет сделать круглое дилдо и чтобы дилдаки можно было менять не трогая лобок и не отходя от кассы. И никого не ебет, что ты ни слова не понял.
в) это древний монолит (вероятно с хуевой модульностью) и немногое количество человек ебет как же все это работает (если таковые вообще есть), и если ты боишься серьезной работы и авгиевого говнища, то пиздуй ты нахуй оттуда. Прямо в JS-тренд, азаза.
Ну еще за тестирование спроси, но тут все очевидно.
Так в /test/ капчи ж нет.
Неужели ты считаешь, что чем больше в твоем мнении говна, тем авторитетнее оно выглядит в глазах читателя? Мне жаль тебя, чувак.
Просто я глянул на это
https://github.com/anatoly-shamov/intern-dev-task/blob/master/src/main/java/dao/HibernateDao.java
и чуть не кончил, хочу так же
> 2017
> Hibernate
> кривая реализация абстрактного недокруда
> и чуть не кончил, хочу так же
Охуеть. И ладно бы еще от спринг даты охуевал, она все-таки доставляет для неискушенного реальной жизнью глаза, но это.
>>904910
> как сделать слой дао максимально гибким
Интерфейсы, спринг дата, хибернейт. Будет тебе "гибкость".
А до хорошего сам дойдешь. Может быть.
>>904922
Ну спринг дату видел, тип предоставляет дефолтную реализацию. Но ведь там ограничено количество методов, остальное придется самому дописывать, то есть большую часть.
> Ну спринг дату видел, тип предоставляет дефолтную реализацию.
Какую дефолтную реализацию? Реализацию чего? И чего дефолтного?
> там ограничено количество методов
И этому есть причина. Предоставляет быстрый инструмент для стартапчиков, позволяющий быстро дописать то, что немного сложнее круда.
> остальное придется самому дописывать
Это называется работа. Никто за тебя не напишет корректные джоины по индексам дохуилиона страниц с выборкой нужных колонок, агрегацией части данных, и оконной функцией в CTE и сортировкой получившегося резалт сета.
>>904926
Я считаю, что даже самый последний дурак, считающий, что станет программистом, способен использовать гугл и понять оттуда концепцию круда. Но ты ведь намного умнее указанного типажа? Тогда в чем проблема?
Ладно, спасибо за пояснения. Вот допустим я студентик, написал пару некрудов на гит. Что делать дальше, когда следует слать резюме ?
Шли резюме прямо в мы вам перезвоним тренд.
опыт программирования есть, но давно ленюсь и нихуя не делаю, решил вот не просирать жизнь и снова взяться за это дело.
C-блядок.
Не понял, это новый мем что Java ВСЁ? Еще в начале треда пишут об этом.
Так куда вкатываться то?
бамп вопросу
Нахуй мне JS блять? Что я на нем писать буду? для меня программирование в первую очередь это эксперименты и занятие для себя, а уж потом поиск работы ИРЛ.
На С я ковырял низкоуровненную хуету, Winapi и вот это все. На Java тоже найду что то интересное для саморазвития.
Что я на JS делать буду? стану веб макакой только потому что в твоем мухосранске на 5 ваканский больше?
иди нахуй
Когда-то и Си был первый в рейтинге, так и что?
Джава уже умирает, это давно стало очевидно. Прикладное программирование изжило себя, остался только энтерпрайз, но и он не будет долго жить
А на js по-твоему значит нельзя в винапи?
Потому что решетка это пиратская Java на волнах баттхерта мелкомягких. Если бы не юнити и гейдев, то был бы на уровне рубипидоров или даже хуже.
Жава и есть внезапно тырпрайз.
А отрицательный рейтинг - это падение не абсолютной доли, а относительной: новые языки растут, это не секрет.
В общем по всем аспектам жава пока впереди планеты всей: скорость, надежность, простота, эффективность, популярность, доступнось, открытость, масштабируемость, модифицируемость, и еще 100500 параметров.
Жава уступает только в одном сегменте - где низкий уровень, там до сих пор безальтернативен си, без крестов.
В остальных сценариях нет причин не пользоваться жавой, кроме долбоебизма головного мозга и тяги к сложностям на ровном месте.
Не верно. Прочитай за >2 недели хорстмана, нихуя не делай - тупо читай, потом хуярь чатик на NIO без либ (тогда и почитаешь Thinking in Java). После можешь накатить Efficient Java, если няшно-блядок, поймешь немного сути.
Потом в спринг вкатуйся.
Потому что это не описано в хорстмане, и мне кажется что это важно. Можешь сразу в спринг вкатываться, или в что тебе интересно.
NIO важная часть и ее нужно понять. Чатик - не что иное как самое простое клиент-серверное решение. Еще специальный протокол можешь придумать.
Что веб-серверы на жаве, что игрушки, все юзают NIO для работы с подключениями.
Да, NIO чатика должен быть неблокирующим. Это бля, весело.
Еще юнит-тестами все покрыть - в декомпозиции поупраэняться.
Можно ли сказать, что программирование в целом начинает умирать?
Куда можно перекотиться? Послашал этих 200к\сек из /Бе, проебал время только.
Начну я - weak ref/smart ref-ы. Трудно представить где это нужно, кроме самой VM, хотя примеры можно придумать с использованием каких-то особо толстых кэшей/IMDB.
Нет, нельзя. Все и так уже знают, что такое программирование, а гуглеж теперь идет на более специальные темы.
Ты их не видишь, потому что умные дяди уже все запихнули куда надо, а если ты начинаешь в них лезть:
1) Не лезь блядь дибил сука ибаный! Она тебя сожрет!
2) Ты уверен что это будет правильным решением, а не следствием кривой архитектуры?
3) Ну если ты знаешь, то ОК, тогда ты и сам большой дядя который может писать либы.
Мне пока нравится стиль Thinking in Java, так что продолжну читать. К тому же ничего делать и тупо читать я не могу.
В качестве примера уже указано заведомо некорректное решение задачи. Исправьте его.
public static boolean booleanExpression(boolean a, boolean b, boolean c, boolean d) {
return a & b & c & d;
}
Не смог справиться в своё время с этой задачкой, может кто-нибудь разжует?
Ты хуй? Насри себе в рот : поебись с конем.
Очевидно же что годнота для даунов, научат примитивам а дальше ебись сам.
я вот это проходить начал.
https://stepik.org/course/Java-Базовый-курс-187/syllabus
Если хочешь то закатывайся тоже, можем вместе тупить. Отпиши если хочешь вместе разбираться и решать задачи оттуда.
Не, такого еще не давали, никаких тернарных операторов. Тут надо булевой логикой разрулить, а не if'ами
Как знаешь, бро, но потом все равно придется навернуть фичи современной Java.
Да ты холдер в руках держал на 15мл? Иди блять с 7кой работай, баристой он, блядь, захотел побыть.
А тернарный оператор - это не булева логика?
Ну тогда
int sum = 0;
if (a) sum++;
if (b) sum++;
...
return sum == 2;
>if (a)
>if
>Тут надо булевой логикой разрулить, а не if'ами
Вот пример неправильного (наверное) ретерна из комментов, надо как-то так.
return (a&b)^(a&c)^(a&d)^(b&c)^(b&d)^(c&d);
> weak ref/smart ref
Первый раз о них услышал. Почитал статьи, пописал код, вспомнил недавний бузинес-кейс, где можно было софт рефы использовать, но посмотрел видео с медведем и успокоился.
Еее, молоко взболтни.
>А тернарный оператор - это не булева логика
Нет, тернарный оператор это сахар для if'a. Булева логика это множество значений {true, false} вместе с определёнными операциями &, |, ^, ! на нём.
Можно наверное так:
!((a ^ b ^ c ^ d) | (a & b & c & d) | (!a & !b & !c & !d)), но уже как-то не особо красиво. Надо подумать можно ли упростить.
Я просто оставлю это здесь:
> 10.5 Miscellaneous Practices
> 10.5.1 Parentheses
> It is generally a good idea to use parentheses liberally in expressions involving mixed operators to avoid operator precedence problems. Even if the operator precedence seems clear to you, it might not be to others-you shouldn't assume that other programmers know precedence as well as you do.
> if (a == b && c == d) // AVOID!
> if ((a == b) && (c == d)) // RIGHT
За подобную хуитку нужно безжалостно деклайнить пры.
И ВООБЩЕ СКОРО .NET CORE ВАШИ ЛИНУПСЫ ЗАВОЮЕТ
Да, это так.
>>905831
Разжуйте как вы дошли до этого? я вот только с подсказки понял про вот такой вот метод:
(a & b & !c & !d) ^ (a & !b & c & !d) ^ (a & !b & !c & d) ^ (!a & b & c & !d) ^ (!a & b & !c & d) ^ (!a & !b & c & d)
Но это полный кек очень втупую, а хочется понимания как это дело можно упрощать хотя бы до 3 скобок как у вас.
а что там тебе не понравилось?
вот это вот что ли:
>(!a & !b & !c & !d)
??
Предлагаешь ((!a) & (!b) & (!c) & (!d))
> (a & b & !c & !d) ^ (a & !b & c & !d) ^ (a & !b & !c & d) ^ (!a & b & c & !d) ^ (!a & b & !c & d) ^ (!a & !b & c & d)
Упростить.
create task "Упростить"
mark as Needs Work
Не совсем уловил твою мысль. Я выделил скобками подвыражения, где используются одни и те же операторы, т.е. у меня нет mixed operators в подвыражениях. Или ты хочешь чтобы я писал (((a ^ b) ^ c) ^ d)? Или наоборот, чтобы убрал скобки?
> а что там тебе не понравилось?
Да мне все там не понравилось от начала строчки до ее конца. Подобная задача - работа условных операторов, тернарников в частности, а не булевых операций с которыми по-прежнему однострочник и делающаяся работа читается как английский по белому, а не невразумительная последовательность булевых рун. Обязательность юнит-теста для такого условия я и не говорю.
Что с тернарником, что булевыми рунами один хуй зависимость от числа аргументов. Вот только с тернарником проще, короче и читаемее, а за вышеперечисленные разные варианты нужно руки отрывать.
Счас расскажу.
xor это как + по модулю 2.
a1 ^ a2 ^ ... ^ an = a1 + a2 + ... an mod 2 = 0 тогда и только тогда, когда среди "слагаемых" чётное число true/1, а всё остальное false/0.
По условию задачи у нас 4 переменных, !(a ^ b ^ c ^ d) выдаст true/1, когда среди них ниодного true, 2 true или 4 true. Чтобы исключить ноль и четыре true надо добавить условия:
!(a ^ b ^ c ^ d) & !(a & b & c & d) & !(!a & !b & !c & !d)
Выносим "не" за скобку по закону де Моргана и получаем ответ.
Ещё можно просто угадать, что тут как-то замешан xor. Построить таблицу истинности для a ^ b ^ c ^ d. И увидеть, что это false, тогда и только тогда, когда true в выражении чётное количество.
для справки https://en.wikipedia.org/wiki/Exclusive_or#Relation_to_modern_algebra
Если бы я увидел что-то вроде a ^ b ^ c ^ d в коде, мои крики "что за пидор это написал" слышали бы в соседнем здании точно.
return Stream.of(a,b,c,d).filter(b->b).count() == 2;
Бтв, про тернарные операторы в большинстве случаев такая же реакция. Видел у js коллег в коде что-то вроде: a ? b = c : null; Это вообще каким мудаком надо родиться, чтобы тернарный оператор использовать как обычный иф без элса?
Ну и может расскажу ещё что такое "по модулю 2".
Это типа как обычные числа 1, 2, 3, ... n, n + 1. Только они закольцованы. Выставляем n + 1 = 1 и гуляем по кругу. Если гулять по модулю 2 начиная с 0 будем идти так: 0, 0 + 1 = 1, 1 + 1 = 0 (по определению), 0 + 1 = 1. Получается 0, 1, 0, 1.
Можно по модулю 3 гулять: 0, 1, 2, 0, 1, 2 и т.п. Надеюсь суть ясна.
Задача скорее математическая, про булеву алгебру. Просто в контексте курса программирования. Булеву алгебру в отрыве от программирования немного покрутить полезно.
В каком её месте полезно курить? Чтобы потом такие дебильные задания для новичков пилить? Очень полезно. Дальше побитовых операций вообще ни разу не пригодилось.
>>905853
Проснись, ты обосрался. Иди круды писать. Гуляет он по модулю, блять.
Ясно, байтослесарь ебучий, иди пиши сайтики, хуйло. Вся суть явабомжей итт.
Два чая. Когда читал Java 8 in action - терял сознание от охуенности. Жаль, что на работе 7 jdk и обновление будет примерно никогда нескоро.
>>905744
Ненавижу задачи типа:
> ну короче реши такую задачу
> хм, но тем что вы дали решать глупо, давайте возьмём материал из след. уроков и решим им?
> ниииилзяяяя, решай так, ебись 3 дня, но реши!!!
ТЕТЯ СРАКА 60 ЛЕТ НАЗАД НАПИСАЛА НА ОТХОДНЯКАХ УЧЕБНУЮ ПРОГРАММУ И ДАЛА ЗАВЕТ УЧАЩИМСЯ УЧИТЬСЯ ПО НЕЙ - УЧИСЬ ПО НЕЙ! НЕ ХОЧУ! ХОЧУ УЧИТЬСЯ БЫСТРО, ЭФФЕКТИВНО И КАЧЕСТВЕННО! ГОВНО КАКОЕ-ТО, А НЕ УЧАЩИЕСЯ
System.out.println("Hello, today is :", new Date());
или
System.out.println("Hello, today is :"), new Date());
как сделать так чтоб работало в одном вызове System.out?
System.out.println("Today is : \n");
System.out.println(new Date());
В гугл читать про конкатенацию строк. Если хочешь через запятую аргументы - в гугл читать про форматирование строк.
ну и ладно
Потому что не запятая, а плюсь
Это где так?
О дженериках у Эккеля должно быть нормально написано.
У меня нет коллег фанатиков. И вообще я на ведре, а там все очень печально, даже MethodHandle не завезли. Насчет крутых фишек почитай JEPы Panama и Valhala. Ну и Graal
> как устроен хэшмап внутри
Ну это нормальный и абсолютно имеющий отношение к практической реальности вопрос.
Оптимизации сейчас уделяется очень мало внимания. Хуяк-хуяк и в продакшен. А в их случае это была трейлинговая платформа, поэтому для них было важно, что не такой частый случай.
Трейдинговая*
Типизация дженериков проверяется в компиляции. Это просто сахар, тут тебе не сисярп. В рантайме вообще никаких дженериков нет - вытерты type erasure в "ближайшие" типы. И если тебе в рантайме приспичит сделать каст в "дженерик", то рискуешь поймать ClassCastException. Ну и вообще каст к дженерику это костыль, говорящий о хуевой архитектуре.
> ?
> ?
Что заставляет людей нажимать лишний раз пробел перед вопросительным знаком?
Подскажите как вкатиться на джуна, и какой нжуен минимум знаний чтобы собеседование пройти.
Ты бы еще в кобол вкатился.
>Ну и вообще каст к дженерику это костыль, говорящий о хуевой архитектуре
ArrayList еще почему-то не сломался.
Спасибо, но почему они стирают типы на этапе компиляции, а не в рантайме(как в шарпе)?
Это зависит от твоей локации. В Киеве из 79 вакансий(на dou) только 27 мидловых. Никаких джунов естественно нет.
Они не стирают, их нет. А в шарпе про женерик тащится инфа, она не стирается.
Да, чувак, тащить проекты начинают после 5 лет, до этого учатся.
Какие аргументы можно предъявить? Начальство разумеется будет давить на "раз все работает то и нехуй менять".
Мне лично хочется чего-то нового, плюс я попробовал немного функциональные языки и хочется что-то из этого использовать и в джава-коде. Я при этом единственный разработчик серверной части, так что нет проблем в виде коллег которым будет влом вникать в стримы. Но поскольку это кровавый ынтырпрайз, у меня нет возможности стукнуть кулаком по столу и залить втихаря на прод 8 джаву самостоятельно.
Такая же проблема. На джаву 8 перейти вообще нереально в нашей компании, ну я и решил добавить Котлин в проект и переписать самый страшный код с анонимными классами в функциональном стиле. Так наши синьоры в лямбды же не могут - пришлось убрать библиотеку. Вывод для себя сделал, буду устраиваться на Scala-должность (пока экспериментировал с котлином, открыл для себя это чудо). Сейчас заканчиваю показательный проект и буду рассылать резюме.
Я легко могу представить эти многоэтажные лямбда-уродства от нюфажика. Так что думаю дело не в плохих сеньорах, а в том что одно говно привычное сменили на другое.
Почему обязательно многоэтажные? Хотя, при должном оформлении, они читаются все-равно гораздо легче.
Да.
Потому что упоминались анонимные классы, которые очевидно содержат не однострочные методы.
Ты синтаксис лямбд видел вообще?
list.forEach(a -> System.out.println("a=" + a));
Как раз все сделано для однострочности.
Перепиливания монолитного говна в монолитное модульное говно.
Алё, контекст обсуждения - рефакторинг анонимных классов в лямбды. Очевидно, методы анонимных классов не однострочные, вроде бы импликация здесь не сложна, нет?
Возможно возникло недопонимание, но с самого начала подразумевается преобразование таких конструкций
CollectionUtils.transform(collection, new Transformer() {
@Override
public Object transform(Element elem) {
return elem.getSomething();
}
});
в такие:
collection.map(_.getSomething)
Единичная подобная операция еще более-менее читаема в терминах анонимных классов, но если их несколько, то начинается сущий ад.
Вопрос простой: что с этим делать?
Разделять на множество классов, типа класс-селектор, класс-инсертер, класс-апдейтер?
И вдогонку. Что лучше: выделять по соединению к бд на каждое обращение к сервлету или создавать сессии и выделять по соединению на сессию? Или делать что-то еще?
>И вдогонку. Что лучше: выделять по соединению к бд на каждое обращение к сервлету или создавать сессии и выделять по соединению на сессию? Или делать что-то еще?
Берешь jdbc connection pool по вкусу и берешь из него соединения когда потребуются, только возвращать не забывай.
У этого класса должно быть всего 4 основных метода, по числу операций. Ну и пара вспомогательных для флагов.
> У этого класса должно быть всего 4 основных метода, по числу операций.
Оу бой, ю хев со мач ту лерн.
Тебе лично я разрешаю иметь один метод execute() и кучу билдеров (или даже один).
>сервлетах+jsp+jdbc
Замени на spring+jpa
>что с этим делать?
Разделить по доменным объектам. Как сказали выше, это будет DAO|Repository. Т.е. вместо одного супер-пупер-класса будет UserDAO, HuitaDAO, ZalupaDAO, например.
>Замени на spring+jpa
Планирую следующим шагом как раз этим заняться.
>Разделить по доменным объектам
Да, уже понял идею.
Спасибо.
Ноуп. Думаю такая ситуация много где есть. Ынтырпрайз очень медленно на новые технологии переползает. Сейчас еще и на 6 джаву можно много где напороться, а в клинических случаях древнего легаси - и даже на более старую.
Боженьки мои, да пусть лепят свои дао на хибернейтах. В конечном счете, есть узкие области где jooq не справляется.
Лол, сравнил лопату с трактором.
Можно только ради того чтобы ты успокоился и принес наконец двойную колу
>Анон, как убедить начальство перейти на 8 джаву?
Скажи что ты готов возместить весь материальный ущерб от возможных убытков по причине перехода на java8.
Обратная совместимость совместимостью, но у моего друга работавшего в люксофте проектик для карт нихуя не собирался на восьмерке, а было там говно мамонта, которое антом собирали.
Тому що это прекрасный триггер говнософта. Видел похожее у местечковой компании Диасофт. Амбициозные, но бездарные программисты лезут безосновательно в разработку системного уровня/подпрограммного обеспечения - класслоадеры, unsafe - вот это всё. И вполне обоснованно получают грабли на ровном месте.
Оно бы и на 7-ке не собралось вангую. На переходе от 6 к 7 всю совместимость поломали в криптографии, например (то есть в 6 там были пустые заглушки, лол)
ко ко ко
теперь во время компиляции зависимости нужны на класспасе все интерфейсы других зависимостей ололо.
мимо крокодил который два легаси перетаскивал с шестерки на восьмерку
Еще чего, буду я им там возмещать. Даже не говоря о том, что в любом серьезном ынтырпрайзе простой серверов в течение нескольких часов из-за сбоя может стоить столько денег, что ты даже своей жопой не расплатишься.
Нет, есть ли какие-то внятные аргументы в пользу перехода на более новые технологии?
Мигрировать-то все равно рано или поздно придется, когда старые версии перестанут поддерживаться и патчиться. Только тогда это будет намного больнее.
>Нет, есть ли какие-то внятные аргументы в пользу перехода на более новые технологии?
Ну, красота кода - к сожалению, не аргумент для бизнеса. Так что только более существенные вещи (безопасность, экономичность, зависимости: например некая библиотека для вебсокетов требует только 8-ку).
Если бэкграунд есть, то да.
Сам вкатился за полгода после двухтомничка Хорстамана. Но это было 5 лет назад.
Переходил с 6 на 7 и с 7 на 8 прописав java version в помничке. Учись, студент.
Ты конечно ловкий жучара, но только этот фокус прокатит, лишь если ты админ локалхоста.
public static boolean booleanExpression(boolean a, boolean b, boolean c, boolean d) {
int r =0;
If (a){r++;}
If (b){r++;}
If (c){r++;}
If (d){r++;}
If (r==2){return true;}
Else return false;
}
лучше сделай так:
int r = a+b+c+d;
Если java автоматически приводит тип bool в int: true в 1, а false в 0. Если нет, то приведи bool в int вручную.
20 минут ебли с булевой алгеброй и рисованием хуев логических вентилей и вот, что я получил
public static boolean booleanExpression(boolean a, boolean b, boolean c, boolean d) {
return ((a ^ b) ^ !c) ^ d;
}
мимо-906980
А потом обнаружил, что IDE не может найти JavaFX.
Он в OpenJDK отсутствует, надо отдельно качать? Или это вообще проблема не в JDK, а IDE шалит?
Хуйня какая-то. По смыслу задачи выражение должно быть симметричным.
У тебя же, если все аргументы - false, то результат тоже равен true.
Кек, году так в 2012 у опенждк6 были жуткие расхождения с официальным. Вплоть до того что там какие-то константы были по-другому названы (связанные с работой с файловой системой), мне приходилось переименовывать их каждый раз, когда я компилялся с разными SDK.
В серьезных компаниях накатыванием софта на продакшен сервера занимаются админы, только по запросу утвержденному у начальства. Повторюсь, незаметно это не сделать - у меня на продакшене вообще прав нет, только на запуск/остановку томката и доступ к его папкам logs, webapps и conf. Никакую джаву я там обновить не смогу.
Задача такая - нужен сервис для хранения mp3 который позволяет получить прямые ссылки на этот файл.
Ссылку буду использовать в своем бекенде.
Проблема в том еще, что мне нужно будет каждый день заливать новый файл и юзать прямую ссылку на него также
Как это все автоматизировать?
Или какой сервис позволяет использовать одну статическую ссылку, но менять файл который по ней лежит?
Свое решение пилить не очень хочеться
У меня есть бекенд, который на определенный ендпоинт возвращает JSON.
В этом JSON должна быть прямая ссылка на mp3 файл (для скачивания)
MP3 должны хранится на удобном сервисе, чтобы заливать новые каждый день, типа подкаст, новости
Мне нужно решение, какое позволит по одной ссылке получать каждый день тот новый подкаст
Ну или можно напиример не хранить старые подкасты, а просто на место старого новый заливать
Нужно использовать готовый сервис типа как SoundCloud (у него таких возможностей нету, или я тупой), или файлообменник какой
О, заебись, спасибо
Анон, эта хуйня не работает(
Мне нужна прямая ссылка, чтобы по ней сразу файл скачивался, а не открывалось окно для скачивания
Все ок, нашел как сделать такую ссылку
Ну ты даун, это тоже вопрос.
Заливаешь файл и хранишь в БД мета-инфу по файлу, его хэш и либо ссылку на файл в файловой системе, либо его блоб. Для скачивания либо по мета-инфе ищешь файл и получаешь его, либо передаешь его ID / хэш и по нему получаешь файл и ссылка всегда будет одинаковая.
> Свое решение пилить не очень хочеться
А нахуй ты тогда пришел сюда? То, что ты хочешь спокойно обеспечивается дропбоксом, яндекс диском, мегой и чем угодно - все умеют шарить файлы и иметь постоянные ссылки на них.
И много там такого?
> своего велосипедо-говна
Что мешает велосипедоговно вынести в отдельную библиотеку и обмазываться им сколько влезет, не объебываясь еще с коммитом своего говна в openjdk?
В каком суде? Компания написала говносипед и это ее говносипед, принадлежащий ей, и она может с ним делать все, что угодно - использовать, выкладывать на гитхаб или с помощью него проклинать Романа, Ирину, Татьяну на деньги отца-подлеца.
Зачем ей трахаться с запихиванием своего говносипеда в openjdk?
>все, что угодно
Вот это вот все будут делать с жопой компании в суде, когда она будет распространять своё приложение и зарабатывать на нем много денег, а ты иди проспись, чудесный.
Что ты несешь? Объясни нормально или пошел нахуй.
IBM скорее владелец openjdk, чем оракл.
https://meduza.io/games/bud-hakerom-igra-meduzy
Типа взлом телефона, где надо подобрать четыре символа.
В общем, так как идей у меня никогда нет, а программирование - небольшое хобби, я решил повторить алгоритм игры на Java.
http://pastebin.com/ZYZpKHFg
ГУЯ нет, просто написал, чтобы проверить механизм в консоли. Вроде работает, но некоторые моменты, я прям вижу, можно было бы сократить, особенно ветку if в checkPin.
Буду рад советам адекватных мастеров Явы
там где "обнуляю б" также обнуляю а. забыл сразу
И запихать в метод.
http://pastebin.com/d2q6gEQ9
Потому что maven был раньше.
> дрочат мейвен
Никто на него не дрочит. Его используют, те, кого он устраивает и не используют те, у кого нужно в процессе сборки выебать мать, заказать кофе и при этом не охуевать от времени процесса.
>gradle
Уже заценил статически-типизированные Kotlin DSL?
Мы кстати на Android юзаем его не по собственному желанию, но все равно рады.
Как-то оно не православно конечно, но я вхожу во вкус.
помогает когда надо показать кучу данных которые могут быть null или например надо нули заменять прочерки. Ифы увеличат текст в три раза без всякого смысла.
Пришлось заценить по одному проекту со DSL на груви. Скрипт - какая-то непонятная мешанина, из-за того, что что-то где-то можно опустить, а можно и не опускать, а еще вот этот оператор здесь действует вот так, а не так ...
Врапперы вообще в непонятки ввели - билд биндится на версию сборщика! Так гибко что пиздец.
Вобщем пока не вижу реальных причин уходить с мавена.
Удвоил.
Давеча понадобилось один академический проект причесать. Ничего особенного - зависимости, shadowJar, манифест со специальными полями, т/к компилируется агент для jvm. Сгенерировал .pom через IDE, местами отредактировав файл.
Взглянул, вздохнул, переписал .gradle аналог, хотя зарекался уже. И что же? .pom работает. Просто работает. Тогда как .gradle собрал какое-то говно. Ебал я эти buildscript выписывать.
>Почему все дрочат мейвен?
1) Легаси. Куча проектов на мавене, куча спецов его знают, куча всяких плагинов для него есть. Грейдл при этом не предлагает каких-то киллер фич ради которых стоило бы переносить существующий проект (к вопросу о "работает-не-трогай vs я-хочу-нового", который обсуждался выше про джаву 8).
2) У XML подхода есть один плюс. Чтобы распарсить xml тебе ничего не надо дополнительного, ты можешь легко вытащить из структуры pom нужные тебе метаданные о чем угодно - версиях, плагинах, зависимостях - и как-то поиспользовать их в своих кастомных сборочных скриптах и тулзах. У грейдла же скрипт сборки - это именно скрипт, который надо как-то суметь выполнить (ничего при этом реально не сделав) чтобы получить те же зависимости. Это может быть принципиально для проектов с какой-то нетривиальной сборкой.
А что не так с врапперами то? Этош гениально просто. Мое говно билдится идеально с нуля на чужих системах. А чтобы разобраться в скрипте и писать его надо два дня на чтение базовой документации. Груви вообще интуитивен, можно насколько я понимаю на джаве это все писать.
Помоему тут все дело только в лени, ибо надо же выучить еще чето, новые паттерны, структуры, апи. А времени и нервов грейдл потом сэкономит.
> А времени и нервов грейдл потом сэкономит
Часть проектов у меня на мавене, часть - на грейдле. Вот честно, не вижу никаких серьезных преимуществ у грейдла. Да, он хорош для тех кому не нравится XML, да скрипты у него менее избыточны и более короткие (добавление зависимости - одна строчка вместо 5-8 в xml). Но это в общем-то мелочь.
>А что не так с врапперами то? Этош гениально просто.
Это гениальный хардкод фактически. Я не спорю, хардкод почти всегда проще абстракции на момент написания, вот только ты же наверное не хардкодишь в обычном коде?
Гибкость и поддерживаемость этого решения планомерно идут в жопу
Хуйню несешь, хардкод у него блять. Не нравится, не юзай враппер, ставь второй грейдл и абстрагируйся.
Типа с мейвеном не юзают врапперы.
Да и какой нахуй хардкод? Ты можешь враппером изменить враппер, можешь при его наличии проигнорировать его. Че несет, вообще охуеть.
>
>public static boolean booleanExpression(boolean a, boolean b, boolean c, boolean d) {
>int r =0;
>If (a){r++;}
>If (b){r++;}
>If (c){r++;}
>If (d){r++;}
>If (r==2){return true;}
>Else return false;
> }
Это законно?
Ну компилятор сожрёт (если исправить большие буквы), но так-то это дичайший говнокод.
>Хуйню несешь, хардкод у него блять. Не нравится, не юзай враппер, ставь второй грейдл и абстрагируйся.
Зачем мне вообще юзать гредл? Чтобы быть типа "хиповым чуваком"?
>Типа с мейвеном не юзают врапперы.
Представь себе, блять...
>Ты можешь враппером изменить враппер
>Че несет, вообще охуеть.
согласен, какую только хуйню не придумают, только лишь бы юзать любимый гредл
>к вопросу о "работает-не-трогай vs я-хочу-нового", который обсуждался выше про джаву 8
А какие могут быть проблемы при повышении версии явы? Полтора года назад моя контора меняла и как то даже в памяти то событие не отложилось.
Можно в лоб:
e=(
(a&b)|(a&c)|(a&d)
)|(
(b&c)|(b&d)
)|(
(c&d)
)
Оно выдаст истину если есть как минимум 2 истины.
Осталось отсечь 3 и 4 истины:
f=(a&b&c&d)
g=((a&b&c)|(a&b&d)|(a&c&d)|(b&c&d))
И сложить:
return e&!f&!g
Ты дурак, потому что определили меня в фанаты грейдла зачемто. Я исполюзую спокойно все что надо. Просто смешно с уровня дискуссии. Удачи тебе.
А тебе мало или че?
Как минимум потребуются некоторые действия, которые в крупной бюрократизированной компании могут быть довольно значительными (всякая деловая переписка по этому вопросу займет в разы больше времени чем собственно накатывание обновления).
В итоге два варианта - ничего не делать и что-то делать. Очевидно что для варианта "что-то делать" нужно какое-то обоснование пользы. Иначе можно рабочее время сотрудников потратить с большой пользой и направить на решение реальных задач.
Философия норм, после плюсов хорошо идет.
Есть тут кто-то к с ним работал? Опишите пожалуйста своими словами максимально подробно что это.
Говно.
Я не хотел бы с кем-то порешать задачи,в данный момент смотрю geekbrains java 1 решал задачки и на джавараш и на степике
Я хотел бы с кем-то порешать задачи,опечатался.
>
Схерали это говнокод, вась? Это может быть как раз и не элитный код, но это как раз то что ты хочешь видеть в своем проекте, что бы за 2 секунды без документации понять что если в функцию передали 2 тру аргумента, то она вернет тру. И ВСЁ.
Куда хуже увидеть в проекте вот это:
return (a & b & !c & !d) ^ (a & !b & c & !d) ^ (a & !b & !c & d) ^ (!a & b & c & !d) ^ (!a & b & !c & d) ^ (!a & !b & c & d);
>тред Senior Java Developers
Синьёры, какие вам вопросы задавали на собеседованиях по стеку жабки и вообще?
Там выше нормальное решение на стримах показали, практически в одну строку, но читаемое. Если бы 8-ки не было, я бы замутил с предикатами что-то похожее.
А можно в жаве картинку конвертнуть в webp или видео без нативных либ? Или интерфейс нетормозящий нарисовать? Не сказал бы что это низкоуровневое программирование, но в джаве этого нет.
так короче и читабельнее
Горшочек не вари
В нетти до сих пор не могу разобраться с тем, как мне извлекать канал каждого юзера, для управления за пределами хандлера
Молодец. Теперь напиши большой развернутый комментарий, что делает эта строчка и можно на кодревью отправлять.
http://ideone.com/RpRfdh
Интерфейс можно, не знаю как ты сделал тормозящий. А конвертации всякие всегда в нативе делали, это довольно ресурсоемкая задача и делать ее со сборкой мусора, ну как-то тупо.
Почаны, через неделю собеседование в epam, накидайте материала, чтобы подготовиться
все в шапке же, что тебе еще надо?
пиздаболы тут одни
а не синеры
http://stackoverflow.com/questions/41574097/xmlelement-is-null-when-it-has-no-namespace
>>909453
То было на jdk1.8. На 1.7 тоже null, но лечится @XmlElement(name = "item", namespace = "http://jabber.org/protocol/muc#user").
Мамкину щель юзай. азазазаз
LWJGL
хз какой у тебя уровень. Если засыпаешь - это не твое, я вообще по тех докам учился, если сухо юзай лубрикант.
http://forcoder.ru/java/java-programming-1169
Уровень мой, думаю средний, опыта работы в конторах нет, знаю базу Java SE по хорстману, писал приложения со свингом, фх и ваадином. Сейчас на работу вроде берут, но надо бы java ee подтянуть еще на теоретическом уровне
Юзать стрингбуффер, найти самый длинный токенайзер и делать проходы со свапами, пока самое длинное слово не окажется последним?
А если так например? а там массив в строку перекинуть как надо
Да и токенайзер ж устаревший класс, который не рекомендуется юзать в новых проектах
Схоронил
Простейший вариант: простой символьный автомат + сортировка вставкой.
Я тебя не понял. Тебе надо отсортировать их с сохранением пустых мест? Или просто достать и отсортировать? Ну тогда вот этот вариант норм >>909889
А если оставить пробелы, то тогда чуть сложней, можно заменить все слова на %s (записать это в template) и потом выдать String.format(template, sortedWords);
Вот что это за маразм. Есть ли какая-нибудь хитрая придумка на это?
Есть дифференциация.
Ты о чем вообще? Ничего не понял
Вот в Java 8 в интерфейсах появились default-методы и, собственно, вопрос: "Чем теперь интерфейсы отличаются от абстрактных классов?". Вот раньше я бы сказал, что в абстрактных классах можно создать реализацию некоторых методов, а в интерфейсе - нельзя. Но теперь реализация есть и там и там. Нахуя это сделано? Например, мне создать фичу, у которой некоторые методы реализованы, а некоторые должны реализовывать конкретные потомки. Чем я в данном случае должен руководствоваться чтобы решить что мне использовать: интерфейс или абстрактный класс?
Так же как и раньше руководствуйся. Поля реализаций через дефолт метод ты все равно изменять не можешь. Назначение у нового интерфейса осталось тем же по сути, а новые методы по умолчанию, как я понимаю, можно использовать для внесения нового функционала в интерфейс, без перепила всей существующей программы
Хм... Если честно, я думал, что тут дело в обходе запрета на множественное наследование, типа теперь можно "заимплементить" кучу интерфейсов с этими default-методами, чтобы затем пользоваться всеми их методами. Но чёто я прозевал тот факт, что эти default-методы не могут изменять состояние объекта.
Спасибо, анончик, за ответ.
Джаварашному хуесосу, не способному нагуглить про Formatter и printf, здесь не место.
Иди сайты-визитки на PHP верстать, это твой максимум.
Абстрактные кассы
> Но чёто я прозевал тот факт, что эти default-методы не могут изменять состояние объекта.
Могут.
public interface I { default int m(int x) { return - x; } }
public class C implements I {
private int n;
private C() { n = 0; }
@Override
public int m(int x) { n = ~x; return n; }
public static void main(String[] args) { System.out.println(new C().m(12)); }
}
О чем ты? Состояние изменяет твой переопределенный метод.
> Нахуя это сделано?
Для обратной совместимости.
> обходе запрета на множественное наследование
Ошибка компиляции.
> Чем я в данном случае должен руководствоваться чтобы решить что мне использовать: интерфейс или абстрактный класс?
Тебе нужен контракт по API и полиморфизм - интерфейс и реализации. Тебе нужно наследование часть общей функциональности - абстрактный класс. Тебе нужен контракт по API и базовый абстрактный класс - интерфейс, базовый абстрактный класс и реализации.
У тебя есть интерфейс, куча реализаций и тебе приспичило допилить общую функциональность и ты не хочешь менять много лет работающий код и менять иерархию наследования - костыль дефолтного метода. Только смотри, чтобы костыли не обезумели и возможно разумнее просто рефакторинг с вынесением общего функционала в предка.
javax.sound
как в JPA замапить объект, поля у которого получаются из кучи разных таблиц с применением DISTINCT, SUM, PARTITION BY и тому подобного.
В идеале нужно чтобы объект получался из запроса
Сделай вьюшку с нужными полями и замапь
Есть приложение, которое использует бд. Доступ к ней происходит через JPA реализация - eclipse link . Вопрос: как написать тесты к этому делу?
Создавать отдельную бд (и конфигурациию для работы с ней), запускать её во время тестирования (локально и на ci-сервере)?
Молча
На сколько я знаю дял таких целей исполюзуют маленькие инстансы h2 чтоли, они живут в оперативке прямо и умирают по завершению теста.
Есть два стула - либо мокать все что не относится непосредственно к проверяемому коду. То есть у тебя есть какой-то класс для доступа к БД с методами типа getUserByLogin(). И ты просто в тесте этот метод мокаешь, и реальная бд тебе не нужна. Это скорее для юнит-тестов.
Второй подход - скорее для интеграционных, тут ты наоборот стремишься воспроизвести максимально окружение приложения. Так что да, заводишь H2 базу в памяти вместо настоящей БД, и работаешь с ней.
Сложнее если у тебя используются какие-то нетривиальные фичи твоей БД (например ты вручную пишешь запросы на ее родном диалекте SQL). В таком случае только мокать или поднимать реальную БД. Но с реальной БД тестить вообще плохо - это медленно, ненадежно, требует чтобы эта бд была доступна. Таких тестов должно быть меньшинство.
Что именно ты имеешь ввиду?
К примеру, Spring transactional interceptor откатывает текущую транзакцию, если метод в транзакции кинул какой-то exception.
Например, если на rs вызвать next(), в случае когда туда ничего не вернуло, то это означает, что такого пользователя нет например. Со спрингом еще не знаком просто. Задание написать все чисто на сервлетах.
В коде лучше отдавать Optional и уже там кидать exception. А если на уровне REST сервиса, то отдавать клиенту 404 или 410 ошибку.
Ну я просто получал исключение в дао и пробрасывал в сервис слой. Если тут не выкидывать, то тогда в сервисе придется как-то проверять, а при большом количестве данных это не лучший вариант на мой взгляд.
Optional самый лучший вариант. А твоя проблема - это не такая уж исключительная ситуация.
Окей, а можно еще вопрос. Например есть класс получаемый синглтоном. Статический метод этого класса потокобезопасен? Там просто проверяются входные параметры регуляркой или лучше это остовлять в теле класса?
> Статический метод этого класса потокобезопасен?
Ну если этот метод не обращается к полям или другому общему состоянию, то да.
> Там просто проверяются входные параметры регуляркой или лучше это остовлять в теле класса?
Если можешь это переиспользовать в другом месте, то лучше вытащить в отдельный класс типа StringUtils. А если нет, то оставь.
http://eta-lang.org/
> v0.0.5
> Frege не взлетел
> Даже Scala не так уж популярна
> Да и сам Haskell и другие млоиды не оче
Вангую, из-за рынка труда в Индии и кое-каких трендов, мировое число разрабов на этой эте превысит мировое число разрабов на расте.
Скриньте.
Конечно, конечно. Шанс переписать браузер или переписать postgresql.
И оригинальный Haskell под JVM делали. Только не в коня корм, жабокодеру в жизни не осилить монадки. Сложна, насяльника, нипонятна!
Хаскель - простой и понятный язык для нормальных людей вроде физиков и математиков, отчищенный от байтосодомии и делающий специально выведенных компьютерных опущенцев-программистов ненужными. Да, вы не ослышались. После того, как этот язык для нормальных людей получит распространение, байтоспарта закаленных еблей в жопу архитектурой фон Неймана и еблей в рот аппликативным порядком боевых пидарасов-программистов потеряет всякий смысл. Что останется делать после этого жалким недочеловекам, у которых пять лет в шараге вымывали из мозгов все человеческое? Остается только прерывание своего жалкого существования.
Да, байтобляди были актуальны пару-тройку десятков лет назад, когда кроме этого пресловутого отлизывания регистров и микросхем не было способов заставить машину быстро решать задачу. Но теперь-то в нашем распоряжении оптимизирующие компиляторы, многоядерные процессоры с параллелизацией, которые производительнее машин 20-летней давности в сотни тысяч раз. Жаль, что программирование было поглощено стереотипным быдлом, не могущим в думать, и способным работать лишь по зазубренной инструкции, написанной кровью и потом сотен павших хомячков-байтоебов до него. Настоящее, полноценное программирование, благодаря подобным обмудкам, мало теперь где востребовано. Хотя там где оно востребовано, можно кататься как в масле сыр и получать в три раза больше не то что сеньора-байтоеба, а ебаного заместителя директора быдлоконторы в которой этот байтоеб работает. С другой стороны это и хорошо - в космическую промышленность, Data mining и прочие сложные и непосильные для императивных байтохомячков сферы попадает лишь элита.
А придется.
> Сложнее если у тебя используются какие-то нетривиальные фичи твоей БД (например ты вручную пишешь запросы на ее родном диалекте SQL). В таком случае только мокать или поднимать реальную БД. Но с реальной БД тестить вообще плохо - это медленно, ненадежно, требует чтобы эта бд была доступна. Таких тестов должно быть меньшинство.
Не соглашусь. Это позволяет писать наиболее приближенные к реальности интеграционные тесты, целиком тестирующие функционал в почти боевых условиях. Но тогда придется для сервисов также писать генератор тестовых данных, который создает и удаляет данные после каждого теста.
А то, что медленнее юнит-тестов, ну да. Интеграционные тесты как правило на стендах и прогоняются.
> Spring transactional interceptor откатывает текущую транзакцию, если метод в транзакции кинул какой-то exception.
По-умолчанию только Runtime exception, это важно.
Поддвачну.
Пишу на scala и play и нихуя почти не мокаю. Честно запущенный аппликейшн, есть реальная тестовая база (Postgres), поднятая локально и на серваке, почти все манипуляции с данными через АПИ.
Тесты прогоняются минут 20, но, как результат, багов на бекенде почти нет.
У меня уже есть SQL запрос, только как с него замапить объект? Уникальных полей нет.
В душе не ебу, в какие игрушки ты там играешься, но было бы интересно посмотреть как ты выкрутишься, когда тебе надо будет писать систему платежей или управление группировкой спутников.
Очень даже горячо.
>жабокодеру в жизни не осилить монадки
Я попробовал вкатиться в хаскелль, после освоения базового синтаксиса решил для начала сделать несколько алгоритмов на графах, которыми тогда занимался на основной работе. Сразу же выяснилось что я не могу задать граф как структуру вида "у ноды есть ребра, а у ребра есть начальная и конечная нода", так как Алгебраические Типы Данных, на которые все в функциональном мире себе шишки стирают, плохо подходят для задания цикличных структур. Дерево задать - пожалуйста, а граф с циклами - уже пердолинг пошел с какими-то тонкостями. В общем после этого я к хаскелю охладел.
>>911122
Ну это вы такие молодцы, но ИРЛ часто получается так, что как только твои тесты начинают требовать внешнее окружение (настоящие БД или сторонние сервисы), то их начинают лениться запускать. Ведь это так лениво - поднимать БД, убеждаться что в ней все как надо лежит и т.п.
В итоге тесты перестают запускать. А даже самый лучший тест бесполезен если его не запускают.
Такие интеграционные тесты должны быть, да, но их должно быть меньшинство, а большая часть кода должна быть покрыта простыми тестами, не требующими сложного окружения, которые можно в один клик запустить.
Шта? Современные хипстеры поднимают минисервер на докере/вагранте и не имеют проблем с окружением.
Я тоже на работке поставил в итоге Oracle в вагрант, потому что охуел от установки этого поделия.
Именно поэтому я и написал про интеграционные тесты на стендах.
> то их начинают лениться запускать
Это проблемы разработчиков.
А для всего остального есть CI. Каждый коммит в PR - мерж с форком девелопа, тест сборки и прогон юнит-тестов. Если неуспешно - PR не пройдет ревью. Каждая сборка триггерит интеграционные тесты. Список провалившихся тестов на почту и таски на исправление.
Если разработчику нужно вручную протестировать определенный функционал - запускает необходимые интеграционные тесты локально.
Последняя строчка ничего.
Я даже не знаю, вот сходу https://wiki.haskell.org/The_Monad.Reader/Issue5/Practical_Graph_Handling чем плохо?
Или скажем, что за алгоритмы, которых нет в Hackage?
Пояснил тебе.
int a
int b
int s
double sum = a*b/s
Будет ли формула работать на объектах класса?
уволился с охраны пятерочки, в понедельник денюжку заберу
В гугл задавай довн.
Смотри, мне необходимо иметь список подключенных пользователей, одновременно с тем, прогоняя их по buisseness logic, но вот я не могу понять, как получить сокет клиента(Чтобы сразу ему отправить ответ) из-за пределов Handler'a
Собирай их в какую-нибудь коллекцию при обработке события в хендлере и потом используй как хочешь.
https://gist.github.com/anonymous/304e23ca5d7106eadc6cec56a96c44a2
Вот к примеру дефолтный код, как мне в нём, учитывая, что сам сервер запускается из другого класса, собирать каналы в коллекцию
>Вот к примеру дефолтный код, как мне в нём, учитывая, что сам сервер запускается из другого класса, собирать каналы в коллекцию
например http://stackoverflow.com/questions/10372801/netty-how-to-get-all-client-channel - первый ответ
quicksort [] = []
quicksort (x:xs) = quicksort left ++ [x] ++ quicksort right
where left = [ y | y <- xs, y < x ]
right = [ y | y <- xs, y >= x ]
>x:xs
>x as a pivot
Минуточку, а если массив уже отсортирован в обратном порядке? Тогда квадратичная сложность?
Во всех рандомизирванных реализациях quicksort асимптотическая сложность - n2
Падажжи, но в данном случае лучше брать рандомный х, не?
Альзо, так-то все выглядит заебись, но и императивщина не сильно хуже выглядит!
Но вот хотелось бы посмотреть на 3-way quicksort и прочие оптимизации.
>асимптотическая сложность
И какая вероятность, что она будет квадратичной при обычной императивной реализации? А при вот этой вот реализации?
у идеи бесплатная 30дневка есть
На домашнем пк поднимай пока не станет нужно показывать посторонним людям.
Код то у тебя нормальный, а ты задумывался что если в код придётся вносить изменения? Сколько твой код проживёт месяц? Два? Потом на него обязательно начнут сыпаться кейсы и тут оп, приехали. Запомни Dont Repeat Youself. Встречай модульно-ориентированый гибкий код построеный на принципах DI, IoC и AOP. Использованы паттерны, которые уберегут тебя от постоянного переписования кода, и боже упаси копипаста. Осталось написать несколько интеграционных тестов, подключить 60 зависимостей с помощью gradle или maven(если ты новичек) и развернуть всё это дело на контейнер, а вообще переходи на Spring, там вообще код можно не изменять, всё делается само в рантайме. Надеюсь что помог.
А ты веселый, взял бы у тебя в рот.
> для нормальных людей вроде физиков и математиков
То-то физики и математики пишут такой код, на который без слез не взглянешь.
Кстати о CI. Появились ли что-то лучше, чем Jenkins? (бесплатное и self-hosted) А то он вызывает у меня уныние.
Вроде есть Teamcity для мелких комманд
А в чем уныние вообще то?
Я давно Jenkins юзаю только для переодического запуска моего build.sh (который запускает gradle с нужной логикой сборки).
Сам build.sh лежит в сорцах вместе с gradle.build файлами.
>Или скажем, что за алгоритмы, которых нет в Hackage?
Да дело не в самих алгоритмах (я-то хотел какую-нибудь простуй дейкстру сперва написать), а в том что я взял первую попавшуюся задачу и внезапно выяснил что язык не дает мне ее реализовать тем способом, которым я ее решал во всех других языках.
Да, можно хранить граф в виде матрицы смежности - но это довольно ограниченное представление которое подходит только для маленьких плотных графов. Да, можно представить граф иначе, хранить в ребрах не сами ноды а только их ид в каком-нибудь словаре. В таком случае тип данных получается не цикличным и его можно легко задать (в твоей ссылке вроде так и делается). Но блядь, какого хуя? Почему я должен добавлять лишние индиректы, структуры данных и потенциальное место для ошибок? Потому что язык не позволяет просто реализовать простейшую концепцию? Ну и нахуй его тогда.
>Чтобы в idea с ней работать нужна торрент версия.
Не обязательно. Можно и в коммьюнити работать. Ну не будут у тебя автоматически контексты подхватываться и некоторые фичи работать, похуй.
> Как лучше играться с сервером? Запускать где то в облаке или на домашнем поднимать
Начни с домашнего. Скачай томкат какой-нибудь, разархивируй, запусти startup.bat / sh - вот тебе и вебсервер котовый, знай только war файлы подкидывай.
Если хочешь в облаке - погляди Heroku например, у них есть бесплатный хобби-план. Сам его использую, зависимость есть.
> посоветуйте какой Пет проект пытаться мутить
Тут тебе совета никто не даст. Пет-проект должен быть интересен (и в идеале - полезен) лично для тебя. Ну реши что тебе надо, какого софта тебе не хватает. От банального какого-нибудь TODO-списка или трекера времени до каких-нибудь вычислений или автоматизации по твоей основной профессии.
Я вот например как-то ради интереса написал программу которая вычисляет взаимные долги в компании людей. Ну типа собрались побухать, вася купил бухла на 300, петя закуси на 200, а саша привел блядей за 1000. Вопрос: кто кому и сколько должен денег передать, чтобы в итоге поровну все расходы на всех участников поделились.
Да, такие софтины и так есть, но я вот написал свою лично для себя. В итоге мотивация была - так как мне реально надо было часто такие расчеты проводить.
- мало возможностей по сборке бранчей
- неверсионированный скрипт сборки
- глючный как хуй знает что (устанваливаешь плагин, всё перестаёт работать)
Опиши подробнее, какие объекты тебе нужны? Какой у них класс, зачем им цикл? Впринципе тебе никто не мешает создать через конструктор:
List<Cococo> list;
while(1){
Cococo cudax = new Coocarecoo(i);
list.add(cudax);
}
В итоге получаешь список объектов созданых через цикл.
Документная NoSQL база, типа Lotus Notes, но с веб-интерфейсом, чтобы клиенты могли работать через браузер. Можно MongoDB взять в качестве движка. Сам такое писал, но забросил.
Ну например мне просто нужно сделать N объектов класса с разными данными и именами
Возьми и протестируй оба варианта.
СОрян,данные одинаковые, но с разными значеними
Есть два стула: рефлексия и кодогенрерация. Куда сам сядешь, куда мать посадишь?
с разными именами? В цикле единственная вещь которая будет разной каждую итерацию это переменная i и исходя из этого предположу что ты хочешь создать объекты с именами например Dog1, Dog2, Dog3? Анон, у тебя недостаток в проектировании задачи, тот же порядок можно обеспечить аррейлистом. В нём будет коллекция твоих объектов и у каждого будет свой порядковый номер - его индекс в аррейлисте. Ну я почему-то уверен на 99,9% что твоя задача не требует того решения что ты придумал. Энивей нельзя, рефлексия и кодогенерация как написали выше.
Вот например протестировать такой метод надо
http://pastebin.com/U1870kfH
Не майся хуйнёй, раньше люди байт-код забивали прямо в регистры, который писали в тетради и это были ОПЕРАЦИОННЫЕ СИСТЕМЫ без всяких юнит тестов. А ты ебучего эмплоера не можешь нормально извлечь из бд, что там может пойти не так с твоим jdbc, ты просто в головое представь что делают твои три строчки и что они не делают.
Ебать лапша. Причеши сам код сначала а потом уже тесты пиши. Выше обсуждалось, используй in memory database
>>912242
А ты иди нахуй, быдлокодер сраный.
Проиграл с идиота который не может написать мок и ищет примеры на стековерфлоу (видимо венец карьеры). Называет других быдлокодерами. Найс.
Что за проекции, Ванга? Иди нахуй, блядь бестестовая.
А в массовой продаже уже доступны процессоры, которые могут выполнять байт-код джавы?
Да, как минимум у STMicroelectronics есть серия J с поддержкой Jazelle
https://en.wikipedia.org/wiki/Jazelle
>писали в тетради и это были ОПЕРАЦИОННЫЕ СИСТЕМЫ
А что за операционные системы на джаве, запускающиеся на Jazelle DBX? И нахуя там что-то в тетрадку записывать? Это про какие года вообще речь?
Сорри, никогда про такие ОС не слышал, возможно, сильно отстал от жизни, поэтому и спрашиваю.
Ну-ка, примерчик RTOS на Java. И где там сразу в регистры сохраняли из тетрадки?
Ты шизик какой-то, все с тобой ясно.
О, на ZX Spectrum в детстве таким занимался. Там был учебник (по встроенному Бейсику), где в конце давалась таблица кодов от 0 до 255: десятичное число, HEX число, ASCII символ и код операции процессора Z80. До сих пор помню, что 201 - это RET.
Ну не в регистры наверно все же, а в память.
Что за задача? Может, просто поместить эти объекты в Map, разные имена соответственно будут разными ключами?
И в каком это байт-код, даун?
В lisp-треде.
Немного переделать метод:
public static boolean booleanExpression(int n, Boolean ... bools){
return Stream.of(bools).filter(Function.identity()).count() == n;
}
Работает с любым числом входящих булеанов, количество необходимых верных передать первым параметром.
А то, блядь, ебаные школьники булевой алгебры наворотили сюда.
Код должен быть читабельный, а куча логических операций никогда не читабельной.
Учитесь, сынки.
Лал. У них хотя бы код рабочий, в отличии от...
Новичок в бэкенде, пишу веб-сервис. Использую Spring Boot, для управления сессиями пользователей использую Rufus. Вопрос: в каждой сессии для каждого пользователя мне надо хранить какую-то индивидуальную информацию о сессии (несколько простых объектов). Как в Spring Boot сделать доступ к этой информации в зависимости от сессии делающего реквест пользователя? Самый тупой вариант, который я сейчас вижу: ебануть тупо синхронизированный Map с ключом-именем сессии, но это очевидно хуёвое решение (проблемы со скоростью, сложное изменение кода, проблема с добавлением-удалением сессий). Как вообще на серверсайде происходит доступ к такой индивидуальной информации? Почитал интернеты, чего-либо внятного не нашёл.
БД не предлагать, потому что пока что я храню информацию, которую можно потерять при рестарте сервера. Кроме того, как я понимаю, точки взаимодействия с БД будут там же, где и в моём текущем задании.
Возьми Spring Securty (и Spring Session - напиши обертку. В Spring Security используется threadLocal поле для хранения сессии.
Значит, копать в сторону Spring Security? Да, я читал про него немного, но мне показалось, что это именно для разграничения доступа к веб-страницам, а не внутренним объектам. Пойду почитаю ещё.
Не слушай поехавшего.
Мне теперь перед каждым постом весь тред читать?
public static boolean booleanExpression(int necessaryTrues, Boolean... booleans) {
if (booleans == null || necessaryTrues < booleans.length) {
throw new IllegalArgumentException();
}
return Stream.of(booleans)
.filter(Boolean::booleanValue)
.count() == necessaryTrues;
}
Чутка переписал, теперь пиздато и как надо.
Братишка! Братишка! Как поспал, братишка? Покодить захотел, наверное? Я тебе свободную IDE принес.
К такому тексту больше лого jetbrains подойдет.
Понимаешь, я не хочу на этапе изучения языка, изучать разные idea. Я пользователь джавасраша, сказали поставить идею и дали плагин под него. Я послушно повинуюсь. В современном мире мультивыбора самое сложное что то выбирать
ответственность и внимательность
1-2 года опыта разработки на Java
базовые понимания ООП, алгоритмов и структур данных
желание развиваться как Java-разработчик и как аналитик
Мне интересно эйчар в логику написанного умеет? То есть за 1-2 года разработки на java обрести базовые понимания? Какую часть можно зачеркнуть? Про 1-2 года или про базовые понимания? Вакансия Джуна.
По студаку дают лицензию на год.
Сука, с таким подходом ты не нужен. Джавист должен уметь быстро вкатываться на любую иде/фреймворк. Алсо сам начинал с эклипса, сейчас идеей пользуюсь, брат жив. Учись давай.
Вам шашечки или ехать?
За 1-2 года разработки ты разве не будешь знать ооп? Они пишут не очевидные вещи. А ты тупой хуисос.
Тоупои хуисос.
class ClassName {
private String[][] board;
void Maze() {
board = new String[5][5];
}
void addLine(String line) {
board[1][1] = "abc";
}
}
Да, и плодить на каждый кейс исключение. Потом сигнатуры методов обрастают исключениями, после чего вообще нихуя нельзя понять, что там внутри происходит.
throw new MamkuTvojuEbalException();
Создай String[][] board, заебал уже тупить.
Братишка, у тебя class называется ClassName а не Board. Ты даже один небольшой кусок кода без ошибок написать целиком не можешь.
Где у тебя класс board?
Я у своей жены завтраки не покупаю. Как копить то? )
public class Solution
{
public static void main(String[] args) throws Exception
{
for (int i=1;i<10;i++) {
if (int a=1;a>i;a++)
{
System.out.print(8);
else
System.out.println(" ");
}
}
Что не так? Уже переправлял 100 раз код, не пойму что не так
Условия так не записываются вроде, разбирай так чтобы самому было понятно что происходит, а то в условие конструкцию цикла вставил.
Блин, вот я как раз их и переставлял по 100 раз, бесят эти скобочки пздц
Ну все читай ты уже джун на две штуки баксов. Так держать.
Это говно уже умерло.
Достаточно Sublime и IDEA Community для редкого дебаггинга легаси (в нормальном коде есть тесты и дебаггинг нуден ещё реже).
Однако мы заказали несколько штук Ultimate для фишек подключения к БД и удобной работы с Cucumber и ёбаным Хибернейтом.
лучше не просто не написать 100 строк, а выкунить впизду тысячу-другую. Время на разбирание в подобной хуеплетии на начальных этапах требуется. Потом освоишься будет легче. Главное - не пытайся сделать что-то архитектурно проще или стройнее - соснешь хуйца.
>не пытайся сделать что-то архитектурно проще или стройнее пока нет опыта
Наверное лучше так, иначе совсем пиздей какой-то получается, а не совет.
Почему не стоит пытаться делать проще ? Алсо, компания молодая и львиная доля кода написана студентами, алсо тестов не пишут, а проверяют все ручками.
> Я тебе свободную IDE принес.
Ну что ананасики, ждете новый eclipse на JavaScript?
http://jug.ru/2017/01/eclipse-two/
>>913254
>>913269
А где можно проверить джун ты или мидл? У них зарплаты различаются, не знаю какую просить.
У них есть IDE для PHP бесплатная:
https://eclipse.org/downloads/packages/eclipse-php-developers/neon2
А пидорахи зажали.
Программиста ответ
ЕйчАры же не погромисты, что ты от них хочешь. Главное придумай 3 своих плохих качества и где ты видешь себя через 5 лет
Ты написал какую-то ссаную хуйню
Ни разу не адекватный и не мастер, но
Во-первых, нахрен ты так номера генеришь в самом начале? У тебя массив numbers используется во всём коде один раз - чтобы узнать размер этого массива.
Делай сразу
public int getTen()
{final static int TEN = 10; return TEN;}
Во-вторых
(tryFindPin[0]==pin||tryFindPin[1]==pin||tryFindPin[2]==pin||tryFindPin[3]==pin)
это что такое? вложить ещё один массив никак?
Камераден, помогите с запуском программы на Java. Поставил JDK 8, прописал все пути. Скачал нужный мне модуль JAR и файл с программной для него на java. Сделал директорию classes
По инструкции, они запускаются так:
javac.exe -cp mymodule.jar -d classes SimpleApp.java
После нормального выполнения в консоли печается результат. Но у меня выдается, что невозможно найти пакет com.moduleXXX. Но этот пакет же находится в архиве mymodule.jar.
В чём причина ?
UPD
сделал -verbose. Пишет
...
[parsing SimpleApp.java]
[search path for source files: mymodule.jar]
[search path for class files: и начинает перебирать поддиректории в \program files\Java\JDK]
пробовал также при запуске javac указывать полные пути и к файлу .JAR, и к файлу .JAVA
с полными путями тоже пробовал
UPD2
в [search path for class files: мой JAR-модуль перечисляется в конце, но дальше идёт
[loading ZipFileIndexFileObject[C:\Program Files\Java\jdk1.8.0_121\lib\ct.sym(META-INF/sym/rt.jar/java/io/File.class)]]
и
SimpleApp.java : 4 : Error package com.moduleXXX doest not exist.
Почему, ведь компилятор увидел архив Jar ?
Почему ZipFileIndexFileObject берёт какой-то архив в директории Java, а не мой модуль ?
Вы видите копию треда, сохраненную 2 февраля 2017 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.