Архив

Архив Май 2013

MySQL: Как проверить целостность внешних ключей в InnoDB.

Для ускорения вставки большого объёма данных в InnoDB одна из рекомендаций - отключить проверку целостности ключей. Более того, это ещё позволит и решить проблему с порядком вставки этих данных: если ваша сущность имеет ссылку на какую-либо другую сущность, которая ещё не была создана, то вы имеете все шансы словить ошибку foerign-key constraint'ов, выглядит это примерно так:

Error Code: 1452. Cannot add or update a child row: a foreign key constraint fails (`foreign_key_0022`.`table`, CONSTRAINT `item_id` FOREIGN KEY (`item_id`) REFERENCES `child_table` (`item_id`))

Читать далее...

Ubuntu: Как запустить Advego Plagiatus под Wine.

Advego Plagiatus - это такая тулзовина от биржи копирайтинга для проверки текста на уникальность. Наверное, самое популярное решение в русскоязычном сегменте, хотя и не идеальное, на мой взгляд. Увы, под Windows оно работает без проблем, а вот под Linux, "из коробки" у меня не запустилось. Разработчики года с 2009-го, если не раньше, планируют выпустить версию под Linux и Mac OS, в 2010-м, кажется, обещали точно выпустить. Итак, сейчас 2013-й, в интернете обычно 3 варианта описания запуска Advego Plagiatus в Linux под Wine:

  1. У меня всё работает.
  2. У меня не работает - ошибка.
  3. Я использую virtualbox.

Читать далее...

Virtualenv: Ошибки после обновления версии Python.

Как я писал в прошлом посте, недавно обновил Ubuntu до 13.04. Как и ожидалось, всплыло ряд проблем, и вот новая из них: обновился python до 2.7.4 и старые virtualenv'ы перестали работать. Выглядит это примерно так:

Читать далее...

Ubuntu 13.04: Плохой звук после обновления.

На днях решил всё же обновить свою Ubuntu с 12.10 до 13.04. Предчувствие что не всё пройдёт гладко было и оно не подвело, в результате пока обнаружил 2 бага: звук стал вызывать ностальгию по денди, да ещё в моём любимом awesome WM почему-то перестало работать сочетание win+esc, которое переключает на предыдущий использованный рабочий стол.

Читать далее...

Ghost.py: Реализация sleep с обработкой событий.

Вообще мне Ghost.py не очень пока нравится. Судя по его версии (у меня Ghost.py 0.1b2) - достаточно сырой продукт. Нет некоторыз полезных shortcut'ов, некоторые фичи работают не очень хорошо (например, click - генерирует только JS-событие click, а для ExtJS надо бы mouseDown, для полной эмуляции клика мышкой - ещё и mouseUp). Называть пакет ghost и добавлять в него модуль ghost - тоже не лучшая идея, на мой взгляд (ну их, эти name collisions). Нет функции sleep, может это и плохо использовать именно sleep, но иногда так гораздо удобней, а в случае, если это будет работать плохо, - можно и переделать.

Читать далее...

Django: Не проходит аутентификация в LiveServerTestCase.

На одном проекте на Django начал писать функциональные тесты на Ghost.py. Написав первый тест на регистрацию пользователя, потратил достаточно много времени (во всяком случае, больше, чем хотелось бы) в поисках причины почему не проходит аутентификация. Причём по логам и через дебагер аутентификация проходит успешно, но следующий запрос - редирект на страницу входа.

Читать далее...

PIP: Как установить PySide под Ubuntu Linux.

PySide - одна из библиотек биндингов к Qt, альтернатива PyQt. Разница между ними несущественная и код написанный под PyQt может работать почти без изменений под PySide. Основное преимущество PySide - использование LGPL лицензии против GPL PyQt, которая (LGPL) более "либеральная" и позволяет использовать линковку из проектов с закрытым исходным кодом.

Читать далее...