Pull to refresh
39
Karma
0
Rating
Artem Khvastunov @artspb

GoLand Team Lead

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

JetBrains corporate blog Go *Service Desk *

Мы тут открыли позицию инженера поддержки в команде 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
Views 5.2K
Comments 13

Доступен PhpStorm 2017.3

JetBrains corporate blog Website development *PHP *Programming *

PhpStorm 2017.3


Всем привет!


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


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


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

Читать дальше →
Total votes 43: ↑43 and ↓0 +43
Views 21K
Comments 130

Выпущен PhpStorm 2016.2

JetBrains corporate blog Website development *PHP *Programming *
Всем привет!

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

image
Читать дальше →
Total votes 28: ↑25 and ↓3 +22
Views 32K
Comments 133

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

Website development *
Translation
Перевод публикуется с разрешения автора, оригинал на 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
Views 25K
Comments 54

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

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

Введение


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

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

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

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

Astronautics
image
Источник картинки: Wikipedia.

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

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

Java *
Translation

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


Автор статьи, 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
Views 22K
Comments 15

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

Google Chrome
Tutorial


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

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

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

Information

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