Kotlin после Groovy

Привет!

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

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

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

Поделиться:

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

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

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

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

Поделиться:

Money-Splitter

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

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

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

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

Поделиться:

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

Первый раз я столкнулся с намеренной денормализацией около года назад (на самом деле уже больше, статья давно в черновиках). В то время мы (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»

Поделиться:

Новый шаблон для yattim.ru

Последнюю неделю допиливал новый шаблон для сайта яшкинского техникума. Когда то, давным-давно, сделал им простенький сайт на joomla. Прикрутил какой-то шаблон, немного помогал админить. Дальше контентом этого сайта занималась моя мама (она там собственно и работает). Постепенно сайт скатился просто в 0 по внешнему виду. Его заполонили ужасные баннеры, шаблон не был приспособлен для мобильных, и просто ужасно на них выглядел.

И вот решил я, что не хорошо, что мое детище так страшно выглядит. И начал его переделывать. Сколько же сил было потрачено на согласование каждого шага — просто не счесть. Превью того что получилось (и немного подробностей под катом):

Превью yattim.ru
Превью yattim.ru

Читать далее «Новый шаблон для yattim.ru»

Поделиться:

WhatsCook вышел в Play Маркет!

Наконец свершилось это долгожданное событие! Мы закончили тестировать наше замечательное приложение и опубликовали его для всего мира в Play Маркете.

В конце концов, у нас набралось ~15 бета-тестеров. Было выпущено и протестировано 4 бета-версии приложения. К нашему общему счастью, багов было мало, внедряли, в основном, улучшения.

whatscook
Так сейчас выглядит приложение

Что добавили в финальную версию:

  • Картинки рецептов теперь грузятся сразу в нужном разрешении
  • При обновлении страницы рецепта — если изменений в рецепте не было, то он не перезагружается
  • Поправили внешний вид, чтобы название и кнопки были читаемы на любом фоне
  • Оптимизировали работу с кешем
  • Поправили верстку

Еще раз размещаю ссылки: сайт, приложение.

Поделиться:

WhatsCook

hackathon_whatscook

Итак, я созрел для рассказа о приложении, которое мы разрабатывали на нашем хакатоне. Мы разрабатывали WhatsCook! Это приложение позволяет полностью каждый день наслаждаться вкусным ужином, совершенно не обременяя себя выбором блюда.

Рецепт дня
Рецепт дня
Избранное
Избранное

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

Читать далее «WhatsCook»

Поделиться: