Обновить
512K+

Java *

Объектно-ориентированный язык программирования

238,04
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Java Virtual Machine in pure python

Время на прочтение1 мин
Охват и читатели12K
Коллеги,

Некоторое время назад я начал работать над обучающим проектом, совмещающим java + python + некоторые базовые алгоритмы. Промежуточный этап разработки — имплементация спецификации jdk7 на python. (Java исполняемая в python)

Код доступен www.pyjvm.org или github: github.com/andrewromanenco/pyjvm

Читать дальше →

Использование javascript в Vaadin 7 или как я сэкономил $490 на графиках (часть 1)

Время на прочтение5 мин
Охват и читатели12K
В этой статье я расскажу вам как внедрял красивые графики в наш сервис учета коммунальных услуг Dom24x7 и с какими проблемами и неудобствами пришлось столкнуться.

Для Vaadin 7 имеется прекрасное официальное дополнение для работы с графиками, но проблема в том, что оно не бесплатное и стоит почти $500! Таких денег мне тратить не хотелось, и я решил поискать альтернативу из бесплатного, но, к сожалению, все что я нашел меня совершенно не удовлетворяло по качеству и тогда я вернул свое внимание на официальное дополнение для работы с графиками и решил изучить его повнимательнее.

Оказалось, что это дополнение всего лишь оболочка для прекрасной javascript библиотеки Highcharts, которую, о чудо, можно было использовать бесплатно в некоммерческих проектах (каковым, на текущий момент, является наш проект, хотя, когда его статус измениться, я с удовольствием приобрету коммерческую лицензию), хотя есть еще прекрасная альтернативная библиотека Amcharts, но все же решил остановиться на предыдущей.

Кстати, разработчики Vaadin объясняют, почему так дорого просят за дополнение по работе с графиками тем, что им приходится приобретать корпоративную лицензию.

Определившись с библиотекой осталось решить вопрос, как же все таки ее подключить к своему проекту?
Статья состоит из двух частей. Первая часть это перевод статьи о том как подключать javascript библиотеки к vaadin проектам, а вторая часть расскажет о там, как я, используя полученные знания, написал библиотеку для отображения графиков.
Итак…
Читать дальше →

Проект Lazybones — «Лентяй», который работает за вас

Время на прочтение7 мин
Охват и читатели16K
Я не люблю Maven.
О моей пассионарной ненависти к этой штуке можно написать не одну статью, но сегодня я хочу поговорить об одной очень хорошей фиче Мавена — об архетипах. Что это такое можно прочитать в официальной документации, в каждом из туторилов по Мавену на Хабре(1, 2, 3), да и вообще, вы наверняка знаете и сами.

Так вот, архетипы — это круто, и было бы здорово, если бы 1) во многих проектах со стандартной структурой они были. 2) можно было бы их прикрутить к тем, у которых их нет.

Примерно так думал Питер Ледбрук, когда смотрел на полное отсутствие архетапов в Ratpack. Тогда и родился проект Lazybones — инструмент генерации проектов.

image

В этой статье я расскажу вам как 1) Пользоваться Lazybones для генерации проектов, для которых уже созданы шаблоны. 2) Создавать новые шаблоны для любых проектов.
Читать как создавать

JPHP — Как он работает. История создания

Время на прочтение16 мин
Охват и читатели31K
В этой статье я расскажу более подробно об истории проекта JPHP и каким образом он был разработан с технической стороны. Текст будет интересен как простым разработчикам PHP, так и любителям компиляторов. Я постарался описать все на простом языке.

image

JPHP это компилятор языка PHP для Java VM. Две недели назад я писал статью о проекте. Похожие проекты — JRuby для ruby, Jython для python. После публикации первой статьи о JPHP, проект за два дня набрал 500 звёзд на гитхабе и успел засветиться не только в РУнете, но и на зарубежных ресурсах, успел побывать на первом месте в рейтинге гитхаба.
Читать дальше →

Введение в Акторы на основе Java/GPars, Часть I

Время на прочтение15 мин
Охват и читатели13K
Кратко рассматривается API библиотеки GPars и решение многопоточной задачи средней сложности, результаты которой могут быть полезны в «народном хозяйстве».

Данная статья написана в ходе исследования различных библиотек акторов, доступных Java-программисту, в процессе подготовки к чтению курса «Multicore programming in Java».

Также я веду курс «Scala for Java Developers» на платформе для онлайн-образования udemy.com (аналог Coursera/EdX).

Это первая статья из цикла статей цель которых сравнить API, быстродействие и реализацию акторов Akka с реализациями в других библиотеках на некоторой модельной задаче. Данная статья предлагает такую задачу и решение на GPars.

GPars — библиотека написанная для Clojure с широкой поддержкой различных подходов к параллельным вычислениям.
Плюсы GPars
  • Исходный код написан на Java (в отличии от Akka, написанной на Scala). Всегда интересно посмотреть «что под капотом» на «родном» языке программирования
  • GPars представляет собой целый «зоопарк» подходов (Actor, Agent, STM, CSP, Dataflow)
  • GPars использует классы из runtime-библиотеки Clojure, написанной на Java. Интересно покопаться

Читать дальше →

JavaFX и AnimationTimer

Время на прочтение6 мин
Охват и читатели22K
CountdownВариант применения интересного класса в JavaFX-приложении — предотвращение «заморозки» окна во время длительного процесса. Заодно чуть-чуть об особенностях прорисовки сцен в JavaFX.
Читать дальше →

Что ждет IntelliJ IDEA впереди?

Время на прочтение4 мин
Охват и читатели21K
Совсем скоро нашей флагманской среде разработки IntelliJ IDEA исполнится 14 лет. Уже немало продуктов создано с помощью наших инструментов, и казалось бы всевозможные фичи добавлены в IDE, но мы продолжаем искать новые источники вдохновения, чтобы наши продукты на вашем столе всегда были свежими. По случаю приближающейся годовщины мы хотели бы поделиться нашими взглядами – что именно в ближайшие 5-10 лет будет определять развитие в продуктовой разработке.

Для того, чтобы нам продолжать успешное развитие, как стремительно растущей компании, мы решили обратиться к независимым профессиональным консультантам. Выбор пал на весьма престижное международное бюро с большим опытом сотрудничества и собственными проектами для многих известных IT компаний. Было опрошено множество разработчиков различного возраста, пола, с разнообразными культурными и профессиональными интересами. Вооружившись основными результатами, наши разработчики с огромным энтузиазмом принялись внедрять новые идеи.
Что ждет нас? Все под катом.

Небольшой тест производительности Hadoop/Mapreduce

Время на прочтение2 мин
Охват и читатели4.6K
Давным давно задался себе вопросом «На сколько эфективно работает MapReduce ?»

Появилась такая возможность и на кластере состоящим из 4 нодов в такой вот конфигурации я решил потестить:
— 3 ноды: Intel Xeon CPU W3530 @ 2.80GHz 12GB RAM
— 1 нода: Intel Xeon CPU X5450 @ 3.00GHz. 8GB RAM

Операционка debian, hadoop 1.2 (с офф.сайта), java 7 (От ORACLE).

Исходные данные:
— ХМЛ файл: dumps.wikimedia.org/enwiki/20130904/enwiki-20130904-stub-meta-current.xml.gz
— в распакованом состоянии файл занимает 18ГБ места.
— 31М записей о страничках в вики.
— Bzip2 сжимает этот файл в 2ГБ
— 593.045.627 строк в файле
Читать дальше →

Перевод legacy-проекта на Dependency Injection. Путь Ситха

Время на прочтение8 мин
Охват и читатели14K
Внесу и свой вклад в тренд темного программирования.
Многим из вас знакома дилемма: использовать ли DI в своем проекте или нет.
Поводы перехода на DI:
  • создание развитой системы авто-тестов
  • повторное использование кода в различном окружении, в том числе в различных проектах
  • использование 3rd-party библиотек, построенных на DI
  • изучение DI
Доводы не использовать DI:
  • усложнение понимания кода (поначалу)
  • необходимость конфигурирования контекста
  • изучение DI

Допустим, у нас есть большой рабочий проект, принято решение: переводить на DI. Разработчики чувствуют свой потенциал, уровень мидихлориан в крови зашкаливает.

Путь тебя ждет тернистый и долгий, мой юный падаван.

Если проект большой и в нем много разработчиков, одним коммитом вряд ли удастся сделать такой рефакторинг. Поэтому мы используем несколько плохих практик, упростив переход, а затем от них избавимся.
С чего начать?

Как web-страницу легко превратить в PDF?

Время на прочтение6 мин
Охват и читатели37K

Для меня было очень неожиданно то, что в хабе по Java практически нет информации по работе с PDF документами, поэтому я, из личного опыта, хочу на примере сервлета показать как легко можно любую web-страницу превратить в PDF документ.
Читать дальше →

Аннотации в Java, часть I

Время на прочтение5 мин
Охват и читатели81K
Это первая часть статьи, посвященной такому языковому механизму Java 5+ как аннотации. Она имеет вводный характер и рассчитана на Junior разработчиков или тех, кто только приступает к изучению языка.

Я занимаюсь онлайн обучением Java и опубликую часть учебных материалов в рамках переработки курса Java Core.

Также я веду курс «Scala for Java Developers» на платформе для онлайн-образования udemy.com (аналог Coursera/EdX).

Мой метод обучения состоит в том, что я
  1. строю усложняющуюся последовательность примеров
  2. объясняю возможные варианты применения
  3. объясняю логику двигавшую авторами (по мере возможности)
  4. даю большое количество тестов (50-100) всесторонне проверяющее понимание и демонстрирующих различные комбинации
  5. даю лабораторные для самостоятельной работы

Данная статье следует пунктам #1 (последовательность примеров) и #2(варианты применения).
Читать дальше →

Dripstat — сервис мониторинга производительности JVM или MMO игра?

Время на прочтение4 мин
Охват и читатели22K
Приветствую, хабражители!

Сегодня я хочу рассказать вам про сервис, который обнаружил буквально недавно — Dripstat. Он позволяет установить на локальную JVM специальный java-агент, который собирает статистику работы сервера приложений и отправляет на сайт, где с ней можно детальнее ознакомиться.

Ну какие сервисы мониторинга? Сегодня суббота! — скажете вы, и будете правы. Более того, я даже поддержу эту мысль и в данной заметке расскажу как раз об обратной, развлекательной, стороне медали, и чуть-чуть о программировании на JS.



Итак, приглашаю дочитать тех кто заинтересовался.
Let's play!

Легкий старт: Spring + MongoDB

Время на прочтение16 мин
Охват и читатели53K


Поискал на хабре схожие статьи, нашел только Morphia — легкий ORM для MongoDB, управляемый аннотациями, ничего по связке Spring Data + MongoDB не нашлось, в связи с этим решил написать пост из раздела «для самых маленьких» по настройке и использованию связки Spring + MongoDB.
Читать дальше →

Ближайшие события

Дружим штатную громкую связь Volvo с русскими буквами

Время на прочтение4 мин
Охват и читатели10K
Доброго времени суток!
Несколько месяцев назад появился у меня чудесный автомобиль Volvo V50 родом из Бельгии. Бортовой компьютер и магнитолу успешно перепрошили на русский язык у официального дилера, а вот с отображением русских имен из записной книжки телефона при использовании штатной громкой связи вышла беда: все кириллические символы показывались в виде подчеркиваний. Я пользуюсь Samsung Galaxy S3 прошитым CyanogenMod 11, поэтому возникла идея подправить стандартный Bluetooth.apk для обеспечения возможности видеть имя звонящего.
Читать дальше →

Программа курса «Multicore programming in Java»

Время на прочтение3 мин
Охват и читатели53K
Добрый день.
Меня зовут Головач Иван, я руковожу небольшой образовательной компанией. Мы занимаемся онлайн курсами программирования.

Также я веду курс «Scala for Java Developers» на платформе для онлайн-образования udemy.com (аналог Coursera/EdX).

Хотелось бы услышать мнение сообщества по поводу
  1. программы курса «Multicore programming in Java»
  2. литературы к курсу

Кратко о курсе: стартует 28 апреля (в связи с майскими праздниками старт перенесен на 15 мая), ведется в режиме вебинаров дважды в неделю в 19.00-22.00, состоит из 16 лекций по 2.5 часа (=40 лекционных часов), к каждой лекции дается расширенное задание, рассчитан на Java Junior/Middle.
Читать дальше →

JPHP — Новый движок php для Java VM + JIT

Время на прочтение6 мин
Охват и читатели50K
Представляю вам свой open-source проект — JPHP. Это альтернативная реализация PHP для JavaVM с поддержкой JIT. Я начал проект в одиночку в октябре 2013 года и за 4 месяца реализовал компилятор php в байткод JVM. Язык поддерживается на уровне PHP 5.3, частично поддерживаются возможности PHP 5.4 и 5.5. По своей идеологии проект напоминает JRuby и Jython.

Я подготовил небольшую презентацию, которая расскажет о проекте и не отнимет у вас много времени:


Читать дальше →

Концепция Абстрактного Типа Данных

Время на прочтение4 мин
Охват и читатели32K
Доброго времени суток, хабравчане!

Следующий пост является изложением моих размышлений на тему природы классов и АТД. Эти размышления дополнены интересными цитатами из книг гуру разработки программного обеспечения

Введение


Начнем с того, что плавно подойдем к определению АТД. АТД, в первую очередь, представляет собой тип данных, что означет следущее:
наличие определенных доступных операций над элементами этого типа;
а также данные, относительно которых эти операции выполняются (диапазон значений).
Читать дальше →

IntelliJ IDEA 13.1: Весеннее обновление

Время на прочтение4 мин
Охват и читатели43K
Привет, Хабр!

Вместе с хорошим известием для Северного полушария, что продолжительность светлого времени суток увеличилась, мы хотим рассказать о релизе IntelliJ IDEA 13.1, случившемся на этой неделе. Но перед рассказом о новинках хотелось бы отметить еще одно, весьма ожидаемое всем Java-cообществом, событие…

Читать дальше

Java 8 в IaaS InfoboxCloud в одну команду. Используем Java 8 в тестах

Время на прочтение4 мин
Охват и читатели6K
Совсем недавно вышла Java 8. Это большое и долгожданное событие для всех разработчиков на платформе JVM и безусловно повлияет на код в enterprise проектах.

Мы в InfoboxCloud очень любим технологии Java и ценим Java разработчиков. К релизу Java 8 мы написали скрипты, которые позволят в одну команду установить JRE 8 или JDK 8 в Облачную инфраструктуру InfoboxCloud на любою из ОС Linux. Просто выберите скрипт, вставьте в консоль и нажмите Enter. Гораздо лучше тратить время на написание хорошего кода, чем на установку java.
Java 8 InfoboxCloud IaaS
На Облачной платформе InfoboxCloud Jelastic поддержка Java 8 появится в следующем обновлении программного стека довольно скоро.

В этой статье мы, установив Java 8, рассмотрим как тестировать ваше разрабатываемое ПО с Java 8, собирая его под Java 7.
Читать дальше →

Новое в Java 8

Время на прочтение15 мин
Охват и читатели526K
Java еще не умерла — и люди начинают это понимать.

Добро пожаловать в ведение по Java 8. Этот материал шаг за шагом познакомит вас со всеми новыми фичами языка. Вы научитесь использовать методы интерфейсов по умолчанию (default interface methods), лямбда-выражения (lambda expressions), ссылки на методы (method references) и повторяемые аннотации (repeatable annotations). Все это будет сопровождаться короткими и простыми примерами кода. В конце статьи вы познакомитесь с наиболее свежими изменениями в API, касающихся потоков, функциональных интерфейсов, расширений для ассоциативных массивов, а также с изменениями в API работы с датами.
Читать дальше →