Tuesday, September 8, 2009

[09-Sept-09] Viewpoint: Time for computer science to grow up

Unlike every other academic field, computer science uses conferences rather than journals as the main publication venue. While this made sense for a young discipline, our field has matured and the conference model has fractured the discipline and skewered it toward short-term, deadline-driven research. Computer science should refocus the conference system on its primary purpose of bringing researchers together. We should use archive sites as the main method of quick paper dissemination and the journal system as the vehicle for advancing researchers' reputations.

In his May 2009 Communications Editor's Letter,2 Moshe Vardi challenged the computer science community to rethink the major publication role conferences play in computer science. Here, I continue that discussion and strongly argue that the computer science field, now more than a half-century old, needs to adapt to a conference and journal model that has worked well for all other academic fields.

Why do we hold conferences?

  • To rate publications and researchers.
  • To disseminate new research results and ideas.
  • To network, gossip, and recruit.
  • To discuss controversial issues in the community.
The de facto main role of computer science conferences is the first item: rating papers and people. When we judge candidates for an academic position, we first check the quality and quantity of the conferences where their work has appeared. The current climate of conferences and program committees often leads to rather arbitrary decisions even though these choices can have a great impact particularly on researchers early in their academic careers.

But even worse, the focus on using conferences to rate papers has led to a great growth in the number of meetings. Most researchers don't have the time and/or money to travel to conferences where they do not have a paper. This greatly affects the other roles, as conferences no longer bring the community together and thus we are only disseminating, networking, and discussing with a tiny subset of the community. Other academic fields leave rating papers and researchers to academic journals, where one can have a more lengthy and detailed reviews of submissions. This leaves conferences to act as a broad forum and bring their communities together.

A Short History of CS Conferences
The growth of computers in the 1950s led nearly every major university to develop a strong computer science discipline over the next few decades. As a new field, computer science was free to experiment with novel approaches to publication not hampered by long traditions in more established scientific and engineering communities. Computer science came of age in the jet age where the time spent traveling to a conference no longer dominated the time spent at the conference itself. The quick development of this new field required rapid review and distribution of results. So the conference system quickly developed, serving the multiple purposes of the distribution of papers through proceedings, presentations, a stamp of approval, and bringing the community together.

With the possible exception of Journal of the ACM, journals in computer science have not received the prestige levels that conferences do. Only a fraction of conference papers eventually get published in polished and extended form in a journal. Some universities insist on journal papers for promotion and tenure but for the most part researchers feel they have little incentive for the effort of a journal submission.

As the field went through dramatic growth in the 1980s we started to see a shift in conferences. The major CS conferences could no longer accept most qualified research papers. Not only did these conferences raise the bar on acceptance but for the papers on the margin a preference for certain subareas emerged. Researchers from the top CS departments dominated the program committees and, not necessarily consciously, helped set the agenda with areas that helped their faculty, students, and graduates. Over the years these biases became part of the system and unofficially accepted behavior in the community.

As CS grew the major conferences became even more selective and could not accept all the quality papers in any specialized area. Many new specialized conferences and workshops arose and grew to capture these papers. We currently have approximately a dozen U.S.-based conferences in theoretical computer science alone. The large number of conferences has splintered our communities. Because of limitations of money and time, very few conferences draw many attendees beyond the authors of accepted papers. Conferences now serve the journal role of other fields, leaving nothing to serve the proper role of conferences.

Other disciplines have started to recognize the basic importance of computation and we have seen strong connections between CS and physics, biology, economics, mathematics, education, medicine and many other fields. Having different publication procedures discourages proper collaboration between researchers in CS and other fields.

The Current Situation
Most CS researchers would balk at paying significant page charges for a journal but think nothing of committing well over $1,000 for travel and registration fees for a conference if their paper were accepted (not to mention the time to attend the conference). What does that monetary commitment buy the author? A not particularly fair review process.

With the tremendous almost continual growth in computer science over the past half-century combined with the desire of each conference to remain small and "competitive," even with the increase in the number of conferences we simply have too many papers chasing too few conference slots. Each conference has a program committee that examines submissions and makes decisions on which papers will appear at a conference and which will not. The great papers almost always are accepted and the worst papers mostly get rejected. The problem occurs for the vast majority of solid papers landing in the middle. Conferences cannot accept all of these papers and still maintain their high-quality reputations.

Even if the best decisions are made, several good papers will not make the cut. A variety of factors make the process imperfect at best:

  • Being on a program committee (PC) requires a large time commitment because of the number of papers involved. With the increase in conferences, many researchers, particularly senior scientists, cannot serve on many of these committees, leaving these important decisions mostly to those with less experience.
  • As our research areas continue to become more specialized a few to none of the PC members can properly judge the importance of most results.
  • These specialized areas have a small number of researchers, meaning the appropriate PC members know the authors involved and personal feelings can influence decision making.
  • PC members tend to favor papers in their own areas.
  • The most difficult decisions are made by consensus. This leads to an emphasis on safe papers (incremental and technical) versus those that explore new models and research directions outside the established core areas of the conference.
  • No or limited discussions between authors and the PC means papers often get rejected for simple misunderstandings.
Various conferences have implemented a number of innovative and sometimes controversial ideas to try to make the process more fair (author information removed from papers, author responses to initial reviews, multilevel program committees, separate tracks for areas and quality, higher/lower acceptance ratios) but none can truly avoid most of the problems I've outlined here.

In the extreme many of the best scientific papers slip through the cracks. For example, nearly half of the Gödel Prize winners (given to the best CS theory papers after they've appeared in journals) were initially rejected or didn't appear at all in the top theoretical computer science conferences.

We end up living in a deadline-driven world, submitting a paper when we reach an appropriate conference deadline instead of when the research has been properly fleshed out. Many also just publish "least-publishable units," doing just enough to get accepted into a conference.

The Road Ahead
How do we move a field mired in a long tradition of conference publications to a more journal-based system? Computer science lacks a single strong central organization that can by itself break the inertia in our system.

The Computing Research Association, in its 1999 tenure policy memo,1 specifically puts conference publications above journals: "The reason conference publication is preferred to journal publication, at least for experimentalists, is the shorter time to print (7 months vs. 1–2 years), the opportunity to describe the work before one's peers at a public presentation, and the more complete level of review (4-5 evaluations per paper compared to 2-3 for an archival journal). Publication in the prestige conferences is inferior to the prestige journals only in having significant page limitations and little time to polish the paper. In those dimensions that count most, conferences are superior."

A decade later the CRA should acknowledge that the growth in computer science and advances in technology changes the calculus of this argument. Quick dissemination via the Web makes time to print less relevant and two or three careful journal referee reports give a much more detailed level of review than four or five rushed evaluations of conference reviewers. The CRA needs to make a new statement that the current conference system no longer fully meets the needs of the computer science community and support the growth of a strong journal publication system. This will also encourage chairs and deans to base hiring and promotion more on journal publications as it should be.

Many of the strongest computer science conferences in the U.S. are sponsored by ACM and the IEEE Computer Society. These organizations need to allow special interest groups and technical committees to restructure or perhaps eliminate some conferences even if it hurts their publication portfolio and finances in the short term.

But most importantly, leaders of major conferences must make the first move, holding their conferences less frequently and accepting every reasonable paper for presentation without proceedings. By de-emphasizing their publication role, conferences can once again play their most important role: Bringing the community together.

Conclusion
Our conference system forces researchers to focus too heavily on quick, technical, and safe papers instead of considering broader and newer ideas. Meanwhile, we have devoted much of our time and money to conferences where we can present our research that we can rarely attend conferences and workshops to work and socialize with our colleagues.

Computer science has grown to become a mature field where no major university can survive without a strong CS department. It is time for computer science to grow up and publish in a way that represents the major discipline it has become.

References

1. Evaluating computer scientists and engineers for promotion and tenure; http://www.cra.org/reports/tenure_review.html .

2. Vardi, M. Conferences vs. journals in computing research. Commun. ACM 52, 5 (May 2009), 5.


Lance Fortnow

Communications of the ACM
Vol. 52 No. 8, Pages 33-35
10.1145/1536616.1536631


Friday, September 4, 2009

[04-Sept-09] Social Search Engine Searchwiki Launches, Enabling Users to Find News and Content from Social Networks

Reference:

A new kind of search engine is unveiled with the launch of Searchwiki, a social search engine that spiders both major search engines and social networking sites.

LOS ANGELES, Sept. 4 /PRNewswire/ -- People looking for a faster and more efficient online search experience can now turn to Searchwiki, a new social search engine bridging the gap between searchers and relevant results. Unlike other search engines, in addition to spidering major search engines like Google and MSN, Searchwiki spiders social networking sites such as Facebook, MySpace and Twitter to generate additional search results. Searchwiki is also the only search engine that offers redemption points, giving users the opportunity to receive gifts just for searching, commenting and posting reviews.

"Searchwiki technology improves on existing search engines by enabling vertical, community site and Web searches to be initiated from any Web site," says Adam Goldenberg of Searchwiki. "Searchwiki's strength is in its community appeal and dynamic social search cloud. Collaboration between groups of people with similar interests using a Searchwiki will quickly produce much more relevant and tailored results for a common group than a generic search engine would."

In addition to results from major search engines, Searchwiki includes results from social networking sites, allowing users to find relevant content from not only leading news sites and other Web sites, but from everyday people on social platforms like Twitter, LinkedIn and Hi5, as well. This range of search results lets Searchwiki users find various viewpoints, opinions and insight on any news topic.

Searchwiki is currently the only search engine to offer redemption points and generate results that contain no ads. Searchwiki's social search engine service allows people to accrue redeemable points every time they conduct searches and/or refer friends to use the search engine. These points can then be redeemed for prizes and gifts. Users receive one Swikipoint for each search, vote, comment and review made, to a maximum of 320 points per day, and can redeem those Swikipoints for items such as gift cards and music players.

For more information about Searchwiki, visit www.socialsearch.com.

Wednesday, August 26, 2009

[26-Aug-09] Pick of the Day: Suggestions for Windows 7

Reference:
_______________________________________________________

Seven things Windows 7 can learn from Linux

I’m so excited about the release of Windows 7. Yes, really, an old Linux tragic like me can’t wait for Microsoft’s next-generation OS. But that doesn’t mean Microsoft should stop learning. Far from it, let’s consider the perfect number of moves Redmond can make to take a leaf out of Linux’s book – for the benefit of all.

The number 7 has held a special place in numerology and mythology for centuries. Wikipedia even has page explaining its significance at: http://en.wikipedia.org/wiki/7_(number).

When Windows 7 hits the scene on October millions of people will be immersed in the word 7 for the foreseeable future. How do you make something perfect even better? You learn from your competitors.

So without dwelling on the number, here are seven ways Windows 7 can improve by adopting concepts from Linux.

1. More frequent release cycles. As I’ve already explained, Microsoft’s worst enemy has been its very long release cycles. Linux distributors, on the other hand, have the opposite problem – too frequent release cycles. But what would a consumer be more interested in, an operating system that’s eight years old (Windows XP) or one that’s updated every year or even six months? Fresh product releases means fresh marketing and Microsoft knows this. From Windows 7 on it’s bye, bye many-year release cycles and hello two year cycles at the most.

2. Sane release versioning. Okay, before anyone comments about how INSANE Linux distribution release versioning is, it’s still not as bad as Windows’. Yes, there is a systematic way in which Microsoft versions its Windows releases, but that’s been hidden behind the marketing hoopla. We’ve had Windows 3.1, 95, NT, 98, 2000, Me, XP, Vista and 7 which makes perfect sense. Suddenly Ubuntu’s 7.10, 8.04, 8.10, 9.04, etc, doesn’t seem so silly after all. Nor does Fedora’s 8, 9, 10. Mac OS X? This stays the same with just minor release versions and code names - brilliant for the not-so-tech-savvy. Dumb it down Microsoft. If you’re going to name a product Windows 7, release Windows 8 after it, not “Windows Panorama” or “Windows 2012”.

3. Online OS upgrades. One thing Linux does well is allow users to perform a major OS release upgrade online. Microsoft’s boxed set cash cow may prevent this from happening soon, but it’s something that definitely should be on its radar. Want to upgrade to the next version? Click a box, pay for it and download it over the Internet. The same can be said about third-party applications as well.

4. Better Web app integration. If Microsoft learns anything from Linux or Mac OS X is that today’s desktop user is obsessed with Web apps and will do anything to get Facebook and Twitter functionality at their fingertips. The KDE hackers wrote an entire widget development framework for transferring data over the Internet and it’s now available with every modern Linux distribution. While I have no doubt Windows 7 will have enough clout to force developers into writing Web 2.0 widgets. The big questions are how much traction it will get and how long will it take. Will the native Windows 7 widgets capture people’s interest the way the others have? Microsoft needs to make it happen.

5. Support open development environments. Microsoft has come a long way with its support for standards-based development environments since the ugly tiff with Java a few years back. I’d love to see Windows 7 and its predecessors take this one step further. If it’s and open source, standards-based development environment then it can be used on Linux and this is holding Windows back. Microsoft needs to leave the politics of programming environment source code behind and give developers the tools they need, right there in the operating system. Develop bindings for open source languages and let ISVs create commercial applications. Get the great development projects on Codeplex into the OS proper.

6. Slim down for the mobile world. The rise of Linux netbooks and smartphones over the past 12 months has surely given Microsoft incentive to slim down future versions Windows. If not slim down Windows entirely, at the very least break the shackles of a monolithic product and componentise it so the OEMs can ship just what they need for their mobile computer. Sure there’s Windows Mobile, but like Symbian it was not designed to work on a small notebook. Linux is attractive to netbook markers because it can be cut down and customized for smaller, lighter end of the market. And with Windows Vista being the resource hog that it was, Windows 7 has a big task ahead to match the nimble Linux.

7. Better device support. One of the greatest misconceptions about Linux is that there is limited, if any, support for internal and external devices. In fact, the Linux kernel ships with more device drivers than any other operating system. If a device is support there is a good chance it will work with Linux. Windows, however, still relies heavily on its expansive network OEMs and ISVs to provide the functionality people expect when they purchase an after market product. Windows 7 needs to be the release that aggressively begins to integrate device drivers into the operating system they was Linux and Mac OS X have. This also helps people that are not chained to the same computer or location getting stuck without driver CDs.

So there are seven things Windows 7 can learn from Linux to make the world a better place. Feel free to suggest seven more, or, even better, take them up with Microsoft once lucky 7 shines upon us later this year.

Monday, August 24, 2009

[24-Aug-09] Pick of the Day: Advices for Computer Science Researchers

The following speech is an extract from the speech delivered at "SIGCOMM 2009", the most prestigious conference in networking. The speaker is Meeyong Cha, a very efficient network researcher currently doing her post-doc at MPI-SWS in Germany. The speech contains a useful piece of advice for those wanting to do research in Computer Science:

"Hi, I am Mia. I'm honored to be invited to speak along with Sue, Dina, and Anja, who are fantastic researchers and have been in networking research for many more years than me. So I'll be your amuse bouche appetizer today. The main course speakers will follow shortly.

Let me tell you a bit about my background. I received my PhD from KAIST in Korea last year--Sue was my advisor and I take great pride in being her first PhD student. After I graduated, I moved to MPI in Germany as a post-doc to work with Krishna Gummadi. Now I live in a small city called Saarbruecken. It's on the border between France and Germany and my favorite shopping places are hours away. You'll see my publication list doubled since I moved to Germany.

I work on online social networks. My recent research topic is focused on understanding how information propagates in online social networks, particularly on the role of "word of mouth"-based propagation. I studied this phenomenon by analyzing data on how photos propagate in the Flickr.com website. I coined a term "social cascade"--which I hope will become popular--to describe the type of information propagation that happens through online friendship. For example, we get exposed to the photos, text updates, web links our friends share online. These exposures are what I mean by social cascades. Everyday, tremendous amount of data flows through social links, which means that social cascade is playing a big role on our online experience.

For me, social cascade is a fascinating research topic, not only because it is an entirely new way that connects people, but also because it has consequences beyond the online world. In the recent Iran election, we saw how the use of Twitter lead to some of the rallies and protests in the streets of Teheran. One of my recent projects is on investigating the role Twitter played in the Iran election. Back in my office in Germany, I parse terabytes of data to understand how millions of users in Twitter collaboratively spread messages among themselves. I am also interested in knowing how such collaborative action translates into innovations and challenges in the networking and systems area.

The Internet is a network of computers, but behind computers, there are people. As more of people's offline relationships get translated online, the Internet becomes more social. Social networks therefore have big consequences on the Internet. Just like when peer-to-peer came out and it had a great impact on the Internet, social cascade will dramatically affect a lot of things we know about the Internet, such as the type of content that is available, new infrastructures that are needed, and even people's view on the Internet itself. My research vision is to understand how social cascade is re-shaping the Internet and build network systems that better support this new social interactions.

Lastly, to all the PhD students, I'd like to share one message. Do the type of research that excites you and do not hesitate to change topics if you have to. Before I fell in love with online social networks, I worked on lower layers of the network stack: including backbone designs, IP networks, peer-to-peer systems, television viewing habits, YouTube video popularity. All of these topics are interesting on their own, but they lead me to recognize that workloads in these systems are ultimately determined by humans. Now I am very happy to work on social networks.

If you fancy a career as a researcher, you'll spend tens of thousands of hours on work over the next 10 years. The only way you're ever gonna spend 10,000 hours on research is only when you truly deeply love it. If something really engages you and makes you happy, then you will put in the kind of energy and time necessary to become an expert at it.

So, besides being ambitious, disciplined, and smart and all that, I hope you find a research topic that excites you and makes you have a lot of fun during your remaining years of your PhD. Thank you and now on to the rest of the -- menu."

Saturday, August 22, 2009

[22-Aug-09] Survey of the Day: Search Engine Use by Operating System

Search engines have become important entry points for the Web today and life on the Internet without a search engine is unimaginable these days. So which is the most famous search engine that is providing users with best results. That's surely a tough question to answer but there is one notable fact: open source community prefers Google over Bing.

A survey was conducted by Chitika, an online advertising network to analyse search engine usage by operating system.

Here's what they say:

With the upswing in the number of Linux boxes (thank you netbooks and Dell) and as much interest we have in the search engine market, we at Chitika thought we’d take a look at the search habits of our open-source friends. We compared the OS and search engine data for 163,211,927 searches – a sample of the Chitika network’s search data from July 30th through August 16th – and the results were quite interesting. Check them out:





Sure, Google dominates search across all categories, but what’s surprising is that a whopping 94.61% of all Linux search traffic was from Google, compared with 78.54% of Windows user searches. Compare that with Microsoft’s new “decision engine” Bing, which is holding steady at about 8% of Windows users, but is getting practically no use whatsoever by Linux users – just 0.77% of Linux searches were from Bing. Even Ask.com outdoes Bing for Linux users.


Reference:
_______________________________________________________

Wednesday, August 19, 2009

[19-Aug-09]: Concept of the day

Programming vs Coding

Reference:
_______________________________________________________

Recently I saw many people rejoicing over Pakistan being declared as one of a great outsourcing destination, and to many within the Pakistani software industry this is a big achievement but I am skeptical about it. Is it really a sign of progress for us or has hidden repercussions??
In my opinion being a great outsourcing destination is not much, the question that we must ask ourselves is where do we stand in the Computer Science research community? How many publications do we produce every year? The answer is of course highly unsatisfactory.
It makes me sad to say that our universities are producing coders but not programmers: many would argue with me saying they are the same but there is a world of difference between the two. The question was raised by my Professor Kyu-Young Whang in his Database class few months back and I really liked his answer:

“Programming is about design and attention to detail while coding is about knowing few tips and following them without much thinking.”

Coding is just mindlessly typing out computer commands, whereas programming is actively thinking about abstract solutions to a problem and then expressing it in code. To be a coder, you need to know the syntax, but to program, you need to understand various algorithms and data structures. Mathematics forms the core of good and efficient programming skills whereas for a coder mathematics is not of much importance. Students who are adept at math tend to perform better in computer science. They are better able to understand relationships in data, scientific computations, and algorithm design. This allows them to be better at solving problems and generating good designs from requirements and hence be a programmer. On the other side of the spectrum are the coders who just know about the language features and are aware of the features of the platform they are working for.
The harsh reality is that many of the graduates in the computer science field in Pakistan are just coders but not programmers. Many of them do not do justice to the computer science field since they either switch to MBA or they go for software development (database development, web portals, community websites etc) jobs doing monotonous work all along.
In the Computer Science community in Pakistan there is a lack of proper research being conducted and in my opinion one big reason for this is that Computer Science research needs programmers and not coders. The scenario in Pakistan is that many computer science majors, those desiring to eventually become computer scientists, programmers, systems analysts, computer hardware designers, networking specialists, or software engineers, do not have the background knowledge needed to succeed in their studies. Nor do many of them desire to get this necessary math background if there is any possible way to avoid it.
The programmers are the ones that invent thereby producing new researches in Computer Science and coming up with new, innovative ideas. Whereas coders do labor work just playing with some new technologies and enjoying the outside glimmers. After all Google was just another research with two brilliant programmers Sergey Brin and Larry Page coming up with a new algorithm of ranking. Why isn’t such research being produced in our country: answer is simple, I guess!!!

Monday, August 17, 2009

[17-Aug-09]: Debate of the day: Cloud Computing (Definition)

What is cloud computing

Today's debate of the day is cloud computing, following video give basic insight on the topic of cloud computing, while following two articles are in favor(link) and against(link) of this topic.



_______________________________________________________
Video's Reference: