31 December 2013

A Retrospect for NT 5

This year I've been using Windows 7 for most of the time and only few month ago I decided to back on XP :-) and now it feels like at home again! In those period I found lot of bugs and the quirk of NT 6 so what's the point of getting new OS if you still have bugs to deal? No apparent productivity increase? Yes W7 doing good job at caching (just about everything that matter cached) but it's also a natural step as system with bigger RAM become common nevertheless XP can do some of that too though not as far.

When I go back with XP actually I just upgraded my system, now with 2.9 Ghz CPU and 8GB of RAM, thats right 8GB RAM equipped with 32bit Windows! I took a little experiment with Win 2003 32bit Enterprise (yep this version support BIG RAM), lot of tweaks required to make it behave like XP such as enabling hardware acceleration, sound, etc next I install RRamdisk because some apps refuse to run without pagefile. I allocate 512MB for OB intel GMA and 5GB for rramdisk (4GB pagefile and 1GB for %TEMP%) and it still spare 2.5GB of free RAM. Everything looks great and snappy. With this system I could run 16bit apps directly (OK via ntvdm) or run 64bit apps via VirtualBox. The key is multitasking, if your apps use RAM efficienly and the OS use less memory then you gain productivity! A 32bit apps usually well designed to work with e.g 2GB limit (so unlike 64bit app no need to worry about an app will eat your entire RAM!) though a further tweaks such /3GB ratio or editbin's LAA flagging will provide another scenario.

How about XP64bit? it still basically a dual system so more RAM needed.

I think about next year when XP no longer supported, well first I'm pretty sure the guys at MSFN will make unofficial Rollup Update like they do for Windows 2000. They made it able (to some extent) run some modern apps especially those not relying too much on Win32 API which updated in every major point release and things like .NET/Java. Before April doom come, I will give a test on that Windows 2000 inside Vbox (internet connected) to prove the 0day exploit buzz considering this Windows receive less patches than XP. If it's true then lets try freeze it with EWF/SteadyState, anyway I believe there many people still using it for good reason.

Happy new year XP! you are longest supported PC OS ever!

03 December 2013

Gametop.com Games without Gametop.com Redirection

I like this game library site, there are dozen HQ free racing (my favorite genre) games  for download. As we know the games upon exiting will launch your browser pointing to their site. There seems to be no catch here, no suspicious parameter etc. it's simply "open this url" call, although a googling for privacy concern of these games return a few security paranoid's comments.

Having a look from dependency walker I believe ShellExecute is responsible for the call. I try hex it with another same-length function name of shell32.dll (e.g. CheckEscapes) and yeah that's it.


  1. Download and install free hex editor: WXHexeditor / HexEditor or HxD
    in this case I use HexEditor.
  2. Download the game, in this case Battle Rush.
  3. Browse battle rush executable, open it in HexEditor
  4. battle rush.exe
  5. In HexEditor pres Ctrl-H to bring Find and Replace dialog, find "ShellExecuteA" and for the replacement use "CheckEscapesA" click Replace All. You'll be asked to turn off read only mode, Click ok :
  6. Replace the function
  7. A confirmation of the function being replaced will shown like below. If not, it may be in another name e.g. "ShellExecuteW" -> "CheckEscapesW" just give it a try. You can now save the file. Try run it.
  8. Confirmation

05 November 2013

How to build PyGI AIO with Moluccas

Read about Moluccas first, its gcc has experimental CRT targeting for this guide.

MS CRT targeting initially laid by official mingw.org but still far incomplete. At first I thought it would be as easy as set cflag/cxxflag __MSVCRT_VERSION__=0x0900 and add -lmsvcr90 to GCC's specs file, well for a trivial program? yes it can but thats all it can get. As my experiment goes by there are many issues piling up (from incomplete msvcr implib to puzzled LFS/Y3K macros) that forcing me to modify mingw's crt and win32api files to allow a package completely linked to the new msvcrt dll. In the end I decided to add new GCC flags to simplify this: -vcr70 to -vcr110. The flags correspond msvcrt redist version bundled by each release of Visual C++. Even today it still far from complete.

What it has to do with this guide? there is an article wrote by win32 contributors of Gnome framework (or whatever you called it) that explain the concern. While my approach is far cry in comparison to use real thing (yeah I know MSVC has free express edition) it still useful in some cases at least for OSS zealot (even if they use Windoze).

This guide will focus on latest stable version of GTK-related (should be called GObject-related) libraries as this written. The main packages are Glib 2.38.1 + GTK 3.10.2 + GI 1.38.0 + PyGObject 3.10.1 and we are targeting python 3.3 (which use msvcr100.dll). I must tell you though, there is steady progress to support MSVC from upstream at least for major libraries including GI thingy.

If you don't need CRT targeting, you can use any GCC of your preference in moluccas by put it into moluccas root then switch over using setgcc [gcc folder name].

Download moluccas 0.8a, you need to download the following packages:

M08-ccomp.7z and newer gcc
  1. Saves all of them in the same folder,
  2. Run M08.exe and specify install path (it's a portable installation). Click OK. Correction: If you have conemu instance(s) already run you need to quit all before clicking OK, see Maximus comment.
  3. The installer dialog will vanish quickly to bootstrap conemu and continue with extraction. Due to the sheer number of files, the extraction (write to harddisk) will be way slower than what the CPU capable of.
  4. Once completed, run conemu.exe to start
  5. Moluccas will try to detect any presence of Visual C++ and try to integrate the latest version you have. During first run it also initialize Miktex installation
  6. In the end conemu panel will bring the <^> prompt
  7. Type spawn to start an instance of conemu. The panel will hide and still accessible via systray icon.

I will put latest patches and buildscript at https://github.com/tumagonx/pygi-mingw-patches

20 October 2013

PyGI 3.10 Windows

In my attempt to update MyPaint I need to update PyGI as well as GTK. During compiling there is worrying result the glib 2.38.1 failed on 7 tests! The tests a bit different from previous versions though (in he past usually it passed all tests). GTK 3.10.2 seems missing def files and the new one isn't look any stabler than 3.6, the usual crashes still there despite major win32 fixes in cairo 1.12.16. Lastly I can't use new bindings (gir/typelib) as it always throw gmem.c overflow error during initialize in addition to that I need to comment PollFD override chunk in gi\overrides\GLib.py. Anyhow the new generated girs will still need diff/merge from those linux version...

So here is the new binaries using older typelibs (from pygi aio 3.4.2). This means no new features at python level, plus bugfixes and probably new bugs in the runtime. Currently only bare gtk included if new typelibs become usable I will add others.

pygi-aio-3.10_win32.7z (python 2.6 unsupported)

EDIT: rev2 and further revisions goes here https://sourceforge.net/p/pygobjectwin32/files

07 September 2013

Resuming Download from Depositfiles

Don't know if someone has wrote this before (cause it's so simple). This weekend I desperately need several downloads from one of major filesharing survivor DepositFiles. The files are big and my ISP is slow (worse with shared IP). Don't want to mess with eternal redownload or mess around with onion network, I'm looking for a way to resume the download (without their downloader of course).

I found at least two ways: First to use free URL uploader service which offer resumable download or secondly using wget (or whatever downloader with resume ability).

We will need to get Depositfiles' actual link to do it, as we know the url is in this kind of form http://fileshare*depositfiles* we can use source view or built-in browser inspector to get it. Of course we should never click the download button.

Free URL uploader is probably quite risky business, I have seen this kind service very hard to survive in the past. This time I found http://d-h.st/, the site seems clean and modest but not without problem. As expected, the download is very unstable, keep broken every 1 MB. Don't worry wget will deal with it. Interestingly registration appear to be optional. Just upload and the resumable download link will be provided.

The second way need tool to kill specific TCP connection ala task manager or taskkill, I'm not aware of the availability of the tools under Windows out of box but 3rd party tools such Sysinternals TCPView or ProcessHacker will do.

Essentially what happened is when wget issue resume command the server will get "stuck" but only initially, this is when we need to close wget tcp connection. FYI, closing tcp connection is treated as disconnection from the server so wget will do retry instead of giving up. Upon retrying the "stuck" is "unlocked" and download become resumable.


21 August 2013

Weeks of Maps and TPX

I've been spending 2 weeks dealing with maps for several related projects, exploring several (new to me) better projections such Cahill-Keyes-Waterman and Fuller. Probably GIS guys already knew this stuff but in case anyone (newly) interested in maps I have some tips.

OK first what about google maps, google earth or wikimapia? well if you ever find a reason for not using online resources then read on.

Since many Earth datasets has fall under public use, there are many efforts to bring "open source" friendly yet highly detailed maps for mere mortals. Unless you're GIS guys you may not need SRTM, Landsat, VMAP, WVS, CDC's shapefiles and others as there are several ready to use (or easy to setup) maps for people with zero GIS experience.

Vector maps:
- Wikipedia users have made accessible vector maps here (the most detailed svg): http://commons.wikimedia.org/wiki/File:World98%2B.svg
- Duncan Webb's Cahill-Keyes World Map (draft) : http://www.genekeyes.com/DW/DW-1.html
- Gene Keyes's map sources also made available in OOo draw format (need GIS knowledge) : http://www.genekeyes.com/MEGAMAP-BETA-2/
- CIA's factbook (less detailed but up to date) : https://www.cia.gov/library/publications/download/‎

Raster maps (not ready to use but easy to setup) :
- http://www.paulillsley.com/gia/index.html

Among above vector maps, wikipedia map probably the one that readily editable. For inkscape users, 15MB file is quite common/average but 15MB of just polyline is really heavy one! I have been using Tpx for some months now and it fulfill my need of semi-technical drawing. When I try to open World98+ map above, I thought it will suffocated but Tpx handle this file with just 60MB of RAM. Trying to do this with inkscape will freeze your computer winamp's playback -_-! But then how to edit this file efficiently?

Well in Tpx the drawing area is "barely" movable and zoomable, redraw takes several seconds (at any zoom) but no redraw for undo though. So maybe with more powerful CPU it may do. But there is easier way. Since Tpx spend little memory, you don't need to worry of running out of memory (how convenient).

Tpx don't have layering system like inkscape nor understand xref like CAD. So we do chunked file management.

- break the groups

 - copy-paste each region into new session of Tpx

remember that copy-pasted chunk will preserve coordinate/location, so to merge back simply use copy paste operation again.

- the ideal editing workspace is at country/states level:

Lesson learned:

Good application is the one that have good combination of stability and features not bloatness, and part of the stability is smart memory management. Tpx may lack much of SVG features such as gradient ramp/mesh but talk about mission critical apps: "before you can edit you need to open it!". Sorry if I sounds like making a dig to inkscape, but damn they sure know how to make bloat. I want my old sodipodi back!

 Additional note: In case you wonder how the world98+.svg created from http://commons.wikimedia.org/wiki/File:World98.svg. The metadata says:

"Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 43363)"

yeah a real world app huh!?

19 July 2013

The Moluccas 0.8

Version 0.8 is here. I now called it Moluccas (not to be confused as some kind of mollusca).  It can be grabbed at https://sourceforge.net/projects/tumagcc/files/0.8/

The installer is M08.exe and you can pick up which 7z packages to install (categorized) but at least "base" is mandatory. Put all in the same folder and you're ready to install. There is brief overview of what's inside in each package at the link above. It still lack of documentation though only man included.

Enjoy my biggest OSS Collection with build environment!
All suggestions are welcome.

Main changelog:

- Fixes many typos and silly mistakes when tested in Windows 7
- All executable flagged with LAA
- Simplified startup: run conemu to start (old mode console, no longer supported though possible)
- Isolation: this version use ReactOS's cmd completely so it can be run independently of Windows' cmd.
- Installation speedup: Installer will use all cores (1 core/package)
- Explorer integration is disabled to provide zero host modification during startup (can be enabled by invoke molumenu). But many gui apps still write registry entries especially MFC based one.
- Fix integration with MSVS 2010 or (later?)
- Lots of manual tweaking in GUI apps to make it tight and blend in
- Small fixes in mingw headers and xtraposix libraries

06 July 2013

Preparing version 0.8

I knew it will be more belated than previous version, this is getting bigger... Tuma MinGW 0.8 will focus on integration fixes and aim to become more established collection. On gcc side there is very little changes and will be the last with 4.7.x series (barebone 4.8.1 is provided though), originally I want to bundle static gtk libraries, but decided that's not worthy enough (I will put it up separately).

This version will have serious GUI apps addition and I have evaluate dozens of FOSS each weekend to find apps that lean and fast (avoiding .net/java whenever possible). But they're just alternative workflow from commandline counterpart which has considerable advatage. I still not quite done with cleanup so I dumped those in extratool package.

Oh yeah I want to drop the name, I think it's not a problem since it's not popular at all anyway. Candidates: celebes, moluccas or rangrang (the last is meaningful cause I love ants, they are the oldest architect)

I hope could finish it on sunday tomorrow.

27 June 2013

Node.js with posix path support

It was Mat Sutcliffe who sent me a patch to compile node.js with mingw last weekend, if I recalled node.js used to be compilable with mingw via scons but apparently they switch to gyp entirely and mingw support became broken since then. I though it was a bit weird to sent it to me, but it turn out the process would involve msys python (needed by gyp to work properly).

The patch itself is a win-win solution as it will build native win32 binary but with support for posix path (MSYS and CYGWIN) via generic mount mechanism. He further explain why he choose mount over cygpath, that is because node.js operate asynchronously so by using mount path would settled once rather repeatedly as with cygpath.

This is binary of node.js 0.10.12 (built as ./configure --gdb --without-etw --without-perfctr)
original patch for mingw by Mat -> replace msysmnt with mount
modified patch for mingw-w64
python msys

The functionality is implemented in path.js which is bundled inside the executable. So actually you could modify (if you wish) that part (look for mingwToWindowsPath resolvedPath) with your favorite hex editor if you don't want to recompile. Just make sure you don't add and reduce the string block length. Or if you think mingw is such mundane task feel free to apply patch only to path.js and then compile it with M$VS as usual :-)

How to build with mingw:
1. extract the source file for node.js homepage
2. download python for msys and extract to msys installation
3. download one of appropriate patches (above) put in source tree
3. start mingw, navigate to source tree and apply patch
4. ./configure [your options] (make sure that python for msys is the active one)
5. python tools/gyp_node -f make
6. LINK=g++ make -C out BUILDTYPE=Release V=1

- I'm not sure about etw and perfctr whether those compilable with mingw but both don't compile out of box. 
- The download is contain official installation hierarchy with node.exe replaced. Since it's not installer (it make no sense anyway) I'll assume you know what to do next ;-)


16 June 2013

Pinpoint, another approach for presentation

Previously I've tried fluxus for live presentation using a basically game engine + scheme scripting. Due to unresolved issue and the need to learn new language, I'm giving up and looking for much simpler alternative despite I still consider fluxus as a novel apps with no equal alternative.

Pinpoint is small, light and opengl accelerated presentation tool with a kind of magicpoint approach (you write down tagged text representation). It's similar to OSG's Present3D which is between pinpoint and fluxus in term of features, but Present3D require you to write a not-that-readable XML file instead which is nasty without the help of WYSIWYG editor. Pinpoint is simple, it has no advanced timeline/layer like in office software and geared for quick and dirty presentation. Pinpoint also feature extendable transition FX system (powered by clutter) by writing your own FX via loadable json file.

Here you go:

Static build win32, patched to make it more standalone :-)
download: pinpoint and sample+patch

- to test just drag and drop introduction.pp to pinpoint.exe
- no video support (I'm still figuring out how to build gst-ffmpeg statically) seems played but not rendered by cluttersink
- image support: png, jpg, gif
- basic FX are bundled in the executable, if you make new fx put the json file alongside the executable
- export: pdf only
- pinpoint.exe has console window, pinpointw.exe doesn't
- if you want to compile it yourself, please use gnome libraries released circa 2011 and avoid cairo 1.12.x

see their homepage to learn how to write a presentation file https://live.gnome.org/Pinpoint

28 May 2013

CMD restriction bypass

Alright since I have skipped nearly the whole month, I need to buzz something at least. The tittle isn't that real, I mean I'm bored with black hack stuff at my age anyway, so this one is too obvious, legal and easy too.

How to bypass CMD restriction? Well, by using another compatible cmd of course, like the open source ReactOS (wine?) cmd.exe replacement from the ISO file (version 0.3.14 works with XP and 7). However the problem soon arise when COMSPEC get tangled in the way, for example standard system() call will still use system-wide COMSPEC (not session one). So things like for /f ... ('command') do ... wont work since it will ask blocked system's cmd.exe to launch something a.k.a %windir%\system32\cmd.exe /c bla bla.

I stumble on this case when I use my previous 7z-sfx wrapper for bat files. So I decide to put ReactOS's cmd.exe inside the sfx as workaround.

That also apply to regedit restriction which ReactOS also has the replacement, but of course there is no "such restriction" to just access registry whatsoever.

20 April 2013

Make your FFmpeg talk back

Yeah tonight I just realize ffplay can talk lol! ffplay can talk when it have flite capability (see my FFmpeg aoTuV build). It's quite old fashioned and amusing, in ffmpeg it can serve as either for auto narration or as text to speech synth.

Via ffplay just do this:
ffplay -f lavfi flite=text='Whats up Doc?'

Might can be used with zenity as text reader or reminder or whatever fun

SHC 3.8.9 MSYS port

To continue previous post, I actually port shc-3.8.9 quite long time ago for fun. But now I want to see if it can act as a wrapper for shellscript (bash/perl) under plain cmd box. And boom it failed :-))

SHC is actually an encryptor not compiler, with time trial feature (not tested). I don't quite remember anymore how I patched this little tool. But as usual MSYS is lacking this and that so it need bandage or cutoff :)

SHC however does need compiler (msysdev-gcc) to build its decryptor along the launcher itself. I have tested it under bash and it works fine. Under cmd box things are bit vague, it seems like:

decryptor -> look for shell (based on shebang?) -> found, sh launched -> ...WTF?... -> launch new cmd.exe session (again) instead


anyway it works for MSYS :-p

Download: http://osspack32.googlecode.com/files/shc-

Note make sure msysdev-gcc is ready and always use the -T option of shc

A Simple BAT to EXE Wrapper

I'm looking for a straightforward way to execute bat file inside bash and vice versa (execute shellscript in cmd box). At first I thinking about an encrypter that store content of batch file as string that later feed into shell invocation. But that's appear to be daunting to me right now :-D

I look around sourceforge and codeplex for existing solution, as expected there are several project based on 7z sfx but all of them (sorry if I missed) popped up new cmd window and can't work when called from PATH environment (aka different Curernt Directory).

So I decide to take 7zip SFX source code and apply some patches:

- To have 3 predefined environment variables replacement at RunProgram:
   %%T=temp directory where bat file extracted (supplied by oficial 7zip)
   %%S=path where sfx module located that is the exe file (similar to 7zsfxmod)
   %%W=path of current directory where sfx called (this is what I need)
- Assign CreateProcess's ApplicationName as COMSPEC environment
- Disabling progress bar, thus no need to set Progress="no"
- Redirect IO and prevent popped up windows as described in SO question here
- Finally, Change the sfx's submodule from gui to console using editbin or postw32 (of freepascal)

And it works :) (for my case)

Here you go:

the patched main.cpp of SFXsetup (CPP) and the example converted bat (my old app Cabit, a Cabinet archiver):
it use config file:

RunProgram="/c cd /d %%W && %%T\\cabit.bat "

Meaning after extraction run cabit.bat under the corrected working directory. Also note the extra space after the bat filename is important otherwise argument will not passed.
Then as usual do copy /b  7zSDcon.sfx+config.7z+cabit.7z cabit.exe

Unfortunately Igor Pavlov haven't publish the source code of his super small sfx (only 27kb) otherwise it would be neater.

I might gonna make sfxmaker or sort of with PE resource/icon insertion ability. Should be easy using wrc and linkres2exe tools.

07 April 2013

To collaborate Tuma MinGW

I'm reflecting on Tuma MinGW future at the moment. I could push another point release for sure, but unlikely reach 1.0 milestone. Few weeks ago a developer offer me a help to turn Tuma MinGW into something like Gentoo, a self construct distro with fully automated updating/rebuild concept which I half heartedly had to reject as it will goes "by developer for developer" way. But the main reason is because I doubt its feasibility. There are many attempt with similar ideas in the past, but most went niche or failed. Me too want to go niche, making it console oriented distro (something that "nicely" oppose the Windows way).

The buildbot,  I used to make buildscript to compile stuff (still for some case) but after see how diverse is build systems under Windows, I'm quite overwhelmed.

My plan is if it goes 1.0 I want to put it like msysgit repo at github, rebranding it with new name (I call it cbonk, english: tadpole) and invite collaboration. But github only offer 1GB of realistic space. Sourceforge IMO is the best at hosting big files (even ISO files) and have rsync too. I once complain at git irc about how git doing initial clone by tarballing and fetch it in plain non-resumable and inefficient http download but they had no answer for that, quite a hell for people like me. Yesterday I tried this "Github for Windows" which turn out to be a "slow motion" application based on .NET which emptied my RAM after about 100 files of 10 MB commit. I'm thinking of distribute Tuma MinGW into several repos with one as base and the rest as module. Does this need a trick?

I realize that it's bad to have repo of binaries especially at this scale maybe I should packed each application as tarball and use spkg to install/remove this way it might fit to the 1GB barrier, or maybe just get rid several compilers? I still have several to do lists to be addressed for 0.8, mostly integration work, going further I want to pimp many things using zenity to make it much friendlier without going GUIsh. hmm... clueless

Another dropbox failed

Ah I'm not learning from past experience to stop using dropbox for crucial files in this blog, look now, many images are goner. >,<

Yeah I finally lose another dropbox account few days ago.

I really wish Google stop their menacing "chrome 'em all" campaign, first blogger's image uploader always fail under Opera browser (otherwise I'd not use dropbox), then translate.google.com behave infinite recursed iframe  under non-chrome browse, then they stop providing pr0n friendly google image too, ok the latter is irrelevant.

But dear Google, I'd never use your browser until it could run under Guest account (or much restricted one if any)! I'm a privacy freak, I'll eliminate all updater (*pointing at google and others) that try to run without my consent, I visit sites with multiple level of proxy (stupid government, they put most of global internet access redirected to Singapore) and I mostly browse in private mode with alias of course. Oh and I avoid "please invade my privacy by default" OS such as Windows 8.

Back to dropbox, I have made backup to several place although wont do it to all files. Sorry

02 April 2013

Stardict console native version

Console version of StarDict http://sdcv.sourceforge.net/

The application itself is quite old but still usable (suitable for non-unicode and non-html dicts). Here is single executable native version sdcv.exe


Enter word or phrase: tuma
Found 3 items, similar to tuma.
-->The CMU Pronouncing Dictionary


-->Kamus Besar Bahasa Indonesia, Edisi III (2005)

[n] kutu (di kepala dsb)

-->P\u0101li-English Dictionary (Pali Text Society)

(pron.–adj.) [most likely apostrophe form of \u0101tuma =att\u0101, Sk. \u0101tman self; cp. alsoSk. tman oneself. See Oldenberg, KZ. XXV.319. Less likely=Sk. tva one or the other (Kern, Toev. s.
 v.). Expl d) by Com. to A III.124 as esa.] oneself, himself, etc.; every or anybody (=quisque) ya\u1e43 tumo karissati tumo va tena paññ\u0101yissati (quid quisque faciat) Vin II.186=A III.124; Sn 890 (cp. \u0101tum\u0101na\u1e43 V.888), 908; Pv III.2 (4) (=att\u0101na\u1e43 PvA 181).

Enter word or phrase:

Download: http://osspack32.googlecode.com/files/sdcv.exe

you'll need to set environment variable STARDICT_DATA_DIR pointing to your dic folder (of Stardict) or use --data-dir option.


oh and to quit press Ctrl-d not the usual Ctrl-c

31 March 2013

Still playing AOM and never get bored

This long weekend I got a visit from my only sister and we going out a lot. After that I want to post about new chm books that I made from mirroring Mozilla's MDN and cppreference.com as well as some others but my mood went off after yet another bitter experience with stackoverflow, this time I try to answer (or to help) but a web whizkid playing words with me and I lose. I think for a while and baffled... wow it's hard to give a help (the "help" is there, but the "give" is denied) whatever, I learn my mistake. Anyway the book might handy for people with limited internet access like me, and will be part of my mingw distro. But instead of uploading it, I play AOM to kill some free time, playing god.

The game is from 2002, I played it for the first in mid-2003 in my freshman year at college. That's a decade! I'm not really a gamer though, but I will play another if one release something like AOM (with deep customization mod), anyone know?. AOM is cool, I mod around  the game a lot and that amplify the "playing god" aspect. Such as create a super-blessed force vs 6 AI players in titan level or just challenge the AI with tricky map, ok the AI is not that great (for today standard). Also AOM teach history (of myth) too, would great is there is at least 8 Civilizations, beside the existing three (excluding the ridiculous atlantis), add one from one of many african (not egypt) civilization, Babylonia, India, Chinese (Japan also share a lot similarities) and one of native american. Those sure have good myth creatures to play :) hmmm the gods vs gods or add a robotic civilization so it will be the gods vs machine. lol

13 March 2013

Uploaded finally...

At last after more than 24 hours, rsync does its job flawlessly, I wonder why googlecode don't have this feature. Finally three months of uncertainty have put my MinGW distro into version 0.7, tons of stuff are there and all of them 100% OSS, portable and mostly build as standalone exe. This is largest package I have ever made! phew...

I hope everything works out of box! Being thinking about its suitable usage: "A mini distro for flash drive / external HDD aimed for advanced users" sort of PortableApps platform but Command Line oriented, yes a distro because it encompass many purposes beyond a complete build environment. It include browser, spreadsheet, notepad, image/video editor, etc.

All of my experience with MinGW and my exploration of OSS to date is reflected in this download, also all that not covered by this blog and even many stuff that not yet uploaded at http://code.google.com/p/osspack32/ all should contained here:


Some of larger documentation such those in chm/info format will follow, right now man is there to help.

06 March 2013

List of UPX Illiterate AntiVirus

I want to make a black campaign and my target is some consistently ignorant AntiVirus makers.
Thanks to virustotal.com for make this painless

Simple case:
1. gplc.exe (gnu prolog) https://www.virustotal.com/en/file/9e2acb4176669e48f7a0aadd3fcbb39ade979b8843be87db9da5a42fe10ec290/analysis/1362534179/
2. pack gplc.exe with UPX https://www.virustotal.com/en/file/381976956f94d747407e9beaa9231dacdbd6bc19093621cc8058a3bbd09f3b06/analysis/1362534370/
3. unpack packed gplc.exe with UPX https://www.virustotal.com/en/file/86323543730fc67432854d6ff4eceaa6b0a8096befbce37fa6062d9e4450d4ff/analysis/1362534576/

The suspect file http://osspack32.googlecode.com/files/GPLC.7z

And the award goes to:

1. TheHacker
2. TrendMicro
3. TrendMicro-HouseCall

Now that's just a simple case, but if an executable involving networking functionality the analysis of our AV "champion" will goes into cosmic territory and hallucination... such pathetic and irresponsible (they will rely on user report) behavior should never exist in a software of AntiVirus caliber. More.. some big company make actually malware-behaving software and force AV maker to whitelist them as reported by nirsoft. But when false-positive involve open source technology it become ignorance

UPX itself is an open source software to compress executable.

So stay tuned with this page for most updated list of antivirus whose programmer can't read any single line of UPX source codez. ha ha

So what? Why just "don't use UPX" and that "UPX is useless, bla bla... anyway" ?
Well because we're human dude, and we fix our mistake !

27 February 2013

Zenity 3.6.0 Portable

In Windows we can use WSH to interact with console/batch processing task, or for simple case "net send" or "msg" will suffice. Then I found zenity, a modern version of cdialog which curses based.

This tool use GTK as its gui to bridge console I/O with modern dialog window for many purpose. Its template (glade ui) can be customized too. I found it a good match for bash though I haven't try it with batch cmd (I dont see a reason why it won't work).

Here a slightly modified build (make it more Windows way as usual).

modified src: http://osspack32.googlecode.com/files/zenity-3.6.0_src.7z

- consequently as this is static build, no locales/translation included (English only), but it's possible to add
- zenity.ui  is embedded in the executable, to override it put zenity.ui alongside zenity.exe (see source for zenity.ui file)
- icons are different from original version as I force it to be stocked


Guide/examples are here http://help.gnome.org/users/zenity/stable/index.html.en

Hmm I think, I have an example...
"runas" which allow to do "UAC" ala commandline usually assume you know the username of the admin account (as it don't ask you), making it uninteractive. With zenity we could do something like this:

for /f "usebackq" %s in (`zenity --entry --text="This operation need admin account, please enter username:" --hide-text`) do runas /env /noprofile /user:%s "notepad \"D:\dokumen\rahasia.txt\""
Assuming zenity.exe is avaliable in "PATH" such as C:\Windows, above example will popup for username albeit we will then need to type password from runas console, ha ha (for security reason I guess)

It turned out to be pointless to make it static build, it still need schema file and icon db for displaying file dialog :( sorry

16 February 2013

GTK 3.6.4 DevPack

This is actually just a re-post of PyGI AIO (see main page). Since building PyGI consequently need to build the whole things and that because PyGI have poor documentation (actually it means to be that way, so you're forced to read C documentation instead), so I build the important part of this, devhelp. Which make your life way easier (it's a kind of CHM in concept), then gedit (not my choice of editor though), then for po translation we need gtranslator too and of course glade! Yeah most are not available for Windows yet but now you could try it

There we go, a complete suite guys! BUT this of course really is PyGI oriented. a.k.a all runtime has been linked to msvcr90.dll using my mingw toolchain (special). Basically it will potentially crashed when mixed with generic dll (linked to msvcrt.dll) so you've been warned!, however it you use complete GTK c runtime package from OpenSuSe or Fedora it should work fine.

As usual this build, I think is the most feature complete yet smallest available on the net (OK that's a brave claim ha ha), no really it's (just as all of my build here, is extremely complete one). Ok maybe not smallest as possible cause I use dwarf2 gcc which have redundant debug sections than sjlj.

As you know GTK-3 is still not production ready (I even found 3.6 to be worse than 3.4 in some case). This however should not prevent you to give it a try :)

GI for windows itself is credit to Dieter Verfaillie for his yet uncommitted patch (more than a year ago) which still relevant today, although GIR generation remain unreliable and messy process under Windows. Also thanks to Helge too for pointing many issues.

http://code.google.com/p/osspack32/downloads/list (look for pygi-aio-3.4.2)

Overtime you will (i'm sure you will) encounter binding errors and stuff. You could fix it without having recompile everything. Just edit (say use gedit) the gir file (located in share\gir-1.0) save the edited gir alongside g-ir-compiler and invoke: "g-ir-compiler -o [binding-name].typelib [binding-name].gir" then copy the typelib into site-packages\gtk\lib\girepository-1.0 and overwrite. As a hint you could grab linux gir version and compare the error part.

I also have static build vala 0.18 to join the party though I don't remember anymore why I did that build:

Oh yeah I'm getting nearer to release the next Tuma MinGW, it should be the biggest toolchain available too.

10 February 2013

Three Console MIDI Players

This weekend topic is MIDI player, of course there are more than just three MIDI players :-p in the crowded Windows world even for OSS. But I will cover three players as representative of three common synths.

The first is GUS patches based synthesizer, for this one I choose wildmidi. GUS patches is a collection of individual instrument sound which each parameter/effect stored in configuration text file. I made a little modification based on version which make it less hardcoded and more portable as usual. So we have completely portable and small player (ok, player is small but patch vary).

Basically once we have a zipped patches follow these steps:

0. extract the patches :)
1. create share\wildmidi directory in the same place as wildmidi.exe
2. put all *.pat files into share\wildmidi above
3. copy its config file (usually *.cfg) in the same place as wildmidi.exe and rename to wildmidi.cfg
4. edit wilmidi.cfg above with notepad: put a line of dir before the first bank directive, if dir directive already exist and has value just remove its value (path).

downloads: portable wildmidi.exe (35 KB) and if you're interested, the modified sources

Next is SF2 (SoundFont 2) based synth which could be said as bundled version of GUS but more detailed (sometime a wave for a note sometime a wave for a range of notes). This may be good or bad, let say for editing individual pat is may simpler than having a dedicated SoundFont editor, but for distribution SF2 is handy and easy to setup. For this I choose fluidsynth which dedicated to be sf2 based player.

Fluidsynth itself is a bit complex, it include interactive console environment for many task, as a player (with focus for ease) this may be overkill. Fluidsynth seems not have option to load default sf2 file or sort of, so we may need create simple batch wrapper say fluidsynth.bat something like:

@%~dpn0.exe -i %~dpn0.sf2 %*

That is assuming you have soundfont named fluidsynth.sf2 at the same place as fluidsynth.exe

downloads: fluidsynth.exe (676 KB) and if you want to compile it yourself with all interfaces enabled, this patch may help

And the last one is player that use native synth, that is DirectX MS GS Wavetable Synth which use DLS bank (similar to SF2 in the way that it's a bundle). Well most audio players capable of playing MIDI usually use this method. To fit with previous choices is playsmf which use its own MIDI parser but with MS Synth as renderer. This tiny player of course doesn't need any setup or other dependencies, we could use file association or just drag and drop.

download: playsmf.exe (15 KB)

Obviously there is a worth mentioning player that try to do everything above and more (playing MOD, sort of bundled MIDI+Patches): timidity but I'm running out of time to build the latest version (2.14) which ask for fork doh. BTW my ffplay build (part of ffmpeg) is able to play MOD too.


we could use 7zip to open rpm or deb files from above links

06 February 2013

How to get recent usp10.dll for your aging XP

According to wikipedia article about Uniscribe http://en.wikipedia.org/wiki/Uniscribe you can get (as this written) the latest usp10.dll from Office 2010 (the last Office to support XP) and slightly updated version 1.626.7600.20796 from its SP1, but you could get it in easier way:

- Download full installer of PowerPoint Viewer and install it  ( see comment below )
- or download the smaller PowerPoint Viewer 2010 SP1 then open powerpointviewer2010sp1-kb2460050-x86-fullfile-en-us.exe with 7-zip -> double click ppviewersp1-en-us.msp -> double click PATCH_CAB -> extract USP10.DLL_0002 and rename to usp10.dll. Install the file manually, now that's tricky

29 January 2013

MyPaint and PyGI

Got several emails from mypaint users who want to know the progress of windows version. I have tidying up what I left last weekend. I hope you could participate as I lack of time nowadays.

Several days ago a user of gramps (gramps-project.org) put his interest on my PyGI build which motivated me to look at it again after I failed to get it work with mypaint. Last sunday I put new PyGI build which better than previous one (read the comments here), in short it's "somewhat" working but I still find many non-crashing errors and warnings when run Gramps 4.0a3 though. Later I tried it on mypaint and it started! but gave me loads of fatal error messages and crashes. This make me unmotivated again :(

The important thing with GTK 3.6.4 is pressure-sensitive tablet apparently working.

So what we got here?
GTK 3.14.8 = OK
GTK 3.10.x - 3.14.7 = completely broken (no pressure, no lag, just mouse-like) errr
GTK 3.8.x = laggy and imprecise  please compare with gtk 3.6?
GTK 3.6.x = somewhat OK
Reported working tablets = Mostly wacom tablets, Samsung ATIV SmartPC SPen, P-Active XPC-1910A LCD Tablet, Genius Mousepen, Monoprice (need latest driver, see Aroidzap's comment), LE1700 Motion Tablet
Known incompatible = Genius G-Pen

For those who want to use UC-Logic drivers see https://gna.org/bugs/?21864

note: use 7zip 9.x with lzma2 support to extract the archive

MyPaint 1.2.0 released https://github.com/mypaint/mypaint/releases/

mypaint-1.2.0b.7z (GTK 3.14.15 + Anti-Art's experimental brush settings + brushpack + dothiko enhancement, Dec 28, 2015)
mypaint-1.2.0a.7z (GTK 3.14.13 + Anti-Art's experimental brush settings + brushpack , July 3, 2015)
mypaint-1.1.1a.7z (GTK 3.14.9 + Anti-Art's experimental brush settings + brushpack , April 1, 2015)
mypaint-1.1.1a-debug_win32.7z  (GTK 3.14.8 debug, February 11, 2015)
mypaint-1.1.0+git-823aa882.7z (GTK 3.8.9, October 8, 2014)
mypaint-1.1.0+git-e06d414_rev2.7z (GTK 3.8.9, March 25, 2014)
mypaint-1.1.0+git-e06d414.7z (GTK 3.8.9, March 21, 2014)
mypaint.exe (GTK 3.6.4, December 14, 2013) Single exe, Can be manually associated wih ora, Missing icon fxed, Try tahoma font (unicode compatibility?), Enable lot more file formats to import (gdk-pixbuf testing)
mypaint-171113_3.7z (GTK 3.6.4, December 05, 2013) Try to optimize more
mypaint-171113_2.7z (GTK 3.10.4, November 17, 2013) Confirm that tablet doesn't work?
mypaint-171113.7z (GTK 3.8.6, November 17, 2013) MRU and lag workaround
mypaint-161113.7z (GTK 3.8.6, November 16, 2013)
mypaint-121013.7z (GTK 3.6.4, October 12, 2013)
mypaint_270113git_dbg_rev2.7z (old)

Please give comments at http://forum.intilinux.com/mypaint-general-discussion/mypaint-1-1-for-windows/

Some info that might be useful when reporting bugs:

lag+break bugreport (if you find something new please post at the bugtracker to let mypaint devs know)
zoom bug, currently unreported as this is a packaging issue (will be irrelevant)

mypaint 1.1.0+git
python 2.7.5
pygtk 2.24.0
pygobject 2.28.6
pycairo 1.10.0
psyco 2.0
numpy 1.8.0rc2
pygi/pygobject 3.4.2
gobject introspection 1.34.2
gtk+ 2.24.14
gtk+ 3.6.4
atk 2.6.0
cairo 1.12.10
pango 1.32.6
glib 2.38.1
gdk-pixbuf 2.26.4

Inside the 7zip file contains:
mypaint_gtk2.bat -> run mypaint in GTK2/PyGTK mode
mypaint_gtk2_debug.bat -> run mypaint in GTK2/PyGTK mode under GDB session
mypaint_gtk3.bat -> run mypaint in GTK3/PyGI mode
mypaint_gtk3_debug.bat -> run mypaint in GTK3/PyGI mode  under GDB session

How to help?
- Report your tablet name, pressure sensitivity status, not just "it works" or "it doesn't work" or "it slow". Read comments below here, someone may give direction which driver to download.
- If you're user who use both Linux and Windows, try GTK2 and GTK3 and tells mypaint's devs if you spot a misbehaving of Windows' version.
- Tell mypaint's devs your suggestion to make Windows' version better.

Enjoy and Thank You!
More info about participating MyPaint development can be found at http://mypaint.intilinux.com/?page_id=18

28 January 2013

Overhead! overhead

The next tuma mingw should be a big one, really... a bloated one! thanks to the fairly long period after 0.6x the last release, it's now really turned to a distro of console based apps inside ConEmu box. I got miktex and whatever tex (asymptote, dblatex, jade, etc) integrated, along with dozens of additional tools. But I have big problem: clean-up

The cleanup turn out really overkill, I have done it almost every weekend since the end of december and still not finished yet. The total size expectedly grow almost exponentially. The number of apps? sheesh I've lost count of it, one thing for sure all of them are OSS and not even freeware can be included (maybe one grey area exception).

My msys folder has been accumulated to the level that executable lookup (those in PATH environment) is slowed down to a noticeable 1 second. But then wasn't it is the same condition for a fully installed cygwin too? dunno but it's really annoying.

I think it needs renaming too, something like Crossblaw: Console oRiented OSS between Linux and Windows. Afterall it's not about my gcc build anymore... Now now the name get bloated too lol

I hope it could benefit many Windows users (especially newbie) who want to taste the best that generic Linux has offered, powerful loads of console apps. Because I know that the GUI part of Linux is still no match for the undead XP. Vice versa of course.

Final problem: How I supposed to upload this monster (if it ever done)? too bad I'm living in a country with medieval internet infrastructure.

Gotta sleep now

06 January 2013

Wis rak iso maneh, mbobol indosatm2

Awet 26? Desember kae "bolonge" indosatm2 kethoke wis ditembel :) mbiyen (wis rong taun luwih) aku iso entuk akun broadband CDMA, IP publik (enak nggo P2P), lan quota unlimited gratis tjuk, lumayan tho cuma modal kertu perdana limang ewu thok iso ngenet taunan.

Jane aku jek ngarep-arep yen ki mung sementara, kan iso uga ono sing didandani apane ngono. Yo wis lah matur suwun kaliyan indosat aku wis pikantuk ilmu kathah saking internet. Donlod'ane wis tekan 200 DVD! Suwun sanget!

Saiki wis bener2 1 RUIM = 1 akun tenan. hehe, yen nyoba mbobol akun pascabayar bakal ntuk error 718 (biasane 691).

Indosat2 bolong koyo ngene kok kudu ngenteni telung taun (luwih ya'e) lagi diprenahke! network admine mangan gaji buta kwi, ha ha.

Ki aku lagi jajal smartfren, kethoke unlimited sing paling murah yo? namung sakdurunge, meh jajal nembak superwifi lokal ah.