Как стать автором
Обновить
0
0
aleksandr.ch @XBR

Пользователь

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

Стилизация приложений часть первая

Время на прочтение4 мин
Количество просмотров79K
Coloroid
Все идет хорошо, вы успешно пишете свои великолепные (ну у кого-как) приложения, даже бывает публикуете их на маркете, но возникает проблема: весь интерфейс уж слишком скучен и однообразен, черный фон (в некоторых селениях белый) и стандартные элементы уж слишком приелись…

Ну или пойдем по другому пути — у вас имеется своя контора Васей Пупкиных с некой деятельностью в мировой сети (допустим продажа хомячков), и (о ужас!) у вас есть целый сайт. Сайт, ага, сайт то у нас красивый, зелененький/красненький/желтенький ну и т.д. и есть программа-клиент для этого сайта, и мы хотим раскрасить свое приложение в цвета сайта.

Это статья о том, как можно стилизовать свое приложение под конкретные цвета, а не ограничиваться цветами Андроида
Поехали
Всего голосов 73: ↑64 и ↓9+55
Комментарии38

Алгоритм сортировки Timsort

Время на прочтение6 мин
Количество просмотров153K
Timsort, в отличии от всяких там «пузырьков» и «вставок», штука относительно новая — изобретен был в 2002 году Тимом Петерсом (в честь него и назван). С тех пор он уже стал стандартным алгоритмом сортировки в Python, OpenJDK 7 и Android JDK 1.5. А чтобы понять почему — достаточно взглянуть на вот эту табличку из Википедии.



Среди, на первый взгляд, огромного выбора в таблице есть всего 7 адекватных алгоритмов (со сложностью O(n logn) в среднем и худшем случае), среди которых только 2 могут похвастаться стабильностью и сложностью O(n) в лучшем случае. Один из этих двух — это давно и хорошо всем известная «Сортировка с помощью двоичного дерева». А вот второй как-раз таки Timsort.

Алгоритм построен на той идее, что в реальном мире сортируемый массив данных часто содержат в себе упорядоченные (не важно, по возрастанию или по убыванию) подмассивы. Это и вправду часто так. На таких данных Timsort рвёт в клочья все остальные алгоритмы.
Читать дальше →
Всего голосов 292: ↑285 и ↓7+278
Комментарии63

JavaScript для чайников. Всё что вы хотели знать о функциях но боялись спросить

Время на прочтение4 мин
Количество просмотров23K
Как-то незаметно для себя, я решил отойти от возни с классами и паттернами, и разобраться с самыми обычными Js функциями. Думал, что будет достаточно скучно, но ошибся — оказалось очень даже интересно.

В этой статье я расскажу об особенностях объявления функций, и некоторых полезных паттернах (кхе-хе, да, они есть и тут)

Читать дальше →
Всего голосов 106: ↑99 и ↓7+92
Комментарии43

Как работает ConcurrentHashMap

Время на прочтение5 мин
Количество просмотров168K
В октябре на хабре появилась замечательная статья про работу HashMap. Продолжая данную тему, я собираюсь рассказать о реализации java.util.concurrent.ConcurrentHashMap.
Итак, как же появился ConcurrentHashMap, какие у него есть преимущества и как он был реализован.
Читать дальше →
Всего голосов 105: ↑100 и ↓5+95
Комментарии14

Типичные случаи утечки памяти в Java

Время на прочтение4 мин
Количество просмотров74K
Большинству разработчиков известно, что сборщик мусора в Java не является универсальным механизмом, позволяющим программисту полностью забыть о правилах использования памяти и о том, в каких случаях осуществляется его работа. Ниже описаны типичные случаи утечки памяти в java-приложениях, встречающиеся повсеместно.
Итак, о чём должен помнить каждый java-программист.
Читать дальше →
Всего голосов 113: ↑104 и ↓9+95
Комментарии80

Работающий Pull to refresh

Время на прочтение3 мин
Количество просмотров13K
Это рассказ о том, как получилась работающая реализация Pull to refresh под Android. Совсем не будет примеров кода. Немного картинок и в конце статьи ссылка на архив проекта.

Недавно встала необходимость встроить в текущее приложение Pull to refresh. Это сейчас модно, пользователи привыкли, и для твиттер-клиентов уже стало стандартом. Поиск готовых решений в сети вывел на единственный вариант — open-source проект Johan Nilsson android-pulltorefresh на Github.



Читать дальше →
Всего голосов 47: ↑45 и ↓2+43
Комментарии10

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

Время на прочтение4 мин
Количество просмотров83K
Вступление

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

Маркерная доска своими руками

Время на прочтение5 мин
Количество просмотров212K
Доброго времени суток дорогой читатель.

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



Подкатом картинки — примерно три мегабайта.
Читать дальше →
Всего голосов 281: ↑262 и ↓19+243
Комментарии155

Видео с конференции ScalaSPB

Время на прочтение2 мин
Количество просмотров4.7K
1 октября состоялась первая конференция Scala-разработчиков в Санкт-Петербурге.

Гости из разных уголков России (и не только), посетившие в тот вечер уютный бизнес-инкубатор «Ингрия», имели возможность послушать интересные доклады и пообщаться с коллегами по цеху.

image

Под катом вас ждут видео докладов с конференции:
  • «Использование Scala для backend задач» Эдуард Клементьев
  • «Scala in Goozy» Алексей Злобин
  • «Scala plugin for IntelliJ IDEA» Павел Фатин и Александр Подхалюзин
  • «Squeryl — ORM с человеческим лицом» Юрий Буянов
Видео с конференции
Всего голосов 26: ↑26 и ↓0+26
Комментарии15

Разработка производительных приложений

Время на прочтение9 мин
Количество просмотров5.7K

Производительные приложения



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

Несмотря на то, что здесь будут описаны микрооптимизации, они практически никогда не смогут повредить вашему приложению. Выбор правильных алгоритмов и структур данных всегда должны быть первыми приоритетами, но этот аспект рассматриваться не будет.
Читать дальше →
Всего голосов 71: ↑68 и ↓3+65
Комментарии9

Что почитать, чтобы повысить свой уровень JavaScript

Время на прочтение3 мин
Количество просмотров98K
От переводчика: Я думаю многие читали статью Rey Bango — What to Read to Get Up to Speed in JavaScript, но до хабра обсуждение так и не докатилось. Предлагаю закрыть этот пробел и поговорить о хороших книгах, блогах, тренингах и конференциях, посвященных в первую очередь клиентскому JavaScript и клиентской веб-разработке. Чтобы не копипастить оформляю статью в виде перевода.

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

Учтите, что некоторый ресурсы могут принадлежать нескольким уровням и охватывают широкие аспекты языка. Если вы считаете, что я что-то упустил, пожалуйста, дополните меня в комментариях.

Не заставляю вас читать все книги, которые предложены ниже. Эти книги я читал на протяжении многих лет и почерпнул в каждой много полезного. Я их распределяю по категориям, чтобы вам было проще работать с ними. Выберите книги, которые подходят вам.
Читать дальше →
Всего голосов 165: ↑161 и ↓4+157
Комментарии31

Garbage Collection наглядно

Время на прочтение10 мин
Количество просмотров286K
В последнее время я работаю с клиентами над вопросами настроек JVM. Смахивает ситуация на то, что далеко не все из разработчиков и администраторов знают о том, как работает garbage collection и о том, как JVM использует память. Поэтому я решил дать вводную в эту тему с наглядным примером. Пост не претендует на то, чтобы покрыть весь объем знаний о garbage collection или настройке JVM (он огромен), ну и, в конце концов, об этом много чего хорошего написано уже в Сети.
Читать дальше →
Всего голосов 70: ↑68 и ↓2+66
Комментарии49

JVM изнутри – организация памяти внутри процесса Java

Время на прочтение2 мин
Количество просмотров120K
Наверное, все, работающие с Java, знают об управлении памяти на уровне, что для ее распределения используется сборщик мусора. Не все, к сожалению, знают, как именно этот сборщик (-и) работает, и как именно организована память внутри процесса Java.
Читать дальше →
Всего голосов 58: ↑39 и ↓19+20
Комментарии16

Организация памяти

Время на прочтение7 мин
Количество просмотров237K
За последнюю неделю дважды объяснял людям как организована работа с памятью в х86, с целью чтобы не объяснять в третий раз написал эту статью.

И так, чтобы понять организацию памяти от вас потребуется знания некоторых базовых понятий, таких как регистры, стек и тд. Я по ходу попробую объяснить и это на пальцах, но очень кратко потому что это не тема для этой статьи. Итак начнем.
Читать дальше →
Всего голосов 178: ↑145 и ↓33+112
Комментарии141

Структуры данных в картинках. LinkedList

Время на прочтение4 мин
Количество просмотров549K
Приветствую вас, хабражители!

Продолжаю начатое, а именно, пытаюсь рассказать (с применением визуальных образов) о том как реализованы некоторые структуры данных в Java.



В прошлый раз мы говорили об ArrayList, сегодня присматриваемся к LinkedList.

LinkedList — реализует интерфейс List. Является представителем двунаправленного списка, где каждый элемент структуры содержит указатели на предыдущий и следующий элементы. Итератор поддерживает обход в обе стороны. Реализует методы получения, удаления и вставки в начало, середину и конец списка. Позволяет добавлять любые элементы в том числе и null.

Прочитать чуть больше
Всего голосов 50: ↑46 и ↓4+42
Комментарии22

Node.js для начинающих

Время на прочтение1 мин
Количество просмотров41K
NodeBeginner.ru — перевод на русский язык учебника по Node.js для начинающих «The Node Beginner Book» автора Manuel Kiessling.

Учебник предназначен для разработчиков с опытом работы с каким-либо объектно-ориентированным языком, немного знакомых с JavaScript и полных новичков в Node.js. Оригинал ещё находится в процессе написания, законченно около 90%. Перевод будет соответственно обновляться.
Всего голосов 74: ↑69 и ↓5+64
Комментарии31

Полезные инструменты, туториалы и ресурсы

Время на прочтение4 мин
Количество просмотров16K
Созданый Райаном Далем в 2009 году, Node.js — относительно новая технология, завоевавшая в последнее время большую популярность среди веб-разработчиков. Однако, до сих пор не каждый знает, что на самом деле Node.js это серверная JavaScript среда, использующая асинхронную событийную модель. Что это означает? Все просто: это среда, которая предназначена для написания масштабируемых, высокопроизводительных приложений. Почти как Ruby’s Event Machine или Python’s Twisted, но гораздо глубже — JavaScript реализовывает цикл событий, на уровне самого языка, а не как отдельная библиотека.



И это еще не все: то, что действительно круто в Node.js — это тысячи модулей, доступных для любых целей, а также активниешее сообщество этого молодого проекта. В этом обзоре вы найдете самые полезные ресурсы по Node.js, от просто удобных инструментов и подробных руководств, до углубленных статей и ресурсов о этой перспективной технологии. Используете ли вы Node.js? Поделитесь опытом в комментариях к этотому посту!

Читать дальше →
Всего голосов 138: ↑129 и ↓9+120
Комментарии70

10 примеров меню для web страниц

Время на прочтение1 мин
Количество просмотров18K
image Эти способы не являются ноу-хау или чем-то в этом духе. Тем не менее, они могут помочь начинающим дизайнерам и web технологам в реализации задуманных ими идей. Каждый из предложенных вариантов можно обыграть по-своему.

Проверял лично и убедился в том, что исправно работает под следующими браузерами:

IE7+, Opera 10.5+, FF 3.6+, Chrome 12+ (linux), Chrome 13+ (windows), Safari 5+(win) исходя из личного опыта, предполагаю о том, что работать исправно будет во всех свежих версиях Safari, FireFox, Opera и Chrome.

С помощью CSS можно построить вот такие вот симпатичные варианты:


Читать дальше →
Всего голосов 163: ↑132 и ↓31+101
Комментарии28

Структуры данных в картинках. ArrayList

Время на прочтение3 мин
Количество просмотров878K
Приветствую вас, хабралюди!

Взбрело мне в голову написать несколько статей, о том как реализованы некоторые структуры данных в Java. Надеюсь, статьи будут полезны визуалам (картинки наше всё), начинающим java-визуалам а также тем кто уже умеет писать new ArrayList(), но слабо представляет что же происходит внутри.



Сегодня поговорим о ArrayList-ах

ArrayList — реализует интерфейс List. Как известно, в Java массивы имеют фиксированную длину, и после того как массив создан, он не может расти или уменьшаться. ArrayList может менять свой размер во время исполнения программы, при этом не обязательно указывать размерность при создании объекта. Элементы ArrayList могут быть абсолютно любых типов в том числе и null.

Поверить на слово
Всего голосов 89: ↑82 и ↓7+75
Комментарии66

PyCon 2011. Краткое изложение докладов

Время на прочтение26 мин
Количество просмотров4.9K
Известно, что с 11 по 13 марта в Атланте (Джорджия) проходила конференция разработчиков PyCon 2011.

Ниже в статье будет приведно краткое изложение большей части докладов со ссылками на видео (англ.). Для удобства ознакомления доклады разбиты по категориям.

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

Читать дальше →
Всего голосов 72: ↑69 и ↓3+66
Комментарии37

Информация

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