Категория ‘Без рубрики’

Верстаем правильно

Подборка ссылок на статьи по вёрстке -как верстать правильно? На что следует обратить внимание? Какие инструменты для вёрстки использовать. Бывалые верстальщики делятся своим опытом

Довольно объемная статья по проверке вёрстки
http://habrahabr.ru/blogs/webdev/114256/

Надеюсь, с помощью читателей, статья будет пополняться ссылками на интересные материалы по верстке

Опубликовано Февраль 23, 2011 | автор: levik  |  Нет комментариев »

Удаленное включение компьютера по сети

Для удаленного включения компьютера по сети с использованием технологии Wake on LAN (WOL) нужно знать IP-адрес компьютера в сети Интернет (необходимо постоянное подключение) и MAC-адрес его сетевой карты, через которую он подключен к Интернет. Естественно, сетевая карта и биос должны поддерживать возможность включения по сети:

Требования к компьютеру для включения по сети

- Оборудование должно соостветствовать спецификации ACPI и в настройках BIOS должна быть включена поддержка режима “Wake On Lan”.
- Иметь блок питания ATX.
- Иметь сетевую карту, поддерживающую технологию “Wake On Lan” (WOL).

Состав magick packet - “волшебного” пакета, для пробуждения “выключенного” компьютера (на самом деле, компьютер не совсем выключен - он находится в режиме )
Первые 6 байт - 0xFF, так называемая «цепочка синхронизации» . Затем — MAC-адрес сетевой платы, повторённый 16 раз.

http://ru.wikipedia.org/wiki/Wake-on-LAN

Программы для включения компьютера по сети:
broadc.exe
broadc.exe MAC-адрес-сетевой-карты 255.255.255.255 67

wol.exe имеет чуть больше возможностей

wakeup.exe - графическая утилита

wakeonlan - для Linux:
wakeonlan MAC-адрес
http://white55.narod.ru/wol.html

wake on lan на PHP:
http://toni.uebernickel.info/development/php-wake-on-lan/

Опубликовано Февраль 19, 2011 | автор: levik  |  Нет комментариев »

Применение параметров компьютера - долгая загрузка

При загрузке рабочей станции с Windows XP SP3 долго висит окно “Применение параметров компьютера“(до ввода имени пользователя). После применения параметров загрузка проходит довольно быстро. Причем, аналогичная длительная загрузка наблюдается и на других компьютерах, но не на всех. Если во время загрузки отключить сетевой кабель, применение параметров компьютера происходит практически моментально.

Конфигурация вполне “стандартная” - рабочие станции Windows XP SP2, SP3, сервер - Windows Server 2003 / Windows Server 2008 c DNS, DHCP и Active Directory

В чем может быть дело:

Профиль еще не актуален. На этом этапе сначала ищется DC, затем примемяются компьютерные GP, поиск опубликованных в AD сетевых принтеров и папок… А так же выполняются скрипты. Например обновление файлов копированием.

В настройках сетевого подключения рекомендуется в графе “Предпочитаемый DNS-сервер” ввести точный IP адрес сервера контроллера домена. Как правило, это позволяет ускорить применение параметров компьютера.

Юзаем консоль, смотрим ошибки

Запустите rsop.msc и убедитесь, что гупповые политики отрабатывают
dsa.msc

Смотрим локальные логи - ищем ошибки, сообщения

На машинах, на которых долго применяются параметры, посмотреть в Event Viewer, нет ли сообщений, что не смог обработать групповую политику. Пару раз было такое при кривой настройке ДНС-сервера - ссылались на медленный сервер и происходила такая же петрушка.

Смотрим логи на сервере:

В логах на сервере есть ошибки от Kerberos? А именно EventID 4?
http://support.microsoft.com/kb/244474

Возможно, проблемы с DNS/DHCP

(”применение параметров компьютера” по времени доходило до 5 минут). В настройках TCP/IP клиента прописал адрес сервера в DNS и WINS(?). Проблема исчезла

Ещё один “голос” за DNS/DHCP

Предположительный источник проблемы длительной загрузки комьпютера:
1. DHCP сервер…. не отвечает или находится крайне далеко от пользователя
2. DNS
3. В принципе не плохо, чтобы контроллеры домена были доступны для всех пользователей ведь вход в домен (по моему, но не точно) осуществляется не только через PDC, а через ближайший доступный…

Интересный вариант развития событий:

У пользователей в профиле прописана шаровая папка, при исключении её из профиля - машина грузится нормально!!!

Была подобная проблема при падении AD.
Решилось убиением старых групповых политик на рабочих станциях.

На клиенте ipconfig /all
nslookup -q=a server_name
Убедись что с сервером DNS все в порядке.
Вынеси контроллер домена на медленном линке в отдельный сайт.
прогони netdiag.

В общем, как всегда - заглядываем в логи, ищем ошибки..

Полезности:

комплект утилит Sysinternals
http://technet.microsoft.com/ru-ru/sysinternals/bb963902.aspx
CodeStuff Starter - альтернатива
http://systemexplorer.net - бесплатная программа для настройки системы

3 типа Autorun
1. Machine Run [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
2. All Users Run + Users Run
3. Autorun

BootLogXP, BootVis (однакнопка) - утилиты для просмотра/ускорения загрузки компьютера

Опубликовано Февраль 18, 2011 | автор: levik  |  Комментарий (1) »

Пагинация в Shop Script - убираем дубли страниц

В одной из версий (похоже, бесплатной и, возможно, не самой свежей) интернет-магазина Shop Script не предусмотрена проверка наличия товаров в категории.. Точнее, наличия их на определенной странице.. Т.е. возможно возникновение дублей вида

categoryId=10&offset=5
categoryId=10&offset=7

Как правило, большое количество такого рода страниц не приветствуется поисковыми системами - будем избавляться от них.

Я решил перенаправлять все обращения к несуществующим страницам на первую страницу этой же категории. Для исключения страниц из поиска - используем 301 редирект

if ($offset >$g_count || ($offset % CONF_PRODUCTS_PER_PAGE !=0) ) {
header("HTTP/1.1 301 Moved Permanently");
header ('Location:index.php?categoryId='.$categoryID);
exit();
}

Этот код следует вставить туда, где производится проверка $offset >$g_count (файлы category.php и filters.php в includes)

Опубликовано Февраль 17, 2011 | автор: levik  |  Нет комментариев »

Синий экран ошибка BCCode: 50 (BSOD на Windows 7)

Периодически компьютер при попытке перехода в режим Гибернация (а-ля спящий режим) выдает синий экран смерти (BSOD) и перезагружается с сообщением “Система была восстановлена после серьезного сбоя”

Имя события проблемы: BlueScreen
BCCode:    50
BCP1:    CECECECE
BCP2:    00000000
BCP3:    88522300
BCP4:    00000002
OS Version:    6_1_7600

Из рекомендаций - проверить драйвера к видеокарте (тем более, что в сообщении мелькало что-то про NVidia)

Опубликовано Февраль 15, 2011 | автор: levik  |  Нет комментариев »

У пользователя пропадают локальные административные права

Доменный пользователь, имеющий права локального администратора, после перезагрузки компьютера “исчезает” из группы администраторов на компьютере. При этом, если перезагрузка происходит через короткий промежуток времени после установки административных прав, то пользователь может остаться администратором.

После применения политики безопасности на Default domain policy - параметры безопасности - hisecws.inf у пользователей у которых были права локального администратора на компьютере после перезагрузки пропадает администратор на локальной машине. Была применена setup security.inf но проблемы остались. Как это исправить ???

http://forum.sysadmins.su/index.php?showtopic=26394

Рекомендация:
см. настройки Restricted Groups в GP

бонус:
http://zona.su/2009/01/restricted-groups-remote-desktop.html
Использование Restricted Groups для администрирования через Remote Desktop

Выполняем для изменения пути по умолчанию, при подключении новых компьютеров в домен, на нужный нам OU:
redircmp ou=mycomputers,DC=corp,dc=com

Для пользователей соответственно используем:
redirusr ou=myusers,DC=corp,dc=com

http://support.microsoft.com/kb/324949

Опубликовано Февраль 14, 2011 | автор: levik  |  Нет комментариев »

Wget - загрузка файлов и сайтов в Linux

Про полезности wget написано много.

Просто скачать файл при помощи wget:
wget ftp://myserver.com/file.data

Продолжить прерванную загрузку файла - загрузка файла с докачкой:
wget -c ftp://myserver.com/file.data
wget --continue ftp://myserver.com/file.data

скачать файлы из списка:
wget -i filelist.txt
wget --input-file filelist.txt

Создать локальное зеркало сайта - скачать сайт:
wget -m http://yandex.ru/
(простое сохранение страниц. При этом ссылки ведут на сам сайт)

Для того, чтобы создать копию сайта для локального просмотра (скачать сайт целиком), можно воспользоваться дополнительными ключами:

wget -r -l 0 -e robots=off -np -k http://yandex.ru/
Скачать весь яндекс :)

-r - рекурсивное скачивание
-l 0 - глубина 0 (т.е. качаем, пока качается)
-np - no-parent - не качать ссылки выше основного url
-k - изменить ссылки на локальные
-e robots=off - игнорируем директивы robots.txt

http://www.inp.nsk.su/~bolkhov/teach/inpunix/typ_wget.ru.html
Описание некоторых ключей wget

Опубликовано Февраль 12, 2011 | автор: levik  |  Нет комментариев »

Общение с заказчиком :)

Программист сдает готовый проект заказчику. Заказчику все нравится, он довольно кивает:
— Я надеюсь, если потом нужно будет что-нибудь переделать, я смогу обратиться к Вам? Конечно же, я не скажу «Давайте все изменим!»
— Без проблем. Кстати, маленький вопрос. Можно и мне потом, если у меня вдруг закончатся деньги или будут какие-нибудь проблемы, связаться с вами с просьбой – немного мне доплатить?
— ???
— Да вы не волнуйтесь! Я же не скажу вам «заплатите мне еще раз»!

http://itif.ru/ulybnulo-xoroshaya-otpiska-zakazchiku/

Опубликовано Февраль 11, 2011 | автор: levik  |  Комментарий (1) »

PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/local/php5/ext

При запуске из командной строки в Windows php ругается кучей однотипных warning-ов:
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/local/php5/ext\…

PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/local/php5/ext\php_curl.dll’ - =х эрщфхэ єърчрээvщ ьюфєы№. in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/local/php5/ext\php_gd2.dll’ - =х эрщфхэ єърчрээvщ ьюфєы№. in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/local/php5/ext\php_mbstring.dll’ - =х эрщфхэ єърчрээvщ ьюфєы№. in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/local/php5/ext\php_mysql.dll’ - =х эрщфхэ єърчрээvщ ьюфєы№. in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/local/php5/ext\php_mysqli.dll’ - =х эрщфхэ єърчрээvщ ьюфєы№. in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/local/php5/ext\php_pdo.dll’ - =х эрщфхэ єърчрээvщ ьюфєы№. in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/local/php5/ext\php_pdo_mysql.dll’ - =х эрщфхэ єърчрээvщ ьюфєы№. in Unknown on line 0

Переводя кракозябры, получаем что-то вроде “Не найден указанный модуль“.

Как правило, всё дело в том, что в php.ini не правильно задан путь к расширениям:
;Directory in which the loadable extensions (modules) reside.
extension_dir = "/usr/local/php5/ext"

Следует исправить на “нормальный” для windows путь (не забываем заключительный слэш) - должно получиться что-то вроде такого:
; Directory in which the loadable extensions (modules) reside.
extension_dir = "C:\program files\servers\usr\local\php5\ext\"

Такого рода проблема может появиться у многих windows-серверов для локальной разработки: Xampp, Wampp, Denwer

Опубликовано Февраль 10, 2011 | автор: levik  |  Нет комментариев »

Yii framework - заметки на полях

Заметки про Yiiframework

Создать приложение YII
yiic webapp /home/webmaster/public_html
yiic.bat webapp Z:\home\mysite\www

Для корректной работы скрипта yiic.bat в Windows на Denwer следует либо исправить скрипт (прописать полный путь к php, либо добавить каталог с php в системную переменную PATH).
if "%PHP_COMMAND%" == "" set PHP_COMMAND=z:\usr\local\php5\php.exe
Запускать скрипт следует из каталога framework

Приложение в YII можно создать без консоли. Достаточно скопировать framework/cli/views/webapp/protected/.

Наиболее полный конфиг для YII:
http://www.yiiframework.com/wiki/59/using-the-configuration-file-explain-what-can-be-configured
http://www.yiiframework.com/doc/api/1.1/CWebApplication - конфиг = массив параметров
Можно поставить http://www.yiiframework.com/extension/yii-debug-toolbar Там в настройках все подключенные компоненты описаны и все их настройки.

http://issuu.com/vincentchoi/docs/yii-blog-1.1.0

Кэширование схемы БД:
http://www.larryullman.com/2010/06/28/caching-the-database-schema-using-memcached-with-yii/
'db'=>array(//...
'schemaCachingDuration'=>3600,//....

Контроллер по умолчанию site. Задать другой контроллер по умолчанию:
'defaultController'=>'default', // параметр в protected/config/main.php

Action по умолчанию index. Задать другой Action по умолчанию
public $defaultAction = 'newindex'; // переменная в Controller

Если нужный Action отсутствует, может быть вызван метод missingAction

    class SiteController extends CController
    {
      public missingAction($actionID)
      {
        Yii::trace(' Action not found '.$actionID);
        $this->redirect('site/index'); // вариант с редиректом
        $this->run('index'); // вариант без редиректа
      }
    }

Язык по умолчанию задается в protected.config.main (сообщения верификации вроде “cannot be blank”)
'sourceLanguage' => 'ru',
'language' => 'ru',

Тотальный перевод - http://yiiframework.ru/forum/viewtopic.php?f=3&t=1001

Свой адрес для страниц, требующих авторизации (если null - выдает 403 ошибку и не перебрасывает на форму)
'loginUrl'=>null, // 'site/login'

Расширения для YII
http://www.yiiframework.com/extensions/
http://yiiframework.ru/forum/viewtopic.php?f=4&t=963
http://code.google.com/p/yiiplayground/

Динамическое изменение CUrlManager::rules
http://rmcreative.ru/blog/post/curlmanageraddrules

Структура
http://www.yiiframework.com/wiki/155/the-directory-structure-of-the-yii-project-site/

View - глобальный/модуль/каталог:
- “//layouts/main” указывает на «protected/views/layouts/main.php» (если «protected» — это базовая директория приложения)
- “/layouts/main” указывает на «protected/modules/abc/views/layouts/main.php» (если «abc» — это текущий рабочий модуль. Если нет, то это тоже самое, что и “//layouts/main”)
- “main” указывает на view-файл, размещенный в директории представлений текущего контроллера или в директории текущего макета (layout).

В атрибутах CHtml (а также - форм) убираем преобразование спецсимволов
echo CHtml::activeCheckBox($advertisment, ‘anyProposed’, array(
‘onClick’ => “document.getElementById(’myText’).value=’123′”,
‘encode’ => FASLE,
));

Включаем отладку, смотрим SQL
http://yiiframework.ru/forum/viewtopic.php?f=3&t=877

События в YII
http://devkp.ru/post/sobyitiya-v-yii
http://dr0id.ru/post/90/%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5+%D1%81%D0%BE%D0%B1%D1%8B%D1%82%D0%B8%D0%B9+%D0%B2+Yii
http://yiiframework.ru/forum/viewtopic.php?f=3&t=4255#p26793

RBAC в БД
http://www.yiiframework.com/doc/api/1.1/CDbAuthManager
http://yiiframework.ru/forum/viewtopic.php?f=3&t=4321#p26883 -

Привязка изображений к модели
http://www.yiiframework.com/extension/fileimagearbehavior
http://yiiframework.ru/forum/viewtopic.php?f=3&t=4342
http://yiiframework.ru/forum/viewtopic.php?f=3&t=1678&start=20#p10318

Grid
http://www.yiiframework.com/forum/index.php?/topic/24280-gridview-filtering-of-relational-data/

http://yiiframework.ru/forum/viewtopic.php?f=8&t=1284&start=10#p7918 - куки/сессии/поддомены
http://www.yiiframework.com/wiki/152/cookie-management-in-yii/ - cookie

Ajax link
http://yiiframework.ru/forum/viewtopic.php?f=3&t=4726#p29551

Полезные поведения
http://yiiframework.ru/forum/viewtopic.php?f=9&t=2000 - slug (транслит заголовка)

Twig Renderer
http://yiiframework.ru/forum/viewtopic.php?f=4&t=3511#p21424- static twig (CHtml)

Опубликовано Февраль 9, 2011 | автор: levik  |  Нет комментариев »