суббота, 24 апреля 2010 г.

Встреча 29 апреля 2010

Давайте, как и раньше, снова встретимся в ТЦ "Аркадия" (что на ст. м. Новокузнецкой) на 3-ем этаже в зоне фастуфуда в пятницу 30 апреля. Всех буду ждать с нелетающим шариком с 15:15 (раньше было с 16:15) дня до 7-8 вечера. До какого часа будет проходить, как всегда-по обстоятельствам. Торчать там буду точно до вечера.
Кто в прошлый раз был примерно дорогу знает, но на всякий случай повторюсь:
На карте где-то здесь (в 5-и минутах пешкодралом от станции метро Новокузнецкая) , точнее на картинке:

Если будут какие вопросы - мой моб: 8-962-926-04-96. Александр.

Кросс пост:http://welinux.ru/work/post/2895

четверг, 22 апреля 2010 г.

Opera mobile для десктопа...

Шерстя хабр, наткнулся сегодня на сабж: http://habrahabr.ru/blogs/opera/91717/ Ее создали, якобы, как инструмент для разработчика сайтов для тестирования Но, мне вот, вдруг, стало интересно: а если сидеть в сабже на нетбуке через жопарез с включенным опералинк, трафика много уйдет, чем через обычные фаерфокс/хром? =))
Линуховую версию проверил-вроде пашет!))

среда, 21 апреля 2010 г.

Панелька bmpanel2

Не так давно озадачился поиском простой и легкой панельки для openbox. Гуляя по интернетам наткнулся на bmpanel2. Увы, в дефолтных репах моего ubuntu karmik ее не оказалось. Погуглив еще самую малость, наткнулся на целый "склад":http://www.mediafire.com/alexp. Причем, не только для ubuntu karmik, но и для других версий ubuntu. И, даже, для разных версий debian.
Скачал. Установил. Запустил командой bmpanel2 - работает=)) Все красиво и быстро. Но никаких средств для конфигурации всего этого хозяйство в программе не присутствует. Но зато, на "складе" обнаружилось гуевое средство для настройки bmpanel2cfg. Установил, но программа не запустилась:

neon@neon-desktop:/usr/share/bmpanel2/themes/transpy$ bmpanel2cfgTraceback (most recent call last):
File "/usr/bin/bmpanel2cfg", line 12, in
g_remote = bmpanel2.Bmpanel2Remote(configfile)
File "/usr/lib/python2.6/dist-packages/bmpanel2.py", line 448, in __init__
self.update_pid()
File "/usr/lib/python2.6/dist-packages/bmpanel2.py", line 489, in update_pid
self.pid = configlist[0][0]
IndexError: list index out of range
neon@neon-desktop:/usr/share/bmpanel2/themes/transpy$

Почему программа не запустилась разбираться я не стал. Полез сразу в интернет, искать как отстроить панель вручную - через файлы конфигов. Как таковых собственных конфигов у программы почти нет. Внешний вид панели зависит от используемой ею темы. Создать свою тему, проще всего, на основе тем, идущих с программой "из коробки". Все они лежат по адресу /usr/share/bmpanel2/themes/.
Список установленных тем можно получить набрав в конcоле

bmpanel2 --list
....
neon@neon-desktop:/$ bmpanel2 --list
listing themes in "/home/neon/.local/share/bmpanel2/themes":
- none
listing themes in "/etc/xdg/xubuntu/bmpanel2/themes":
- none
listing themes in "/usr/local/share/bmpanel2/themes":
- none
listing themes in "/usr/share/bmpanel2/themes":
* xsocam (name: XSOcaM, author: nsf )
* flora-green (name: Flora Green, author: weakhead )
* xsocam-dark (name: XSOcaM Dark, author: nsf )
* flora-blue (name: Flora Blue, author: weakhead )
* auriel-green-opaque (name: Auriel Green Opaque, author: weakhead )
....
neon@neon-desktop:/$

Причем, хочу отметить 2 момента: имя темы = имя папки темы, локальные темы bmpanel2 ищет по адресу
/home/username/.local/share/bmpanel2/themes.
Пусть, сегодня поглумимся над темой transpy. Копируем папку с этим именем из /usr/share/bmpanel2/themes/ в /home/username/.local/share/bmpanel2/themes.И переименовываем ее, например, в transpy2.
Тема состоит из граффических файлов *.png и текстового файла описания темы theme. Откроем его своим любимым тектовым редактором для изменения. Внутри файл theme поделен на несколько зон, их подробное описание можно посмотреть здесь:http://nsf.110mb.com/bmpanel2themeref/. Вносим нужные нам изменения. Вкратце, стоит отметить основные зоны:
1)panel - в этой секции задаются расположение панели, фон, прозрачность. В нашем примере я поменяю позицию панели с верхней (top) на нижнюю (bottom).
2)desktop_switcher - "виджет" переключатель рабочих столов
3)launchbar - панель быстрого запуска - здесь задается только размер (в пикселях) используемых для ярлыков иконок
4)taskbar - список открытык окон
5)systray - системный трец
6)clock - обычные цифровые часы
Про настройку пунктов 1,2,4-5 все более или менее ясно из их написания внутри файла и по описанию статьи http://nsf.110mb.com/bmpanel2themeref/. Что касается пункта 2 (панель быстрого запуска launchbar) - его настройка и использование в статью не рессказаны подробно.
Погуглив еше разок, наткнулся на блог разработчиков bmpanel2: http://nsfdev.wordpress.com/category/bmpanel-project/page/3/. Просмторев и почитав коменты, искомая мною информация была найдена.
Для конфигурирования панели быстрого запуска необходимо создать файл конфигурации /home/username/.config/bmpanel2/bmpanel2rc. Открываем его для имзенения, и пишем в него следущее (##-мои коменты, при редактировании файла их выкинуть):

theme transpy2 ##имя нашей темы (=имя папки темы)

launchbar
##создадим 1 ярлык для запуска, например, firefox
exec firefox ##команда запуска программы из консоли
icon /usr/share/pixmaps/firefox-3.5.png ## иконка для ярлыка
... ##можно созать еще много ярлыков

Все, сохраняемся, и запускаем bmpanel2 с нашей новой темой transpy2:

bmpanel2 --theme transpy2

В результате, должно получиться примерно что-то похожее на это:

четверг, 15 апреля 2010 г.

Другое творчество))

Я не только пытаюсь программить в линухе, но и на гитаре поигрываю маленько=)
Вот некоторые из моих и не только моих маразмов:
Пьяное исполнение под новый год песни фак хер джентли от тенайшис ди


Старый старый клипушник на жизненную тему - "Виндавс Хавно":


Еще один клипушник о нашей почившей любимой сетке:


Всякая клипопомойка с моей последней днюхи




ОФФТОП:Пока есть свободное время, руки дошли, наконец, до перелопачивания кода в леталке. Уже перелопачен редактор. Постараюсь не забросить проект и скоро выложить...

О том, как собрать свой дистрибутив...

Это перепечатка моего же поста с welinux.ru:http://www.welinux.ru/post/2756/...

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

Если наша сборка будет на основе ubuntu, то для наших целей можно использовать такие инструменты, как: Ubuntu Customization Kit (UCK) (http://uck.sourceforge.net/) или Ubuntu Reconstructor (UR) (http://www.reconstructor.org/wiki/reconstructor/)

Принцип их работы схожий: сборка дистрибутива происходит внутри "виртуальной песочницы". UR, даже, позволяет работать внутри рабочего стола будущей системы. В то время как, в UCK, для этих целей приходиться использовать консоль.

Однако, не все так радужно, обе программы не стабильны, для их использования требуется достаточное количество свободной памяти на жестком диске. Возможны конфликты "песочницы" с основной системой: при обновлении ядра собираемой системы, в именах хозяина/группы/прав файлов/папок собираемой системы, в темах оформления собираемой системы и пр. Часто бывало так, что полученный при их использовании дистрибутив не работает вовсе. Или работает не так, как ожидалось.

UCK развивается очень медленно, а UR прекратил свое существование как программа и перерос в платный онлайновый сервис.

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

Для создания нашего дистрибутива, скорее всего, нам понадобятся:
1) комп с линухом и инетом, с установленной и настроенной виртуальной машиной (я использовал virtualbox версии 3.0 и выше), программа isomaster или аналогичная;
2) базовый iso образ дистрибутива, на основе которого мы будем создавать собственную сборку, желательно livecd.
3) usb флешка или внешний хард или шара – все, что угодно для связи с внутренностями виртуальной машины.

Итак, создаем нашу виртуальную машину. Для нее создаем виртуальный жесткий диск с размером, примерно в 2 раза больше требуемого места для установки базовой системы. Грузим виртуальную машину с базового iso образа и устанавливаем систему на виртуальный жесткий диск.

Опять же, если мы используем в качестве базового имиджа ubuntu alternate install cd - мы можем установить систему без графического окружения. Выбрать этот тип установки можно в начальном меню до загрузки системы из образа, кажется, нажав f4. Т. о., уже при установке можно избавиться от гнома, сплешей, пулься, и прочего мусора. Графическое окружение, в последствии, "натягиваем сами" из консоли.

Я не буду рассказывать о том, как тюнинговать и «кастомизировать» вашу новую систему. Цель этой статьи не в этом. Предполагается, что Вы и сами можете это сделать. Будем считать, что наша система готова для превращения в сборку, а именно: установлено нужное нам ПО, добавлены необходимые репы, подкручены конфиги, сделано новое оформление и т.д..

Теперь, если в качестве базового дистрибутива использовались debian или ubuntu (или другой debian based) - смело идем на http://www.geekconnection.org/remastersys/remastersystool.html Подключаем от туда реп и устанавливаем remastersys (напоминаю, что все действия проходят внутри виртуалки).

Для ленивых:
-если сборка происходит на основе debian(стырено сайта программы):

Where can I get remastersys?
The Remastersys repository needs to be added to your /etc/apt/sources.list

Paste the following into the sources.list:

# Remastersys
deb http://www.geekconnection.org/remastersys/repository debian/

- если сборка происходит на основе ubuntu (стырено сайта программы):

Where can I get remastersys?
The Remastersys repository needs to be added to your /etc/apt/sources.list

Paste the following into the sources.list:

For Gutsy and Earlier - up to version 2.0.11-1
# Remastersys
deb http://www.geekconnection.org/remastersys/repository remastersys/

For Hardy and Newer with original grub - version 2.0.12-1 and up
# Remastersys
deb http://www.geekconnection.org/remastersys/repository ubuntu/

For Karmic and Newer with grub2 - version 2.0.13-1 and up
# Remastersys
deb http://www.geekconnection.org/remastersys/repository karmic/

Далее, используя Synaptic или в консоли, выполняем:
1) обновление списка пакетов:
sudo apt-get update

2) установка remastersys:
sudo apt-get install remastersys


Загружаем remastersys от рута:
sudo remastersys

Тыкаем кнопочку ok. Если хочется посмотреть/поправить параметры будущего дистрибутива выбираем modify. В главном меню есть и другие опции, но нас интересует лишь первая строчка для создания iso образа нашей ЖИВОЙ сборки - тыкаем backup. Загружается терминал и начинается процесс сборки. Можно успеть пойти попить кофе - процесс сборки не быстрый. По окончанию сборки, готовый файл будет лежать по дефолту (если в modify не творилось никаких изменений) в /home/remastersys/custom.iso. Этот iso и есть наша цель. Его теперь можно залить на болванку или на флешку или поделиться им с друзьями =) Но, с начало его нужно извлечь из виртуалки. Я извлекал при помощи внешнего жесткого диска. Но, это опять же - кому как нравится.

Далее, после извлечения iso, в виртуалке стираем /home/remastersys или выбираем пункт clean в меню remastersys для тех же целей.

Перед сборкой iso в remastersys, я отключал виртуальную машину от сети – remastersys постоянно пытался скачать и установить metacity. Но т.к. я задался целью собрать легенький дистрибутив - у меня используется open box.

Если собирать систему на базе arch linux, есть программа аналогичная remastersys - larch (http://larch.berlios.de/). Правда у нас с ней что-то "не сложилось". В итоге, плюнул я на нее. И, погуглив, нашел еще один очень неплохой способ создания своих сборок, причем независящий от базового дистрибутива: http://citkit.ru/articles/1228/ В этом примере, в качестве базового дистрибутива используется mandriva linux. Также, надо учесть, что «…для пересборки LiveCD потребуются утилиты readcd, mkisofs и cdrecord из пакета Cdrtools, а также mksquashfs из пакета squashfs-tools. Вместо Cdrtools можно так же использовать пакет Cdrkit…».

Если в вкратце, то, как правило, все livecd, независимо от дистрибутива, состоят из сохраненного в squash (сквош) архив образа системы и обертки ее загрузчика. Почитать что такое сквош и с чем его едят можно, например, здесь http://mydebianblog.blogspot.com/2006/08/squashfs.html. Файл сквош образа может иметь расширение sqf или sqfs - не важно, обычно это сааамый «толстый» файл в базовом iso образе.

Способ заключается в замене этого файла своим. Для замены можно использовать isomaster, но опять же - это кому как нравится=))

Т.к. у меня в виртуалке стоит лишь "не допиленный" арч, я решил попробовать сделать сборку из него. Скажу сразу, сборка заработала в загрузочной обертке от archbang, а не от base core версии арча.

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

Для этого:
1) Включаем консоль и ползем в корень файловой системы /

[neon@HVOST ~]$ cd ..
[neon@HVOST home]$ cd ..
[neon@HVOST /]$ dir
bin dev home lost+found opt root srv tmp var
boot etc lib media proc sbin sys usr

2) Создаем папку для монтирования, всей системы (так и не понял зачем это нужно, но если систему не монтировать, создание сквош файла у меня затыкалось на 30%), например hren.

sudo mkdir /media/hren/

Монтируем туда файловую систему и переходим в эту папку

sudo mount -o bind / /media/hren/
cd /media/hren

3) Создаем в корне наш сквош файл, исключая его самого и всякий мусор в виде /tmp/*, возвращаемся в корень

sudo mksquashfs /media/hren/ hren.sqfs -e hren.sqfs /tmp/*
cd /

4) Отмонтируем корневую систему обратно

sudo umount /media/hren/

В принципе, все. Если вы уверены, что в системе ничего править больше не нужно, то следующие шаги 5 и 6 можно пропустить.
5) Подмонтируем для проверки и "ковыряния" созданный hren.sqfs файл с образом системы (такой файл монтируется только на чтение, т.е. read only (ro))

sudo mount hren.sqfs -o loop -t squashfs /media/hren/

Сделаем ее доступной для записи. Сначала, создадим временную перезаписываемую (rewrite (rw)) область в памяти:

sudo mkdir /media/tmp_sqfs/
sudo mount -t tmpfs none /media/tmp_sqfs/

Теперь, объединим файловые системы tmpfs (rw) и squashfs (ro) при помощи файловой системы unionfs (aufs) в единое целое:

sudo mkdir /media/union_sqfs/
sudo mount -o dirs=media/tmp_sqfs=rw:/media/hren=ro -t aufs aufs /media/union_sqfs/
[neon@HVOST /]$ ls /media/union_sqfs
bin dev home lost+found opt root srv tmp var
boot etc lib media proc sbin sys usr
[neon@HVOST /]$ mount | grep union_sqfs
aufs on /media/union_sqfs type aufs (rw,relatime,si=134837c1)

Обращаю внимание, что теперь в папке /media/union_sqfs наша система подмонтирована как rw, т.е. теперь ее можно доковырять, например, подправить конфиги или потереть лишний мусор. Причем, система смонтирована в оперативной памяти.
6) Итак, допустим мы внесли все необходимые коррективы в наш будущий дистрибутив. Теперь, надо пересобрать сквош-образ с учетом всех сделанных изменений, ведь все они пока хранятся в памяти!
Идем в корень / и пересобираем образ:

cd /
sudo mksquashfs /media/union_sqfs/ hren_new.sqfs


В итоге, в корне получаем новый сквош файл hren_new.sqfs, который вытаскиваем из виртуалки, переименовываем, и при помощи isomaster (или аналогичной программой) вставляем в базовый iso, ВЗАМЕН существующего. Сохраняем новый iso.
Все, собственная сборка готова. За бортом осталось то, как к всему этому хозяйству прикрутить инсталлятор =))