Завершающей этот год на jug.msk.ru стала встреча с Иваном Крыловым (Azul Systems), состоявшаяся 15 декабря 2016 года. Темой разговора стала давно ожидаемая Java 9.
Рубрика «java» - 155
Разговор про Java 9 с Иваном Крыловым на jug.msk.ru
2016-12-18 в 16:04, admin, рубрики: azul, java, Jigsaw, JUG, jug.msk.ru, Блог компании JUG.ru GroupМониторим фриланс площадки в slack
2016-12-16 в 9:04, admin, рубрики: Apache ActiveMQ, apache camel, freelance, java, slack, ПрограммированиеВ этой статье мы бы хотели рассказать о нашей новой платформе Job Freelance Scanner, которая находится в свободном доступе. В поисках нового проекта порой приходится мониторить фриланс площадки на наличие подходящего предложения. Это порождает ряд проблем: поиск по разным сайтам, вбивание в поиске нужных ключевых слов, отсеивание дубликатов — все это отнимает время. Плюс, надо помнить читал ли ты это предложение. Вот было бы удобно мониторить это одним инструментом, при этом в онлайн режиме.
Наша компания занимается разработкой интеграционных решений и регулярно нуждается в поиске предложений в этой области. Таким образом, сформировалась задача: разработать платформу для мониторинга предложений о работе с крупных площадок. Платформа должна отслеживать предложения, содержащие некоторые ключевые слова, и публиковать их в slack канале.
После реализации приложения и локального запуска мы решили опубликовать его для сообщества, предоставить свободный доступ для использования, а также опубликовать исходники. В итоге, мы представляем платформу Job Freelance Scanner.
Возможности
Job Freelance Scanner — платформа для мониторинга предложений с крупных глобальных площадок по поиску работы, разработанная компанией Leadex Systems. Эта платформа позволяет получать предложения единым потоком в канал связи (Slack) от таких площадок как:
Сообщение о новом предложении о работе поступают в кратчайшие сроки после публикации, что позволяет осуществлять мониторинг свежих предложений и откликаться на них одним из первых. Пример сообщения с предложением о работе в канале slack:
[Питер] Дмитрий Чуйко — JEP 295: Ahead-of-Time компиляция для HotSpot
2016-12-15 в 8:22, admin, рубрики: ahead-of-time, AOT, java, java9, JDK, JUG, jug.ru, jvm, Блог компании JUG.ru Group
В четверг 22 декабря в 20:00 в петербургском офисе компании Oracle состоится встреча JUG.ru c Дмитрием Чуйко, инженером Oracle из Java SE Performance Team. Тема встречи — Ahead-of-Time компиляция для HotSpot JVM.
Существуют различные реализации платформы Java. В некоторых из них есть Ahead-of-Time (AOT) компиляторы, причём подход к решению различный, да и постановка задачи разная. В данный момент в HotSpot есть JIT‑компиляция, но нет стандартного AOT. Не обязательно, что так будет всегда.
Читать полностью »
Add-on к Авито. Стартап или пример архитектуры
2016-12-14 в 12:35, admin, рубрики: android, golang, java, mysql, Анализ и проектирование систем
Предыстория
Честно говоря, никогда ранее не покупал б/у вещи на досках объявлений. Но когда случился очередной экономический кризис и нужда заставила, пришлось обратить свое внимание на Авито.
При осмотре предложений сразу бросилось в глаза, что часть объявлений выглядит сомнительными по ряду признаков: заниженная цена, неточное описание и т.п., по которым складывалось впечатление, что или продают не то, что предлагают, или сами не знают что продают. В памяти сразу возник образ из прошлого — барахолки 90-х годов, с которых можно было вернуться как с покупками, так и с пустыми карманами или порезанной сумкой.
Читать полностью »
Как стать Oracle Certified Professional Java SE 8 Programmer
2016-12-12 в 11:33, admin, рубрики: certification, java, oracle, Учебный процесс в IT В этой статье речь снова пойдет о сертификации. Не так давно я рассказывал о процессе получения сертификата от компании Google для Android разработчиков. Почитать об этом можно вот здесь. В статье я периодически приводил сравнение с процессом получения сертификатов от Oracle. Немного подумав, я решил раскрыть эту тему подробнее, благо сертификат от Oracle я получил полгода назад и еще не все забыл. Естественно, на хабре уже не раз описывали этот процесс. Например, достаточно подробные описания можно найти тут и тут. Однако, указанные статьи были написаны несколько лет назад, и затрагивают Java SE 7. Я же постараюсь сосредоточиться на особенностях экзамена по Java SE 8 и в принципе обновить информацию по процессу получения сертификата. Тех, кому все еще интерсено, прошу под кат.
Читать полностью »
Первые шаги в Java: как начать разрабатывать ничего не устанавливая
2016-12-06 в 9:00, admin, рубрики: codenvy, eclipse che, github, java, maven, Программирование, системы сборкиПо прошествию многих лет я подумал, а как бы я разрабатывал свою первую программу на Java, если бы я начал сегодня?
Знакомство с Java было в университете и при воспоминаниях об этом бросает в холодный пот. Кроме нового незнакомого языка, приходилось устанавливать какой-то JDK, потом IDE, потом создавать первый проект и вручную добавлять в него библиотеки. Делать по аналогии с готовыми программами и ловить неизведанные java.lang.ClassNotFoundException и java.lang.NoSuchMethodException и тому подобный ужас. Когда знал как работать только в операционной системе Windows и доступ в интернет был по модему через телефонную линию.
Надеюсь интересно будет как тем, кто делает первые шаги в java и тем, кто помнит jdk 1.4. Попробуем online IDE Eclipse Che. Читать полностью »
О значимости Java и откуда появилась сотня вакансий Architects в Crossover
2016-12-02 в 10:48, admin, рубрики: chief software architect, java, Блог компании Crossover, зарплата, управление персоналомКоллеги из американской компании Crossover, трудоустраивающей дистанционно ИТ-специалистов, рассказали Хабру о востребованности Java. Энди Триба, СЕО Crossover, Мирча Стругару, ее технический вдохновитель (VP of Engineering), Патроклос Папапетру и Дмитрий Ионаш (Chief Architects)
Читать полностью »
Блеск и нищета php. Эволюция языка от 4.x к 7.1
2016-12-01 в 3:38, admin, рубрики: cms, java, php, php7, php7.1, symfony, web-разработка, yii, Программирование, Разработка веб-сайтов
По слухам сегодня должен состояться релиз 7.1. Поэтому хотелось бы немного оглянуться назад и посмотреть, а как же php вырос из набора костылей и подпорок в полноценный язык для веба. Прямо по шагам, т.е. по версиям. А в конце хотелось бы немного поразжигать поразмыслить о роли php в современной экосистеме.
Давайте мысленно вернемся во времена php4, когда получили своё развитие wordpress, bitrix и миллионы других CMS и домашних страничек.
Особенности мультиоконного режима на Android-планшетах
2016-11-29 в 13:11, admin, рубрики: android, android n, java, tablet, Блог компании Лайв Тайпинг, мультиоконность, планшет, Разработка под androidПривет! В этой статье я хочу рассказать, какие проблемы могут возникнуть с появлением мультиоконного режима на планшетных версиях приложений. Команда Android-разработки компании Лайв Тайпинг столкнулась с ними, когда адаптировала приложение ИЛЬ ДЕ БОТЭ под планшет. Будьте готовы к тому, что эти же проблемы будут и у вас.
Как вы все знаете, в конце августа 2016 года вышла Android 7.0, и одной из её основных особенностей является поддержка мультиоконности. Это прекрасная функция, которая поднимает удобство Android на новый уровень. Все пользователи будут на седьмом небе от счастья, но то, что является счастьем для пользователя, может обернуться болью для разработчика. К сожалению, с мультиоконностью на планшетах именно так и произошло. И именно на планшетах — на телефонах-то с ней как раз всё отлично, заранее говорю.
Если вы делаете планшетные версии приложений или вы просто неравнодушны к мультиоконному режиму, то добро пожаловать в статью!
Читать полностью »
12 млрд реквестов в месяц за 120$ на java
2016-11-29 в 8:48, admin, рубрики: distributed systems, high-load, java, netty, performance, vanilla java, Анализ и проектирование системКогда Вы запускаете свой продукт — Вы совершенно не знаете, что произойдет после запуска. Вы можете так и остаться абсолютно никому не нужным проектом, можете получить небольшой ручеек клиентов или сразу целое цунами пользователей, если про Вас напишут ведущие СМИ. Не знали и мы.
Этот пост об архитектуре нашей системы, ее эволюционном развитии на протяжении уже почти 3-х лет и компромиссах между скоростью разработки, производительностью, стоимостью и простотой.
Упрощенно задача выглядела так — нужно соединить микроконтроллер с мобильным приложением через интернет. Пример — нажимаем кнопку в приложении зажигается светодиод на микроконтроллере. Тушим светодиод на микроконтроллере и кнопка в приложении соответственно меняет статус.
Так как мы стартовали проект на кикстартере, перед запуском сервера в продакшене у нас уже была довольно большая база первых пользователей — 5000 человек. Наверное многие из Вас слышали про известный хабра эффект, который положил в прошлом многие веб ресурсы. Мы, конечно же, не хотели повторять эту участь. Поэтому это отразилось на подборе технического стека и архитектуре приложения.
Сразу после запуска вся наша архитектура выглядела так:
Это была 1 виртуалка от Digital Ocean за 80$ в мес (4 CPU, 8 GB RAM, 80 GB SSD). Взяли с запасом. Так как “а вдруг лоад пойдет?”. Тогда мы действительно думали, что, вот, запустимся и тысячи пользователей ринут на нас. Как оказалось — привлечь и заманить пользователей та еще задача и нагрузка на сервер — последнее о чем стоит думать. Из технологий на тот момент была лишь Java 8 и Netty с нашим собственным бинарным протоколом на ssl/tcp сокетах (да да, без БД, spring, hibernate, tomcat, websphere и прочих прелестей кровавого энтерпрайза).
Все пользовательские данные хранились просто в памяти и периодически сбрасывались в файлы:
try (BufferedWriter writer = Files.newBufferedWriter(fileTo, UTF_8)) {
writer.write(user.toJson());
}