openSUSE on ARM Update 310112
FOSDEM 2012 - How to make the best of it and become LibreOffice developer
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:
- Find a bug that is bothering you in the current Visio import filter, or some simple feature that the importer currently does not support
- 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)
- master branch of libwpd (
- Build them as system libraries and install them in the same order.
- 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.
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).
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?
- …
Programando até o fim do mundo
Yo Yo.
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!
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.
-
esc-.
insert the last argument of the previous command in history, repeat to cycle through commands/arguments in history. -
esc-'
quote the whole line. (for use with su -c, ssh et al). -
esc-q
clear the current line and insert on next blank prompt (useful for inserting interim commands). -
!"
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). -
=zsh
expand to the full path in $PATH ( eq towhich zsh). -
!$
use last command’s argument. -
!$:h
use last command’s argument, strip a level, add more :h to traverse the levels. -
vi =(foo)
process substitution, use vi to edit the output of foo. -
<file
is like “more < file”. -
>file
is like “cat > file”. -
>>file
is like … you guessed it, “cat >> file”. -
!:t another
history exp trick, this one strips the path in the previous command giving you the basename only. -
!-2\$:r
talking about history lets get a little more complex. second to last command, first parameter without file extension. -
for i (*.c) { ... }
pretty much self-explanatory, shorter way to write a for loop. -
vared
edit variables from the comfort of your zsh prompt. -
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. -
echo $foo:e
get the extension of $foo (the opposite of :r). -
repeat n
run a command n times. -
alias -s tex=vim
now running somefile.tex in zsh will open somefile.tex with vim. -
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! -
zftp
when dealing with a lot of ftp stuff, this module can save you hours by automating the process through shell scripts. -
^r
search history by greping the history file, ( can be “/” if using vi input mode). -
^a
go to the beginning of line. -
^e
same for the end of it. -
zmv
the Z shell Programmable rename/move .. a BEAST that with enough loving can trully perform miracles. -
zle
the Z shell line editor .. another module that needs a book of its own. - ls /u/s/d/m/e<tab>
the shorter version for ls /usr/share/docs/mutt/examples - you can setup directory specific configs for use with different projects, ref: mika’s conf on mika’s blog.
-
ls -l *(.L-100)
list all files in the current dir that are less than 100bytes in size (ignore directories). -
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.


