Обновить
-6
Алексей@java3000

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

Отправить сообщение

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

Время на прочтение4 мин
Охват и читатели497K
Предположим, вы уже давно используете Android, а потому может показаться, что он прекрасно справляется с задачами синхронизации времени – будильники срабатывают вовремя, каких-то явных отклонений времени не наблюдается и т. д. Однако уверены ли вы полностью в том, откуда Android на самом деле получает данные о точном времени и часовых поясах? Если у вас есть хоть какие-то сомнения о том, как это работает — добро пожаловать под кат.

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

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

Время на прочтение2 мин
Охват и читатели6.2K


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

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

Время на прочтение3 мин
Охват и читатели10K
Добрый день, сегодня мы будем писать автоматическое скрытие адресной строки при прокрутке, chrome-like. Паттерн называется quick return, используется для экономии вертикального пространства. Если интересно, добро пожаловать под кат
Читать дальше →

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

Время на прочтение3 мин
Охват и читатели21K

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

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

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

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

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

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

Время на прочтение3 мин
Охват и читатели15K
image

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

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

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

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

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

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

Время на прочтение4 мин
Охват и читатели43K

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

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

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

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

Время на прочтение9 мин
Охват и читатели15K
image

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

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


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

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

Время на прочтение3 мин
Охват и читатели18K
Эта статья иллюстрирует т. н. компромисс скорости и памяти — правило, которое выполняется во многих областях CS, — на примере разных реализаций хеш-таблиц на Java. Чем больше памяти занимает хеш-таблица, тем быстрее выполняются операции над ней (например, взятие значения по ключу).

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

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

Время на прочтение2 мин
Охват и читатели417K

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

Java Agent на службе JVM

Время на прочтение5 мин
Охват и читатели67K

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

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

Время на прочтение7 мин
Охват и читатели22K
Spring, позаботившись о разработчиках, предлагает удобный и простой фасад для взаимодействия с менеджером транзакций. Однако всегда ли стандартного механизма будет достаточно для реализации изощрённых архитектурных идей? Очевидно — нет.

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

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

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

Время на прочтение4 мин
Охват и читатели13K
Доброго времени суток!
Данный пост является небольшим руководством, по автоматизации компиляции нативного кода в среде Intellij Idea с использованием Gradle. Gradle предоставляет достаточно большой функционал для автоамтизации сборки проектов. Но даже подключение нативных библиотек к Android проекту требует дополнительных усилий со стороны разработчика.

Предыстория


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

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

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

Время на прочтение12 мин
Охват и читатели9.6K
Задумывались ли вы когда-нибудь, найдя аккуратную публичную базу данных, как хорошо было бы включить её в своё приложение, чтобы оптимизировать какую-нибудь функциональность, пусть даже незначительно? Конечно же да! Этот пост расскажет как, использовать Logstash для превращения внешнего набора данных в желаемый формат, проверить результат в Kibana и убедиться что данные правильно индексированы в Elasticsearch так, что могут быть использованы при больших нагрузках на живых серверах.

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

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

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

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

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

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

Время на прочтение3 мин
Охват и читатели25K


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

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

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

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

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

Время на прочтение4 мин
Охват и читатели9.2K
Поговорим о том, как устроена одна из главных составляющих облачной компании — финансы.

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

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

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

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

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

Время на прочтение9 мин
Охват и читатели26K
Много статей написано о дизайне, даже очень много, как о его UX (user experience), так и UI (user interface) составляющих. Эта статья не для новичков, так что углубляться в основы мы здесь не будем.

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

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

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

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

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

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



Message received. Open?

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

Время на прочтение4 мин
Охват и читатели53K
Не секрет, что многие 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. Загрузка классов

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

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность

Специализация

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