Skip to main content

the avatar of James Willcox

Mango Lassi

The other day I looked into switching away from synergy to Mango Lassi. I only use it between two machines, so I figured my use case was simple enough that it should work at this stage. I was not disappointed. I was getting some very strange behavior with synergy and vmware, and Mango Lassi has none of that. Plus it gives an OSD telling you which machine the mouse/keyboard are being used on, which is a nice perk.

Anyway, I was so happy with it that I made packages for openSUSE. You can get it from my build service repository.

the avatar of Carlos Gonçalves

If I can't go to FOSDEM...

... than FOSDEM *MUST* come to me!

Dear FOSDEM 2008 attendees,

Unfortunately I couldn't go to FOSDEM 2008. I can't either find much photos available on the Internet nor videos at all. So... I'm begging you to upload some photos and videos from FOSDEM 2008, specially from the openSUSE booth and talks.


Best regards,
Carlos Gonçalves

To be continued...

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

Kubuntu from 7.04 to 7.10 by resizing virtual disk

Finally, I found some time to update my virtual machine, Kubuntu from Feisty Fawn to Gutsy Gibbon. I didn't before because I had to resize the virtual disk, the empty space didn't allow me to do the update. So, the necessary steps are here:

1. resize the virtual disk with:

vmware-vdiskmanager -t 1 -x 12GB KUbuntu.vmdk

the options for command are:
t 1 - growable virtual disk split in 2Gb files
x 12 -GB the new size for disk

2. Now we have a large virtual disk but we still need some work to have also a bigger disk in Kubuntu. So, change in bios, for virtual machine to boot from cd in order to resize also the ext3 partition. I used Knoppix for this task and Gparted as application.
3. Reboot and change in bios to boot from hdd.
4. Using Adept as is described on Kubuntu site do the update. After about 1 hour I had the last version of Kubuntu installed and a lot of free space.

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

YaST User Interface Library is now independent of YaST

Thanks to hard work of the YaST team hackers HuHa, Bubli, Ricardo and others, the YaST user interface library is now fully independent of the YaST infrastructure. What does it mean? In short, there is now a standalone C++ library that provides API independent of particular toolkit. The current backends are Qt, Gtk+ and ncurses, so the same code can have use the interface written in any of those.

The YaST UI library provides a very simple API to build rather complex but still consistent user interfaces. The particular implementation of the interface depends on the chosen backend - Qt, Gtk+ or ncurses. The primary target for this library is YaST, Yet Another Setup Tool developed for installation and configuration of SUSE products.

However, the library was very deeply tied to the rest of YaST infrastructure which made it nearly impossible to use it outside of YaST. Not anymore. Very soon, there will be packages available in openSUSE that provide the library independently of YaST, so any application that might need to provide both graphical as well as textual interface can easily do so. They provide also examples how to use the library from pure C++.

For future, I believe it makes sense to have a shiny new name for this library (YUI also means Yahoo UI) and I've tried to persuade the team on their IRC channel, but there were no good proposals for those. So, for now, we have the great functionality unleashed outside of YaST, with the old and pretty generic name YUI. Happy hacking!

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

First blog

OK, so this is my first blog post, so nothing really groundbreaking. I need to learn how this really works and hopefully to start posting something really interesting in a near future.

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

Lunch and dinner in Bremen

This weekend we are in Bremen, so here are some images with our Saturday dinner and Sunday lunch.

The dinner to Amico restaurant:

dsc00857.jpg

dsc00858.JPG

dsc00860.JPG

dsc00861.JPG

The lunch, Sunday, was to Sailor's Inn Restaurant:

dsc00926.JPG

dsc00928.JPG

I can say that the food was great ...

If you want to see some photos during our short visit in Bremen feel free to visit my flickr page.

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

eeeSUSE ;-)

I could start the hackweek project I _actually_ wanted to do only a little late, and felt really lucky to catch one of these little beasts at all:



This morning I had a USB Stick that didn't get much further than that:



... and a few hours later, 10.3 minimal graphics install with a few hand selected KDE packages:



I will fine tune the image and document what I did, and make it available in the wiki later. For now, thanks to all developers of KIWI and yast2-live-installer, and to the build service user appleonkel, who had all the drivers I needed already packaged -- you rock ;-)

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

"XML Namespaces are designed to support exactly this kind of thing.

"XML Namespaces are designed to support exactly this kind of thing." (Tim Bray)


We make really good progress on our interoperability work. In our current focus area of fields we extended the OpenOffice.org Writer core for better support of MS Word-like fields. The first feature which benefits from this work are “Input fields” which now support the long wanted "tabbing" feature.

However we want all fields to benefit from the new enhanced field core --- not only "Input fields". Other areas are e.g "Mail merge fields" etc.. Since all of this fields share the same generic mechanism we decided to add support for this generic MS Word-like fields in OpenOffice.org Writer. But by doing so we faced the problem that ODF is not supporting these kind of fields.

Interestingly Tim Bray (Director of Web Technologies at Sun Microsystems) suggested a solution already in November 2005: http://www.tbray.org/ongoing/When/200x/2005/11/27/Office-XML. Unsurprisingly he suggested XML namespaces to solve this problem.

Thats what we did. MS Word-like fields are now stored in the namespace

xmlns:field="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:field:1.0"

which clearly indicates the purpose: OOXML<->ODF interoperability.

The following RelaxNG fragment enhanced the current ODF specification with the new fields:
<define name="paragraph-content" combine="choice">
<choice>
<element name="field:fieldmark">
<attribute name="text:name">
<ref name="string"/>
</attribute>
<attribute name="field:type">
<ref name="namespacedToken"/>
</attribute>
<attribute name="field:locked">
<ref name="boolean"/>
</attribute>
<sequence>
<ref name="fieldmark-parameter"/>
<zeroOrMore>
<ref name="paragraph-content"/>
</zeroOrMore>
<sequence>
</element>
<element name="field:fieldmark-start">
<attribute name="text:name">
<ref name="string"/>
</attribute>
<attribute name="field:type">
<ref name="namespacedToken"/>
</attribute>
<attribute name="field:locked">
<ref name="boolean"/>
</attribute>
<ref name="fieldmark-parameter"/>
</element>
<element name="text:fieldmark-end">
</element>
</choice>
</define>


In general fieldmarks are very similar to bookmarks, except that they need to be properly nested. This is achieved by the fact, that a field:fieldmark-end does not have a "name" attribute, but instead closes the last opened field:fieldmark-start element.
The field:fieldmark element is a short form of field:fieldmark-start and field:fieldmark-end. It SHOULD preferably be written instead of start-/end marks.

Every fieldmark can have
  • a name (text:name); similar to the name of text:bookmark elements. They SHOULD be unique. (Preferably also with the bookmark names).
  • a type (field:type) which allows application to define the type of the fieldmark.
  • a sequence of associated (name, value) pair represented by the <field:param field:name=”string” field:value=”string”/>.
  • a locked attribute which specifies whether the user can edit the content or not.


A sample. Lets take a loog at the following sample docs:




The OOXML representation is:
  <w:p>
<w:r><w:t xml:space="preserve">Title: </w:t></w:r>
<w:bookmarkStart w:id="0" w:name="Text1"/>
<w:r>
<w:fldChar w:fldCharType="begin">
<w:ffData>
<w:name w:val="Text1"/>
<w:statusText w:type="text" w:val="Just a sample field."/>
<w:textInput/>
</w:ffData>
</w:fldChar>
<w:instrText xml:space="preserve"> FORMTEXT </w:instrText>
<w:fldChar w:fldCharType="separate"/>
<w:t xml:space="preserve">A sample input.</w:t>
<w:fldChar w:fldCharType="end"/>
</w:r>
<w:bookmarkEnd w:id="0"/>
</w:p>
<w:p>
<w:r><w:t xml:space="preserve">Description: </w:t></w:r>
<w:bookmarkStart w:id="1" w:name="Text2"/>
<w:r w:rsidR="00FA39C2">
<w:fldChar w:fldCharType="begin">
<w:ffData>
<w:name w:val="Text2"/>
<w:statusText w:type="text" w:val="Yet another sample field..."/>
<w:textInput/>
</w:ffData>
</w:fldChar>
<w:instrText xml:space="preserve"> FORMTEXT </w:instrText>
<w:fldChar w:fldCharType="separate"/>
<w:t>A sample input.</w:t>
</w:r>
</w:p>
<w:p>
<w:r><w:t>Second sample input paragraph.</w:t></w:r>
<w:r><w:fldChar w:fldCharType="end"/></w:r>
<w:bookmarkEnd w:id="1"/>
</w:p>
<w:bookmarkStart w:id="2" w:name="Check1"/>
<w:p>
<w:r>
<w:fldChar w:fldCharType="begin">
<w:ffData>
<w:name w:val="Check1"/>
<w:statusText w:type="text" w:val="A sample checkbox..."/>
<w:checkBox>
<w:checked/>
</w:checkBox>
</w:ffData>
</w:fldChar>
<w:instrText xml:space="preserve"> FORMCHECKBOX </w:instrText>
<w:fldChar w:fldCharType="end"/>
</w:r>
<w:bookmarkEnd w:id="2"/>
<w:r><w:t xml:space="preserve"> Make sense?</w:t></w:r>
</w:p>

The ODF+Enhancement representation is:
 
<text:p>Title: <field:fieldmark-start text:name="Text1" field:type="ecma.office-open-xml.field.FORMTEXT"><field:param field:name="Description" field:value="Just a sample field."/></field:fieldmark-start>A sample input.<field:fieldmark-end/></text:p>
<text:p>Description: <field:fieldmark-start text:name="Text2" field:type="ecma.office-open-xml.field.FORMTEXT"><field:param field:name="Description" field:value="Yet another sample field..."/></field:fieldmark-start>A sample input.</text:p>
<text:p>Second sample input paragraph.<field:fieldmark-end/></text:p>
<text:p><field:fieldmark text:name="Check1" field:type="ecma.office-open-xml.field.FORMCHECKBOX"><field:param field:name="Description" field:value="A sample checkbox..."/><field:param field:name="Result" field:value="1"/></field:fieldmark><text:s/>Make sense?</text:p>


Cool isn't it. Or with Tim's words: "Who could possibly be against it?"