Практика

Практика

JS: Ключи в массивах

Кстати, если вы передаете нумерованный массив яваскрипту через аякс — то опля — он сам упорядочится. Правда же здорово и вы совсем могли не хотеть писать как ключи идентификаторы, в нужном вам порядке. Так что ассоциативные массивы не доставляют радости, приходится проверять что же там такое на самом деле творится.

Продолжить чтение…

Метки:


Практика

Postgre: Как сдампить базу и запихнуть в контроль версий

Настал тот день, когда Вам приходится писать много, действительно много функций в базе данных, а не в php. И в принципе наверное можно так и писать, потихоньку сохраняя куда-то у себя в схемах, но дублировать код — грустно, нудно и бессмысленно. Не сохранять — а просто ваять базу через консольку sql запросов — как делает большая часть команд разработчиков, не наделенных отдельным архитектором БД, и уж тем более каждый честный одинокий пыхпыхер… — это рискованное земледелие. Мягко выражаясь) Поэтому, для себя я делаю такой вот минимегаскриптик на php (не считая регулярного pg_dumpall -U -f). Потому что мне удобнее видеть в дереве проекта читабельную схему, а в контроле версий — реальные изменения каждого отдельного файла. Схему, сейчас завязанную на экспорте таблиц и функций из Postgre через sql запросы, можно развить и разнообразить под личные вкусы (например, добавить представления — они практически рядом), но ведь забавно что вытянуть в конце концов можно все.

ПС Я знаю про автоматические рисовалки БД вроде DBDesigner, но лично меня удивляют результатами (я люблю больше и все по-другому))))

Продолжить чтение…


Практика

MySQL: Как беречь собственные нервы и базу данных

Игнорирование возможностей баз данных и тупое копирование пхп кода из проекта в проект от древних времен приводит к печалькам. Когда у Вас маленький маленький сайт — это одно, но когда записей становится много, на самом деле много, каждый лишний чих убивает один нейрон мозга разработчика. Простые и понятные вещи, которые нужно каждый раз проверять(

Продолжить чтение…


Практика

MySQL: Как убить процессы в базе

Что делать, если база уже висит… Есть волшебнейшая команда «вернуть процессы», эквивалент выполнения «SHOW FULL PROCESSLIST», по которой можно эффективно выбросить из базы лишних паразитов. И спокойно подумать где и зачем Вы этих паразитов создали, без паники со стороны клиента «аааа, что с сайтом, почему все не так»

Собственно скрипт удаления процессов достаточно мелкий

$result = mysql_list_processes($db_link);
$kills = array();
while ($row = mysql_fetch_assoc($result)){
	printf("%s %s %s %s %s<br/>\n%s\n<br/>", $row['Id'], $row['Host'], $row['db'], $row['Command'], $row['Time'], $row['Info']);
	if ($row['Time'] > 100) {
		$kills[] = $row['Id'];
	}
}
if ($kills) {
	foreach ($kills AS $kill) {
		DB::query('KILL ' . $kill);
	}
}

Практика

JS: Тому, кого это может коснуться

Не забывайте какая функция где, никогда не забывайте!

...
_inArray:function (one, array) {
	var ret = false;
	$.each(array, function(i, val) {
		if (val == one) {
			ret = true;
			return true;
		}
	});
	return ret;
}
...

Метки: