Pull to refresh
43
0
Сергей @SSiarhei

User

Send message

Yet another cool story about bash prompt

Reading time10 min
Views37K
Я программист. По крайней мере так написано в трудовой книжке. Почти всё своё рабочее время я провожу в консоли и текстовом редакторе. Мне очень нравится bash. Почти год я жил в zsh, прислушавшись к советам своих многочисленных коллег и знакомых, но в итоге я вернулся в bash и ни капельки об этом не жалею.



Zsh красив, приятен, чертовски функционален, но, признаюсь честно, я не смог совладать со всеми его многочисленными настройками. Я хочу работать, а не бороться со своим рабочим окружением. Простой пример: пару раз из-за автодополнения zsh я удалял все директории и файлы в текущей директории — zsh просто ставил пробел между автодополненной директорией и введённой мною звёзочкой (я хотел удалить всё в выбранной папке). Помните тот эпичный баг с пробелом и удалении директории /usr? У меня было то же самое. Спасибо гиту, выручил в который раз.

Впрочем, дело не в zsh — будь я чуточку умнее, я бы с ним обязательно справился бы, и всё было бы хорошо, но мы, суровые программисты, будем использовать bash и vim, а гламурные zsh и textmate оставим хипстерам и прочим модникам ;)

Я не напишу ничего оригинального и универсального решения я не приведу, но мне всегда нравилось читать конфиги и описания других людей, а если к ним были приложены интересные картинки, так я вообще перечитывал эти статьи несколько раз. Надеюсь, вам тоже будет интересно.
Читать дальше →
Total votes 175: ↑166 and ↓9+157
Comments143

Android SDK: боремся с ограничением размера памяти для картинок

Reading time5 min
Views16K
В графическом приложении для рисования используется SurfaceView и пара Bitmap размером с экран (например, я хочу изобразить плавное листание страниц книги).

На многих устройствах с большим разрешением экрана приложение падает c ошибкой
AndroidRuntime: java.lang.OutOfMemoryError: bitmap size exceeds VM budget

Проблема в том, что память для Bitmap, а также для SurfaceView резервируется из общей кучи процесса. Лимит размера кучи — невелик, как правило немногим больше 10Мб. И задается этот лимит при сборке системы.

Попытки улучшить ситуацию урезанием формата пикселя с 32 бит до 16 не слишком помогают. Проблема просто вылезает позже — например, при открытии окна поверх SurfaceView (видимо, при этом создается еще один Bitmap размером с экран).

Ограничение размера графических буферов программы в 3-4 экрана — это до обидного мало! Попробуем исправить такую несправедливость.
Читать дальше →
Total votes 33: ↑30 and ↓3+27
Comments26

Допиливание Gnome 3 под ArchLinux

Reading time4 min
Views51K


Итак, у нас есть свежеустановленная по инструкции Beginners' Guide система ArchLinux с окружением Gnome 3. Логинимся, осматриваемся. Мое и не только мое мнение — очень непривычно и неудобно. Столкнувшись с рядом проблем подумывал о бегстве на KDE, но посидев на форумах и арчивики пару дней довел все до удобного мне вида. Вот только на доработку системы требуется от силы пол часа, а те почти два дня ушли на поиск способов решения появившихся проблем. Сейчас я постараюсь сделать краткий и емкий список решений для популярных проблем, без лишних картинок и слов, дабы сэкономить другим и себе из будущего (который забудет как это все делается) время. Посмотреть «большую картинку» можно тут.
Читать дальше →
Total votes 59: ↑48 and ↓11+37
Comments31

Адаптируем графику под Retina экран

Reading time3 min
Views51K
image
Очень часто мне встречаются сайты которые отвратительно выглядят на iPhone4, и дело даже не в том, что большинство из них не адаптированы под маленький экран, а в том, что разработчики не учитывают новый тип экранов. На иконки не хочется смотреть, на кнопки не хочется нажимать, а от картинок вообще хочется… закрыть сайт. То, что призвано завлечь пользователя на сайт, вникнуть в его суть, а не покинуть его тут же — теперь работает совершенно наоборот. Но пользователи iPhone в целом привыкли к такой ситуации, т.к. телефон не может заменить полноценного браузинга.

Однако, совсем недавно Apple дала нам iPad 3 небольшую фору, для того, чтобы привести дела впорядок. iPad'ом уже пользуются вполне себе полноценно, поэтому сайты должны выглядеть на нем ничуть не хуже, чем на ноутбуке или стационарном компьютере. И я считаю, что iPad 3 — это лишь первый шаг к полноценному внедрению Retina экранов в те же ноутбуки, а за ними и в стационарные мониторы. Apple уже готовит свою OS для Retina, у Windows 8 скорее всего с этим тоже проблем не будет, с их новым подходом в дизайне интерфейсов.
Читать дальше →
Total votes 85: ↑60 and ↓25+35
Comments127

Мой опыт разработки/продвижения/поддержки. Perfect Ear

Reading time8 min
Views5.3K
Здравствуйте, коллеги,

наконец-то у меня дошли руки написать немного о своем опыте на примере моего главного на сегодняшний день приложения Perfect Ear (в русском маркете известного как Абсолютный Слух).

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

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

В конце приведу некоторые цифры.

Читать дальше →
Total votes 62: ↑61 and ↓1+60
Comments57

ListView в Android: Кастомизация списков

Reading time15 min
Views218K
Продолжение статьи о ListView в Android, в котором мы рассмотрим более сложные примеры его использования, такие, как иконки на элементах списка и добавление чекбоксов к этим элементам. Так же мы рассмотрим возможности по оптимизации кода.
Читать дальше →
Total votes 47: ↑38 and ↓9+29
Comments16

ListView в Android: Простое использование

Reading time4 min
Views71K
Блуждал в Интернете в поисках достойного мануала. Нашел, по моему мнению, достойный, но, как водится в кругах программирования под Android он, конечно же, на английском. Вот и решил привнести свой вклад в распространение мануалов в этой среде на русском. Буду его изучать и, попутно, переводить сюда.
Читать дальше →
Total votes 32: ↑24 and ↓8+16
Comments7

Учебный курс по разработке для Android от Google

Reading time1 min
Views8.3K
image
Желая привлечь еще больше разработчиков, в Google приняли решение организовать самостоятельно специальную программу для обучения программированию под свою мобильную платформу.

Обучающая программа носит название Android Training и уже доступна желающим. Надо сказать, что диапазон тем программы весьма разный: начиная от азов, таких как работа с Layout — затем рассматриваются такие темы как работа с аудио, фото, оптимизация работы батареи — заканчивая вопросами монетизации приложения. Статьи, конечно, сопровождаются инфографикой и примерами кода, а сам ресурс, как обещает команда Android Team, будет развиваться и дополняться.

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

Пост-анонс можно посмотреть здесь.

[Android Training]
Total votes 111: ↑104 and ↓7+97
Comments14

Выполнение задач в бэкграунде

Reading time4 min
Views117K
На Stackoverflow часто встречаются вопросы по выполнению на Android фоновых задач, в т.ч. и повторяющихся с заданным промежутком времени. Как правило, первое, что используется, это Service.

Такой подход в некоторых случаях может привести к тормозам и низкой скорости ответа пользовательского интерфейса. Расскажу когда так бывает и как с этим бороться…
Читать дальше →
Total votes 52: ↑45 and ↓7+38
Comments29

DNS сервер BIND (теория)

Reading time21 min
Views489K
Основная цель DNS — это отображение доменных имен в IP адреса и наоборот — IP в DNS. В статье я рассмотрю работу DNS сервера BIND (Berkeley Internet Name Domain, ранее: Berkeley Internet Name Daemon), как сАмого (не побоюсь этого слова) распространенного. BIND входит в состав любого дистрибутива UNIX. Основу BIND составляет демон named, который для своей работы использует порт UDP/53 и для некоторых запросов TCP/53.

Основные понятия Domain Name System


Исторически, до появления доменной системы имен роль инструмента разрешения символьных имен в IP выполнял файл /etc/hosts, который и в настоящее время играет далеко не последнюю роль в данном деле. Но с ростом количества хостов в глобальной сети, отслеживать и обслуживать базу имен на всех хостах стало нереально затруднительно. В результате придумали DNS, представляющую собой иерархическую, распределенную систему доменных зон. Давайте рассмотрим структуру Системы Доменных Имён на иллюстрации:
Читать дальше →
Total votes 110: ↑102 and ↓8+94
Comments24

Резервное копирование данных в MySQL

Reading time5 min
Views151K
Резервное копирование базы данных — это такая штука, которую вечно приходится настраивать для уже работающих проектов прямо на «живых» production-серверах.
Подобная ситуация легко объяснима. В самом начале любой проект еще пуст и там просто нечего копировать. В фазе бурного развития головы немногочисленных разработчиков заняты исключительно прикручиванием фишек и рюшек, а также фиксом критических багов с дедлайном «позавчера». И только когда проект «взлетит», приходит осознание, что главная ценность системы — это накопленная база данных, и её сбой станет катастрофой.
Эта обзорная статья — для тех, чьи проекты уже достигли этой точки, но жареный петух ещё не клюнул.
Читать дальше →
Total votes 88: ↑84 and ↓4+80
Comments52

Hg Init: Часть 2. Основы Mercurial

Reading time7 min
Views229K
Это вторая часть из серии Hg Init: Учебное пособие по Mercurial от Джоэля Спольски (Joel Spolsky). Возможно, вы захотите прочитать и первую часть «Переобучение для пользователей Subversion».

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

Часть 2. Основы Mercurial



Mercurial — это система контроля версий. Разработчики используют ее для администрирования исходного кода. У нее два основных назначения:
  1. Она хранит все предыдущие версии каждого файла
  2. Она может объединить разные версии вашего кода, то есть сотрудники могут независимо работать над кодом и затем объединять свои изменения


Читать дальше →
Total votes 72: ↑69 and ↓3+66
Comments66

Про Git на пальцах (для переходящих с SVN)

Reading time8 min
Views279K
Год назад мы с командой решили перейти с SVN на Git. Зачем это было надо — писать не буду, т.к. на эту тему уже и так много написано. А хочу я описать типичные алгоритмы работы, понятные человеку, который долгое время пользовался SVN. Ниже — памятка, написанная для команды год назад, чтобы легче было мигрировать. Надеюсь, кому-нибудь пригодится.
Читать...
Total votes 179: ↑175 and ↓4+171
Comments100

Картинки в чате skype

Reading time2 min
Views78K
image

Оказывается, в чате скайпа работают некоторые HTML-теги, в том числе и <font color="">
Благодаря этому возможно создавать несложные картинки в тексте сообщений.

Список поддерживаемых в скайпе тегов www.wikireality.ru/wiki/HTML_в_Скайпе
Для того чтобы оправить HTML-код в чате нужно зажать CTRL+SHIFT и кликнуть на кнопку отправки сообщения.

Код картинки pastebin.com/raw.php?i=z4EspzjC

Ниже показан пример генерации HTML-кода из изображения на PHP.

Читать дальше →
Total votes 212: ↑187 and ↓25+162
Comments147

Как можно снизить потребление оперативной памяти на VPS в 2 раза, ничего не меняя в настройках программ

Reading time3 min
Views33K
Взял VPS, построенный на OpenVZ. Поставил туда Debian Lenny и всякие программы (обычный LAMP, по сути). С точки зрения потребления ресурсов ничего почти не настраивал, вышло где-то 200М занятой оперативной памяти (сразу после старта).
Написал ulimit -s 1024 в /etc/init.d/rc ближе к верху. Перезагрузился. Потребление памяти на VPS упало более чем вдвое, стало около 100М.

Если у Вас VPS на Xen или аналогичных, то у Вас нет граблей, с которыми я тут боролся. Если на OpenVZ (Virtuozzo) со товарищи — у Вас, скорее всего, на VPS эти же грабли.

В статье — почему и как это работает.

Читать дальше →
Total votes 66: ↑62 and ↓4+58
Comments45

CSS кнопки с помощью псевдо-элементов

Reading time5 min
Views47K


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

В этом уроке я покажу как создать кнопку с изюминкой, используя только якорный тег и мощь CSS.

Читать дальше →
Total votes 238: ↑230 and ↓8+222
Comments117

Создаем анимированные кнопки при помощи CSS3

Reading time11 min
Views56K


В данной статье я хочу поделиться с вами некоторыми экспериментами по созданию анимированных кнопок при помощи CSS3. Идея заключается в создании анимированных ссылок с разными стилями, hover-эффектами и пр.

В данных примерах используются иконки с webiconset.com, а также шрифт от Just Be Nice.

Мы рассмотрим каждый пример и разберем как выглядит их HTML-структура и стили для разных состояний кнопок.

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

Чтобы не захламлять код в уроке я не буду использовать префиксы для различных браузеров. Их вы сможете увидеть в архиве с примерами.
Читать дальше →
Total votes 215: ↑207 and ↓8+199
Comments40

Полочная акустика своими руками

Reading time12 min
Views502K
Однажды я задумал собрать себе качественную акустику для озвучивания небольшой комнаты, а также для использования в качестве мониторов ближнего поля при работе со звуком на компе (хобби). Главное требование — адекватное звучание по отношению к источнику. Не чтобы «низы колбасило» или «тарелочки звенели», а именно адекватное естественное звучание. Итак, собираем качественные «полочники».
Читать дальше →
Total votes 234: ↑230 and ↓4+226
Comments86

Information

Rating
Does not participate
Location
Минская обл., Беларусь
Date of birth
Registered
Activity