2012-02-29

Ubuntu 12.04 - как-то все расплывчато...

Установил для пробы Ubuntu 12.04 LTS, не релиз, но уже близко. С помощью утилиты dconf-tools поставил сглаживание шрифтов на максимум, но все равно они были не такими четкими, как в предыдущей версии. Хотел было откатиться назад, но тут пришло в голову проверить настройки видеокарты. Обычно я туда никогда не лезу, но вот... Стоило поменять вот это


на это


то есть Auto на 60 Hz, как все стало просто прекрасно. Не так и сложно для карт Nvidia.
Надеюсь, кому-то поможет.

2012-02-21

Ubuntu и стандартные каталоги

По умолчанию в Ubuntu присутствуют несколько стандартных каталогов - Музыка, Изображения, Видео, Документы, Рабочий стол. При смене языка ОС предлагает переименовывать их. Вобщем, может возникнуть некоторая путаница, и захочется поправить самостоятельно системные пути к этим папкам. Они находятся в файле в домашнем каталоге. Правим:
gedit ~/.config/user-dirs.dirs
Получаем нечто такое:

XDG_DESKTOP_DIR="$HOME/Desktop"
XDG_DOWNLOAD_DIR="$HOME/Downloads"
XDG_TEMPLATES_DIR="$HOME/Templates"
XDG_PUBLICSHARE_DIR="$HOME/Public"
XDG_DOCUMENTS_DIR="$HOME/Documents"
XDG_MUSIC_DIR="$HOME/Music"
XDG_PICTURES_DIR="$HOME/Pictures"
XDG_VIDEOS_DIR="$HOME/Video"

Правим, как нам угодно. Красота.

Ubuntu 11.10 и parcellite - нет значка в трее

Так как трей уже не тот, приходится производить некоторые акробатические этюды. Итак, в консоли пишем да запускаем установку нужных пакетов:
sudo apt-get install parcellite dconf-tools
Это понятно, ставим parcellite и утилиту правки реестра конфигурации.
Жмем Alt-F2 и набираем dconf-editor. Там лезем в ветку desktop-unity-panel, там единственный параметр systray-whitelist, который определяет, каким приложениям можно в трей залезать. Добавляем туда нашего героя, т.е. дописываем в хвост
, 'parcellite'
жмем, Enter, перелогиниваемся, запускаем Parcellite - вот он, голубчик.

2012-02-02

PHP, кодировки и строковые функции


Время от времени возникает у разработчиков проблема - не желают работать стандартные функции strtolower, strtoupper, ucfirst. Особенно это актуально для сайтов, в которых есть файлы нескольких видов кодировок. Видел я решение самописное, вот такое:
strtr(
    $s,
    'йцукенгшщзхъфывапролджэячсмитьбюё',
    'ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮЁ'
);
strtr(
    $s,
    'ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮЁ',
    'йцукенгшщзхъфывапролджэячсмитьбюё'
);
strtr(
    substr($s,0,1),
    'йцукенгшщзхъфывапролджэячсмитьбюё',
    'ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮЁ'
).substr($s,1) ;

При использовании кодировки UTF-8 начинают сбоить и такие методы. С радостью обнаружил готовые функции, предназначенные для работы с многобайтными кодировками. Вы легко это найдете, но пусть хорошей информации будет побольше.
mb_convert_case($str, $mode [, $encoding ]);
$str - строка для обработки.
$mode может быть MB_CASE_UPPER (верхний регистр), MB_CASE_LOWER (нижний регистр) или MB_CASE_TITLE (первая буква в верхнем регистре).
$encoding может быть, например 'UTF-8'. Если не указывать, то вместо него будет использовано значение внутренней кодировки.

Есть укороченные варианты для MB_CASE_UPPER и MB_CASE_LOWER:
mb_strtolower($str [, $encoding]);
mb_strtoupper($str [, $encoding]);

P.S. Прошу не судить строго за бояны.