Best practices MySQL migrations

http://jonathonhill.net/2011-10-08/mysql-schema-migrations-best-practices/

Nice blog

blog.sigfpe.com/

Как посмотреть таблицы, связанные с данной, в MySQL?

Нечто вроде такого запроса:

SELECT table_name, column_name, referenced_table_name, referenced_column_name, constraint_name FROM `information_schema`.`KEY_COLUMN_USAGE` 
where table_schema='schematest' and (referenced_table_name = 'sotm_product' or table_name = 'sotm_product') and referenced_table_name is not null;

Выполняются такие запросы очень медленно:

mysql> explain SELECT table_name, column_name, referenced_table_name, referenced_column_name, constraint_name FROM `information_schema`.`KEY_COLUMN_USAGE` 
where table_schema='schematest' and (referenced_table_name = 'sotm_product' or table_name = 'sotm_product') and referenced_table_name is not null;
+----+-------------+------------------+------+---------------+--------------+---------+------+------+--------------------------------------------------+
| id | select_type | table            | type | possible_keys | key          | key_len | ref  | rows | Extra                                            |
+----+-------------+------------------+------+---------------+--------------+---------+------+------+--------------------------------------------------+
|  1 | SIMPLE      | KEY_COLUMN_USAGE | ALL  | NULL          | TABLE_SCHEMA | NULL    | NULL | NULL | Using where; Open_full_table; Scanned 1 database |
+----+-------------+------------------+------+---------------+--------------+---------+------+------+--------------------------------------------------+
1 row in set (0.04 sec)

MySQL — Can’t create table (errno: 121)

Возникла такая ошибка, когда создаете таблицу? Смотрим:

$ perror 121
OS error code 121: Remote I/O error

Как же так? Ответ в этом посте: http://thenoyes.com/littlenoise/?p=81
Если вкратце, то имя связи по вторичному ключу, которое вы задавали ручками, уже существует.

Logitech USB Headset H530 и Fedora 15

Пришлось пободаться — не работали. Затем в параметрах звука отключил «Internal Audio» на вкладке «Оборудование» (для этого нужно выделить и выбрать профиль — Off), а для наушников установил профиль Analog Stereo Output + Analog Mono Input

RuntimeError: dictionary changed size during iteration

Встречалась такая ошибка? Решение — использовать keys() у словаря.

Ссылки с подробными объяснениями:

https://drj11.wordpress.com/2009/04/02/python-iterating-and-mutating-dictionary/

bayes.colorado.edu/PythonIdioms.html

Вывод таблиц и имен полей в PostgreSQL

Я использую PostgreSQL 9.1. В 9.0 и ниже в регулярках используйте вместо одного бекслеша два (\\)

SELECT t.tablename, pa.attname
FROM
pg_tables t
JOIN
pg_type pt ON pt.typname = t.tablename
JOIN
pg_attribute pa ON pa.attrelid = pt.typrelid
WHERE
t.tablename NOT LIKE 'pg\_%'
AND t.tablename NOT LIKE 'sql\_%'
AND attname NOT IN ('cmin', 'cmax', 'ctid', 'oid', 'tableoid', 'xmin', 'xmax');

Maximum sum of subarray elements

var a = [];

for (var i = 0; i < 10; a[i] = Math.round(Math.random() * 10), i++);

console && console.log(a);

function find(arr) {
    var currMin = Infinity;
    var currMinIndex = null;
    var maxDiff = -Infinity;
    var best = {};
    for (var i in arr) {
        var v = a[i];
        if (v <  currMin) {
            currMin = v;
            currMinIndex = i;
        }
        if (v - currMin > maxDiff) {
            maxDiff = v - currMin;
            console && console.log('Now max diff from ' + v + ' and ' + currMin + ' is ' + maxDiff);
            best = {start: currMinIndex, stop: i, startValue : a[currMinIndex], stopValue : v};
        }
    }
    return best;
}

var res = find(a);

for (var i in res) {
    console && console.log(i + ': ' + res[i]);
}

Thundenbird backup and restore in Ubuntu

Helful link: http://www.cyberciti.biz/faq/linux-backup-thunderbird-email-profile/

ExtJS 4 dynamic controller loading

Nice link how to do this: https://www.sencha.com/forum/showthread.php?132795-Dynamically-loading-MVC-controller