Google Introduces Software Starter Kit

Google Inc. is distributing a free software startup kit designed to make computing safer and easier — a generous gesture driven by the company’s desire to steer technology offline as well as online.

The software bundle, unveiled Friday in Las Vegas during a speech by Google co-founder Larry Page, represents the Internet search engine leader’s latest jab at industry kingpin Microsoft Corp.

The suite of programs is designed to make it easier to install and maintain basic applications that have helped turn the PC into a hub of information, entertainment and communications.

With the initiative, Google is setting out to prove that it is better positioned to help people get the most out of their computers than more-established software makers, particularly Microsoft — the maker of the pervasive Windows operating system.

“We thought, ‘Why can’t using a computer be more fun, simple and empowering?'” said Marissa Mayer, Google’s vice president of search products and user experience.

Six of the programs in the package are owned by Google, which had previously offered all but one on a piecemeal basis. A screensaver that automatically displays pictures stored on a personal computer is being introduced for the first time as part of the “Google Pack.”

With the exception of a Norton antivirus program that is being offered in a free six-month trial, the seven other applications in the Google Pack are already available for free on the Internet.

Mountain View, Calif.-based Google has simply negotiated agreements to create a one-stop shop for all the applications, supplemented with tools to simplify the process for installing and updating the programs.

Neither Google nor the other participants in the Google Pack are paying each other any money, Mayer said.

Although cobbling together a bunch of free software isn’t revolutionary, the move could foreshadow bigger things to come as Google’s maneuvers to gain more influence over the products people install on their PCs while diminishing Microsoft’s power.

If the Google Pack proves popular among PC owners, more software makers are likely to be lining up to be included in future versions — a phenomenon that would give Google even more leverage in its slugfest with Microsoft, said Forrester Research analyst Charlene Li.

“This has the potential of giving Google more control over the software supply chain,” Li said. “They in effect could become the arbiters of software taste, determining what’s good and bad.”

For now, Google is primarily interested in making personal computers easier and more enjoyable to use, Mayer said.

If people spend more time on their computers, Google believes it will receive more Internet search requests — an activity that generates the highly profitable ads that has catapulted its stock and spawned more than $100 billion in shareholder wealth during the past 18 months.

Google’s shares surged $14.42 Friday to close at $465.66 on the Nasdaq Stock Market. The stock price reached a new high of $470.50 earlier in the session.

Hoping to stunt Google’s rapid growth, Microsoft has invested heavily to expand its presence in Internet search during the past year. So far, though, Google has been able to win even more market share, emboldening the company to embark on far-flung expansion that has increasingly put it on a collision course with Microsoft.

Toward that end, Google plans to distribute even more software as it builds upon the loyalty fostered by its popular search engine.

“I can imagine an operating system that some day does a better job storing your data, using (a) network,” Mayer said in a barb clearly aimed at Microsoft.

The Google Pack includes Adobe Systems Inc.’s Acrobat Reader, RealNetworks Inc.’s media player, Mozilla’s Firefox Web browser and Cerulean Studios’ Trillian instant messaging program.

Notably missing are word processing and spreadsheet programs, though Google pledged in October to work with Sun Microsystems Inc. to promote an open-source version of those applications.

Mayer couldn’t explain why the free OpenOffice suite, which includes word-processing and spreadsheet applications, wasn’t included in the Google Pack.

Li believes the programs were excluded because Google didn’t want to risk including anything that might be difficult to install or interfere with other applications, such as Microsoft’s competing Office suite.

Algolab Photo Vector

Algolab Photo Vector is a vectorizer and image cleaner: a proven handy tool for designers and CAD/CAM professionals to cleanup, reduce number of colors and vectorize images. Converts JPEG, BMP files to EMF, WMF, DXF. The only vectorizer compatible with Jasc Paint Shop Pro. Useful add on to Adobe Illustrator, Corel Draw, Adobe Photo Shop, CAD/CAM systems etc. Especially useful for designs on textile, fabric, vinyl, jacquard, mats and other materials as well as to create vector graphics for WEB. For stunning photo effects visit our art gallery Photo Impressionism.

A free license is available for medium and large networks. AlgoLab Photo Vector is easy to use, fast and precise. By one click a color raster image can be converted into scalable vector artwork with any desirable accuracy depending on chosen settings. Bitmap and palette editing tools enable one to enhance processed images manually. Photo Vector produces special photo effects increasing and/or changing impression created by photos converting them into vector pictures that look like impressionist art.

For stunning photo effects visit our art gallery Photo Impressionism. A free license is available for medium and large networks. Photo Vector does the cleaning job of scanned designs faster and better than any other software. Besides of using this software for raster into vector conversion it may be also useful for raster image processing when one needs a raster image to be composed of clean solid color shapes with smooth well defined boundaries and to have few or selected number of colors.

The output formats include AutoCAD dxf, Adobe Illustrator, Windows metafile, Jasc. Photo Vector can help you to create mosaic from your photos or other images. Feel free to let your friends know about this option that will save them a lot of time for free in cleaning up, making fast corrections, editing and vectorizing designs with this proven handy designer’s tool. Just download this software from http://www.algolab.com and use it!

Related Links:
http://www.algolab.com/
http://www.algolab.com/files/ptvector.exe

Comments (0)

Mozilla Firefox for Intel powered Macintosh coming in March

Open source foundation Mozilla has said that they plan to launch their application versions for the recently launched Macintosh machines powered by Intel processors sometime in March this year. Mozilla Firefox is now the second most widely used web browser online and it is significant for them to cater to the Macintosh audiences who would be purchasing these new machines already available on Apple Web Stores.

Mozilla would be aiming to get users away from the Apple Mac OS X default browser Safari to use their browser application. However, it just might be tough for them to achieve that considering unlike Microsoft; Safari is frequently updated and is closely tied to online services provided by the company. In addition, Safari is also one of the most standard compliant web browsers around.

Mozilla is already offering a test version of the Firefox for Intel powered Macintoshes. However, it would take sometime before the browser application is ready for wide release. Mozilla is also waiting for an updated release of Flash Plug-in for this customized version of Firefox release, which seems to be crashing the test version. Mozilla software engineer Josh Aas said in a statement on this issue: “The problem has been brought to Macromedia’s attention, and they are working on a fix”.

Of course, Apple has made sure that all existing applications made for regular Macintosh computers run fine on Intel powered versions. They are making use of Rosetta, a tool built into the Apple operating system that lets programs written for PowerPC run on Intel machines. However, most software companies would like to bypass this converter to ensure better performing applications as the Intel powered Macs become more popular and widespread.

Even the third popular browser application online, Opera is due to get a special version for this platform in the coming months. It would be interesting to see whether the custom versions perform any better than the regular versions written for the regular Macintosh machines. Apple has claimed that they are looking towards converting all their offerings to Intel powered versions by next year.

Corel launches WordPerfect 3X

Software Company Corel have announced the availability of their latest version of word processor application Corel WordPerfect 3X. The latest version would help the company chip away more users away from the current market leaders MS Office. Microsoft itself is due to launch their latest version of the Office Suite, MS Office 12. Microsoft claims that the new version would come with an overhauled user interface designed to make complicated tasks easier for the regular users.

Corel WordPerfect 3X comes with improved support for PDF document creation. The latest version not only exports documents to PDF format, but also imports them for modifications. Jason Larock, product director said in a statement on this improved support for PDF files: “We can pull PDFs into WordPerfect. Before people could use it to create PDFs but now it’s two-way.”

Microsoft is also planning to add-on support for creating PDF files from MS Office 12 applications. However, that support is only going to be one way and it is unlikely that the application would be able to import PDF files for modifications. Corel has also stated that they would add on support for OpenDocument format if customers demand it.

WordPerfect Office Suite now also comes with its own Email application. In addition, Corel has also incorporated technology from PowerTrace to help the graphic designers convert bit map images into editable vector graphics.

Microsoft fixes WMF vulnerability in Vista OS builds

Microsoft fixes WMF vulnerability in Vista OS builds

It is interesting to know that even the test releases of Microsoft’s Vista operating system were suffering from the same WMF rendering vulnerability, which affects the regularly available OS from the company. The software company has now issued a patch for a preliminary version of its Vista operating system for this bug.

The patches issued by Microsoft apply to a Community Technology Preview of Vista released last month. This release was made available to a limited group of testers under the Microsoft Developer Network Universal and Beta Testing program. Microsoft is scheduled to release the publicly release Vista sometime later this year.

This fix updates the way Vista renders the WMF files preventing it from getting infected by corrupt WMF files. If the OS is left unpatched, opening up specially crafted WMF image files can render a machine vulnerable to security issues. It could trigger the execution of code, which can be programmed to download even more dangerous code from the internet.

This vulnerability was discovered last month and was critical enough to get Microsoft to release an early patch rather than waiting for the Patch Tuesday.

Best Peer-2-Peer Client Software

ABC (Another BitTorrent Client) [ 11 ] [4.45%]
Ares [ 15 ] [6.07%]
Azureus [ 23 ] [9.31%]
BearShare [ 4 ] [1.62%]
BitTorrent [ 6 ] [2.43%]
DC++ [ 17 ] [6.88%]
eDonkey 2000 [ 4 ] [1.62%]
eMule [ 47 ] [19.03%]
eMule Plus [ 2 ] [0.81%]
eXeem Public Beta 🙂 [ 0 ] [0.00%]
iMesh [ 31 ] [12.55%]
iMesh Lite [ 33 ] [13.36%]
Kazaa Lite (Resurrection) [ 6 ] [2.43%]
Kazaa Media Desktop [ 0 ] [0.00%]
LimeWire [ 45 ] [18.22%]
Napster [ 1 ] [0.40%]
Warez P2P [ 2 ] [0.81%]
WinMX [ 0 ] [0.00%]
Total Votes: 247

HOW TO: Display DataGrid in small screen area without using Paging

Introduction
Invoking multiple tasks that are slow or lengthy always poses a challenge in front of developers. Normal approach is to develop a multithreaded component and delegate the tasks to it. In ASP.NET 1.x there was no direct support at web form level for executing such tasks in asynchronous manner. ASP.NET 2.0 on the other hand allows you to execute tasks asynchronously from within the web form itself. This article explores the two possible approaches with examples.

If you are not familiar with asynchronous operations then I suggest that you read Asynchronous Programming In .NET and Invoking Methods Asynchronously using Delegates for better understanding.

Possible approaches
There are two approaches that you can take for developing asynchronous pages:

Using RegisterAsyncTask method of Page class
Using AddOnPreRenderCompleteAsync method of Page class
Understanding the asynchronous task execution model
Before we delve further into the topic let’s first understand how it works.

Under normal condition ASP.NET executes all the code in sequence. That means all the events such as Init, Load, PreRender and Unload are executed one after the other as follows:

PreInit
Init
InitComplete
PreLoad
Load
LoadComplete
PreRender
PreRenderComplete
Unload
When you enable asynchronous processing using any of the methods listed above, the sequence of operation changes as follows:

PreInit
Init
InitComplete
PreLoad
Load
LoadComplete
PreRender
Your asynchronous tasks are started
Your asynchronous tasks complete
PreRenderComplete
Unload
As you can see ASP.NET plugs in your asynchronous operations between PreRender and PreRenderComplete events. Note that ASP.NET blocks the rendering of the page till all the asynchronous tasks that you started are not complete.

When you run a web form having asynchronous operations, ASP.NET does the following:

ASP.NET picks up a thread from thread pool to execute your page
Till PreRender event that thread does the work and then it is returned to the thread pool
The aysnchronous operation is started
When the asynchronous operation completes, ASP.NET picks up another thread from the thread pool and executes remaining events on that thread
The Async attribute
Whatever approach you take for implementing the asynchronous tasks you need to set Async attribute of @Page directive to true.

NOTE: Strictly speaking it is not mandatory for RegisterAsyncTask that the page must have Async set to true. But using this attribute tells ASP.NET to use implementation of IHttpAsyncHandler internally.

BeginEventHandler and EndEventHandler delegates
When ASP.NET is about to start your asynchronous operation it expects a function to start your operation. The signature of this function must match the signature of BeginEventHandler delegate. The following code shows the signature of this delegate.

IAsyncResult BeginAsyncOperation
(object sender, EventArgs e,
AsyncCallback cb, object state)The AsyncCallBack parameter supplies the delegate to call when the asynchronous method call is complete. The state parameter can be used to pass some application specific state information. The return type of this function is IAsyncResult. Note that asynchronous pattern of .NET framework (BeginXXXX) always returns an object implementing this interface. This holds true for asynchronous web service calls, network programming tasks and file IO.

Just like BeginEventHandler there is another delegate called EndEventHandler. When the asynchronous task completes ASP.NET invokes a function that you supply. The function must match the ssignature of EndEventHandler delegate. The following code shows the signature:

void EndAsyncOperation(IAsyncResult ar)This method receives an instance of IAsyncResult that you returned during BeginEventHandler.

These delegates are required in both of the asynchronous invocation approaches.

Using RegisterAsyncTask method
In order to illustrate the use of RegisterAsyncTask method we will develop two web services called WebService1.asmx and WebService2.asmx with a web method called HelloWorld. The HelloWorld web method looks as shown below:

[WebMethod]
public string HelloWorld(string name)
{
System.Threading.Thread.Sleep(3000);
return “Hello ” + name;
}The web method takes a string parameter called name and returns a string by concatenating it to “Hello”. Just to simulate a lengthy or slow operation we have introduced a delay by putting the thread to sleep for 3 seconds.

We will be calling this web method asynchronously from a web form.

In the code behind of the web form we need to create functions matching the signatures of BeginEventHandler and EndEventHandler delegates respectively. The following code shows these functions.

private IAsyncResult BeginAsyncOperation1
(object sender, EventArgs e,AsyncCallback cb, object state)
{
StreamWriter writer=
File.AppendText(Server.MapPath(“log1.txt”));
writer.WriteLine(DateTime.Now);
writer.Close();
WSProxy1.WebService1 obj1 =
(WSProxy1.WebService1)state;
obj1 = new WSProxy1.WebService1();
return obj1.BeginHelloWorld(“Tom”,cb, state);
}private void EndAsyncOperation1(IAsyncResult ar)
{
StreamWriter writer =
File.AppendText(Server.MapPath(“log1.txt”));
writer.WriteLine(DateTime.Now);
writer.Close();
WSProxy1.WebService1 obj1 =
(WSProxy1.WebService1)ar.AsyncState;
Label1.Text = Label1.Text + “
” +
obj1.EndHelloWorld(ar);
}private void TimeoutAsyncOperation1(IAsyncResult ar)
{
//do nothing
}private IAsyncResult BeginAsyncOperation2
(object sender, EventArgs e,
AsyncCallback cb, object state)
{
StreamWriter writer=
File.AppendText(Server.MapPath(“log2.txt”));
writer.WriteLine(DateTime.Now);
writer.Close();
WSProxy2.WebService2 obj2 =
(WSProxy2.WebService2)state;
obj2 = new WSProxy2.WebService2();
return obj2.BeginHelloWorld(“Jerry”,cb, state);
}private void EndAsyncOperation2(IAsyncResult ar)
{
StreamWriter writer =
File.AppendText(Server.MapPath(“log2.txt”));
writer.WriteLine(DateTime.Now);
writer.Close();
WSProxy2.WebService2 obj2 =
(WSProxy2.WebService2)ar.AsyncState;
Label1.Text = Label1.Text + “
” +
obj2.EndHelloWorld(ar);
}private void TimeoutAsyncOperation2(IAsyncResult ar)
{
//do nothing
}In the BeginXXXX functions we create an instance of web service proxies and start the asynchronous operation by calling BeginHelloWorld methods. The return value from BeginHelloWorld is returned from the BeginAsyncOperation1 and BeginAsyncOperation2 functions respectively. We also log the time stamp in a text file which will prove that the operations are indeed happening asynchronously.

In the EndXXXX functions we retrieve the instance of Proxy on which we called the BeginHelloWorld method and then call EndHelloWorld method on that proxy instance. As before we log time stamp in a log file.

The TimeoutXXXX function gets called in case the asynchronous task exceeds the timeout value. By default the timeout value is 45 seconds. You can configure it using the AsyncTimeout attribute of @Page directive. In our example we do not have anything specific in these functions.

Now, let’s see how to actually trigger these functions.

protected void Button1_Click(object sender, EventArgs e)
{
WSProxy1.WebService1 obj1=new WSProxy1.WebService1();
WSProxy2.WebService2 obj2=new WSProxy2.WebService2();
BeginEventHandler beginHandler1 =
new BeginEventHandler(BeginAsyncOperation1);
EndEventHandler endHandler1 =
new EndEventHandler(EndAsyncOperation1);
EndEventHandler timeoutHandler1 =
new EndEventHandler(TimeoutAsyncOperation1);
object state1 = obj1;
PageAsyncTask task1 =
new PageAsyncTask(beginHandler1, endHandler1,
timeoutHandler1, state1,true);
BeginEventHandler beginHandler2 =
new BeginEventHandler(BeginAsyncOperation2);
EndEventHandler endHandler2 =
new EndEventHandler(EndAsyncOperation2);
EndEventHandler timeoutHandler2 =
new EndEventHandler(TimeoutAsyncOperation2);
object state2 = obj2;
PageAsyncTask task2 =
new PageAsyncTask(beginHandler2, endHandler2,
timeoutHandler2, state2,true);
Page.RegisterAsyncTask(task1);
Page.RegisterAsyncTask(task2);
}Here, we simply create instances of BeginEventHandler and EndEventHandler delegates and point them to our functions. We also create instances of web service proxies which are used in these functions.

The RegisterAsyncTask method of page class takes a parameter of type PageAsyncTask. While creating the instance of PageAsyncTask class you need to pass a delegates pointing to begin, end and timeout functions. Additionally you can pass application specific state (instances of web service proxies in our example). The last boolean parameter indicates whether the tasks are to be executed in parallel (simultaneously) or no. Since our tasks are independent of one another we set this parameter to true.

Calling RegisterAsyncTask method schedules the tasks on the thread pool. You can call this method several times to schedule multiple tasks.

Using AddOnPreRenderCompleteAsync method
In this approach the delegates and functions used are the same as we used above. However, you need to call AddOnPreRenderCompleteAsync method of the page class passing begin and end handlers. This method does not allow for timeout handling. You can call this method multiple times to invoke multiple asynchronous operations. Note that AddOnPreRenderCompleteAsync does not not allow you to call multiple tasks in parallel.

Here is a sample call to this method:

WSProxy1.WebService1 obj1 =
new WSProxy1.WebService1();
BeginEventHandler beginHandler1 =
new BeginEventHandler(BeginAsyncOperation1);
EndEventHandler endHandler1 =
new EndEventHandler(EndAsyncOperation1);
object state1 = obj1;
Page.AddOnPreRenderCompleteAsync
(beginHandler1, endHandler1, state1);Code Download
The complete source code of the above examples is available for download along with this download. Just click on the Download link on the top.

Summary
ASP.NET 2.0 makes asynchronous programming easy by providing two approaches. In general if you want to execute multiple asynchronous tasks in parallel or otherwise then RegisterAsyncTask is neat and recommended where as if you want to execute just a single asynchronous task then AddOnPreRenderCompleteAsync method can be used.