Recent Releases: Tomboy 1.3.1, Snowy 0.1, Stewie 0.12
'Yo Quiero Tomboy Online', remixed from 'Benito Chihuahua'
Monday I made two releases: Tomboy 1.3.1 and Snowy 0.1.
Tomboy 1.3.1 is our second development release of the cycle. So far we have been focusing on bug fixing, cleaning out old patches from bugzilla, and removing use of APIs that are deprecated for GNOME 3.0. Some highlights of 1.3.0 and 1.3.1 are:
- New topic-based help from Paul Cutler and others on the GNOME docs team should provide a more useful way to get help when using Tomboy.
- Panel applet support is now disabled by default (distributors, please use --enable-panel-applet when configuring) to drop most GNOME 2 dependencies (many thanks to Javier Jardón for this, and Aaron Borden for other API usage updates).
- Alejandro Cura added libproxy support to web sync, and there was much rejoicing.
- If you're hacking on Tomboy and are sick of having to install to test your changes, you'll be glad to hear that make run finally works again.
- We added a couple of hidden preferences that we may expose in the Preferences UI this cycle: hiding the tray icon is handy for folks who use Docky or gnome-do instead of the tray menu (Matthew Pirocchi), and deleting notes without being prompted for confirmation may speed up your workflow (Jeff Stoner).
- Brian Mattern fixed a bug noticeable on Ubuntu, where the panel applet wasn't using their fancy new icons.
- In bullet list land, Owen Williams fixed an irritating printing bug, and Stefan Schweizer fixed some keyboard navigation issues.
I'm really glad to have so many contributors helping out this cycle, as I've been splitting my time between two babies. First, here's a cute picture of my awesome son Stewart Daniel Kekoa Armstrong, who was born on May 16th:
Stewie 0.12
The other baby is Snowy, the AGPL Django app that will power the upcoming Tomboy Online free web service. We had planned on releasing according to the GNOME schedule, but wanted to wait until we added OpenID support to limit how many times alpha testers need to wipe their databases and start over again. ;-)
So today, I am proud to offer our first development release of Snowy: 0.1, the Chihuahua release. Ripped from the headlines, here are the features:
- An implementation of the Tomboy web sync REST API (the same API that Ubuntu One implements for note sync)
- OpenID support, so you can log in with your Google/Launchpad/whatever account
- Read-only online note access (notes can be made publicly readable in the admin UI for now)
- A friendly Tomboy-like web UI for accessing your notes, supporting rich text, note links, note pinning, full-text search, etc
- An initial unit test suite
Although Brad Taylor wrote most of the initial app, and I did a lot of the sync related work, I'd really like to call attention to some of our awesome contributors who have made this release possible:
- Leon Handreke improved our sync code, fixed a ton of our unit tests (on multiple occasions), and added OpenID support so that you can log in with your Google account or any other OpenID, instead of having to remember a new username/password pair for our little service. He also made some slick improvements to our note search UI.
- Sander Dijkhuis made improvements to our web UI, improved the ease of testing deployment by adding a fake mail server, and has been active on bugzilla and in IRC helping people work through deployment issues.
- Benoit Garrett, Stuart Langridge, and Olivie Le Thanh Duong have made numerous contributions to the REST API, OAuth support, and upstream django-piston, which is the library we use to achieve those features.
- We've also had great contributions from Adam Ziolkowski, Andy Duplain, Jordan Keyes, Mike Gorse, Ray Wang, and Shayne Macaulay.
- And we'd love to add your name to this list! We need Python hackers, designers, HTML/CSS pros, Javascript wranglers, testers, Django deployment experts...and I could use a babysitter, too.
Please join us in #snowy on GIMPNet, or on our mailing list, and help us bring Tomboy to your web.
kiwi2puppet
The goal is to recycle the data that went into the building of an image and use it for managing a deployed appliance.
So far it is a prototype that can write these resources
- package
- yumrepo
- user
- group
Source at GitHub: http://github.com/mvidner/kiwi2puppet
RPMs: http://software.opensuse.org/search?q=kiwi2puppet&baseproject=ALL (currently it is a single Ruby script, so at the moment RPMs are not worth any trouble)
Novell Reference: FATE#309497
Get in touch if you're interested.
In case you didn't know:
"The openSUSE KIWI Image System provides a complete operating system image solution for Linux supported hardware platforms as well as for virtualisation systems like Xen Qemu or VMware."
"Puppet is an open source data center automation and configuration management framework. Puppet provides system administrators with a simplified platform that allows for consistent, transparent, and flexible systems management."
WebYaST: Switch from XML into JSON (day two)
Today I compared JSON vs XML communication in WebYaST.
Calling groups index page without profiling takes almost same time with XML or JSON:
JSON
5.59, 5.7, 5.59, 5.82, 6.01 (average 5.742)
XML
5.99, 5.98, 5.88, 6.17, 5.96 (average 5.996)
WebYaST: Switch from XML into JSON (day one)
Result from previous tests was that bundled reXML parser is slowest from all ;-)
Now I'd like to continue with comparison XML and JSON performance. For this purpose I created webclient json branch in our git repository.
To install profiling extension you'll need to add repository http://download.opensuse.org/repositories/devel:/languages:/ruby:/extensions/openSUSE_11.2
and install package rubygem-ruby-prof. Also to see results from profiling you'll need kcachegrind package.
I started some tests with Firefox firebug extension (5 measurements from each and then calculate average). First one without any modification, then with profiling enabled.
| xml (rexml), no benchmarking | xml (rexml), ruby-prof enabled |
|---|---|
| 5.53 | 6.3 |
| 6.53 | 5.71 |
| 6.15 | 5.79 |
| 6.55 | 5.78 |
| 6.15 | 5.99 |
| 6.182 | 5.914 |

On this picture you can see (selected line is xml parsing process) with luck we can speed up 1/5 times (about 1 sec in my case). There's almost no difference between creating json and xml output: Calling http://localhost:4984/groups.xml takes average time 655ms, http://localhost:4984/groups.json takes average time 621.4ms.
Linux-cертификации Novell
Описание сертификаций и курсов я буду приводить по самой последней поддерживаемой версии SUSE Linux Enterprise 11. Для этого есть несколько причин. Первая заключается в том, что все имеющиеся сертификации по своим названиям, требованиям к знаниям и навыкам совместимы между имеющимися версиями SUSE за некоторыми исключениями, которые я отмечу. Вторая в том, что курсы по SLE 11 проработаны учебным отделом Novell значительно лучше по отношению к предыдущим версиям. Последовательность преподавания тем существенно улучшена (теперь все гораздо более логично), дополнены упражнения. И, естественно, что обучившись по SLE11, знаний хватит на то, чтобы администрировать все предыдущие версии SUSE :). Ради политкорректности я буду приводить ссылки на описание курсов на сайте Novell, а не учебного центра, где работаю :) . Те, кто заинтересуются — легко найдут описание приводимых ниже курсов и экзаменов на сайтах авторизованных учебных центров на русском языке. Материал, приводимый на сайте Novell, содержит также Certification Path - специальную схему, отражающую в графическом виде рекомендуемый процесс обучения и сертификации.
- базовый уровень владения системой, возможность использовать ее на рабочей станции и умение выполнять базовый набор задач;
- умение пользоваться встроенной в систему справкой (страницы man и info), а также возможность находить необходимую информацию на сайте вендора дистрибутива;
- знание структуры файловой системы Linux (FHS);
- умение работать в консоли Linux;
- умение работать со средствами пакетного менеджмента;
- умение работать с правами доступа в системе;
- умение добавлять в систему пользователей и группы;
- умение работать с текстовыми редакторами;
- умение ставить систему;
- знание и понимание последовательности инициализации системы;
- умение работать с процессами и сервисами системы;
- знание и умение способов работы со средствами хранения файлов — создание разделов диска, файловых систем на них, работа с LVM и software RAID;
- умение конфигурировать сеть средствами дистрибутива и командной строки, а также умение диагностировать и решать проблемы;
- понимание того, как Linux работает с аппаратным обеспечением, умение администрировать udev;
- умение настраивать и использовать средства удаленного доступа к системе;
- умение использовать средства мониторинга системы;
- умение работать с cron;
- умение работать со средствами резервного копирования.
- установка и конфигурирование базовых сетевых сервисов, к которым относятся: NTP, xinetd, ftp;
- установка и конфигурирование системы печати CUPS;
- установка и конфигурирование OpenLDAP;
- установка и конфигурирование Samba (в том числе настройка ее работы в связке с OpenLDAP);
- установка и конфигурирование Web-сервера Apache (в том числе настройка openssl и Tomcat);
- настройка и использование IPv6;
- базовые знания по использованию средств мониторинга системы, умение находить и устранять проблемы производительности;
- умение писать shell-скрипты;
- умение пользоваться средствами автоматической установки SUSE для массового развертывания системы внутри предприятий (AutoYast и методы сетевой установки);
- виртуализация с помощью Xen.
- базовые знания по настройке графического интерфейса в SUSE Linux Enterpise Desktop;
- базовая настройка безопасности рабочей станции;
- использование NetworkManager;
- настройка и использование IPv6;
- умение интегрировать SLED 11 в окружение Active Directory;
- умение интегрировать SLED 11 в окружение Novell Open Enterprise Server;
- умение интегрировать SLED 11 в окружение UNIX-систем (настройка клиентов NFS, OpenLDAP и CUPS);
- настройка удаленного рабочего стола;
- использование Multimedia и Email;
- умение писать shell-скрипты;
- умение пользоваться средствами автоматической установки SUSE для массового развертывания системы внутри предприятий (AutoYast и методы сетевой установки).
- продвинутая настройка сетевых интерфейсов (сетевые мосты, bonding, VLAN);
- настройка и использование сетевых хранилищ файлов (SCSI, iSCSI);
- продвинутое использование виртуализации XEN;
- настройка безопасности сервера;
- установка и настройка централизованного сервера обновлений;
- подготовка сервера к возможным негативным ситуациям;
- использование средств мониторинга системы.
Теперь пара слов про сами экзамены Novell. Это практические экзамены, которые содержат набор заданий, требующих своего решения. Для каждого экзамена есть набор курсов, которые рекомендуются к прослушиванию. Обязательного требования к предварительному обучению нет. Задание экзамена обычно описано достаточно детально в плане того, что именно нужно достичь. Не стоит тут пытаться показать все свои умения — достаточно просто выполнить то, что написано. Например, если указано, что необходимо настроить виртуальный хост Apache, запаролив доступ к нему, то так и следует сделать. Понятно, что кто-то из вас может знать, что самый правильный путь с точки зрения безопасности — это еще настроить SSL для доступа к нему. Но если вы решите сделать так — ваши усилия (и, что немаловажно, время) пропадут даром. Оценка задания производится бездушным скриптом, который вряд ли оценит красоту ваших решений. К слову, этому скрипту абсолютно не важно как именно вы будете решать поставленные задачи - настраивать что-то через средства командной строки или через Yast.
Difficult, difficult...
KDE Project:
It is interesting to notice what is sometimes seen as difficult. "It's too hard for me, I can't do that." "I'll never be able to do that, that's nothing for me." Like if most things could be done instantly just by snapping one's fingers. They instead require all these tedious things like effort, trying, learning, practicing and so on. The funny thing is, figuring out things in the IT area is not really that demanding. Wanna write a Plasma applet? There's a step-by-step tutorial at Techbase, just follow it blindly and with a decent skill in reading and typing, tadda, there's a Plasma applet. Wanna a package in the build service? You can use another one as a template, find a tutorial on the wiki or just google for it, and if you'll be just a little lucky, a tool can even do the work for you.
For getting a good comparison of what can difficult actually mean, let me show you something I consider to be pretty hard to learn. To have a better contrast, let's go in some completely different area that has absolutely nothing to do with computers. So if you think something is difficult, instead of doing this whatever something, try doing for example the Salchow jump. And since I expect many people here have no idea what that is, it looks like this, performed by yours truly:
That's roughly it. I assume it looks quite unimpressive to anyone who's never tried it or anything close (and, possibly, in this specific case it probably looks quite unimpressive even to whose who have). Yet this thing was bloody hard to learn for me. I probably learnt coding with Qt quite decently with much less effort (although, that's one of Qt's selling points, isn't it). Writing .spec files and creating packages? Nah, eeeasy. Even getting into Xlib programming was probably less effort, and I read a good part of the Xlib manual as a part of that. I admit getting into compositing effects and adding them to KWin might have been harder than the Salchow though :). Still, for somebody whose reaction to the idea of writting an alternative KDE workspace shell was 'how hard can that be?', the Salchow proved to be an unexpectedly difficult matter.
I was first shown and explained the Salchow about 9 months ago. I think I needed about 2 or 3 months just to perform it in the most lame way that'd technically qualify, about as much as x = 1 qualifies for a math equation. The video is from April, i.e. more than 3 months on top. Today I can perform it somewhat higher and at slightly faster speed, but it still hardly qualifies for anything better than 'decent'. And while I hope it'll one day get to something I'd consider good, I'll probably never ever get to those crazy things like multiple rotations or anything even remotely close to what you can see on the TV, no matter how much and how hard I'd try. Do you still think that e.g. creating and maintaining a package is hard, compared to this? And don't even get me started on the next jumps ... the Salchow is actually easy. Try to think of this next time when you'd want to do something but would consider it too difficult (besides, take this from me, trying difficult things is actually much more interesting than the easy ones).
PS: Come to think of this, I've never thanked Danimo and Scott Wheeler, who happen to be ultimately reponsible for me starting with skating and having a lot of fun, as I'd probably never come across any such idea myself. So, well, thank you.
Buildservice development on 11.3
The build service (and any other of openSUSE infrastructure software using RoR) is using rails 2.3.5, because we once decided to harmonize on the version of SLE11 SP1. Of course the latest version has less bugs (usually), but mixing RoR versions between different developers and deployment is a nightmare, so we had to decide on one.
Now comes the catch: 11.3 has rails 2.3.8 and as such you can’t develop the build service on factory/11.3 as is. But the good news, openSUSE:Tools has all the right versions, so you can add the repo (zypper ar -r http://r.opensu.se/openSUSE:Tools/f/r) and then install zypper in -f rubygem-rack-1.0.1 rubygem-activesupport-2_3-2.3.5
To make sure, the next zypper dup is not going to take it away, use zypper al rubygem-rack rubygem-activesupport-2_3
Atualizações esporádicas - 3
GNOME on Facebook
You have Facebook and you enjoy GNOME? Want to become a fan of GNOME ? Just click "Like" on the GNOME page.
GNOME have a team of hackers ready to show you cool content (not spamming i promise) about this project!
See you there! :)

