Pull to refresh
39
0
Artem Khvastunov @artspb

GoLand Team Lead

Send message

Когда я на часах

Reading time4 min
Views5.3K

Мы тут открыли позицию инженера поддержки в команде GoLand. Это сподвигло меня рассказать, как это у нас происходит. На Хабре уже есть хорошая статья об этом из 2014 года. Но, во-первых, GoLand тогда еще не существовал. А, во-вторых, многое с тех пор поменялось. Хотя забавно видеть, что все, кто дал тогда интервью, все еще работают в компании. Правда, не все на тех же позициях — иногда хочется заняться чем-то другим.


Вы можете сказать: «Что ты вообще в этом понимаешь? Ты же разработчик!» И это правда. Но сейчас у нас в команде нет выделенного инженера поддержки, поэтому каждый разработчик и QA, всего пять человек, дежурят по очереди. Мы называем это support duty. Вот об этом я и расскажу.


Palace Guard
"Palace Guard" by SdosRemedios is licensed under CC BY-ND 2.0

Total votes 17: ↑14 and ↓3+11
Comments13

Доступен PhpStorm 2017.3

Reading time6 min
Views21K

PhpStorm 2017.3


Всем привет!


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


Для вступления, я думаю, достаточно. Стоит разве что добавить, что статья является вольным переводом страницы “What’s new”. Скачать новую версию можно по предыдущей ссылке или с помощью Toolbox App. Как всегда, доступна 30-дневная пробная версия. Полную же версию могут использовать обладатели действующей подписки на PhpStorm или All Products pack, а также студенты и разработчики проектов с открытым исходным кодом.


Погнали! (Осторожно, под катом 2873.15 Кбайт картинок.)

Читать дальше →
Total votes 43: ↑43 and ↓0+43
Comments130

Выпущен PhpStorm 2016.2

Reading time4 min
Views32K
Всем привет!

Буквально вчера вышла новая версия PhpStorm, вторая в этом году. Я надеюсь, что ни наша IDE, ни компания JetBrains в отдельном представлении на Хабре не нуждаются, поэтому сразу перейду к основным изменениям. Кстати, чтобы не терять времени даром, можете поставить пробную 30-дневную версию на загрузку и читать дальше. Поехали!

image
Читать дальше →
Total votes 28: ↑25 and ↓3+22
Comments133

JetBrains: переосмысление подписки и поиск стабильности

Reading time5 min
Views26K
Перевод публикуется с разрешения автора, оригинал на Voxxed.

Когда 3 сентября JetBrains анонсировали изменения в своей лицензионной политике предложив модель подписки для своих инструментов [IDE — при. пер.], они, конечно, ожидали некоторой реакции со стороны сообщества. В действительности на них обрушился настоящий поток отзывов, от умеренно возмущенных до откровенно агрессивных. В ответ компания опубликовала пост: мы действительно слушаем своих пользователей. Сегодня, в третий и последний раз, они опубликовали результаты пересмотра предложенной модели. Вот официальное tl;dr от авторов IntelliJ IDEA:

  1. Подписка остается, но с существенными изменениями.
  2. Вы получите резервную бессрочную лицензию как только оплатите годовую подписку: разом или последовательно (в течение 12 месяцев).
  3. Вы получите скидку до 40% за непрерывную подписку.
  4. У вас будет возможность использовать программное обеспечение без подключения к Интернету.
  5. Текущие пользователи с действующей или недавно истекшей подпиской на обновления получат первые два года подписки по цене одного.
  6. Мы все же рекомендуем вам прочитать статью целиком, чтобы ознакомится со всеми деталями.

В этом интервью Hadi Hariri, лидер команды Developer Advocacy, объясняет, почему компания была так ошеломлена первой реакцией сообщества, почему они не вернут все как было и почему эти изменения так важны для компании и ее будущего.
Читать дальше →
Total votes 64: ↑53 and ↓11+42
Comments54

Компиляция и декомпиляция try-with-resources

Reading time9 min
Views16K
Компиляция и декомпиляция try-with-resources, или рассказ о том, как я фиксил баг и что из этого вышло.

Введение


PITestКакое-то время назад backlog рабочего проекта почти опустел, и вверх всплыли различного рода исследовательские задачи. Одна из них звучала весьма интригующе: прикрутить к проекту мутационное тестирования используя PITest. На Хабре уже есть весьма подробный обзор этой библиотеки (с примерами и картинками). Пересказывать эту статью своими словами я не буду, но все же рекомендую с ней предварительно ознакомиться.

Признаюсь, что идеей мутационного тестирования я загорелся. Почти без дополнительных усилий получить инструмент поиска потенциально опасных мест кода — оно того стоит! Я без промедления взялся за дело. На тот момент библиотека была относительно молодой, как следствие — весьма сырой: здесь нужно немного пошаманить с конфигурацией maven’а, там — пропатчить плагин для Sonar’а. Однако через некоторое время я все же смог проверить проект целиком. Результат: сотни выживших мутаций! Эволюция в масштабе на нашем build-сервере.

Засучив рукава я погрузился в работу. В одних тестах не хватает верификаций заглушек, в других вместо логики вообще непонятно что тестируется. Правим, улучшаем, переписываем. В общем, процесс пошел, но число выживших мутаций убывало не так стремительно, как хотелось. Причина была проста: PIT давал огромное количество ложных срабатываний на блоке try-with-resources. Недолгие поиски показали, что баг известен, но до сих пор не исправлен. Что ж, код библиотеки открыт. От чего бы не склонировать его и не посмотреть, в чем же дело?
Читать дальше →
Total votes 25: ↑25 and ↓0+25
Comments6

В американском сегменте МКС сработал датчик утечки аммиака

Reading time1 min
Views11K
image
Источник картинки: Wikipedia.

Как сообщает Федеральное космическое агенство, сегодня около 11:44 по московскому времени американский сегмент Международной космической станции (МКС) был изолирован. Экипаж сегмента был вынужден надеть противогазы и эвакуироваться в российскую часть станции. Сейчас там находятся три российских, два американских и один итальянский астронавт (четыре мужчины и две женщины). Как минимум день они должны будут ютиться на одной четвертой части станции с одним туалетом. Все они находятся в безопасности.
Читать дальше →
Total votes 30: ↑27 and ↓3+24
Comments10

Компиляция Try/Catch/Finally для JVM

Reading time7 min
Views22K

Вместо введения


Автор статьи, Alan Keefer1, является главным архитектором компании Guidewire Software2, разрабатывающей программное обеспечение для страхового бизнеса. Еще будучи старшим разработчиком, он участвовал в работе над языком Gosu3. В частности, Алан занимался вопросами компиляции языка в байт-код Java.

Данная статья написана в 2009 году и посвящена деталям реализации try/catch/finally в JVM версии 1.6. Для ее прочтения необходимо иметь базовые знания синтаксиса Java, а также понимать назначение байт-кода, простыни которого лежат под катом. Также в конце статьи приведен ряд примеров, похожих на каверзные задачи SCJP.

Внутренности JVM


Одной из вещей, над которой по целому ряду причин мы сейчас работаем, является компиляция нашего «домашнего» языка в байт-код Java. (Для справки: не могу сказать, когда мы закончим. Даже примерно. Даже попадет ли он в будущие релизы.) Веселье заключается в изучении внутренностей JVM, а также поиске всех долбанутых острых углов собственного языка. Но больше всего «веселья» и острых углов доставляют такие операторы, как try/catch/finally. Поэтому, на этот раз, я не буду вдаваться в философию или аджайл. Вместо этого я углублюсь в JVM, куда большинству не требуется (или не хочется) углубляться.

Если бы две недели назад вы спросили меня о finally-блоках, я бы предположил, что их обработка реализована в JVM: это базовая часть языка, она должна быть встроенной, не так ли? Каково же было мое удивление, когда я узнал: нет, не так. На самом деле finally-блоки просто подставляются во все возможны места после try- или связанных с ним catch-блоков. Эти блоки оборачиваются в «catch(Throwable)», который повторно выбросит исключение после того, как finally-блок закончит работу. Осталось только подкрутить таблицу исключений, чтобы подставленные finally-блоки были пропущены. Ну как? (Небольшой нюанс: до версии JVM 1.6 для оператора finally, по всей видимости, использовались подпограммы вместо полной подстановки. Но сейчас мы говорим о версии 1.6, к которой все вышесказанное применимо.)
Читать дальше →
Total votes 29: ↑27 and ↓2+25
Comments15

Используем Google Cloud Print без Google Chrome

Reading time3 min
Views37K


В этой статье я хочу рассказать, как можно использовать Google Cloud Print без установки Google Chrome. Целью статьи будет настройка машины под управлением Ubuntu Server в качестве сервера печати, а также настройка клиентов под управлением Windows, Mac OS и Linux (на примере Ubuntu). В общем случае в качестве сервера может выступать любая машина под управлением ОС семейства GNU/Linux, в том числе маршрутизатор с функцией принт-сервера.
Читать дальше →
Total votes 30: ↑27 and ↓3+24
Comments13

SOAP-сервер на Java при участии Apache CXF и Spring

Reading time7 min
Views63K
imageЗа последнее время появилось несколько статей, рассказывающих о протоколе SOAP, а также описывающих процесс создания сервера на различных языках и платформах. Продолжим тему. В этой статье будет описываться создание сервера на языке Java с использование Apache CXF и Spring Framework. Предполагается, что читатель уже имеет общее представление об упомянутом протоколе, а также о работе с ant и maven. Для того, чтобы сделать задачу немного интереснее, добавим начальное условие: дана WSDL-схема, описывающая веб-сервис. Итак…
(Картинка из статьи на Wikipedia.)
Читать дальше →
Total votes 23: ↑19 and ↓4+15
Comments30

Information

Rating
Does not participate
Location
Germering, Bayern, Германия
Date of birth
Registered
Activity