27 April 2010

Python in MinGW, a "FREE" purist attempt?

Ever since Python 2.5 bring msvcrt71.dll along its installer things are kind of inside M$ territory because that dll used to not bundled with Windows and distributing it means you (who compile) must legally own the product where that file came from aka MSVC++ 2003. With M$ releasing Express Edition (2005, 2008 and 2010) for free without particular restriction on its compiler (generally free compiler is restricted to provide Non-Commercial application only), this edition have rocketing MSVC as a build tool and has gaining more attention than MinGW (the open source alternative) for many open source project.

I have seen Python 2.6 being cross-compiled by opensuse in their repositories, the build system is fully automated (source is feed alongside patches) and updated at least every a couple of day (yes that's true). Though they don't provide static libraries and they also build the packages in more Linux-style in absolutely dynamic linking way of DLL. Which soon I realized will confused many Windows user who prefer more compact and portable binaries (by statically linking everything that possible). Directory structure also look ridiculous to Windows which never have the bin-etc-lib-share structure.

22 April 2010

Proisk.ru, The Hideous Internet

Does google always find what we want? almost..
Are you a leecher? or download mania? umm or are you a pirate?

If you haven't try http://proisk.ru, you should! :)

I'm a long time user of it, formerly I just want to find an old Mahabharata movie. Then, surprise! proisk.ru reveal to me a dozen of ftp sites (mostly russian) that you won't even found in google. Some of the sites are ftp only interface and some have http (website) interface at its IP address.

Interestingly, many are actually (or maybe) a private share (among people who knows the IP of course) but get spidered by proisk.ru. I even find one that once being unprotected ftp only site but later transformed into full fledged website and no longer accessible anonymously! thinking it like someone who have just prepared materials for a website but not yet published it to the world wild web.

18 April 2010

Porting MyPaint for Mac OSX

There is an attempt to port MyPaint for MacOSX in this forum. So far binary has been succesfully made, with some (or yet to be found) problems.

Today MyPaint team is looking for a Mac developer and/or packager. If you are interested in helping them, send an email to their mailing list use IRC (#mypaint @ irc.freenode.net). 

It will be a cool port! :)

Optimized Build GLib Gives Boost?

I've been optimizing some GTK-related library in my Gimpscape installer without having actually benchmarked them. Today I found interesting demo called "mv-scalability-demo" from goocanvas (canvas based on cairo) which really squeeze your CPU alot, the program draw hundred thousands of simple box with text inside it into ultra-huge canvas. Visually, nothing complex from its GUI though.

GLib is the underlying library of GTK and some other too, so its reasonable that optimizing it will enable other library to gain the benefit too. In my build I try to limit my setting as far as Pentium 3 compatible (mmx+sse enabled).

The result:
vanila glib binary :  4.6s
Os+p3(mtune) :  4s
O3+p3(mtune)+fastmath* :  3.5s
O2+mmx+sse :  3.2s
Os+mmx+sse :  3.4s
*) not significant
GLib version 2.23.5
CPU E2160 1.8Ghz OC'ed @ 3Ghz

Times are averaged from 3x benchmarks. Now something odd there!, I though that setting march/mtune as pentium3 is the same as add mmmx + msse yet its yield strikingly different. O3 is considered to be the most intense optimisation but not safe, as in my test it crashed on Python GObject binding. The best and safest setting is O2 which give us not so large binary size yet very fast indeed (30% faster).

In this case optimizing GTK didn't give much effect probably due to demo's simple interface. Strangely enough, though goocanvas use cairo as rendering engine optimizing cairo also didn't give apparent advantage anyhow.

A Brief Test of GTK+ 2.20 for Windows

After bitter experience with 2.18, I check out gtk+ 2.20 which is just newly released. I really hope it fixed some apparent issue in 2.19 (I start to felt windows platform seems a bit neglected for some time).

Nah, from its changelog I have come to realize that this will be the same as 2.19! It is. Once I build it, I do quick test on MyPaint and GIMP. Here is some "highlights"

1.Native theme (wimp) still not working, though you could still use libwimp.dll from 2.16 if you want (will get screen corruption)
2. Peculiar interface behaviour still occured. For example, once you exploring sebmenu item (in menubar), the exposed submenu wont be disposed untill you click again from the parent menu. It used to disappear whenever you click on other window, click on titlebar or if you wish to quit the program or if you click anywhere outside the submenu infact.