Thursday, December 8, 2011

TorJump v3

Continuing with my updates, TorJump has broken since the Tor Browser Bundle started using Aurora instead of Firefox (well Aurora is Firefox alpha actually). Anyway here the latest version of TorJump.

TorJump allows you to create custom launchers for onion sites (hidden sites in Tor's hidden service network). Recently that hidden network has got some attention along with Bitcoin because of SilkRoad, a hidden website selling illegal drugs etc. Generally Onionland (the hidden services network is called by some like that because domains in it end in .onion) is filled by child pornography and other objectionable material but occasionally you will find a few sites that are worthy. The trollery there has also moved to a whole new level but again, some people there are really worth talking to.

[EDIT] The source code is here. You could find it by clicking on the TorJump category below.

Wednesday, December 7, 2011

On intellectual property (also introducing bittit.info)

I hate almost all kinds of intellectual property. I find even the phrase "intellectual property" irrational, disgusting and childish. It reminds me of what kids do when they play: "Hey I though about being batman first, you can't be batman, it was my idea!". Owning an idea is absurd. You had an idea? Great. Use it. Keep it to yourself if you want. Or, why not, sell it. But once I understand it I don't see why it's more yours than mine. It's a part of me as much as it is a part of you. The whole human civilization has gone that far because people copied, spread and improved ideas of other people. Who are you to deny me the right to use an idea to make my life easier once I fully understand it?? The reason we have property is that if I take your car you will no longer have a car. But if I take your idea we can both use it freely so no harm is done. You'd say that harm is done actually because you could make money from it if you could enforce your patent. Well... who cares? The only reason you can now make money from an idea is the existence of an absurd law that allows you to make money from it. You can't make money from ideas in a free market. Because in a truly free market, such as the one that we will eventually reach, it will always be more expensive to enforce intellectual property laws than to break or circumvent them. People have two options:

  1. Pay millions for the enforcement of laws that can hardly be enforced unless they give up many fundamental rights. For example the internet should be surveiled, police should be able to raid servers, Tor/Freenet/I2P/Bitcoin should probably be banned and encryption should be regulated (which equally stupid to regulating whispering). In return, if you ever have such an awesome idea you might be able to sell the patent rights HOPING that law enforcement will work.
  2. Pay nothing for enforcement of stupid laws and have free access to every publicly known human idea or intellectual creation. You could still be able to sell ideas or intellectual creations in some cases but once it goes public, it's public.
I trully believe that any rational person would go for the second option. I think that the only reason we currently have intellectual property laws today is that governments have convinced people that it's for their own good or that they promote innovation. The truth is that people are innovative not because some law protects their intellectual creations but because that's the way their brain works. It is also true that currently mostly big corporations are profiting from patents and copyrights. Microsoft is currently making more money from Android (for which has written not a single line of code) than from Windows Mobile! Considering how big corps influence governments there is no wonder why governments favor copyrights and patents

If people realized that, they would probably preffer to stop paying for the enforcement of a practically unenforcable law and would start sharing their ideas for free, rather than pay for such laws hopping that some day they will have some awsome idea that will sell for millions IF these laws could be enforced. I don't believe people would wan't to give up their rights to whisper, encrypt, talk anonymously just to get this trivial benefit in exchange.

So if we had a totally free market somewhere, let's say in the internet or in an anonymous network like Tor. How would one be able to profit form his intellectual creations? Remember that you only control the use of your idea until you reveal it to someone else. If you trusted other people you could sell the idea to them under the terms of a contract that prohibits them from sharing that idea or creation (by creation I mean, song or movie or whatever) with other people but that wouldn't work because if one broke the contract the idea would go public and, without intellectual property laws everyone would be able to use it freely. So contracts wouldn't work if you can't 100% trust people. Even worse it wouldn't ever work in an anonymous market.

But you still control your creation until it gets to one person. So you could easily charge to release you creation for the first time. If possible you could even release your creation in steps getting paid for every bit you release. That would have the benefit that someone would be able to see what you created before paying the full amount you requested. You could even give a small part of your creation for free to start things up. That idea could at least work with music, pictures, videos, text, and, in some cases, programs. Currently I made, with help from a friend in the beggining, a site that allows you to do that with pictures. You can upload a photo, set a price for it and a starting resolution. For example let's say you got an amazing photo with a resolution of 5000x5000. You upload it and the site hosts a 100x100 version of this picture which is given for free to everyone. Now people are able to pay for the picture and the website automatically increases the resolution of the hosted picture so that everyone can get the bigger versions of the picture as payments are made for it. When the total price you set up has been payed, the picture will have reached 5000x5000 and everyone will have access to it. The site uses Bitcoins for payments and that means that the uploader receives payments directly (no fees) while the website watches for the total ammount deposited for each uploaded picture to increase the resolution accordingly. The site is free to use and you only pay to become a verified uploader (which also means that I'll have to know who you are).

The site is this: bittit.info
Υou can also access it via Tor here: ejz7kqoryhqwosbk.onion

bittit is a marketplace where copyright enforcement is irrelevant. Whether there are such laws or not, bittit works the same way. You get paid to release pictures on the public domain or you pay to make others release their pictures on the public domain. And the best part is that both can be done gradually and in a crowdsourced way.

One last thing. When I was making it I had to decide whether I should accept any kind of legal picture, including pornographic or nude pictures. Taking reddit's GoneWild into consideration I thought bittit could be useful for such pictures so I decided to alow them and put them in a separate NSFW category which is obviously not suitable for minors, or so the laws say.

Thursday, November 24, 2011

Star Wars sucks

I really don't get how people, and supposedly techies, like this movie... It sucks in every possible way. I can understand EVERY single scientific error in a movie. I forgive every thing like "sound in space" or "lasers traveling slower than the speed of light" even though I am a fan of hard sci-fi. What I cannot forgive is flawed logic, unless the movie was supposed to be surrealistic, but I suppose it was not. Lets see:

1. It's the future. Everybody uses laser guns but for some reason some people insist in using swords??? Seriously? Yeah I know what you will say: with the force they can be fast enough to block lasers with it. Well that very convenient... Why hasn't anybody made a laser gun with three barrels that form a triangle? That way the lightsaber could only block two out of three lasers! It's simple geometry. It's not even science. Yeah he could use a hand at the same time to block the third one you'll say... Well, make a laser gun with 6 barrels for fuck's sake and wipe those Jedi off the universe!
Imagine that the One Ring could melt in boiling water, and yet the fellowship is taking a trip to Mordor to destroy it. It's ridiculous and I couldn't stop thinking how ridiculous this is throughout the movies.

2. The force SO obviously exists and still nobody believes in it and everybody considers it an old religion. I mean, Vader is telekinetically chocking people, people that use swords survive in battle because of the force, the fucking emperor is using the force and still the people that have the technology and the knowledge to make, drive and maintain spaceships that can warp, somehow refuse to accept the force's existence. Are we fucking serious? Obviously, Lucas hated non-religious people and wanted to mock them by parallelizing religious people with the Jedi and non-religious people with all those folks in the movie that are stupid and ignorant enough not to see the obviously existing force.

To sum up my rant: the Star Wars universe is a complete joke. Lucas was probably a teen when he tried to make a universe with knights, swords, a wild-west-like society with warp drive technology, spaceship racing, and he obviously failed. We should be grateful that he didn't put dinosaur-shaped spaceships in it too.

PS: Star trek is way better.

PS2: The only things I liked in Star Wars were Vader and R2.

PS3: Yoda is a prick. Skywalker was sent to Yoda's planet for training. And Yoda not only didn't introduce himself but he also got disappointed because Skywalker actually wanted to train and not spend his time dinning with the first random green piece of shit that he found on the planet. This is called eagerness, not lack of patience, Lucas!

Tuesday, October 4, 2011

AdSense random(?) account terminations

I've got a friend who is the admin of a big unofficial university forum. Until now, the mods and admins were paying for the server expenses themselves but with the Greek crisis and the constantly growing userbase of the forum, that was no longer possible. So they decided to put some ads on the forum. They started with adf.ly but the  money was not that much (using banner ads for outgoing links) so they removed it. I suggested they go for AdSense since I was using on this blog for years with no problems (although I haven't yet reached the money needed for a postal check payment).

AdSense was making some good money for them. They were going to make more than the server costs and they would be able to keep the extra to cover future server expenses. Until one day the AdSense account was disabled for "suspicious clicks" or something like that.

And now I wonder if Google is trying to make money by randomly closing accounts, which I doubt since stopping cooperations like that will eventually make you loose money both for making a bad name for yourself and because closing an account means that you loose precious placements for your ad network. So what is going on? Do their algorithms suck? Are they giving false positives? Because I am 100% sure that my friend wasn't clicking on the links. I had stressed a million times that doing so would get his account banned and I got him scared enough to watch every click he made in the forums not to accidentally click an ad. He also told every moderator not to click on ads without a reason. To our knowledge there was a mod that was clicking on some ads because Google was showing ads that he considered really interesting so those were genuine clicks. Even if Google thought that those weren't genuine clicks, he was a moderator so he should look like a normal forum member as far as Google is concerned. He was not connected to the AdSense account in any way.
I a few words: no one had access to that Adsense account and the admin who had access never clicked on an ad.

After asking for account reopening they answered that the clicks were examined by both a program and a human and that future communications regarding the issue will be IGNORED. How rude! And how can a human give false positives? I can only suppose that someone, a moderator or a simple user, did a lot of clicks but since it wasn't the administrator, and since there was nothing in the forum asking people to click on the ads why are they closing down the account, practically stealing the 40 euros in the balance? If they doubted the legitimacy of some clicks they could simply not pay for those clicks instead, or at least give a warning with advice on the actions the admin should take! They behavior is practically driving people away!

No wonder why people all over the internet are complaining about absurd account terminations in AdSense and not in other ad networks. After reading all those complaints I removed AdSense from my blog and I replaced it with adf.ly. My friend is considering adBrite and infolinks. I still haven't tried either but I am waiting for approval on infolinks to test it out.

Oh and to give them some credibility, adf.ly actually paid my friend, so I think you can trust them.

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... :-/

Friday, August 26, 2011

Skype Home Page Killer

Are you annoyed by that retarded Skype Home Page that opens every time with the newest versions of Skype? Yeah me too... I've searched around and didn't find a way to disable it so I made a tiny script (two lines of AutoIt3 code) that starts up with your computer, waits for Skype to start and when the annoying page appears it closes it and terminates.

I made an installer for easy uninstallation when Microsoft (which bought Skype recently) decides to remove that annoying feature/bug. You can get HomeKiller from here. :-) (source code included, should be in installation directory)


Good riddance... Oh and it should work no matter what language you use for Skype!

PS: It seems I didn't search enough as there is another script that looks like it does the same thing already out there... Hehe...

Thursday, July 14, 2011

TorJump v2

Tor Browser Bundle version 1.3.25 was released and TorJump wasn't working with it correctly. I updated it to work with the new version. Previous version will display a notification about not being up to date when you try to set them up or use them for the first time after being set up. Old versions that have already been run at least once will not display a warning and will continue running with the old version of Tor Browser Bundle.

Download the new version from here. The source code is here.

Thursday, July 7, 2011

TorJump

Seeing more and more sites disappearing whether because some government took down their DNS records or arrested their owners only made me wonder why don't people use Tor's hidden services for objectionable websites (or even Freenet when possible). And the answer is obvious: they don't use them because most people don't even know about Tor (I'll start capitalizing that correctly from now on. I even started using KiB instead of KB) and very few people are actually willing to install Tor just to visit a website. So how do we make hidden services more accessible to everyone? By making TorJump, a one-click wrapper for Tor of course!

But first of all, what is Tor? Tor is an anonymity network. It allows people to make TCP connections (that's the most common protocol in the Internet, you use it when visiting any page) to any destination IP anonymously, hiding their true IP address from the websites they visit and not allowing their ISP to spy on their connections. So Tor is primarily meant to protect those that access publicly available information, from governments, mostly.

Secondly, what are hidden services? Tor, in an attempt to protect not only those accessing the information but also those that want to provide information, created a protocol to make hidden services (hidden websites in most cases) possible. Anyone, can now host a website (while hiding the server's IP address) that is not visible on the clearnet (the clearnet is the normal World Wide Web) and is only accessible via the Tor network. The hostnames of those sites aren't like what you've got used to. They are composed of 16 random alphanumerical characters (unique for each service/website) and have a .onion suffix. (like this: http://kpvz7ki2v5agwt35.onion which will lead you to the hidden wiki if you access it via Tor). The sum of all those hidden sites is sometimes called the Torland or the Onionland and those that frequent them or run them are sometimes called Torizens.

So, finally, what is TorJump? It's a wrapper for the Tor Browser Bundle. First you set it up to jump to a specific hidden site (like the hidden wiki) and then you share it with anyone you want, to help him/her easily access that hidden site. It will still be a single executable that you can rename and publish on the Internet. When someone runs it, it will start downloading the latest Tor Browser Bundle, extract it to a folder next to the executable and start it up by setting the homepage to the URL you specified when you set TorJump up. Additionally, two more tabs will open every time: the main TorProject page, which explains what is Tor, and a page with the latest news about TorJump.

TorJump can be downloaded from here and the AutoIt3 source code can be found here.

Any feature requests or ideas? Leave a comment. 

Monday, June 27, 2011

BTConvert v9

This is a minor update. Mt Gox reopened and changed its ticker format from which BTConvert got the USD/BTC rate. Version 9 supports the new format.

You can get it here.

Monday, May 30, 2011

War and War games

I've been told a few times that one cannot be against war (or the army) when he plays war games. That's not true. War games only simulate the funny and good parts of war. Yes there are some good things in war and conflict in general.

First of all they give you controlled violence. Most people (especially males) are inherently violent. Society makes you inhibit these instincts and empathy makes you realize and in some cases feel the pain you cause if you become uncontrollably violent. But because no instincts can be truly suppressed, without a cost, society provided, throughout history, ways to let the steam off: controlled wrestling, soccer (Laaaame! you call that violence?), and lately: war games.

Secondly, war is about cooperation. You obviously can't accomplish anything if people don't cooperate. Until now, it looks like the most efficient way to cooperate under stress, is centralized control via a pyramid scheme. People like cooperation whether in war or not, and war games provide that. But the best part about cooperation in war games compared to cooperation in real war is that in the game YOU get to choose your leaders, IF you want any at all, while in war they are forced upon you. I would hate having to follow orders from some drunk useless guy just because he happened to be over me in the hierarchy. On the contrary, I loved following, almost blindly, the orders of some amazingly organized squad leader in BF2142. If you get to choose the people that I will cooperate with, cooperation will always be fun, while in the army you just have no choice.

Accusing someone that liking war games is the same as liking war itself is no different from accusing someone of liking death because he laughs with black jokes, or being racist because he laughs with racist jokes. Or accusing an actor of being Nazi because he really wanted to play Adolph Hitler. A joke is joke, an act is an act, and a game is game. I (and most people) would OBVIOUSLY stop liking war games the minute death in them was made permanent or killings in them resulted in children left without a parent. Sane and educated gamers realize that death in real life is permanent and not fun. If some don't, well... as I said: "sane and educated gamers". You'd better start looking for some other problem in your society that's causing those minds to fail to realize why real war is bad. Let's say patriotism (especially if it's taught to children) or anything that makes people value someone else's life less than their own based on imposed differences like ethnicity or race.

Wednesday, May 25, 2011

BTConvert v8

There was a bug in the last few versions of BTConvert that caused it to believe that the last update was less than 5 minutes ago even though it wasn't. So it would ask for confirmation every time you clicked the manual update button. I was too bored to fix it so I removed that feature but added one more. To avoid closing and reopening the program (which means that you'd have to wait for the startup exchange rate update) BTConvert now will hide in the notification area of your tray and keep updating the rates in the background. So you may as well put it in your computer's startup!

Here is the new version.

Sunday, May 1, 2011

IP filter list v2

I've updated my IP filter list. For more info about the list read the original post.

The IP filter list can always be found here.

Wednesday, April 27, 2011

BTConvert v7

BTConvert, my currency converter that includes BTC in the available currencies, has reached version 7. This version was made with the help of Andrzej. It now supports many more currencies as you can see:


Specifically it supports:
  • Bitcoin
  • US dollar
  • Euro
  • Pound sterling
  • Australian dollar
  • Linden dollar (that's Second Life's currency)
  • Pecunix
  • Russian ruble
  • Canadian dollar
  • Polish złoty
A detailed changelog can be found inside the source code which is included in the zipfile.

Download BTConvert v7 from here.

Remember there is a forum thread about BTConvert here.

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.

Wednesday, April 13, 2011

Quick note: Why I use Firefox

Although Chrome is a very pretty and fast browser I still preffer Firefox for the following reasons: (obviously I will not try to explain why I don't use IE)
  1. Loading custom spell-checking dictionaries to Firefox allows me to spell-check both Greek and English at the same time, without even switching dictionaries (someone has already made a combined dictionary for that).
  2. There is a master password to protect the passwords in the password manager of Firefox. The Chrome guys for some reason refuse to implement that giving some ridiculous explanation on why they don't want to do it. (I can explain why it's ridiculous if someone disagrees)
    BTW that makes Firefox Portable a great choice in portable browsers.
  3. Firefox can change proxies easily while Chrome depends mostly on the system wide proxy settings (like IE) or some, not so practical, tricks.
  4. TorButton is only for Firefox.
  5. When I am making a webpage, the first browser on which it works as expected is Firefox. I've had some minor problems with Chrome when, for example, I was trying to implement a CSS sticky footer. Chrome would make the page a little bigger than the window thus showing a vertical scrollbar although there was no reason. Maybe it was some mistake I did but I had no problems in Firefox.
    For some reason Firefox, usually, is the one that shows things as I expected them to be rendered, despite Chrome being more standards compliant.
  6. Nothing compares to FireBug when you develop stuff... NOTHING.
  7. Although I still haven't done some serious tests, by my personal experience I find Firefox more responsive, compared to Chrome, when many tabs are open. But, usually, people don't work with 25+ tabs open at the same time like I do, so Chrome will be more responsive for normal usage.
Why not Opera? They stick to the standards more than anyone. These guys are good programmers, I can't deny that. But I really like having open source software when I'm using it to communicate with banks etc. Also some of the points above apply to Opera too.

Hey this note wasn't that quick after all...

Tuesday, April 12, 2011

IP filter for uTorrent

uTorrent and many other torrent clients and P2P programs support IP filters in Emule's ipfilter.dat format. That way you can protect yourself from some dishonest users that try either to spy on what you share, or just over-leech data to make seeders' ratios go up fast and make them leave the swarm thinking they gave what they took. Of course there is a chance that you are blocking honest users from downloading or uploading to you but I hope this isn't that common. There are some IP filter lists on the Internet already but I am combining specific parts of other lists using BlueTack's Blocklist Manager in order to make custom one that doesn't block LAN users etc. I will update the IP filter list every now and then (I don't know if I should post here about it every time it's updated... Should I?).

The IP filter list can always be found here.

Instruction on how to use it with uTorrent are inside the zipfile.

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.

Thursday, March 17, 2011

QRcoder

EDIT: Google stopped prividing this API so I've taken both the website and the Autoit version down as well since they don't function anymore. If someone is interested in them for some reason just contact me.

The post about the apps I use on my Android phone will delay some more. In fact I might not even finish writing it if I find an app that creates online lists with your installed apps and allows you to publish them. I actually think I had seen one such app. Anyway, today's menu includes an online bulk QR Code generator I just made. It's written in JavaScript so you can just download the webpage and host it anywhere you want even if you don't have PHP support on your server. Mine is hosted on my Dropbox public folder for example. Right click and "view source" to see how it works. It uses Google's Chart API and jQuery.


So here it is.

I also made an executable version in AutoIt3 but I don't see any reason to upload it yet, since the JavaScript version has the same basic features.

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, January 21, 2011

Left 4 Dead 2

I bought Left 4 Dead 2 during Steam's Xmass offers. I bought the "for four" pack for about 15 euros and gave the three copies to some friends. It turned out one of them hated zombies and never actually played it... >:-E

My first impressions were great. The game run smoothly on my computer (I had more FPS with it than with TF2) and it felt a lot like Alien Swarm, only harder. It was nice until I decided to play Versus.

Versus is a gamemode for 8 players. 4 of them play the survivors and the other 4 keep respawning as special infected (ie: bad-ass-zombies) trying to kill the former 4 guys (3 guys and 1 gal actually). I loved playing as a zombie, it was really fun even though I actually played less than the survivors since I spent quite some time waiting to respawn. What RUINED that game for me is that you can't stick in one team. After the survivors win the level or have their brains eaten, teams are switched. If there is a thing that can ruin a game for me is to be forced to change roles... I disliked it in Max Payne 2 when I suddenly had to play that chick, I disliked it in Halo 2 although I haven't played it myself, I disliked it in Zombie Panic! (and that is the reason I ALWAYS play as a zombie in Zombie Panic!). I don't have any problem seeing a story from different perspectives, I just want to play in ONE of them. It ruins my immersion if you suddenly force me to play something different. I'm trying to convince myself that I want to eat brains and 5 minutes later I have to protect my own brains??? What the fuck is that? I uninstalled L4D2 for that reason! I want to play as a zombie, I don't care about scores. I don't care about competition. Just find me 4 players that want to play the campaign as a survivor-only-team and let me eat their brains.

I might be overreacting but NO, I will not reinstall L4D until they put this gamemode in: Campaign with human opponents in the role of zombies. There are many people enjoying playing campains (including me) and there are many people (I guess) that would love to play freely as a zombie (including me again). So this gamemod is a win-win, they will all get satisfied. After all I am offering for free my intelligence to replace an artificial intelligence, and Valve doesn't want me too...

Thursday, January 20, 2011

Wildfire Adventures

I recently bought the HTC Wildfire and, once more, I managed to get into some trouble with it. Here is the whole story:

I bought the Wildfire from Plaisio for about 280 euros. I also got a Blu-ray Disc of Avatar but I have no player to watch it, hehe. Anyway before buying it I was between it, some of the small Xperias (like the X10 Mini or the X10 Mini Pro) and Samsung Galaxy 3. I didn't really like the UI of the Galaxy 3 (Sense is much better in my opinion compared to TouchWiz) and the Xperias had tiny, unremovable batteries while emitting radiation enough to boil an egg. So Wildfire, although lacking a GPU and having too few PPI was the way to go.

The first impression Android gave me were better than those of any OS I've ever worked with. I don't know if this is inherent in Android or it is the HTC Sense UI that made the difference but everything worked exactly the way I expected. I was feeling at home although it was the first day I had used Android. I've never felt like that with any other mobile OS, not with Symbian, not with Windows Mobile (well I've only used some old versions).

Wildfire's hardware is nice. The phone felt REALLY sturdy and I think it actually is tough! A friend dropped his Wildfire from the roof of a house onto solid marble and it only got a small dimple in one of it's corners! If any other mobile had taken that fall he would be collecting broken parts from all around. Well, the back cover and the battery obviously fell off the phone but nothing was broken or bent. The camera is a bit crappy but I really don't give a shit about it... :-) The speakers are pretty good (Nokia E71, my previous phone, was somewhat better in this area to be honest). The screen is better than those of my previous mobiles but still you can see the pixels (while in almost any other Android mobile you can't) which is something I already knew before buying Wildfire. The good thing about low resolutions is that AFAIK you have more spare CPU time to spend on the apps themselves. The touchscreen is great with the anti-fingerprint screen protector I use. The GPS has an extremely fast acquisition (it only takes a few seconds to get a GPS fix) probably because it downloads the ephemeris data through 3G. The GPS reception is also amazing (FFS it even worked inside my house!!!). (BTW E71's GPS was really bad)

I really wanted to use TOR on my mobile so I had to root the device. And so I did three days after buying it. The rooting went well and only took a few minutes (during which a program called unrevoked took care of everything automatically for me). I installed Orbot (that's TOR for Android) but I couldn't make it work. Transparent routing was definitely not working although Orbot used admin rights. Anyway I gave up and decided to wait for a new Orbot version that hopefully would fix the problem.

I also installed Layar which seemed really cool but for some reason I couldn't use it. Points seemed to jump around strangely and it turned out that my compass module was not working properly. I confirmed that with other applications too. For example I installed a compass application but it complained about strong magnetic fields. I tried to calibrate it and it started working perfectly, until I exited the compass app and rerun it... For some reason my compass refused to save the calibration data. Every time the device started using my compass it was useless. Even jumping to another app for 3 seconds and then back to a compass enabled app, it would go mad again.

I would have taken it straight to the shop for a replacement but two things stopped me. First, I had rooted the device and according to many users that had voided my warranty. Second, most friends told me that they wouldn't replace it with a new one under the DoA terms since the device wasn't actually dead. I should have tried it but I didn't and now I regret it.

I did a factory restore and the compass started working for about one or two days. After that it went mad again... I waited till the 2.2 upgrade was released and tried to upgrade the device (so that I could finally send it for service since the upgrade would hide the rooting and bring back my warranty) but the device refused to upgrade. It just showed an exclamation mark after a while.

The first error I had to overcome was that the phone though the upgrade was unsigned... I don't know why but, thankfully, the rooting process replaces your recovery partition (the one that handles the upgrades among other things) with ClockworkMod which has an option to ignore signature checks. But then the installation script run and emited an assertion error which roughly informed me that I didn't actually own a Wildfire... Soon I found out that the reason was that during the root process the misc partition of my phone somehow got a bit corrupted and now the upgrade wouldn't recognize my phone. Some "CID" value was not correct... I used adb to read the CID value from my phone and it was correct (it was one of the valid ones). I still don't know why the script failed to read it. Anyway the only way to install it was to open the official upgrade on my computer (which is a zip archive), find the installation script and remove all the failing assertions. So I did and then repacked my custom upgrade zip. I managed to install it (wow) but then realized that OTA upgrades (Over The Air: the phone downloads the upgrade over WiFi or 3G and upgrades itself without the need of a computer) are more like patches so my phone still had the unofficial recovery partition and although the system wasn't actually rooted anymore, the root manager application was still installed in the system partition (which meant it couldn't be uninstalled). I then found a RUU (ROM Upgrade Utility) and run it on my computer, that way the phone was like it just got out of the factory line, ready to be sent for service.

I brought it to Plaisio again but they told me it would take about a month for it to go to HTC and return. What could I do? I am still waiting for them to call... They probably sent it to Taiwan. :-) I just hope for their own good that they don't scratch my screen (although it has a screen protector) or the phone's body. I will post something when I get it back. Perhaps a list with my favorite android apps.

BTW you can find my custom ROM along with some very long troubleshooting conversations here.

Popular Posts