31 January 2012

ImageMagick Win32 Pack

This package contain numerous file format command-line converter (all are open source software). The main package is ImageMagick (I think it's more complete than official build) with dozens other additions. While most are image format conversion, I put several addition to handle other documents (DWG, PDF, DjVu, WordPerfect, OpenXML and ODF), Audio/Video through ffmpeg and several SWF tools.

There is some overlapping functionalities though, for.ex IM could convert pdf to svg however Poppler's pdftocairo produce much better svg result. This case we could always modify delegates.xml and make IM do what we want and even to handle what it can't.

To use them effectively we need to be accustomed with batch script and IM has valuable guide for it http://www.imagemagick.org/Usage

To install, extract the archive somewhere and add [somewhere]\bin to your PATH environment variable, then start making .bat files and put them in your SendTo folder so it can be accessed from explorer's context menu.

download (with HDRI and OpenMP enabled):
IM-6.7.3plus_win32.7z 23.6MB [patches]
MD5: e4daa031556eef7b6c1c5b8227b065c1

Updated 32bit/64bit build available in main page

notes:
- IM's convert.exe has been renamed to imconvert.exe to prevent name conflict with Windows' convert.exe
- All binaries should run without dependencies except for ODF<->OpenXML converter which need .NET framework
- Most of them are my personal build (optimized for Core2 CPU), few others are taken from official build

24 January 2012

A little program that print CPU class

Got this nice executable from GMP package that auto-generated during compilation. Only 39KB :-) but very useful if we just want to retrieve a processor class (instead of ID) from command line easily.

Supported x86 CPU family:
i686
GenuineIntel
pentium
pentiummmx
pentiumpro
pentium2
pentium3
pentiumm
core2
corei
atom
pentium4
AuthenticAMD
k5
k6
k62
k63
geode
athlon
athlon64
CyrixInstead
CentaurHauls
viac3
viac32
nano

A class is differentiated specific CPU features unlike "family" that call pentium pro - pentium 3 as i686 which is a bit vague.

http://dl.dropbox.com/u/33728474/cpuc.exe
execute without argument and it will print your CPU class name:

22 January 2012

Spidermonkey 1.8.5 MinGW

After tried Webkit's JSCore previously which is quite working despite unstable webkitgtk, I decide to compare it with Mozilla's offering: spidermonkey. Sadly neither it was new? (1.8.5) nor they provide win32 binary? Did they?

Anyway there is a VS build here www.kahusecurity.com/2010/spidermonkey-1-8-5-for-windows/
So why not MinGW?

Binaries and devel files (Mingw32 dwarf2 exceptions not MinGW-w64):
SpiderMonkey-1.8.5_mingw32.7z
The js.exe only depends on msvcrt.dll and libnspr4.dll, no WinSxS hell :-) Good, now I want to bind Gjs with python!

Build instructions:
Surprise, seems mozilla didn't care much about mingw (after seeking some pointers on their site)...
The source use autotooled configuration.. good :-) so does its dependencies: NSPR

1. To build it basically I just modify any line in configure that define CC/CXX as "cl" with gcc/g++ and remove all illegal options and flags such as -nologo and -mno-cygwin (GCC 4.6.2). Here is my configure for refenrence.

2. NSPR is easy to build: configure and make

3. For Spidermonkey be sure to define CC=gcc and CXX=g++ first, then I use: configure --with-nspr-prefix=[path to nspr] --with-windows-version=502 --disable-shared-js --enable-static

note:  --with-windows-version=502  needed to silence windres version error

4. Once completed, we will soon encounter infamous error WinMain thingy when compiling nsinstall, I already have this tool so I skip this and replace all $(INSTALL) occurrences with [path to nsinstall.exe]

5. Continuing, If we're unlucky there is an undeclared intptr_t in nanojit.h, just include wchar.h there

6. Build will resume smoothly, up to linking step where it complain invalid path (python not automatically turn "\" to "/"), So we have to edit libjs_static.a.fake file and replace all slashes

7. Continue make, and then make check which give me 2 errors: a math and a date test...

16 January 2012

PyGObject 3.0.3 MinGW

About a year ago I made a big but messy conservative PyGTK AIO now it's time for experimental stuff :-)
After testing GTK-3.3.6, I think they are much closer to a "usable" stage in win32 port. So why don't we try that in python...

Technically this pygobject-3.0.3 is more like pygi in the inside and IMO "PyGI" sounds cooler too ah well..

Here is win32 binary pygobject and pycairo for python 3.2
Downloads: http://opensourcepack.blogspot.com/p/pygobject-pygi-aio.html

Changelog:
24-01-12 Added WebkitGTK3 1.7.4 very unstable due to unstable Glib
20-01-12 Added WebkitGTK3 1.6.1 very unstable due to unstable Glib, added Clutter-1.8.2 and MX-1.4.1
17-01-12 Added GTK3 3.3.6 with broadway and Glade. to use broadway set environment variables: GDK_BACKEND=broadway and BROADWAY_DISPLAY=[some port number]

AIO runtimes for GI, GTK, Clutter/MX, Webkit, Gstreamer, GDA and Telepathy are planned later as well as supplementary apps like Glade-3 and Gtranslator.  And if I in mood maybe a win64 binary too, however installer are not planned (I'm tired of NSIS)

I already played with MX and whooah you should try this OpenGL (bitmap/css skinnable) GUI library! it's very cool, as sleek as QtQuick!

notes:
be warned that this is mingw binaries, I'll assume you know the potential issues. Last weekend I've tried to compile python 3.2 with WDK (the infamous msvcrt.dll linking trick) the whole night but given up after several unreferenced functions. OTOH tried to compile the whole GTK3 with mingw against msvcr90 but also failed.

11 January 2012

GTK 3.3.6 GDK Test

Today I give a try on latest gtk3 (3.3.6) which according its changelog have some win32 bugfixes.
During configure I also enable GDK broadway! with a little replacement: sys/socket.h -> winsock2.h in several c files and add missing brodway function exports in gdk.symbols (patch). Also don't forget to create etc\gtk-3.0\settings.ini and fill it with at least:
[Settings]
gtk-theme-name = MS-Windows


Sadly native theme still broken.. and redraw issue like in GTK 3.0 also prevails :-(
Goodness that pango's win32 module is back so I can give a screenshot :-)

Below is two instances of gtk3-demo, one running broadway inside webkitgtk 1.6.1 (require html5 websocket) browser (two windows with oversized "x" button) and other one is the ordinary win32 backend.


Both demonstrating pixbuf animation, however the one in webkit runs very slow and webkit process hog 50% CPU during the animation :-( anyway that's one cool remote display we got here!

edit:
http://mail.gnome.org/archives/gtk-devel-list/2011-April/msg00050.html explain the broadway win32 situation better.
Almost forgot, pygi (pygobject 3.0.3) also works too:
this was run on python 3.2

GTK3 adwaita theme engine (in gtk3-theme-standard package) can be used instead before windows native theme fixed.

10 January 2012

Indonesian Internet Social Culture Phenomenon

Before the booming of smartphone, here internet is mostly held by internet cafe, universities, workplace or subscribed home internet. Now everyone want a tablet or at least smartphone to replace their ordinary mobile phone and people start enjoying the "boxed" internet.

Boxed? the reason behind internet access mostly didn't came from true curiosity but rather a trend or prestige. Recently, I watch a commercial TV ads which illustrate how a rural newcomer always get everything for free in Jakarta because she have connections from facebook. Not surprising, here connection is too important, a mandatory survival asset for anyone. Which probably lead to common acceptance of nepotism and eventually corruption as a hobby.