Wednesday, July 30, 2008

Cuil - The Next "Google Killer"?

Cuil - The Next "Google Killer"?
With the recent press about Cuil, the latest "Google-Killer Search Engine", it seems that we've forgotten the lessons from the late 90s. Cuil's claim to fame appears to be:


It was founded by Ex-Googlers
They claim to have a larger web-page index than Google
The first point is somewhat interesting, but not exactly a path to success. As for the second point, I'd like to say: (1) How do you know that? (2) What does that mean? (3) So?

How Do You Know That?

Google doesn't release the size of its index.

What Does That Mean?

How did they count the size of Google's index? If two urls have identical content, are those the same page? What if the content is merely very similar? Suppose the only difference is that Google isn't indexing the duplicate pages (or, say, the spammy pages), does it matter that Cuil's index is bigger?

So?

Bigger isn't better. I thought we'd learned that back in the late 90s. For most queries, it doesn't matter if the search engine returns 30 results or 1000. You' generally don't go past the 3rd page. What really matters is the ranking of the pages. If the page you wanted is on the 15th page, it might as well not be there at all.

How Cuil Actually Stacks Up:

Interface:

Pros: Slick and pretty. The content drill down is nice - although it doesn't always display relevant things. I also like having the page numbers locked at the bottom so that I don't have to scroll.
Cons: Ranking of results is unclear. There's 3 columns and the rows don't line up with each other. When I'm trying to actually find a good page, I'm not sure where to read.

Speed, Reliability, Performance

Pros: Speedy
Cons: Searches frequently fail. I got "no results" when I tried searching for "Google Talk". I tried the same search a second time and it worked.

Search Result Quality

Selection Criteria for Sample Queries: All queries were selected from my Google Web History, and were queries in which I was attempting to answer a question.

Query #1 (an error I am getting with Google App Engine): error 403 cpu quota exceeded
Cuil: No Results
Yahoo: #1 Result is Google App Engine article about it
Google: #1 Result is a Google Group question about this. #3 (or #5) is the Google App Engine article
Winner: with Google as a close second.
Answer: Common Error. Try using python's profiling.

Query #2: send pdf to kindle
Cuil: Show articles mentioning that you can do this, but not telling me how.
Yahoo: #1 Result is a discussion about it.
Google: #1 Result is a link to Amazon explaining how to do this.
Winner: Google
Answer: Your Kindle has an email address that you email the pdf to.

Query #3: 99 luftballoons translation
Cuil: #1 Result is a translation
Yahoo: #1 Result is someone asking for a translation
Google: #1 Result is a translation
Winner: Cuil & Google (tie).
Answer: It's about war. And red balloons. :-)

Query #4: "imagine no religion" billboard seattle
Cuil: No results
Yahoo: #1 Result is blog post mentioning it. #2 Result is press release about it.
Google: #1 Result is press release about it. #2 Result is blog post mentioning it.
Winner: Google, with Yahoo as a close second
Answer: This billboard was put up by the Freedom From Religion Foundation.

Query #5: percent female math majors in US
Cuil: No results
Yahoo: #1 is a seemingly-relevant but dead link. #2 also seems relevant, but not a direct answer. #3 is about carbon monoxide levels at death. Hmm...
Google: #1 is related article that contains an answer to the question. #2 is a very relevant study, and the summary (which is as far as I read) indirectly answers the question. #3 is about a particular school's gender ratio.
Winner: Google.
Answer: 48% of math majors in the US are female.
Bonus Query: cuil

Cuil: Nothing even remotely related to the search engine.
Yahoo: #1 result is the search engine.
Google: #1 result is the search engine.
Winner: Google and Yahoo. Poor Cuil...
Answer: Google and Yahoo both know what Cuil is (as well as what each other). Cuil, sadly, does not.

Conclusions

While Cuil may claim to have a larger search index, the number of "no result" searches certainly suggest lesser web coverage. The flashy interface is mostly just that - flashy. It's pretty, but the three column layout leave your eyes wandering all over the page unsure of which result is meant to be the most relevant. A more cynical person might even suggest that the three column layout helps mask the fact that Cuil may not know an appropriate ranking.

If you want to get real traction as yet-another-search-engine, you'd better attack a different market from Google (or Baidu in China, or Yahoo in Japan, etc) or you'd better be substantially better than Google. Just being better isn't good enough, and Cuil has a long way to go even on that end.

Sphere: Related Content

Saturday, July 26, 2008

New MySQL Version is available

Drizzle is a newly announced fork of the open source MySQL project. The developers of the project are taking MySQL back to its roots as a light-weight web application database by removing many of the features introduced in MySQL 5. The fifth version of MySQL was in development for years as some users demanded features such as views, stored procedures, transaction handling, clustering and more. The early releases were bulkier and not as stable as the ultra-popular version 4 of MySQL, and now somebody has forked the codebase into a new project to take the database server back to what it was.

For most web application developers, only a basic database system is required. The original popularity of MySQL was because of its simplicity and ease of use. Postgres was always a full-featured open source database server that offered all the enterprise features of competing commercial systems. MySQL was a lighter alternative which was easy to install and learn, but a lot of that simplicity was lost as the development of MySQL progressed towards competing in the enterprise.

Drizzle would seem to have an instant user audience and developer base amongst those longing for the old MySQL. These developers are likely low to medium-end web application developers using a scripting environment and don’t require or don’t need an advanced database system. MySQL was a key part of the default LAMP stack that pioneered simple web application development which went on to open a whole new market. While MySQL 5 can be componentized and customized, developers seeking a smaller and lighter-weight database can revert to Drizzle, at least until the MySQL team see the demand and offer something themselves.

Sphere: Related Content

Wednesday, July 23, 2008

Facebook Responds To MySpace With Facebook Connect

Facebook will announce later today Facebook Connect, which has similar functionality to MySpace Data Availability, announced just yesterday. The actual product won’t be released for at least a few weeks, so the timing on this, coming immediately after MySpace, is somewhat suspicious.

It is essentially a new version of their API for third party websites, which was first launched in August 2006.

It will allow users to “connect” their Facebook identity, friends and privacy to any website. Third party websites will be able to implement and offer more features of the Facebook Platform off of Facebook – the same features available to third party applications today on Facebook.

To make data portable, Facebook believes it’s about giving users the ability to take their identity and friends with them around the Web, while being able to trust that their information is always up to date and always protected by their privacy settings. The next iteration will be available publicly within the next several weeks.

One of their initial launch partners will be Digg.

I spoke with Ben Ling, Director Platform Product Marketing, and Ruchi Sanghai, Product Manager for Facebook Platform, this afternoon about the upcoming changes.

Facebook Connect has four primary features:


Trusted Authentication – Anywhere during the user’s experience that the developer would like to add social context, the user will be able to authenticate and connect their account in a trusted environment. The user will have total control of the permissions granted. This is a proprietary authentication mechanism, but is more streamlined than the existing method and will not require a redirect back to Facebook.

Real Identity – Users can bring their real identity information with them wherever they go on the open Web, including: basic profile information, profile picture, name, friends, photos, events, groups, and more.

Friends Access – Users will be able to take their friends with them wherever they go on the open Web. Developers will be able to add rich social context to their websites, and will be able to show which of their Facebook friends already have accounts on their sites.

Dynamic Privacy – As a user moves around the open Web, their privacy settings will follow, ensuring that users’ information and privacy rules are always up-to-date.
Facebook connect is Facebook’s first honest attempt to allow access to Facebook user data outside of Facebook itself. The company is describing it as giving third party applications access to much of the same data as Facebook applications have today. We’ll know more in a couple of weeks when it formally launches.

Sphere: Related Content

Friday, July 18, 2008

Search and Replace in Oracle

Suppose you want to update String value of a column based on search and replace, you can use Replace function of Oracle. It takes 3 parameters as follows.
1. Column name you are interested in to find and replace values of
2. Search String
3. Replacement String

for example, you can update the values of all names if they contain 'Ram' in themselves by 'Shyam'.

update user_account set user_name = replace(user_name, 'Ram','Shyam');
This will first search all user_names for 'Ram' and then updates them with String 'Shyam';

Sphere: Related Content

Thursday, July 17, 2008

Know IP address of machine on Solaris

You can use host command to know the IP address of your host machine.

$host devzone-ajaved
devzone-ajaved has address 10.27.111.126

for further informations on name server lookup, you can use nslookup command
as follows

$nslookup devzone-ajaved
Server: 10.27.111.126
Address: 10.27.111.126#53

Name: devzone-ajaved.sfo1.us.xxx.net
Address: 10.27.111.126

Sphere: Related Content

Tuesday, July 15, 2008

Microsoft Acquires Data Optimization Provider Zoomix

Zoomix, an Isreali-based company that provides a data optimization and acceleration layer for storage engines, has confirmed today that they have been acquired by Microsoft for an undisclosed amount. The primary product from Zoomix is the Accelerator, a data server that normalizes, links and synchronizes data without requiring user specification or input. It learns from your data sets and associates objects and records that may be related, so its primary goal is to not only clean up data but to automate the mundane tasks that often fall onto DBMs or BA’s.


Microsoft will integrate the tech and R&D team at Zoomix into their existing data team in Israel. Microsoft plan on integrating the technology from Zoomix Accelerator into SQL Server as part of a broader strategy in developing SQL Server into more than just an RDBM but rather a complete data storage and management platform. Microsoft recently confirmed that SQL Server 2008 will be released to manufacturing in August, after being available in release candidate status since January.

SQL Server 2008 integrates the new Always On technology, a clustering and failover technology aimed to increase the reliability of SQL Server and increase its penetration potential within medium and higher end enterprise customers. SQL Server now also supports multiple new data types at both the storage level (with binary BLOB’s) and higher structure level (XML sets and particular data types such as email, calendar entries, and more). The new features of SQL Server 2008, along with incorporated technologies such as those from Zoomix, are forming the foundations of a solid set of data products from Microsoft.

Sphere: Related Content

which process is using a specific port

how to check which process is using a specific port on your linux server.

"lsof -i :"

For example to see which process is using port 80 simply enter

"lsof -i :80" (without the quotes of course)

Sphere: Related Content

Sunday, July 13, 2008

AOL to launch Platform-A

Its raining networks in India
from TechnoTrail by Rajat

AOL is all set to launch Platform-A in August or September.
In the process advertising.com, which is part of Platform-A, will make its Indian debut.

Invizi Ad Network, has been launched by Games2Win, with adSense like model for in game advertising.

Sphere: Related Content

Google Ad Manager for publishers

Google has launched (in beta) hosted ad management solution for publishers-AdManager,the solution helps deliver and optimize ad inventory for both directly sold and network based inventory (including adSense) and yes its free.

Another player in the same space is OpenAds now known as OpenX ,which at the moment is not a hosted solution."

Sphere: Related Content

Detect invisible users on Yahoo

Detect invisible users on Yahoo

Sphere: Related Content

Saturday, July 12, 2008

Exporting the results of a sql query in HTML format

htmlrun.sql
set termout off
set markup HTML ON HEAD " -
<style type='text/css'> -
body {font:10pt Arial,Helvetica,sans-serif; color:black; background:White;} -
p { font:10pt Arial,Helvetica,sans-serif; color:black; background:White;} -
table,tr,td {font:10pt Arial,Helvetica,sans-serif; color:Black; background:#f7f7e7; -
padding:0px 0px 0px 0px; margin:0px 0px 0px 0px; white-space:nowrap;} -
th { font:bold 10pt Arial,Helvetica,sans-serif; color:#336699; background:#cccc99; -
padding:0px 0px 0px 0px;} -
h1 { font:16pt Arial,Helvetica,Geneva,sans-serif; color:#336699; background-color:White; -
border-bottom:1px solid #cccc99; margin-top:0pt; margin-bottom:0pt; padding:0px 0px 0px 0px;} -
h2 { font:bold 10pt Arial,Helvetica,Geneva,sans-serif; color:#336699; background-color:White; -
margin-top:4pt; margin-bottom:0pt;} a {font:9pt Arial,Helvetica,sans-serif; color:#663300; -
background:#ffffff; margin-top:0pt; margin-bottom:0pt; vertical-align:top;} -
</style> -
<title>&1</title>" -
BODY "" -
TABLE "border='1' align='center' summary='Script output'" -
SPOOL ON ENTMAP ON PREFORMAT OFF
spool AhsanJaved.html
prompt &1
clear buffer
1 &1
/

spool off
set markup html off spool off
host start AhsanJaved.html
set termout on

Sphere: Related Content

Formatting the output of a sql query in HTML

html.sql
set termout off
set markup HTML ON HEAD " -
<style type='text/css'> -
body {font:10pt Arial,Helvetica,sans-serif; color:black; background:White;} -
p { font:10pt Arial,Helvetica,sans-serif; color:black; background:White;} -
table,tr,td {font:10pt Arial,Helvetica,sans-serif; color:Black; background:#f7f7e7; -
padding:0px 0px 0px 0px; margin:0px 0px 0px 0px; white-space:nowrap;} -
th { font:bold 10pt Arial,Helvetica,sans-serif; color:#336699; background:#cccc99; -
padding:0px 0px 0px 0px;} -
h1 { font:16pt Arial,Helvetica,Geneva,sans-serif; color:#336699; background-color:White; -
border-bottom:1px solid #cccc99; margin-top:0pt; margin-bottom:0pt; padding:0px 0px 0px 0px;} -
h2 { font:bold 10pt Arial,Helvetica,Geneva,sans-serif; color:#336699; background-color:White; -
margin-top:4pt; margin-bottom:0pt;} a {font:9pt Arial,Helvetica,sans-serif; color:#663300; -
background:#ffffff; margin-top:0pt; margin-bottom:0pt; vertical-align:top;} -
</style> -
<title>SQL*Plus Report</title>" -
BODY "" -
TABLE "border='1' align='center' summary='Script output'" -
SPOOL ON ENTMAP ON PREFORMAT OFF
spool AhsanJaved.html
1
/
spool off
set markup html off spool off
host start AhsanJaved.html
set termout on

Sphere: Related Content

Script to return the output of a sql query in CSV Format

csv.sql
set linesize 2000
alter session set nls_date_format ='dd-mon-yyyy hh24:mi:ss';
set termout off feedback off colsep ,
--column buy_id clear
column log_file clear
--column load_status clear
column load_date clear
column load_comment clear
--column load_count clear
--column buy_id format 10
column log_file format a20
--column load_status format 5
column load_date format a20
column load_comment format a20
--column load_count format 10
clear buffer
prompt &1
prompt &2
spool &1
2 &2
/
--column buy_id clear
column log_file clear
--column load_status clear
column load_date clear
column load_comment clear
--column load_count clear
spool off
set colsep " "
set termout on feedback on

Sphere: Related Content

Cleaning up a schema in Oracle

BEGIN
FOR cur_rec IN (SELECT table_name, constraint_name
FROM user_constraints
WHERE constraint_type = 'R') LOOP
EXECUTE IMMEDIATE 'ALTER TABLE ' || cur_rec.table_name || ' DROP CONSTRAINT ' || cur_rec.constraint_name;
END LOOP;
FOR cur_rec IN (SELECT object_name, object_type
FROM user_objects) LOOP
BEGIN
IF cur_rec.object_type != 'DATABASE LINK' THEN
EXECUTE IMMEDIATE 'DROP ' || cur_rec.object_type || ' ' || cur_rec.object_name;
execute immediate 'purge recyclebin';
END IF;
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
END LOOP;
END;
/

Sphere: Related Content

command to know the command

command to know the command for given pid

ps -eaf | grep 28885

Sphere: Related Content

command to know the full command

command to know the full command for given pid

/usr/ucb/ps awwx | grep

Sphere: Related Content

Know the all arguments for a command

command to know the all arguments for a command for given pid
ps -eaf | pargs -a

Sphere: Related Content

Using import and export command on oracle.

to export and import one schema to another schema.(All schemas should be present already. It will not create new schema, it will create only schema objects and fill their data into objects.)

1. open cmd and type
EXP {schema you want to export from} FILE=exp_database.dmp COMPRESS=N CONSISTENT=N CONSTRAINTS=Y GRANTS=Y INDEXES=Y RECORD=Y ROWS=Y Feedback=1000 LOG=exp_database.log

for example
EXP ahsan_apr/welcome@adapp FILE=exp_database.dmp COMPRESS=N CONSISTENT=N CONSTRAINTS=Y GRANTS=Y INDEXES=Y RECORD=Y ROWS=Y Feedback=1000 LOG=exp_database.log

This will export all tables to a new dump file called exp_database.dmp

To export the selected tables to dump file
EXP {schema you want to export from} FILE=exp_database.dmp tables=TFR_MEDIA_DIM,TFR_SITE_DIM COMPRESS=N CONSISTENT=N CONSTRAINTS=Y GRANTS=Y INDEXES=Y RECORD=Y ROWS=Y Feedback=1000 LOG=exp_database.log

This will export selected tables TFR_MEDIA_DIM and TFR_SITE_DIM to a new dump file called exp_database.dmp

To export only a subset of rows use
EXP {schema you want to export from} FILE=exp_database.dmp tables=TFR_MEDIA_DIM COMPRESS=N CONSISTENT=N CONSTRAINTS=Y GRANTS=Y INDEXES=Y RECORD=Y ROWS=Y Feedback=1000 LOG=exp_database.log QUERY=\"WHERE id \> 13\".

Make sure you escape special char properly with \ because this will be translated into
SELECT * FROM TFR_MEDIA_DIM WHERE id > 13

2. open cmd and type
IMP userid={schema you want to import data to} fromuser={schema you exported data from} touser={schema you want to import data to} file=exp_database.dmp

for example
IMP userid=ahsan_report/welcome@orcl fromuser=ahsan_apr touser=ahsan_report file=exp_database.dmp

Sphere: Related Content

Which port is being used by which command

command to know which port is being used by which command

/usr/bin/ps -ef -o pid -o args | egrep -v "grep|pfiles"

Sphere: Related Content

Passing argument to java files through sh file

use $1 and $2 etc in sh file such as
inside run.sh write

java -cp ./lib/abc.jar com.test.myetes.NoadLoader $1 $2

Sphere: Related Content