Skip to main content

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

Microsoft (in)compatibility

Microsoft is known for introducing incompatibilities, whenever they release any updates or new version of their software. Latest in town is Microsoft Exchange 2007, which has changed a lot from its predecessor - MS Exchange 2003. MS Exchange 2007 has replaced the FE and BE server roles with something called CAS and Mailbox roles. CAS is more than its 2000/2003 counterpart, FE, where it handles both the business logic and renders OWA UI. With this change, MS Exchange 2007 introduced a new default OWA interface called "OWA" - that defines some new interface other than webDAV interface. This has currently broken Evolution Exchange connector from operating with MS Exchange 2007 servers.

Interesting and challenging days ahead!
the avatar of James Willcox

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

the avatar of James Willcox

Thoughts on Sincerity

Hi Steve,

Earlier today I read your “Thoughts on Music” post. Afterwards, my initial reaction was “That’s great! You get ’em Steve!”. It’s no secret that DRM is broken by design, but it’s nice to see one of the biggest users of it say so. However, I was quickly reminded by a colleague that Apple hardly seems interested in the “everything works with everything” utopia you describe. One specific example is the iTunes music sharing feature. Soon after it was released, some smart people figured out how it worked and developed software to be compatible with it. This let people access their iTunes-shared music from devices or operating systems that didn’t have iTunes. Soon after, Apple implemented a mechanism which prevented non-iTunes clients from doing this. Why? It wasn’t because of the record companies. The music purchased on the iTunes Music Store was still protected by FairPlay, so they had no reason to complain. The only conceivable reason you’d have for doing this is to force consumers into vendor lock in. Well, it didn’t work. Some more smart people defeated your mechanism and once again people were playing their iTunes-shared music using whatever software they liked best (be it iTunes or otherwise). But that didn’t stop Apple from re-implementing a similar protection scheme again in iTunes 7. This time you even knifed some business partners in the process. This kind of behavior isn’t at all congruent with what you’re saying in your post. Have you changed your mind now? Will the next iTunes release remove this restriction? If your “Thoughts on Music” was sincere, I’d expect so.

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

Proxy support in Evolution

One of the key features that is expected out of any application that communicates over a network is talking over a proxy connection. Evolution has been lacking this feature for quite some time and I implemented a quick support around SLED10 release with a limitation that "Authenticated Proxy" configurations are not supported. Now, its time to do something about it and I came up with something called a Network Preferences option in Evolution that looks similar to that of gnome-network-preferences capplet. I had to take this approach as a lot of Evolution-KDE users complained proxy not working as the respective gconf entries were missing.

Following is the screenshot of the Network preferences window in Evolution:

It uses libsoup for resolving hostnames and other SOCKADDR related processing.

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

Evolution Exchange Performance Series - Chapter 2 - Public Folder Loading

Around a month back started working on issues surrounding Exchange Public folders from subscribing to accessing/using them. A tracker bug was already present in BGO and the most famous among them are 268412, 347811 and 346728. As I just took over the responsibility of Evolution Exchange connector around August 2006 and then had a month-long sick leave because of Chikungunya, it was a slow start for me - reading through code, docs, MS articles, webDAV references etc. After a week of analysis, found out the issue in Setting up folder hierarchies - which is done during the startup and it goes into a recursive loop setting up hierarchies for all folders, including public folders. When an organization has quite a lot of nested-public-folders, Evolution will take a minimum of 30 mins to start.

The complete fix was done in two-phases.
Phase-1:
--------
Do not scan public-folders recursively during startup.
Phase-2:
--------
Load folders on demand. This enabled us to achieve the maximum performance during subscribing to Public folders.
Any performance work needs to provide supporting data and here it is: (My test server has close to 250 public folders with a maximum depth of 21 subfolders)
S.No Description of Test/task Patch
(Sec)
<=2.9.4
(Sec)
1 Configure an exchange account
Restart Evolution
7 65
2 Folder->Subscriptions
Selectthe configured Exchange account
Note time taken to show the“All Public Folders”
3 4
3 Expand “All PublicFolders”
Note time taken to display folder list
< 1 168
4 Time taken totraverse to maximum depth folder 8 330

Memory consumption:
Before expanding a folder (in the folder->subscriptions dialog)

Patch
(MB)
<=2.9.4
(MB)
Virtual Memory 152.8 154.6
RSS 13.4 15.1
Shared 9.1 9.2

After expanding a folder:

Patch
(MB)
<=2.9.4
(MB)
Virtual Memory 152.8 201.6
RSS 13.4 62
Shared 9.1 9.2

Actual memory consumption:

Patch
(MB)
<=2.9.4
(MB)
Virtual Memory 0 47
RSS 0 46.9
Shared 0 0

Note: Memory consumption data is taken using gnome-system-monitor and thus difference in Bytes are not shown above. Columns showing 0 would definitely have a difference at least in bytes.
Memory consumption to traverse to the maximum depth folder:

Patch
(MB)
<=2.9.4
(MB)
Virtual Memory 152.8 246.9
RSS 13.4 107.4
Shared 9.1 9.2

The fix also improved the overall folder loading performance.

the avatar of James Willcox

more vmx-manager stuff

I’m still working hard on vmx-manager, and I think it’s coming along pretty well. I spent a good chunk of last week writing my own code for creating VMware Virtual Disks. The VMDK specification is pretty straightforward, but implementing it proved to be more tedious than I expected (“the devil is in the details”). The end result seems to work pretty well, so now vmx-manager can create disks without relying on qemu or vmware-vdiskmanager. Soon I might try to add a couple more features in this area, such as the ability to grow an existing disk (which in theory should be easy — just add extents). I’ve made a screencast of the app as I put it through its paces, and you can find up-to-date screenshots here.

When I was writing the flat extent support (used for pre-allocated disks), I wanted to do something different than just writing a bunch of zeros out to a file (which is slow). It seemed to me that it should be possible to ask the filesystem to quickly give me a file of a specific size. I didn’t care what was in it, so it should be able to just find a bunch of unused sectors (or whatever) and mark them as mine, right? I was able to find no such feature in ext3 or Linux in general, and I guess the reason is probably due to security concerns. You obviously don’t want to give people a way to read deleted data. It would be nice, though, if the fs could mark the data in such a way that it would be zeros until you write to it. Maybe that’s just too expensive, I don’t know. Anyway, if anyone knows how I could accomplish such a thing, please let me know.

the avatar of Flavio Castelli

klaptopdaemon improvement

Last night I spent a couple of hours adding a missing feature to klaptopdaemon. Are you curious? keep reading… Yesterday I installed a new kde icon theme. It looked really nice but there was a problem: klaptopdaemon tray icon didn’t work. In fact the icon didn’t show the battery level, it was always at 0%. Quite annoying isn’t it? Since I liked the theme I decided to add a new option to klaptopdaemon: print the battery level percentage over the systray icon.

I’ve just contacted klaptopdaemon maintainers and I’m going to commit it into kde svn, so you’ll get everything into next klaptopdaemon release :)

the avatar of James Willcox

I'm in ur virtual machines, managing them

I’ve been working on an application recently which lets you create, configure, and run VMware virtual machines (it just forks out to VMware Player for the running part). It’s nearing usefulness now, so I thought I’d post some screenshots and stuff.


The main window


The configuration window

You need either qemu or vmware-vdiskmanager installed in order to create new hard disks, and it probably fails pretty badly currently if you don’t. If I get a chance, I may write my own stuff to create the hard disks (the format is a public spec, woo!). Anyway, you can get it from the vmx-manager module in gnome CVS.

the avatar of Flavio Castelli

HpCalc

HpCalc is an open-source multi-platform editor for the Hp 39G calculator. I was bored by the official “Applet Development kit”, a really old and ugly program written for Windows 3.1 (!!), so I decided to write something new (and maybe better).

I made this program just for fun and for learning something (it was the first time I used the Qt library), so don’t bother me if this isn’t fully comparable to Hp’s ADK.

I don’t use too much my calculator, the only thing I really needed was a decent note editor and this’s what HpCalc is going to be: an hp 39G note editor.

Actually the program is only an alpha version, but it’s quite usable for loading/editing/saving .not files.

As I said before I don’t use too much my calculator and this isn’t one of my primary interest, so I don’t know if I’ll ever upgrade it.

Code

HpCalc source code is released under GPL2 license, so you can grab it free from this github repository.