Давно в Java-мире не было такого оживления, как этой осенью: наконец-то вышла «девятка», завершены и другие «долгострои» (Java EE 8, JUnit 5, Spring Framework 5), Java EE отправляется в Eclipse Foundation, коммерческие фичи Oracle JDK решено опенсорснуть, а сама Java переходит на полугодовой релизный цикл.
Как в таком урагане новостей может выглядеть Java-конференция? Надо сосредоточиться на этих новых темах, или же думать о том, что многие разработчики не то что на «девятку», а на «восьмёрку» ещё не перешли? Мы провели в Петербурге пятый по счёту Joker — и под катом подробно написали о том, как это было. Читать дальше ->
Собрал в кучу свои впечатления от конференции, которая прошла 7-8 ноября.
В основном, на конференции речь шла про все что происходит вокруг фреймворка или что можно сделать с его помощью или на его основе. Это дает ощущение, что основная работа по развитию завершена. В 5 версии ребята здорово поработали над оптимизацией размера. Про какие-то изменения в ядре не упоминалось.
В прошлой статье мы рассказали о созданной нами системе под названием ULA (Unified Logfile Analyser) — анализаторе, основными функциями которого являются сбор и агрегация входящих сообщений об ошибках c использованием алгоритма shingles, принятие решений по ним и автоматическая нотификация при проблемах с тестовой средой. Сегодня мы поделимся практикой обнаружения/решения багов раскатки этой системы и нашими планами.
Когда-то давно, знойным летом 2013 года вы и именно вы убедили нас взяться за работу над замечательной книгой "Изучаем Java EE 7" Энтони Гонсалвеса, которая выдержала 6 тиражей и стала настоящим бестселлером. Теперь мы всерьез рассчитываем еще до конца года приступить к работе над книгой по Java EE 8 от грамотного и симпатичного специалиста Себастьяна Дашнера.
7 ноября господин Дашнер опубликовал статью с собственными размышлениями о перспективах и плюшках Java EE 8. Под катом вашему вниманию предлагается перевод этой статьи с немецкого языка Читать дальше ->
С тем, что в Avito уделяют внимание мобильной разработке, не поспоришь: там принялись использовать Kotlin задолго до того, как это стало модным, а на нашей конференции Mobius регулярно выступают спикеры из этой компании. И накануне московского Mobius мы расспросили двух сотрудников Avito: Дмитрий divor Воронин рассказал нам как раз об опыте использования Kotlin, а Егор YourDestiny Толстой — о мобильной разработке в целом.
И почти всю эту неделю мы проводим в нашем офисе собеседования кандидатов, некоторые из которых получаются довольно забавными. Например, один кандидат спросил, во что мы играем по локалке :) На фоне этого в паблике ВК решили устроить небольшую развлекуху: «Провалите собеседование в компанию мечты (должность на выбор: фронтендер / бэкендер / дизайнер / сисадмин) с помощью 4 слов?». С первых минут в комментариях стало смешно — даже решили сделать небольшую подборку. Читать дальше ->
Учитывая что в Уфе зима приближается решительными марш-бросками, почему бы не поехать в конце октября на конференцию, куда-нибудь, где +20, и хоть немного, напоследок перед зимой, увидеть солнышко? Сказано-сделано: посмотрел конференции, сравнил докладчиков, посмотрел где еще есть early-bird access цены — и забронировал.
В этом году мы с коллегой разделились, и поехали на Agile Greece и Agile Turkey, дабы сравнить мероприятия, ну и рассказать что интересного было на каждой из них. Неоспоримы плюс Agile Turkey в этом году был открывающий доклад от Дейва Сноудена (создателя фреймворка cynefin, о которой вскользь писали на хабре). Обычно на подобных конференциях после докладов, спикеров облепляют заинтересованные, и свои вопросы задать и подискутировать не получается, что и было моим опасением, так как спросить надо было много.
Конференция и организация
Agile Turkey Summit проходит уже не первый год, в отеле Wyndham Grand Levent в Стамбуле (в активно строящемся небоскребно-деловом районе Maslak). Продолжается мероприятие всего 1 день (выпавший в этом году на 19 октября), хотя мастер-классы и воркшопы прошли еще 18-го числа. 4-й конференц-этаж отеля явно неспособен принять ~800 посетителей, что особенно очевидно, когда всех пытаются накормить.
На собеседованиях мне довольно часто попадались вопросы про вложенные классы. Поэтому я решил разобраться в них, систематизировать свои знания, а заодно и поделиться этими знаниями с вами.
Вложенный класс (InnerClass)
public class OuterClass {
public class InnerClass{
}
}
Из него видны:
— все (даже private) свойства и методы OuterClassа обычные и статические.
— public и protected свойства и методы родителя OuterClassа обычные и статические. То есть те, которые видны в OuterClassе.
Его видно:
— согласно модификатору доступа.
Может наследовать:
— обычные классы.
— такие же внутренние классы в OuterClassе и его предках.
Может быть наследован:
— таким же внутренним классом в OuterClassе и его наследниках.
Может имплементировать интерфейс
Может содержать:
— только обычные свойства и методы (не статические).
Создаётся из другого класса так:
OuterClass outerClass = new OuterClass();
OuterClass.InnerClass innerClass = outerClass.new InnerClass();
70 тысяч звездочек на гитхабе и сотни интересных проектов. Кажется, что D3 это что-то большое и очень сложное, но это не так. Я расскажу об основах D3 и поделюсь опытом разработки инфографики Бюростат.
Привет, Хабр! Сегодня мой рассказ пойдёт о техническом опыте проведения ICO на платформе Ethereum перед и во время ICO. Я поучаствовал пока в небольшом количестве проектов, но уже успел собрать некоторый технический бэкграунд. Могу поспорить, технический roadmap по проведению ICO аудитории Хабра будет интересен. Прошу под кат всех заинтересованных.
«Тестирование можно использовать для того, чтобы доказать наличие ошибок в программе, и никогда — для того чтобы доказать их отсутствие!»
Эдсгер Дейкстра
Тестирование — это прикладная, стандартизированная, инженерная практика, которая применима в большинстве отраслей человеческой жизни. Тестирование, как философия, метрика или практика, существует намного дольше, чем программирование. К примеру, мы выковали меч. Чтобы проверить достаточно ли острым он получился, его испытывают. В некоторые эпохи даже на живом человеке, скажем, рабе.
Тестирование — это проверка работоспособности программы, предмета или любой промышленной разработки. Как и в любом деле, здесь есть свои тонкости и своя философия. Она, наверное, ближе тестировщикам, которые на произведенные нами вещи смотрят деструктивно — они с самого начала думают о том, как сломать предложенный разработчиками продукт. Это не очень типично для пользователей, которые более предсказуемы и обычно находят ошибки, случайно пытаясь сделать с нашей программой что-то нетипичное. У разработчиков подход к программам в принципе другой, но мы должны помнить: тестировщики должны ломать то, что мы создали — это их хлеб. Читать дальше ->
За пять дней, с 24 по 28 июля 2017 года, я прошел собеседования в LinkedIn, Salesforce Einstein, Google, Airbnb и Facebook; все пять компаний предложили мне работу. Это был замечательный опыт и я понимаю, как мне повезло, что мои усилия оправдали себя, поэтому решил написать об этом. Здесь я расскажу о том, как готовился к собеседованиям, как они проходили и какое впечатление произвели на меня компании.
Как все началось
Я отработал в Groupon почти три года. Это моя первая работа, там были и прекрасные люди, и отличные проекты. Мы делали всякие интересные штуки, вводили перемены внутри компании, публиковали материалы и все в таком духе. Но со временем я стал ощущать, что темп моего самообразования стал затухать (попросту говоря, замедляться), мне не хватало пищи для ума. К тому же, как и всякого разработчика ПО из Чикаго, меня тянуло в Область залива Сан-Франциско — ведь там столько известных компаний.
Жизнь коротка, а профессиональная жизнь еще короче. Обговорив все с женой и заручившись ее полной поддержкой, я решил сделать решительный шаг и в первый раз в жизни поменять работу. Читать дальше ->
Недавно мы рассказали о способах, с помощью которых сэкономили более миллиона долларов на годовом обслуживании AWS. Хотя мы подробно рассказывали о различных проблемах и решениях, всё равно самым популярным вопросом был: «Я знаю, что слишком много трачу на AWS, но как в реальности разбить эти траты на понятные части?»
На первый взгляд, проблема кажется довольно простой.
Вы можете легко разбить свои расходы AWS по месяцам и закончить на этом. Десять тысяч долларов на EC2, одна тысяча на S3, пятьсот долларов на сетевой трафик и т.д. Но здесь отсутствует кое-что важное — на сочетание каких именно продуктов и групп разработки приходится львиная доля расходов.
И учтите, что у вас могут меняться сотни инстансов и миллионы контейнеров. Вскоре то, что поначалу казалось простой аналитической проблемой, становится невообразимо сложным.
В этом продолжении статьи мы хотели бы поделиться информацией о наборе инструментов, который сами используем. Надеемся, что сумеем предложить несколько идей, как анализировать свои затраты AWS независимо от того, работает у вас парочка инстансов или десятки тысяч. Читать дальше ->
Настало время поделиться новостями программы конференции ZeroNights. Мы расскажем о каждом докладе, который можно будет послушать на ZN, предстоящих мастер-классах, конкурсах, а также представим нововведение этого года — Web Village (наконец-то).
Несколько дней назад мы в компании BitClave прочли о недавнем инциденте с мультиподписными кошельками компании Parity Technologies, решили пригляделся к коду их смарт-контракта. Свежий пост в блоге компании Zeppelin Solutions детально описывает произошедший инцидент с технической стороны, поэтому мы хотели бы в нашей статье больше сфокусироваться на принципах проектирования смарт-контрактов.
Привет! Меня зовут Аркадий, я тимлид в компании Badoo. Сегодня я расскажу вам о том, как за одни выходные мы сделали предложение о работе восьми мобильным разработчикам. И снова приглашу вас поучаствовать в нашем рекрутинговом мероприятии, по итогам которого лучших Android- и iOS-разработчиков мы заберём работать в лондонский офис Badoo.
Сегодня публикуем третью часть из серии материалов, посвящённой разработке приложения Budget Manager с использованием Node.js, Vue.js и MongoDB. В первой и второй частях мы создавали сервер, настраивали механизмы аутентификации и занимались обустройством фронтенда. В этом материале продолжим работать над клиентской и серверной частями системы. То, что уже создано, пока почти не касается логики самого приложения, которое предназначено для работы с финансовыми документами. Поэтому, кроме прочего, мы займёмся и этим аспектом проекта.
В DataGrip, как и в других наших IDE с поддержкой баз данных, есть механизм экспорта данных. Пользователь выбирает формат экспорта из предложенных или создает его сам.
Симуляция физики делает небольшие предсказания на основании законов физики. Эти предсказания на самом деле достаточно просты, что-то вроде «если объект вот здесь и он движется с такой скоростью в этом направлении, то за краткий промежуток времени он окажется вот тут». Мы создаём такие предсказания с помощью математической техники под названием интегрирование.
Темой этой статьи как раз и будет реализация такого интегрирования.
Интегрирование уравнений движения
Вы можете помнить из курса старшей школы или вуза, что сила равна произведению массы на ускорение.
Преобразуем это уравнение и увидим, что ускорение равно силе, делённой на массу. Это соответствует нашим интуитивным ожиданиям, потому что тяжёлые объекты труднее бросать.
Ускорение — это темп изменения скорости от времени:
Аналогично, скорость — это темп изменения позиции от времени:
Это значит, что если мы знаем текущие позицию и скорость объекта, а также приложенные к нему силы, то сможем проинтегрировать, чтобы найти его позицию и скорость в определённый момент времени. Читать дальше ->
Говорят, бесконечно можно смотреть на три вещи: как горит огонь, как течет вода и как работают другие люди. То есть, идеальный объект для наблюдений — прямая трансляция большой конференции.
И кстати, у нас есть для вас одна такая. В это воскресенье и понедельник проходит DotNext 2017 Moscow — крупнейшая в России конференция, посвященная разработке на платформе .NET. Три десятка спикеров выступят с докладами о настоящем и будущем платформы .NET, об оптимизации производительности и многопоточности, о внутреннем устройстве платформы .NET и CLR, о профилировании и отладке .NET-кода, и так далее.
И у вас есть возможность поучаствовать в этом — без необходимости куда-то лететь или ехать через полгорода, на YouTube, бесплатно. Как именно — читайте дальше.