As the year 2008 is set to end in a few days, various top 10 lists of 2008 are cropping up in the web around me. Here's a small list of the ones that I liked:
So long ... and thanks for all the fish !!
... a place for my random thoughts, musings, ideas et all. There is no fixed topic or content ... its all about what I like at the moment.
As the year 2008 is set to end in a few days, various top 10 lists of 2008 are cropping up in the web around me. Here's a small list of the ones that I liked:
So long ... and thanks for all the fish !!
Some of the pictures taken during the 2008 Durga Puja in Kolkata.
All the pictures have been uploaded to Picasa, you may download the entire album from there. Link to Pujo 2008 Picasa Web Album.
Please note that the pictures are licensed under the Creative Commons International licensing. All pictures are licensed under the terms "Attribution + Noncommercial + NoDerivs (by-nc-nd)", as mentioned in Creative Commons licenses.
After using Open Solaris for more than a year, I have switched back to Fedora once again. I was using Solaris, as it was compatible with the version of Solaris that we used in University of Calcutta. However, after my second year was over, I had no good reasons to stick to it. In any case, I did not use Solaris's USP features of D-Trace and ZFS in day to day work. So I finally decided to switch back to Fedora.
Although I did not use it, I had Fedora 8 installed on my machine. I installed the latest Fedora release, Fedora 9 Sulphur in that place. I know its pretty late talking about Fedora 9, as its sibling Fedora 10 is about to launch in another two months, but having used Fedora 7 Moonshine last, I was in for a few surprises.
If I remember correctly, Network manager was there in Fedora 5 or Fedora 6, but was not activated by default. In later releases it was dropped altogether. However, it has resurfaced in Sulphur. Placed in the top left corner of the Gnome panel, it is a very effective piece of software which let me use my ADSL connection right out of the box. One of the most daunting tasks with Linux, was to get my ADSL connection to work with it. This was a pleasant surprise. I am sure it will continue to retain its place in future releases too.
It was customary in the first boot of Fedora to be confronted with a SELinux screen, which most users disabled without a second thought. This time, this screen has been removed and I think is one of the smartest move in Fedora's part.
Fedora 9 ships with GCC 4.3. This causes some applications which were compiled with an older GCC to fail. So make sure you have the compatibility libraries. Just type "yum -y install compat-libstdc++-33 compat-libstdc++-296" in a terminal, when logged in as root.
If you are using the 64 bit version of Sulphur like me, then installing the flash plugin for your browser is a bit complicated. Here are the detailed step by step instructions for it. Ensure that you are logged in as root (do not sudo) and can connect to internet. Type the following in the terminal:
It took me quite sometime to figure this out. I hope this will be fixed in Fedora 10 Cambridge. But for now, you have to undergo this tedious process. If anyone knows a shorter process, please post a comment.
On top of the usual packages that came through DVD, I also installed the following:
I also installed the following which are required for programming purposes:
I do not think I need to do any further major tweaking to Sulphur. I am looking forward to the release of Fedora 10 Cambridge at the end of November this year. Presently the beta version of Cambridge is available for download and I recommend everybody to try it out using the live media so that the installation can be avoided.
Subho Bijoya and best wishes to everybody. Pronam & Regards to my elders. E-kola-kuli to all my friends.
Kashi Nath Dey (KND) is a professor of University of Calcutta in the Department of Computer Science and Engineering. He teaches Artificial Intelligence (AI) to us. In his last class before the Puja Vacations, he showed us the following interesting game that he has invented. The game has no formal name, so I took the liberty of calling it "KND's game of 15".
This is a 2 person finite game with the following simple rules:
As with any new game, we tried our hands at it in no time. Here are a few games that we played:
KND | 2 | 6 | 8 | 1 | W |
Class | 9 | 7 | 5 |
KND won the game as 6+8+1 = 15. If you notice carefully, its very easy to see a pattern in KND's game. He started with 2 and then for every move made by class, he just put 15 minus the number. However, this is just a coincidence as we will see in the next game:
KND | 8 | 2 | 4 | 9 | W |
Class | 6 | 5 | 3 |
This time too, KND won the game as 2+9+4 = 15. What is more important to note is that our last strategy was not what he had followed in this game. By this time our class mate Sumeet was convinced that whoever plays first would win, so in the next game, KND took the second move:
Class | 5 | 8 | 7 | 9 | D |
KND | 6 | 2 | 3 | 1 | D |
The game was a draw. So the player playing first does not always win. Somehow, I was feeling that there might be a strategy that allows the first player to win every time he plays.
The game is no doubt, very interesting. A careful study of it would soon reveal many facts which would help a lot in the gameplay. The first task in analyzing would be to jot down all such 3 number combinations which total in 15:
1 | 6 | 8 |
1 | 5 | 9 |
2 | 4 | 9 |
2 | 6 | 7 |
2 | 5 | 8 |
3 | 4 | 8 |
3 | 5 | 7 |
4 | 5 | 6 |
Next we do a simple frequency analysis and get the following result:
Number | Frequency |
1 | 2 |
2 | 3 |
3 | 2 |
4 | 3 |
5 | 4 |
6 | 3 |
7 | 2 |
8 | 3 |
9 | 2 |
I did both of these steps in class and arrived at the conclusion that 5 is the most frequently occurring number, so the player who chooses it first has a distinct advantage over the other. Next in priority were the set {2,4,6,8,} all of which have frequency of 3. Last comes the set {1,3,7,9}, all of which have the frequency of 2.
So I deduced a strategy that try and capture the numbers in that order, and then from the 2nd number onwards try to block your opponent's chance of winning by capturing the number that would get him a total of 15, and simultaneously look out for numbers that would get me a total of 15.
I used my newly formulated strategy to get a draw in the last match and was feeling quite happy with myself. Then, KND offered an alternate and much simpler explanation of the game. He first drew a 3x3 magic square:
8 | 1 | 6 |
3 | 5 | 7 |
4 | 9 | 2 |
As with any magic square this one also has a constant summation over rows, columns and major diagonals. In this case, the summation happens to be 15. Now what KND has done in this game is to merge it with popular children's game of Tic-Tac-Toe. So selecting a number implies putting a 0 or X in that position in this 3x3 board. What follows is a simple game of Tic-Tac-Toe.
The explanation is very elegant and simple. I liked it very much, both the game and the explanation behind it. It just shows how some apparently very different problems can be mapped in to one another. Interestingly, I knew all of the things that he required to explain the logic behind the game:
The key to arriving at the correct explanation is to think harder for simpler explanation. In fact looking back, it was easy to guess that there was some simple strategy as KND did not take much time to make his moves, which he would require if he followed my type of complicated strategy.
For the last few days I have showed this to some of my friends. With the same result, all of them tried to think of a complicated strategy. Sometimes I introduced a minor variation of showing the same thing with 9 playing cards, which makes it a card game.
Primality testing of a number is the method of finding out whether a number is prime or not. I have known this is a non-polynomial problem. In fact most of the recent cryptographic techniques rely on this and the factoring problem of numbers to create secure systems.
But it was never clear to me why. So when this question was put forward to me by Sukanta, I kept thinking. Of course I knew the answer, but did not know the reason for this problem to be NP. Sukanta explained that:
For a number N, the usual prime number testing strategies, iterate for N/2 times, which can be further optimized to N^0.5. So the number of division operations required was a polynomial function of N. At this point, it is very easy to say that this is polynomial solvable.
But the thing that I missed here, is that N was the number itself, not the size of the input set on which the complexity of a program is computed. So if we take the input size as the number of digits of N, then the size of input set is log N. So the complexity of the program is exponential, and not polynomial, as I mistook in last step.
Well, there is never any shortage of new things to learn. I thank Sukanta, who explained it in such a nice way. However, what astonished me was that I had believed the result without even asking for the explanation of the same. So I made a mental note to watch out for similar pitfalls in future.
Here are two Microsoft Advertisements that featured American comedian Jerry Seinfeld, whom Microsoft hired and caused a lot of speculation. However, he has been recently axed from the campaign, leaving everybody wondering, what the Microsoft Advertisements guys are really upto.
I personally both of them, specially the way that they are showing Gates.
The following video which I found in the internet, shows a robot bouncing a ball on a plate. This apparently extraordinary feat was achieved by Francesco Prosperi at the Sant'Anna School for Advanced Studies of Pisa, Italy. The tray on which the board is being balanced is nothing but a FLEX board which is equipped with micro controllers and sensors to track the position of the ball and feed it to the CPU underneath.
I guess if robots are capable of balancing balls now, their reflexes will soon be fast enough for mimicking human walking and gestures. Lets wait for that now. Personally I have shown this around to a lot of my fellow students who are either working in or are interested in robotics. While almost all of them agreed that this was quite possible theoretically, but none had so far seen something this accurate.
I got this email on Thursday, September 11th from Microsoft stating that I have been made the new Microsoft Student Partner (MSP) Lead from Kolkata. I am proud to receive this honour. Along with me, 5 others MSPs also got selected for MSP Leads:
Kaushal Bhavsar (Ahmedabad)
Lakshman Srikant (Bangalore)
Mayur Tendulkar (Pune)
Raveesh Maaya (Bangalore)
Urjit Singh Bhatia (Baroda)
I do not know what is it, that I exactly did to be a MSP Lead, but I will surely try my best to live up to it. Thank you MS Academic India team :)
The other good news in the mail:
It was on the very first day of Artificial Intelligence class that our professor introduced us to the Prolog programming language. Prolog, which means PROgramming in LOGic is one of the standard languages that are used for AI related work. Being used to traditional languages like C and C++, Prolog's approach felt quite a bit odd to me. Prolog is a declarative non-procedural language which takes quite some time to get used to, more so if you are used to programming in usual procedure oriented languages.
Well, I am facing a lot of obstacles to learn Prolog. I cannot clear them all through one blog post. But I guess I can help out everybody with the basics.
I am not at all a knowledgeable person on prolog, but I liked the book "Prolog programming for AI" by Ivan Bratko. Having read no other book on this subject, I cannot possibly compare it, but the book is quite easy to understand.
There are a lot of compilers available for prolog on the market. If you already have not got one, I would recommend GProlog which is the GNU implementation of Prolog, available both under Win32 and Linux environments. It supports the ISO standards of Prolog and is completely free. Being a GNU software, it has all the open source advantages too. Download GProlog from the site and install it. The installation is straight forward and intuitive.
I am not sure whether prolog has a Hello World program, but I started with a simple parent relationship program as given in Chapter 1 of Bratko's book. You can download the source file parent.pro that I wrote from Bigyan_Prolog, (password: bigyan). To load the file, start GProlog and go to Files>Consult and select the prolog file (extension .pro). Then in the command line you should see a compiled message after which you can try writing goals in the GProlog window.
I have just began with prolog. I am getting to learn new things regularly. So in future watch out this space for more stuff on Prolog, especially my own programs that I will upload from time to time in the Bigyan_Prolog web space. I have always wanted to distribute the simple programs of mine to everyone who needs them, but for languages like C and C++, I have lost most of them. So this time I plan to methodically upload them to Internet.
My B.Tech. Part II examinations have finally ended with all the theory (6 papers) and practical (4 papers) complete. The ordeal started from 1st of July 2008 and ended today 21st August 2008. Spanning for a total of 52 days, it was like the ultimate test of patience for me. It is very hard to concentrate and maintain the same level through such a long time. Overall the examination did not go as well as I was expecting; but it did provide some valuable lessons to me, and in the long run, that is what counts.
At present I have no plans. I plan to enjoy a few days of rest which I guess I absolutely deserve. I hope the classes would not be starting till the 2nd week of September, so I will be getting something like 2 weeks. I got a new book on "Lex & Yacc" from departmental library, which I will be reading. I have always wanted to learn these powerful tools that aid in writing compilers. I do not intend to write a compiler anytime soon, but I hope the knowledge will be useful in a variety of other ways.
I feel that one should never be idle. Specially applicable to me, after what I went through during the exams. An idle mind is free to think of anything, and in most cases, its totally unproductive. So I intend to involve myself in some sort of mental activity to keep my mind focused.
Here is a funny video that a friend of mine sent to me a few days back:
I totally loved this video specially in hard times, like my exams, which is spanning for 50 days now.
At last my Part II theory examination ended on July 18th. The ordeal began on 1st of July and after a huge battle over 6 papers, we are finally through. Some papers were tough, some unexpected and one easy. I will upload them in a PDF or some other suitable format as soon as possible. One thing the papers had in common was change. Almost all the six papers had an element of surprise in terms of question patterns, formats or coverage of some typical areas.
It did not go as well as I had anticipated it to be. It was a revelation from many angles. Usually over the years of my computer science study, I have observed that most of my BAD examinations seem to reveal my poor time management skills or my lack of reading the subject material, usually the latter. However in this year's DBMS paper, I was stunned to find out some SQL queries that I could not figure out. However, I am working on them, and have made the DB with all constrains in MySQL and in my opinion will soon be able to write the queries too. May be someday, I will upload them here too.
Now, where did this friend thing come into year end examinations? Well for one reason that they constantly support and help you out in whatever activities you do. Specially in preparations of terminals. But this time it was quite shocking to discover the un-friendly nature of some of my so called friends.
Owing to a lot of factors, a major chunk of this year's course was self-study type. So we were stuck with thick fat books and list of chapters to be covered, without having any clue as to what to study, which areas to focus and so on. This is usually not the case as we have the comfort of class notes which help a lot in terms of the main areas of focus.
So in that ordeal to go through every nook and corner of the books, I thought my friends would be of great help. But it did not quite turn out to be what I had thought initially. Some of them were plain reluctant to help, but the worst of the kind were the ones who pretended to help. These unique type, whom I was fool to call friends, misguide people. Thanks to my lucks stars that I was able to see through a couple of them, but this whole thing left a very bad taste. At least the damage was manageable, but would have been nil if I had known them better.
Competition is good, and I support it in general. But no-hold-barred competition is dreadful. One should know where to draw the line. Healthy competition is good. But what I saw was quite unfair. Competition should not transcend the boundaries of friendship and basic truthfulness. Sadly that was what I saw. In the race to become the best, often more effort is being spent on weakening ones opponents and strengthening themselves.
Well, this last part is more of a prediction than an observation. In my Post Graduate B.Tech. course, students came from a varied subject backgrounds. About 60% of the class is from Physics, rest are from Computer Science and a couple of guys from Mathematics and Statistics. Being a member of CS background, we have enjoyed a certain degree of supremacy in our first year. We had a lot of common subjects and most part of the course was a revision to us. On the other hand the non-CS students had to work very hard to gain a basic knowledge of Computers.
When I look back, I feel that their journey was particularly hardened by our presence. Having scored good marks in B.Sc. most of them have enjoyed a certain degree of supremacy in their last college, but here they were suddenly clubbed together as the backward group. Most of the questions that they asked were known to us and they were withdrawn into a shell in the fear of asking foolish questions.
However this time I guess they are much better off. All of us are on equal ground this time. Most of the subjects were new to us and the non-CS pupils had enough time in first year to acquire a basic degree of knowledge on CS. So I hope to see a lot more non-CS friends topping the list this time. Around 5 out of the top 10? ... let's wait till the results for that.
Today, KolkataNet arranged a launch event for the three newest products from Microsoft:
The product launch took place at the Nicco Park Administrative Building and started from 10:30 AM. Heavy rainfall resulted in a poor turnout for the registered developers, but the attending crowd was in high spirits. Everybody was enthusiastic about the event.
Jadeja Dushyantsinh Anopsinh from Microsoft started the session with a session on SQL Server 2008. He talked about the features that we can expect in the yet unreleased version of SQL Server, supposed to release later this year. The different new data type to be introduced in SQL Server 2008 were discussed. The key management features along with various other security features were discussed. Out of the box support for a variety of new technologies would ensure that SQL Server goes a long way towards gaining the topmost spot for Databases used in the Industry.
Sourav Basu delivered the next session with Windows Server 2008. The new HyperV was a big point for discussion. The difference between HyperV and Virtual PC also occupied a large part of the discussion. Various encryption and security features of Windows Server 2008 were also discussed. Forefront, the newest technology from Microsoft was also introduced. Bit Locker and NAP occupied a part of the talk too.
The last session of the day, on Visual Studio 2008 was delivered by Microsoft MVP, Abu Ismail. The session started with a discussion on the generations and evolution of Visual Studio from version 6 to 2008. Designer-developer conflict was discussed and XAML was introduced as a possible solution. A brief discussion followed on the newest features of C# 3.0 part of which was delivered by Jadeja. The get, set techniques was discussed, followed by extension methods. Inevitably, some discussion on the much talked about LINQ, followed. All the features were demonstrated in VS 2008.
Throughout all the three sessions, the audience participation was quite encouraging. The thoughtful exchanges by the industry professionals proved to be quite a learning experience for all of us. I am sure this will continue in the future sessions as well.
The session came to an end with TShirts being distributed to the most active participants. Jadeja thanked all the organizers: Abu Ismail, Sourav Basu, Arijit Basu and Robin Roy with token gifts.
But in my opinion, the most fruitful thing that came out of todays session was the planning ahead of many further sessions by KolkataNet. Ropbin Roy, COO Digital Avenue promised to arrange for a premise to hold the monthly sessions of KolkataNet. Topics of 6 next sessions were discussed and finalized with everybodys approval. Apart from the usual speakers, we will also get to see some new faces from the industry, who I'm sure will be a great addition to KolkataNet. A list of the sessions and a poll for deciding the day-of-week will soon be put up in this forum, so stay tuned.
As for my part, I have my Exams from 1st of July, so I will not be able to attend the next session, scheduled for 1st week of July on LINQ by Abu and Jadeja. :(
In conclusion, I guess we can say that June 15th 2008 was a significant day in the history of KolkataNet and TechBengal. I hope we see many such interesting sessions from this UG in future. The participation level and the number of new faces were really encouraging. As a student and a future developer, KolkataNet is proving to be a great source of knowledge for me.
Here is a nice picture that a friend of mine sent to me:
It shows an IBM 1GB hard disk (yes, that huge, bulky thing is actually a hard disk drive) manufactured in late 80s. On top left is a hand holding the modern version of 1GB, a 1GB SD card. It gives us an idea of how much advancement the computer hardware industry has gone through the last two decades.
In this internet age, with people visiting new website at a rate higher than their usual visits to the restroom, remembering login details, especially passwords can be a quite daunting task. The login credentials consists of both the username like "Bigyan" and the password like "bb1024". Here I will give some guideline that might make this task a little bit easier for you.
First comes the trouble of choosing a good username, which can be difficult if you have a common name or just are not creative enough. A friend of mine tried to get a GMail account and to his horror found out that all the names from "dutan", "dutan1", "dutan12" ... upto "dutan1234" were already taken, so he took the name "dutan12345". Of course this is quite a mess and very difficult to remember.
The solution is to be creative and start using something like "dutan_42" which is something not everyone will come up with. Of course however creative one might get, there is always a possibility that that very username was already taken ... so maybe you could just add another letter or number to it. Try out "dutan__42". Use this scheme for every site that needs you to have an account. So at most you have to remember 4-5 similar usernames.
This is the huge problem. how can you choose "hard to guess" yet "easy to remember" passwords? Of course you could try using the same password everywhere, but if somebody finds out one of them, you are doomed.
The trick lies in creating a set of basic passwords for different category of sites. Like for emails, you can have a basic password, another one for news sites etc. The trick is to effectively use these basic passwords and generate the password unique to the site that you are using. Say you choose a password like "iddqd95" as your basic password for emails. So for yahoo, you could change that to "iddqd95aoo" i.e. appending it with the vowels of that site. So for gmail you have "iddqd95ai".
So even if somebody "accidentally" finds out your email password, they cannot just use it on all other sites that you use. So the chance of identity theft is reduced considerably.
You can extend this scheme to use numbers in place of letters ... maybe number the vowels from 1 to 5. Or append the consonants. Maybe use the first 2 alternate letters. Basically get creative with this. Further ideas include using complicated number replacement policies based on the site's name. Maybe even some unusual characters like ! @ # $ % etc. Corresponding them to the vowels. The possibilities are really endless.
Remember that its easy to make such a complex scheme than follow it on a day to day basis. So follow a "Keep It Simple Strategy". Do not make the scheme so complicated that you need a pencil and paper just to compute your password, that alone is enough to negate all the advantages of these scheme.
The schemes look all good, but it does have a disadvantage. They are easy to use because you are remembering only the rule and not the password. But what if somebody gets to know of it? So the trick is not to discuss your scheme with anybody else and never share your passwords. Also please do not write them down. This is often thought to be one of the safest scheme. I have a friend who keeps her list of passwords in a password protected MS Word file and carries a printed copy in her bag. This is very silly. With the advent of internet, identity theft has got a new meaning. Its quite easy for a professional to get this lists.
Of course if you are computer savvy enough, you might have discovered that fact that most of the recent browsers come with sophisticated password management systems. You can use them easily and just remember one single master password. While this scheme is quite secure in the sense that the encryption standards used to store the passwords are almost impossible to crack, it has some glaring disadvantages.
Losing the master password can be the perfect recipe for a disaster. Then there is always the possibility of that piece of software malfunctioning. What if the HDD crashes? So even if you use this scheme, and I do agree that is is very addictive, spare few minutes to learn up and use the above strategies which make you life a little bit easier.
Rapidshare, one of the most popular file sharing services in Internet has updated their Captcha system. If you are a free user, you need to enter those four letters which have this picture of cat in it :
A sample captcha looks like :
Rapidshare captcha is one of the most attacked captcha systems of the web. Thus the system is updated every few days. This novel addition does make the captcha system harder to break, but it also makes it very difficult for actual human beings. I hope in their zeal for making an uncrackable captcha, Rapidshare has forgotten the fact that it should be easy understood by users too.
As a long time user of Rapidshare I hope that they change this system with something more easily recognizable by humans. Failing to do that might result in their losing valuable traffic as there is no point uploading files, when most of the users will have a hard time to download it.
In case you are wondering, what are those four letters in the above picture, the answer is that I do not know !! I tried downloading a 35 MB file from their server and had to wait around 2 minutes for each try. I tried around 5 times with different captchas each time and finally gave up. Of course if this happens for another week or so, I am sure we will see users steering clear of Rapidshare.
I do not know, how many of you have faced this problem, Google Talk's option of showing the current music track as status message simply does not work with Winamp v5.5+. Personally I love both the programs. I have been using Winamp from 2001 and GTalk is where most of my pals are. The main problem involves freezing of the GTalk program when the "Show current music track" is selected in the status drop-down.
Winamp says that it is a GTalk bug and Google does not say anything on it, leading to a lot of confusion as a lot of users seem to be using both of these popular programs. However I have found this cool workaround for this bug from a friend of mine:
Close both GTalk and Winamp.
Go to Winamp's program folder ... it is usually in C:\Program Files\Winamp, unless you have installed it elsewhere.
Create a winamp.m3u file there. Just a blank file.
Start Winamp, then GTalk
Try out the "Show current music track" option
It works well. So no more of tracking down old versions of Winamp and switching back to it. This is a rather neat workaround, thanks to my friend Tania.
Yesterday, Google added yet another innovative product in their growing list of products. It is called "Friend Connect" that "allows website owners grow traffic by enabling any site on the web to easily provide social features for its visitors". In short, it integrates the Social Networks with any other site. What this will lead to is something that is hard to comprehend. But on the surface, it looks like a tighter integration between people and websites, that is, it will add a social layer on the sites.
Here are the official links :
Friend Connect (the home page)
Previewing Google Friend Connect (official press release)
I am a big admirer of Google and wasted no time in signing up for Friend Connect. Lets see where this leads us to. With the concepts of Web 2.0, the online experience is changing at quite a fast pace and so far for good. This might be the next big thing on Web 2.0.
If you are like me, wishing to sign up to anything new from Google, here is the Friend Connect Sign-Up for Preview Release page. So far the concept seems to be only something novel. But Google has its own way of coming up with cool new features for all its products. I am always in the lookout for that "New Features" link.
Yesterday, I conducted a .NET Hands-On lab session in the Rajabazar Campus of University of Calcutta. Students from B.Tech. year 1, attended the session. Here are some of the pictures :
The session started at 1430 with an introduction to C#, followed by Hands-on session on Visual C# 2005 Express Edition. Starting from a basic Hello World application, we moved on to DateTime and TimeSpan classes and their usages. Basic IO operations were demonstrated, laying the groundwork for further sessions.
The session was quite a success, with almost all the student of B.Tech. I attending it. Unlike my last session, this session seemed to be very interactive. Lots of question were asked, and I tried my best to answer them. Its very encouraging to see, such a high level of participation from this group.
As I promised in the session, all the materials have been made available online. Please go to http://drop.io/MS_Club_CU, and download the materials. Please note that the site requires you to log-in. So use the password that I provided you last day.
Thanks to everyone who attended this session and made it a success. Please put in some feedbacks of the session and any suggestions of improvement.
I delivered the following presentation to our B.Tech. class on 28th April 2008 at the University College of Science and Technology. The topic for the day was "Physical Data Organization".
This is all a part of our professor KND's grand plan for improvement of public speaking amongst students. Over the years he has observed that there is a general tendency for students to falter while speaking on a public platform. The effect of this is most evident on the Grand Viva that is held in the final year. So from this year, KND has started this scheme where a number of student groups are formed. Each group gets some topic, which the members have to study themselves and teach the class.
In my case, I was the only person in the group and was allotted the above topic. I have tried my best to put it forward in a simple and easy-to-understand manner. So far, the feedback from my audience has been quite encouraging. However KND did point out the total absence of the algorithms part from the presentation was not what he had wanted.
Here are the links to download offline versions of the above presentation.
Physical Data Organization EXE (Win32, animated)
Please note that the presentation is copyrighted, and you have to take my permission if you want to use it somewhere. In case of any doubts or queries, you can contact me by posting a comment here. Improvement suggestions are always welcome.
Recently in an innovative way to launch their 2008 suite of products Microsoft organized a two days online session called Virtual Tech Days all across India on 9th and 10th of April. The seats were quite limited, and many could not register for the same owing to the closure of the registrations around 2 days before the event. However, now MS has made all the resources for the session (presentations and live recordings) available for everybody at http://www.microsoft.com/india/virtualtechdays/. So even if you have missed the sessions, you can download them now and view them as and when you wish.
Most of the stuff is introductory in nature and can be a good place to start if you are totally new to this suite of products. However one can be most benefited, if they have a prior experience of working with previous versions of some of the products.
I am a fan of Microsoft and follow them closely. I am a member of lot of their websites, like Channel 8, Channel 9, Connect ... to name a few. Recently I saw a couple of goof ups in their videos. Here I am going to post a couple of them.
The first one is from Microsoft Virtual Techdays, an online event for the 2008 suite of products launch and videos. The whole thing was organized on 9th and 10th of April. Mandira Bedi and Pandu (I don't know his real name) was hosting the show and here is what happened when they actually tried to call up somebody. Look closely at the red circle with Pandu's hand as he dials a number.
Most probably the seating arrangement was both the hosts sitting together side by side with the laptop between them against a uniform background. Later the images of two were split up and set aside. That is why Mandira was appearing to look at the table, when in effect she should have looked at the laptop. But at least we can over look this one as it was a live video (almost live in my opinion).
In a recent post in Channel 9, Ray Ozzie Introducing Live Mesh, the CSA from Microsoft introduced their new service "Live Mesh" to the world.
The Channel 9 logo that was featured at the background LCD screen was superimposed later, as evident from the picture (yellow circle) where Udell's hands appear to be in front of the LCD but behind the picture !!
Guess MS video guys still need to give a better finishing touch on those videos. ;)
This is the newest experimental version of the GTalk client from the Google Labs. Looks pretty cool and neat. I installed it from their official site. However the download does not contain the software, rather its the installer only version which checks internet for the software and downloads it. Here is the official screen-shot and the download link.
This version features an integration with other GMail services like Orkut, Google Calendars and GMail. The integration with Calendars is cool, you get reminders at your desktop. I liked this feature a lot. But it has the possibility to irritate you in certain times for which you could turn it off like a "snooze" option.
The inclusion of Group Chat was a long desirable feature, this was only available in the web version of the client till now. The GTalk window has become multi-tabbed, which I do not think is a very good idea, but it does reduce some taskbar clutter in case of chatting with lots of friends.
I know that this is really late to talk about this Microsoft DreamSpark program. It was officially launched by Bill Gates quite a while back at the end of Feb '08. It is a program through which students around the world get access to Microsoft's professional-level developer and design tools at no charge.
This will give students a breakthrough in technology. Moreover, being able to use a professional tool is always an advantage to budding developers. By providing these tools free, MS is giving students a never before heard of opportunity to be exposed to exactly the same tool set that professionals use.
It is worthwhile to mention that MS has been giving away free tools to students for quite sometime now. They have various programs under which this is done.
Express editions of Visual Studio compilers and IDEs have proved indispensable for hobbyists, casual developers and students. It is a great way to get introduced to the development platform provided by Microsoft.
MSDN Academic Alliance is yet another program which gives an institution to distribute the entire line of MS products (barring just a handful) to all its pupils and use it for academic purposes.The students are encouraged to even install it in their home PCs.
Participants of this year's Imagine Cup have also got free download access to professional editions of Visual Studio, Source Safe, Vista Business Edition and some more softwares at absolutely no cost.
However the DreamSpark program is still in a nascent stage and it is initially only being offered to students from US, UK, Canada, China and a couple of European countries. It is supposed to be implemented in stages and I am sure we will soon see India on that list.
The hugely popular online office suite, Google Docs is now available offline too. Google announced Doc's offline capabilities on a blog post in the official site a couple of days ago. With this feature, users will be able to access and edit documents while offline and later connect to internet and synchronize it with its online version.
But to obtain such functionality, you will have to install Google Gears, which is an "open source project that enables more powerful web applications, by adding new features to your web browser". Gears is cross platform, cross browser compatible, so no need to worry over its availability. With this plugin installed, you will be able to open your documents even when you are not connected to the internet. The changes that you make to the document are stored in the machine itself. Later when you are connected to the internet, these changes gets uploaded to the server.
Here is the official video demonstrating this cool feature:
The inclusion of this feature might be the main reason why people would like to use Docs. It stores files on servers, so no need to worry about the document getting lost. At most the changes that you make might get lost. It is quite sufficient for regular word processing use. Of course it leaves a lot of room for improvement if we compare it to the full blown office suites like MS Office, Open Office or Start Office, but for an average user it proves very beneficial. The ability to access the documents from anywhere is is great bonus along with its integration with other products from Google.
Now the most important question, will an average user switch over to Docs fro this feature? ... well most probably they won't. But the Docs users have something to rejoice about. As for me, I am happy with MS Office and Docs has to go a long way, till it can attend that status.
So what's next? ... maybe a office suite from Google !! I mean an actual desktop office suite which integrates with Docs. This might be the future, as I feel that this "running a software within the browser" severely limits the functionality of the software. To rope in the power users a complete offline version will be best. Lets see what Google gifts us next, they never cease to surprise me.
On Saturday, March 29th 2008, Heritage Engineering College in Kolkata organized a developer conference (Dev-Con) as a part of their annual Tech Fest "Daksh". A presentation on Silverlight was delivered by Mr. Deepak Jagdish, who happens to be a Program Manager for the Microsoft Student Partner project at Microsoft India. The session started at 10:30 and drew a crowd of 250+ students from all over the city.
After the initial formalities, Deepak started the session. he began talking about the basic concept of UX (user experience) and what is its relevance in today's world. Then he moved on to the designers versus the developers perspectives. The absence of a common platform between developers and designers lead to an inferior UX and introduced XAML as a solution to this problem by Microsoft.
Next he introduced the entire Expression Suite of products : Blend, Design, Web and Media, and explained about each of their usages. Then he moved on to Silverlight and its capabilities. How it is a cross-platform solution and mentioned the flexibility to code in any of the .NET supported languages for creating a Silverlight website. Finally he demonstrated the Silverlight technology by showing a sample website with embedded video powered by Silverlight. He took the audience through the steps for creating a such demo website in the Expression Blend Feb 2008 demo edition.
Deepak also happened to be a two times national champion of the Imagine Cup Software Development event organized by Microsoft. However, he is not competing this year and in fact is on the other side of the Imagine Cup team. he is conducting the interviews and other stuff for the participants of this year.
A couple of days ago I posted an article on Microprocessor Programming on this blog. There I wrote about the Intel 8085 microprocessor and posted a link to its data-sheet. However, later I found some of the other data sheets related to Intel 8085 microprocessor. They consist of mostly those ICs which I had in my curriculum and used in projects. Here are the set of the data sheets that I have. I have uploaded them for you all.
Intel 8085A | 8 bit Microprocessor for Military purposes |
Intel 8085AH | 8 bit HMOS Microprocessor for general usages |
Intel 8155 | 2048 bits Static MOS RAM with IO Ports and Timer |
Intel 8255A | Programmable Peripheral Interface |
Intel 8279 | Programmable Keyboard or Display Interface |
Looking at the original data sheets help a lot. You get valuable information from them. Remember that a data sheet is the document that is supposed to provide a complete overview of the IC as well as explain its capabilities and structure from the users point of view.
Well, that is all that I could find in my hard disk. Even I am surprised to see them still there. If I find some more helpful stuff, I will post it on this blog only. If you require some other data sheets, just post a comment.
I have been interested in Microprocessor programming ever since I had it in my curriculum back in 2005 for my B.Sc. Computer Science final year. We had the Intel 8085 in our syllabus and coding on it was real fun. In fact it was a revelation for me to know how exactly were the instructions executed by a processor. It gave me an in depth view of the internal hardware level working of a computer.
Recently I am getting a lot of questions about the simulators and help files for microprocessor programming, not only for 8085, but also for Z80, 68K and 8086. So here is a collection of stuff that I have collected and book-marked over the years on this topic.
Most of the coding that I did for Intel 8085 was either on paper or on the simulator. The simulator which I used was GNUSim8085. It was an excellent simulator and allowed me to debug and set breakpoints in my code and the ability to trace the program while checking the register values and the memory contents after each instruction execution. I have uploaded for all of you, the program along with a very helpful guide that I downloaded from the Internet. Download GNUSim8085.
The two books that I followed for 8085 were authored by B.Ram and Gaonkar. The Gaonkar book is very popular with students across India and the first book by B.Ram has got some very good codes written. I also recommend the original data sheet of 8085 which is of great help.
Recently one of my fellow MSPs asked for help on microprocessor programming on the legendary Motorola 68000, also fondly known as the 68K. I never did any real programming on this one. I have never even seen a kit also. The coding that I did was all on a simulator that I found on the Internet. You can have a look at the 68000 simulator homepage and download the simulator for Windows platform from there.
I also happened to stumble upon this great book called Motorola M68000 Family Programmer’s Reference Manual from Motorola which was of great help in understanding the architecture of 68K. It was a great help to programming too. In fact it was due to this book that I was actually able to help out one of my friends about 68K.
I guess the above information was useful to you. I wrote this post keeping in mind all the things that I would have liked to know and download when I had started coding with these microprocessors. If you feel like saying a Thank You or need some additional information, post a comment here.
When we install SP1, the installer keeps copies of the older versions of files it is replacing. This is done just in case the user wants to roll-back to the original Vista, without SP1. However if you are satisfied with the machine after installation of SP1 (like its running for a couple of weeks without any glitches), then its safe to assume that you will never want to uninstall SP1. So you can delete these unnecessary set of files and get back some free space.
Thankfully this feature is already provided with SP1 installer, so no need to delve deep into the file system or download third party tools. Just open the command prompt and run vsp1cln.exe. It takes little time to execute.
Being in India, I have only heard of Apple as a company. I have never used a Mac in my life, but I from what I gather, Apple has become an urban legend. I have tried my hands at iPod and liked it a lot. The UI was great as well as the integration level with iTunes.
Then I got hold of the book: "iCon", a biography of Steve Jobs ... "the greatest second act in the history of business". Upon reading it, I have become an admirer of Apple and Jobs. Needless to say, whenever I get a new article with Apple's name on it, I try to give it a read. Here is something that I found today : How Apple Got Everything Right By Doing Everything Wrong. Despite its bit quirky title, it was very interesting take on Apple's policy and strategies. How they are going against the open-source and other popular beliefs and practices and still emerging as a successful company. I recommend it to anybody interested in the urban legend of a company called Apple.
Currently, the Internet is abundant with articles, posts, debates (and flamings) about the standards support of IE8. The IE8 beta 1 which was released last week added more fuel to the fire. A lot of developers are concerned about it and a flurry of debates is livening up the scene.
Most of the stuff that we usually encounter on this topic can be classified into:
Highly technical : For the set of hardcore developers and geeks only. Most of it does not make sense to outsiders.
Technical : Like the ACID test. I do not know how many people totally understand it (I don't), but the basic idea is easy to grasp with pictures and all (and that is why the popularity).
Hype, Criticism, and Flaming : IE Lovers Vs IE Bashers ... the usual age old battle.
However, today I encountered a totally different type of article which explains the whole standards thing from a different perspective, which apart from making a lot of sense is quite a good read. Very oddly titled Martian Headsets, the article compares the standards thing with a odd example. In spite of the lightweight and funny attitude, the author, Joel Spolsky, manages to explain the thing rather clearly and I got a clear idea of what was the main problem with the IE8.
Yesterday I delivered my first session on .NET as a Microsoft Student Partner (MSP). The session was held in the Sun Lab of Dept. of CSE in University Science College, Rajabazar. The topic was "Introduction to .NET". Around 30-40 pupils from our department attended the session along with a couple of members of faculty.
Initially I was feeling a bit tensed about having to give a public talk, but it all vanished as soon as I started interacting with the audience. The discussion was aimed at giving a good overview of .NET and demonstrate its features. The initial discussion about the features was a bit boring I guess, judging from the scarcity of response from audience. But it all livened up as soon as I began to show the Demo Applications. The audience began to ask a lot of questions and I did my best to give satisfactory answers.
The whole session went on for about one and half hours with lots of questions from the audience. The session came to an end with Prof. Sanjit Kr. Setua (SKS) announcing that our Department has subscribed to the MSDN Academic Alliance. This will allow all the students to use the entire suite of Microsoft softwares (except Office) for non commercial purposes both on Campus, as well as their home PCs.
Here are a couple of pictures of the session :
I have created a web based file sharing account for the MS_Club's use. There I will put up all the files associated with the MS Club of CU. The URL is : http://www.drop.io/MS_Club_CU/. The club members will be able to access all the files. To prevent unauthorized access, there is a password protection.
Aarhan 2k8 is the Techno Management fest of NIT Durgapur. This year the fest was held from 14th Feb to 17th Feb and had more than 50 events in total. From the Department of Computer Science and Engineering, University of Calcutta, we formed a team of three members for participating in the events. The team included: Sukanta Bhattacharjee, Ramaprasad Chakraborty and me (Bigyan Bhar).
We started on 13th Feb from Kolkata by bus and reached NIT at night. From 14th to 17th there was a tight schedule of very interesting events. We aimed for the programming contests and competed in :
Code Marauders | C programming | 2nd place. |
Micromania | 8085 and 8051 microprocessor programming | 2nd place |
Khula Maidan | Programming | Finalist |
Kaffeine Wars | Java programming | Finalist |
Konfigure | Linux configuration | Finalist |
Srishti | Software Development |
On 17th there was the prize distribution ceremony and we won 2 prizes. Unfortunately unlike last time, this year the organizers did not give out the third prize, which we were confident of acquiring in the Khula Maidan and Kaffeine Wars. On 18th we came back to Kolkata after enjoying the 4 days of events and 3 sleepless nights.
Here are a couple of pictures taken at the venue:
Here is the link for the complete set of pictures that I uploaded in Picasa for viewing and downloading at the full size : http://picasaweb.google.com/bigyan.techie/Aarohan2k8NITDgp
I have been looking in the internet for a comparison of the suite for a long time. It will be great to show them in our Campus Club at the time of Visual Studio 2008 launch. Finally I found an official version from Microsoft only. Here's the link,
http://msdn2.microsoft.com/en-us/vstudio/products/cc149003.aspx
Personally I use the Professional Edition for my use. However, the Express Editions are very good for hobby programmers like me. Had I not got a subscription to the MSDN Premium, most probably I would have used it too.
The Team Suite and its cousins seem to be overkills for our small needs. Use them only for professional level stuff. Most of us do not need that sort of extensive features.
I would recommend the Express Editions for all those amongst us, who would like to try and build cool stuff using MS technologies. Its completely free and comes with its own version of MSDN, called the MSDN Express Edition. You can download it here along with the MSDN.
Ever since our Rajabazar Science College campus has got a Sun Campus Unit, people have started to ask me questions about Java. The most common query seems to be "how to get started with java?". The main problem is with the Campus Unit, which is talking a lot about Java, but failed to provide this very basic information. So I decided to write a "getting started" guide here and refer people to it.
To get started with development in Java in the Windows platform one needs the following programs. All the 3 programs are free for use. You do not need to pay anyone anything for them. Any standard Windows XP PC with more than 256 MB RAM can support all these softwares.
This kit comprises of the Java compiler "javac" and numerous other tools which are required for Java development. The current version is jdk v1.6 update 4. You can download it directly from here (71.2 MB exe).
While it is possible to write java programs in any text editor, it is advisable to use an IDE as it provides an one stop solution for most of the development tasks. There are many IDEs for Java, but I would recommend :
BlueJ : It is a very simple IDE, suitable for first time java programmers, who would like to try out java programs, rather than write a full length software. This is a very lightweight application and offers the support to compile single .java programs without having to create a project. However, some of the advanced features needed for a software development project are missing. The current version is BlueJ v2.2.1 (3.6 MB exe).
NetBeans : This is a professional quality IDE with all the advanced features that are needed for a large scale software project. However, I feel that for beginners this can be quite a complicated piece of software. You can download the NetBeans 6 basic version (21.5 MB exe).
If you need any further help, post a query here, I will try to answer it to the best of my capabilities.
I have been planning to buy a mobile phone for a really long time now. More than six months have gone in deciding which model to buy and which connection to take. In the process, all of my friends have got quite irritated with lots of questions. I have this habit of asking a lot of questions about any new thing that I am interested in. With so many models to choose from (even with my meager budget) and so many types of connections, I was quite confused.
Finally I zeroed to Motorola w180 which was the most featured phone in my budget. Then came the problem of choosing the connection. I found out that most of my friends used Vodafone, so it was a natural choice for me as well, as the call rates would be cheaper (although it did not turn out to be that at the end).
I found out that even after I have decided on the service provider, there were plenty more things to decide upon. First was the payment type : prepaid or postpaid. Upon seeing the plans I decided upon a postpaid connection as it was cheaper and with more features than the prepaid ones. Moreover I do not want to be in a situation of having "no balance" on my phone and having to make an urgent call. This "no balance" thing seems to be typical with all my friends with prepaid connection.
As if all these complications were not enough, I had to choose the "plan" that I would like to subscribe to. This proved to be a bad experience. The service provider that I chose was formerly known as "Hutch" and now it has been acquired by mobile giant Vodafone. This takeover was not that seamless and the new owners forgot update the web site with their latest plans. Thankfully the customer care staff were very friendly and replied to my long list of queries about the various plans and other options.
I must have troubled the fellows a lot for they were visibly relieved when I finally told them what I had decided. Then a lot a form-filling took place. Thankfully the customer care staff did most of the things and I had to only answer their question and sign my name about five times.
So I got myself a mobile phone at last. I never thought that owning a mobile phone would be so much of a complication. The whole process was quite lengthy and involved a lot of decision making. I was flabbergasted with the sheer number of options that we have on each stage of the whole process. I have not thrown away the papers that contained the plan details of prepaid and postpaid connections of Vodafone alone and I intend to write about them one of these days.
Baba, whom I convinced that a mobile was necessary for me in the long run. My friends : Prasenjit, Soumitra and Riya for advising me on the handset and connection types and patiently answering my queries; Sananda and Rini for advising on connection providers. Lastly, but not the least, I thank Anirban Bhowmik, the Vodafone customer care personnel who helped me through the whole process and answered my never-ending queries.