Перейти к содержанию

Поиск сообщества

Показаны результаты для тегов 'java'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип контента


Форумы

  • Основной
    • Новости и Информация
  • Lineage II
    • Java платформа
    • PTS
    • Клиент игры
  • Торговый раздел
    • Товары
    • Услуги
    • Работа
    • Покупка
    • Рынок игровых аккаунтов и предметов
    • Арбитраж
  • Разное
    • Творчество
    • Новости игровой индустрии
    • Hi-Tech
    • Общение на любую тему
    • Работа с ОС
    • Программирование
  • Другие игры
  • Раздел "Разработчиков"
  • Архив
  • Обсуждения
  • Web Dev Обсуждения
  • Web Dev Stress Web 13
  • Web Dev Разное
  • Web Dev JavaScript
  • SmartGuard Информация
  • SmartGuard Вопросы пользователей
  • unfuckable const Add
  • Client-DevModding Гайды(Мануалы)
  • Client-DevModding Флудильня
  • Client-DevModding Помощь
  • L2j Development Темы
  • Lineage II High Five-5 Нужна Помощь
  • Lineage II High Five-5 Вопросы и их решение
  • Lineage II High Five-5 Исходники и сборки
  • Lineage II High Five-5 Мануалы
  • Lineage II High Five-5 Ваши Предложения
  • Linux Sysadmin's Статьи
  • Linux Sysadmin's Услуги
  • Linux Sysadmin's Вопросы
  • AlpineWeb | Студия частного Веб дизайнера Магазин Дизайнов
  • Client mods: Exclusive modifications Примеры
  • Client mods: Exclusive modifications Unique client modifications

Категории

  • Lineage II
    • Сборки
    • Исходники серверов
    • Серверные дополнения
    • Клиентские дополнения
    • Web составляющие
    • Патчи для клиента
    • Прочее
  • Web графика
    • Дизайны (PSD)
    • Скрипты\движки
    • Прочая графика
  • World of Warcraft
  • RF Online
  • Counter-Strike
    • Сборки
    • Моды
    • Плагины
    • Скрипты
    • Софт
    • WEB
    • Прочее
  • Rust
  • Другое
  • Web Dev Файлы
  • Steve — Dogs Family Файлы от Steve-Dogs Family
  • Client-DevModding Файлы
  • L2j Development Файлы
  • Lineage II High Five-5 Файлы
  • Client mods: Exclusive modifications FREE
  • Client mods: Exclusive modifications SOFTWARE
  • RUSaCis Файлы
  • RUSaCis Файлы

Product Groups

  • Подписки
  • Реклама

Категории

  • Lineage 2
    • Java сервер
    • Работа с клиентом
    • Web для сервера
  • Counter-Strike
  • World of Warcraft
  • RF Online
  • Dota 2
    • Dedicated сервер
    • Web часть
    • Работа с клиентом
  • Rust
  • Творчество
  • Работа с OS
    • *nix
    • Windows
  • Web Dev тест
  • Web Dev Инструкции
  • Steve — Dogs Family Мануалы от [Steve-Dogs.Ru]
  • Client-DevModding Инструкции
  • L2j Development Инструкции
  • Lineage II High Five-5 Инструкции

Поиск результатов в...

Поиск результатов, которые...


Дата создания

  • Начало

    Конец


Дата обновления

  • Начало

    Конец


Фильтр по количеству...

Регистрация

  • Начало

    Конец


Группа


Skype


Сайт


ICQ


Вконтакте


Facebook


Jabber


Город


Интересы

Найдено: 77 результатов

  1. Сборка - Люцера 3. По мере производства, так сказать, буду надеяться на помощь со стороны, да бы не дергать по мелочам разработчика. И так, первая проблема: Как сделать: 1. mpConsume - % от общего количества, к примеру -50% 2. запрет на вынос скилла на панель скиллов, использовать только с alt+k
  2. Добрый день ув. разработчики и другие все ) у кого есть бесплатная готовая сборка Lineage Interlude X100 без привязки и лицензии ну чтоб ограничение не было ?
  3. L2J-Mobius is a server emulator fully written in Java released under GPLV3 Classic 2.0 SAVIORS l2jMobius 4577- сборка сервера классической версии всем нам известной lineage 2. Как запустить и что делать я думаю объяснять не нужно! Необходим 10 jdk! VirusTotal Скачать сборку [CLASSIC 2.0] L2jMOBIUS_SAVIORS_4577(28/11/2018) Все вопросы "Не работает", "Сборка г***но" итп. не ко мне, есть официальный сайт/форум (подписка) заходим и читаем!
  4. Demoncool

    [ L2jWoD ] Скрипты

    В этом теме будут публиковаться основные скрипты.
  5. Rollfer

    Наполню ваш форум

    Наполню ваш форум по 2 рубля за сообщение. В долг не наполняю, за обещания тоже. Связь через форум, либо скайп: aftersshok
  6. Всем привет. Хочу реализовать следующий скрипт: Игроки бьют моба в инвуле, через 100 ударов, шанст что убьют 1%, через 150- 2% и так далее. Все написал, застрял только на одном, как сделать проверку на количество ударов. Сделал через шанс, но моб может и с первого удара упасть. Предполагаю что должно быть так: if (Проверка на количество ударов > 100) { if (CHANCE[0] > Rnd.get(1, 100)) { npc.doDie(attacker); } } else if (Проверка на количество ударов > 150) { if (CHANCE[1] > Rnd.get(1, 100)) { npc.doDie(attacker); } } Подскажите пожалуйста какая должна быть проверка.
  7. Здравствуйте, активно развивающийся RVR проект на базе L2 ищет в команду Java-программиста на ставку в 120.000-150.000 рублей! Несколько слов о проекте: - проект в формате RVR- война рас - сборка написана с 0, 28 протокол - написан на Java - Проект разрабатывается более года, возникла необходимость взять еще одного кодера в команду. То есть, работа с нами будет стабильной и на длительный срок Что мы можем предложить? - ЗП от 120.000 до 150.000 рублей в месяц. - Полный рабочий день, детально решим конкретно с кандидатом. - Регулярные выплаты ЗП, перрспективу длительного сотрудничества. - Дружелюбный коллектив - Работу по ТЗ Что ожидаем мы от кандидата? - Большой опыт работы, в том числе с L2 проектами. - Готовность и способность качественно реализовывать трудные задачи. - Возможность голосового общения. В 2018 году не трудно купить микрафон Мы готовы рассмотреть ваши встречные условия работы и возможно достигнем взаимопонимания. Анкеты отправляйте личным сообщением.
  8. isysyura

    Карта Interlude (java)

    При создании карты обнаружил "блуждающего" рб - Discarded Guardian. Для определения координат беру x-y c таблицы raidboss_spawnlist, а именно: loc_x = 48000 ; loc_y=243378, и попадаю по понятным причинам на место http://prntscr.com/jz9n3k Непонятно только, почему с использованием координаты loc_z=-6611 я попадаю на http://prntscr.com/jz9j2m , то есть его реальное место пребывания. Хотя на "поверхности" его координаты уже будут приближены к loc_х=-111195 , loc_у=233004 Если подземелье физически перенесено на "пустую" область карты, тогда вопрос - это только Elven Ruins ? К примеру рб с кат не улетают в пустоту. Или есть и другие подобные приколы, которые я ещё не обнаружил? В принципе, если это только с одним рб такая штука, не проблема сделать для него исключение. Но хотелось бы понять причину происходящего. И что-то мне подсказывает что проблема не в сборке l2jlovely, у кого есть Lucera 3 или pain-team проверьте пожалуйста какие там координаты данного рб. Спасибо.
  9. AlexZr

    09-02-2018 L2J-DEV.RU

    коректировка штмл квеста _002_WhatWomenWant Фикс ссылок, добавил птс диалоги Допил фикса для всех статуй по квесту 178 Переведены все телепорты локации и территории городов Добавил точки телепорта каты и некрополи фикс лага при атаке Верный итем в q340 из сундука html-ru квестов (116,154,164,229,333,341,432) на футболе вместо анчера вешается рут фикс квеста _128_PailakaSongofIceandFire (после завершения выдаем 2 лв виталити) фикс квеста _415_PathToOrcMonk (дроп итемов идет только с начальным оружием расы) фикс логики в квесте _337_AudienceWithLandDragon Глобал обновление: Перевод миньенов на приватесов удаление експ даты и спавна, перевод в один правки по суперпоинту перевод нпс магазина в ДП(нпс) + HikariCP фикс бага когда ХП ниже 0 обновлен спавн ХБ порядок вывода сообщений при входе(тест РПГ) Добавлены новые параметры, верный парс дропа и прочих параметров physical_avoid_modify physical_hit_modify коректировка квест _337_AudienceWithLandDragon онлайн отображение реков(от админов) Исправленный квадрат фринты переделан конфиг на лвл мобов, теперь формат (id,level;id1,level и так далее)возможно лучше будет сделать по диапазону Вернул оружие у нпс в парсе. Добавлен птс диалог Нпс в пайлаке 129 квест птс диалоги 129 пайлака
  10. Добрый день, куплю acis 374 исходник. Писать в личные сообщения.
  11. Добрый день, куплю acis 374 исходник. Писать в личные сообщения.
  12. Добрый день, уважаемые форумчане, столкнулся с проблемой реализации выдачи бонусов за голосование, пользуюсь сборкой L2jFrozen, настроил конфиг "/gameserver/config/powerpak/powerpak.properties" следующим образом: L2TopDeamonEnabled = True L2TopDeamonPollInterval = 5 - проверку указал L2TopDeamonURL = http://l2top.ru/editServ/?adminAct=lastVotes&uid=30660&key=bb78bc3184090b565daea0913d0a71ab - скрипт последних 500 голосовавших. L2TopDeamonPrefix = server - префикс L2TopDeamonRewardItem = 6673 - ид предмета L2TopDeamonMin = 1 - минимальное количество L2TopDeamonMax = 1 - максимальное количество L2TopDeamonMessage = оставил пустым L2TopDeamonDoNotRewardAtFirstTime = False - выдача бонусов игрокам которые первый раз голосуют в топе(выключил) Первый запрос конфига (включен): # Do you want enable powerpack? PowerPakEnabled = True И не могу понять почему при голосование не начисляются бонусы игроку, возможно кто сталкивался, и знает как реализовать? Благодарю за внимание.
  13. Доброго времени суток, столкнулся с проблемой в работе Java, при запуске ОС(работаю на Windows Server 2012 R2 x64), не запускается Java Machine, при попытке запустить в ручную по пути /bin/java.exe , выбрасывает консоль, но нечего не происходит, иконку java в панель не выводит, переустанавливал как через онлайн установщик, так же через офлайн разрядность х86_x64, ранее работала, но сегодня при перезагрузке сервера, что то пошло не так, и данный софт перестал функционировать, не могу понять в чем проблема, подскажите пожалуйста что делать? Заранее благодарю. P.S: "Проблема связана с запуском Login Server, вот лог ошибки " 2017.11.30 22:04:52,986 SEVERE 1 com.l2jfrozen.loginserver.L2LoginServer FATAL: Failed to start the Game Server Listener. Reason: Cannot assign requested address: JVM_Bind ""
  14. 21 сентября вышел очередной релиз платформы Java SE. С выхода предыдущего релиза Java SE 8 прошло три с половиной года. Самым главным глобальным нововведением является Java Platform Module System — поддержка концепции модулей на уровне языка и JVM. Теперь сама стандартная библиотека JDK разбита на модули, а Java-разработчики имеют возможность создавать собственные модули, определять зависимости между ними, а также управлять видимостью пакетов в модуле для других модулей. Подробнее про систему модулей Java 9 можно прочитать в книге Java 9 Modularity. Другие важные нововведения: Команда jshell — функциональность REPL (read-eval-print loop) для платформы Java. Multi-Release JAR Files — возможность объединять в одном JAR-файле разные версии классов и ресурсов для разных версий Java. jlink — инструмент для создания собственных сборок JRE под конкретную программу, включающих только нужные для запуска модули. Браузерный плагин Java Plug-in и технология апплетов теперь помечены как устаревшие. Де факто апплеты уже не поддерживаются в современных браузерах. Небольшие изменения в синтаксисе языка Java; например, в интерфейсах теперь поддерживаются private-методы. Новый API для управления процессами (ProcessHandle). Новый API для прохода по стеку вызовов (StackWalker). Различные мелкие улучшения стандартной библиотеки, например, синтаксис для создания неизменяемых коллекций (List.of, Set.of, Map.of) и новые методы в API Stream и CompletableFuture. Новые возможности ECMAScript 6 (let, const, for..of и т. д.) в JavaScript-интерпретаторе Nashorn, а также новый API для синтаксического анализа JavaScript (Parser). Поддержка HiDPI для приложений AWT и Swing под Windows и Linux. Поддержка GTK3 как альтернативы GTK2 для создания окон AWT, Swing и JavaFX под Linux. По умолчанию используется GTK2, либо, если он недоступен, GTK3. Список изменений Скачать
  15. Eanseen

    Lineage 2 Bugs

    Идея написать свой простенький багтрекер появилась довольно давно, т.к. существующие решения не всегда отвечают поставленным задачам, взять например продвинутые версии такие как redmine или trac, все хорошо, куча различных опций, статусов проекта, можно кому то конкретному назначить, но для простого игрока это сложно, рядовой игрок не хочет разбираться в этом всем, он хочет отписать об ошибке и дальше играть в любимую игру, терпения на эти системы хватает у единиц, большинство только от вида этих систем убегает в ужасе. Можно сделать привычными средствами форума, 5-7 разделов на каждую группу ошибок, игрокам это тоже привычнее, но данный подход превращает жизнь разработчика в сущий ад, т.к. игрок считает что если он написал пост в стиле "админ пофикси целесту", то все, админы призовут на помощь потомков ванги и проблема будет решена, так же часто бывают ситуации когда на одну и туже проблему создается по 3-5 тем и тут уже разработчик видя 30 страниц ошибок убегает в ужасе Так вот в чем же преимущества новой системы: При создании заявки игроку предлагается выбрать тип проблемы, далее в зависимости от выбора откроется нужная форма с нужной логикой, например игрок хочет описать ошибку по умению, первое это название самого умения, используется "умный поиск", ввести "левое" называние не получиться, только из списка Далее игроку нужно заполнить 3 формы: Как работает сейчас, Как должно работать и Ссылки на офф. источники, данный подход мотивирует людей писать адекватные репорты, проверено не один раз Система автоматически по названию проблемы группирует их, исходя из этого можно понятно что исправлять в первую очередь, ведь согласитесь 10 жалоб на какое-то умение важнее 1 жалобы на богом забытый квест в богом забытой локации на 23м уровне Таблица в Панели Управления умеет сортировать данные по столбцам с использованием jQuery, без перезагрузок страницы Система написана с использованием технологии Spring Framework, и запускается в пару кликов Было принято решение перевести данный продукт в Open Source, ссылка на GitHub https://github.com/Eanseen7/Lineage-2-Bugs P.s. На полноценный продукт данный web пока еще не претендует, просьба строго не судить, скорее наброски и пример использования технологии Spring
  16. Eanseen

    Lineage 2 CMS

    Истоки нашей CMS идут из 2015 года, именно в этом году, была выпущена наша первая CMS Рынок требовал удобный, качественный и самое главное безопасный продукт, коих на рынке тогда не было. Со временем функционал нашей CMS модернизировался и развивался, благодаря технологии Spring Framework Но все же, в процессе тестов CMS с использованием технологии Spring Framework зарекомендовала себя очень хорошо, и было принято решение заняться новой версией с учетом полученного опыта и отзывов. А теперь поговорим о новой версии: Лучшая безопасность, исключены любые "дырки", которыми славятся PHP разработки Поддержка шаблонов Колесо Удачи reCAPTCHA Поддержка Email уведомлений Неограниченное кол-во логин и game серверов, платформа позволяет работает не только с проектами Lineage 2, но и с любыми Java серверами Никаких SQL запросов, обмен информацией осуществляется по протоколу XMLRPC, легко интегрируется в любую сборку У каждого пользователя в личном кабинете имеется свой удобный склад и история операций с предметами Поощрение за голосование в MMOTOP Добавление новостей и статических страниц Вывод тем с форума Поддержка UnitPay Продукт постоянно дорабатывается Было принято решение перевести данный продукт в Open Source, ссылка на GitHub https://github.com/Eanseen7/Lineage-2-CMS
  17. Многим специалистам не редко приходится сталкиваться с задачей воссоздания исходного кода того или иного Java-приложения, и тут приходится задуматься, какой же декомпилятор лучше выбрать, как сэкономить время и максимально эффективно выполнить поставленную задачу. В этой статье мы рассмотрим основные популярные декомпиляторы Java приложений. Java Decompiler Видимо, самый популярный декомпилятор Java. Сам он предоставляет консольный интерфейс, уже давно не поддерживается и не обновляется, но все же многие графические инструменты, работающие с данным декомпилятором, до сих пор делают его используемым в случае необходимости декомпиляции небольших Java-классов. Mocha Является одним из первых выпущенных Java декомпиляторов. Как и JavaDecompiler, Mochaпредоставляет консольный интерфейс, последний релиз состоялся аж в 1996 г. DJ Java Decompiler Долгое время использовался лишь в качестве графической оболочки Java Decompiler для более быстрой и удобной выборки аргументов командной строки для вызова JAD. Однако в текущей версии наблюдается поддержка аннотаций. Fernflower Наверно один из лучших декомпиляторов Java-приложений на текущий момент. В последней версии включена поддержка параметрических типов, аннотаций, утверждений, перечисляемых типов, также действительно грамотно декомпилирует байт-код, полученный из-за известных багов компиляторов. JD-Core Высоко функциональная библиотека для декомпиляции байт-кода Java, разработка которой велась в рамках «Java Decompiler project». Написана полностью на C++ (необычайно быстра), не требует специальной установки, корректно выполняет свою непосредственную задачу, правда распространяется данный декомпилятор как часть приложения JD-GUI, что не дает возможности ее разработки в стороннем проекте. Подводя итоги, можно лишь сказать, что выбор все же остается за программистом, так что решать, на каком декомпиляторе остановиться, только вам. Сам я пользуюсь Fernflower, который присутствует у нас на форуме в разделе "Файлы". Возможно у вас есть свои предложения по поводу декомпиляторов? Ссылка на оригинал Дополнительно: BytecodeViewer Procyon
  18. Привет Forummaxi! Хочу поделиться с вами одним инструментом, который помогает делать меньше ошибок в коде и реже гуглить по вопросам разработки. О чем это ты? Программируете на Java? Codota поможет вам в этом! Этот помощник разработан, чтобы помочь вам писать код, не проверяя лишний раз документацию. Codota понимает код и предлагает вам правильные решение в нужное время. Означает ли это, что однажды роботы возьмут на себя наши рабочие места разработчиков? Возможно. Но пока еще нет. Кодить это сложно. Такие сервисы, как StackOverflow или GitHub, безусловно, помогают нам в этом. Теперь у Java-разработчиков есть еще один альтернативный вариант: ИИ-помощник Codota. Лично я всегда хотел получить помощь искусственного интеллекта при разработке. Codota учится на существующем коде, чтобы помочь вам быстрее и умнее строить программное обеспечение. Он работает с любой IDE, которую вы используете, и использует свои изученные модели кода, чтобы предложить наилучший вариант. Как это работает? По словам создателей этого сервиса, Codota создает прогностические модели кода, которые предполагают доработку кода и связанный контент на основе текущего контекста, присутствующего в вашей среде IDE. Программа сочетает в себе методы анализа программ, обработки естественного языка и машинного обучения для изучения кода. Затем он предоставляет результаты различных моделей для любой заданной задачи. Если вы установили Codota, появляется окно, связанное с вашей IDE. Поэтому, когда вы выбираете переменную, тип или метод, Codota дает примеры кода, основываясь на том, что вы уже написали. Можно назвать хорошей гадалкой по фрагментам кода. Так, а это точно ИИ? Ну, по словам Марселя Бруха, Codota оценивает и сортируют примеры кода по релевантности. В настоящее время, Codota ограничена Java, т.к. прежде сервис должен начать понимать язык, который анализирует. Давай теперь про минусы Конечно, есть некоторые рамки. Codota еще не знает сути кода. В качестве примера вам часто будет предоставлен кусок кода какого-то другого программиста из мира сего. Очевидно, это означает, что нет гарантии на всегда красивый и чистый код. Но поскольку база знаний Codota основывается на таких сервисах, как GitHub, BitBucket и StackOverflow, то каждый день ИИ становится лучше. Codota работает на Linux, Windows и MacOS. Программа работает с Eclipse, IntelliJ и Android Studio. Также, есть довольно интересное промо-видео, в котором подробно показано, как это работает. Ссылка на оригинал
  19. В данной заметке я хочу показать каким образом можно определять и устранять утечки памяти в Java на примере из моей повседневной работы. Мы не будем здесь рассматривать возможные причины появления утечек, об этом будет отдельная статья, так как тема достаточно обширная. Стоит заметить, что речь пойдет о диагностике именно Heap Memory, об утечках в других областях памяти будет отдельная статья. Инструменты Для успешной диагностики нам понадобятся два инструмента: Java Mission Control (jmc) и Eclipse Memory Analyzer. Вобщем-то можно обойтись только Memory Analyzer, но с JMC картина будет более полной. JMC входит в состав JDK (начиная с 1.7) Memory Analyzer может быть загружен отсюда: MAT Анализ использования памяти Прежде всего, нужно запустить приложение со следующими флагами JVM: -XX:+UnlockCommercialFeatures -XX:+FlightRecorder Не используйте эти опции на production системе без приобретения специальной лицензии Oracle! Эти опции позволят запустить Flight Recorder – утилита, которая поможет собрать информацию об использовании памяти (и много другой важной информации) во время выполнения программы. Я не буду описывать здесь как запустить Flight Recorder, эта информация легко гуглится. В моем случае было достаточно запустить FR на 10-11 минут. Рассмотрим следующий рисунок, на котором показана классическая «пила» памяти, а так же важный сигнал, что что-то не так с использованием памяти: Можно увидеть, что после каждого цикла очистки памяти, heap все больше заполняется, я выделил это желтым треугольником. «Пила» все время как бы ползет вверх. Это значит, что какие-то объекты не достижимы для очистки и накапливаются в old space, что со временем приведет к переполнению этой области памяти. Выявление утечки Следующим шагом нужно выявить, что именно не доступно для очистки и в этом нам поможет Memory Analyzer. Прежде всего, нужно загрузить в программу heap dump работающего приложения с предполагаемой утечкой памяти. Это можно сделать с помощью «File → Acquire Heap Dump». После загрузки в диалоге «Getting Started Wizard» выбрать «Leak Suspects Report» после этого откроется краткий обзор возможных утечек памяти: Если вернуться на вкладку «Overview» и выбрать «Dominator Tree», то можно увидеть более подробную картину: Дерево показывает структуру «тяжелого» объекта, а так же размер его полей (по типу). Можно видеть, что одно из полей объекта MasterTenant занимает более 45% памяти. Устранение утечки Имея результат анализа из предыдущего пункта, следующим шагом идет устранение накапливания объектом памяти. Тут все сильно зависит от конкретного кода. Общая рекоменация – нужно найти и проанализировать все места, где происходит инициализация или изменение соответствующего поля или полей, чтобы понять механизм накапливания памяти. В моем случае в коллекцию постоянно добавлялись записи из множества (около 150) потоков при определенных условиях. После находжения и устранения утечки, не лишним будет пройти все шаги снова, проанализировать память и отчет Memory Analyzer, чтобы убедиться что фикс помог. Ссылка на оригинал
  20. Сегодня от ключевых людей из команды Java появились сразу две новости: Марк Рейнхольд сообщил об открытии репозиториев JDK 10, в которые коммиттеры уже могут размещать багфиксы и мелкие улучшения. Можете прочитать официальное письмо Марка об этом, а можете — хабрапост Тагира Валеева. В общем, стоило окончательно устаканиться фичам «девятки», как можно уже начинать переживать о том, что попадёт в десятку. Брайан Гетц выставил на голосование новое предложение: создать Project Amber для внесения туда JEP с «маленькими, ориентированными на продуктивность языковыми фичами» (вроде недавних Enhanced Enums и Lambda Leftovers). То есть предложение не в том, чтобы затеять какое-то гигантское нововведение, а в том, чтобы сгруппировать и так появляющиеся маленькие — дав им отдельный общий репозиторий, списки рассылки и так далее. https://twitter.com/RichardWarburto/status/824305443975626752?ref_src=twsrc%5Etfw Непонятно только, почему назвать проект решили «янтарь». Это звучит как что-то, навсегда застывшее и активно не развивающееся!
  21. Здравствуйте уважаемые форумчане. Изучаю java. Практически осилил syntax. Дальнейшее обучение требует побольше работать с кодом. Хорошие люди отправили меня к вам, ибо тут сидят администраторы игр на java. Не прошу брать в ученики, ибо время каждого бесценно. Хочу просто поработать в команде над кодом. Может есть среди вас человек, которому требуется такой как я Буду очень рад.
  22. Компания Oracle, начавшая судиться с Google из-за Java ещё в 2010-м, после прошлогоднего судебного поражения решила не сдаваться, и теперь подала новую апелляцию. В интернете сразу выпала месячная норма комментариев «эта компания юристов только и может судиться, нет чтобы что хорошее сделать». Для пропустивших предыдущие серии этой мыльной оперы — краткое содержание: 2007 год: Google представляет новую систему Android, использующую Java. Глава Sun Microsystems Джонатан Шварц в своём блоге радостно поздравляет Google с этим. 2010 год: Oracle покупает Sun, получая Java, и не поздравляет Google с успехом Android, а подаёт в суд «из-за нарушения авторских и патентных прав» в случае с Java API. 2012 год: суд решает, что «структура, последовательность и организация» API не подлежат копирайту, победа за Google. Oracle подаёт апелляцию. 2014 год: рассмотрение апелляции приводит к решению «всё-таки подлежат, но использование может подпадать под fair use». Дело требует нового рассмотрения. 2016 год: новый судебный процесс завершается тем, что в случае с Android был fair use, победа опять за Google. 2017 год: Oracle снова подаёт апелляцию. Эта музыка будет вечной (если не забыть зарядить андроидфон).
  23. Молодой учёный Росс Тейт опубликовал текст о проблеме в системе типов Java (а также Scala), делающей эту систему «unsound». Как поясняет тот же текст, слово «unsound» (буквально — «ненадёжный», «необоснованный») в данном контексте говорит, что система типов предоставляет разработчикам не все те гарантии поведения программ, которые должна была предоставить по задумке создателей. Система типов Java призвана, например, гарантировать, что метод, требующий Integer, не примет String. Тейт и Нада Амин (исследователь, участница команды Scala) обнаружили хитрый случай, в котором гарантия не соблюдается — так что компилятор, вполне соответствующий спецификации, скомпилирует код, присваивающий переменной значение другого типа (впрочем, это не означает возможности исполнять его на JVM, и вряд ли вы столкнётесь с таким кодом в рабочем проекте). Впервые Амин и Тейт сообщили о своей находке в ноябре на конференции OOPSLA (update: как заметил наш читатель, в Фейсбуке сообщали и того раньше), представив там соответствующую научную публикацию. Но после конференции на это обратили внимание только в академических кругах, а вот теперь заговорили в индустрии, что и побудило Тейта написать его новый текст, предназначенный для разработчиков. Внимание многих привлёк недавний твит Джошуа Блоха с примером «ломающего систему» кода: https://twitter.com/joshbloch/status/822948565433466881/photo/1?ref_src=twsrc%5Etfw Как написал Блох в следующем твите, «Другими словами, Нада Амин и Росс Тейт обнаружили такую дыру в 12-летней системе типов в Java-дженериках, что сквозь неё можно на грузовике проехать». Не все согласны с такой оценкой. Нашлось много заявлений вроде «но ведь такой код в реальной жизни никто никогда не пишет» и «но ведь он выбрасывает исключение ClassCastException». Тейт в своём тексте отвечает на первое, что это не вопрос юзабилити, а вопрос безопасности — то есть мы должны думать не о том, пишем ли мы такой код сами, а о том, может ли в принципе написать такой код злонамеренный разработчик. А на второе — что с исключением нам просто повезло. Мол, так случайно получилось из-за того, что при добавлении дженериков заботились об обратной совместимости, а если бы что-то пошло иначе (например, дженерики в Java были изначально), его бы не было, что открывало бы большой простор для злоупотреблений. Так что, хотя в итоге всё обошлось без ужасных последствий, подход всё равно неправильный, и разработчикам других языков надо мотать на ус. Помимо текста Тейта и видеоинтервью с ним и Амин, доступна страница, на которой можно лично побаловаться с примерами кода. А чем же изначально была вызвана проблема? Тейт пишет, что в конечном счёте всё сводится к null-pointer bug — «но в отличие от большинства таких багов, на обнаружение этого ушло 12 лет». В общем, связанные с null проблемы бывают не только у рядовых разработчиков!
  24. Как утверждает издание The Register, всё больше клиентов и партнёров Oracle получают от компании сообщения о том, что они используют Java с нарушением лицензии и должны заплатить. В одном из случаев запрошенная сумма составила $100 000. По словам издания, на рынке возникла путаница из-за всеобщего представления «Java бесплатна» и из-за того, что платные Java SE Advanced Desktop, Java SE Advanced и Java SE Suite скачиваются вместе с обычной Java SE, а не отдельными платными загрузками. В результате многие годами пользовались коммерческими компонентами без соответствующего лицензирования, все привыкли воспринимать это как статус-кво и никто не ожидал подвоха — а теперь Oracle принялась активно закручивать гайки, наняв 20 людей специально для того, чтобы разбираться с «неплательщиками». Причём в число неплательщиков включили не только клиентов Oracle, но даже её партнёров, у которых теперь ощущение «как с нами можно так было так поступить, мы ж сотрудничаем». Реакция сообщества на текст The Register оказалась двоякой. В Твиттере многие возмущены действиями Oracle и считают это поводом выбирать другие платформы, где не окажешься неожиданно должен много денег. https://twitter.com/OvidPerl/status/810063984892268544?ref_src=twsrc%5Etfw А вот на Hacker News комментаторы оказались скептично настроены по отношению к тексту The Register. Они замечают, что там много громких утверждений, но при этом толком упомянут только один конкретный случай, а всё остальное может быть преувеличением. Действительно, в тексте хватает скользких оборотов вроде «giant is understood to have hired 20 individuals»: вроде и заявили громко о «20 нанятых людях», но сняли с себя ответственность расплывчатой оговоркой «is understood» (кем? на каких основаниях?), если информация окажется ложной — взятки гладки. В общем, панически менять платформу на основании такого текста вряд ли стоит, а вот следить, появится ли ещё информация об этом, есть смысл. Мы будем следить, если появится — сообщим вам.
  25. SmokiMo

    Java 9

    У Java 9 сегодня значимая веха, а заодно мы вспомнили ещё несколько недавних ссылок, связанных с «девяткой»: Веха в следующем: Марк Рейнхольд сообщил, что JDK 9 добралась до состояния Feature Complete, и работа переходит в стадию «пофиксить одни баги и разобраться, почему не станем фиксить другие». В общем, всё то, что вы хотите видеть в Java, но до этого момента не попало в девятку, теперь уже точно и не попадёт! Зато в июльскую дату релиза теперь верится сильнее. Похоже, после стольких лет откладывания Jigsaw вот теперь до него действительно рукой подать. https://twitter.com/mreinhold/status/822209640037425154 От мечтаний о «рукой подать» вернёмся к суровой реальности. На Reddit недавно опубликовали вопрос «Какая наиболее старая версия Java используется у вас в продакшене и что мешает обновиться?», и типичным ответом оказалось «1.6, потому что клиент решает, что у него на сервере». А в другом реддит-треде «Что вы думаете о Java 9?» комментаторы сходятся на том, что у неё нет настолько очевидных преимуществ, как у «восьмёрки», поэтому распространение окажется медленнее («такое сложно будет продать нашим менеджерам»). Вместе всё это напоминает нам, что для многих разработчиков светлое модульное будущее наступит совсем не в день релиза JDK 9: повезёт в первую очередь тем, кто будет начинать новые проекты. Впрочем, работающим над давно существующим проектом не обязательно впадать в депрессию: на TechBeacon специально для них опубликовали текст «The legacy developer’s guide to Java 9». Там, например, про multi-release JAR, призванные помочь с одновременной поддержкой разных версий Java. А тем временем различные издания продолжают осваивать тему «девятка — это не только модули», разбирая различные JEP. В этом месяце в блоге Takipi написали о JEP 259: Stack-Walking API, а на Voxxed рассмотрели JEP 269: Convenience Factory Methods for Collections.
×
×
  • Создать...