Pull to refresh
-6
Алексей@java3000

Администратор windows умеющий в программирование

Send message

Проблемы времени и часовых поясов в Android и пути их решения

Reading time4 min
Reach and readers497K
Предположим, вы уже давно используете Android, а потому может показаться, что он прекрасно справляется с задачами синхронизации времени – будильники срабатывают вовремя, каких-то явных отклонений времени не наблюдается и т. д. Однако уверены ли вы полностью в том, откуда Android на самом деле получает данные о точном времени и часовых поясах? Если у вас есть хоть какие-то сомнения о том, как это работает — добро пожаловать под кат.

Читать дальше →

Статистика из Android-приложения на своем GAE-сайте

Reading time2 min
Reach and readers6.2K


Android, Google Analytics, App Engine — продукты одной компании. Казалось бы — что может быть проще, чем показать данные из одного продукта в другом? Например, статистику Google Analytics из Android-приложения на сайте App Engine? Оказалось, что сделать это действительно несложно. Только не все шаги очевидны.
Что делать?

Автоматическое скрытие адресной строки «как в хроме»

Reading time3 min
Reach and readers10K
Добрый день, сегодня мы будем писать автоматическое скрытие адресной строки при прокрутке, chrome-like. Паттерн называется quick return, используется для экономии вертикального пространства. Если интересно, добро пожаловать под кат
Читать дальше →

Как убедить посетителей вашего сайта купить продукт, используя конкурентов? Часть 2

Reading time3 min
Reach and readers21K

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

Способ№2. Опрос клиентов ваших конкурентов в «диких условиях»

Наверняка вы уже слышали о «шпионаже» за конкурентами с помощью социальных медиа, но еще не пробовали это?
Читать дальше →

Рисуем знак рубля в Android приложении

Reading time4 min
Reach and readers28K
В последнее время перед разработчиками все чаще ставится задача использовать символ рубля в тексте. Однако, символ рубля был утвержден относительно недавно, символ получил свой код в стандате Unicode еще позже. Естественно, гарнитура Roboto на текущих платформах еще не содержит знака рубля.
Читать дальше →

Эволюция алгоритмов поисковых систем

Reading time3 min
Reach and readers15K
image

Для поисковых систем важнейшим был всегда вопрос приоритезации сайтов в выдаче. Данный вопрос поднимает две проблемы:

1. Как определить сайт, отвечающий запросу наиболее точно (релевантность).
2. Если пользователи не найдут искомого через поисковик, пользователи предпочтут пользоваться другим поисковиком.

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

Таким образом, вопрос о присвоении сайту тех или иных параметров на основе собранных данных — первостепенная задача как для поисковиков, так и для работников цифровой индустрии.

Читать дальше →

Пишем простую систему рекомендаций на примере Хабра

Reading time4 min
Reach and readers43K

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

  1. Что такое рекомендательная система
  2. Интуиция
  3. Теория
  4. Реализация: код и данные
  5. Сервис Хабра-рекомендаций
  6. Хабра-аналитика

Читать дальше →

Альтернативные методы трассировки приложений

Reading time9 min
Reach and readers15K
image

Трассировка используется во многих видах ПО: в эмуляторах, динамических распаковщиках, фаззерах. Традиционные трейсеры работают по одному из четырех принципов: эмуляция набора инструкций (Bochs), бинарная трансляция (QEMU), патчинг бинарных файлы для изменения потока управления (Pin), либо работа через отладчик (PaiMei, основанный на IDA). Но сейчас речь пойдет о более интересных подходах.

Зачем отслеживать?


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

Время против памяти на примере хеш-таблиц на Java

Reading time3 min
Reach and readers18K
Эта статья иллюстрирует т. н. компромисс скорости и памяти — правило, которое выполняется во многих областях CS, — на примере разных реализаций хеш-таблиц на Java. Чем больше памяти занимает хеш-таблица, тем быстрее выполняются операции над ней (например, взятие значения по ключу).

Читать дальше →

25+ видеоуроков по Android для начинающих

Reading time2 min
Reach and readers417K

Приветствую вас, уважаемый хабрачеловек!
Предлагаю вашему вниманию бесплатно серияю видеоуроков в котрых рассмотренно базовые понятия разработки под Android.
Читать дальше →

Java Agent на службе JVM

Reading time5 min
Reach and readers67K

Наверное многие слышали или сталкивались с таким параметром JVM как -javaagent, увидеть этот параметр вы могли используя Jrebel или Plumbr это могло выглядеть например так JAVA_OPTS=-javaagent:[path/to/]jrebel.jar или так -javaagent:/path-to/plumbr.jar
Хотя javaagent появился еще в версии java 1.5, многие разработчики так никогда и не использовали возможности агентов и имеют смутное представление что это такое.
Что же это за агент? Зачем он может нам понадобиться и как написать свой?
Читать дальше →

Spring: Реализация TaskExecutor c поддержкой транзакций

Reading time7 min
Reach and readers22K
Spring, позаботившись о разработчиках, предлагает удобный и простой фасад для взаимодействия с менеджером транзакций. Однако всегда ли стандартного механизма будет достаточно для реализации изощрённых архитектурных идей? Очевидно — нет.

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

Читать дальше →

Android JNI + Intelij Idea + Gradle. Полная автоматизация процесса

Reading time4 min
Reach and readers13K
Доброго времени суток!
Данный пост является небольшим руководством, по автоматизации компиляции нативного кода в среде Intellij Idea с использованием Gradle. Gradle предоставляет достаточно большой функционал для автоамтизации сборки проектов. Но даже подключение нативных библиотек к Android проекту требует дополнительных усилий со стороны разработчика.

Предыстория


Недавно я сменил место работы и устроился работать в компанию, занимающуюся разработкой собственного мобильного программного обеспечения. Мы с моими новыми коллегами по работе решили перейти с Eclipse (на котором до этого велась вся разработка) на Intellij Idea, и в добавок с Ant на Gradle. У нас достаточно большой проект, с приличным количеством кода, в том числе с использованием нативного C и C++ кода, как самописного так и уже готовых библиотек.

Тех, кто занимается разработкой Android проектов с использованием Android NDK в среде Intellij Idea + Gradle прошу под кат.
Читать дальше →

Импортируем открытые гео данные из OpenGeoDB в Elasticsearch

Reading time12 min
Reach and readers9.6K
Задумывались ли вы когда-нибудь, найдя аккуратную публичную базу данных, как хорошо было бы включить её в своё приложение, чтобы оптимизировать какую-нибудь функциональность, пусть даже незначительно? Конечно же да! Этот пост расскажет как, использовать Logstash для превращения внешнего набора данных в желаемый формат, проверить результат в Kibana и убедиться что данные правильно индексированы в Elasticsearch так, что могут быть использованы при больших нагрузках на живых серверах.

Читать дальше →

Будущее рынка ECM-систем: взгляд из Европы

Reading time4 min
Reach and readers4.3K
В конце мая в Москве прошла конференция по вопросам управления корпоративной информацией DOCFLOW. Ее специальным гостем стал международный EСM-консультант — Майкл Циглер (Michael Ziegler). Раньше Майкл не делился своим опытом на деловых мероприятиях в России (происходило это только в рамках консалтинговых проектов), поэтому послушать его было особенно интересно.

Предлагаем вашему вниманию интервью Майкла и его взгляд на будущее рынка ECM-систем, а также видео недавнего выступления «Управление данными: что нужно знать заказчику сегодня».

Главным источником секретов ECM-профессионала Майкла Циглера является не только его двадцатилетний опыт работы на рынке ECM-BPM-Capture, но и учрежденный им проект DOCVILLE. Проект собирает экспертов со всей Европы для общения и обсуждения наболевших ECM-вопросов. Этой обобщенной экспертизой и наблюдениями за профессиональным сообществом Майкл и поделился с посетителями конференции.
Читать дальше →

Четыре совета от инди-разработчика игр: как добиться трех миллионов загрузок

Reading time3 min
Reach and readers25K


Имран Шафик днем работает разработчиком медицинского программного обеспечения, а вечерами разрабатывает игры для Windows Phone в качестве инди-разработчика.

“Разработка игр – это моя креативная отдушина. Разработка игр занимает огромный объем моего свободного времени, но я мечтаю о том чтобы когда-нибудь сделать на этом карьеру.” – рассказывает Имран @DanglingNeuron Шафик.

Его бренд Dangling Neuron содержит отличные истории успеха, включая игры Air Soccer Fever, которая преодолела отметку в три миллиона загрузок и новую Tank Arena, которая уже сумела достигнуть отметки в 250 тысяч загрузок всего за несколько месяцев.

Мы попросили рассказать Имрана что-нибудь о том, что больше всего волнует инди-разработчиков. К счастью, Имран поведал нам несколько отличных советов по маркетингу, монетизации, вовлечению пользователей и даже о использовании Unity. Ниже вы найдете его советы.
Читать дальше →

Как работают финансы облачной компании

Reading time4 min
Reach and readers9.2K
Поговорим о том, как устроена одна из главных составляющих облачной компании — финансы.

Оценить экономику компании помогают несколько простых метрик — MRR, CLV, CAC. В этом посте мы расскажем о том, как их считать и интерпретировать.

MRR: как оценить рост бизнеса

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

Читать дальше →

Дизайн мобильных приложений

Reading time9 min
Reach and readers26K
Много статей написано о дизайне, даже очень много, как о его UX (user experience), так и UI (user interface) составляющих. Эта статья не для новичков, так что углубляться в основы мы здесь не будем.

Мы рассматриваем дизайн и формулировки не с точки зрения внешнего вида, хотя есть проекты, в которых именно внешний вид составляет основную ценность продукта, а с точки зрения конверсии. В статье, на примере наших приложений Photo and Video Transfer app и Image Transfer, мы расскажем о работе над следующими задачами, при помощи дизайна:
  • Увеличение количества email подписчиков.
  • Увеличение количество пользователей разрешивших push notifications.
  • Увеличение прибыли при работе по freemium модели.
  • Увеличение показателя возвращаемости пользователей.
  • Уменьшение показателей отказов.

Ниже вы сможете найти исходные данные и практические рекомендации. Так же крайне рекомендуем прочитать предыдущую статью о продвижении мобильных приложений, её вы cможете найти тут. Итак начнём.
Читать дальше →

Пять историй о Cabir, первом вирусе для смартфонов

Reading time6 min
Reach and readers17K
Вчера исполнилось 10 лет со дня обнаружения первой вредоносной программы для смартфонов. Червь Cabir по нынешним временам выглядит безобидно: деньги со счета не крадет, пароли не похищает, пользовательские данные не удаляет. Разве что сажает батарейку за неприличные по меркам 2004 года, зато вполне допустимые в 2014-м 2-3 часа.

Сегодня мы расскажем, как мы этот вирус нашли, почему назвали именно так, что было дальше, и чем вся эта история закончилась. Впрочем, конец истории наступил только для отдельных персонажей – например, для платформы Symbian. Для всех остальных – в смысле, для производителей смартфонов, пользователей, и, увы, киберпреступников, все только начинается.

История нулевая. Собственно, вся история обнаружения Cabir, рассказанная главным антивирусным экспертом «Лаборатории Касперского» Александром Гостевым, в этом видео:



Message received. Open?

Расширенный материал по Java 8

Reading time4 min
Reach and readers53K
Не секрет, что многие Java-программисты, начиная свой путь в индустрии, уделяют большое внимание «тяжелым» технологиям — OpenJPA, Spring, JAX-RS, EJB, WS-*,… Это дает возможность как скорее влиться в современные корпоративные проекты, так и максимизировать скорость роста зарплаты.

Многие из них в конце концов «спускаются» до технологий лежащих в основе указанных фреймворков — JDBC, Servlet API, NIO/NIO.2. Однако прискорбно, что зачастую не остается время на детальное изучение самого языка и возможностей платформы.

Речь идет не о тонкостях или экзотике, а о том, что составляет существенную часть работы фреймворка: Servlet-контейнер использует множественные ClassLoader-ы, JPA2-провайдер использует манипулирование байткодом, абсолютное большинство библиотек используют Reflection API, всеобщее использование Generics только «усугубилось» с появлением функциональных интерфейсов (java.lang.function.*) и лямбд.

На недопонимание изначальной платформы (ClassLoader, Reflection API) накладываются «новвоведения» Java 5 (Generics), а теперь еще и Java 8 (методы в интерфейсах, ссылки на методы, лямбды, Stream API, JSR 308: Pluggable Type Systems). Надо обратить внимание на то, что Generics + Java 8 — это не просто языковые фичи, это частично переход к функциональному стилю программирования.

Также я веду курс «Scala for Java Developers» на платформе для онлайн-образования udemy.com (аналог Coursera/EdX).

Я собрал определенное количество полезных (на мой взгляд) ссылок по следующим темам
  1. Методы в интерфейсах, ссылки на методы, множественное наследование
  2. Лямбды (Project Lambda)
  3. Stream API
  4. Функциональные алгоритмы
  5. Аннотации
  6. Генерики
  7. Reflection API
  8. Загрузка классов

Надеюсь кто-то сочтет их полезными.
Читать дальше →

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity

Specialization

Десктоп разработчик, Администратор серверов
Младший
From 110,000 ₽
Java
Java Spring Framework
RESTful WebServices.
PostgreSQL
SQL
Hibernate
Linux
Базы данных
Microsoft SQL Server
Разработка программного обеспечения