2 окт. 2009 г.

PHP: включение режима отображения ошибок

Данный режим позволяет наиболее просто найти программную ошибку, однако, по соображениям безопасности ряд хостеров по умолчанию его отключают.

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

Включение режима отображения ошибок непосредственно в необходимом PHP скрипте:

ini_set('error_reporting', E_ALL);
ini_set ('display_errors', 1);


Включение режима отображения ошибок с помощью .htaccess:
php_value display_errors 1
php_value error_reporting 2047


Обработка ошибок с помощью PHP:

Установить необходимые типы ошибок для вывода можно с помощью функции error_reporting().
У данной функции могут быть следующие значения, регулирующие вывод ошибок:

Наиболее часто используемые значения:

E_ALL - Все предупреждения и ошибки (кроме E_STRICT в PHP < 6).
E_ERROR - Критические ошибки во время выполнения скрипта (выполнение скрипта при этом прекращается).
E_WARNING - Предупреждения во время выполнения скрипта (выполнение скрипта продолжается)
E_PARSE - Ошибки при трансляции кода (генерируются только парсером).
E_NOTICE - Замечания  во время выполнения скрипта (предупреждает о возможной некритической ошибке в коде).


Дополнительные значения:

E_CORE_ERROR - Критические ошибки в момент старта PHP (как E_ERROR, только генерируются ядром PHP).
E_CORE_WARNING - Некритические предупреждения во время старта PHP (как E_WARNING, только генерируются ядром PHP).
E_COMPILE_ERROR - Критические ошибки во время трансляции кода (как E_ERROR, только генерируются скриптовым движком Zend)
E_COMPILE_WARNING - Предупреждения во время трансляции кода (как E_WARNING, только генерируются скриптовым движком Zend)
E_USER_ERROR - Сгенерированные пользователем ошибки (как E_ERROR, только генерируются в PHP коде с помощью функции trigger_error())
E_USER_WARNING - Сгенерированные пользователем предупреждения (как E_WARNING, только генерируются в PHP коде с помощью функции trigger_error())
E_USER_NOTICE - Сгенерированные пользователем замечания (как E_NOTICE, только генерируются в PHP коде с помощью функции trigger_error())


Работает с PHP 5.0

E_STRICT -  показывает рекомендуемые изменения к коду для обеспечения дальнейшей его совместимости с новыми версиями


Работает с PHP 5.3.0

E_DEPRECATED - замечания при выполнении скриптов (замечания касаются кода, который не будет работать в будующих версиях)
E_USER_DEPRECATED - аналогично E_DEPRECATED, только замечания генерируются в PHP коде с помощью функции trigger_error())


Пример использования функции error_reporting():

// Отключает вывод всех ошибок
error_reporting(0);
// Выводит некритичные ошибки выполнения скрипта
error_reporting(E_ERROR | E_WARNING | E_PARSE);

// Выводит все ошибки, кроме замечаний E_NOTICE
// (режим по умолчанию)

error_reporting(E_ALL ^ E_NOTICE);
// можно формировать гибкие типа вывода
error_reporting(E_ALL ^ (E_NOTICE | E_WARNING));
// выводит все ошибки PHP
error_reporting(E_ALL);
// или можно так
error_reporting(-1);


Включение вывода замечаний MySQL:
(для отключения необходимо вместо On написать Off)

ini_set("mysql.trace_mode","On");


P.S. При написании данной статьи я подглядывал в официальный мануал по PHP (рекомендую)

28 сент. 2009 г.

Pascal: вычисление тангенса угла

Насколько Вам известно (или пока неизвестно) в Паскале нет стандартной функции расчёта тангенса угла.
Для того, чтобы исправить это небольшое упущение, я напишу небольшую функцию, назвав её tan.

Итак, пример на Паскале:

function tan(gradus:real):real;
var rad,pi:real; {Описываем переменные}
begin
 pi:=3.14; {Определяем значение переменной Пи}
 rad:=(pi*gradus)/180; {Переводим градусы в радианы}
 tan:=sin(rad)/cos(rad); {Выполняем расчёт тангенса}
end;

Чтобы включить эту возможность в свою программу, скопируйте код функции и вставьте до первого begin программы.

Затем в программе можете написать

 writeln(tan(45)); {Выведет на экран значение тангенса 45 градусов}

Теперь выполнять расчёт совсем совсем не сложно!

27 сент. 2009 г.

Pascal: SQR и SQRT - не одно и тоже!

Не смотря на схожесть имён данных функций они выполняют абсолютно различные действия.

sqr - это square, т.е. возведение в квадрат
sqrt - это square root, т.е. вычисление квадратного корня

Пример на паскале:
program difference_between_sqr_and_sqrt;
begin
writeln(sqr(4)); {Выведет число 16}
writeln(sqrt(4)); {Выведет число 2}
end.

16 сент. 2009 г.

Firefox - разрешить закрытие последней вкладки

Многих, использующих Firefox 3.5 мучает вопрос - "Как закрыть последнюю вкладку?", впрочем, как и меня.
Нашёл два решения, первое - простое, второе - посложнее, результат один:)

Решение 1 - установить расширение Last Tab Close Button, и, на этом результат достигнут:)

Решение 2 - "заставить" отображаться эту кнопку вручную, вот копия записи, повествующей об этом процессе:

zlava: Как в Firefox 3.5 оставлять кнопку «Закрыть» на единственной вкладке
Метки данной записи: firefox

Как в Firefox 3.5 оставлять кнопку «Закрыть» на единственной вкладке
Я тут поругался, но мало того, что форум заработал, так еще и решение конечно же есть. Коллективный разум знает все.

Прежде всего нужно запретить закрытие браузера при закрытии последней вкладки.

В адресной строке набираем about:config и, согласившись быть предельно осторожными, попадаем в тонкую настройку браузера. В строке фильтра поиска набираем, например, browser.tab и получаем небольшой список параметров.

Кликаем правой кнопкой мыши по browser.tabs.closeWindowWithLastTab и выбираем «Переключить». Значение параметра изменится с true на false.

Теперь нужно включить отображение красной кнопки с крестиком даже в единственной вкладке. Ищем следуюший файл:

C:\Documents and Settings\ИМЯ_ПОЛЬЗОВАТЕЛЯ\Application Data\Mozilla\Firefox\Profiles\РАЗНЫЕ_БУКВЫ.default\chrome\userChrome-example.css

Сохраняем его копию куда-нибудь на всякий случай и переименовываем оригинал в userChrome.css. Открываем этот файл в текстовом редакторе и в его конец добавляем следующее:

.tab-close-button { display: -moz-box !important; }

Сохраняем файл. Перезапускаем Firefox и радуемся.

Да, кстати. Чтобы убрать кнопку создания новой вкладки и сделать все совсем по-прежнему, нужно в тот же файл добавить такие волшебные слова:

.tabs-newtab-button {display: none}

Ну, мне эта кнопка не мешает, так что пес с ней, пусть стоит.

12 сент. 2009 г.

Как сделать Google поиском по умолчанию в Firefox

В большинстве версий русских локализаций Firefox в качестве поискового механизма используется наш родной Яндекс, несомненно, это хороший поисковик, но многих (в том числе и меня) он не устраивает в силу привычки.

Итак, чтобы при вводе в строку адреса поискового запроса открывался не Яндекс, а Google необходимо сделать следующее:

1. Нажмите "CTRL+T" (откроет новую вкладку)
2. Введите в строку адреса "about:config", подтвердите, что будете осторожны
3. В строку "Фильтр" введите "keyword.URL" и нажмите "Enter"
4. Нажмите на имени настройки правой кнопку и выберите "Изменить"
5. Введите значение "http://www.google.ru/#hl=ru&source=hp&q="
6. Нажмите ОК
7. Можете проверять!

Чтобы при нажатии "CTRL+K" использовался также Google (или при использовании поисковой строки справа от адресной):
1. Нажмите стрелочку вниз (слева от поисковой строки)
2. Выберите Google
3. Всё!

Если Вам всё-таки будет необходимость использовать Яндекс Вы можете провести следующие действия:
1. Нажмите стрелочку вниз (слева от поисковой строки)
2. Нажмите "Управление поисковыми плагинами"
3. Выберите "Яндекс", нажмите "Изменить"
4. В открывшееся поле введите "ya" (к примеру)
5. Нажмите "Ок"

Теперь, если вы введёте в адресной (или поисковой) строке "Хлеб в домашних условиях" и нажмёте "Enter" поиск будет произведён с помощью Google, а если "ya Хлеб в домашних условиях" - поиск будет произведён с помощью Яндекс.

3 нояб. 2008 г.

Отображение смонтированных устройств на рабочем столе

Для того, чтобы убрать значки смонтированных устройств (hdd, cdrom и тп) с рабочего стола требуется запустить в терминале gconf-editor

Затем выбрать вкладку nautilus (apps -> nautilus), далее выбираем

desktop и убираем галочку с параметра volumes_visible

Разрешение экрана (Login Screen)

Login Screen - это экран, где необходимо ввести данные для входа в систему (например gdm, kdm)

1. Для того, чтобы изменить разрешение экрана при входе в систему на 1024х768 (к примеру) необходимо выполнить следующее:
sudo nano /etc/X11/xorg.conf
Добавить в секцию "Screen"
SubSection "Display"
Depth 24
Virtual 1024 768
EndSubSection
В итоге получится что-то, вроде этого:
Section "Screen"
Identifier "Default Screen"
Monitor "Configured Monitor"
Device "Configured Video Device"
DefaultDepth 24
SubSection "Display"
Depth 24
Virtual 1024 768
EndSubSection
EndSection
2. Для того, чтобы изменить разрешение экрана при загрузке системы необходимо:
sudo nano /etc/usplash.conf
и изменить значения xres и yres на требуемые вам

Затем следует выполнить команду
sudo update-initramfs -u