Sunday, March 26, 2006

Installing another Linux distro (Fedora Core 5)

Fedora Core 5 is out and I could not wait to get my hands on it. For a relatively experienced user, I faced some problems. First of all, my upgrade from Fedora Core 4 failed. I think, it was due to the fact that I had vfat mounted partitions, but I am not 100% sure. So, I did the dumb thing and tried to reinstall it from scratch.

As fate would have it, some of CD's had bad sectors. This caused my installation to be terminated twice. I was surprised not to see the ignore option, for RPMS that failed to install. In any case, I did a minimal install to get Fedora Core 5 up and running. The development tools were completely missing.

I tried to use the new pirut tool, hoping that I would be able to install the remaining packages. To my surprise pirut uses yum as the backend and would not pickup any packages from my CDROM media. To fix this, I copied all the RPMS to a directory in /rpms. Used createrepo to create a yum repository of the RPMS. I then edited /etc/yum.conf to pick up RPMS only from /rpms. The next step was to find all RPMS not installed and install them with yum.

While, this was running in the background, I also installed the following

  • Adobe Reader 7.0
  • Java JDK 5.0
  • Flash Plugin
  • Kchmviewer (a chm viewer for Linux)
  • mplayer
I am still in the process of setting up Fedora Core 5 completely. All in all, the package selection is exciting, especially

  • Xen
  • Systemtap
  • KDE 3.5
  • GNOME 2.14
  • Eclipse (based on gij)
  • Mono
I hope to keep talking about Fedora Core 5 for a while on this blog and of-course other interesting stuff. So keep watching this space. How can I leave this entry without a screenshot? Here is one for completion. I hope it shows all the pain that has gone in :-)

Gopal's static block example

Gopal's example at C++ Static Blocks with better syntax highlighting.


using namespace std;
class Static
{
private:
static vector values;
public:
Static ()
{
vector::iterator b = values.begin ();
for (; b != values.end (); b++)
{
cout << *b << endl;
}
}

class VectorInitializer
{
public:
VectorInitializer ()
{
Static::values.push_back (20);
Static::values.push_back (40);
Static::values.push_back (60);
}
};

friend class Static::VectorInitializer;
};

vector
Static::values;
static
Static::VectorInitializer
initalizer; //initializes the vector.

int
main (void)
{
Static
x;
}

Thursday, March 23, 2006

Trivia

What cryptographically significant information has been published in every Sunday's New York Times since 1992?

Dynamic programming for the binomial coefficient

More fun things, this time with some visualisation of what happens when memoisation is used and what happens when we don't. I don'...