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.

Thursday, February 21, 2008

Useful Firefox Add-Ons

[Last edit: 9 March 2008]

It's really bad when a powerful company wants to put standards on everyone else. It usually has negative effects on everybody else, especially if those standards are worst that the standards that the others has agreed upon collectively. Why would someone then use Internet Explorer? A browser that while it doesn't follow standards, creates many security risks when used by an average user. Still not convinced? Try reading some of these pages.
On the other hand Firefox is faster, safer and extremely customizable.

Inside Firefox's Tools menu you can find the Add-Ons panel. Open it and the click where it says: "Get Extensions". It will send you to a webpage listing hundreds of Add-Ons. Try browsing the categories and I am sure that you will find many of them useful. Also, Opera users will find Add-Ons that add functions like Speed-Dial etc to Firefox.

Here is a list of the Add-Ons that I have installed. Don't forget that if you want to make full use of them you have to explore their preferences and customize them.
  • Adblock Plus: A MUST-HAVE Add-On. Install it and after subscribing (completely free) to some lists and you can say goodbye to almost all advertisements! I have subscribed to:

  • Cache View: Add some options to the right click menu that make easy viewing for cached version of any website by Google, Web Archive etc... This means that you can view older versions of a temporarily or permanently down website.
  • CustomizeGoogle: Allows you to customize many aspects of Google and it's services. One feature I really liked is that it switches to a secure connection (https) when possible (https is supported by Gmail, Google Documents and other services too). Also view the introduction movie which is available at their website.
  • del.icio.us Bookmarks: Makes bookmarking with del.icio.us very easy. I hope you know what delicious is... ;-)
  • Download Statusbar: An extra statusbar that replaces the downloads window.
  • external IP: Shows your current IP and alerts you when it changes.
  • Fast Video Download: Allows you to easily download videos (in flv format) from Youtube and other sites.
  • FasterFox: It's supposed to make firefox faster. I just use it because it adds a page load timer on the statusbar. Sometimes I like playing with its settings too. But I haven't noticed a change in Firefox's speed.
  • Google ToolBar for Firefox: Search using Google easily. It also has many other functions as well.
  • Greasemonkey: Add more functionality to some webpages by installing some user scripts.
  • HackBar: "This toolbar will help you in testing SQL injections, XSS holes and site security."
  • Informational Tab: Add a progressbar (which I'm still unable to see because of my dark theme) and a tiny preview to the tab buttons.
  • ReloadEvery: Reloads webpages periodically. Very useful if you hate been logged out of forums after been inactive for some time.
  • Smart Middle Click: "By default, middle clicking on javascript links in Firefox opens a blank tab instead of following the link. This extension fixes that problem and lets middle clicks open simple javascript links in new tabs."
  • Snap Links: Allows you to multiple links at once by drawing a rectangle around them.
  • Tab Scope: Allows you to preview open tabs in a mini window when by putting your mouse over the tab button.
  • Table2Clipboard: Allows you to copy to the clipboard the selected columns/rows of a table.
  • Tabs Open Relative: Very useful Add-On! It makes any new tab appear next to the current tab instead of the far right of the tab bar. It really helps if you usually work with many tabs of different sites at the same time (like me :-P).
  • User Agent Switcher: Makes Firefox send fake User-Agent information in HTTP requests.
Finally, don't forget to check some themes for Firefox!

PS: If you know any other useful Add-On then you may leave a comment suggesting it!

Monday, February 18, 2008

Memory efficient Brainfuck tables

Here is a nice way to implement an indexed table in Brainfuck, using only n+4 memory for n table cells. I will soon release a new version of FBF that uses this implementation instead of the old one which used 2*n+3. (Well maybe not... I am bored...)

The table has the following structure:

0 I I D (0) (1) (2) (3) ...
^

For a table with n cells you will need n+4 cells on the Brainfuck array.
( n <= cell size) We start from where the ^ points. The first cell should be empty (zero). The second and third cells contain the index that we want to write to or read from. The fourth cell contains the data that we want to store in the table. If we want to read from the table then we should leave this cell empty and it will later carry the read data. The next cells (0) (1) ... (n-1) are the actual data stored in the table. We'll call the I I D part the "head". It works like this: Move the head to the right place: (the head moves to the right by moving the data of the next cell to the head's preceding empty cell, then moving each of the I I D cells one place to the right creating a new empty preceding cell.)

We will move the head to the right to the correct index:
>[
>>>[-<<<<+>>>>]
<
If we want to write something then we should carry the D cell too: [->+<]
<[->+<]
<[->+<]
>-]

Now we may read:
>>>[-<+<<+>>>]<<<[->>>+<<<]>
Or we may write:
>>>[-]<[->+<]<

Now we will return the head to it's initial position:
[
[-<+>]
If we have read something then we need to carry the D cell too: >[-<+>]<
<<<[->>>>+<<<<]
>>-]
<<

After a successful read the I I cells should be empty while the D cell will hold the read data.
After a successful write the I I D cells should be empty.

The pointer ends at the some place where it was before we used the algorithm, that is to the left of the first I cell.

Here is the code uncommented:

Write:
>[>>>[-<<<<+>>>>]<[->+<]<[->+<]<[->+<]>-]
>>>[-]<[->+<]<
[[-<+>]<<<[->>>>+<<<<]>>-]<<

Read:
>[>>>[-<<<<+>>>>]<<[->+<]<[->+<]>-]
>>>[-<+<<+>>>]<<<[->>>+<<<]>
[[-<+>]>[-<+>]<<<<[->>>>+<<<<]>>-]<<

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.

Monday, February 11, 2008

SFTM (mastermind solver)

SFTM (SuperFuckThisMind) is a Mastermind solver. It's nothing too advanced. It supports any number of colors (although they are represented by numbers) and any number of places. You can download it by clicking here. The zipfile includes the Lua sources, the Lua interpreter for Windows and a batch file. Unzip everything in the same directory and then run the batch file.

[EDIT] Version 2.0 is out! Read the related post.

Sunday, February 10, 2008

Strange Xmoto physics

I was waching a replay in xmoto in slow motion... These are three frames:

It's funny that the bike doesn't break with falls like this one while it breaks if you touch something solid with your head... :-)

Friday, February 8, 2008

Sagem Fast 800 on Ubuntu

Finnaly there is a simple way to install Sagem Fast 800 on Ubuntu! This has been a major problem for Greek Ubuntu users because this modem was freely given by OTENET (a major ISP in Greece) with new ADSL connections. UbuDSL will almost automatically setup your modem!

For instructions in Greek go here. If you encounter any problems during the installation insert the Ubuntu CD and then restart the installation. (tip by DimBiC)

Και στα Ελληνικά:
Επιτέλους το Sagem Fast 800 δουλεύει και στo Ubuntu! Ακολουθήστε τις οδηγίες που θα βρείτε εδώ. Αν αντιμετωπίσετε κάποιο πρόβλημα κατά την εγκατάσταση τότε τοποθετήστε το CD του Ubuntu και ξαναξεκινήστε την εγκατάσταση. (συμβουλή του DimBiC)

Wednesday, February 6, 2008

How to configure Compiz in Gutsy

Compiz is composite window manager for Linux. It's a program that manages the placement and drawing of windows on your screen. At the same time it uses hardware accelerated 3D graphics to draw effects for certain events (minimization, maximization, closing, changing desktop etc). Last March, Compiz and Beryl (a fork of Compiz featuring more 3D effects) were merged again and now there are two software packages available: Compiz-core and Compiz Fusion.

The good thing is that Ubuntu Gutsy Gibbon comes with Compiz pre-installed. The bad thing is that they did not include the settings manager, leaving you with only three preset configurations (found in System->Preferences->Appearance->Visual Effects).

If you want more control over compiz (compiz is capable for much more things than those found in the "Extra" preset) will have to install compizconfig-settings-manager. To do this, use a console (Applications->Accessories->Terminal) to execute this command:
sudo apt-get install compizconfig-settings-manager

(or use System->Administration->Synaptic Package Manager to find and install the package)

Now go to System->Preferences->Appearance. It should contain one more option named "Custom":

Select it and then click preferences and start configuring the plugins you need.

If you have no idea how to configure them you can download my settings by clicking here. I use mostly the fire effect (because it matches with Ubuntu SE). If you move the pointer to the upper left corner of the screen you will get thumbnails of all open windows in all desktops. There are 4 desktops which form a cube that you are inside it. By touching the left or the right screen edge you can move to the next or previous desktop. Moving the pointer to the upper right corner will show you the four desktops. Take a look at this post as it contains two videos demonstrating the above.

To import my settings follow these steps:
  1. System->Preferences->Appearance
  2. Click the Preferences button on the Visual Effects tab.
  3. In CompizConfig Settings Manager click on Preferences.
  4. Create a new profile by clicking on the + symbol.
  5. Click Import and select the downloaded file.

Sunday, February 3, 2008

Medibuntu

If you just switched from Windows to Ubuntu Linux you might have missed some application like Google Earth or Skype. For easy installation of these applications, some non-free or possibly patent-violating codecs and other programs you could simply add the Medibuntu repository to your system. To do this simply follow these steps (instructions for Ubuntu Hardy Heron):
  1. Click on Applications->Accessories->Terminal.
  2. Now copy, paste and execute the following line:
    sudo wget http://www.medibuntu.org/sources.list.d/hardy.list -O /etc/apt/sources.list.d/medibuntu.list ; wget -q http://packages.medibuntu.org/medibuntu-key.gpg -O- | sudo apt-key add - && sudo apt-get update
  3. Run Synaptic (System->Administration->Synaptic Package Manager).
  4. Click Reload to get the packages from the newly installed repository.
  5. Click on Origin (it's one of the buttons at the bottom left part of the window).
  6. Select the first Medibuntu repository, then the second etc to view the packages they include. And install whatever you need.
What I suggest that you install:
  1. hot-babe: Read the description and don't forget to add it to the Startup programs (System->Preferences->Sessions). Just make sure that you use the following command to run it or the babe will suck on your CPU: hot-babe -i -n 10
    (But even if you use this command the babe uses the CPU a lot and it's a bit buggy especially if used with Compiz, but I suggest that you try her ;-) ... )
    Here is a photo of the babe (fully dressed) :-P
  2. libdvdcss2: Allows you to play encrypted DVDs. Also search for and install libdvdread3 using Synaptic.
  3. Google Earth
  4. Skype
  5. non-free-codecs: To play some video files that no open source decoder exists for them.

Popular Posts