Analitycs

вторник, 24 января 2012 г.

От Arena до Skyrim - Заглавные темы из всех Elder Scrolls

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

К Oblivion отнесся гораздо спокойней, но все таки прошел, теперь закончил и Skyrim. Хорошо, но мало - ждем до едрени фени разных DLC.

Если кто не в курсе...
  • 00:00 The Elder Scrolls I: Arena 
  • 00:31 The Elder Scrolls II: Daggerfall 
  • 01:22 The Elder Scrolls III: Morrowind 
  • 02:28 The Elder Scrolls IV: Oblivion 
  • 03:09 The Elder Scrolls V: Skyrim

пятница, 20 января 2012 г.

Как полноценно включить UTF-8 для MySQL?

Что нужно добавить в /etc/my.cnf для полноценной поддержки UTF-8 в MySQL, включая вывод данных в консоли mysql


[mysqld]
default-character-set=utf8
default-collation=utf8_general_ci
character-set-server=utf8
collation-server=utf8_general_ci
init-connect='SET NAMES utf8'
 
[client]
default-character-set=utf8
 
[client]
default-character-set=utf8

четверг, 19 января 2012 г.

Python PIP не работает под MacOS X 10.7 Lion - pkg_resources.DistributionNotFound: pip==1.0.2

На новой машинке чудеса с PIP и MacPorts следующего вида - система не видит установленного PIP через MacPorts

Диагноз

$ pip
Traceback (most recent call last):
  File "/usr/local/bin/pip", line 5, in 
    from pkg_resources import load_entry_point
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 2603, in 
    working_set.require(__requires__)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 666, in require
    needed = self.resolve(parse_requirements(requirements))
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 565, in resolve
    raise DistributionNotFound(req)  # XXX put more info here
pkg_resources.DistributionNotFound: pip==1.0.2

Самолечение

Не совсем грамотно, но вроде помогло - установка PIP через easy_install
curl -O http://python-distribute.org/distribute_setup.py
sudo python distribute_setup.py
sudo easy_install pip

среда, 18 января 2012 г.

mysqldump: Got error: 1449: The user specified as a definer ('user'@'x.x.x.x') does not exist when using LOCK TABLES

Диагноз

При попытке сдампить базу MySQL получаем ошибку

mysqldump: Got error: 1449: The user specified as a definer ('user'@'x.x.x.x') does not exist when using LOCK TABLES

Причина - отсутсвует пользователь который прописан в хранимых процедурах/триггерах.

Похоже, что эта ошибка возникает, когда исходный/изначальный дамп MYSQL импортируется в сервер с ключем "force" (-f - который игнорирует ошибки), а потом его пытаются сохранить с этой машины.

Лечение

Вариант 1

Правим хранимую процедуру и дампим заново

use mysql;
select * from proc;

Вариант 2

1. Создаем пользователя

GRANT ALL PRIVILEGES ON *.* TO 'misseduser@*' IDENTIFIED BY 'some_pass' WITH GRANT OPTION

2. Дампим базу

3. Правим в дампе куски с отсутсвующими пользователями на CURRENT_USER Ищем что-то типа

/*!50013 DEFINER=`missed user`@`some_host` SQL SECURITY DEFINER */

и

DEFINER=`some_user`@`some_host`

заменяется на

DEFINER=CURRENT_USER

По мотивам этой заметки.

вторник, 17 января 2012 г.

Email от PHPBB падает в spam

Диагноз и причина

Оповещения от русской версии PHPBB падают в спам.

X-Amavis-Alert: BAD HEADER SECTION, Non-encoded 8-bit data (char D3 hex): 
   Subject: 323342345344356354353345355350345 356341 
   356[...] 
X-Spam-Flag: NO 
X-Spam-Score: 4.301 
X-Spam-Level: **** 
X-Spam-Status: No, score=4.301 tagged_above=-10 required=5 
   tests=[BAYES_50=0.8, RCVD_IN_DNSWL_NONE=-0.0001, 
   SUBJECT_NEEDS_ENCODING=0.049, SUBJ_ILLEGAL_CHARS=1.518, 
   TO_NO_BRKTS_MSFT=1.934] autolearn=no

subject уходит с сервера в iso-8859-1/quoted. В этой кодировке русских букв нет.

Subject: 
   =?iso-8859-1?Q?=D3=E2=E5=E4=EE=EC=EB=E5=ED=E8=E5_=EE=E1_=EE=F2=E2?= 
   =?iso-8859-1?Q?=E5=F2=E5_=E2_=F2=E5=EC=E5_-_=D7=F2=EE_=ED=E5_=ED=F0=E0=E2?= 
   =?iso-8859-1?Q?=E8=F2=F1=FF_=ED=E0_=F1=E0=E9=F2=E5?=

Хотя тело сообщения - нормально в Windows-1251

MIME-Version: 1.0
Content-type: text/plain; charset=windows-1251 
Content-transfer-encoding: 8bit 

Лечение


Нужно изменить кодировку Subject на необходимую с русскими буквами(win1251, utf8, koi8r).

файл

PHPBB_DIR/include/emailer.php

после строчки

$this->subject = (($this->subject != '') ? $this->subject : 'No Subject');

Добавляется

$this->subject = '=?'.trim($lang['ENCODING']).'?B?'.base64_encode($this->subject).'?=';

И после - вуаля

X-Spam-Flag: NO 
X-Spam-Score: 0.034 
X-Spam-Level: 
X-Spam-Status: No, score=0.034 tagged_above=-10 required=4 
   tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, 
   TO_NO_BRKTS_MSFT=1.934] autolearn=no

По материалам этой темы, спасибо коллеге BW4ever за баг-репорт

пятница, 13 января 2012 г.

Установка Ubuntu с помощью Wubi - редкостное гуано

Мое знакомство с десктопными Linux (в отличие от серверных) обычно происходило достаточно эпизодически - поставил-настроил-поигрался-забыл.

Еще в 90 годы несколько раз пытался полноценно мигрировать на Linux различных версий - BlackCat, RedHat и т.д. обычно эти попытки заканчивались тем, что потрахавшись с настройкой Иксов, модема и прочего - я настраивал все что можно, успешно выходил в интернет через модем и через пару недель возвращался обратно в Windows, а Линукс тихонько гнил на своем разделе.

Уже в 2000 было примерно тоже самое с Mandrake, Fedora и Ubuntu, потом я пересел на Mac и ставил Ubuntu как десктоп исключительно на рабочих машинах - когда не было возможности получить привычную среду.

Поэтому, получив ноутбук Lenovo T420s с Windows 7 на борту я честно (но без особого успеха) попытался работать на нем пару недель в чуждой среде, но сдался и решил воткнуть туда Ubuntu... Увы - первая установка сдохла при попытке установить пакет с Compiz.

Вторую установку я решил сделать через  Wubi - никогда им не пользоватся -  посмотрел, идея вроде интересная - "поставить Никсы прямо из Винды" - удобно.

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

Сегодня получаю дамп базы с production-сервера (большо-о-о-ой, вкусный такой дамп ;-) ), начинаю его разаархивировать - и машина умирает. LA 3 с хвостиком, консоль реагирует с задержкой в несколько десятков секунд.

Непонятненько, ну да ладно, подождем.

Затем начинаю вкатывать дамп в базу - и машина умирает снова - LA до 4, все приложения реагируют с огромной задержкой, в топе висит mysql и какой-то процесс префикс_не_помню.ntfs. Я в непонятках - какое, казалось бы, ntfs отношение имеет к mysql?

Отключаю все подключенные виндовые диски - не помогает. Подумав с коллегами - решаем его кильнуть - этот странный мифический процесс

sudo kill xxxx.ntfs

Через 2 секунды - kernel panic... У меня ступор - начинаю думать, перегружаюсь, и что-то мне начинает не нравится - я начинаю подозревать неладное.

Вообщем, немного поковырялся - и мы все начали истерически ржать.

Выяснилось, что эта хрень под названием Wubi создает раздел на NTFS как файл и монтирует его как ext3 через FUSE!!! В результате все это работает... даже не скажу - во сколько десятков раз медленней, чем обычно, и разумеется - вкатывание дампа на много-много ..байт приводит к полным тормозам.

Итог
1) "убить упрямую тварь" (с) и ставить Бубунту обычным путем. Не уверен - удастся ли нормально мигрировать ЭТО хотя бы в виртуалку VirtualBox
2) ВНИМАТЕЛЬНО читать - чего пишет незнакомые софтинки, особенно - мелким шрифтом ;-)

среда, 11 января 2012 г.

Проблемы у Lenovo T420s под Ubuntu с подключением 2го монитора

Столкнулся с забавной проблемой  - Lenovo T420s на док-станции под Ubuntu не видит внешнего монитора через HDMI порт.

Кстати, через VGA у дока - тоже оказалось не все гладко, ибо тогда включается либо зеркальное отображение (одинаковая картинка и там и там), либо - на втором мониторе пустой рабочий стол, и окошки туда не перетащить (можно поменять местами по Fn+F7). Ну и заодно - разрешение и там и там одинаковое, что привело к размытому изображению на внешнем мониторе

Найдено простое GUI решение.

Устанавливается ARandR


И через него - спокойно меняются разрешения, и что самое интересное - нормально таскаются окошки.

Не иначе - как какое-то "злобное колдунство" (с). Вопрос с HDMI пока остается открытым.