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! :)
Livro - impressões
Details that sometimes do matter
KDE Project:
Some things are really really tiny details, yet they can be annoying in way. Something that's been occassionally bugging me is that fact that KDE uses the same wallpaper as KDM background, the splashscreen background and desktop background, yet depending on the screen resolution it may not be exactly the same background - during login the picture may stretch or shrink at certain points. The times when decent monitor screens had a 4:3 ratio are a thing of the past, starting with LCD makers making 5:4 "narrow-screens", then changing their minds and making 16:10 or 16:9 wide-screens. The choice of screen resolutions is not that limited either and that means that the wallpaper has to be scaled ... and that was the problem. Plasma has code to select how to do the scaling, KSplashX has code for that and KDM has code for that, and yes, you guessed it, it's always a different code. So unlucky resolutions get different wallpapers from different code. Since I actually spent some time in the past trying to make the login as seamless as possible, this indeed made me twitch whenever I saw it.
Seeing this again while testing openSUSE 11.3 made me finally spend the time to patch the openSUSE package to use the same selection code in all the three components. We really lack polish in so many places :(. But now it looks like the change is almost not there - there's just a progressbar and logo shown during startup and that changes to the desktop. With compositing enabled there would be also the fade-in animation.

Seeing that 4.4's KDM had no support for differently sized wallpapers, I was about to submit a copy of Plasma's code there when I noticed that trunk has some code for it. Of course, different from the rest again. Also, the login sequence is basically just lucky to be so smooth. The splashscreen is supposed to stay visible until Plasma is ready with its wallpapers and panel layout. And there is code in KSMServer to ensure this. And Plasma uses it. Yet it's apparently not used properly - during the first login, when there is more setup to be done during login, it's perfectly possible to see how the panels are set up. Well ... maybe in time for openSUSE 11.3 + 1.
Let’s beat the drum for openSUSE conference 2010
Robert and myself visited most open source projects attending LinuxTag 2 weeks ago and invited them to come to the openSUSE Conference – be it as visitor, giving a presentation or doing a workshop. Feedback was all over the place positive. But feedback isn’t enough – we’ll do some follow up to make some of them participate and all of us should now promote the openSUSE Conference where possible.
Let’s spread the word about the openSUSE Conference and its motto “Collaboration across borders”, invite developers of other communities and other projects to join as a visitor or to give a presentation on a topic which affects all of us or lets do a workshop, hack session or just having fun. Call for papers is open till July 31 – so now is the time to shape the conference. Send in our proposal or idea to cfp@opensuse.org.
Robert and gnokii created some artwork for the openSUSE conference which is perfect to add it on web pages or to print out the posters to do some promotion in your area.
openSUSE Conference in short:
- October 20-23 in Nürnberg, Germany
- Free entrance
- 4 days conference with 4 tracks plus hack sessions and workshops
- Topics:
- Technology and Upstream Development
- Education and Science
- Business
- User and Home
- Everything is possible – just send an email to cfp@opensuse.org
Hack Week project: Cydin
https://test.googlecode.com/svn/trunk/tags/test-project/*







