О тестах в Java

Сейчас напишу такую вещь, за которую мэтры программирования меня заплюют, хоть сразу зонтик бери: я никогда не писал и не использовал тестов в Java. Я даже не совсем понимал, какого чёрта в структуре папок maven предусмотрена для них отдельная директория.

Поплевались, господа мэтры? 😉

Но сегодня впервые попробовал сделать Java-тест и… это мне понравилось! Нужно было по-быстрому добавить в телеграм-бота один единственный класс и не хотелось возиться с проверкой вживую: нужно создавать нового бота (ибо старый уже репостит записи из дзена в t.me/minecraftmain), а это вообще лениво.

В итоге, решил попробовать сделать тест. Как всегда в Intellij IDEA всё оказалось очень просто. И уже через минуту я исправлял ошибки, которые отловил с помощью теста.

Скорее всего, я ещё не осознаю всех возможностей использования такого тестирования, но уже начальный опыт меня радует. Дальше буду читать, разбираться и пробовать.

В общем, друзья, если вы балуетесь джавой и не пользовались раньше тестами, то попробуйте. Не пожалеете.

Забавный способ монетизации приложений

Мало быть гениальным программистом, чтобы твоё приложение хорошо распространялось. Можно написать самую интересную игру, самое полезное приложение, но без какого-то стимула оно не станет распространяться.

Например, моё приложение, устанавливающее в Minecraft для Android ресурспак с переводами из Minecraft Java Edition, стало активно распространяться после того как его обсудили в каких-то индонезийских и вьетнамских блогах/форумах. Именно благодаря этому приложением воспользовались уже 300 000 человек. Но если бы не это, если бы не связь с популярным Майнкрафтом, то я просто не представляю что нужно сделать, чтобы достичь таких показателей.

И видно не я один. На сайте gamegorillaz продаются исходники приложений, которые можно взять и, слегка переделав, распространять под своим именем.

Вот пример, такой игры: White Peas Puzzle Game.

Это какой-то паззл, который… ну вряд ли бы завоевал вершины загрузок GooglePlay или Apple AppStore. Что интересно, находятся те, кто решил купить исходники и выложить игру под своим именем. Комментарии просто удивляют:

Комментариев немного. Однако даже тут видно, что эту игру пытаются выложить в GooglePlay под своим именем. И автор в общем-то не удивлён.

Исходный код приложения продается за 6 долларов (один цент считать не будем). Получается забавная бизнес-модель. Можно покупать такие приложения пачками, выкладывать их под своим именем, вставлять в них рекламу или продавать каждое за какую-то смешную сумму и надеяться, что какое-то из приложений «выстрелит». Но хочется надеяться, что не выстрелит ни одно — мусора GooglePlay и так выше крыши.

Kura-kura или penyu

Недавно индонезийские переводчики Minecraft решили выяснить, какую черепаху подразумевали разработчики: морскую или обычную. Я сначала не понял с чем это связано. Оказалось — в их языке эти виды черепах называются по-разному.

По-индонезийски Kura-kura — это обычная черепаха, Penyu — морская.

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

Обожаю такие нюансы 🙂

Я написал плагин для WordPress — Виджет для Яндекс. Дзен

Вообще это не первый мой плагин для WordPress. Их у меня уже несколько штук. Каждый решает какую-то конкретную, нужную только мне, задачу. А вот этот плагин я решил довести до ума (несмотря на мою нелюбовь php) и выложить в свет.

Интересный получился опыт.

Во-первых, любопытно было сравнить процедуру одобрения плагинов для Bukkit, где я когда-то был одним из участников «BukkitDev Staff» и то как проводится эта процедура здесь. Для того чтобы плагин прошёл проверку нужно сначала отправить предварительный вариант. Мне указали на несколько ошибок. После чего плагин нужно снова отправлять проверяющему по почте. В общем за пару дней, этот этап был пройден. Далее всё ещё интереснее. Если на BukkitDev / Curse есть полноценный интерфейс для редактирования страницы плагина, загрузки разных версий. То тут — это просто доступ к svn-репозиторию. А описание — это специальным образом (что-то вроде markdown) отформатированный readme.txt.

Во-вторых, очень любопытно осуществляется перевод плагинов. Я с дуру написал плагин на английском, чтобы потом добавить перевод. А оказалось, что можно было писать всё на русском и потом переводить (или не переводить на английский). Всё-таки потенциальные пользователи плагина в большинстве своём окажутся русскоязычными.

Процедура перевода плагина очень любопытна. Если плагин соблюдает определённый синтаксис предусмотренный API Wodpress, то его переводить можно на сайте проекта перевода WordPress. Естественно я бросился сразу переводить. Но не тут-то было. Оказалось, у меня нет прав на подтверждение переводов для моего плагина. Пришлось искать специального человека — редактора русского перевода WordPress, который выдал мне соответствующие права.

Перевёл, подтвердил. Полез смотреть страницу плагина и сам плагин — нет русского. Расстроился: неужели чего-то пропустил. Пока перечитывал документацию — всё заработало. Оказалось переводы синхронизируются не сразу, а через какое время.

В общем, забавно.

P. S. Плагин доступен в репозитории WordPress, искать по названию «Widget for Yandex Zen». Ну или можно просто скачать его здесь.

Владивосток — две тыщщи!

Центробанк пробился в топы ютуба! Самое время включить монетизацию и направить доходы на таргетирование курса, чтобы не пришлось искать исполнителей для песни «Урюпинск 10 000».

Кстати, группа Мумий Троль получила за право использования их песни — 2000 рублей, одной бумажкой 😉

Обновление ReActions v0.11.0

Решил текущие изменения ReActions зафиксировать в виде релиза.

В свете скорого выхода Minecraft 1.13 не знаю, как повлияет на ReActions, ибо очень сильно изменится методика работы с блоками и предметами и обеспечить совместимость со старыми версиями будет не так-то просто.

Все нововведения в этой версии выполнены Максимом, я повозился с некоторыми ошибками и слегка допилил существующий код.

Скачать можно тут: https://dev.bukkit.org/projects/reactions/files/2 511 550

Ну, а изменения (на русском) отражены здесь: http://reactions.fromgate.ru/change-log/

Прощай, Пивик!

Когда-то, меня бесило расхождение статистики, которую демонстрировали мне некоторые плагины WordPress и данные Яндекс.Метрик. Первых я подозревал в завышении, вторых — в занижении.

В итоге, я поставил себе для контроля ещё одно решение — это Piwik, представляющий собой очень гибкий и удобный инструмент, для сбора статистики по сайту. Первое время я заглядывал туда чуть ли ни каждый день, но поскольку его статистика ни чем не отличалась от того, что я видел в Метриках, то постепенно я стал заглядывать в него всё реже и реже.

В общем, вещь хорошая, но не нужная. Не нужная именно мне, поэтому начинаю удалять его со своих сайтов. В тоже время если вам нужен подобный инструмент — рекомендую.

День Джима и Джона

8 декабря — это день, в который я всегда вспоминаю двух музыкантов. Это Джим Моррисон и Джон Леннон.

Джим Моррисон родился 8 декабря 1943 г., Джон Леннон погиб 8 декабря 1980 г. Я не вижу в этом какой-то мистической связи. Просто так совпало.

У меня не было ни малейшего шанса (разве что родиться случайно на много лет раньше и в другой стране), чтобы побывать на их концертах или послушать их вживую. Но мне приятно, думать, что благодаря их искусству частица их души передалась мне и ещё миллионам людей, которые не представляют себе жизни без музыки The Beatles и The Doors, без музыки Джона и Джима.

Сегодня, почему-то я вспомнил две песни.

Первая — это жизнеутверждающая Wintertime Love c альбома The Doors «Waiting for the Sun».

А вторая — трогательная песня Julia, которую Джон Леннон написал в память о своей матери.

Это очень разные песни, но именно их мне захотелось сегодня послушать.

Обновил плагины Elytra и WeatherMan

Между делом обновил WeatherMan и Elytra. Не то чтобы их очень надо было обновлять, но в для Elytra мне кинули пулл-реквест, так что моя работа свелась к проверке кода.

А вот в WeatherMan пришлось сделать опцию для выбора оптимального для пользователя способа обновления чанков.

Дело в том, что в WeatherMan (что его всегда отличало от всех прочих плагинов) всегда обновление биомов происходило моментально. Для этого нужно переотправить клиенту чанк. Но в бакките сейчас нет адекватного способа сделать это и приходится хитрить.

Раньше, после выхода каждой версии майнкрафта, я тратил кучу времени на то, чтобы выяснить самый лучший способ, работающий именно в этой версии игры. Сейчас возиться с этим нет никакого желания. А по-быстрому, идеального варианта, увы, я так и не нашёл. Либо мобы пропадают. Либо лаги появляются. Решил просто копить их и добавлять в конфиг то, что хоть как-то работает.