четверг, 15 мая 2014 г.

Slackware: выставить разрешение 1280x1024 на GF9500GT + SyncMaster 913n

В один прекрасный момент захотелось на своей Slackware 14.0 x64 устроить разрешение 1280x1024. Да, времена меняются - помнится, я совсем недавно добивался своего любимого 800x600, потом 1024x768... Теперь вот это.

В общем, всё оказалось просто:

1. Вышел из иксов (т.к. они у меня запускаются не автоматически, это было совсем просто. В противном случае там какие-то сложности)

2. Установил драйвер NVIDIA-Linux-x86_64-325.15.run командой:
sudo sh NVIDIA-Linux-x86_64-325.15.run
Он там чего-то там поругался, поотключал, попросил перезагрузиться, продолжил, сконфигурировал, и... визуально ничего не поменялось. Только добавилась прикольная команда: nvidia-settings, в которой можно посмотреть всякие настройки видеокарты.

3. В созданном на предыдущем шаге /etc/X11/Xorg.conf в разделе "Monitor" прописал подсмотренные где-то в инете строки:
Section "Monitor"
    ....
    VertRefresh 40-90
    HorizSync   30-81
    ....
EndSection

4. Запустил xfce обратно командой:
nohup startxfce4 &

И вот тогда уже, наконец смог в меню "Настройки" -> "Дисплей" поставить нужное мне разрешение экрана.

пятница, 9 мая 2014 г.

Xubuntu: обновился до 14.04

От нечего делать решился обновиться с 13.10 до 14.04... Это просто какой-то праздник. По ощущениям слетело всё.

Во-первых, virtualbox начал выдавать ошибки как при загрузке компьютера, так и при попытке запуска виртуальной машины. Вылечилось переустановкой пакета (ну, вообще-то, обновлением до 4.3.10, но, по-моему, это не принципиально: всё равно процедура обновления тут - это снос старого и установка нового)

Во-вторых, начала глючить графика. Разрешение экрана перескочило с 1024x768 в сторону 1280x1024 и обратно ни в какую. Вылечилось установкой пакета nvidia-331. После этого комп свихнулся окончательно и стал просто виснуть в случайные моменты времени. Например, при попытке перетащить работающий mplayer на другой рабочий стол экран начинает мелко подёргиваться, и изображение зависает. Установил пакет nvidia-304, пока это прекратилось.

В-третьих, слетела таблица кодов клавиш в rdesktop. Ну, с этим я когда-то разбирался, так что удалось справиться быстро.

В-четвертых, открытие файла SWF с локального компьютера в FireFox-e приводит к неконтролируемому размножению пустых вкладок, и браузеру резко становится не до меня. Пришлось устанавливать Linux Flash Player 11.2 Projector, который "из коробки" тоже не заработал, там нужно в файле flashplayer-installer закомментировать строки 134-151 (проверку на glibc и i386) и доустановить пакеты:
sudo apt-get install libnss3:i386 libgtk2.0-0:i386 curl:i386

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

вторник, 6 мая 2014 г.

mailto: Некоторые тонкости

Как известно, если в html-коде в атрибуте href какой-либо ссылки написать конструкцию вида mailto:xxx@yyy.zzz, то при клике на эту ссылку вызывается почтовик по умолчанию, и создается пустое сообщение для получателя xxx@yyy.zzz

Менее известно, что эта конструкция допускает параметры (cc, bcc, subject, body), например mailto:xxx@yyy.zzz?subject=hello%20world

А вот с русскими буквами есть небольшая проблема. Оказалось (связка Internet Explorer 8+ и Outlook Express/Outlook 2007), что проканывает такая конструкция: mailto:xxx@yyy.zzz?subject=Привет%20мир

Но особое удивление у меня вызвало интересное ограничение на длину body. Почему-то для работы связки IE9 + Outlook2007 эта длина должна быть меньше 255 символов! Иначе при клике просто открывается about:blank.

А тут - полезная ссылка

четверг, 10 апреля 2014 г.

MSSQL: Функция для транслита

Попытался тут давеча использовать SOUNDEX и DIFFERENCE для поиска похожих фамилий. Безуспешно - выяснилось, что эти функции с кириллицей не работают. Возникла идея транслитерировать фамилии и уже затем скармливать их этим функциям. Эксперимент показал, что всё равно получается не очень хорошо, так что идея умерла. А функция транслитерации (по стандарту ГОСТ Р 52535.1-2006) осталась, вот:
CREATE FUNCTION TranslitString(@string varchar(256)) RETURNS varchar(256)
AS BEGIN

DECLARE @return varchar(256)

SET @return = UPPER(@string)
SET @return = REPLACE(@return, 'АЙ', 'AY')
SET @return = REPLACE(@return, 'ЕЙ', 'EY')
SET @return = REPLACE(@return, 'ИЙ', 'IY')
SET @return = REPLACE(@return, 'ОЙ', 'OY')
SET @return = REPLACE(@return, 'УЙ', 'UY')
SET @return = REPLACE(@return, 'ЫЙ', 'Y')
SET @return = REPLACE(@return, 'ЭЙ', 'EY')
SET @return = REPLACE(@return, 'ЮЙ', 'YUY')
SET @return = REPLACE(@return, 'ЯЙ', 'YAY')
SET @return = REPLACE(@return, 'А', 'A')
SET @return = REPLACE(@return, 'Б', 'B')
SET @return = REPLACE(@return, 'В', 'V')
SET @return = REPLACE(@return, 'Г', 'G')
SET @return = REPLACE(@return, 'Д', 'D')
SET @return = REPLACE(@return, 'Е', 'E')
SET @return = REPLACE(@return, 'Ё', 'E')
SET @return = REPLACE(@return, 'Ж', 'ZH')
SET @return = REPLACE(@return, 'З', 'Z')
SET @return = REPLACE(@return, 'И', 'I')
SET @return = REPLACE(@return, 'Й', 'I')
SET @return = REPLACE(@return, 'К', 'K')
SET @return = REPLACE(@return, 'Л', 'L')
SET @return = REPLACE(@return, 'М', 'M')
SET @return = REPLACE(@return, 'Н', 'N')
SET @return = REPLACE(@return, 'О', 'O')
SET @return = REPLACE(@return, 'П', 'P')
SET @return = REPLACE(@return, 'Р', 'R')
SET @return = REPLACE(@return, 'С', 'S')
SET @return = REPLACE(@return, 'Т', 'T')
SET @return = REPLACE(@return, 'У', 'U')
SET @return = REPLACE(@return, 'Ф', 'F')
SET @return = REPLACE(@return, 'Х', 'KH')
SET @return = REPLACE(@return, 'Ц', 'TC')
SET @return = REPLACE(@return, 'Ч', 'CH')
SET @return = REPLACE(@return, 'Ш', 'SH')
SET @return = REPLACE(@return, 'Щ', 'SHCH')
SET @return = REPLACE(@return, 'Ы', 'Y')
SET @return = REPLACE(@return, 'Э', 'E')
SET @return = REPLACE(@return, 'Ю', 'IU')
SET @return = REPLACE(@return, 'Я', 'IA')
SET @return = REPLACE(@return, 'Ь', '')
SET @return = REPLACE(@return, 'Ъ', '')

RETURN @return

END

четверг, 27 марта 2014 г.

Windows: сообщение stdole32.tlb при запуске MS Excel 2007

Почему-то при запуске MS Excel 2007 каждый раз выдаётся уведомление с очень информативным текстом "stdole32.tlb", после чего запускается программа установки офиса, что-то там делает и только после этого позволяет работать с екселем. Не знаю, то ли ексель радуется, что нашёл stdole32.tlb, то ли печалится, что наоборот, нет доступа к этому критически важному файлу.

В интернете есть несколько советов по исправлению этого поведения, см., например, вот. Мне же помог такой вариант. Вкратце:

1. Деинсталлируем офис.

2. Запускаем два FixIt-а:
Для деинсталляции MSOffice2007
http://support.microsoft.com/kb/928218
Для деинсталляции MSOffice2003
http://support.microsoft.com/kb/2639197

3. Запускаем еще одну утилиту - вроде как помощник для установки и удаления программ:
http://support.microsoft.com/mats/Program_Install_and_Uninstall
(не знаю, правда, зачем, по-моему, она всё равно ничего полезного не сделала)

4. Инсталлируем офис по-новой.

четверг, 13 марта 2014 г.

Windows: как в UAC добавить исключение

Сам не проверял, но попалась интересная статья. Вкратце:

1. Устанавливаем Microsoft Application Compatibility Toolkit 5.6

2. Запускаем Compatibility Administrator от имени администратора.

3. Нажимаем кнопку Fix, следуем указаниям мастера, в результате получаем базу данных с параметрами совместимосте, сохраняем её, затем через меню File->Install эту базу данных устанавливаем.

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

Надо будет попробовать.

среда, 12 марта 2014 г.

Ubuntu: Печать страниц в альбомной ориентации в LibreOffice

Оказывается, это не так тривиально. Помогло следующее:
Внутри LibreOffice в меню Tools, пункт Options, раздел LibreOffice, пункт Print снять галочку опции "PDF as Standard Print Job Format".