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

Hmmm

anyway it works for MSYS :-p

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

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:
http://osspack32.googlecode.com/files/7zSDcon.sfx

the patched main.cpp of SFXsetup (CPP) and the example converted bat (my old app Cabit, a Cabinet archiver):
http://osspack32.googlecode.com/files/cabit.exe
it use config file:

;!@Install@!UTF-8!
RunProgram="/c cd /d %%W && %%T\\cabit.bat "
;!@InstallEnd@!

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

example:

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

'tu:m\u0259

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

tu.ma
[n] kutu (di kepala dsb)

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

(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.

Enjoy!

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:

Tuma_MinGW-0.7.exe

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).

http://osspack32.googlecode.com/files/zenity.exe (broken)
fixed package : zenity-3.6.0.7z
modified src: http://osspack32.googlecode.com/files/zenity-3.6.0_src.7z

notes:
- 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

Enjoy!

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

Edit:
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)

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