Приглашаем вас на очередную встречу Java-разработчиков ThinkJava #4. Спикеры нашего ThinkJava-сообщества переплыли моря и океаны, чтобы побывать на SpringOne Platform в Лас-Вегасе, и теперь готовы поделиться привезёнными знаниями и своим опытом со всеми гостями ThinkJava #4. Мы посвящаем эту встречу вопросам облачных вычислений.
Читать полностью »
Рубрика «java» - 178
Анонс встречи ThinkJava #4 (Харьков)
2016-11-15 в 7:45, admin, рубрики: java, ThinkJava #4, Блог компании NIX Solutions, Программирование, метки: ThinkJava #4История одного тестового задания
2016-11-14 в 12:15, admin, рубрики: Ecwid, hr-процесс, java, Блог компании Ecwid, Карьера в IT-индустрии, тестовое задание, Управление продуктом, управление разработкой, фрилансГлава отдела разработки Ecwid Василий Васильков написал о том, как кандидаты делают тестовые задания и что из этого выходит. Получилось забавно. Публикуем заметку слово в слово.
***
Я расскажу историю одного тестового задания. Немного длинную, но, надеюсь, интересную.
У нас в Ecwid все тестовые задания для инженеров выложены открыто на GitHub вот тут — github.com/Ecwid/new-job. Можно просто начать делать любую понравившуюся задачу, никого не предупреждая, а потом, когда сами будете довольны результатом, поделиться им со мной.
Одно из первых заданий, что я придумал, был консольный качальщик файлов по HTTP. Оно очень простое и придумывал я его именно с такой мыслью. Пусть, рассуждал я, пока такое простое повисит, а потом-то я, конечно, добавлю крутые задания. Потом-то я ого-го что выдумаю! Такие крутые тестовые выложу, что все ахнут и немедленно побегут их делать, а этот примитивный качальщик я куда-нибудь запрячу и никому больше не буду показывать. Как-то так я тогда думал.
Качальщик нужно сделать действительно очень примитивный. Судите сами — ты ему список ссылок в текстовом файле, а он скачивает эти файлы и кладет в указанную папку на локальном диске. Должен уметь качать несколько файлов одновременно (в несколько потоков, например, 3 потока) и выдерживать указанное ограничение на скорость загрузки, например, 500 килобайт в секунду. Всё.
Читать полностью »
Как я добавил 30000 человек в первый круг контактов, а эту соцсеть заблокируют в РФ
2016-11-14 в 6:39, admin, рубрики: chromium, java, mvn-classloader, webdriver, Программирование, Тестирование веб-сервисовВспоминая собеседования из своего прошлого решил «не идти в гору», а чтобы гора сама пришла ко мне, точнее кадровые сотрудники с вакансиями. Опять поиск работы и теперь на рынке где реальные доходы стали меньше, а соискателей больше…
Но тратить время на рутинные операции по поиску и добавлению профессионалов в социальной сети не хотелось. После 2000 кликов вручную критерии поиска у меня оказались формализуемые. Поэтому написал скрипт который экономит мое время и зрение. К общению с людьми я не пускаю бездушного «робота». Сам пишу и сам отвечаю.

Мне посчастливилось познакомиться и пообщался с интересными людьми из индустрии, получить сотни сообщений со спамом и ссылки на сотни вакансий. Готового скрипта здесь не будет, но в публикации есть пара фрагментов кода для магии webdriver и ссылки. Также вы узнаете последние новости про поиск работы в России и описание моего опыта по продвижению в соцсети…
Читать полностью »
Правильный полиморфный билдер на Java
2016-11-13 в 15:36, admin, рубрики: builder, generic, java, оопО чем все это?
При реализации chained builder на Java все прекрасно, пока не понадобится добавить наследование. Сразу же возникают две проблемы — как сделать, чтобы методы родительского билдера возвращали объект дочернего билдера и как передавать дочерний билдер в функции, принимающие родительский. Предлагается реализация паттерна, которая позволяет решить обе проблемы. Исходники можно посмотреть здесь на гитхабе
Представление данных SAP R-3 в Oracle Database с помощью SAP Java Connector
2016-11-13 в 12:41, admin, рубрики: connector, integration, java, jco, oracle, oracle database, sap, sap java connector, sap r/3В очередной раз возникла необходимость связать две известные системы между собой, теперь это будут Oracle Database и SAP. Возможно, существуют платные методы связывания, но в данном случае речь идёт о необходимости воспользоваться небольшими порциями данных.
Расскажу о том, как можно отобразить данные, взятые из SAP, с помощью оператора select. Пример будет очень простой, для демонстрации принципиальной возможности. Создан он на основе прилагаемых к SAP JCo или общедоступных исходных текстов.
Сразу замечу, что SAP JCo выдают только тем, кто платит. А Oracle Database не приветствует вызовов java с использованием бинарных библиотек, поэтому, по умолчанию такая возможность должна быть специально разрешена.
No way back: Почему я перешел с Java на Scala и не собираюсь возвращаться
2016-11-11 в 17:49, admin, рубрики: holywar, java, scalaСпоры насчет преимуществ и недостатков Scala перед Java напоминают мне споры о C против С++. Плюсы, конечно же, на порядок более сложный язык с огромным количеством способов выстрелить себе в ногу, уронить приложение или написать совершенно нечитабельный код. Но, с другой стороны, C++ проще. Он позволяет делать простым то, что на голом C было бы сложно. В этой статье я попытаюсь рассказать о той стороне Scala, которая сделала этот язык промышленным — о том, что делает программирование проще, а исходный код понятнее.
Читать полностью »
Offensive programming: параноидальное, наступательное, атакующее или беззащитное программирование
2016-11-09 в 15:33, admin, рубрики: defensive programming, edisonsoftware, java, Offensive programming, Блог компании Edison, ненормальное программирование, отладка, Программирование, разработка, тестирование, метки: defensive programming, Offensive programmingКак сделать ваш код лаконичным и послушным одновременно?

Вам когда-нибудь встречалось приложение, которое вело себя очевидно странно? Ну, вы знаете, вы нажимаете на кнопку и ничего не происходит. Или экран вдруг чернеет. Или приложение впадает в «странное состояние» и вам приходится перезагружать его, чтобы все снова заработало.
Если у вас был подобный опыт, то вы вероятно стали жертвой определенной формы защитного программирования (defensive programming), которую я бы хотел назвать «параноидальное программирование». Защитник осторожный и рассудительный. Параноик испытывает страх и действует странно. В этой статье я предложу альтернативный подход: Offensive programming .Читать полностью »
Стоит ли бояться DevOps-а современному QA
2016-11-09 в 8:48, admin, рубрики: java, Блог компании JUG.ru Group, тестирование, Тестирование IT-систем, тесты
Вы слышали про DevOps, но слабо представляете что это такое? Может быть, вы QA-инженер и вас пугает, что спрос на вас может упасть из-за DevOps? Или вы разработчик и хотите прокачать себя и свою команду до внедрения DevOps-а, но не знаете, с чего начать? Ответы под капотом.
На вопросы отвечает Full-stack Engineer в компании ZeroTurnaround, со-ведущий русскоговорящего DevOps подкаста «Two Devs One Ops» Сергей bsideup Егоров (twitter.com/bsideup).
Сергей Егоров:
«… Деплой, изменение инфраструктуры, недостаток знаний о разных частях системы, прозрачность доставки изменений, сложность локальной разработки, “борьба с огнём” после выкатывания на боевые сервера… по каждому из них DevOps даёт ответы и рекомендации»
Читать полностью »
JRuby + Ratpack = ❤️
2016-11-09 в 3:50, admin, рубрики: java, jruby, ratpack, ruby, высокая производительностьJRuby + Ratpack = Love
Многие разработчики на Ruby знают как обстоят дела с асинхронным выполнением кода на имеющихся серверах.
Либо вы используете что-то на EventMachine, либо колдуете с Ruby::Concurrent, Celluloid.
В любом случае, это работает не сильно эффективно из-за GIL (ждем, надеемся и верим в Ruby 3).
Но есть реализации свободные от этой проблемы, одна из них поверх JVM — JRuby, где теже самые библиотеки будут чувствовать себя гораздо комфортней.
Много расписывать не буду, думаю все как минимум слышали про него.
Главной особенностью данной реализации является легкая интеграция с любой библиотекой на JVM.
Это открывает большой простор в выборе библиотек и готовых инструментов.
Управляем автоматом на Groovy-Java. Как ЧПУ станку в домашней мастерской не превратиться в мульт героев «двое из ларца»
2016-11-08 в 10:08, admin, рубрики: apache camel, beagleboard black, blendercam, CAD/CAM, freecad, g-code, gcodetools, grape, groovy, hawtio, heekscad, inkscape, java, LinuxCNC, machinekit, open source, Raspberry Pi, ПрограммированиеПоговорим на темы от труда и работы, станков, автоматизации на java/groovy до прогнозов о будущем человечества.
Узнаете про персональное автоматизированное производство в домашней мастерской, как идея творца превращается в готовое изделие. Рассмотрим подход по отправке G-code инструкций из JVM и groovy/java на исполнение ЧПУ станку для автоматизации того, чего нет в системе «из коробки».

Надеюсь, эта публикация будет познавательна программистам работающих с JVM, тем кто интересуется темой IoT, кому не чуждо мастерить, кто думает о покупке 3D принтера, кто делал прототип какой-либо системы и запускал ПО на Raspberry PI/Beagleboard Black. То про что расскажу, можно повторить используя open source software и open hardware.
Читать полностью »
