19
Бер

Pattern Facade

Шаблон Facade (Фасад) - Шаблон проектування, що дозволяє сховати складність системи шляхом обєднання всіх можливих зовнішніх викликів в один об’єкт, що делегує їхніми об’єктами системи. Відноситься до Структурних Шаблонів.

facade

Приклад реалізації на Java:

/* Complex parts */

class CPU {
	public void freeze() { ... }
	public void jump(long position) { ... }
	public void execute() { ... }
}

class Memory {
	public void load(long position, byte[] data) {
		...
	}
}

class HardDrive {
	public byte[] read(long lba, int size) {
		...
	}
}

/* Facade */

class Computer {
	public void startComputer() {
		cpu.freeze();
		memory.load(BOOT_ADDRESS, hardDrive.read(BOOT_SECTOR, SECTOR_SIZE));
		cpu.jump(BOOT_ADDRESS);
		cpu.execute();
	}
}

/* Client */

class You {
	public static void main(String[] args) {
		Computer facade = new Computer();
		facade.startComputer();
	}
}

Приклад реалізації на PHP5:

/* Complex parts */

class CPU {
	public function freeze() { ... }
	public function jump($position) { ... }
	public function execute() { ... }
}

class Memory {
	public function load($position, $data) {
		...
	}
}

class HardDrive {
	public function read($lba, $size) {
		...
	}
}

/* Facade */

class Computer {
        private $cpu = new CPU();
        private $hardDrive = new HardDrive();
        private $memory = new Memory();
	public function startComputer() {
		$cpu->freeze();
		$memory->load(BOOT_ADDRESS, $hardDrive->read(BOOT_SECTOR, SECTOR_SIZE));
		$cpu->jump(BOOT_ADDRESS);
		$cpu->execute();
	}
}

/* Client */

$facade = new Computer();
$facade->startComputer();

Facade на Wikipedia

14
Бер

skype лінки в Firefox на Debian

skype_icon
Ви часто могли замічати що деякі лінки виглядають дивно( з протоколами skype: callto: tel: ). Дещо вони нагадують більш знайомий mailto:. За допомогою цих лінків можна звязувати їх зі своїм Skype.
Це робиться за допомогою програми skype-action-handler. Встановити програму дуже просто:
 
perl Makefile.PL;
make;
make test;
make install;

Далі необхідно звязати її з протоколами:

#Для Firefox#
Заходим about:config. знаходим network.protocol-handler.app.skype (callto і tel відповідно). Якщо такого ключа не існує то створюєм його за допомогою контекстного меню -> New.

ключ
network.protocol-handler.app.skype
network.protocol-handler.app.callto
network.protocol-handler.app.tel
значення
/usr/local/bin/skype-action-handler
/usr/local/bin/skype-action-handler
/usr/local/bin/skype-action-handler

#Для Opera#
Інструменти -> Налаштування -> Додатково -> Програми
Тиснем Додати, заповнюєм поля протокол і програма відповідно:

протокол
skype
callto
tel
програма
/usr/local/bin/skype-action-handler
/usr/local/bin/skype-action-handler
/usr/local/bin/skype-action-handler

Перезавантажуєм бравзери і насолоджуємось ;)

11
Бер

GeForce 7050 на Debian Lenny

debian-desktopДжерело: http://techpatterns.com/forums/about933.html

скачуєм утиліту sgfxi і даєм їй права на виконання. ( це робиться в /usr/local/bin/ для того щоб утиліта була доступна по імені sgfxi )

 
cd /usr/local/bin
wget -Nc smxi.org/sgfxi
chmod +x sgfxi

для отримання справки використовуйте ключ -h:

sgfxi -h

далі в залежності від моделі ставим драйвер:

sgfxi -c #для GeForce
sgfxi -n #для Radeon
07
Бер

Design Patterns (поділ на категорії)

php-patternsТут я б хотів спіонерити хорожу діаграму по класифікації Шаблонів проектування.

patterns

PHP Design Patterns Reference and Examples - тут зібрані всі паттерни які увійшли в GoF.

Джерело: http://www.proft.com.ua

07
Бер

Перенос WordPress з localhost на сервер

wordpressПереносивши свій Болг з localhost`у я зіткнувся з проблемою. Виявилось поміняти налаштування в wp-config.php і залити dump Бази Даних замало. Потрібно ще й зробити деякі правки в таблицях:

 
UPDATE wp_posts SET guid = REPLACE(guid, 'http://localhost','http://your.domain');
UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://localhost', 'http://your.domain');
UPDATE wp_options SET option_value = REPLACE(option_value, 'http://localhost', 'http://your.domain') WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE `wp_options` SET `option_value` = '/ваш/каталог/сайту/wp-content/uploads' WHERE `wp_options`.`option_id` = 60 AND `wp_options`.`blog_id`=0 AND CONVERT ( `wp_options`.`option_name` USING utf8 )='upload_path' LIMIT1;

Зверніть увагу на те що не потрібно ставити в кінці слеш “/”.