Showing posts with label Portable Applications. Show all posts
Showing posts with label Portable Applications. Show all posts

Tuesday, August 28, 2012

PAL v2

Quick post. A user asked me to make PAL pass command line parameters to the executable that it executes portably and so I did. I also fixed a possible bug.

You can download PAL from here.

Monday, September 19, 2011

PAL on Fundry

I decided to give Fundry a try so I put PAL there



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)

It seems that the most popular article on this blog is "How to make portable applications" written back in 2007. Reading it again, I believe it is somewhat outdated and it covers mostly how to reduce the size of an app and not how to make it actually portable (meaning leaving no traces and carrying the registry settings along to other computers).
In this article I will include some more methods to make portable apps and I will also introduce PAL, the Portable Application Launcher: a small program I made to wrap applications and turn them into portable ones. Obviously everything here is for Windows users. Also do not forget that it's almost impossible to make an app portable if it uses its own drivers.

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 1: Plain old UPXing and manual file removal
This is the method I described in the older article. It will work with some programs, specifically those that don't use the registry to store settings or any directories like %appdata%. If you want to try this method, then the first thing you should do is install the program you want to make portable using the authors instructions and run/exit it at least once. Don't forget that if you install the 64bit version of an application, it will only work on 64bit Windows.
Now we should see whether your app stores anything in %appdata% (%appdata% is a directory in your hard drive where applications store files like save-games or settings files). My %appdata% is at C:\Users\Tritonio\AppData\Roaming. To see where is yours, press Win+R (Win is the Windows key on your keyboard) to bring up the Run dialog. Then type %appdata% and press enter. A folder should pop up. There you can find subfolders made by different programs that you have installed or ran in the past on your computer. If the program you are trying to make portable has a subfolder here, then you should probably skip this method. Don't forget that the program doesn't necessarily use its name for the subfolder, it could be its company's name for example, so look thoroughly!
After you've made sure that there is no subfolder there you should also take a look in the %localappdata% and %userprofile% folders, just like you did for %appdata%. Fewer applications store data there usually, but you shouldn't risk it, so please check those places thoroughly. Again, if you find a subfolder there, then this method is not for you.
Now you have to make sure that the app doesn't store anything in the registry. Again bring up the Run dialog by pressing Win+R and then type regedit and press enter to open the registry editor. There, navigate to HKEY_CURRENT_USER\Software and then to HKEY_LOCAL_MACHINE\SOFTWARE and look for any subfolder that could belong to the program. If you find one, then your program stores settings in the registry and this method won't work.
Now that you've made sure there are no stray settings you can start packing your application. Go to program files (I guess that's where you installed it) and find the folder that contains it. If you are on a 64bit OS, then you should probably look at c:\Program Files (x86). After you find that directory, copy it somewhere (like a flash drive) and take that copy to a different computer (it could be a virtual machine) with the same OS as you computer.
On the second computer run the main executable. It could complain about dll's missing. If that's the case, then search for them in your first computer (Where could help) and copy them right next to the main executable of the program. You might need to do this many times (bringing the flash drive back and forth) so using Dropbox to sync those files easily would be a good idea.
After the program stop complaining about missing files you are pretty much finished. Now you will just have to compress every executable in it. I suggest you use ArcThemAll for that. Install it, run it, go to settings, UPX tab, select LZMA and click OK. Then drag and drop the whole copied folder on ArcThemAll main window. After it adds all files in the list, select UPX from the bottom left drop-down list, click Extract and then START. This will decompress all executables in case they were already compressed so when it finishes, click Compress and then START again to recompress everything using LZMA (which usually compresses better).
That's it. Your copy should contain a portable version of the app you wanted. If you fell lucky and want to further reduce the size of it, you can start erasing files from the copy. For example many apps keep different language files while you only need one. Still feeling lucky? Why don't you try removing unecessary resources form the executable files using Resource Hacker? You can even replace image resources with lower resolution ones to save a few more KB.  Just remember that Resource Hacker will not work on compressed executables so use ArcThemAll to extract everything first.

Method 2: Portable Application Launcher
If you are reading my blog you might have noticed some portable versions of some apps that I have made. I am using a "homemade" wrapper for them called PAL. I originally made it to pack Angry IP Scanner for personal usage (I haven't published it anywhere, yet) but it should work for many apps that use the registry to store settings or in some folder like %appdata%.
PAL uses an INI file, which you will have to manually edit. A typical file will look like this:
[PALOptions]
Executable="App\ares.exe"
RegistryPath="HKCU\Software\Ares"
FilesPath="%localappdata%\Ares"
The first line is always the same.
The second line is the main executable of your portable app. This is what PAL will execute. In this case it is called ares.exe and should be in a folder named App next to PAL's executable.
The third line is the registry path where the portable application is storing it's settings. When you exit the portable application, PAL will copy the settings in that registry path to a file called PortableRegistry.dat (placed right next to PAL's executable). When you start the portable app again (by launching PAL of course as it will act as a wrapper for it), PAL will copy the settings in PortableRegistry.dat back to the registry, so that the program won't know that they were even missing.
The fourth line is a path in the filesystem where the portable app stores any kind of files (for example savegames). Just like before PAL will move these files into a folder named \PortableData when you exit the portable app and back to the filesystem when you rerun it.

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:
  1. Get ThinApp. Get VirtualBox.
  2. Install VirtualBox.
  3. 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.
  4. Install the Guest Additions.
  5. Transfer ThinApp's setup files in the virtual machine. You can use the Shared Folders functionality to tranfer files into the VM and back.
  6. Install ThinApp.
  7. Take a snapshot of the virtual machine.
  8. Transfer the installer of the app you want to make portable to the virtual machine.
  9. Start ThinApp Setup Capture inside the virtual machine (it's somewhere in the start menu).
  10. Following the instructions there, ThinApp will create a snapshot of your OS inside the VM.
  11. When the snapshot is ready, ThinApp will tell you to install the application. Don't worry if the installation requires restarts.
  12. Complete the installation of the app
  13. At this point you may also customize the app if you want. Just run it and change any settings you want.
  14. 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.
  15. When you are asked for a Sandbox Location select USB Flash.
  16. When you are asked for compression choose Fast Compression.
  17. Leave other options to their defaults.
  18. Finally build the project by clicking Build Now.
  19. 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.
  20. Shutdown the virtual machine.
  21. 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.
ThinApp creates very compact portable apps that will leave no traces in the registry or the filesystem. But it will have problems creating portable apps that will work on different versions of Windows. If you only need to run your portable apps in Windows 7, then that's what you should install inside the virtual machine. If you want them to run on XP and 7, then your best bet is to install windows XP inside the virtual machine but it's possible that your application will only run on XP.
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.
  1. Get Cameyo. Get VirtualBox.
  2. Install VirtualBox.
  3. 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.
  4. Install the Guest Additions.
  5. Transfer Cameyo in the virtual machine. You can use the Shared Folders functionality to tranfer files into the VM and back.
  6. Take a snapshot of the virtual machine.
  7. Transfer the installer of the application you want to make portable in the virtual machine.
  8. Follow the steps shown in this video:
  9. 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.
Conclusion
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 Bitcoin Portable (defunct) both use modified versions of PAL. Method 3, using ThinApp, is the most expensive and I really don't see how someone could follow it without downloading a cracked ThinApp version. Method 4, using Mojopac, will not work on Windows 7 and looks more like a portable virtual machine rather than a way to make portable applications. Method 5, using Cameyo is a probably a very good bet for most applications and their online service will free you from the burden of setting up and running a virtual machine.

Still not satisfied? Take a look at this list in wikipedia.

Got questions? Just leave a comment.

Friday, April 1, 2011

BOINC Portable v2

I just updated BOINC Portable. I consider it out of beta although I didn't change any code in the launcher. So read the REAME.txt and you should be fine. The new versions contains the binaries of BOINC 6.10.60 32bit.

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

[edit] Don't download this version. TorChat is developed again!

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!

In Diablo2, to transfer items from one player to another you can either have a friend hold them for you or try dropping them on the ground, leave, and rejoin the server with the other player. But in order for the game room to stay open (and therefore the items to stay on the ground) you have to keep the game room open for about 10 minutes. I needed a simple program to count that 10 minutes so I made Timmy! (I like Southpark).

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



The Berkeley Open Infrastructure for Network Computing (BOINC) is a system that allows users to volunteer CPU time to various projects. The idle CPU time is used to help discover new drugs, search for extraterrestrial intelligence, solve mathematical problems, predict climate changes etc.

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:
  1. 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.
  2. 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!

PS: After I made my portable version I found another portable version made by another guy here.

PS2: You can find the source code for the launcher in the Data directory. It's an AutoIt3 script. Feel free to do whatever you like with it.

PS3: I forgot to add this to the readme:
You can find the source code for BOINC here.

PS4: I tested the other guy's portable version and it lack some features compared to my own. For example it doesn't seem to save the registry settings of BOINC Manager.

Tuesday, November 3, 2009

Ctrl+H

In Linux you can toggle the viewing of hidden files by pressing Ctrl+H. This doesn't happen in Windows where you have to take a small trip through the explorer menus and options to toggle this setting, accept the changes, se your hidden files and then go through the same trip to hide them again. Ctr+H comes to fill in this feature. Copy it to any folder and run it once. It will ask you if you want to register it so that it starts up with your system. After that it will popup a message over your clock telling you it's running. Its tray icon will soon dissapear but Ctrl+H is still running. Then you will be able to show or hide hidden files by pressing Ctrl+H just like on Linux. Click here to download Ctrl+H.

Friday, October 30, 2009

FrontPAQ v4

FrontPAQ is now better. Here is a list of changes:
  • 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)
FrontPAQ versions 2 and 3 were made by moisesmcardona and included different compression engines. You can also find version 5 on his site which uses more up-to-date compression engines. I will update FrontPAQ only when I make changes in the front end so you can find the latest versions either on moisesmcardona's site or you can get them from this great forum and drop the one you want to use in FrontPAQ's directory and it will use it instead of the embedded. On the forum you can also discuss about FrontPAQ in this thread.

To download FrontPAQ v4 click here.

Thursday, October 1, 2009

SFTM v2.0

Super Fuck This Mind (my Mastermind solver) has been upgraded! Parts of it have been rewritten and it includes 5 new features:

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

You know how much I love 7zip because of it's great compression ratios... What would you say for some even lower compression ratios? What about a way to estimate the Shannon entropy of your data?? Why not give PAQ8PX a try then??? Yeah of course I am exaggerating a bit but the PAQ8 compressor series will definitely give you the best lossless compression ratios you can currently get on Earth. Actually PAQ8PH series have won the Hutter prize twice! PAQ8PH contain dictionaries in them and aim at compressing text. For "everyday" usage the PAQ8PX is likely the best you can find out there. The only tiny winy drawback is that it is awfully slow: just a bit faster than a PSTN line on my CPU. In any case, be it practical or not, you should give PAQ8PX a try and I just made your life a bit easier by making a simple frontend called FrontPAQ that simplifies the compression level selection and also calculates the ETA, the compression speed and some more things. FrontPAQ includes the latest version of PAQ8PX I could find (I found it in this post), is written in AutoIt \m/ so it is a standalone executable and is realeased under the GNU GPL v3. Here are some screenshots showing the whole process you have to follow in order to compress a directory:
(Don't worry, normally you will get more than 3.8KB/s)
So, go on and download FrontPAQ from here.

Saturday, August 29, 2009

OnTop v1.0 (and some news)

It's been 3 months since my last post. No, I haven't abandoned my blog, it's just that I'm working on other things too, mostly on anonymous networks like TOR's "Onionland" and Freenet. I also made and learned things that aren't meant to be on this blog (yet). For example I started writing a remote control application in Java (using the marvelous NetBeans IDE) along with a friend (DimBiC) so I also learned how to use SVN. At the same time I moved from Ubuntu to Windows 7 because I only have one laptop (unfortunately made by Sony) which refuses to run Freenet properly on Ubuntu and instead crashes overnight. By the way I am amazed by how nice Windows 7 is, it has nothing to do with Vista. But, still, I miss Ubuntu... Now that I work on Windows again I learned programming in AutoIt. What can I say? I love it... It's not meant for serious programming but writing programs in it is actually funny. AutoIt allows you to play with so many aspects of Windows so easily. It's an interpreter full of system functions ready to control, use, abuse, or expoit your (or someone else's) system! (and it creates standalone portable executables!) So here is what I and DimBiC (a friend of mine) just made: OnTop. A program that sits on your tray and toggles the always-on-top property of any window with just a keystroke (Win+Alt+T). With another keystroke (Win+Alt+Y) you can set the transparency for all inactive always-on-top windows. This is the first version so there might be some bugs which, at the time being (3:42am), I lack the mental clarity to detect and fix. To download OnTop click here. (AutoIt source code included of course...) PS: The cool Marvin icon was made by the guy here.

Tuesday, January 27, 2009

AskWise v1.1.0

I would like to test this version a bit more but it seems stable so I am releasing it. The new features, as found in the changelog are:

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

Lua 5.1.4 is out so I recompiled it with Dev-C++ to make the windows version a standalone EXE. Strangely enough, it became some KB larger than 5.1.3. Anyway here is the new Tiny Lua Distribution. (contains Linux and Windows interpreters)

Saturday, June 14, 2008

Hanoi Towers Solver

I just made a small program that solves, step by step, the Hanoi Towers puzzle for any number of disks. I though it's worth uploading it, so here it is. As always, it's a console application with nice (for my taste) ASCII graphics. It runs on both Linux and Windows as it is written in Lua. I included two Lua interpreters (for both OSes). To run it just drag and drop the .lua file on the interpreter. (after unzipping everything, of course). Here is screenshot: (When giving the number of disks remember that the total moves for the solution are 2^(number of disks)-1. And you will have to press as many Enters as the moves.)

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

This is just a bug fixing version. I still don't know how I managed to mess my previously working code up... DizzyDiff version 1.4.4 used a wrong file handle when searching inside textfiles resulting into wrong results and prematurely ending searches. Download the new version by clicking here.

Saturday, February 16, 2008

Tiny Lua Distribution

Lua 5.1.3 has been finally released. I downloaded the binaries from LuaBinaries only to discover that the Windows version has been compiled with Microsoft Visual C++. That means that one would now need to carry along three files instead of one: the lua interpreter, and lua51.dll and the runtime library for Visual C++ (msvcr80.dll)! I recompiled the source code of Lua with Dev-C++ and now only one file is needed, just like the Linux version! I also compressed the two versions with UPX so that each one of them is around 65KB. You can download these two tiny interpreters from here.

Popular Posts