Tuesday, August 28, 2012
PAL v2
You can download PAL from here.
Monday, September 19, 2011
PAL on Fundry
Powered by Fundry
This way you can fund new features that you want and I will not be able to withdraw the funds until users agree that I've implemented that feature. :-)
I wish Fundry supported Bitcoin payments too... :-/
Wednesday, April 27, 2011
How to create portable applications (also introducing PAL)
Legal stuff
Do not forget that it might be against the license terms of a program to fiddle with its installation. And keep in mind that redistributing some apps in portable form could be infringing copyrights and thus illegal. Blah blah blah you know this stuff... In order to be safe you either have to respect the law, or to make sure they won't get you...
Method 2: Portable Application Launcher
[PALOptions]
Executable="App\ares.exe"
RegistryPath="HKCU\Software\Ares"
FilesPath="%localappdata%\Ares"
So just like in the first method, install the program you want to make portable. Then download PAL from here, unzip it somewhere and copy the program's directory from the place it was installed right next to PAL.exe. You may rename that directory to App if you want (just like in the sample INI file above).
Then run and exit it once and start searching as described in the first method for places in the registry or in the filesystem where the installed program might be storing settings. Currently PAL can only handle one registry path and one filesystem path. This is adequate for most apps I've seen. If you app uses, for example, two folders in the filesystem to store settings, PAL will not be able to completely handle that app, meaning it will leave traces or not even work.
After finding where this app stores its settings, open and edit PAL.ini. Edit the Executable= line so that it points to the main executable of your application. The RegistryPath= line should point to the registry path where you application stores its settings. If your app doesn't use the registry just delete this line completelly. The FilesPath= should point to the place in the filesystem where your app stores files or settings. As you can see in the sample INI above, you may use enviroment variables like %appdata% etc. If your app doesn't use a directory in the filesystem to store data, then just delete this line completelly. When you are done editing it, save PAL.ini. You may also rename PAL.exe to whatever you want but do not rename PAL.ini.
Now take that portable version to another computer (again, it can be just a virtual machine) to test it by running PAL.exe.
In case you wondered what happens if you try to run the portable version of an app on a computer that already has that app installed, PAL can handle that just fine. It will first backup the local version settings to appropriate files, copy the portable settings to the registry and/or the filesystem (replacing the local settings), run the program and when the program exits it will save the settings back to the portable files and then bring back the old local settings that it has backed up.
The only thing that PAL might not be able to handle is a shutdown before closing the portable app. In cases like these it might not have time to cleanup the portable settings or bring back the local settings (if any) from the backup. If this happens to you just rerun PAL on the same computer and it will probably fix everything.
Keep in mind that PAL is still in beta so there might be bugs. So if you find any, leave a comment! Oh and since many people asked, you can change PAL's icon either by recompiling it with a different icon (AutoIt3 source code is included in the zipfile) or you could use ResHacker to change the icon.
Method 3: Using ThinApp
First of all ThinApp is proprietary software and is really, I mean REAAAAAAAALY, expensive. Like $5000-expensive... It wasn't made just for making portable apps but I bet more than 80% of the people that use it, have torrented a cracked version and are using it to make portable apps. There is a trial version too which you can get from their site. The general procedure is this:
- Get ThinApp. Get VirtualBox.
- Install VirtualBox.
- Create a new virtual machine and install a copy of Windows on it. Prefer the same version as the one you are running. For more detailed instruction look here.
- Install the Guest Additions.
- Transfer ThinApp's setup files in the virtual machine. You can use the Shared Folders functionality to tranfer files into the VM and back.
- Install ThinApp.
- Take a snapshot of the virtual machine.
- Transfer the installer of the app you want to make portable to the virtual machine.
- Start ThinApp Setup Capture inside the virtual machine (it's somewhere in the start menu).
- Following the instructions there, ThinApp will create a snapshot of your OS inside the VM.
- When the snapshot is ready, ThinApp will tell you to install the application. Don't worry if the installation requires restarts.
- Complete the installation of the app
- At this point you may also customize the app if you want. Just run it and change any settings you want.
- When the installation is finished open ThinApp's window and click next until you get to screen where it tells you to select the main data container. You should select the main executable of the application. For example if you were making VLC portable you will have to select vlc.exe. All captured data will be packed inside that executable. If you have checked any other applications in the list they will merelly be shortcuts to the main data container. For the inventory name use something containing the name and version of the app.
- When you are asked for a Sandbox Location select USB Flash.
- When you are asked for compression choose Fast Compression.
- Leave other options to their defaults.
- Finally build the project by clicking Build Now.
- Click Browser Project and navigate to the bin folder where you will find the portable executable(s). Transfer them back to your computer and run them there to test them.
- Shutdown the virtual machine.
- To make another application portable restore the saved snapshot of the virtual machine (which contained a clean state where only ThinApp was installed on the VM) and continue from step 8.
Oh and one more thing: Do not compress executables with UPX before packing them with ThinApp, that will break some apps (like 7zip).
Method 4: Using Mojopack
I recently found out Mojopac. It's an app that will allow you to carry around a virtual machine in your flash drive. You can install any application on your flash drive and it will run portably without affecting the host operating system. The major drawback is that it requires XP and doesn't yet support Vista or 7 so I won't write more about it because I currently use Windows 7. In addition to that, Mojopack doesn't actually create portable applications that can be distributed to other users, it just allows you to carry applications in a virtual container, essentially sandboxing them from the host OS.
Method 5: Using Cameyo
I also recently discovered Cameyo. It's a program that works like ThinApp. You'll have to install it on a virtual machine and then it will capture the installation of a program and turn it into a portable executable. It differs from Thinapp in some ways though.
First of all its free of charge!
Secondly you don't necessarily need to setup a virtual machine as they provide an online service (called Cameyo Cloud Packager) where you upload an installer and it automatically creates a virtual image for it. That online service has some limitations though. The installer of the program should be silent or at least have a command line option to make the installation silent. For many installers that option is -silent. Another limitation is that it will only allow you to use the online service for 6 portable apps every month.
Finally Cameyo first creates the portable executable and then you can customize its options while Thinapp required you to decide for all options before building the project to create the portable executables.
When you use the Cameyo Cloud Packager I suggest that you select a 32bit baseline environment and don't use the default which is a 64bit OS.
I tried the online with the setup of Image Analyzer and it recognized that the installer wasn't silent so it prompted me for command line options that would make it silent. I tried -silent and it worked. After some minutes an email arrived at my inbox with a link for the online image. For some reason the image was named image without having any extension at all. I renamed it to image.virtual.exe and ran it. It worked just fine. Then I edited with Cameyo and at the first tab of the package editor I selected Under the executable's directory in the Data storage setting so that the application actually stores the settings next to it. So if can't or don't want to use the online service then you'll have to use a virtual machine just like with Thinapp.
- Get Cameyo. Get VirtualBox.
- Install VirtualBox.
- Create a new virtual machine and install a copy of Windows on it. Prefer the same version as the one you are running. For more detailed instruction look here.
- Install the Guest Additions.
- Transfer Cameyo in the virtual machine. You can use the Shared Folders functionality to tranfer files into the VM and back.
- Take a snapshot of the virtual machine.
- Transfer the installer of the application you want to make portable in the virtual machine.
- Follow the steps shown in this video:
- To make another application portable restore the save snapshot of the virtual machine (which contained a clean state where only Thinapp was installed on the VM) and continue from step 7.
Method 1, the one I had already described in the past, will only work for a few programs. In fact I just rewrote about it because I didn't want this article to include anything less than the older one. Method 2 is something new and I've used it for quite a few apps. For example BOINC Portable and
Still not satisfied? Take a look at this list in wikipedia.
Got questions? Just leave a comment.
Friday, April 1, 2011
BOINC Portable v2
For more information read the previous post about BOINC Portable.
Get the new version from here.
Tuesday, February 1, 2011
Fuck SFTM
Sooooooooooo.... Ehem... It looks like the LuaJIT interpreter I have included in SFTM was infected. If you look at the comments on the initial post about SFTM, an anonymous user had warned me about a virus in the interpreter. Back then, only the heuristics of Avira was detecting that virus but even that user said that after an update Avira stopped detecting it. Other AV programs weren't detecting anything. Now Avira detects it again as TR/PSW.Nilage.hij. It looks like it's a hijacker stealing Lineage passwords (who plays Lineage on the official servers anyway?). I sent the file to VirusTotal and 18 AV programs are detecting it as a virus so it's official... FFS I've spread this file over many of my projects but thankfully all of them are private ones (except for SFTM obviously).
If you downloaded SFTM then scan your computer although it doesn't look like a spreading virus. I'm sorry for causing any trouble. I uploaded a new clean zipfile so you may download that one if you want. It will probably be faster too since I will inlclude a newer version of LuaJIT.
I still cannot remember if the included version is one that I've found on the web or if I had compiled it myself. I can't believe that I was running a virus since 2008-2009 since I had scanned my flash drive hundreds of times... I guess they just started detecting this variant of the virus (other variants existed long ago).
I've also made, and still not published, UFTM (Ultra Fuck This Mind). An optimized, and upgraded version of SFTM. The main change is that SFTM now will not try combinations completely randomly, instead it will actually think which combination is the best to play, based on the average information it expects to gain by playing that combination. The main disadvantage is that it's Ultra slow. I may upload it soon though.
Edit from 2021: Apparently this might have been yet another false positive but DYOR: https://www.solarstrike.net/phpBB3/viewtopic.php?t=1393
Friday, November 12, 2010
TORChat
TORChat is an anonymous and encrypted Instant Messenger made by Bernd Kreuß. It's open source, written in Python and it uses the hidden services provided by the TOR network (TOR is not spelled with capital letters nowadays but I prefer it that way to remind me that it is The Onion Router).
The bad thing is that TORChat development stopped before some years and the bundled TOR version works no more. I've packed a version of my own including the latest stable TOR build. Everything is packed with UPX too. You can download my binary version from here. I will try to keep it up to date as new TOR versions come out.
While there is no reason not to trust my version (just decompress my executables with UPX and you'll see they are the same ones with those distributed officially) you might also want to download another nicely packed version from this website.
Oh and my TORChat identity is: 5leg5qw726nluaef
Tuesday, October 26, 2010
Timmy!
Timmy! is a simple (and portable) countdown timer. You define the timeout and it sits in your tray until the expiration, when it pops up a message box. I won't write anything more since the program is fairly simple.
Download Timmy! from here. (AutoIt3 sources included)
Take a look at the screenshots:
Thursday, December 3, 2009
BOINC Portable Beta

Normally you install BOINC on your computer and then subscribe to different projects. Now you can run it from your USB flash stick or from your desktop without the need for an installation.
This is a beta version and I release it hopping to get some feedback.
You should be aware of the following problems:
- If you download a job on an Intel CPU and then continue running it on an AMD CPU (or perhaps on a different Intel CPU too) it might corrupt the results so try not to do this.
- Because of the limited space on flash drives some projects might reject you.
It would be a good idea to attach to a project and then edit the local preferences to make it write to the disk every ten minutes or even more and also not download data for many days ahead. Finally it would be better to use it more like an install-less version rather than a portable one.
Download BOINC Portable Beta from here and please leave comments!
Tuesday, November 3, 2009
Ctrl+H
Friday, October 30, 2009
FrontPAQ v4
- The progress bar moves smoothly and not only on the end of files.
- FrontPAQ doesn't show a folder selection dialog if you run it. Instead it displays how to use it which now has changed: you drag and drop things on it. That way you can have it on your Desktop or you can have a shortcut in the quick launch and use it easily by dragging directories or files on it.
- It will search the directory where it is stored for PAQ8P*.exe compressors and use the first one if available. If it finds none then it will temporarily export an embedded one in its directory. If its directory is read-only (eg CDROM) it will use the system temp instead.
- It is compatible with PAQ8PF too which is a much faster compressor with still great compression.
- It includes two embedded compressors: PAQ8PX v64 and PAQ8PF beta 1. You can select any of them when you select the level of compression.
- It now gives proper advice when the "tmpfile: access denied" error is encountered. (reboot or run as admin)
To download FrontPAQ v4 click here.
Thursday, October 1, 2009
SFTM v2.0
1. You can tell it to ignore combinations that contain a color more than once.
2. Color names can be easily customized.
3. You can now play your own moves instead of the suggestion that will always be given. That way you can continue old games by playing the old moves again.
4. The above settings can either be typed into SFTM whenever you run it or read from textfiles.
5. If it detects a mistake it will ask for the correct combination and spot the mistake you did.
I also included a benchmarking version too which will tell you how many moves are needed on average for different settings.
Here is a screenshot:

Don't forget to read the included README! It explains most things, I think!
You can download SFTM from here. Have fun cheating!
Friday, September 4, 2009
FrontPAQ
Saturday, August 29, 2009
OnTop v1.0 (and some news)
Tuesday, January 27, 2009
AskWise v1.1.0
v1.1.0: The stiffness has been removed. Some minor improvements on the prediction algorithm. The database format has also been changed. To upgrade a database to the new format, just remove completely its second line. Batch prediction feature added*. Nano is now the default external editor for Linux.
*The batch prediction feature will help you get lot's of predictions at once by inputting TSV files with queries into AskWise.
Also in the process of writing v1.1 I might have fixed some bugs that might have or might have not existed in the v1.0. :-)
For more info about AskWise you might want to read all posts about it.
The new version can be downloaded from here.
PS: Here is a small Lua Quine I made: s=[[ print("s=\[\["..s.."\]\]"..s) ]] print("s=\[\["..s.."\]\]"..s)
Quines are programs that output their source code when run. You can find Quines in many languages here.
Tuesday, November 25, 2008
AskWise v1.0.0
I finally finished rewriting AskWise and it think it's time to take it out of beta. It is a menu driver console application that using databases with sets of known numerical data, predicts missing values in other sets of numerical data. For example, one of the included databases has some sets of height, weight, age and sex (male=0 female=10). Given this database, AskWise can predict someones sex given his height, weight and age. In fact you can give it whatever values (of these four) you know for a person and it will try to predict the rest of them. This database is not useful but you can create your own databases and use them with AskWise.
That's the fourth time I program AskWise's algorithm. The first one was during my final year in school when me and a friend of mine were challenging each other to find functions with specific strange graphs. I though I should try to make a function that can easily be adapted to connect any number of points, so I made one. Later I realized that I could use this function as a quick and dirty way to predict missing values in a set so I wrote a program in PLua that used it for this purpose. I later rewrote it in Visual Basic improving the algorithm a little. Then I rewrote it in Lua, further improving the algorithm and now I wrote it again in Lua, using almost the same algorithm but with a better, menu driven UI.
The new version is released under the terms of the GNU/GPLv3, works on both Windows and Linux and can be found here.
I also wrote some documentation for it, where I try to explain both how to use AskWise and how it makes it's predictions. It was quite hard to do this in English and I believe that my syntax might be quite complex in some parts. If you believe that something is lacking clarity (I'm sure there are such parts) then, please, point it out to me.
PS: This is out of beta but there might still be bugs. If you find one, AskWise will create a small bug report on it's directory, I would be glad if you send it back to me. :-)
Sunday, September 14, 2008
Tiny Lua Distribution 5.1.4
Saturday, June 14, 2008
Hanoi Towers Solver
Tuesday, March 4, 2008
BMPGlyph

Do you know what is this? No, it's not some random picture. It's a stereogram, more specificaly it's a random dot, diverging, autostereogram. It's a 2D picture designed to trick the brain into believing that it is a 3D picture if viewed correctly.
There is at least one program for Linux that creates that kind of pictures but I decided to make my own algorithm/program which I called BMPGlyph and works on both Linux and Windows. I uploaded a beta version which you can download by clicking here. Just read the instructions in the zipfile.
I will also try to make an algorithm that extracts the heightmap from an autostereogram. It will be very helpful those people that cannot see autostereograms. :-)
Sunday, February 24, 2008
DizzyDiff v1.5.5
Saturday, February 16, 2008
Tiny Lua Distribution
Popular Posts
-
This article probably also applies to: VGN-FZ38M Yeap I bought it. I though that since it had an NVidia card and it was Centrino based etc i...
-
It seems that the most popular article on this blog is " How to make portable applications " written back in 2007. Reading it aga...
-
The other day, while browsing Wikipedia, I wondered how hard it must be to have weird fetishes without being able to share them with someone...