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?

Ranking and Unranking permutations

I've been a big fan of Skiena's Algorithm Design Manual , I recently found my first edition of the book (although I own the third ed...