Kotlin после Groovy

Привет!

Хотелось бы сегодня рассказать про мой процесс перехода с Groovy на Kotlin, об отличиях, преимуществах и недостатках этих языков. Я подразумеваю что у вас уже есть опыт работы с Groovy, вы знаете и используете большинство вспомогательных методов/приемов (далее сахар).

Начнем с предпосылок смены языка на нашем проекте. Нам потребовалось срочно подготовить проект под увеличивающиеся нагрузки (примерно в 10-100 раз). Что, во-первых, привело к жесткой смене архитектуры, а во-вторых, мы решили сменить и основной язык программирования.

Читать далее «Kotlin после Groovy»

Поделиться:

Обновление Money-Splitter

Ездили недавно с друзьями на Алтай. Поездка вышла достаточно утомительной, но, сейчас не об этом. По окончанию поездки встал вопрос денег: кто кому и сколько должен. Кто-то ехал без наличных, кто-то, наоборот, взял денег с запасом и одалживал. В итоге, как обычно, нужно было составлять документ со всеми тратами и делить на всех.

И тут я подумал, у меня же уже есть приложение, чтобы делить один счет на всех (оно мало применимо, если расплачивался не 1 человек), почему бы не улучшить его чуть-чуть и не сделать возможность следить не только за тем кто сколько потратил, но и кто сколько заплатил.

Читать далее «Обновление Money-Splitter»

Поделиться:

Почему не стоит заходить в re:Store

Итак, пошел сегодня обменивать новый (он у меня всего 3 дня), бракованный MacBook Pro 15 в re:Store. Сразу стало ясно что местные продаваны не очень заинтересованы в удобстве клиента. Продемонстрировал им запись мерцания монитора. На самом буке, к сожалению, это воспроизвести не удалось. Продаваны начали стандартную речь про диагностику и бла бла бла. Смешно слышать все это дерьмо, когда ты покупаешь ноутбук за шестизначную сумму. Кстати, при покупке они обещали чуть ли не мгновенную замену ноутбука, даже если его затопить, облизывали по полной. А тут приходишь через 3 дня после покупки, и все, ты уже не желанный клиент, а обуза.

Ладно, пофиг на продаванов, я надеялся получить замену ноутбуку на время диагностики. Мне дали «замену» следующее:

Начнем с того, что на диагностику я сдал 15″, Retina, SSD, i7, 16Gb RAM. Получил 13″, не Retina, HDD, старый 2-ядерный i5, 4Gb RAM. Да на нем даже браузер тормозит, про Java я вообще молчу. А памяти хватает только на 1 нормальное приложение. В общем просто ужас. Но знакомство с этим у меня началось с внешнего вида: весь расцарапанный, с кучей сколов, с кучей вмятин, брызги от кофе на корпусе. Зарядка — так вообще как-будто в дерьме измазана.

В общем, это был смачный плевок со стороны re:Store на своих клиентов. Продали бракованный ноутбук, забрали его на месяц на диагностику, дали на замену кусок говна. Никому не советую связываться с этой компанией.

Поделиться:

С Ubuntu на Mac OS X

Последние 2 года я активно пользовался Ubuntu. Я начал с ней эксперементировать еще в универе, а активно работать — в компании «Простые решения». Со временем меня все больше раздражала Win, особенно когда я ее сравнивал с Ubuntu, но она держалась на моем домашнем PC только из-за необходимости иногда по-играть. Закончилось все тем, что я прошел GTA 5, а другие игры я и так забросил. Я понял что смысла терпеть Win больше нет и поставил Ubuntu и на домашний PC.

И тут ложка дегтя. Если на работе с процессором и видеокартой от intel проблем не возникало, то с AMD процессором и видеокартой они появились. С установкой драйверов на видеокарту я долго мучался. Но, в конце концов, она завелась. Правда после пробуждения ото сна лок-скрин покрывался артефактами.

Далее у меня возникла проблема с USB устройствами. Я бы этого никогда и не заметил, если бы не подключил веб-камеру. Это очень древний баг Ubuntu, нормального фикса для него нет и не предвидится. Я подумал: «Хватит это терпеть!», и купил себе MacBook 🙂

Перед покупкой пытался найти хоть какой-нибудь рассказ о Mac OS, с точки зрения linux-пользователя. Но безуспешно. Все сравнения — идут с Windows. И все сравнения идут с точки зрения человека, который использует PC только для доступа к социальным сетям. Ubuntu иногда проскакивает в результатах поиска, но только в контексте «как сделать Ubuntu внешне похожей на Mac OS X». Меня это все конечно расстроило. Поэтому, хочу рассказать в этой статье о разнице, которую я ощутил при переходе с Ubuntu на Mac OS. Под катом присутствует пара скриншотов.

Читать далее «С Ubuntu на Mac OS X»

Поделиться:

Money-Splitter

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

Начнем с причины. Здесь все просто. Идем с друзьями, например в кафе или в магазин, покупаем целую кучу всяких штук. Расплачивается, обычно кто-нибудь один, потом остальные ему переводят деньги. В простых случаях чек достаточно ровно разделить на всех. Но, иногда, бывает что кого-нибудь это не устраивает. И тут начинается долгий расчет на бумажке кто сколько потратил.

Чтобы избавиться от необходимости это вручную считать, я создал свое простое приложение «Money Splitter«.

Читать далее «Money-Splitter»

Поделиться:

Новости

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

Совершенно неожиданно для себя — я сменил работу. Особо то и не горел желанием, но увидел интересную вакансию, отправил резюме. Потом — бац бац, и у меня новая работа 🙂

Теперь я работаю в прекрасной компании «RiskMatch». Не буду вдаваться в подробности, т.к. они очень специфичны. Если вкратце, то мы занимаемся разработкой и поддержкой софта для страховщиков, посредников и т.п. Стек технологий немного изменился. Теперь это Groovy, Grails, AngularJS и всего остального понемногу.

Т.к. работа — удаленная и серьезная, мне потребовалось зарегистрироваться как ИП. Так что теперь я «Серьезный Бизнесмен» 😀 В регистрации ИП мне очень помог Костя Линник и его цикл статей consulting, за что ему огромное спасибо.

А еще, я почистил свою виртуалку с хостингом. Теперь она намного быстрее работает, да и места прибавилось.

Поделиться:

Денормализация для увеличения производительности

Первый раз я столкнулся с намеренной денормализацией около года назад (на самом деле уже больше, статья давно в черновиках). В то время мы (Orange[UC]e) занимались оптимизацией скорости работы нашего JavaFX клиента. В одном из отчетов необходимо было осуществлять поиск по последним цифрам номеров телефонов. А в БД номера телефонов хранились в прямом виде. К моему большому сожалению, MariaDB (форк MySQL) не имеет возможности использовать индексы при поиске по концу строки (а номера у нас хранились в виде строк). Решение данной проблемы стало добавление столбца с перевернутым номером телефона, и добавлением индекса для этого столбца. Столбец с «прямым» номером решили тоже оставить, т.к. времени на переписывание логики на использование только перевернутого номера не было. Таким образом у нас получилось 2 столбца, которые содержат одни и те же данные.

Последний раз с денормализацией для увеличения производительности я столкнулся совсем недавно (около трех месяцев назад). Здесь все получилось намного интереснее. Подробности под катом.

Читать далее «Денормализация для увеличения производительности»

Поделиться:

Google картонки

Всем привет! Сегодня поговорим про виртуальную реальность 🙂

Все, наверное, уже слышали, а может даже и пробовали Oculus Rift. Если вкратце, то это «шлем» виртуальной реальности. Мало того, что он выводит картинку в 3D, так еще и реагирует на повороты головы пользователя. В общем, как только я об этой штуке узнал, сразу захотел ее себе.

Чуть позже Google решили продвинуть подобные технологии в массы и выпустили Google Cardboard. Это что то вроде бюджетной версии Oculus, где в качестве шлема выступает картон с 2 линзами, а в качестве экрана — смартфон пользователя. Эта новость меня приятно удивила, но на тот момент заказать такие — было большой проблемой. Сделать самому — возможно, но нужны линзы, а я понятия не имел где их можно взять.

Под катом — подробности про мои Google Cardboard.

Читать далее «Google картонки»

Поделиться:

Презентация про Java Garbage Collector

Duke GC

Всем доброго времени суток! На этот раз я расскажу немного про то, как я готовил презентацию о сборке мусора в Java. Ниже представлена сама презентация, там же можно открыть комментарии докладчика (рекомендую их открыть, так как я немного увлекся с сарказмом, когда готовил ее). Под катом — небольшая история ее подготовки и демонстрации.

Читать далее «Презентация про Java Garbage Collector»

Поделиться:

Обновление дизайна WhatsCook

Заголовок WhatsCook

Всем привет!

Давно уже ничего не писал, но сегодня у меня отличное настроение и я решил поделиться одной хорошей новостью. Буквально пару дней назад я закончил работу над обновленной версией мобильного приложения под android — «WhatsCook«. Ниже пара скриншотов новой версии, под катом — чуть-чуть подробнее.

Новый дизайн WhatsCook
Новый дизайн WhatsCook

Читать далее «Обновление дизайна WhatsCook»

Поделиться: