Skip to main content

the avatar of Andrew Wafaa

openSUSE on ARM Update 310112

It’s been a little over a month since the last update and as always there has been progress :-) First let’s get some of the numbers out of the way, currently we have 4202 packages built successfully, with 120 failed which is leading to 582 unresolvable. Remember this is for a full openSUSE Factory (12.2) build. Not bad, but we still have a way to go if we want to have an ARM port ready for 12.

a silhouette of a person's head and shoulders, used as a default avatar

FOSDEM 2012 - How to make the best of it and become LibreOffice developer

I'm going to FOSDEM, the Free and Open Source Software Developers' European Meeting

FOSDEM 2012 is just round the corner and, as you might know, LibreOffice will have a DevRoom this year too. And, as it was already publicized, your servant and Eilidh McAdam of libvisio fame will attend too. The goal of this event will be to help you to become a LibreOffice developer, by helping you to get your first contact with the code from inside.

How to prepare for the event?

In order to give as many community members the possibility to speak, the presentations will not take more then 15 minutes each. But we will be there for one-to-one contacts and hacking goodness. If you are interested in contributing to our new Visio import filter, or the upcomming Corel Draw and MS Publisher filters, here is what you can do:

  1. Find a bug that is bothering you in the current Visio import filter, or some simple feature that the importer currently does not support
  2. Check out the following libraries:
    • master branch of libwpd (git clone git://libwpd.git.sourceforge.net/gitroot/libwpd/libwpd)
    • STABLE-0-2-0 branch of libwpg (git clone -b STABLE-0-2-0 git://libwpg.git.sourceforge.net/gitroot/libwpg/libwpg)
    • master branch of libwps (git clone git://libwps.git.sourceforge.net/gitroot/libwps/libwps)
    • master branch of libvisio (git clone git://anongit.freedesktop.org/libreoffice/contrib/libvisio), and
    • master branch of libcdr (git clone git://anongit.freedesktop.org/libreoffice/libcdr)
  3. Build them as system libraries and install them in the same order.
  4. Then build LibreOffice according to these instructions. The important thing is to use those system libraries that you just built. To do so, be sure you added to the configure flags
    • --with-system-libwpd
    • --with-system-libwpg
    • --with-system-libwps
    • --with-system-libvisio
    • --with-system-libcdr

With this kind of build, you will be ready to make the most from your Brussels weekend. Nevetheless, you can drop around at our IRC channel #libreoffice-dev channel at irc.freenode.net for more information and ideas.

Starting to do it instead of planning to do it ...

... is the best way to enter the FOSS development. That is why your servant and Eilidh will be around to hold your hand with debugging and finding way to implement your favourite features. We will answer your questions about the library design. We will point you to the place in the code where your bug might linger. And for more complicated stuff, we will debug it with you.

Don't expect us to give you a fish, but we will certainly teach you how to catch it by yourself. And in the same token, you will become a contributor inside a community of smart people that is fun to hang and hack with.

See you in Brussels the 4th and 5th of February 2012.

a silhouette of a person's head and shoulders, used as a default avatar

Of tabs and spaces.

:set expandtab

Bazekiel 25:17 - The path of the righteous coder is beset on all sides by the stupidity of management and the tyranny of evil code. Blessed is he who, in the name of efficiency and good builds, migrates his work through the valley of changesets. For he is truly his project’s dev’er and the tester of new modules. And I will strike down upon thee with git blame and revert those who attempt to check in tabs to my projects. And you will know I am the Nerd when I post crap about you.

Not sure who wrote this little gem, paraphrasing a quote from Pulp Fiction which in fact is a paraphrased verse from the christian bible. I can’t recall who really posted this (“first”) but last time i saw it it was shared in #vim by Barry Arthur (bairui).

a silhouette of a person's head and shoulders, used as a default avatar

Philosophisches von zypper

Beim Versuch den Simfy Desktop Player zu installieren überraschte zypper gerade mit folgender Meldung:

2 neue Pakete zu installieren.
Gesamtgröße des Downloads: 22,4 MiB. Nach der Operation werden zusätzlich 47,5 MiB belegt.
Fortfahren? [j/n/?] (j): j
Ungültige Antwort 'j'. [j/n/?] (j): j

Bleibt die Frage, was er damit sagen wollte:

  • Diese Software willst du eigentlich gar nicht verwenden?
  • Heißt ja, wirklich immer ja?

a silhouette of a person's head and shoulders, used as a default avatar

Programando até o fim do mundo

Enfim achei um tempo no meio das férias p/ escrever algo no blog. Não tenho muitas novidades, mas estou terminando o gerador de roteiros e iniciando outro projeto em Django. Dessa vez criei vergonha na cara e fiz uma conta no Bitbucket (já tinha uma no GitHub por conta do curso do Henrique Bastos -- Welcome to the Django). Recomecei pela "bolhonésima" vez a estudar Java. Posso dizer que

the avatar of Andrew Wafaa

a silhouette of a person's head and shoulders, used as a default avatar

Mozilla based web authoring applications

I’m not a web designer really but I happen to be kind of responsible for packaging two web authoring applications in openSUSE which are SeaMonkey’s Composer and KompoZer. While the SeaMonkey integrated editor is somewhat limited (AFAIK) KompoZer (which was forked from Nvu at some point) has more advanced features. But KompoZer development seems to be pretty slow and it misses quite some of the new web stuff which is around nowadays. In addition the current version is BETA for quite some time now and seems to have a major issue in openSUSE 11.4 and 12.1.

Because of that I finally had a look at BlueGriffon (written by the same developer as the Netscape/Mozilla/SeaMonkey Composer and Nvu) as it seems to be in active development and supports quite some of the new HTML5 and CSS3 stuff and created an initial openSUSE package available in the mozilla OBS repository for testing now. There is also an openSUSE feature request to make it available.  If you are a web developer or already know BlueGriffon please give the package a try and send your feedback.

My plan for the openSUSE distribution would be to keep SeaMonkey’s Composer (basically anyway because it’s a part of SeaMonkey which is to stay), add BlueGriffon and drop KompoZer. If you see a reason why that might be a bad idea based on your experience as a web authoring application user please let me know.

Looking forward to your feedback!

a silhouette of a person's head and shoulders, used as a default avatar

30-and-1 Zsh tricks you may not know...

Or if you do.. Well done! you really know your way around obscure and vast manpages. :-)

Among the millions of zsh features i will be presenting you with some pretty useful ones for daily use.

  1. esc-.
    insert the last argument of the previous command in history, repeat to cycle through commands/arguments in history.
  2. esc-'
    quote the whole line. (for use with su -c, ssh et al).
  3. esc-q
    clear the current line and insert on next blank prompt (useful for inserting interim commands).
  4. !"
    got a command with many ! but too tired to escape all of them in order to not call upon history? just prefix it with a !” ( “ left intentionaly unclosed).
  5. =zsh
    expand to the full path in $PATH ( eq to which zsh ).
  6. !$
    use last command’s argument.
  7. !$:h
    use last command’s argument, strip a level, add more :h to traverse the levels.
  8. vi =(foo)
    process substitution, use vi to edit the output of foo.
  9. <file
    is like “more < file”.
  10. >file
    is like “cat > file”.
  11. >>file
    is like … you guessed it, “cat >> file”.
  12. !:t another
    history exp trick, this one strips the path in the previous command giving you the basename only.
  13. !-2\$:r
    talking about history lets get a little more complex. second to last command, first parameter without file extension.
  14. for i (*.c) { ... }
    pretty much self-explanatory, shorter way to write a for loop.
  15. vared
    edit variables from the comfort of your zsh prompt.
  16. hash -d name=path
    another awesome feature is the ability to have named directories. you create one like that and you can cd to it from anywhere using cd ~name.
  17. echo $foo:e
    get the extension of $foo (the opposite of :r).
  18. repeat n
    run a command n times.
  19. alias -s tex=vim
    now running somefile.tex in zsh will open somefile.tex with vim.
  20. tetris
    all work and no play makes jack a dull boy! thus zsh has a tetris mode to help you relax at times. just load the module and assign it to a key or something!
  21. zftp
    when dealing with a lot of ftp stuff, this module can save you hours by automating the process through shell scripts.
  22. ^r
    search history by greping the history file, ( can be “/” if using vi input mode).
  23. ^a
    go to the beginning of line.
  24. ^e
    same for the end of it.
  25. zmv
    the Z shell Programmable rename/move .. a BEAST that with enough loving can trully perform miracles.
  26. zle
    the Z shell line editor .. another module that needs a book of its own.
  27. ls /u/s/d/m/e<tab>
    the shorter version for ls /usr/share/docs/mutt/examples
  28. you can setup directory specific configs for use with different projects, ref: mika’s conf on mika’s blog.
  29. ls -l *(.L-100)
    list all files in the current dir that are less than 100bytes in size (ignore directories).
  30. ls -l *(Lm+50)
    list all files and dirs in the current directory that are more than 50 Megabytes in size.

Bonus:
{% codeblock lang:sh %} kapow(){ touch ~/.pow/$1/tmp/restart.txt; if [ $? -eq 0 ]; then; echo “pow: restarting $1” ; fi } compctl -W ~/.pow -/ kapow {% endcodeblock %}

this gem from Christofer Sexton will let you quickly restart an app in pow.

a silhouette of a person's head and shoulders, used as a default avatar

Amazing Google Code-In


Happy new year my reader, I wish 2012 to be a successful year for everyone. After many days sick in bed today I finally managed to do some work and review two tasks I had on hold(sorry guys), later I realized that students had completed 21 out of 24 task I had and I found that really impressive. Most of the tasks I had as a mentor where video tasks and translation tasks, basically things that will help newbies (and not only) to learn and do things easier with openSUSE. To be honest I never thought GCI would go so well and produced so high quality products but I have to say that things have changed a lot since I was a student and this was not so long ago ;-) .

I started along with the other 2 Stathis (Iosifidis and Agrapidis a.k.a Diamond_gr and Efagra), as they are GCI mentors too, to review the results of the work we got from it as a local community and so far it is quite amazing. Given the fact that the next few months we will try and improve the Greek wiki of openSUSE the GCI was so far a great help. 

I really hope most of the students will stay around and continue the amazing work they do if not openSUSE in FLOSS generally.