Analitycs

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

Python implode/join - TypeError: sequence item 0: expected string, int found

Одна из частых функций в PHP проектах - implode/explode.

На Python (по идее/по мануалу) это делается так

tmp = [1,2,3,4,5]
','.join( tmp )

Но в результате - получаем ошибку TypeError: sequence item 0: expected string, int found

Проблема - в том, что у нас числа, а не строки

 В итоге - нужно так

','.join( map( str, tmp ) )
'1,2,3,4,5'

Но вот пресловутое неявное приведение типов-то в PHP как помогает, а? ;-)

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

Google Adsense/Adwords + Translate

Сегодня увидел то, что заставило глубоко задуматься...
Смотрим первое объявление... и видим ничто иное - как использование автоматического перевода Google Translate для показа рекламного объявления с ЯПОНСКОГО языка для показа на РУССКОМ сайте.

Интересно - давно ли это внедрено? Как бы раньше такого - не замечал, информации в публичном доступе не проскакивало

Какой плюс для рекламодателей, однако.

Update: как указали в комментах на Хабре: Это не автомат, а ручной режим, но действительно с помощью GoogleTranslate

"Действительно ручной перевод объявлений на другой язык — это распространенное явление: http://adwords.blogspot.com/2009/10/translate-your-adwords-campaigns-with.html "

А жаль, идея автоматического перевода объявления "под сайт" была бы интересной.

И да, конечно же (разумеется) - там заметку загнали в минуса, что как бы намекает ;-)

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

Как узнать установленную версию Apache?

Для Red Hat дистрибутивов От рута
# httpd -v
Server version: Apache/2.2.17 (Unix)
Server built:   Oct 19 2010 16:27:47
От простого смертного
# ps aux | grep httpd
web     1152  1.6  0.7 314296 62168 ?        S    00:42   0:03 /usr/sbin/httpd

# /usr/sbin/httpd -v
Server version: Apache/2.2.17 (Unix)
Server built:   Oct 19 2010 16:27:47
Либо
# rpm -qa|grep httpd
httpd-2.2.17-1.el5
httpd-tools-2.2.17-1.el5
Для debian-based, понятное дело - httpd заменить на apache2.

вторник, 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

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