Спасибо, интересно, поскольку сам работаю с высоконагружеными серверами (и там чаще Postgresql используется). Значит PgBouncer увеличит производительность, даже если сервер Postgresql будет один?
И ещё — какой метод вы юзали в примере? Session Pooling, Transaction Pooling или Statement Pooling? И что посоветуйте?
Зачем детали, просто раз начали с роутера и его режимов — то закончите этим. Соскочив сразу на настройку интерфейса (хотя многим было бы неплохо пояснить что, хотя б что такое Serial и FastEthernet и с чем их едят) да ещё и не пояснив что да как с ними. Так же если начали с привилегированного режима, то и пояснить как на него пароль ставить. Ведь многие (например программисты, что не работают с железом) мало что могут знать (а то и понимать) о чем вы говорите.
Как то не очень написано. Немного дополню и поправлю вас (и то не все, вы затронули обширную тему, но плохо её раскрыли)
Все маршрутизаторы Cisco включают TIA/EIA-232 асинхронный серийный консольный порт. Консольный порт RJ-45. Использование RJ-45 — RJ-45 роловер (rollover) кабель с к маме RJ-45 — DB-9 для подключения адаптера данном типе PC с портом консоли.
По умолчанию параметры для консольного порта 9600 пропускная способность, 8 бит данных, без проверки четности, 1 стоповый бит и без управления поток(no flow control). Консольный порт не поддерживает аппаратное управление потоком.
Для подключения используется такие программы как minicom. Putty используют для того, что б запустить minicom :)
Для того чтобы войти в привелегированный режим, нужно набрать команду enable, или же у каждой команды есть своя короткая форма, как тут например ena. Что б вернутся в пользовательский режим — команда disable (disa) или же Ctrl-Z.
Специальная команда "?" справка по командам роутера, поскольку у разных моделей роутеров — разный может быть набор команд.
По настройке интерфейсов вообще молчу, под неё я выделил бы отдельную статью.
Хабр… Вот пример авторизации при использовании таблицы с юзерами (Zend_Auth)
if ($this->_request->isPost()) {
Zend_Loader:: loadClass('Zend_Filter_StripTags');
$f = new Zend_Filter_StripTags();
$username = $f->filter($this->_request->getPost('username'));
$password = $f->filter($this->_request->
getPost('password'));
if (empty($username)) {
$this->view->message = 'Please provide a username.';
} else {
Zend_Loader:: loadClass('Zend_Auth_Adapter_DbTable');
$dbAdapter = Zend_Registry:: get('dbAdapter');
$authAdapter = new Zend_Auth_Adapter_DbTable($dbAdapter);
$authAdapter->setTableName('users');
$authAdapter->setIdentityColumn('username');
$authAdapter->setCredentialColumn('password');
Эм… А где вы используете Zend_Auth? Zend_Acl и Zend_Session то видно, а
if ($this->_request->isPost()) {
Zend_Loader::loadClass('Zend_Filter_StripTags');
$f = new Zend_Filter_StripTags();
$username = $f->filter($this->_request->getPost('username'));
$password = $f->filter($this->_request->getPost('password'));
if (empty($username)) {
$this->view->message = 'Please provide a username.';
} else {
Zend_Loader::loadClass('Zend_Auth_Adapter_DbTable');
$dbAdapter = Zend_Registry::get('dbAdapter');
$authAdapter = new Zend_Auth_Adapter_DbTable($dbAdapter);
$authAdapter->setTableName('users');
$authAdapter->setIdentityColumn('username');
$authAdapter->setCredentialColumn('password');
$authAdapter->setIdentity($username);
$authAdapter->setCredential($password);
$auth = Zend_Auth::getInstance();
$result = $auth->authenticate($authAdapter);
if ($result->isValid()) {
$data = $authAdapter->getResultRowObject(null, 'password');
$auth->getStorage()->write($data);
$this->_redirect('/');
} else {
$this->view->message = 'Login failed.';
}
}
}
И даже если не использовать таблицу, а другой метод хранения у вас юзеров
$auth = Zend_Auth::getInstance();
$auth->setStorage(new Zend_Auth_Storage_Session('someNamespace'));
$result = $auth->authenticate($authAdapter);
Это все примеры авторизации, но именно так он работает, а не прямое присваивание в сессию :)
Теперь понятно чего так жестко минусуют :)
Просто я сам PHP программер, но оставатся на этом языке — погибель как программиста (уж много нас). А Ruby on Rails — интересный фреймворк для Web 2.0 приложений.
Самый прикол в том — постиш новости или прочую дребедень — плюсуют, написал пару постов на тему программирование — ушел далеко в минус. Так что само сообщество превращает Хабр в Фишки.Нет для айтишников.
Реализация хранилища также не тяжела, постараюсь в следующей статье написать. БД в хранилище работает на основе SQLite. Если Вам не терпится почитайте тут — все хорошо расписано.
WordPress его как раз для этого использует. Да и это один из его основных функционалов — локальное хранилище файлов. Кеш работате при повторных загрузках, тем более он чистится. А Gears — один раз загрузит и будет проверять только изменеия статики, а не загружать заново.
Да я пытался сделать подсветку, хабраредактор убивает все теги font. Пользуюсь этим SourceCode Highlighter. В старом работал хабре работал, сейчас — нет.
И ещё — какой метод вы юзали в примере? Session Pooling, Transaction Pooling или Statement Pooling? И что посоветуйте?
Все маршрутизаторы Cisco включают TIA/EIA-232 асинхронный серийный консольный порт. Консольный порт RJ-45. Использование RJ-45 — RJ-45 роловер (rollover) кабель с к маме RJ-45 — DB-9 для подключения адаптера данном типе PC с портом консоли.
По умолчанию параметры для консольного порта 9600 пропускная способность, 8 бит данных, без проверки четности, 1 стоповый бит и без управления поток(no flow control). Консольный порт не поддерживает аппаратное управление потоком.
Для подключения используется такие программы как minicom. Putty используют для того, что б запустить minicom :)
Для того чтобы войти в привелегированный режим, нужно набрать команду enable, или же у каждой команды есть своя короткая форма, как тут например ena. Что б вернутся в пользовательский режим — команда disable (disa) или же Ctrl-Z.
Специальная команда "?" справка по командам роутера, поскольку у разных моделей роутеров — разный может быть набор команд.
По настройке интерфейсов вообще молчу, под неё я выделил бы отдельную статью.
А сам сертификат — http://leopard.in.ua/2008/08/27/ura-a-vot-i-sertifikat/
Intel Pentium 4 (по 3GHz два ядра), 1024 Ram
Opera, Firefox (на обоих платформах)
Тормозит просто отлично.
Особенно порадовало сколько всего грузится при начальной загрузки — 691 KB.
if ($this->_request->isPost()) {
Zend_Loader:: loadClass('Zend_Filter_StripTags');
$f = new Zend_Filter_StripTags();
$username = $f->filter($this->_request->getPost('username'));
$password = $f->filter($this->_request->
getPost('password'));
if (empty($username)) {
$this->view->message = 'Please provide a username.';
} else {
Zend_Loader:: loadClass('Zend_Auth_Adapter_DbTable');
$dbAdapter = Zend_Registry:: get('dbAdapter');
$authAdapter = new Zend_Auth_Adapter_DbTable($dbAdapter);
$authAdapter->setTableName('users');
$authAdapter->setIdentityColumn('username');
$authAdapter->setCredentialColumn('password');
$authAdapter->setIdentity($username);
$authAdapter->setCredential($password);
$auth = Zend_Auth:: getInstance();
$result = $auth->authenticate($authAdapter);
if ($result->isValid()) {
// success: store database row to auth's storage
// system. (Not the password though!)
$data = $authAdapter->getResultRowObject(null, 'password');
$auth->getStorage()->write($data);
$this->_redirect('/');
} else {
$this->view->message = 'Login failed.';
}
}
}
if ($this->_request->isPost()) { Zend_Loader::loadClass('Zend_Filter_StripTags'); $f = new Zend_Filter_StripTags(); $username = $f->filter($this->_request->getPost('username')); $password = $f->filter($this->_request->getPost('password')); if (empty($username)) { $this->view->message = 'Please provide a username.'; } else { Zend_Loader::loadClass('Zend_Auth_Adapter_DbTable'); $dbAdapter = Zend_Registry::get('dbAdapter'); $authAdapter = new Zend_Auth_Adapter_DbTable($dbAdapter); $authAdapter->setTableName('users'); $authAdapter->setIdentityColumn('username'); $authAdapter->setCredentialColumn('password'); $authAdapter->setIdentity($username); $authAdapter->setCredential($password); $auth = Zend_Auth::getInstance(); $result = $auth->authenticate($authAdapter); if ($result->isValid()) { $data = $authAdapter->getResultRowObject(null, 'password'); $auth->getStorage()->write($data); $this->_redirect('/'); } else { $this->view->message = 'Login failed.'; } } }
И даже если не использовать таблицу, а другой метод хранения у вас юзеров
$auth = Zend_Auth::getInstance(); $auth->setStorage(new Zend_Auth_Storage_Session('someNamespace')); $result = $auth->authenticate($authAdapter);
Это все примеры авторизации, но именно так он работает, а не прямое присваивание в сессию :)
Просто я сам PHP программер, но оставатся на этом языке — погибель как программиста (уж много нас). А Ruby on Rails — интересный фреймворк для Web 2.0 приложений.
www.youtube.com/watch? v=RRj2HJx5Il0
имя базы данных не позволят дублироватся хранилищу :)