Рубрика «java» - 250

Главный архитектор платформы Java Марк Рейнхольд сегодня объявил в своём блоге, что выпуск Java 8 переехал с сентября этого года на март следующего. В последнее время много сил инженеров Oracle было брошено на борьбу с уязвимостями в Java, и поэтому сроки поехали.

Читать полностью »

Сегодня компания Oracle выпускает плановый набор Critical фиксов для Java. Обновления затрагивают Java SE (Standart Edition) версий 7 (7u15 и ниже), 6 (6u43 и ниже), 5 (5u41 и ниже). Исправлению подлежат 42 уязвимости, 39 из которых относятся к типу Remote Code Execution и могут быть успешно применены без фактической аутентификации, т. е. удаленно по сети, без применения логина и пароля для входа на удаленную систему (потенциальный drive-by installation).

Читать полностью »

Декомпиляция — процесс воссоздания исходного кода декомпилятором

Недавно я задался вопросом: Какой декомпилятор лучше?
Начал мучить Google, экспериментировать. В итоге нашел отличное решение. Как декомпильнуть любую программу и получить рабочие «исходники»? Об этом в сабже.Читать полностью »

Заранее оговорюсь что данная статья не претендует на подробное изучение стандартов WMS или огромных возможностей набора библиотек Geotools. Это лишь простое HOWTO(или если хотите, считайте это учебно-демонстрационной задачей), которого для выполнения своих задач я не нашел ни на Хабре ни где либо еще в полноценном варианте.

Постановка задачи

Задача заключается в том чтобы реализовать WMS отдающий прозрачный слой в формате PNG с нанесенными на него точками координаты которых записаны где-то в базе данных(способ хранения не столь важен). Уже в WMS клиенте этот слой можно накладывать на изображение другой карты.

Кратко о WMS

WMS это Web-сервис предоставляющий доступ к картографической информации по HTTP протоколу. Описание стандарта можно найти здесь http://www.opengeospatial.org/standards/wms. Параметры сервису передаются в Get-запросе. Стандарт WMS предусматривает три типа запроса.

  • GetCapabilities(обязательный) – Данный запрос возвращает информацию о возможностях сервиса, таких как набор слоев, стилей, возвращаемых форматах в виде XML-документа соответствующего XSD приведенному в описании стандарта.
  • GetMap(обязательный) – Основной тип запроса для WMS. Возвращает изображение, заданных в параметрах запроса размеров и формата, географической информации в области координат(BBOX) заданной системы координат.
  • GetFeatureInfo(опциональный) – Этот запрос возвращает более подробную информацию о географических объектах на карте полученной в предыдущем запросе. Не все WMS соответствующие стандарту обязаны поддерживать данный тип запроса. В случае если этот запрос не поддерживается сервис возвращает исключение OperationNotSupported.

Более подробную информацию ищите в документах по ссылке выше.
Читать полностью »

Здравствуйте уважаемые хабрачитатели. Мой рассказ как видно по названию темы пойдет о основе и особенностях создании adobe native extension(далее ANE) для Adobe AIR, в моем случаи расширения буду писать на java, для расширения функциональности AIR, на платформе Android. И так с вашего разрешения начнем.

Введение.

Что же такое ANE? Это инструмент который появился с версии Adobe AIR 3.0 и выше, он позволяет извлекать и выполнять куски нативного кода из среды AIR, условно мы можем выполнить любой нативный код. Выглядит расширение в виде скомпилированного файла библиотеки с расширением .ane.

Читать полностью »

Работа с API различных порталов — одна из самых распространенных задач, возникающих при разработке под Android. Казалось бы, ничего сложного — асинхронно посылать HTTP-запросы и отображать ответы, но дьявол, как всегда, кроется в деталях.
Написание простого приложения для работы с RESTful API под Android
Основные антипаттерны:

  • Отправка запроса прямо из кода Activity в основном треде — тут без комментариев, т.к. это приводит к заморозке UI, вследствие чего система может предложить убить приложением;
  • Отправка запроса из кода Activity при помощи AsyncTask — плохо, т.к. если пользователь, к примеру, повернет экран, Activity пересоздастся и запрос придется выполнять заново, что приводит увеличению времени ожидания и количества потребляемого трафика;
  • Отсутствие кэширования — после каждого действия пользователя ему придется ждать полной загрузки данных.

Читать полностью »

Facebook — одно из приложений для Android с самыми богатыми возможностями. Такие фичи, как push-уведомления, новостная лента и встроенная версия Facebook Messenger(отдельное полноценное приложение), работающие одновременно, делают сложность и объем кода настоящим вызовом, который могут принять очень немногие из разработчиков, особенно для старых версий платформы. (Наши самые старые приложения — ровесники Android 2.2, которому уже 3 года)

Один такой вызов относится к способу, которым виртуальная машина Dalvik, работает с Java-методами. В прошлом году мы совершили полную перестройку нашего Android-приложения, в течение которой мы перенесли огромное количество кода с JavaScript на Java, а также внесли множество абстракий, которые требуют огромное число небольших методов (что вообще-то является хорошой практикой программирования). К сожалению, это привело к невероятному увеличению количества методов в нашем приложении.

Читать полностью »

Вступление

Доброго времени суток, жители Хабра. Так повелось, что я иногда занимаюсь подготовкой кадров для мира программистов. Пытался одно время, помимо очных курсов, записать несколько обучающих видео о Java для самых маленьких (http://java.b0noi.com), но даже треть не закнчил =(. Было решено не выходить за рамки офлайн курсов, однако одну из проблем еще предстояло решить. Как дать слушателям реальный опыт разработки? Еще хотелось бы не просто опыт командной разработки, но и то, что студенты могли бы включить в свое резюме, нечто публичное и, хоть немного, полезное.

Что хотелось бы видеть в проекте, с которым работают слушатели:

  • собственно Java с элементами Java EE;
  • maven;
  • git/mercurial;
  • continues integration system;
  • DB interaction;
  • JavaScript;

Читать полностью »

Друзья, я решил начать изучать Java и в процессе поиска учебного материала наткнулся на замечательный канал на Ютубе, посвящённый обучению этому языку. На данный момент на канале загружено 190 интерактивных уроков, начинается всё с самых основ информатики. Читает и обучает неизвестная женщина, судя по информации о канале, с Украины. У канала всего 200 подписчиков, что, я считаю очень несправедливо. Настоящая кладезь знаний. Спешу поделиться.


Читать полностью »

Я люблю desktop-приложения. Признаваться в этом нынче, похоже, стыднее, чем в связях с иностранной разведкой, но это так. Нет, это не значит, что я не люблю интернет-технологии. Более того, некоторые я не только уважаю, а даже более-менее знаю. Но, тем не менее, я скучаю по тем временам, когда программа писалась на одном компьютере, потом компилировалась и запускалась на других, разных компьютерах. Тогда везде (почти) была одна система — Windows с одной и той же API, почти не было проблем совместимости на уровне приложений, никто не материл разработчиков браузеров — все берегли нервы на разработчиков WinAPI, которые умудрялись создавать конфликты даже внутри нее одной. Но это я, конечно, иронизирую, а если серьезно — иногда и сейчас хочется написать просто desktop-приложение, да так, чтобы работало оно на всех популярных системах. Трудно? Если подумать и покопать, то не очень.

Еще я люблю языки высокого уровня с аккуратной архитектурой и строгой типизацией. Это — Java и C#. Оба они предоставляют разработчику множество преимуществ по сравнению с C++, оба избавляют от ряда забот. Чем приходится платить? Тем, что таскаешь за собой тяжелую колоду, которая называется Oracle JVM, .NET или mono. Все три колоды весят сотни мегабайт и лицензию имеют такую, что каждый пользователь вынужден качать эту штуку сам, не путая при этом разрядность своего компьютера, а главное — программа на Java не может быть совместима со всеми версиями JVM разом, не так ли? И вот — мы приходим к тому, что просто скинуть программку другу (или миллиону друзей) и не заботиться о том, что она у него не запустится, не выходит. Приходится делать хитрые сетапы, вбивать костыли, и это я еще не упомянул .NET — однажды я видел у друга сразу 3 установленных версии, причем все три были нужны разным приложениям…

Стоп! А давайте напишем программу на Java, но так, чтобы она не требовала установки на машину какой-либо JVM, чтобы одним касанием собиралась под Windows, Linux и OS X и чтобы при этом занимала совсем чуть-чуть; так, чтобы никто даже не понял, что она написана, скажем, не на C. Невозможно? Совсем наоборот! (И нет, я имею в виду не gcj, который лишает Java всех ее прелестей. Рефлексия будет работать и даже сторонние jar вы сможете запускать).
Автономная кроссплатформенная монолитная программа на Java
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js