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

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.

Pencil project - Sketching and Prototyping with Firefox

pencil

A few years ago, me and four of my friends were doing an university project, which was basically a web portal. While designing our application we needed a tool for creating mock-ups and screen prototypes. There are a lot of options like Wireframe Sketcher, Cleverlance Petra, but finally we ended up with Axure RP. Now I’m not sure why, but at least we had the motivation to finish the prototype early (trial period was only 30 days :D).

Today, I was again looking for the alternatives and found - Pencil. No, I don’t mean the office aid, but the Pencil Project. It lacks some important features like creating hyper-links between the components and thus exporting to HTML pages, but these are planned and I can say that I really like this tool. And not to forget - it is open source! You can install it as a Firefox extension or download it as a standalone application. Unfortunately upstream tarball contains the whole XULRunner, so I decided to create a package for openSUSE. It is available from our Contrib repository and is only 330kB large! (Big thanks goes to Wolfgang Rosenauer for helping me to tame XULRunner.)

Pencil right now supports common shapes like rectangles or bitmaps, annotations, GTK widgets and Windows XP widgets. The widgets (or rather stencils) are simple SVG files, so if we help Duong Thanh An, the author, we might see Qt, iPhone or Yahoo stencils as a part of the Pencil in the future! Wouldn’t that be sweet? :)

Update: I just found Graffletopia - with hundreds of stencils (or so-called graffles) for Mac OS X tool OmniGraffle and some of them are really great. How about a converter ? :)