Thursday, July 29, 2004

MSN Newsbot

After early prototypes like Columbia's newsblaster, giant service like Google News, credible newcomer like Topix.net, here's MSN Newsbot.

Monday, July 26, 2004

PROG Search Engine

(From my good friend Ludovic, writer at LeReverbere)

Prog is a search engine that returns the Page Rank of found pages..
We can learn that blogger.com has a powerfull PR of 10..
Just to compare, Amazon has 9 and eBay 8...

My blog worth 4/10. This is not impressive.. but let's try to get 5.. ;)

 

Monday, July 19, 2004

iRider

iRider web browser offers at least two unique and useful features:
  1. A navigation panel that allows, for instance, 10 home pages to be loaded each time the browser opens.
  2. The hability to select multiple links to open them all.

It really speeds "basic" navigation needs. Each time the browser opens, you are ready to look at your web site, your web site statistics, your home page, the news, your e-mails, etc..

The bad news: it is not free. Do these features worth 29$ ? I'll tell you that in 21 days, when my evaluation finish.


Friday, July 16, 2004

Google's Picasa

I just found this link on the Google home page. Picasa is a digital photo organizer. I think it is the Google attractive power that convinced me to try the product.

Without surprise, this software is of highest quality:
  • The browser is smooth
  • The timeline option is interesting
  • The edition tools are basic but powerful
  • The way it automatically find photos on drives is comfortable
  • The "order prints" is what I need.. but is not available in Canada right now :(

Thursday, July 15, 2004

Microsoft to sign Yahoo, AOL instant messaging pact

Seems like a good news. But if you read between lines, it will be only for corporate users and it's not gonna be free. I never try it but some friends told me Trillian was stable and works well enough for this task.

Friday, July 09, 2004

Flaw Detected in Mozilla Browser

The question is not which browser do you use for your security.
It is what are your browsing habits...

Anyway, Mozilla recommends downloading their latest version (0.9) to fix security issues.
By the way, GUI was slightly improved :)

Thursday, July 08, 2004

Automating Copernic Enterprise Search using C#

Copernic Enterprise Search is a Search Engine packaged for maximal usability.
There is a free (!) version that handle up to 5,000 documents.
Even if beginners and person without programming skills can easily unleash all the power of this software, an API is available for those who dare to go a level higher...

Automating Administration Tool:


Here's a class to create a collection of documents:


public class CESAdministrator
{
  public CESAdministrator()
  {
    m_Admin = new CESAdmin.AdminClass();
    m_Admin.Connect("localhost", "default", false, "");
  }

  public void Close()
  {
    m_Admin.Disconnect();
  }

  private CESAdmin.IAdmin m_Admin;

  public void CreateCollection(string pi_Name, string pi_Description)
  {
    CESAdmin.IPhysicalIndex myIndex = (CESAdmin.IPhysicalIndex)m_Admin.PhysicalIndexes[0];
    myIndex.Collections.Add(pi_Name, pi_Description);
    m_Admin.Commit();
  }

  public void AddSource(string pi_Collection, string pi_Name, string pi_Address)
  {
    CESAdmin.IPhysicalIndex myIndex = (CESAdmin.IPhysicalIndex)m_Admin.PhysicalIndexes[0];
    CESAdmin.ICollection myCollection = (CESAdmin.ICollection)myIndex.Collections.get_ItemByName(pi_Collection);
    myCollection.Sources.Add(pi_Name, pi_Address, "files");
    m_Admin.Commit();
  }

  public void StartSources(string pi_Collection)
  {
    CESAdmin.IPhysicalIndex myIndex = (CESAdmin.IPhysicalIndex)m_Admin.PhysicalIndexes[0];
    CESAdmin.ICollection myCollection = (CESAdmin.ICollection)myIndex.Collections.get_ItemByName(pi_Collection);
    foreach(CESAdmin.ISource aSource in myCollection.Sources)
    {
      aSource.Refresh(true);
    }
    m_Admin.Commit();
  }
}


(in this example, a "file" collection is created)


CESAdministrator myAdmin = new CESAdministrator();
myAdmin.CreateCollection("MyCollection", "This is my collection of documents");
myAdmin.AddSource("MyCollection", "mySource", "c:\\myFolder");
myAdmin.StartSources("MyCollection");
myAdmin.Close();


Automating Client Tool:



Here's a class to search documents:


public class CESClient
{
  public CESClient()
  {
    m_Client = new CESSearch.SearchClass();
    m_Client.Connect("localhost", "default", false, "");
  }

  public void Close()
  {
    m_Client.Disconnect();
  }

  private CESSearch.ISearch m_Client;

  public int Query(string pi_Collection, string pi_QueryTerm)
  {
    CESSearch.SearchQuery myQuery = m_Client.CreateQuery();
    ArrayList alCollections = new ArrayList();;
    alCollections.Add(pi_Collection);
    myQuery.set_Collections(alCollections.ToArray());
    myQuery.Expression = pi_QueryTerm;
    myQuery.NumberOfResults = 1000;
    myQuery.Execute();

    CESSearch.SearchResults myResults = myQuery.Results;
    return myResults.Count;
  }
}


(in this example, the number of hits is returned for the query "test")


CESClient myClient = new CESClient();
int numResults = myClient.Query("MyCollection","test");
myClient.Close();

Tuesday, July 06, 2004

Google Bans Gmail Account Profiteering

Okay, time is up ;)

Monday, July 05, 2004

Progress Bar for ASP.NET

I was asked to create a progress bar in ASP.NET to represent the state of a task.
Basically, I had in hand the percentage of progress and I had to create a visual widget like this:



All you have to know is that you can render html code inside a label web control!

Here's the code that produce HTML tables that look like a progress bar:


private const int PROGRESS_SIZE = 10;
public static string ProgressBar(double pi_PercentDone)
{
    string strOutTable = "";
    strOutTable += "<table border=1 cellpadding=0 cellspacing=0 bordercolor=green><tr><td><table width=10 cellspacing=1><tr>";

    int i = 0;
    while (i != Math.Floor(pi_PercentDone * PROGRESS_SIZE))
    {
        strOutTable += "<td width=1 bgcolor=green>&nbsp;</td>";
        ++i;
    }
    while (i != PROGRESS_SIZE)
    {
        strOutTable += "<td width=1 bgcolor=white>&nbsp;</td>";
        ++i;
    }
    strOutTable += "</tr></table></td></tr></table>";

    return strOutTable;
}


Now, just call:

label.Text = ProgressBar(myPercentage);