Pavol Rusnak #cypherpunk #hacker #openhw #privacy #bitcoin #newmediaart

Opera 10 with Opera Unite in openSUSE Factory

operaunite

Opera Software unveiled today the new Opera build with a technology called Opera Unite. I updated the package in openSUSE Factory Non-OSS repository, so you can try it out. Factory package can be installed on older openSUSE releases too, because they are not built against particular libraries.

You are probably wondering what exactly is Unite? Simply put, it is a cloud architecture, where cloud nodes are computers of the individual users or more specifically Opera instances running on them. More marketing-friendly citation from Unite FAQ says:

“Opera Unite is a form of collaboration technology that allows you to share data such as files or photos with other users, directly from your computer . You can also communicate directly with others by hosting chat sessions or posting notes. The technology behind Opera Unite uses a compact server inside the Opera desktop browser to share data and services. With Opera Unite, there is no need to waste time uploading content you want to share. You share the content directly from your computer rather than loading it and sharing it through a third-party server.”

Folks at Opera also created this instruction video to help you get started. Even more information can be found in an introduction from developers and Unite User Guide.

If you want to know how this technology works under the hood or you are willing to create plug-ins (or so called Unite Services) I recommend reading Developer’s Primer.

That’s it! Go ahead and try it out! Also let me know what you think of it in your comments … :-)

SVG-edit gains momentum

svg

Last week I announced cooperation with Narendra Sisodiya on a SVG-edit project. The inscrutable ways of twitter allowed Jeff Schiller, a co-chair of the W3C SVG Interest Group, to spot our efforts and later he contributed with various patches and implemented some new features like selecting and moving objects.

I was very surprised when I found out that Vidar Hokstad took trunk of SVG-edit (only two days after my blogpost!) and created a proof-of-concept gadget for Google Wave, the exactly same thing I would try to accomplish once the editor was more mature :-) . I asked Vidar if he’s not interested in moving his source into our SVN, he agreed and is adjusting the gadget to work with the latest version of the editor right now.

I’m very happy that both guys jumped on our development train and the project gained momentum and visibility. We’ve also decided to change the license from GPLv2 to Apache License 2.0 to allow even broader adoption. A discussion group and an IRC channel #svg-edit on irc.freenode.net have been created for the ones who are interested in this project as well.

PS: The gadget is probably not yet usable inside Google Wave, but we are working on it and we’ll keep you posted about our progress … The work would go definitively faster if we all had Wave Sandbox access (people at Google: hint, hint :-) ) and didn’t have to try everything only in Vidar’s Gadget API emulator.

SVG-edit, a web based SVG editor

Last weekend I was looking for a nice in-browser SVG editor. I found some alternatives, but no one was close to my ideals. :-) Most feature complete was SVG editor by Chris Peto, but it has complicated interface based on CGUI and is also pretty heavy.

Then I stumbled upon svg-edit by Narendra Sisodiya. It was rather raw and lots of features were missing, but then I sat down, started hacking and after few hours I created quite a long list of changes. When I sent them to Narendra, he was so kind that he made me an administrator of the project, so I was able to push all my changes into SVN trunk and to continue the work there.

Today I finished all changes I wanted to fix before the relase, so I can present you the 2.0 release of SVG-edit! You can try for yourself - this points to trunk development version, so it might get messy in time :)

svg-edit

During the development I was testing it in Firefox and Opera and I’m sure there will be some problems in other browsers. If you hit any, do not hesitate and write me an e-mail or even better use the issue tracker on the project site.

Also there are some features that are still missing, but they are planned (like adding text, more complicated shapes or selecting, moving, scaling, rotating objects) and I hope they will be added in the near future.

OSC under Windows and Mac OS X

osc-win

Few months ago I tried to use OSC - our command-line client to BuildService under Windows. I failed because of the hard-coded dependency on python-rpm module, which is (of course) not present in Python package for Windows.

Today I saw Feature #306354, so I decided to give it a try again. Fortunately, the recent code changes made this task a lot easier! :-) I still had to create some fixes and hacks, but they are now commited to OSC subversion and shouldn’t cause problems anymore. There are two ways how to use OSC in Windows:

  • download this archive (or click on the openSUSE/Windows icon above), unpack it and use osc.exe binary without installing the whole python distribution (this does not need administrator rights) (Obsolete! see Update #3 below)
  • install python and use osc directly from its sources (this needs administrator rights if the python is not installed)

Most of the features like checkouts, checkins, editing metadata should work, but there are some osc features that are unusuable (yet) under Windows:

  • osc build - local building of the packages
  • osc vc - automated editing of changes file - you have to change the changelogs manually

If you plan to use the binary package (option 1) you don’t need to read further. However, if you are interested in how I created the package or you want to use osc directly from its sources, keep reading!

Follow these steps if you want to build your own Windows build of osc:

  1. install the latest python (I used python-2.6.2.msi installer and kept the default path C:\Python26)
  2. install the latest py2exe (I used py2exe-0.6.9.win32-py2.6.exe, it should find your python distribution installed in previous step)
  3. install the latest subversion client (I used the build from sliksvn.com: Slik-Subversion-1.6.2-win32.msi)
  4. change into your working directory and checkout the latest osc from subversion: svn co https://forgesvn1.novell.com/svn/opensuse/trunk/buildservice/src/clientlib/python/osc
  5. change into osc directory
  6. run py2exe: C:\Python26\python.exe setup.py py2exe
  7. compress all files in directory dist into osc.zip and you are done! enjoy!

If you want to use osc directly from its sources, just follow the steps 1, 3, 4, 5 and run: C:\Python26\python.exe osc-wrapper.py

(You can save typing if you add path C:\Python26 into your %PATH% variable.

That’s it!

Update #1: I found out that something very similar could be acheived on Mac OS X using py2app and by calling python setup.py py2app. However, this is usually not needed, because Mac OS X already ships with python (2.4.2 in Tiger and 2.5.1 in Leopard if I recall correctly - these are older, but running osc with them should be just fine).

Update #2: Michael E. Brown and Shalonda Matthews from Dell reported two bugs in my build. They were caused by different behaviour of mmap.mmap function under Unix and Windows and the fact that function os.path.sametime isn’t available under Windows at all. Both problems are fixed in SVN now and I have also rebuild the osc.zip archive.

Update #3: The zip archive is not maintained. Build Service requires quite new build of osc, therefore I recommend creating your own executable by following the steps described above.

Update #4: The code has moved from Subversion to Gitorious. You need to install Git and run git clone git://gitorious.org/opensuse/osc.git instead of points #3 and #4.

Prototype Git backend for openSUSE BuildService

2009socwithlogo

I’m happy to announce that this year I’ll be mentoring GSoC project which will attempt to create an alternative source backend using git. Student implementing the idea is Peter Libič. I have created an openSUSE wiki page with the copy of the proposal and some useful links. Some of my colleagues (like Andreas Gruenbacher and Brandon Philips) are also interested in topic and already provided a valuable feedback. If you’d like to get involved, feel free to contact me, edit the project wiki page or join us on IRC channel #obs-git@irc.freenode.net.