Search
Write a publication
Pull to refresh
101
0
Ярослав @kciray

Java Software Engineer

Send message

Поиск причин странной производительности

Reading time5 min
Views21K

Введение


Наконец-то полез детально изучать Java-байткод, и почти сразу же в голове возник интересный вопрос. Есть там инструкция NOP, которая не делает ничего. Так вот, а как это «ничего» сказывается на производительности? Собственно, процесс изучения этого и описан в посте.

Дисклеймер


Сам рассказ, в первую очередь, не о том, как оно реально работает, а о том, каких ошибок стоит опасаться при измерениях производительности.
Читать дальше →

Джеймс Гослинг объясняет, почему ушёл из Oracle

Reading time3 min
Views6.1K
Джеймс Гослинг дал эксклюзивное интервью eWeek, где впервые подробно рассказал о причинах, заставивших его покинуть компанию Oracle.

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

Кроме того, в должностной иерархии Oracle не оказалось позиции такого уровня, которая была у Гослинга в Sun (fellow), так что ему фактически пришлось сильно спуститься по должностной лестнице.
Читать дальше →

Публикация приложения в Android маркеты

Reading time7 min
Views141K
Хорошо это или плохо, но для Android-приложений существует большое количество различных рынков продаж. С одной стороны приходится публиковать в нескольких, с другой — охват обеспечивается более широкий. Когда я задумался о том, что пора бы задействовать альтернативные маркеты для своего приложения, то толковой информации не нашёл. Сразу хочу предупредить, что программа предназначена для узкой русскоязычной аудитории, абсолютно ничем не примечательна, является по сути обычным rss-ридером для моего сайта халявы. Т.е. для многих этот опыт не будет показателен. Также я не использовал никаких средств для раскрутки своего приложения(реклама, обзоры, накрутка).
Читать дальше →

Кастомизация ProgressBar в Android

Reading time4 min
Views37K
Периодически возникает потребность заменить стандартный круговой ProgressBar на какой-либо свой.

Обычно визуальное восприятие у людей более обострено, так что сразу приведу пример нескольких вариантов ProgressBar


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

Как ускорить эмулятор Android на 400%

Reading time5 min
Views143K
Последние несколько месяцев я работал над SDK для Android, входящим в платформу управления контентом Nuxeo. Особенно много работы было в последнее время, с приближением официального релиза SDK. Я хочу поделиться несколькими практическими советами по поводу разработки под Android, в частности тестирования и эмуляции. Уже после нескольких дней разработки я понял, что работа с эмулятором Android — не сахар, потому что он чудовищно медленный.

Начнём с того что он медленно запускается, но даже если использовать для ускорения запуска снапшот состояния, выполнение кода все равно происходит медленно, особенно в режиме отладки.

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

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

По следам разрушителей мифов или Почему Android тормозит, а %мобильная ОС% нет?

Reading time10 min
Views175K


Добрый день, Хабр!

Мой предыдущий перевод статьи про аппаратное ускорение в Android вызвал бурное обсуждение в комментариях, основным мотивом которого был вопрос «так почему же тормозит Android?». Аналогичная ситуация наблюдается по всему интернету, и потому я привожу ниже еще один очень интересный и свежий перевод (снова из Google+), где автор Andrew Munn (о нем ниже) анализирует настоящие причины тормозов Android. С удовольствием прочитал этот пост сам и горд возможностью первым поделится им с хабрасообществом.

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

Создание удобного OpenFileDialog для Android

Reading time12 min
Views39K
Наверное, как и многие разработчики под Android, столкнулся на днях с необходимостью реализовать в своем приложении выбор файла пользователем. Так как изначально в Android такого функционала нет, обратился к великому и ужасному. Это показалось мне странным, но из вороха вопросов на stackoverflow и небольшого числа отечественных форумов можно выделить всего три основных источника:
  1. Android File Dialog – почти все ссылки из stackoverflow ведут сюда. В принципе, неплохое решение, но реализовано через отдельную activity, а хотелось чего-то в духе OpenFileDialog’а из .Net.
  2. В данной статье речь идет вообще об отдельном файл-менеджере, и почерпнуть какие-то идеи из неё не удалось.
  3. Идея же отсюда очень понравилась, однако, как мне показалось реализовать все это можно несколько красивее.

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

10 анти-паттернов навигации в Android

Reading time4 min
Views81K


В данной статье мы рассмотрим 10 анти-паттернов навигации в Android, которые допускают многие новички (и не только) в создании интерфейсов Android-приложений.

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

Sliding экранов внутри приложения

Reading time6 min
Views54K


Здравствуйте!

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

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

Слайдинг экранов с помощью ViewPager

Reading time4 min
Views83K
Вступление

Горизонтальная прокрутка экранов — удобная и модная вещь. На Хабре уже был топик, посвященный данной теме. Однако использование ViewFlipper не позволяет с легкостью добиться эффекта привязки, когда экраны двигаются вместе с пальцем. Также нужен механизм автоматической доводки экранов в ту или иную сторону. Примера, где это было бы хорошо разъяснено и реализовано, так и не нашел. В комментариях предлагали посмотреть исходники гугловского кода, где это реализовано. Однако удобнее было бы воспользоваться готовым решением. Такой механизм реализован в Android Support Package. Использовать эту библиотеку можно для версий Android 1.6 и старше. Конкретно нам понадобятся классы ViewPager и PagerAdapter.
Читать дальше →

Диаграмма процентовки «за и против» на canvas

Reading time2 min
Views2.6K
Сделан скрипт, показывающий результаты голосования одним числом не только разностью «за» и «против», но и с показом соотношения противоборствующих сил. Силы показываются в виде круговой (кольцевой) диаграммы, верхняя часть которой с зелёным цветом показывает долю голосов «за» (или отсутствует), а нижняя — долю «против», красного цвета. Таким образом, наглядно показано соотношение сил и насколько спорным было общее решение. От общего количества голосов зависит толщина кольца и насыщенность, что показывает статистическую устойчивость результата.

Проще посмотреть и оценить на примерах. Справа — примеры в списке топиков, взяты из разных анонсов, на одну оценку наведена мышь, открывающая арифметику суммарной оценки. Примеры из комментариев — далее.
Читать дальше →

Рейтинг хабов и компаний по постам/подписчикам

Reading time8 min
Views15K
На данный момент на хабре около 350 хабов. Функционал сайта позволяет сортировать их по имени и по индексу. А по другим параметрам — например по количеству постов — нет, а хотелось бы.

Меня вдохновила статья рейтинг постов хаба, и я решил сделать похожую, но составить уже рейтинг самих хабов.

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


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

Мониторинг технологий Рунета за 2013 год

Reading time3 min
Views11K
Департамент информационно-аналитических исследований RU-CENTER Group опубликовал годовой отчет с результатами мониторинга использования CMS и различных технологических решений в Рунете в 2013 году. Каждый месяц робот http://monoid.nic.ru/ опрашивал хосты по списку (из него исключены популярные паркинги). Всего было опрошено более 1 млн доменов в зоне .RU. Подробнее о методологии см. здесь.

Некоторые результаты довольно интересны. Поскольку опросы проводились ежемесячно, то можно посмотреть не только итоговый результат, но и оценить процесс в динамике. Другими словами, можно отследить миграцию сайтов между различными CMS.

Робот различает семь ведущих CMS по числу сайтов: Drupal, WordPress, Joomla!, MODx, «1С-Битрикс», NetCat, UMI.CMS. При этом есть два безоговорочных лидера — Joomla! и WordPress. На долю этих CMS приходится 70% веб-сайтов, работающих под управлением той или иной из обнаруживаемых систем управления контентом.
Читать дальше →

Библиотека для авторизации через Хабрахабр

Reading time3 min
Views7.1K
Доброе утро всем, кто уже читает Хабрахабр!

Работая над «Клубом анонимных Дедов Морозов» для Хабра, нам пришлось решить проблему с авторизацией пользователя через Хабр. На Dirty пользователю предлагалось разместить у себя в профиле особую ссылку, наличие которой проверялось их сервером. Мы же решили пойти другим путем и максимально упростить авторизацию для человека, решившего принять участие в акции.

Хотя в итоге библиотека HabraAuth, о которой пойдет речь в топике, не была использована, но она использует тот же принцип авторизации, что и на habra-adm.ru — пользователь вводит свой ник на Хабре, и с аккаунта почтового робота или с аккаунта разработчика ему приходит особая ссылка по Хабропочте, перейдя по которой он и подтверждает владение своим аккаунтом.

Для конечного пользователя при использовании HabraAuth авторизация выглядит и того проще: он вводит свой ник, жмет «Войти» и сервер перекидывает его в Хабропочту, где ему остается только нажать ссылку «Войти» еще раз.


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

Знаете ли Вы массивы?

Reading time5 min
Views130K
Думаю, мало кто из готовящихся к своему первому интервью, при приеме на первую работу в должности (pre)junior программиста, ответит на этот вопрос отрицательно. Или хотя бы усомнится в положительном ответе. Конечно, такая простая структура данных с прямым доступом по индексу — никаких подвохов! Нет, в некоторых языках типа JavaScript или PHP массивы, конечно, реализованы очень интересно и по сути являются много большим чем просто массив. Но речь не об этом, а о «традиционной» реализации массивов в виде «сплошного участка памяти». В этом случае на основании индексов и размера одного элемента просто вычисляется адрес и осуществляется доступ к соответствующему значению. Что тут сложного?
Давайте разберемся

Рекомендации к стилю кода

Reading time9 min
Views174K

Правила языка Java


Мы следуем стандартным соглашениям по оформлению кода на Java. Мы добавили к ним некоторые правила:
  1. Исключения: никогда не перехватывайте и не игнорируйте их без объяснения.
  2. Исключения: не используйте обобщенные исключения, кроме кода в библиотеках, в корне стека.
  3. Финализаторы: не используйте их.
  4. Импорты: полностью уточняйте импорты.

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

Топ комментариев Хабра — сервис, детали реализации, и немного статистики (С#)

Reading time3 min
Views30K
Некоторое время назад страничка «Лучшие комментарии» была удалена с Хабра (подробности здесь: habrahabr.ru/qa/18401).
Тем не менее, мне бывало интересно туда заглянуть — и ради лулзов, и статьи иногда интересные попадаются из тех, что в ленте упустил. Так что решил я сделать свой небольшой сервис. Надеюсь, администрация не будет против.

Текущий URL сервиса: habrastats.comyr.com


Ссылка и технические подробности

Анализ популярных теорий игровой зависимости

Reading time15 min
Views89K
Просмотрев пару другую статей на этом сайте по игровой зависимости, я решил их показать специалисту с 30 летним практическим опытом лечения разного рода зависимостей психотерапевту наркологу А.Г. Данилину.
Из его беседы мы решили подготовить статью.




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

В качестве лечения предлагается запрет на компьютерные игры и «заместительная терапия» психотропными препаратами.
Второй взгляд – трактовка зависимости от виртуальных игр через примитивную биологическую систему. Создатели компьютерных игр… играют на человеческих слабостях и формируют у игрока рефлекторное поведение. В этой логике геймер – нечто вроде «собаки Павлова» за компьютером.
Читать дальше →

Пишем, собираем и запускаем HelloWorld для Android в блокноте

Reading time10 min
Views131K


Когда я начал изучать Android, захотелось полностью написать и скомпилировать Android-приложение вручную — без использования IDE. Однако эта задача оказалась непростой и заняла у меня довольно много времени. Но как оказалось — такой подход принёс большую пользу и прояснил многие тонкости, которые скрывают IDE.

По-сути эта статья является переводом и переработкой статьи Building Android programs on the command line под современные на данный момент JDK (7) и Android SDK (API level 19). Кроме того, я многое упростил и добавил кое-что от себя.

Используя только блокнот, мы напишем совсем маленькое учебное Android-приложение. А затем скомпилируем его, соберём и запустим на устройстве — и всё через командную строку. Заинтересовало? Тогда прошу.
Читать дальше →

Блеск и нищета GWT (или почему я не верю в Dart часть 2)

Reading time6 min
Views11K
Одной из самых обсуждаемых тем на Хабре стало объявление Гугла о создании нового языка Dart, претендующего на то, чтобы полностью заменить Javascript.
Для Гугла это не первый проект подобного рода. С 2006 года существует Google Web Toolkit, позволяющий создавать веб-приложения полностью на Java. На нём, например, работают Adwords и Google Wave.
Но, не смотря на красивые обещания и очень серьезные, особенно по меркам 2006 года, возможности, GWT так и «не взлетел». Да, проект поддерживается и развивается, но сообщество разработчиков так и не сложилось. Сторонних компонентов мало, они не поддерживаются, знакомых с системой программистов найти сложно.
Практически все «плюшки» языка Dart, которые сейчас рекламирует Google, уже были реализованы в Webtoolkit-е. В этой статье я хочу проанализировать достоинства и недостатки GWT в попытке рассмотреть мутные очертания будущего Dart.
Читать дальше →

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity