Всем привет!
Мы — разработчики (гордо звучит, не правда ли?), и мы активно пилим новые фичи, правим баги и стараемся сделать наш продукт лучше. Но чтобы понять, а как именно пользователь использует наш продукт, какие фишки продукта ему по душе, а какие — не очень, мы используем аналитику. Есть много разных средств, но в этой статье я бы хотел поговорить именно об аналитике от Google, которая активно развивается и меняется. Старого часового по имени Google Analytics сменяет новый боец — Google Analytics for Firebase (в девичестве — Firebase Analytics).
Уже даже в названиях вы можете уловить этот ветер перемен. А ветер перемен всегда порождает некоторый информационный вакуум, в который попадают разного рода слухи, далеко не всегда достоверные при этом.
Поэтому давайте попробуем разобраться подробно, а что сейчас с этой аналитикой, чем пользоваться-то в итоге. И как вообще дальше жить.
Если про Google Analytics информации довольно много, и она систематизирована (чего только стоит этот ресурс, идеальная справка), то у Google Analytics for Firebase типичная болезнь молодого и активно развивающегося продукта — информации мало, она разрознена и иногда даже противоречива. И я в свое время потратил немало сил и времени, чтобы разобраться, что к чему.
Собственно главная цель данной статьи — это систематизация знаний и нынешнего состояния Google Analytics for Firebase. Некоторая «дорожная карта» Google Analytics for Firebase.
Уверен, данная «карта» сэкономит вам прилично времени и нервов =)
Рубрика «java» - 144
Анатомия аналитики от Google
2017-09-12 в 6:47, admin, рубрики: analytics, android, android development, firebase, Firebase Analytics, google analytics, java, mobile development, Блог компании «Лаборатория Касперского», разработка мобильных приложений, Разработка под androidОт переводчика
Недавно в мире Java случилось пара важных событий: Марк Рейнхольд опубликовал письмо, в котором предложил перейти на полугодовой график релизов Java, а за этим последовало сообщение от Oracle, где они предлагают ряд серьезных измненеий в работе над OpenJDK:
- Начиная с JDK 9 GA, Oracle будет выпускать OpenJDK билды под GPL лицензией
- Java SE перейдет на постоянный график релизов (письмо Марка)
- Oracle внесет ранее коммерческие фичи (как Java Flight Recorder) в OpenJDK
- Oracle будет сотрудничать с другими разработчиками OpenJDK чтобы обеспечить современню, полную и доступную среду
Несмотря на то, что коммерческая версия Oracle JDK останется, целью компании станет сделать ее полностью совместимой и взаимозаменяемой с OpenJDK (до конца 2018).
Как мне кажется, это очень важный и нужный шаг для Java как платформы. Ниже я предлагаю перевод письма Марка, которые поясняет как будет работать новый график релизов.
Apache Ignite 2.1 — теперь со вкусом Persistence
2017-09-11 в 13:04, admin, рубрики: Apache Ignite, big data, compute grid, data grid, gridgain, highload, java, Блог компании GridGain, ПрограммированиеВ конце июля вышла версия Apache Ignite 2.1. Apache Ignite — распределенная свободная HTAP-платформа (HTAP — Hybrid Transactional and Analytical Processing, системы, которые могут обрабатывать как транзакционную, так и аналитическую нагрузку) для хранения данных в оперативной памяти и на диске, а также вычислений в реальном времени. Ignite написан на Java и может быть плотно интегрирован с .NET и C++.
Версия 2.1 очень богата на значимые, практически применимые функции, базирующиеся на фундаменте, заложенном в Apache Ignite 2.0.
С Apache Ignite 2.1 можно использовать распределенное дисковое хранилище Apache Ignite Persistent Data Store с поддержкой SQL, первые распределенные алгоритмы машинного обучения, новые функции DDL, и кроме того значительно улучшена поддержка платформ .NET и C++.
Persistent Data Store выводит Apache Ignite в новый сегмент — теперь это не просто in-memory data grid, но полноценная распределенная масштабируемая база данных HTAP с возможностью надежного хранения первичных данных, с поддержкой SQL и обработкой информации в реальном времени.
Читать полностью »
Любопытная особенность языка Java и коварные ошибки, которые она может повлечь
2017-09-11 в 11:06, admin, рубрики: java, вложенные классы, модификаторы доступа, наследование, область видимости, подкласс, Статический импортПривет! Представляю вашему вниманию перевод статьи A Curious Java Language Feature and How it Produced a Subtle Bug автора Lukas Eder.
Правила видимости в Java иногда могут быть слегка запутанными и непонятными. Как вы думаете, что будет выведено на экран после запуска этого кода?
package p;
import static p.A.x;
class A {
static String x = "A.x";
}
class B {
String x = "B.x";
}
class C {
String x = "C.x";
class D extends B {
void m() {
System.out.println(x);
}
}
}
public class X {
public static void main(String[] args) {
new C().new D().m();
}
}
Будет выведено:
B.x
Потому, что:
Члены суперкласса B скрывают все вложенные элементы класса C, которые, в свою очередь, перекрывают статический импорт класса A.
Каким же образом все это может привести к ошибкам?
Spring: ваш следующий Java микрофреймворк
2017-09-10 в 18:06, admin, рубрики: java, spring, spring 5В этой статье мы поговорим о новой концепции в готовящемся к выходу Spring Framework 5 которая называется функциональный веб-фреймворк и посмотрим, как она может помочь при разработке легковесных приложений и микросервисов.
Stateless аутентификация при помощи Spring Security и JWT
2017-09-10 в 17:07, admin, рубрики: java, jwt, Spring SecurityНедавно передо мной встала задача отказаться от statefull аутентификации с помощью сессий, в пользу stateless аутентификации и JWT. Так как это было мое первое знакомство с JSON Web Token, в первую очередь я начал искать полезную информацию на просторах интернета, но чем больше информации я находил, тем больше вопросов у меня появлялось.
Я не буду рассказывать, что это за «волшебные» токены, как они работают и зачем они нужны. Я хочу сосредоточиться на вопросах, которые встают перед многими, но не имеют однозначного правильного ответа. Мое решение не претендует на лучшее и эта статья не является пошаговым руководством, я просто хочу поделиться своим опытом и постараться обьяснить, почему я сделал именно так и никак иначе.
Читать полностью »
Что «под капотом» у LinkedList?
2017-09-09 в 17:33, admin, рубрики: java, linkedlist, ПрограммированиеДобрый день, хабрачитатели!
Как работает ArrayList, вполне понятно. Есть много статей по этому поводу, часть из них иллюстрированы замечательными картинками, так что даже новичкам становится сразу все ясно. К лучшим статьям на эту тему я отношу «Структуры данных в картинках. ArrayList», написанную tarzan82.
Этот же автор описывает принципы работы LinkedList, однако часть данных устарела еще с выходом Java 7, поэтому попытка детально разобраться, что происходит внутри этой коллекции, по рисункам tarzan82 уже сложно. Да и в других источниках я не встретила понятных картинок, потому и возникла идея написать эту статью.
Читать полностью »
Исправляем 7 распространенных ошибок обработки исключений в Java
2017-09-09 в 11:21, admin, рубрики: exeption, java, java core, ПрограммированиеПривет! Представляю вашему вниманию перевод статьи Fixing 7 Common Java Exception Handling Mistakes автора Thorben Janssen.
Обработка исключения является одной из наиболее распространенных, но не обязательно одной из самых простых задач. Это все еще одна из часто обсуждаемых тем в опытных командах, и есть несколько передовых методов и распространенных ошибок, о которых вы должны знать.
Вот несколько вещей, которые следует избегать при обработке исключений в вашем приложении.
Читать полностью »


