9 Дек
Недавно купил новый ноутбук, ну и решил рискнуть - не возвращаться к Fedora 9. Знаете, ни капли не пожалел. Установка Fedora 10 прошла очень гладко, такой простоты даже в установки Windows XP и Vista я не наблюдал. Скачал Fedora 10 Live CD с официального сайла проекта Fedora. На ноутбуке была предустановлена Windows Vista Home Basic.
Сунул диск в привод, перезагрузился, ушел чаю налить. Возвращаюсь, смотрю - рабочий стол Gnome и ярлык на рабочем столе “Install Fedora on hard drive”. Полазил по менюшкам, софта установленного целая куча, особенно утилит всяких разных (поэтому ношу его всегда с собой). Ну и естественно мне скорее захотелось включить Compiz-fusion, но остался с белым экраном (на диск они всё-таки не упаковали драйверы Nvidia), но ничего страшного, по нажатию на Escape вернул всё на свои места.
Затем я запустил мастер установки Fedora 10 - тут открылся интерфейс, чем-то напоминающий установку Fedora 9. Разметил жесткий диск, выбрал загрузочный сектор. Минут через 20 я уже лазал по собственному рабочему столу. Виста после этого тоже грузилась, правда scandisk первый раз запустился.
Сеть встала без моего ведомо, причем Bluetooth и Wi-Fi уже заработали - я подключился к открытой точке доступа и в моём распоряжении уже был мой любимый интернет :)
У меня процессор i386. Если у вас x86_64 просто замените везде i386 на x86_64. Итак, открываем терминал, заходим под root, устанавливаем yum репозитории livna, rpmfusion и adobe (для flash plugin):
rpm -Uvh http://mirror.yandex.ru/fedora/tigro/tigro-release-9-1.i386.rpm rpm -Uvh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm rpm -Uvh http://linuxdownload.adobe.com/adobe-release/adobe-release-i386-1.0-1.noarch.rpm
Устанавливаем flash-player плагин, amarok, xine:
yum install flash-plugin amarok xineДрайверы nvidia (у кого ATI ставим ATI - kmod-fglrx), avant-window-navigator и gconf-editor:
yum install kmod-nvidia avant-window-navigator gconf-editorОбновляем систему и перезагружаемся:
yum update reboot
Всё практически готово. Можно теперь спокойно включать desktop effects (Compiz-fusion). Зажимаем Ctrl+Alt, зажимаем левую кнопку мыши и двигаем хаотично! А что вам ещё нужно? Дальше для злостных программистов…
Здесь всё очень просто:
yum install httpd php mysql mysql-server php-mysql yum install subversion rapid-svn netbeans kdevelop
Кто пользуется NetBeans для PHP то можно скачать SH скрипт для установки NetBeans EA PHP 6.5 с официального сайта NetBeans: netbeans.org.
Устанавливаем службы httpd и mysqld для автозапуска, ну и наконец запускаем их:
chkconfig httpd on chkconfig mysqld on service httpd start service mysqld start
Ну и раз уж у нас блог про веб технологии, установим еще мой любимый SEO инструмент - текстовый браузер Lynx (компания Google именно его и рекоммендует)!
yum install lynx
Вуала! И кто после этого захочет возвращаться в окна?
12 Ноя
Наконец-то удалось мне испробовать это новое чудо. Не ну бета она и в африке бета, но если честно, то работает куда лучше чем 6.1. Я говорю конкретно о ветке EA-PHP (Eearly Access for PHP). На Fedora 9 ставил 6.1 - работает стабильно, без сбоев, без глюков и без тормозов. А вот с Win XP мне видимо не повезло - глюки в цветах исходных кодов наблюдались каждые пол часа, приходилось перезагружать редактор, чтобы глаза отдохнули, зависал иногда, глючил… В общем не самые лучшие впечатления.
В NetBeans 6.5 RC2 появилось куча новых функций. Первое, что я заметил это Web Services во вкладке Service, что позволяет легко и быстро связать ваше приложение с всемирно известными сервисами - Amazon, Delicious, Facebook, Google, Flickr, Twitter и другие.
В новом выпуске NetBeans так же наблюдается улучшенная работа с базами данных - кроме MySQL введены драйверы PostgreSQL и JDBC/ODBC Bridge.
Проекты из предыдущей версии редакторы NetBeans так же поддерживаются. Проблем с кодировками не наблюдается, вроде бы работает стабильно на UTF-8 (NetBeans 6.1 и тут иногда мог лохануться). CVS и Subversion по прежнему доступны (если пользуетесь только одним, то второй можно отключить в плагинах, чтобы не надоедал в меню).
В общем я доволен :) и вам советую…
Скачать это удовольствие можно бесплатно где-то здесь (напомниаю, что это свободное ПО). Будьте внимательны при выборе версии.
8 Окт
По просьбам читателей приведу самый примитивный пример авторизации с помощью AJAX. Почему примитивный? Потому что, если у вас нет навыков написания хорошего, защищенного скрипта авторизации на php+mysql, то этот пример не для вас. Зацикливаться на самой авторизации я не буду, ведь все мы знаем, что пользователей нужно хранить в базе данных с их зашифрованными паролями и IP адресами последнего входа…? У меня всё гораздо проще - users.txt файл в корне с синтаксисом: “пользователь = пароль” в несколько строк.
А шифрование и прочие навороты оставляю за вами :)
(далее…)
6 Окт
Ну начнем с самого популярного…
Подсветка синтаксиса для языков PHP, HTML, XML, C, C++ и многих других. Лично мне этот редактор не очень нравится… Точнее совсем не нравится. Уж слишком он простой и более 15-ти минут за ним посидеть не удалось. Скачать Notepad++ можно с официального сайта: Notepad++.
Построен на платформе Mozilla. Поддерживает большой ряд языков и много утилит для работы с веб документами (просмотр DOM, построение регулярных выражений и т.д.). Достаточно удобен в обращении. Скачать Komodo Edit можно с официального сайта: ActiveState.
Очель маленький (1,5 мб) редакор. Поддерживает подсветку синтаксиса для PHP и нескольких других языков. Слишком прост. Официальный сайт: Context Editor.
Мощный редактор. Работает на платформе Eclipse, дистрибутив около 60 мб. Неплохой вариант, особенно если пишете не только на PHP. Официальный сайт: Eclipse PDT.
Отличный вариант, но к сожалению не работает с кодировкой UTF-8. В 2008 версии данного редактора всё налажено, но он уже не бесплатный, даже для личного использования. Официальный сайт: MP Software.
Ну и наконец мой любимый:
А конкретнее Early Access for PHP. Понравился больше всех остальных. Работает на платформе Java. Дистрибутив 20 мб. Подсветка синтаксиса. Мощные утилиты для отладки. Хорошая работа с Subversion и CVS. Официальный сайт: Netbeans IDE.
Есть ряд других хороших бесплатных редакторов, но ими по-пользоваться не успел, уж слишком их много. Вот небольшой список:
2 Окт
Углубляться в алгоритмы архивирования и сжатия я не буду, просто скачайте готовый класс createZip. Первоначальный источник данного класса к сожалению не помню, так что если вдруг найдется - прошу сообщить.
Класс createZip обеспечивает полноценную работу с формированием нового ZIP архива, с возможностью его выдачи на лету или сохранения на диск. Покажу несколько простых приёмов.
Ну, во-первый нужно объявить объект данного класса:
$createZip = new createZip;
Добавим в корень архива текстовый файл:
$fileContents = "Hello world!"; $createZip->addFile($fileContents, "textfile.txt");
Создадим новую директорию:
$createZip->addDirectory("images/");
Ну а теперь допустим у нас есть картинка image.png в директории где выполняется данный скрипт. Загрузим эту картинку в директорию images нашего архива:
$fileContents = file_get_contents("image.png"); $createZip->addFile($fileContents, "images/image.png");
Сохраняем архив на диск и выдаём посетителю ссылку:
$filename = "archive.zip"; $fd = fopen($filename, "wb"); $out = fwrite($fd, $createZip->getZippedfile()); fclose($fd); echo "Скачать архив: <a href=\"$filename\">$filename</a>";
Всё достаточно легко и просто. При желании, можно выдать архив на лету, после чего его сразу удалить. В классе для этого есть вспомогательная функция forceDownload.
3 Сен
Учимся правильно писать заявление о приёме на работу ;)
<?php $profile = new UserProfile(); $boss = new UserProfile(); $boss->getDefaultSettings(PROFILE_EMPLOYER); $profile->getDefaultSettings(PROFILE_EMPLOYEE); $profile->setSpecialization(SPEC_WEBDEV_PHP); $profile->status = STATUS_UNEMPLOYED; $salary_average = $boss->company->getAverageSalary(SPEC_WEBDEV_PHP); $profile->salary_desired = $salary_average + ($salary_average / 100) * 10; $document = new Document(TEMPLATES_JOB_APPLICATION); $document->min_salary = $profile->salary_desired; $document->max_salary = $profile->salary_desired + ($profile->salary_desired / 100) * 50; $document->job_type = JOBTYPE_FREELANCE; $document->hours_per_week = 20; $result = ($document->sendTo($boss) != DOCUMENT_SEND_FAILED) ? $document->lastSendResult() : false; if ($result == DOCUMENT_RESULT_ACCEPTED) { $profile->status = STATUS_FREELANCER; $profile->mood = MOOD_HAPPY; } elseif ($result == DOCUMENT_RESULT_REJECTED) { $profile->status = STATUS_HOMELESS; $profile->mood = MOOD_DEPRESSION; $profile->setTimeout(time()+3600, 'die("HUNGRY");'); } else { $profile->getDefaultSettings(PROFILE_ANONYMOUS); $boss->getMoreDetails(PROFILE_DETAILS_ALL); $profile->kill($boss); } ?>
19 Авг
Частенько приходят на е-майл письма с кривыми заголовками. Решение. Как указать кодировку для тела письма думаю никому не секрет, т.к. это достаточно хорошо описано в мануале php:
$headers .= 'Content-type: text/html; charset=windows-1251' . "\r\n";
А вот про тему письма ничего не написано. На зарубежном форуме нашел подобное решение:
$subject = '=?windows-1251?b?'.base64_encode('Тема сообщения').'?=';
Видимо это стандарт описанный почтовыми протоколами ;)
2 Авг
Среди форматов обмена данными, AJAX программисты часто выделяют JSON (JavaScript Object Notation, “джейсн”), как альтернатива языку XML, а именно потому, что XML больше язык разметки, чем носитель данных. JSON в свою очередь, легкий, человеко-читабельный, текстовый формат для хранения и передачи простых структурированных данных, а так же более комплексных объектов (массивов). В этом уроке мы рассмотрим простой пример формирования данных в JSON средствами PHP, а так же их получение и представление, с помощью JavaScript. Кто еще не понял, это продолжение серии уроков “AJAX PHP поиск” (XML, Prototype).
(далее…)
2 Авг
В первой части урока мы рассмотрели организацию поиска по базе данных MySQL средствами AJAX, PHP и XML. Теперь я хочу показать этот же пример, только с использованием библиотеки prototype. Глобальных изменений не произошло, внешне работает абсолютно одинаково. В конце урока попытаемся подвести небольшую сравнительную характеристику двух этих методов.
(далее…)
2 Авг
Как создавать простые AJAX запросы к серверному скрипту (PHP) вы уже научились, методами простого XML, а так же с использованием библиотеки prototype. Рассмотрим более комплексный пример - как организовать поиск по базе данных MySQL средствами AJAX и PHP.
(далее…)