back home
I got stuck in an extra small seat from CDG to MEX -- there was a big metal box under the seat in front of me bolted to the floor and occupying about 1/3 of the "legroom". At 193cm tall, I find all seats cramped, but this was ridiculous. Ridiculously uncomfortable, that is.
Being back at home is like stepping into a pair of old, comfortable shoes.
in Germany
Seeing people whom I mostly know as email addresses and IRC nicks has been productive and nice, of course. That's the real value in this sort of trip.
Status of my
Hi Thomas,
thanks for the question. Here is the status:
| Tables: | |
|---|---|
| * introduce allowCollapse attribute for paragraphs following nested tables to encode WW and HTML-like tables. | Not put up for discussion. |
| * declare sub tables as deprecated | Under discussion in the Accessibility SC. |
| Numbering | |
| * introduce text:level-text attribute to encode arbitrary number formats | Rejected. |
| * introduce text:num-follow-char to encode WW-like numbering | Partly accepted. |
| * introduce text:list-override to encode WW-like numbering | Strongly rejected. |
| * declare style:list-level-properties/@text:space-before as deprecated. Effect can be achieved with paragraph indent. | Rejected. |
| Master-page styles | |
| * add header-first and footer-first to encode WW-like page-styles | Not put up for discussion |
| * modify master-page styles such that WW-like sections can be encoded; current CSS3.0 like text:sections are not applicable | Not put up for discussion |
| * declare the style:next-style-name attribute of master-page declarations as deprecated. | Not put up for discussion |
| Styles: | |
| * allow deriving paragraph-family styles from text-family styles. | Not put up for discussion |
| "Break chars" | |
| * introduce a |
Not put up for discussion |
| Fields: | |
| * enhance field support by introducing a <text:field-start/> and a <text:field-end/> element to which metadata can be attached. | Rejected |
| Change tracking: | |
| * introduce change tracking for tables | Not put up for discussion |
| * introduce change tracking on property level | Not put up for discussion |
| Discourage the use of the following OD features for MOOX interop: | |
| * nested frames | Not put up for discussion / Internally communicated as rejected. |
| * current CSS3.0 like text:sections | Not put up for discussion / Internally communicated as rejected. |
| * use fo:break-before instead of fo:break-after | Not put up for discussion / Internally communicated as rejected. |
| * use fo:margin-* for tables | Not put up for discussion / Internally communicated as rejected. |
In general I must confess the OpenDocument TC didn't picked up my discsussion topics... (It's listed as suggested but never has been put for discussion into the agenda). Additionally I had a lot of private communiation where my ideas where communicated as unwanted/rejected.
To get an idea of whats discussed for ODF1.2 take a look at:
Look who's sponsoring Ruby
For those of you wondering Why Ruby ?, look at the conference website.
The Ruby language is growing exponentially, partially because it offers more flexibility than other more common languages.Now add Suns support for Ruby last year, the famous Ruby on Rails web development framework and broad platform support, this language is still HOT.
Xesam and bathroom hacking
Yesterday morning I was quite arrived at work when Laura (my gf) called me. Something went wrong in our bathroom and water was everywhere. She closed the main water tap and I took the first train for home (yes, since I’m an outlier I take the train two times per day). Once arrived at home I performed some hacking on the guilty washing machine, checked some pipes and than took the next train for office.
In the end yesterday I spent approximately four hours on the train. During this elapse of time I started the Xesam User Language parser :) During the travels I:
- refreshed my memories about Flex, Bison and language parsers in general
- wrote XesamUserLanguage’s BNF grammar
- wrote Flex scanner
- started Bison parser
Now, after fixing some build errors, I’ll start writing Bison’s grammar rules. These rules will translate Xesam user language queries into Strigi::Query objects.
I hope it will work (both bathroom and Xesam parser ;) )
How to have some fun with Strigi and Xesam queries
Last day just after I hit the “submit” button a doubt came into my mind: “did I say everything ?” Well, the answer is “No!” In fact I forgot to tell you one of the most important things: how to have some fun with Strigi and Xesam! Actually the only way to perform XesamQueryLanguage queries with Strigi is through the strigicmd program.
Strigicmd is a command-line tool shipped with Strigi. It can perform different actions like:
- create Strigi indexes
- remove items from index
- list all files contained into an index
- retrieve informations associated to an indexed file
- update the contents of your index
- query the index
- perform a query using XesamQueryLanguage
So, if you want to try the new Xesam support you’ve just to use strigicmd
with the xesamquery option. The command syntax is: strigicmd xesamquery -t
backend -d indexdir [-u xesam_user_language_file] [-q
xesam_query_language_file] As you can expect you’ve to save your Xesam query
to file and point strigicmd to it.
This is a really small step-by-step guide:
- Create a new Strigi index (in this case I’ll index all irc logs):
strigicmd create -t clucene -d temp/ logs/ -
Create a simple file containing your Xesam query. You can find some example query on Xesam site or inside strigi tarball (complete path: strigi/src/streamanalyzer/xesam/testqueries/). This is a stupid and easy query:
{% codeblock [query] [lang:xml ] %}
{% endcodeblock %}Oever jos -
Perform the search, just type:
strigicmd xesamquery -t clucene -d temp/ -q ~/irc_oever.xml
Enjoy the search results ;)
Remember that XesamUserLanguage query language isn’t yet supported.
Strigi gets XesamQueryLanguage queries support
Since last Thursday Strigi gained XesamQueryLanguage support. This means that now is possible to process queries formulated using this syntax.
But why is this important? If you aren’t able to answer the previous question probably you don’t know what is Xesam. Here’s a short definition taken from the official site: Xesam is an umbrella project with the purpose of providing unified apis and specs for desktop search- and metadata services. Thanks to dbus and Xesam it will be possible to access the informations indexed by Strigi (and all the desktop searching programs supporting these technologies) in a standard and easier way. Isn’t it cool?
Credits
I’ve to say a big “thank you” to Fabrice Colin (author of pinot) because my Xesam code relies upon his work.
Future tasks
My work isn’t yet finished. Xesam defines two kind of queries:
- Xesam user language queries
- Xesam query language queries Fabrice’s code for XesamUserLanguage queries uses Spirit library. Since we don’t want to depend against the boost library, I’ll write a new parser for this language.
By now I’m thinking to accomplish this task using flex, but I’m just in a preliminary state. Suggestions are welcome!
P.S. I’m really happy because this is my first post published on PlanetKDE. Hello to everybody!
How to check that RoR is working in Plesk 8.1.1
I had the possibility to upgrade my Plesk instalation from 8.0.1 to 8.1.1 without to pay additional money . In the new release notes they mentioned that Ruby on Rails is supported, so I tried it to see. The upgrade was fine, and now I have RoR installed.
To activate it you have to add fast_cgi support for your site. This option is in the same place like the others options (perl/php/python/cgi support).
To check that RoR is installed and it is working:
1. go into the document root folder for that domain.com:
# cd /srv/www/vhosts/domain.com/httpdocs/
2. create a simple RoR application:
# rails myapp
3. go into application directory:
# cd myapp
4. start WEBrick server on 9999 port:
# ruby script/server -p 9999
If you don’t specify a port, default is 3000 but in my case this port was already used.
For more options use the –help option:
[root@bijoux]# ruby script/server --help
=> Booting WEBrick...
Usage: ruby server [options]
-p, --port=port Runs Rails on the specified port.
Default: 3000
-b, --binding=ip Binds Rails to the specified ip.
Default: 0.0.0.0
-e, --environment=name Specifies the environment to run this server under (test/development/production).
Default: development
-m, --mime-types=filename Specifies an Apache style mime.types configuration file to be used for mime types
Default: none
-d, --daemon Make Rails run as a Daemon (only works if fork is available -- meaning on *nix).
-c, --charset=charset Set default charset for output.
Default: UTF-8
-h, --help Show this help message.
5. check your application in browser:
http://www.domain.com:9999
Now, you can see: Welcome aboard so, it is working.
That’s all, bye!
Enabling Sources on openSUSE 10.2
Disable ZMD before proceeding:
su -c "rczmd stop"
su -c "rpm -e zmd libzypp-zmd-backend sqlite-zmd rug zen-updater"
Now you can use YaST, Zypper or Smart.
Zypper is the new command line tool in the openSUSE package management stack. You can use it just like rug.
To add the relevant sources, issue the following commands:
su
rpm --import http://linux01.gwdg.de/~pbleser/guru-rpm.asc http://packman.unixheads.com/suse/10.2/gpg-pubkey-1abd1afb.asc
zypper -v sa http://ftp.skynet.be/pub/ftp.opensuse.org/opensuse/distribution/10.2/repo/oss/ suse-oss102
zypper -v sa http://ftp.skynet.be/pub/ftp.opensuse.org/opensuse/distribution/10.2/repo/non-oss/ suse-non-oss102
zypper -v sa http://ftp.skynet.be/pub/ftp.suse.com/suse/update/10.2/ update102
zypper -v sa http://ftp.skynet.be/pub/suser-guru/rpm/10.2/ guru102
zypper -v sa http://ftp.skynet.be/pub/packman/suse/10.2/ packman102
The -v option just provides a little extra verbosity; it isn’t required. For other options, see Using Zypper
Smart is a popular meta-package manager contained on the openSUSE CDs and DVD. To add the repositories via Smart, simply:
su
smart channel --add suse-oss102 type=yast2 baseurl=http://ftp.skynet.be/pub/ftp.opensuse.org/opensuse/distribution/10.2/repo/oss/
smart channel --add suse-non-oss102 type=yast2 baseurl=http://ftp.skynet.be/pub/ftp.opensuse.org/opensuse/distribution/10.2/repo/non-oss/
smart channel --add update10.2 type=rpm-md name="update 10.2" baseurl=http://ftp.skynet.be/pub/ftp.suse.com/suse/update/10.2/
smart channel --add packman102 type=rpm-md name="Packman 10.2" baseurl=http://ftp.skynet.be/pub/packman/suse/10.2/
smart channel --add guru102 type=yast2 name="Guru 10.2" baseurl=http://ftp.skynet.be/pub/suser-guru/rpm/10.2/
smart update
Note that the sources above all use ftp.skynet.be. More mirrors exist, it’s recommended to use one in your vicinity. See Package_Sources/Mirrors for more information.
How to install Subversion on Plesk 8.1
I will try to explain step by step how I installed Subversion on a Virtual Private Server wich runs Plesk 8.1.1 as control panel and Suse Linux 9.3 as operating system:
First step is to download subversion package, now the latest version is 1.4.4. It is very nice that they offer also a package with dependencies. So, we download:
Unpack them:
# tar -zxvf subversion-1.4.4.tar.gz
# tar -zxvf subversion-deps-1.4.4.tar.gz
The second command will include the dependencies in the same directory with main subversion package.
We compile and install the subversion package and dependencies:
# cd subversion-1.4.4
# ./autogen.sh
# ./configure
# make
# cp /etc/apache2/sysconfig.d/loadmodule.conf /etc/apache2/httpd2-prefork.conf
# make install
# cp /etc/apache2/httpd2-prefork.conf /etc/apache2/sysconfig.d/loadmodule.conf
Now, checking the differences between these two files we have:
# diff /etc/apache2/sysconfig.d/loadmodule.conf /etc/apache2/httpd2-prefork.conf
30a31,32
> LoadModule dav_svn_module /usr/lib/apache2/mod_dav_svn.so
> LoadModule authz_svn_module /usr/lib/apache2/mod_authz_svn.so
so, we can see that already the modules are in the right place.
Edit /etc/ld.so.conf to include /usr/lib and /usr/lib/apache2 and then run:
# /sbin/ldconfig
IMPORTANT: in /etc/apache2/sysconfig.d/loadmodule.conf we need also:
LoadModule dav_module /usr/lib/apache2-prefork/mod_dav.so
before the previous two lines. dav_module has to appear before dav_svn_module in file. If you don’t have this line before, you will see next message when you try to restart apache server:
Cannot load /usr/lib/apache2/mod_dav_svn.so into server: /usr/lib/apache2/mod_dav_svn.so: undefined symbol: dav_xml_get_cdata
so, my file looks like this (only last three important lines):
[...]
LoadModule dav_module /usr/lib/apache2-prefork/mod_dav.so
LoadModule dav_svn_module /usr/lib/apache2/mod_dav_svn.so
LoadModule authz_svn_module /usr/lib/apache2/mod_authz_svn.so
Edit /etc/sysconfig/apache2 and add: “dav mod_dav_svn mod_authz_svn” to APACHE_MODULES section. My specific section is like this:
APACHE_MODULES="mod_perl access actions alias auth auth_dbm autoindex cgi dir env expires include log_config mime negotiation setenvif ssl userdir php4 php5 /usr/lib/apache2-prefork/mod_frontpage.so python suexec rewrite dav mod_dav_svn mod_authz_svn"
Now is time to create our repository and set the correct owner and group for it:
# svnadmin create /home/svn
# chown -R apacheuser:apachegroup /home/svn
If you edit /srv/www/vhosts/domain.com/conf/httpd.include and add at the end something, Plesk will remove your changes.
So, we need to create a new file vhost.conf and to use this file. I will create /srv/www/vhosts/domain.com/conf/vhost.conf and I will put inside:
<Location /svn>
DAV svn
SVNPath /home/svn
</Location>
for a subdomain the file has to be in /srv/www/vhosts/domain.com/subdomains/NAME/conf
Now, you need to tell Plesk to update it’s information. You have to run:
# /usr/local/psa/admin/sbin/websrvmng -u --vhost-name=domain.com
this will configure plesk only for one single domain, in this case domain.com
If you want to configure it for all sites run:
# /usr/local/psa/admin/bin/websrvmng -a
Restart apache web server:
# /usr/sbin/apache2ctl stop
# /usr/sbin/apache2ctl start
Check the repository:
http://domain.com/svn
So, it seems that it is working, we can see:
Revision 0: /
Powered by Subversion version 1.4.4 (r25188).
I hope that also for you. :))
Next step is to restrict the access to our repository to give access only for some users:
DAV svn
SVNPath /home/svn/
AuthType Basic
AuthName “Private Repository”
AuthUserFile /etc/svn_auth_file
Require valid-user
We can add first user which is able to access our repository (use htpasswd2 if you have apache2):
# htpasswd -cm /etc/svn_auth_file firstuser
-m means that we want to use MD5 encryption for passwords
To add the second user (don’t use -c option, it is used only the first time to create svn_auth_file):
# htpasswd -m /etc/svn_auth_file seconduser
Bye!