Sunday, October 28, 2007

Project P2P Library

A good library for developing Peer-To-Peer applications is being developed by me and a friend. The aim is to enable ease of development of a Peer to Peer System. For now, you can write a peer as
public class MyOwnPeer extends Peer
{
//implement few methods!
}
The peers identify each other through IP Multicasting. In a day or two, I hope to write a short tutorial on how to develop a P2P chat application using our library. For now, it runs within private networks only. And does not run across internet!

Also the library at its current stage enables very easy development of Server application! you can write your echo server without having to worry about threading or anything else!
It is as simple as
public class EchoServer extends ServerComponent
{
//implement few methods!
}

We hope to release the library as early as possible.

The echo server sample is shown below!
Isnt' that easy! This is just the very initial stages of development and hopefully the library grows to something really big. The library relies heavily on Object-Oriented Concepts !
// SAMPLE SERVER CODE!!
class EchoServer extends ServerComponent {

public EchoServer(int port) {
super(port);
}

@Override
public void beforeServerStarts() {
System.out.println("Server about to start");
}

@Override
public void onIncomingConnection(Socket socket) {
try {
BufferedReader buff = new BufferedReader(new InputStreamReader(
socket.getInputStream()));
PrintWriter pw = new PrintWriter(socket.getOutputStream());
String temp = "";
while ((temp = buff.readLine()) != null) {
pw.println(temp);
pw.flush();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

@Override
public void onServerStarted() {
System.out.println("Server Started!");
}

public static void main(String[] args) {
EchoServer my = new EchoServer(1233);
}
}

Saturday, October 27, 2007

Good .NET Reflector

Download this good tool called "lutz roeder's .net reflector" from the link below
http://www.aisto.com/roeder/dotnet/

Using this one could load a .NET assembly and decompile it to see the source code and do something more. I saw this tool being used in one of the C#3.0 Nuggets (I think it was in Object Initializers video). This could be used to understand how compiler takes in our source code and modifies it well!

I knew unused variables in your source code would not be included but it was something really fun to check it out.
I gave two unused variables and a used variable and when I decompiled the code, I found the two unused variables not mentioned at all! there is the proof!

C# 3.0 - Changes ! Learn them Quick!

Thanks to Mike Taulty, famous for MSDN Nuggets, that I started to learn LINQ. Will post the exact link sometime later.
But these are the various LINQ techs coming up:
1. LINQ to SQL
2. LINQ to XML
3. LINQ to Entities
4. DLinq
5. BLinq
and much more.

Before that I would recommend to learn the new changes in C# 3.0. The nuggets could be found here
http://www.microsoft.com/uk/msdn/nuggets/tags/C%23%20Version%203.0/default.aspx?pg=1

I am yet to watch these videos and once done! I would post some hello world! kind of programs that can help people like me to learn easily. Most of these videos usually use a very complex kind of examples and sometimes it is good while sometimes it is not so good!

More later...

Saturday, October 20, 2007

CapGemini Second Round of Interview

I had my second round of interview at CapGemini TME Office at Atlanta. It was a great office, looking very much like my old office at Kanbay, but the difference being everyone had their own private cubicles unlike at Kanbay. The interviewer Mr. Micheal talked to me about the pros and cons of having a common space for everyone. Anyway coming to the interview aspects, it was everything about behavioral aspects of a consultant. I was kind of under-prepared for this kind of an interview and add to that the candidates whom I met during my wait time, most of them from GaTech! That kind of put me off to a defensive stand, come on everyone would be afraid to meet top notch engineers, consultants from a top-notch College. And it took me quite a long time to get into the "good" mode that is needed to do an interview well.
Well coming to the experiences part, I really think that it depends at least 50% on the interviewer that impacts your performance during an interview. The first round was not all that great, the interviewer had my resume, he had a list of questions, almost four pages long and I was all done in 20 mins! isn't that too long and it was kind of mechanical, routine nothing that exciting to make me talk a lot about my experiences. I think I did well on that. I was asked a series of questions and all of these were behavioral. They tested you as a team leader, as a motivator as a problem solver. They test your team leadership skills more than what they talk about your academics. questions like tell me a situation when you had too little time to a lot of things, tell me a time when you went through a lot of stress and how did you cope it. I think I did fairly well.
The second round was the one I liked the most. It was one of the best interviews I had and I have had interviews with almost 10 different people and it was a really great interview. Again, I was tested on the very same things - leadership, motivation skills, commitment, learning ability.
I think I did well. I am not sure if it is often the case, but this is the first time I have been walked out of the interview till the exit door by the interviewer himself and he appeared to be very impressed.
Irrespective of the result, I think I had a terrific experience of getting interviewed at CapGemini, especially my first round of interview with Spencer Lentz and the final interview with Micheal. Both were amazing people with great interviewing skills. I hope everyone of my friends would get such a great interviewers for their interview.
If anyone reading these posts need some light on CapGemini interviews please leave me a message at krishnabhargav@yahoo.com!

Monday, October 08, 2007

Interview with CapGemini

I have tried to search for some links which would give me some information on interviewing with CapGemini U.S but could not find any thing that was free. Well, I thought I would share some of my experiences. I had an interview with CapGemini today at UGA with a Senior Manager and I guess I cannot mention his name without his consent.
Anyway the interview was for "Staff Technical Consulting". It was more about conversational interview and we did not talk much about technical aspects. The interviewer, I guess was looking for more on the behavioral aspects of me, as a prospective consultant. The questions were more on the lines of "describe a situation where you motivated a team", "describe a situation where you had a lot of work to do and less time", etc.
I think I did a good job, I answered the questions and let us see if i can make it.
For those who would attend a similar interview, in case you need some more information feel free to mail me at krishnabhargav@yahoo.com

Project SoccerBots - Soccer Simulator in C#/.NET

I started the work to port Soccer Simulator which I wrote in Java on to .NET. I am using C# and making heavy use of User Controls to render efficient animation. So far, things are going on well and I hope in the next two weeks, I would be able to upload the project and release it as an Open Source Software at http://www.codeplex.com/soccersim
The basic idea is to simulate soccer game where two teams compete against each other. A user can write his own team and then make the Simulator play that team. In my Java version, which has some bugs and does not run that great, teams are written in Java. As an extension I am planning to support XML teams in my new simulator so that any one who loves games and who know little XML can use the software. I guess it would be more acceptable. The current simulator is inspired from both my original Java version as well as some ideas taken from the Ascii soccer developed by Prof. Tucker Balch and Dr. Maria Hybinette. The details are in this link
http://www.cs.uga.edu/~maria/classes/8220-Fall-2007/project1soccer.html
By the way I am in one of the pictures in that class website.

Dr. Tucker also has this TEAMBOTS which is a more advanced and a great Soccer Simulator written in Java. Though, I am not refering the code from that simulator, might be I would try it out to see if I can add a feature or two.

A friend of mine is helping me on this project and this would be released as a collective effort. The deadline is November 4th and before that we plan to release the SoccerBots 0.5 BETA!