Wednesday, October 22, 2008

UnChrome your Chrome

Regarding to Google, "Google Chrome is a browser that combines a minimal design with sophisticated technology to make the web faster, safer, and easier". Unfortunately, each Google Chrome installation contains a unique ID that allowing identifying its user. Google doesn't make it an easy job to remove this ID.

The UnChrome application was designed to help you with this task. It replaces your unique ID with Null values so that your browser cannot be identified any longer. The functionality of Google Chrome is not influenced by this. You only need to apply UnChrome once.

If Google Chrome is started now then please close it. Afterwards, please click on the link below to anonymize your Chrome installation.


Article Link
Download Link

Sunday, October 12, 2008

Messing around Facebook..

What's the quickest way to findout answers to following questions about facebook users:

1- How many male computer science graduates from my *university* aged between 18 and 25 are registered on facebook?

2- How many male computer science graduates from my *country* aged between 18 and 25 are registered on facebook?

3- How many *female* graduates from my university aged between 18 and 25 are registered on facebook?

4- How many graduates from my university are registered on facebook?

The quickest thing that came to my mind was to use the API somehow, however there is something else that facebook wants advertisers to use to answer such questions!! But hey, anyone can turn out to be an advertiser on facebook :D

So, yeh! it's pretty easy and thanks to Alec Saunder for innovating this trick!

To answer countably infinite such questions, follow the steps that he has neatly outlined on his blog here.

Summarizing it, there is no big trick here. Each advertiser is facilitated by facebook with a query builder that immediately returns *ONLY* the number of results of a specific input query. With a little investigative approach and excessive show of curiousity, you can use this tool to build a strong data set of facebook statistics, which by all means, can be called a representative sample of all the world wide web users!

Following is a depiction of my lack of creativity to use this tool, :p

There are 2440 18 year old males from China registered on Facebook.
There are 1,143,180 18 year old males from USA registered on Facebook.
There are 31,020 18 year old males from India registered on Facebook.
There are 11,400 18 year old males from Pakistan registered on Facebook.
There are 267,760 18 year old males from UK registered on Facebook.

Data Mining in Social Networks

With huge social networks around, I felt like it might be easier to apply some typical data mining algorithm on any dataset that I will extract from these networks, using their released APIs.

So, it turned out that it isn't a child's play for two reasons:

1- the data from social networks is relational, and hence data objects are linked in one way or other. Contrary to this, in typical propositional data, for e.g. patient records, data objects are independent of one other. So, a different breed of mining algorithms are required (e.g. Bayesian classifiers).

2- the process of extraction of data, keeping in consideration the legality of the technique, and other limitations.

Anyways, we've got to find something for our data mining class project. I jumped into Web Mining from typical and *boring* UCI data sets' based projects. Then, I started noticing interesting approaches to mining social networks.

So, I was looking for an introductory paper on mining social networks and I found this paper hosted by the Knowledge Discovery Laboratory of the Computer Science department at Purdue University, here. It really serves the purpose and the title "Data Mining in Social Networks" makes it more interesting for newbies. The authors are David Jensen and Jennifer Neville. I would recommend anyone interested in having a decent introduction to the subject matter, to go through this paper once!

~over and out

Tuesday, September 30, 2008

Underwater astonishments - Camouflaging Octopus Footage

I have always felt proud of my inquisitiveness and investigative approach to dig deeper into almost anything that amazes me (yeh anyhting!). I have been following very aggressively things people share on Digg, Dzone, and Youtube; and, I usually get to know more about them, beyond the content that's shared..

But, something, I don't know how, but I missed it. It was shared by a very good brother, and literally, this was beyond most of the great thing I have ever seen or heard about. For me, as being a computer freak, this was beyond calculations, or algorithms.. and I am sure it's a jaw-dropping footage of the beauty of nature, mashallah for everyone out there associated with any sort of engineering and non-engineering field of study. The only comment I can bring to words is that it's not out there without a purpose, it's not a coincidence, and it's not a yet-another illusion; but, it's a real-world miracle of Allah, a fascination that carries numerous signs with it (atleast for me).

Anyways, so it's an Octopus (Vulgaris) that for various reasons use its ability to match its pattern, color, brightness, and texture of apparently anyhting that it's resting upon. Above all, this is the first time it's caught on camera.
See the following video:



Following is the complete talk given by David Gallo. "David Gallo works to push the bounds of oceanic discovery. Active in undersea exploration (sometimes in partnership with legendary Titanic-hunter Robert Ballard), he was one of the first oceanographers to use a combination of manned submersibles and robots to map the ocean world with unprecedented clarity and detail.
He was a co-expedition leader during an exploration of the RMS Titanic and the German battleship Bismarck, using Russian Mir subs. On behalf of the Woods Hole labs, he appears around the country speaking on ocean and water issues, and leading tours of the deep-ocean submersible Alvin."


Tuesday, September 16, 2008

Hurricane IKA

This link has the best pictorial depiction of the devastation caused by hurricane IKA! do check them out. Let's wish the best for the affected people..

Monday, September 01, 2008

What is AI Winter?

An AI Winter is a collapse in the perception of artificial intelligence research. The term was coined by analogy with the relentless spiral of a nuclear winter: a chain reaction of pessimism in the AI community, followed by pessimism in the press, followed by a severe cutback in funding, followed by the end of serious research.

It first appeared in 1984 as the topic of a public debate at the annual meeting of AAAI (then called the "American Association of Artificial Intelligence"). Two leading AI researchers, Roger Schank and Marvin Minsky, warned the business community that enthusiasm for AI had spiraled out of control and that disappointment would certainly follow. They were right. Just three years later, the billion-dollar AI industry began to collapse.

The process of hype, disappointment and funding cuts are common in many emerging technologies (consider the railway mania or the dot-com bubble), but the problem has been particularly acute for AI. The pattern has occurred many times:

1966: the failure of machine translation,
1970: the abandonment of connectionism,
1971−75: DARPA's frustration with the Speech Understanding Research program at Carnegie Mellon University,
1973: the large decrease in AI research in the United Kingdom in response to the Lighthill Report,
1973−74: DARPA's cutbacks to academic AI research in general,
1987: the collapse of the Lisp machine market,
1993: expert systems slowly reaching the bottom,
1990 or so: the quiet disappearance of the fifth-generation computer project's original goals
and the generally bad reputation AI has had since.
The worst times for AI have been 1974−80 and 1987 to the present. Sometimes one or the other of these periods (or some part of them) is referred to as the AI winter.

The historical episodes known as AI winters are collapses only in the perception of AI by government bureacrats and venture capitalists. Despite the rise and fall of AI's reputation, it has continued to develop new and successful technologies. AI researcher Rodney Brooks would complain in 2002 that "there's this stupid myth out there that AI has failed, but AI is around you every second of the day." Ray Kurzweil agrees: "Many observers still think that the AI winter was the end of the story and that nothing since come of the AI field. Yet today many thousands of AI applications are deeply embedded in the infrastructure of every industry." He adds unequivocally: "the AI winter is long since over."

[source: wikipedia]

back to school

Hi, I was doing good, but the school started last week :I
So, I got myself registered for 2 classes:

justification - Expert Systems:

  • Attending explanatory and detailed lectures about disciple architecture,
  • To work towards certificate in Intelligent Agents,
  • To listen to the critical questions posed by students at disciple approach,
  • Trying to get implicit answers ciritcal to my thesis study, and
  • To become able to write some journal paper related to what I’ll be taught in class and what I am studying for my thesis.

jjustification - Data Mining:

  • Dr. Carlotta Domeniconi was teaching it (no more, but new prof. is good),
  • To learn atleast the definition of mining!,
  • to diversify my know-how of cs topics,
  • to find out a way to take time out to use google maps api to crawl google maps data and use it somehow (how intelligent :p)
  • ...

Sunday, August 24, 2008

Mason Tops U.S. News List of Schools to Watch

August 22, 2008
By Dave Andrews and Tara Laskowski

Mason was named the nation’s number one university to watch on U.S. News and World Report's new list of “Up-and-Coming Schools” published on Friday, Aug. 22.

The list, comprising 70 colleges and universities across the country, identifies “schools that have recently made the most promising and innovative changes in academics, faculty, students, campus or facilities.”

In its annual peer assessment survey, U.S. News asked education experts to identify schools that met those criteria. This is the first time a list of up-and-coming schools has been created.

"Being recognized by U.S. News & World Report for this is both an honor and validation of our efforts,” says Mason President Alan Merten. “This acknowledgment is something that every one of our faculty, staff, students and alumni should be proud of.”

Celebrating its 37th anniversary in 2009, Mason has strong academic and research programs, which concentrate on producing successful students and accomplished alumni with a global focus.

In the past three years, Mason has added 27 degree programs, including undergraduate degrees in global and environmental change, and film and video studies.

The university also partnered with the Smithsonian Institution in fall 2007 to create the Smithsonian Semester, which allows students to live on-site at the Conservation and Research Center of the Smithsonian's National Zoo and study global-scale conservation issues and civic concerns.

The university has a reputation for forward-thinking academic offerings. In the 1980s, Mason established the first engineering school in the country to focus on information technology to meet the workforce needs of an emerging high-tech economy.

The university also boasts some of the most cutting-edge research in the biosciences, from cancer research to thwarting biological weapons.

Its new biomedical research laboratory is one of 13 nationwide being built with the help of a $25 million grant from the National Institute of Allergy and Infectious Diseases, part of the National Institutes of Health.

The university's students are innovators as well. From discovering new galaxies to lobbying legislators on policy issues, Mason students have success in all areas.

Mason has one of the strongest undergraduate research programs, and students regularly publish research that contributes to the knowledge of their field. The school has produced acclaimed authors, popular television personalities, celebrated Olympic athletes and renowned scientists.

Mason is a young university that continues to grow. The school is in the midst of its largest structural transformation ever, investing more than $500 million in construction between 2002 and 2013.

Highlights include multiple new academic buildings, an on-campus hotel and conference center and what will soon be one of the largest academic, residential communities in Virginia.

“For universities or colleges to achieve and maintain excellence, it is imperative that they continually seek ways to be innovative, enhance their academic programs and upgrade their facilities,” says Provost Peter Stearns.

“This strategy has allowed our faculty to pursue their research, and students to achieve their educational goals.”

Sunday, August 17, 2008

Comparison of Enum Types - Java vs C# vs C++

Enumerated Lists in Java

Each item in the list is called an enum. Each enum is of the type under which it is declared. It is no way a string, or any integer. The simplest declaration of an enumerated list in java is as follows:

enum BookType { HARDCOPY , EBOOK }; //where the semicolon is optional

Note here that HARDCOPY and EBOOK are not strings, there type is BookType. Anyways, once declared, we can use an instance of BookType as,

BookType bt1 = BookType.HARDCOPY;
BookType bt2 = BookType.EBOOK;


Beyond this, any other assignment to BookType would result in a compilation error.
Java’s coding conventions want you to capitalize all the constants in an enum type declaration. Having any other case combination is legal.

An enum in Java is just like a separate class. So, they can be declared independent of any class, like a different class. However, the only access modifier applicable to an independent enum declaration is public (and default i.e. no modifier). It can never be private or protected (obviously!).

They can also be declared as a class member; however, they can never be declared as a local type i.e. within a method! Any access modifier can be used with an enum type which is declared inside a class - It can be public, private, default (no modifier), or protected.

If an enum type is declared in classOne and it is being used in classTwo, then the assignment of values to this enum type’s instance is changed as follows:

public classOne {
enum BookType { HARDCOPY , EBOOK }
BookType bt;
}

public classTwo {
public classTwo(){
classOne instanceOne = new classOne();
instanceOne.bt = classOne.BookType.EBOOK;
// instanceOne.bt = BookType.EBOOK;
// this is wrong, compilation error.
}
}


As I said earlier, an enum type declaration is simply a kind of a class declaration and hence it can incorporate constructors, and member variables and methods. Why do you need all this? Because sometimes you really need to know more about a particular enum constant then just a weird looking capitalize word.

Consider following:

enum BookType{

HARDCOPY("expensive"), EBOOK("cheap");

public String bookPriceIdea; //bad practice: use getter/setter.

private BookType(String priceIdea) {
this.bookPriceIdea = priceIdea;
}
}


In the above example, each enum type is associated with a string that tells more about the price of the type of book. Think of anything else, and you can associate it to any enum type in a similar way. Notice that I have declared a member variable within the enum type declaration, this is allowed. Also note that the access modifier of the constructor is private, which is again strange; however, it cannot be public or protected because apparently it’s for internal use (invoked automatically), and not for any external invocation.

Optionally, you can just ignore the access modifier here to give it a default behavior. Accessing this additional attribute associated with an enum constant is easy and is as follows:


BookType bt = BookType.HARDCOPY;
String btPriceIdea = bt.bookPriceIdea;


Finally, there is something called “constant specific class body”. Within the declaration of the enum type, such a class body (that looks like an inner class) can be associated with any enum constant. Within this code section/body, you override a member function of the enum type declaration. The following example will hopefully clarify this:

enum BookType {

AMAZONKINDLEBOOK,
EBOOK,
HARDCOPY{
public boolean getBookDependencyOnElectronics(){
return false;
}
};

public boolean getBookDependencyOnElectronics(){
return true;
}
}


-------------------------------------------------------------------------------------
Enumerated Lists in C#

Simple declaration:

Enum enum-type-name { enumConstant1, enumConstant2 … }

Consider following example:
Enum FamilyMembers
{
Father,
Mother,
Daughter,
Son
}


The first constant has a default value of 0 (i.e. father = 0). Each of the following constants are given increasing integers from 0 onwards like 1, 2, 3 and so on. Note that the default type of the constants is the primitive type int. If you don’t want the integer assignments for constants to start from zero, you can manually initialize the first one from the intended starting int as follows:

Enum FamilyMembers
{
Father=1,
Mother,
Daughter,
Son
}


So, Father=1, Mother=2, Daughter=3 and Son=4. You can do the following in C#:

System.Console.WriteLine(“Order of mother is “ + (int) FamilyMembers.Mother);

However, the following is not allowed in Java:

System.out.println(“Order of mother is “ + (int) FamilyMembers.Mother);

Instead, you can associate the attribute “order” with FamilyMembers type as discussed earlier.

Coming back to C#, one can also do the following to associate average ages of members of a typical family:

Enum FamilyMembers
{
Father=50,
Mother=45,
Daughter=20,
Son=15
}


And,

System.Console.WriteLine(“Average age of a mother is “ + (int) FamilyMembers.Mother);

The base type of an enumeration, which is by default int, can infact be changed to any of the integer types. Following is the syntax to do so:

Enum FamilyMembers: short
{
Father=50,
Mother=45,
Daughter=20,
Son=15
}


Even though the base type is short, but an explicit cast is still required when using these as shown here:

short averageAge = (short) FamilyMembers.Father;

-------------------------------------------------------------------------------------
Enumerated Lists in C++

Enumerators in C++ are less complicated then structures, and they are not class-like declarations as they are in Java. Each constant in the enum type declaration is called enumerator (called enum in Java). Consider the following famous enumeration of days of the week:

enum week_days {
Sunday,
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday
};

void main (){
week_days dayOne;
dayOne = Wednesday;
cout<<dayone<<endl;
}


Note that the declaration of enumeration is nothing different to what we have seen previously except for the face that the semicolon is a must in C++. Consider the following code:

enum week_days {
Sunday,
Monday=1,
Tuesday,
Wednesday=1,
Thursday,
Friday=9,
Saturday
};


In C++, enumerations are treated internally as integers which is again unlike Java, where the type of enum constant (enumerator) is its owner enum type, and nothing else. The thing to note here is that Sunday=0, Monday=1, Tuesday=2, Wednesday=1, Thursday=2, Friday=9, and Saturday=10. And so, same integer can be associated with multiple enumerators.

Since enumerators are internally treated as integers, apparently all integer arithmetic can be performed on them. Hence, the following is legal:

int i = Sunday; // i becomes 0
int j = 3 + MOnday; // j becomes 4


However, the reverse ain't possible - no implicit conversion from int to enum:

week_days dayOne = 2; // compilation error, such a type conversion is illegal.

Sunday, August 03, 2008

I baked fudge brownies; all alone!!!

Yes I did it.. except for a few seconds of confusion in the process, it went fine and the outcome was delicious!.. more importantly, it's good to eat it all alone.. err, or is it :p

















Friday, August 01, 2008

Instantaneous updates on feelings..

So, don't even dare to pass by if 'enraged' is the update! Anyways, I sneaked into someone's private space to get this snapshot.. I would love to have one such I dont know what to call it, let's say may be 'feeling manager' :D

Wednesday, July 16, 2008

VisualVM 1.0

VisualVM is a visual tool integrating several commandline JDK tools and lightweight profiling capabilities. Designed for both production and development time use, it further enhances the capability of monitoring and performance analysis for the Java SE platform. Using it,

Application Developer can monitor, profile, take thread dumps, browse heap dumps.
System Administrator can monitor and control Java applications across the entire network.
Java Application User can create bug reports containing all the necessary information,












[source: https://visualvm.dev.java.net/]

Monday, July 14, 2008

I am a 'little' part of AAAI

Today, I became a part of apparently the most active Artificial Intelligence group i.e. Association for the Advancement of Artificial Intelligence (AAAI). I was eligible for the Student Membership costing 35$ per year for students in US/Canada. Following are the officially listed benefits associated with a typical membership:
  • AI Magazine: Included in your basic membership
  • The AAAI Conference on Artificial Intelligence: Members receive substantial discounts on registration fees
  • The Conference on Innovative Applications of Artificial Intelligence: Members receive substantial discounts on registration fees
  • The online AI Directory: Included in your basic membership
  • Sponsored Journals: Members receive substantial discounts on subscription fees
  • The Spring Symposium Series
  • AAAI Technical Reports: Members receive discounts on technical reports
  • AAAI Press
  • Access to expanded world wide web services: Members receive password access to controlled portions of AAAI's web, where they can find full-text versions of the latest AI Magazine, along with other members-only materials.
  • AAAI Workshops
  • AAAI Affiliates

Sunday, July 13, 2008

A Proper Push-Up!

  1. Lie chest-down with your hands at shoulder level, palms flat on the floor and slightly more than shoulder-width apart, your feet together and parallel to each other.
  2. Look forward rather than down at the floor. The first contact you make with the floor with any part of the face should be your chin, not your nose.
  3. Keep your legs straight and your toes tucked under your feet.
  4. Straighten your arms as you push your body up off the floor. Keep your palms fixed at the same position and keep your body straight. Try not to bend or arch your upper or lower back as you push up.
  5. Exhale as your arms straighten out.
  6. Pause for a moment.
  7. Lower your body slowly towards the floor. Bend your arms and keep your palms in fixed position. Keep body straight and feet together.
  8. Lower body until chest touches the floor. Try not to bend your back. Keep your knees off the floor, and inhale as you bend your arms.
  9. Pause for a moment. Begin straightening your arms for a second push-up. Exhale as you raise your body.
[source: eHow]

Wednesday, July 02, 2008

Is the OntologyWorks Knowledge Server a Database?

I was looking for companies that are working with technologies related to Semantic Web. I noticed that a few members in the RIF (Rule Interchange Format) workgroup at w3c are from OntologyWorks.

They
define themselves as,
".. a product company offering a broad suite of semantic technologies including deductive information repositories (our Ontology Works Knowledge Servers), semantic information fusion and cost effective semantic federation of legacy databases, ontology-based domain modeling, and management of the distributed enterprise."

It wasn't unusual for them to justify their existence, considering the fact that there are a number of disbelievers as far as the ability of Semantic Web concerned. One question that they answered was the thing that whether their capabilities were any different from companies offering typical database management system based services. Following is their
justification:
"Our information repositories are called Ontology Works Knowledge Servers to distinguish them from traditional database management systems or “databases” as these are usually called. Our Knowledge Server Family of ontology-based deductive systems do all that a database does but also do so much more that. They are a change of state in database technology, as from water to steam. We also apply our semantic technology capabilities to other information management systems, e.g. semantic legacy database federation, semantic enterprise mission management, semantic enhancement of existing databases and other applications.

In essence, traditional databases contain models of the world that are truncated and mute on many issues. They do not do inference over the model and cannot handle 3-place and higher relationships as our systems can. The emphasis in traditional databases is on storing lots of data and getting some of it out fast when needed. They were built so that users could ask for something, not about something. Traditional systems are brittle, expensive to maintain, and can't provide the answers the modern enterprise needs.

At our end of the semantic technologies spectrum we can describe the knowledge domain you care about with full descriptive power - with temporal understanding, n-place relationships and a powerfully descriptive controlling logic that allows complex inference over the model.

The genius of Ontology Works is that we can instantiate this complex, expressive model (ontology + controlling logic) of a knowledge domain in a deductive system - the eXtensible Knowledge Server (XKS) that gives excellent query performance for complex query whose answers have very high value to the enterprise. Our Knowledge Servers give the user real knowledge discovery, not just data retrieval.

The question then is not, “Is it better to have these highly expressive information systems or go back to mute data models?” The question is, “Yes, this expressiveness is an undoubted good, but is it efficiently computable.” With Ontology Works the answer is “Yes, it is efficiently computable.” Consequently, the economics of implementing our systems is very favorable."

Tuesday, June 24, 2008

Perfect Rainbow!
















I took these snapshots near the newly built dorms at George Mason University's Fairfax Campus. On closely observing these, one can see the second lighter rainbow just above the first. Honestly speaking, this is the first time ever that I saw such a perfect beauty of nature! Anyways, I wouldn't have experienced it if there were no thunderstorm warning, which made us to leave earlier..

Monday, June 23, 2008

IQ Game



To start press the BIG BLUE button.
The RULES are as follows:
1, Only two people can travel at once
2, Daddy (with short brown hair) can not stay with the girls (long hair) without the presence of the mother
3, Mum (with long bluish hair) cant stay with the boys (short hair) without the presence of the father
4, The arrested red-hair girl in stipy outfit cannot stay with any of the family members
5, Only the Police officer and the parents can drive the boat across the river

Click on the people you want to transport
To use the boat click on the red dots next to the boat

Following is some unauthentic info about it:
This test was developed and used in Japan for job and university IQ tests
Mainly used in the IT sector
This test is solved in around 15mins (in Japan)

If you succeed in:
  • 4 minutes: you are a Genius
  • 6 minutes: You are exceptionally intelligent
  • 10 minutes:You are very intelligent
  • 20 minutes:You are average
  • 25 minutes: You are a bit slow
  • 30 minutes or more: You are terrible
Finally, I did it in 6 minutes. But, I am sure that I am missing the atoms of an exceptionally intelligent human being. :D

Wednesday, June 18, 2008

CodeIDE: An Online IDE

Online apps are the way of the future they say, and if you needed more proof there’s now an online IDE for programmers called CodeIDE. CodeIDE is an in-browser development environment that mixes a text field for writing code, a debug panel, a command line input and other tools.
So far CodeIDE supports Basic, Pascal, C++, Perl, Javascript, HTML, MATH and LISP. Registered users get chat tools which can be used to solicit help and advice from other users. If you sign up for an account you’ll also get access to organizational tool like projects and files.
While the text field-based text editor has some impressive features like syntax highlighting, line numbering and search and replace capabilities, I doubt it’s going to replace emacs or Vi for the serious coder.
But aside from the limited text editor feature, CodeIDE is an impressive setup and when used in conjunction with a real text editor the debug features are just a cut-and-paste away. Where applicable (HTML mainly) the debug window auto updates so you can see your markup as you enter it.
While it isn’t all that useful, there’s a nice little AJAXy widget that show live debug results from other users which is kind of fun to watch. There’s also a forum and wiki, though both are a bit short on content since the site just went live a couple of days ago.


Tuesday, June 17, 2008

Where do you sit in class!







Ha, ha, haaa!













ISLAMABAD - June 16: A sergeant of the
Islamabad Traffic Police issuing a ticket to a city policeman for jumping the ‘red light’ at Radio Pakistan crossing on Monday.—Photo by G.A. Zaidi

Tuesday, June 10, 2008

Yes, he said Insect :|

A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects. - Robert A. Heinlein, "Lazarus Long"

Sunday, June 08, 2008

My MS Thesis

On 2nd June, 2008, I started my M.S. Thesis study in a sort of official manner. I requested my advisor Dr. Tecuci and supervisor Dr. Boicu to suggest me a thesis topic. I did it deliberately as I had a bad experience in working on one of my own research topic as part of my undegraduation final year project, where all the responsibility and planning lied with me and all that a supervisor asks you is 'watsp' or 'howz it goin'. So, my understandings lead me to have supervision in the sense of transfer of knowledge, experience, and planning ability.

Also, I added one single condition in regard to my research topic that they might propose: Some how, I want to work in parallel to the Semantic Web Activity. Fortunately, they already had a broad vision about such a project in relation to Disciple System. Eventually, in the next meeting, I was introduced to the vision, direction, timeline, opportunities, and expectations. And, I loved it!

The Disciple System, which is a brainchild of Dr. Tecuci, was not developed since its inception, while keeping in mind a compliance with the artifacts of the semantic web. In the recent years, however, a lot work was done to get the most out of OWL, while extending it where it was required. Now, the related standards have all matured, and at the same time new standards are being developed. To achieve a strong compliance b/w Disciple and those standards, I am required to study, observe, and participate in development of a couple (or may be single) standards, which provide the same (or more) facilities that Disciple is providing in a non-standard way. This would be achieved by identifying relevant W3C working groups (RIF etc), and seeking memberships. Following this, we would rebuild certain components of Disciple to conform to norms of semantic web standards and would come up with some sort of association b/w non-conventional expert systems and semantic web.

Yes, it's all very much abstract as of now and it remains like this traditionally. The more I'll study, the narrower the vision will be, till the moment when I'll be able to say it all in a couple of statements, known as the Thesis Statement.

That's it!

Monday, May 19, 2008

The 4 Core Principles of Agile Programming

Author: Joe Winchester, JDJ's Desktop Technologies Editor, is a software developer working on development tools for IBM in Hursley, UK.

One of the things I really enjoy at the moment is the recognition and adoption of agile programming as a fully fledged powerful way to deliver quality software projects. As its figurehead is a group of very talented individuals who have created the agile manifesto http://agilemanifesto.org/. At its core are four simple principles that, when followed and applied to software projects, generally will ensure a great flexibility and hence higher agility.

Leaving aside how great agile projects are, what worries me at the moment is that more and more people seem to be buying into this idea that agile programming is a noun rather than a verb, and that to do it correctly you have to follow a certain process to the letter.

Point 1: the manifesto for agile developemt states that it puts "Individuals and interactions" over process and tools. In other words, you adapt the process and tools to the team and not vice-versa.

A colleague of mine recently attended a lecture on how their company was going to roll out a company wide agile methodology. They'd given it a silly in-house acronym and appointed a team of people to help projects adopt this new methodology. At the lecture attendees were given a 97 page ring bound handout explaining agile programming that, on page 85, warned people to "beware of powerpoint architects". Forget having a black fly in your chardonnay folks, this is like having a herd of dinosaurs squash your PC and replace it with a punch card mailbox.

Point 2: the manifesto for agile development states that it puts: "Working software over comprehensive documentation".

In the same week a friend of mine e-mailed me to complain that at her company they'd decided to become agile and renamed all of their meetings to scrums. Folks, if it smells like a pointless meeting, if it looks like a pointless meeting, if it tastes like a pointless meeting, then it probably is a pointless meeting. Calling it a scrum isn't going to change that. What was even more ironic was that at said meeting my friend, who was the only person there who'd written any code in the last ten years, yet had to suffer watching six colleagues stare at PowerPoint charts of dates and endlessly argue about which documents had to be signed off at which points in the next few months to obtain the right sizing to get the right approval to go ahead with the project that had the right marketing messages, blah blah, and so forth. The thought of actually coding something and showing it to customers to see what they thought and repeating this process to create an iterative feedback loop was clearly beyond their comprehension. Forget having ten thousand spoons when all you need is a fork; it's like having ten thousand planners when all you need is a developer.

Point 3: the manifesto for agile development state that it puts: "Responding to change over following a plan."

Legal departments can be a huge obstacle to agile development. I've heard so many stories of projects that want to reach customers early to get feedback yet find immovable hurdles thrown up by lawyers who insist that documents must be signed by the customer that their legal departments refuse to do so, creating a deadlock that keeps both sets of lawyers happily engaged, yet drives a massive wedge between the developer and their potential future user ,thereby destroying the whole feedback loop that is essential to the "perpetual beta" concept. When pressed most of the arguments given by lawyers, often pseudo lawyers because they don't actually have law degrees, are usually ridiculous and involve extrapolating things ad absurdum; "What if Foo does Boo and Moo sues us and we all get crushed by a falling comet ?", or recounting quondam horror stories, "Remember when Foo messed up and we all got sued and had to save the day and you're just about to do the same, etc...". Unfortunately legal departments hold a huge amount of power at corporations and love nothing more than to remind other groups of just how big and important they are.

Point 4: the manifesto for agile development state that it puts "Customer collaboration over contract negotiation".

If companies refuse to actually change themselves, even if means changing the core and fabric of all that prevents the projects from becoming agile, then they'll just end up about as flexible as an elephant with two left feet. Being agile is not a buzzword; it is not a religion; it is not a methodology; it is about taking a few core principles and applying them to everything related to the entire development process. It is about taking risks, getting customers more involved with the development cycles, and reaping the rewards at the end when higher quality, better functioning, and more thoroughly tested code is delivered.

[source: http://xml.sys-con.com/read/522904_1.htm]

Sunday, May 18, 2008

Metacrap

Metacrap is a portmanteau drawn from metadata and crap. The origin of the word is unknown, but it was popularized by Cory Doctorow in a 2001 essay titled "Metacrap: Putting the torch to seven straw-men of the meta-utopia."

In the essay, Doctorow illustrates problems in relying on metadata for knowledge representation in online records or files by drawing humorous parallels to real-world systems, as well as showing examples of metadata collapse in online, web-based systems. The fragility of metadata is an important concern because much planning for improving the web (such as the semantic web) is predicated upon certain flavors of metadata becoming widely adopted and used with care -- something which, according to Doctorow's essay, will not and cannot happen.

Doctorow's seven insurmountable obstacles to reliable metadata are:

  • People lie
  • People are lazy
  • People are stupid
  • Mission Impossible: know thyself
  • Schemas aren't neutral
  • Metrics influence results
  • There's more than one way to describe something

The complete article can be read here.

[source: http://en.wikipedia.org/wiki/Metacrap]

Friday, May 09, 2008

Dua' to help you with your studying

Dua Before Studying

Allahumma infa’nii bimaa ‘allamtanii wa’allimnii maa yanfa’ unii.
O Allah! Make useful for me what You taught me and teach me knowledge that will be useful to me.

Allahumma inii as’aluka fahmal-nabiyyen wa hifthal mursaleen al-muqarrabeen.
O Allah! I ask You for the understanding of the prophets and the memory of the messengers, and those nearest to You.

Allahumma ijal leesanee ‘amiran bi thikrika wa qalbi bi khashyatika.
O Allah! Make my tongue full of Your remembrance, and my heart with consciousness of You.

Innaka ‘ala ma-tasha’-u qadeer wa anta hasbun-allahu wa na’mal wakeel.
(Oh Allah!) You do whatever You wish, and You are my Availer and best if aid. Protector and the best of aid.

Dua After Studying

Allahhumma inni astaodeeuka ma qara’tu wama hafaz-tu. Faradduhu ‘allaya inda hagati elayhi. Innaka ‘ala ma-tasha’-u qadeer wa anta hasbeeya wa na’mal wakeel.
Oh Allah! I entrust You with what I have read and I have studied. (Oh Allah!) Bring it back to me when I am in need of it. (Oh Allah!) You do whatever You wish, and You are my Availer and Protector and the best of aid.

Dua While Studying Something Difficult

Allahumma la sahla illama ja-’altahu sahla wa anta taj ‘alu al hazana etha shi’ta sahla.
O Allah! Nothing is easy except what You have made easy. If You wish, You can make the difficult easy.

Dua For Anxiety

Allahumma inni a’oodhoo bika minal-hammi-walhazan. Wa’a oodhoo bika minal-ghammi-wal-kasal. Wa’a oodhoo bika minal jubni wal bukhl. Wa’a oodhoo bikal min ghalabatid-dayni-waqarir rijal.
Oh Allah, I seek refuge in You from worry and grief, from helplessness and laziness, from cowardice and stinginess, and from overpowering of debt and from oppression of men.

Dua For Distress

Allahumma rahmataka arjoo falaa takilnee ilaa nafsee tarfata ‘aynin wa aslih-lee sha’nee kullahu, laa ilaha illa anta.
O Allah! It is Your mercy that I hope for so do not leave me in charge of my affairs even for a blink of an eye and rectify for me all of my affairs. None has the right to be worshipped except You.

Dua For Distress and Grief (Taken from USC-MSA website)

This is based on the following saheeh hadeeth reported by Imaam Ahmad (translation adapted from www.islam-qa.com; see question 1392):
The Messenger of Allaah (peace and blessings of Allaah be upon him) said: ‘There is nobody who is afflicted with distress or grief and who says: “Allaahumma inni ‘abduka wa ibn ‘abdika wa ibn amatika, naasiyati bi yadika maadin fiyya hukmuka ‘adlun fiyya qadaa’uka, as’aluka bi kulli ismin huwa laka sammayta bihi nafsaka aw ‘allamtahu ahadan min khalqika aw anzaltahu fi kitaabika aw asta’tharta bihi fi ‘ilmi al-ghaybi ‘indaka an taj’al al-Qur’aana rabee’a qalbi wa noor sadri wa jilaa’a huzni wa dhihaaba hammi.’

‘O Allaah, I am Your slave, son of Your slave, son of Your maidservant, my forelock is in Your hand, Your command over me is ever executed and Your decree over me is just. I ask You by every name belonging to You which You have named Yourself with, or which you revealed in Your Book, or which You taught to any of Your creation, or which You have preserved in the knowledge of the Unseen with You, that You make the Qur’aan the life of my heart and the light of my breast, and a departure for my sorrow and a release for my anxiety,” - but Allaah will take away his distress and grief, and replace it with ease.’ He was asked, ‘O Messenger of Allaah, should we not learn it?’ He said, ‘Of course, whoever hears it should learn it.’

[source: George Mason University - Muslim Students Association, http://gmu.edu/org/msa/]

Thursday, May 08, 2008

Tornado Warning

TORNADO WARNING NATIONAL WEATHER SERVICE BALTIMORE MD/WASHINGTON DC 1133 PM EDT THU MAY 8 2008

THE NATIONAL WEATHER SERVICE IN STERLING VIRGINIA HAS ISSUED A TORNADO WARNING FOR... PRINCE GEORGES COUNTY IN CENTRAL MARYLAND FAIRFAX COUNTY IN NORTHERN VIRGINIA PRINCE WILLIAM COUNTY IN NORTHERN VIRGINIA STAFFORD COUNTY IN NORTHERN VIRGINIA CHARLES COUNTY IN SOUTHERN MARYLAND UNTIL 1215 AM EDT

* AT 1132 PM EDT...NATIONAL WEATHER SERVICE DOPPLER RADAR INDICATED A DEVELOPING TORNADO NEAR TRIANGLE... MOVING NORTHEAST AT 27 MPH.

* LOCATIONS IMPACTED INCLUDE... WOODBRIDGE... INDIAN HEAD... LORTON... FORT BELVOIR...

IF YOU ARE IN OR NEAR THE PATH OF THIS STORM...TAKE COVER NOW! IF NO UNDERGROUND SHELTER IS AVAILABLE MOVE TO AN INTERIOR ROOM ON THE LOWEST FLOOR. MOBILE HOMES AND VEHICLES SHOULD BE ABANDONED FOR MORE SUBSTANTIAL SHELTER. AVOID WINDOWS!

[source: http://www.weather.com/weather/newscenter/alerts/USVA0262?alertId=579280]

Monday, May 05, 2008

Jabber: agsXMPP SDK

agsXMPP is a SDK / library for the eXtensible Messaging and Presence Protocol (XMPP) protocol written in managed C# dedicated to .NET and Mono technologies. The SDK is released as open source under a dual license.
Our SDK could be used for XMPP client, server and component development.

----------- FAQS -----------

Will you add feature xyz?
We work continuous on new features and XMPP extensions. Feel free to contact us if you want to sponsor certain functionality.

Does the agsXMPP SDK run on Mono/Linux?
Yes it does.

Is the agsXMPP SDK API stable?
Yes, agsXMPP is used in many open source and commercial projects today. The version is still below 1.0 because there are still some features on our roadmap which we want to add before increasing the version to 1.0.

Can I use the agsXMPP SDK in a commercial application?
Contact us by Email if you are interested in a commercial license.

Can you release a LGPL or BSD licensed version?
No we can't

Can I build a XMPP server with agsXMPP?
Yes you can. But writing a XMPP server is a very compex task.The idea of XMPP is: simple client, complex server.Even if agsXMPP does lots of work for you, you have to study the XMPP RFC's in detail.

The examples don't support feature xyz and are crashing sometimes
the examples are not meant to be a usable client or server. Just to show off particular features of the API and get started with agsXMPP development.

I can't authenticate to my server, I'm sure that the password is correct
In the most cases this is a problem with your server configuration and the XMPP domain.Never use IP addresses in your Jid or XMPP domain for testing.The XMPP domain is part of the SASL authentication and must match.