понедельник, 10 ноября 2008 г.

Ubuntu 8.10 на Acer Aspire One

Обновился недавно до Ubuntu 8.10. Установка на десктоп прошла гладко.  Одна из фич версии 8.10 - это программа, позволяющая делать загрузочные USB-флешки, да такие, загрузившись с которых, можно сохранять свои документы на эту же самую флешку. Мне же она была нужна для установки Ubuntu на нетбук Acer Aspire One. По каким-то причинам флешка у меня получилась совершенно незагрузочная, т.е. компьютер вроде бы пытается с нее загрузиться, но я вижу только мигающий курсор и никаких признаков активности этой самой флешки. Пришлось воспользоваться старым добрым liveusb. Эта программа позволяет создавать загрузочные флешки той системы, в которой данная программа запущена.

Я просто загрузился в режиме live-CD Ubuntu 8.10-i386 (потому что на десктопе у меня x64), установил там liveusb и создал себе загрузочную флешку. После этого Убунту прекрасно установился на мой нетбук Acer Aspire One.

Версия 8.10 гораздо лучше работает на этой машинке чем 8.04.  Необходимые постустановочные манипуляции описаны прямо на сайте Ubuntu. На той же странице можно найти инструкции по установке версии 8.04 (которых гораздо больше) и как сделать Ubuntu Netbook Remix из обычной Убунты.

Почему же отказался от Foresight Linux Mobile, который так хвалил ранее? Потому что он оказался видимо еще немного сыроватым или же не вполне совместимым с моим нетбуком. Короче говоря, он у меня слетел так, что я не смог его поднять, он просто перестал загружться без видимых причин. Но мне все равно он по-прежнему очень нравится, и я буду следить за его развитием, ведь это была только версия 1.0.

воскресенье, 26 октября 2008 г.

XDebug + PDT на LAMPP (XAMPP)

Сегодня я расскажу, как отлаживать PHP-приложения с помощью бесплатного кроссплатформенного ПО.

Для разработки PHP-приложений я использую XAMPP на работе и дома. Конечно на Линукс можно поставить LAMP с помощью одной команды в консоли, но я привык к XAMPP на Windows и теперь использую его версию для Linux - LAMPP. Поскольку я решил полностью отказаться от проприетарного софта, я заменил Zend Studio на PDT - среду разработки для PHP на основе Eclipse, а Zend Debugger на XDebug.


суббота, 25 октября 2008 г.

StarDict в Foresight Linux Mobile или как установить ПО, которого нет в репозиториях

Как я уже говорил, мне на моем новом нетбуке Acer Aspire One не хватает словаря StarDict. Он отсутствует в репозиториях Foresight Linux, и я решил установить его вручную. На сайте я нашел исходники, а также сборки для Fedora и Ubuntu (rpm и deb соответственно). Кстати, там есть и дистрибутив для Windows, так что им вполне можно заменить пиратский Лингво на винде. Так вот, я скачал себе deb-пакет, ибо он мне как-то роднее.

С помощью стандартного архиватора я распаковал его (я это делал в Убунту). В итоге я получил два файла: control.tar.gz и data.tar.gz. Я забрал их по сети на нетбук и распаковал содержимое архива data.tar.gz прямо в корень (/), потому что содержимое архива хранится со всеми путями, начиная от корня. И, о чудо, /usr/bin/stardict прекрасно запустился. Если вдруг он у вас не запустится, можно посмотреть необходимые зависисмости в файле control из архива control.tar.gz и попробовать их установить.

После установки я добавил запуск словаря в автозагрузку (меню Параметры - Сеансы - Автоматически запускаемые программы), а также установил словари, скачав их с сайта gnome.msiu.ru. Теперь у меня словарь стартует при загрузке и сканирует выделяемые слова при нажатой клавише Win.

Этот трюк правда не прошел со второй нужной мне программой - GCStar. Она требует огромное количество каких-то перловых (и не только) библиотек, которых также нет в репозиториях.

REVOLUTION OS

Вчера ночью что-то не спалось, и я решил пересмотреть документальный фильм Revolution OS. Смотрел его раньше, но тогда еще толком не пользовался Линуксом.

Могу его посоветовать всем, кому интересно, с чего все это началось. В фильме рассказывается про GNU, Linux, Free Software и Open Source. В ролях Столлман, Торвальдс и другие революционеры :)

Acer Aspire One и Foresight Linux

Недавно я стал обладателем так называмого нетбука (или субноутбука) Acer Aspire One. Я к своему стыду купил модификацию с Windows XP, потому что Linux-версия поставлялась ну с очень уж маленьким диском (8 Gb), и я был наслышан об их тормознутости. Но на самом деле совесть меня не мучает, а даже наоборот, потому что я много лет использовал Windows и вот теперь отдал Майкрософту немного своих денег.

Сначала я попробовал поставить Xubuntu.Чтобы создать загрузочный USB-диск мне пришлось потратить часов десять. Все это время Xubuntu терзал мою флешку и в конце концов таки сделал мне загрузочный диск Xubuntu 8.04.1. Сам процесс установки порадовал. Этот Линукс дал мне возможность прямо во время установки уменьшить размер раздела, на котором был установлен Windows, и установить Xubuntu на освободившееся место. После нехитрых действий в консоли у меня заработал Wi-fi, но вцелом впечатление было не очень, потому что некоторые окна просто не влезали в 9-дюймовый экран.

Тогда мне как раз подвернулся некий Foresight Linux Mobile Edition. Он очень напоминает Ubuntu netbook remix, который, как известно, не поставляется в виде каких бы то ни было бинарников или образов. Я скачал образ и довольно быстро записал его на флешку (хотя мне пришлось порыться в гугле на этот счет). Установка этой системы не столь прозрачна как Ubuntu - у Foresight нет live-CD, процесс установки происходит в текстовом режиме, и на некоторых страницах мастера мне пришлось задуматься, прежде чем нажать кнопку "Next". Но вообще установка с флешки проходит очень быстро - на все ушло 15 минут. Foresight Linux сходу определил разрешение экрана, сетевую карту, веб-камеру и (что самое главное) wi-fi. Windows-сеть также заработала сразу и без вопросов, так же как и NTFS-разделы (я пока Windows не стирал, играю на нем в Counter Strike, т.к. на большом компьютере у меня только Ubuntu). Не работает у меня пока только кард-ридер (их на этом Асере целых два).

Система оказалась действительно очень удобной для подобного рода ноутбуков.



Так выглядит главное меню системы. И это действительно очень удобно для маленького экрана и управления тачпадом. Меня всегда очень напрягало путешествовать по многоуровневым меню с помощью тачпада. Здесь эта проблема решена (хотя конечно в самих программах меню никуда не делись). Все программы, а также ссылки на папки и диски сосредоточены в одном месте, которое заменяет рабочий стол и привычное "гномское" меню.

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

Как же Foresight Mobile справляется с нехваткой рабочего пространства на экране? На мой взгляд очень элегантно. Смотрите сами.

Почти все программы сразу разворачиваются на весь экран и уменьшить размер окна невозможно (это и не нужно при таком маленьком экране). Исключение составляют мессенджеры и подобные программы, которые удобнее использовать в уменьшенном окне. Все возможные панели системы объединены в одну единственную, которая расположена в верхней части экрана. В этой панели находится кнопка главного меню, кнопки запущенных приложений, затем заголовок активного окна, и затем стандартный трей. Все очень компактно и удобно. Почти все программы можно развернуть на совсем полный экран клавишей F11.

В качестве менеджера пакетов используется некий Conary, который создатели Foresight называют не иначе как революционным. Я бы назвал его аскетичным. Foresight имеет свои собственные репозитории, поэтому некоторых нужных мне программ, к которым я привык в Убунту, я не нашел (например GCStar, StarDict). Однако ребята из поддержки сказали, что они постараются добавить эти программы в репозитории в будущем. Поддержка у них довольно отзывчивая, доступна по IRC-каналу irc.freenode.net#foresight. А возможно я попытаюсь установить эти программы вручную.

Плюсы:

  • Очень удобен для ноутбуков с маленьким экраном и для работы с тачпадом

  • При столь крупном шрифте довольно много рабочего пространства

  • Быстрый. Да, он работает быстрее винды и местами быстрее Убунты, которая у меня установлена на гораздо более мощном железе

  • Сходу работает все железо (ну почти все)


Но конечно не все так радужно. Есть и минусы:

  • Довольно долго загружается

  • Досадный глюк, который я пока не решил - после ждущего или спящего режима не включается wi-fi. Но, думаю, поддержка мне поможет.

  • В репозиториях нет некоторых программ, которые мне нужны, однако наверное их можно установить вручную из исходников или каких-нибудь бинарников типа rpm.

  • Некоторые окошки все таки не влезают в экран.

  • Иногда вырубается экран. Вот просто берет и выключается и никак не включается. Даже Ctrl+Alt+Backspace


Несколько странностей

  • Во время установки, когда установщик предлагает настроить сеть (там фигурируют пункты IPV4 и IPV6), я отвечаю, что настрою сеть позже. В противном случае у меня не заводится wi-fi (хотя возможно это и совпадение)

  • Во время установки при настройке часового пояса установите флажок "System clock use UTC". В противном случае у меня при каждой загрузке системы время убегает на 3 часа вперед.


У вас может сложиться впечатление, что минусов больше чем плюсов, но это не так :)

Несколько тонкостей

  • Если вы решили поставить Foresight Linux Mobile, однако растерялись, скачав образ системы в формате img, то вот вам подсказка. Чтобы записать образ на флешку, воспользуйтесь командой:
    dd if=foresight-mobile-1.0-x86.img of=/dev/sdX
    где X - цифра, номер нужного раздела, который представляет собой вашу флешку

  • Чтобы установить midnight commander, нужно выполнить следующую команду в консоли:
    sudo conary update mc=foresight.rpath.org@fl:2-devel
    Видимо mc находится в каких-то экспериментальных репозиториях.

  • Чтобы слушать музыку в мп3 и смотреть видео, нужно выполнить эту команду:
    sudo conary update group-codecs

  • Чтобы подключить NTFS/FAT-раздел, нужно открыть Наутилус и примонтировать его. Потом он будет монтироваться автоматически при загрузке системы.

  • Для включения индикаторов беспроводной сети необходимо открыть файл /etc/rc.local:
    gksudo gedit /etc/rc.local
    и добавить в конец этого файла 2 строчки:
    sysctl -w dev.wifi0.ledpin=3
    sysctl -w dev.wifi0.softled=1

    Этот трюк вычитал на сайте ubuntueasy.com

понедельник, 16 июня 2008 г.

MySQL - GROUP_CONCAT()

Век живи - век учись. На днях узнал о существовании функции MySQL GROUP_CONCAT(). При чем она существует еще с версии 4.1.

Почитать мануал

вторник, 10 июня 2008 г.

Переход с Windows на GNU/Linux. Часть 1 - Установка

Установка Убунту довольно проста. Есть 3 способа:

  1. Загрузиться с диска Убунту и в первом же меню выбрать "установить Убунту"

  2. Можно загрузить саму систему в режиме live-CD и потом запустить на рабочем столе ярлычок "Установить"

  3. В Убунту 8.04 появился также третий способ - установка прямо из Windows. Насколько мне известно, в этом случае не нужно выделять отдельный раздел для Линукса.


Я выбрал второй вариант, т.е. я загрузил систему в режиме live-CD и уже из самого Линукса запустил установку. Согласитесь, это впечатляет - устанавливать систему, при этом лазя в Интернете :)

Файловая система и разметка диска


Первый вопрос, который возникает у виндузятника после установки Линукса, это - "Где мои диски?". Действительно, в Линукс нет логических дисков вроде C: и D:, столь привычных пользователю Windows. В Линукс существует единый корневой каталог (/), в котором находятся абсолютно все дисковые накопители компьютера. Сопоставление физического или логического диска определенной в файловой системе папке называется монтированием.

При установке предлагается или разметить диск автоматически или же разбить его вручную. Если на Вашем винчестере есть информация, или Вы хотите оставить рабочим Ваш Windows, то конечно надо размечать его вручную. Признаюсь честно, я не очень разбираюсь в файловых системах Линукс, поэтому советовать ничего не буду. Обязательными в Линукс являются только два раздела - это основной раздел и раздел подкачки. Я сделал еще два отдельных раздела - /boot и /home, потому что прочитал в Интернете, что так лучше. /boot - это маленький раздел, в котором находится загрузчик, а /home - это т.н. домашняя папка, т.е. место, где будут храниться все Ваши документы и настройки.

NTFS разделы


Также от Windows у меня остался один большой NTFS-раздел, на который я закинул все свои файлы, фильмы, музыку и т.п. После установки я заметил, что этот раздел не монтируется сразу при старте системы, а только после того, как я выбираю в меню "Переход" '/media/pub'. (media - это папка, в которой хранятся все внешние диски типа флешек, а также NTFS-разделы. pub - это метка моего диска, которую я сделал еще в Windows). После этого раздел прекрасно работает и на чтение и на запись.

Чтобы раздел монтировался автоматически, надо запустить программу Storage Device Manager (если она не установлена установите ее через Установку/удаление программ) и задать точку монтирования '/media/pub' для данного раздела.

Сейчас моя файловая система выглядит вот так:



Это сриншот программы GParted. Ее можно установить через Установку/удаление программ. Программа напоминает Управление дисками Windows или Partition magic. Насколько я понял, она тоже умеет менять размер разделов без потери информации, как Partiton magic.

На картинке видно все мои разделы, о которых я говорил, и еще один раздел /media/vm. Этот раздел я сделал позже из пустого места, которое я оставил на всякий случай, если захочу установить WIndows. WIndows я пока устанавливать не хочу, поэтому сделал себе раздельчик и отвел его под виртуальные машины. Но об этом позже.

Все части повествования

пятница, 6 июня 2008 г.

Функции PHP-5 в PHP-4?

И снова о старых версиях PHP. Есть у нас один сервер старый, вот на нем и крутится PHP-4, и перейти на 5-й просто так нельзя, потому что куча там всего, и переписывать это нет никаких сил конечно же. Так вот, когда я там чего-то пишу, то постоянно ловлю себя на том, что хочу использовать функции из PHP-5, а нельзя. На самом деле можно, только надо их предварительно написать. Например:
[sourcecode language='php']
if (!function_exists('http_build_query'))
{
function http_build_query($params, $prefix='' , $arg_separator='&')
{
// тут пишем собственно функцию - замену http_build_query() из PHP-5
}
}
[/sourcecode]
Включаем эту функцию в инклуды и все. Этот код будет работать и в php-4 и в php-5. Это способ иногда позволяет под php-4 запустить код, написанный на php-5.

Под катом моя рекурсивная реализация http_build_query(), которая обрабатывает массивы любой степени вложенности.

среда, 4 июня 2008 г.

register_globals

Мой первый сайт на PHP я писал в стиле PHP-3, т.е. с включенным register_globals. Как это ни странно, этот сайт до сих пор работает, и даже, я смотрю, прайсы люди каждый день обновляют :)

Недавно постучался ко мне теперешний администратор сайта и спросил, почему после переноса сайта на PHP-5 у него почти все перестало работать. Конечно же потому, что в на новом хосте установлен PHP-5.2, в котором register_globals выключен, и включить его невозможно.

Конечно же, надо переписать все с использованием глобальных массивов, но я придумал такое вот быстрое решение, как запустить сайт, рассчитанный на register_globals=ON, на PHP-5.2. Надо всего лишь в начале каждого файла выполнить эти 4 строчки:
[sourcecode language='php']
foreach($_GET as $key => $value)
$$key = $value;
foreach($_POST as $key => $value)
$$key = $value;
[/sourcecode]

среда, 14 мая 2008 г.

Pocket Scrobbler

Вчера узнал, что оказывается существует программа, с помощью которой можно скробблить треки на last.fm прямо с КПК или смартфона на Windows Mobile 5. Теперь мои чарты будут более правдивы, потому что пожалуй больше всего музыки я слушаю не с компьютера, а с телефона.

Там все очень просто. Информация о прослушанных треках сохраняется в неком кеше, а затем, когда есть доступ к Интернету, можно отправить ее на сервер. Поддерживаются плееры Windows Media, Core / TCPMP.

Этот скробблер благополучно установился и заработал на моем Qtek 8310. Скачать программу можно тут.

вторник, 6 мая 2008 г.

bake в CakePHP 1.2 beta

Есть в CakePHP такая штука как bake.

Она была и в версии 1.1, но как-то в то время я о нем не знал. Узнал я о бейке во времена версии 1.2 alpha. На самом деле я подумал, что такая штука просто обязана быть, и оказалось, что она есть. Что же это такое?

В CakePHP есть так называемый scaffolding. Это не что иное, как механизм, который позволяет Вам построить приложение практически не написав ни строчки кода, просто на основе БД. Круто, не правда ли? Но конечно же чудес не бывает. Этот механизм практически не применим, потому что когда вам нужно хоть немного кастомизировать полученное приложение, сразу же начинаются проблемы. Вот для этого и существует bake. Это консольный скрипт, который может нагенерить все необходимые файлы (модели, контроллеры и представления), которые потом можно подредактировать вручную. В отличие от скаффолдинга, при котором код генерируется на лету.

Так вот, в CakePHP 1.2a все было просто. Идем в папку cake/console/ и запускаем cake.bat bake (в Windows) или ./cake bake в Linux. Дальше можем генерить свое приложение.

В 1.2b у меня почему-то поначалу ничего не получалось. Бейк ругался так и эдак. Решение оказалось простым. Надо запускать бейк из папки app, т.е. находясь в папке app, выполнить:

./../cake/console/cake bake

Подробнее о бейке можно почитать тут:

http://www.ibm.com/developerworks/ru/edu/os-php-cake2/section4.html

Переход с Windows на GNU/Linux. Предисловие.

Неделю назад я довольно неожиданно для себе пересел с Windows на GNU/Linux. Я планирую написать несколько заметок, в которых расскажу, с какими трудностями я столкнулся, и как я их преодолел. Но для начала немного предыстории.


Первый Линукс, с которым я столкнулся, был кажется Mandrake-10. С ним у меня как-то не сложилось, и я надолго забыл о Линуксах вообще. После этого я еще краем глаза глянул на Knoppix и Ubuntu 6.10, которые в общем-то на меня произвели впечатление подхватыванием NTFS-разделов и кабельного интернета. Как раз после этого на работе я вплотную столкнулся с Линуксами, которые работали на наших серверах, и понемногу начал ориентироваться в особенностях этой системы. Тогда я решил еще раз глянуть на Убунту, скачав дистрибутив Xubuntu 7.10. Мне он показался вполне симпатичным. Я установил его на отдельный раздел, и на слабенькой машинке (950MHz, 384 Mb RAM) он работал вполне пристойно. Я решил провести эксперимент и поставить программы, необходимые мне для разработки. Я без особого труда и опыта установил DBDesigner, LAMPP (Apache, MySQL, PHP), Zend 5.5, JBuiler-2007 (Eclipse based), SVN сервер и клиент. И я понял, что в общем-то в Линуксе можно жить :)

Потом я купил новый двух-ядерный компьютер и для начала установил на него Windows Vista. Поработав немного, я убедился, что не зря ее ругают. Необоснованные тормоза и падения некоторых программ, а также неутихающий винчестер при 2-х Гб памяти - это как-то нездорово. Так получилось, что у меня было 2 варианта: поставить Windows XP или GNU/Linux. Я выбрал второй вариант отчасти потому, что как раз на днях должна была выйти новая версия Ubuntu 8.04 LTS (LTS - версия с длительным сроком поддержки). Я решил поставить стандартный Убунту, т.к. компьютер у меня мощный и Xubuntu ставить нет необходимости, а среду KDE, которая используется в Kubuntu, я как-то не люблю еще со времен того самого 10-го Мендрейка. Скачать новый Убунту в день его релиза было не так-то просто - сервер практически лежал от наплыва желающих. Удалось скачать его только через торренты. Тем самым я помог еще кому-то скачать этот самый Убунту. Посидировав еще немного торрент и поглядев на Убунту в виртуальной машине, я решительно снес винду и поставил Ubuntu 8.04.

Продолжение следует...