Обновить
256K+

Java *

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

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

Готовим rutracker на spring и kotlin

Время на прочтение10 мин
Охват и читатели39K
tutracker, kotlin, spring boot

В преддверии первого релиза языка kotlin, я хотел бы поделиться с вами опытом создания на нем небольшого проекта. Это будет приложение-сервис, для поиска торрентов в базе rutracker-а. Весь код + бонусный браузерный клиент можно найти здесь. Итак, посмотрим, что же получилось.
Под катом.

Веб-платформа на Java за 30 минут

Время на прочтение8 мин
Охват и читатели242K
Опытные разработчики могут не читать дальше, так-как эта статья рассчитана скорее на новичков, но всё-же я был бы очень рад, если бы кто-нибудь оставил конструктивную критику в мой адрес или указал на ошибки.

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

В статье я расскажу, как практически с нуля можно, даже не владея огромным стеком технологий, развернуть на удаленном облаке свой собственный уютненький ресурс. Это может быть ваш личный блог, какой-то интересный сервис или просто ресурс о котором вы давно мечтаете. Что может быть приятнее, чем отправить другу ссылку на свой собственный ресурс и вместе обсудить какие-то интересные моменты или просто посмеяться.

Для предпринимателей или начинающих бизнесменов, или владельцев каких-либо площадок будет интересно узнать, что им в начале их бизнеса совсем не обязательно вкладывать большие деньги на «крутой» сайт, а достаточно воспользоваться открытыми библиотеками и единственное за что заплатить — это за то, чтобы взять в аренду виртуальный сервер.

В статье я покажу, как сделать простейший сайт, имеющий простую функциональность. Это скорее статья, посвященная именно тому, чтобы показать общую концепцию и помочь начинающим разработчикам сформировать понимание того, как именно создаются такие известные ресурсы, как Google, Facebook, Вконтакте.

Вы должны понимать, что все интернет-сервисы создаются по одному принципу, отличаются только детали и реализация каких-то уникальных и конкретных вещей, но суть остаётся единой.

Для тех, кто заинтересовался:
Читать далее

Еще один разбор пузырьковой сортировки

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

Однажды, новогодним вечером, вдохновившись статьей про пузырьковую сортировку и ее модификации, я решил написать свою реализацию, и подумать, как бы я смог ее улучшить. А заодно начать все-таки изучать JAVA (по профессии я не программист, хотя немного писал).

Зачем в наши дни нужна сортировка пузырьком?
Она ведь практически самая медленная.
У нее самый высокий (квадратичный) алгоритм сложности.

Но! Она самая простая в реализации и весьма наглядная, и часто используется в образовательных целях или на собеседованиях джуниоров/интернов.
Кроме того, с небольшими модификациями, можно достичь интересных результатов.
Новичков в программировании и заинтересовавшихся — прошу под кат.

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

Пишем на Java в Arduino

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


В статье расскажу как можно писать на Java для Arduino.

Почему Java? Если кратко — just for fun!

Я Java программист и в свободное время играюсь с Arduino и хотелось перенести свои знания Java в мир микроконтроллеров и embedded устройств.

На данный момент есть несколько возможностей запускать Java на embedded устройствах. В этой статье я рассмотрю их.
Читать дальше →

Поддержка Unity в Consulo за 2015 год в одном посте

Время на прочтение2 мин
Охват и читатели9.1K
image

Хотя поддержка Unity в Consulo и появилась в конце 2014 года (первый коммит) — большинство возможностей появилось именно в 2015 году. Ниже описаны значимые фичи, которые были реализованы:


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

Работа с AngularJS Protractor из C # и Java

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

Введение


Как лозунг на Angular.org гордостью объясняет:
Angular is what HTML would have been, had it been designed for applications , что в вольном переводе звучит так: Angular является тем, чем был бы HTML — если бы он с самого начала был предназначен для создания (веб -) приложений. AngularJS был разработан с нуля, чтобы быть тестируемым. Но многие разработчиков Selenium хотят продолжать использовать свои существующие Java или C # кодовую базу и навыки но обнаруживают при переключении на тестирование AngularJS SPA и MVVM веб-приложений, что Protractor, лидирующий инструмент тестирования приложегий AngularJS, написан на JavaScript тоже.

К счастью, Protractor довольно легко портируется на другие языки — он использует небольшое подмножество протокола JsonWire на котором основан Selenium WebDriver, а именно всего один интерфейс.


За короткое время был дополнен и развит проект protractor-net представляющий порт существующих методов Protractor https://github.com/angular/protractor/blob/master/lib/clientsidescripts.js из Javascript на C# и затем другой проект, выполняющий ту же задачу из Java.
Для тестирования был выбран сайт http://www.way2automation.com на котором среди прочего есть и проект для AngularJS,
http://www.way2automation.com/angularjs-protractor/banking.

тесты представляют собой «стандарные» действия «клиента» и «менеджера» банка «XYZ Bank» по проверке баланса, созданию учетных записей, проведения платежей и т.п. — это позволило проиллюстрировать все имеющиеся методы. Вызов тестов осуществлен из проекта на C# и из Java

Примеры кода


C#


«Клиент» заходит, выбирает счет, заносит сумму, и когда транзакция прошла, проверяет баланс (есть и тест на съем средств — тут он не показан, смотрите архив).


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

Работа с базой данных в Google App Engine/Google Cloud Endpoints на Java: фреймворк Objectify

Время на прочтение10 мин
Охват и читатели12K
В предыдущих статьях («Google Cloud Endpoints на Java: Руководство. ч. 1», «Google Cloud Endpoints на Java: Руководство. ч. 2 (Frontend)», «Google Cloud Endpoints на Java: Руководство. ч. 3») мы разбирали создание API на Google Cloud Endpoints и фронтенда к нему на AngularJS.

Однако руководство по созданию API было бы неполным без работы с базой данных.

В этой статье мы рассмотрим фреймворк Objectify для работы с встроенной в GAE базой данных App Engine Datastore.
Читать дальше →

JOIN the dark side of the SQL

Время на прочтение4 мин
Охват и читатели18K
Незаслуженно обошли вниманием появление SQL JOIN операций в проекте на основе Elasticsearch


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

Видео лучших докладов Java-конференции JPoint 2015 — Часть 1

Время на прочтение4 мин
Охват и читатели21K
image

Год подходит к концу, впереди длинные каникулы. Для многих каникулы — это отличная возможность посидеть и посмотреть вокруг, что же у нас нового и интересного происходит нынче в профессиональном джавовском мире.

В апреле в Москве мы провели в Москве большую Java-конференцию — JPoint 2015. Конференция собрала более тысячи разработчиков на площадке, еще несколько сотен — смотрели конференцию онлайн. Мы экспериментировали и с открытием (лекция Дмитрия Галкина о современном искусстве и программировании действительно шокировала многих) и с новыми форматами (круглые столы и экспертные дискуссии). Но ключевой темой конференции были и остаются доклады.

Видеозаписи всех докладов конференции лежат на Youtube. Мы, как всегда, собрали статистику из отзывов участников и посчитали рейтинг докладов. В этом посте — традиционный обзор лучших докладов конференции. Я сделаю короткий обзор десяти лучших докладов конференции с тем, чтобы вы немного больше знали о них и посмотрели именно то, что интересно вам.
Итак, поехали.



10 место


Сергей Walrus Куксенко, Oracle — Железные счётчики на страже производительности
Средняя оценка: 4.28



Этот доклад получил специальный приз жюри в номинации «аццкий хардкор». Общая идея доклада сводится к следующему: представьте, что вы уже наоптимизировали в своем приложении все, что можно — посмотрели на сеть, ОС, JVM и т.д. и поняли, что все уперлось в процессор. После этого мы попрофилировали, работать стало быстрее, но все равно процессор загружен на 100%. Что делать?

Оказывается, внутри процессора есть разные счетчики событий. Называется этот механизм Hardware Performance Counters. Архитектура современных процессоров очень сложна, в них может происходить очень много разного. Фокус в том, что мы можем включить некоторые счетчики внутри процессора, которые будут считать количество произошедших событий. То есть, некоторый железный профилировщик внутри процессора.

Какие именно события умеет считать этот процессорный профилировщик? Да практически любые. В современных интеловских процессорах, по утверждению Сергея, их около тысячи. Если вы хотите понять, какие события надо смотреть в первую очередь, куда вообще копать и какие с этим возникают трудности — обязательно посмотрите этот доклад.



В этом году Сергей снова прилетит к нам в Москву — правда уже не из Питера, а из Калифорнии. С темой он определится в январе. Скорее всего это будет снова что-то про оптимизацию производительности.
Доклады с 9 по 6

Как я получил первый опыт разработки игры на Android

Время на прочтение11 мин
Охват и читатели29K
image

В этой статье я хочу поделиться своим опытом создания первой игры для платформы Android, рассказать весь путь от зарождения идеи до публикации.
Читать дальше →

QA: Conference

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


Новый анонс: QA: Conference: рассказываем про доклады

Через четыре месяца, в конце апреля, в пяти городах России (Санкт-Петербург, Москва, Омск, Новосибирск и Екатеринбург) пройдет крупнейшая в России конференция по тестированию программных ситсем – QA: Conference. Немного статистики:
  • 24 полноценных доклада в Москве и Питере
  • до 16 докладов — в Новосибирске и Екатеринбурге
  • 8 докладов — в Омске
  • возможность посмотреть записи всех докладов — всем участникам
  • стоимость билета — от 2,000 до 3,000 рублей

Какие темы будут раскрыты:
  • Тестирование на сетевое проникновение — от компании PentestIt
  • Нагрузочное тестирование
  • Автоматизация тестирования (рассматриваются любые аспекты)
  • Интеграционное тестирование
  • Развертывание различных систем с нуля
  • Опыт как положительный, так и отрицательный

Что вы получите:
  • Багаж интереснейших знаний, которые вы примените на последующих проектах и пару советов как продавить их использование у руководства
  • Возможность стать универсальным специалистом, который может свободно мигрировать между платформами, перестав быть «заложником одной роли»
  • Потрогать и попробовать технологии, которые работают ежедневно в одном из самых технологически-современных банков, прогоняя тестирование всего UI и всех серверов. Всего около 50 тысяч тестов UI и столько же на серверные части (и речь не о Unit-тестах) — на сотнях виртуальных машин
  • Запись всех докладов для последующего переосмысления
  • Исходники примеров с конференции, чтобы иметь возможность сделать быстрый старт в своем проекте.

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

Dagger 2 и структура приложения для Android

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

Добрый день! Наша команда уже больше года занимается разработкой почтового клиента МойОфис для платформы Android (приложения МойОфис мы разрабатываем для всех популярных платформ).

Сегодня мы хотим рассказать о технологиях, которые мы используем в разработке нашего почтового клиента. А именно, о механизмах Dependency Injection в виде библиотеки Dagger 2. В статье мы опишем основные части библиотеки и расскажем, как их использовать в Android-проекте.
Подробности

Java вместо Groovy

Время на прочтение6 мин
Охват и читатели18K
Вдруг оказывается, что в проекте нужны скрипты и возникает вопрос что лучше эволюция или революция?
Но даже попытка внедрить груви может провалиться в легаси проекте с консервативным коллективом. И руководство может найти еще десяток причин не пропустить груви в проект. Хоть groovy гораздо проще и ближе программисту знающему java, чем та же scala.



Но даже в этом случае можно использовать динамически компилируемые скрипты в проекте. Научимся компилировать java код динамически в памяти и запускать его в jvm, использовать в нем динамически загружаемыме библиотеки из maven. Хотелось бы написать как можно меньше кода для этого и чтобы процесс использования был максимально прост. Да и еще бы не хотелось надеяться на доступность tools.jar нашей пограмме.
Для заинтересовавшихся как можно это сделать...

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

Data Driven Realtime Rule Engine в Wargaming: сбор данных

Время на прочтение7 мин
Охват и читатели9.9K
Сфера деятельности нашей компании распространяется далеко за пределы игровой разработки. Параллельно с ней мы ведем десятки внутренних проектов, и Data Driven Realtime Rule Engine (DDRRE) – один из наиболее амбициозных.

Data Driven Realtime Rule Engine – специальная система, которая при помощи анализа больших массивов данных в режиме реального времени позволяет персонифицировать взаимодействие с игроком через рекомендации, поступающие пользователю исходя из контекста его последнего игрового опыта.

DDRRE позволяет нашим игрокам получать больше удовольствия от игры, улучшает их пользовательский опыт, а также избавляет от просмотра ненужных рекламных и промо-сообщений.

Архитектура DDRRE

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

Scalding: повод перейти с Java на Scala

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


В этой статье я расскажу о Twitter Scalding – фреймворке для описания процесса обработки данных в Apache Hadoop. Я начну издалека, с истории фреймворков поверх Hadoop. Потом дам обзор возможностей Scalding. В завершение покажу примеры кода, доступные для понимания тем, кто знает Java, но почти не знаком со Scala.

Интересно? Поехали!
Читать дальше →

Разработка плагинов для Atlassian JIRA

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


Все мы в IT сталкивались с системами отслеживания ошибок — с так называемыми баг-трекерами, с issue-трекерами. Один из популярных продуктов такого рода — Atlassian JIRA.

На самом деле, Atlassian JIRA — это больше, чем просто система отслеживания ошибок. JIRA может использоваться довольно широко — в том числе и для управления проектами. Можно сказать, что JIRA — это система для отслеживания статуса задач. Задачи могут быть разными: это сбор требований, тестирование, непосредственно разработка и т. д. Я видел даже попытки подсадить на JIRA бухгалтеров — а что, мол, будет у нас agile-бухгалтерия!

На официальном же сайте JIRA описывается следующим образом:
JIRA is the tracker for teams planning and building great products. Thousands of teams choose JIRA to capture and organize issues, assign work, and follow team activity. At your desk or on the go with the new mobile interface, JIRA helps your team get the job done. В общем, основная идея JIRA в том, что она позволяет планировать работу.

В этой статье я расскажу о том, как разрабатывать дополнения к этой программе. Впрочем, может возникнуть вопрос — а зачем разрабатывать дополнения для JIRA. Поэтому давайте рассмотрим, какие дополнения бывают.
Читать дальше →

Коллекции в Java: о чём многие забывают

Время на прочтение6 мин
Охват и читатели146K
Из опыта code-review и ответов на StackOverflow набралось немало моментов, касающихся Java Collections API, которые мне казались очевидными, но другие разработчики о них почему-то не знали или знали, но не чувствовали уверенности их применять. В этой статье я собираю в общую кучу всё, что накопилось.

Содержание:


  1. List.subList
  2. PriorityQueue
  3. EnumSet и EnumMap
  4. Set.add(E) и Set.remove(E) возвращают булево значение
  5. Map.put(K, V), Map.remove(K), List.set(idx, E), List.remove(idx) возвращают предыдущий элемент
  6. Map.keySet() и Map.values()
  7. Arrays.asList может быть ключом
  8. Collections.max
  9. LinkedList, Stack, Vector, Hashtable
Читать дальше →

Анонс Java-конференции JPoint 2016

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


22 и 23 апреля в Москве в гостинице «Radisson Славянская» пройдет Java-конференция JPoint 2016, крупнейшая Java-конференция в России. За два дня конференции участникам будут представлены более 40 докладов от разработчиков платформы Java и ведущих Java-экспертов из России, США, Великобритании, Израиля, Украины, Эстонии, Латвии и других стран.

JPoint состоится уже в четвертый раз, и впервые — в двухдневном формате!

Два дня — это:
  • в 2 раза больше докладов;
  • в 2 раза больше спикеров;
  • в 2 раза больше общения с экспертами и коллегами из других компаний.


Вот видео, которое дает некоторое представление, о том, что же происходит на JPoint:


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

Intro to RxJava

Время на прочтение1 мин
Охват и читатели26K
В рамках образовательных программ в e-Legion мы проводим лекции по Android-разработке в лаборатории ИТИС КФУ. Двумя из них мы решили поделиться с вами. Лекции посвящены набирающему популярность фреймворку RxJava.

Лекция 1


В лекции рассказано про:
  • Общие идеи фреймворка RxJava, зачем это нужно и как с этим работать
  • Способы создания различных Observable и самые основные операции над ними
  • Основных операторов преобразования Observable, а также о методе cache
  • Операции соединения Observable и их последовательного / параллельного выполнения.


Презентация.
Читать дальше →

Первые шаги с Java 9 и проект Jigsaw – часть вторая

Время на прочтение10 мин
Охват и читатели17K
Здравствуйте, Хабр.

После некоторого промедления публикуем вторую часть статьи о проекте Jigsaw и Java 9, вышедшую в блоге Codecentric. Перевод первой части находится здесь.
Читать дальше →