Tuesday, August 28, 2007

BitTorrent - why I won't use it.

BitTorrent is a file sharing protocol. It (like other protocols) uses cleverly the bandwidth of many users (that belong to what is called a "swarm") to deliver some data to everyone that is interested. Everyone is supposed to upload data to other users while downloading, thus reducing the costs for anyone that wants to distribute a large file to many users. To join a swarm and download the shared file, you will need to download a BitTorrent client.

μTorrent is surely one of the most compact, stable and easy-to-use BitTorrent clients. But on December the 7th, 2006, μTorrent was purchased by BitTorrent inc. I was always a bit concerned about how good μTorrent was at protecting my privacy since it was closed source. But now I am not sure if I can anymore trust a closed source program that is owned by a company that is doing business with many "entertainment" media companies like Warner Bros and MTV. These companies will do anything to protect their millions and they wouldn't hesitate to spy on everything, so why not on the BitTorrent network?

I used Azureus for some time but I never liked it for the same reasons I do not like Java (which Azureus is written in): it is toooooo heavy. It needs some time to get started and then uses too much RAM. In addition to these, Azureus is not made to be portable. So although Azureus is a well-made open source application, I don't think I'll use it anymore.

What is left then? Taking into consideration that I am using Ubuntu and that I do not have any intentions to reinstall Windows in the near future I don't think that there are any good BitTorrent clients left. So, maybe I will continue using aMule: a program that connects to the great eDonkey and Kad networks and offers great variety of files while having nice mechanisms to reduce leeching.

EDIT: I now use Deluge on Ubuntu. :-)

Saturday, August 25, 2007

Goats and Cars

Before some years I've been on holidays at Samothraki. While trying to find a parking place outside a tavern we saw a sign saying: "ΜΗΝ ΠΑΡΚΑΡΕΤΕ ΚΑΤΩ ΑΠΟ ΤΑ ΔΕΝΤΡΑ ΑΝΕΒΑΙΝΟΥΝ ΚΑΤΣΙΚΙΑ" which in English means: "DON'T PARK UNDER THE TREES GOATS ARE CLIMBING" Well this is a very poor translation but the point is that this sign could either mean that we shouldn't park under the tree because the goats must have free space in order to climb on the trees........





Lua VS the rest: 1-0

(This will go through a story before ending up to the Lua programming language. Sorry but I felt like writing about myself a bit.)

I've started programming (if you can call DOS batch files programs) when I was 11. My first "program" was a wrapper that was supposed to make floppy disk formatting easier by calling format with some arguments and an optional volume label (I think that I had named it KAFmat). What I liked about files? Nothing. I just had no other choice at that time (I had no idea how I could use QBasic, I barely spoke English after all).

After 2 years a family friend gave me an verbatim CD of Visual Basic 6.0. At first I was only playing with putting buttons that did nothing on a form but soon I started making some programs (one year after I made Logicrypt). I continued programming with Visual Basic for about 4 to 5 years while at the same time I tried some other languages like Pascal, Basic, C++. I also tried and learned quite well Plua (=Palm Lua) which I liked a lot because of its great syntax and ease of programming and the fact that it was a complete IDE which I could use on my old Palm Zire.

But, not before a year, I completely uninstalled Windows and Ubuntu took their place. Of course Visual Basic doesn't run on Wine so I had to find an alternative. At that time I was taking Java and C lessons on my university but I never really liked any of these languages because I find them too tricky for daily use: Java is not lightweight at all while C need too much writing for simple programs. I tried Gambas which is like Visual Basic but I stopped using it because it creates executables for Linux only (but is a very good programming environment nevertheless). So I thought that it would be easy to learn Lua since I already knew Plua.

And so I did. I now program mostly in Lua. It is a very powerful language and suitable for daily use. If you have an idea then you simply open a notepad and write some Lua code which will easily run on Linux and Windows. The code is interpreted by the very lightweight and portable Lua virtual machine which fits easily even on a floppy disk. The virtual machine can either run the source code or the compiled bytecode (which you can distribute if you do not want to show the source code of your programs). The virtual machine doesn't support GUIs or sockets but this functionality can be added with the wxlua and the (great) LuaSocket libraries. You may also use LuaGL for OpenGL 3D or 2D Graphics.

I have only published one Lua program until now: FuckBrainfuck

For more info on Lua you may check its entry on wikipedia or go directly to its website by clicking here or at the title of this post.

Friday, August 24, 2007

Old Program - LogiCrypt

LogiCrypt is one of my the first programs that I made with Visual Basic. It can encode/decode create checksums, shred and create self-decrypting executables for any file. This is a really old program so do not expect to get any real security as all the algorithms are made by me. But it's worth giving it a try I think.

You can download Logicrypt by clicking here.

Here is a screenshot:


One of my favourite games in Linux is XMoto. It is so simple yet so addicting. It is a side scrolling motocross game; in fact it looks more like riding a trial motorcycle. The physics, although not completely realistic (eg: the angular momentum isn't conserved during the flight after a jump) , feel really good and smooth. The game is updated regularly and gives you the ability to download new levels, skins and world records (along with a replay of the record) without even closing the game. This way you can play straight for days if you want to even have a chance to break one of the world records. Soon you will start admiring (=hate) some names like: "Duuferna" or "Destroyer". The graphics are simple but adequate, some levels have their own textures too and a few of them look like other classic games like Sonic.

XMoto can be found in the Ubuntu Linux repositories so you can find and install it with Synaptic or by issuing the command apt-get install xmoto in the console. Windows users may visit the official site of XMoto and download the windows installer.

Wednesday, August 22, 2007

Old Program - Ask Wise

Ask Wise helps you make statistical predictions. Initially I had written it's algorithm in Plua which is port of Lua for palmtops and the first experiment with the program was to create a database with records of the height, weight, age and sex of many people. Then Ask Wise would be able to predict someones sex given his height weight and age.

Later I ported the algorithm to Visual Basic while improving many aspects of it. It now has much more features. But still the main idea is the same: Give it a database with sets of N numbers. Then give to it a set of N numbers with gaps (holes in a set of the N numbers) and Ask Wise will fill each hole with a number based on the databases records.

Does is seem complex? Well it might be a little but it is a very nice program as it can predict many things if you provide it with a good knowledge file (database). Just make sure that you read the help (by clicking the help button in the program).

You can download Ask Wise by clicking here.

Here is a screenshot:

Old Program - I'm Innocent

When I was at school I had I friend that used to get thrown out of the computer class because he was chatting on the Internet. So I made this program for him. It runs in the background and it will hide any window that you middle-click. To reveal the hidden windows middle-click anywhere while holding down shift. It's that simple! Just note that this program will not work if you use drivers that alter the middle click behaviour (like Logitech's drivers)

You can download I'm Innocent by clicking here.

Old Program - A(X)I(O)

A(X)I(O) is my first successful effort to make a program with AI. It is a Tic Tac Toe game which I made before many years during Christmas. I also had to rewrite the code because my mother accidentally pulled the plug of the computer. It's name comes from the combination of AI and XO (the symbols used in Tic Tac Toe). There are 8 different levels to play but it becomes invincible at level 6 or more. In the zip you will also find a file with instructions.

You can download A(X)I(O) by clicking here.

Here is a screenshot:

Old Program - Simple

Simple is a portscanner. It used to be very simple at the beginning but it soon got a bit complex. Initially it was a program which scanned a class C network for computers with windows shares. Before some years there were lots of computers with unprotected shares. Now you will hardly find some. But Simple still works. The big hit for it was the Service Pack 2 for Windows XP. For some stupid reason (to stop your computer from doing DoS attacks or something) Microsoft decided to put a hardcoded (= not something that can be changed like a normal parameter) limit of 10 on the concurrently half-open connections. Fortunately some guys made a great toll to modify this limit (some antiviruses detect this tool as a virus but you can safely ignore them).

You can download Simple by clicking here.

Here is a screenshot:

Old Program - Emergency Process Terminator

EPT is a tiny program that let's you close crashed programs when the task manager doesn't show up. This usually happens when a fullscreen game crashes. EPT runs in the background and can terminate the foreground window or perform some other actions when some predefined hotkeys are pressed. In the zipfile you will find a help file with more information.

You can download EPT by clicking here.

Old Program - Anonymous NET SEND

Windows messaging is a service that runs on the background of Windows (this is the default for Windows up to XP SP2. After that you have to manually turn this feature on). It's purpose is to send and receive messages to and from other users on the same local network (on older versions of Windows it used to accept messages from the Internet too, which was a welcoming gesture for spammers.). When you receive a message a window pops up containing the name of the computer that sent the message, the time on which it was sent and the message itself. Messages can be send by issuing the NET SEND user message command on the command line. But this of course will reveal the name of your computer to the recipient.

Anonymous NET SEND allows you to spoof your computers name while sending a message to another user.

You can download Anonymous NET SEND by clicking here.
The source code can be found here.  (VB6 source released under GNU/GPL v3 or later)

Here is a screenshot:

Old Program - LightAss

Before some months I played a game with a friend. He quickly made up a story which he kept secret and my target was to unravel this secret story by asking questions that can only be answered with "yes" or "no".

What I found out about his story was this: There are some sheep which in this story symbolize the university students. There was also ten wolfs which came to eat the sheep because they were trespassing into their cafe in order to eat the grass that was on the floor. This cafe was inside my university, it had no door, only windows. The university was under occupation by the students. The sheep got into the cafe through the windows and then locked them and threw the key somewhere on the floor but the wolfs could see it. Because I didn't find any meaning in the so far revealed story I asked my friend to tell it to me.

But in fact there was no story at all. He simply answered "yes" if my question ended in "a". So the story was created purely by my imagination as my friend had no way to affect my thoughts.

I wanted to play this game more times but this was not possible because now I knew the rule. So I made a small program that created a rule each time you want to play and then answer your questions using this rule. Of course the rule is extremely complex for the human mind so that you cannot deduce it after seeing the answers for many questions. I named the program after "translating" the name of a popular Greek script writer named Foskolos ("Φώσκολος") who also writes crazy stories. "Fos" ("φως") in Greek means light (as a noun). "kolos" ("κώλος") in Greek means ass (although it is spelled differently in "Foskolos"). So a "translation" of "Foskolos" is "LightAss".

LightAss can create 1000 different rules based an "story codes". If you create a story and want to continue working on it later you can use the save/load buttons. You may also use a story code of your choice (that will create a specific rule).

You can download LightAss by clicking here.

Tuesday, August 21, 2007

Old Program - Where

One thing I used to hate about Windows (I now have switched to Linux) was their file search program. It's REALY SLOW!!! I hated watching that stupid dog digging and digging without finding anything. And the funny thing is that I had turned on file indexing that "enables faster searching" according to Microsoft but no good.

The only fast way to search for files is the dir command. Open the command line and type: dir c:\filename.ext /s /b This will search and list every file in c:\ that matches the specified filename.ext (you may also use wildcards in the filename. * means any number of characters, ? means any character).

But still this wasn't enough for me. I wanted a fast searching tool that would navigate me directly to the results, something that the dir command could do. So I made one with Visual Basic. I named it Where. It's extremely small and at least as fast as the dir command, that means that it is much faster than the stupid dog. The only drawbacks are that it doesn't accept wildcards and that in some rare cases will not find some files that match the search text (I read on some forums that this is a Visual Basic related bug).

You can download Where by clicking here.

MUTE Portable

MUTE is an anonymous filesharing application by Jason Rohrer, placed on the public domain. When you connect to the MUTE network, you connect to a few users, your "neighbours". When you search for a file you send a search request to all your neighbours and they forward it to their neighbours etc. The search results return to you through your neighbours and the same goes for the file if you decide to download it. This way you do not have to connect directly with the person that has the file and that, in addition to some other measures that MUTE takes, makes you anonymous in the network because it is really hard for someone to find what you share or what you download.

MUTE Portable is what its name suggests. I made it by compressing the executables in the directory of MUTE and then packing the directory in a zipfile. Just unzip it and you will have a ready to use MUTE installation that occupies only 5.4MB.

For more information on the MUTE network and the original application visit its homepage.

You can download MUTE Portable by clicking here.

Old Program - StereoFreak

Stereofreak is a program that I wrote in Visual Basic. It helps you create stereoscopic photos. These are 3D photos that can be viewed with some special glasses (those that have a red and a green lens). For more information on stereoscopy you may read this article.

You can download Stereofreak by clicking here.

Here is a screenshot of the program:

And here is a 3D photo created with StereoFreak:

Old Program - Legend

Legend is a program which I made when I use was using Windows and Visual Basic. You give to it a picture, let's say a photo of a silly friend, and then a directory full of, for example, porn pictures. :-) Legend will create a photographic mosaic with the porn pictures that resembles the photo of your silly friend. It has an option to enlarge the resulting photo so that you can make it a poster. So print it and send it to your friends mum. ;-) Of course you can find much better uses for this program, like making a picture of a politician out of starving children or perhaps a picture of a flower made out of pictures from your holidays.

You can download Legend by clicking here.

Here is a screenshot of the program:

FBF 1.7.0


Brainfuck is a very beautiful esoteric programming language with only 8 commands. You can make any algorithm you can think of on this language but in most cases it is very hard to do so. In Brainfuck you do not have variables, functions, constants and many other convenient features that most programming languages have. You only have an array with byte sized cells (some implementations allow for other sizes too) and a pointer. Initially all cells in the array are equal to 0 and the pointer points to the beginning of the array. Now you can only issue 8 commands that are symbolized by one character and take no arguments: "< > - + , . [ ]". "<" decreases the value of the pointer by one, while ">" increases it. "-" decreases by one the value of the pointed cell on the array, while "+" increases it. "," read a character from the keyboard and stores it in the currently pointed cell, "." prints to the screen the character stored in the currently pointed cell. "[" will jump to the command after the corresponding "]" only if the currently pointed byte equals to 0. "]" will simply jump unconditionally to the corresponding "[". That's all. With this commands you can make any calculation but it will be very hard. You can see Brainfuck as a nice brainteaser; just think of an algorithm and try making it in Brainfuck. For more information on Brainfuck read this article or visit the open directory project for Brainfuck related pages.

(FBF) is a programming language which I made. It compiles directly to Brainfuck code and supports many features found in common programming languages so it makes creating a Brainfuck program easier. Of course you are not actually programming in Brainfuck but you will be able to create very complex Brainfuck programs. The FBF compiler is written in Lua (which is one of my favorite programming laguages) and will run on both Linux and Windows. In the zipfile you can find an extensive documentation, the source code of the compiler (GNU/GPL version 3 license), Lua interpreters for Windows and Linux and some example programs in FBF.

Here is a small program written in FBF:
#DIM char
READ char
UNEQ char '.'
IFNOTEQ char 'z'
INC char 1
IFEQ char 'z'
SET char 'a'
PRINT char
READ char

You can download FuckBrainfuck by clicking here.

Popular Posts