Search Logger
Archives for February, 2010.

Archive for February, 2010

Auto Pagination on Blogger

7:13 pm - February 18, 2010 in Blogger Buzz
by Vardhman Jain, Software Engineer, Mountain View

Latency is a word you hear a lot at Google. We are always looking for ways to make our products faster, because we have consistently found that faster page loads mean more satisfied users. This post is the first of an occasional series that will discuss ways in which we’re working to make blogs load faster for all users.

A few months ago, we took a look at ways to improve the performance of Blogger blogs, and noticed that many pages — particularly search results pages, label pages and archive pages — were taking longer to load than they should.

This has lots of implications. Users suffer — pages take longer to load, and for anyone around the world who pays for their bandwidth, they can incur unnecessary charges as their browser downloads more content than needed. You suffer, because as latency increases, pageviews go down. (See here for a study Google did last year for this phenomenon at google.com.)

Starting today, we’re rolling out a change that affects how we paginate webpages on Blogger. We will dynamically adjust how much content to send to the browser depending on (a) the amount of HTML on the page being requested (in kilobytes) and (b) the number of images on the page. Users can continue to use “older posts” and “newer posts” navigation elements to see additional posts.

For major changes like this, we do incremental roll-outs so we can monitor performance as they progress. We expect the change to be fully deployed over the next week, and once fully deployed, we expect to see several results:
  • pages will load faster
  • pageviews, if impacted at all, may increase
We will keep an eye on things, and if we see anything unexpected, we will update this post. Otherwise, keep blogging — and we’ll keep working to make your blog faster for you and your readers!
 

An Update on YUI 3 Charts

1:47 pm - February 18, 2010 in Yahoo! User Interface Blog

YUI 3 Charts in action.

Today, we checked in our work-to-date on the next generation of YUI Charts. You can find this pre-alpha code, along with some examples, in the sandbox directory of the YUI 3 head on GitHub. This initial release is a preview of where we’re going with YUI Charts; no aspect of this implementation is complete, and it’s not suitable for production use at this point, but it does give a sense of where we’re heading — and it’s a chance for us to check in with interested developers and share our progress. (If you need a production-ready charts solution today, check out YUI 2 Charts.)

For this release, we have created a solid foundation to build up the functionality of the Charts, and we’ve included one simple chart type to demonstrate the flexibility of our architecture. In particular:

  • YUI 3 Charts are now fully modular. Individual subcomponents of a Chart, like an Axis, or a LineGraph, are now their own classes that you can manage and update individually.
  • The modularity of the Charts component within the Flash Player (our current rendering engine of choice) is fully paralleled in its JavaScript wrapper. From the JS developer’s point of view, you are working with a set of JS components, with all method calls, display list changes and property assignments seamlessly transmitted to Flash and back. (This abstraction will be even more crucial when we move beyond a single rendering engine.)
  • The Charts now support styling every single element — from label rotation and font faces (no need for embedded fonts!), to the color and number of tick marks.
  • Because of the new modularity, features like multiple axes and multiple independent graphs are now included.
  • In addition to the very advanced Chart, we’ve drafted a sugar wrapper called SimpleChart, which allows you to quickly build Charts with two lines of code.

Now that the foundation is in place, our next step is to continue building up the Charts functionality. If you are interested in what that will be, take a look at our talk from YUIConf 2009, where we described our grand plans for the architecture and features of the Charts package.

You can start playing with Charts immediately: the component, along with a few very informative examples, is located in the YUI 3 sandbox. To get started, download the latest YUI 3 build from GitHub, drop it in your web root, and navigate to the sandbox/chart/tests directory. Keep in mind that this is not a packaged release. For that reason, the API we use is just a sketch of what the final API will be and is therefore sure to change, but we’d love to hear your thoughts and feedback on where the project is headed.

We’ve posted the current example set on YUIBlog as well (running build 1828) — feel free to click through if you’re interested in seeing the current work in action:

—Tripp Bridges and Allen Rabinovich, YUI Team engineers

 

Search Providers: Best Practices on Setting the Default

1:58 pm - February 17, 2010 in IEBlog

This post describes a set of best practices for setting the default search provider. Our goal continues to be keeping users in control of their browser, following our published Guidelines and Requirements for add-on development.

If you write software that modifies Internet Explorer’s search settings or defaults through direct registry manipulation, your software may be contributing to user confusion and frustration.

Whenever a program tries to modify the default search provider through direct registry manipulation (e.g. modifying the DefaultScope registry key directly as described in an earlier blog post ), IE8 intercepts the change and prompts users to confirm what they want:

IE search provider default dialog

Figure 1: In this dialog, the software requests a search default change using the recommended SetDefault API and clear attribution is displayed. In this case, it is the Contoso Internet Toolbar software.

If multiple search providers try to reset the registry key every time it changes, it causes a confusing and frustrating user experience. The above dialog box will re-appear every time the key is modified directly.

IE8 includes a Search Provider Default configuration experience designed for this scenario. When your software uses the IOpenServiceManager API (to install a search provider) and the SetDefault API (to request users set it as their default), users will see clearer communication about what is happening. This transparency is an important part of the user being in control.

The following code sample shows how to install a search provider and request that the user set it as the default using the recommended APIs.

#include <windows.h>
#include <atlbase.h>
#include <openservice.h>

HRESULT hr = E_FAIL;
BOOL fComInitialized = FALSE;

if (S_OK == CoInitialize(NULL))
{
fComInitialized = TRUE;

//Open a handle to the OpenService manager
CComPtr<IOpenServiceManager> spManager;
hr = spManager.CoCreateInstance(CLSID_OpenServiceManager);

if (SUCCEEDED(hr))
{
CComPtr<IOpenService> spService;

//Install my search provider
//URL-OF-SERVICE: See http://www.opensearch.org/Specifications/OpenSearch/1.1#OpenSearch_description_elements
hr = spManager->InstallService(URL-OF-SERVICE, &spService);

if (hr==S_OK)
{
//Request that the user changes their search default
hr = spService->SetDefault(TRUE, NULL);
}
}
}

if (fComInitialized)
{
CoUninitialize();
}

When called, the SetDefault API will show the above dialog (See Figure 1 above) requesting the user to change their search default. The user can approve or deny this request from the software. If approved, the software can change the default setting. If denied, however, the software will not be allowed to change the user's default settings. The user can change the setting at any time by opening the Manage Add-ons window.

If the binary that is calling the SetDefault API is signed with a valid code signing certificate, the program name and publisher will be displayed in the Search Provider Default dialog box as in Figure 1 above. Code that calls SetDefault should be signed.

In summary, if your software monitors the DefaultScope registry key directly, please update your code to use the recommended APIs. This will allow the user to see the search provider default dialog only once and lets them be in full control of their default, in support of the Guidelines for add-on development.

If you are new to OpenSearch Extensibility and would like to learn how to offer your services or how to get started, check out the article Search Provider Extensibility in Internet Explorer.

Until next time,

Duc (Cash) Vo
Programmer Writer
Internet Explorer

 

Graded Browser Support Update: Q1 2010

7:44 pm - February 16, 2010 in Yahoo! User Interface Blog

This post announces an update to Graded Browser Support. The GBS page on the YUI site always has the most current GBS table. This post includes:

GBS Changes for Q1 2010

Specific changes for Q1 2010 include:

  • Initiated A-Grade support for Chrome 4.0.† on Windows XP
  • Replaced Windows Vista with Windows 7 in the testing matrix (dropping IE7 from that platform while retaining it on XP)
  • Moved Opera 10.† to X-Grade from A-Grade
  • Replaced Firefox 3.5.† with Firefox 3.6.† in the testing matrix
Win XP Win 7 Mac 10.5.† Mac 10.6.†
Firefox 3.0.† A-grade
Firefox 3.6.† A-grade A-grade A-grade
Chrome 4.0.† A-grade
IE 8.0 A-grade A-grade
IE 7.0 A-grade
IE 6.0 A-grade
Safari 4.0.† A-grade A-grade

Notes:

  • The dagger symbol (as in “Firefox 3.6.†”) indicates that the most-current non-beta version at that branch level receives support.
  • Code that may be used on pages with unknown doctypes should be tested in IE7 quirks mode.
  • Code that may appear in IE8’s "compatibility mode," which emulates but is not identical to IE7, should be tested explicitly in compatibility mode.

GBS Forecast

We expect to make the following changes in the Q2 2010 GBS update:

  • Discontinue A-grade for Firefox 3.0.†, moving it to X-grade.

Discussion

This update implements the guidance we provided in Q4 2009. That update generated significant discussion, and high-quality input from Opera is included in the comments thread; I encourage you to refer to that update for more details. Of interest in this update:

  1. Chrome: Chrome’s continued growth argues compellingly for its inclusion in the A-Grade. Discussion among members of the GBS committee focused around when, not if, Chrome would be promoted into the testing matrix, and there was a strong consensus that it belongs there today.
  2. Opera: Refer to the Q4 2009 GBS update for a discussion of the decision to move Opera to X-Grade. Worth noting here is that YUI specifically and Yahoo more broadly continue to support Opera — just as we continue to support X-Grade browsers in general. The GBS provides guidance for formulating QA testing matrices, and our recommendation as of Q1 2010 is that Opera be grouped in the X-Grade along with other high-quality, low-marketshare browsers. Opera is an excellent browser — we expect Opera users to have a good experience on Yahoo! sites and YUI-based sites, and we’ll continue to investigate bugs related to Opera as they are identified.
  3. Windows Vista and Windows 7: By volume, client-side defects that are specific to a single version of Windows (as opposed to a version of Internet Explorer) are relatively low. Our experience has been that Vista-specific testing has not led to a significantly differentiated set of bugs compared with testing on XP. With that in mind, we’ve decided to replace Vista in the testing matrix with the newer and ascendant Windows 7 platform, keeping the testing surface to 4 unique platforms while bracketing the Windows continuum with the evergreen XP and the newer Windows 7. While Vista remains a popular operating system, and QA engineers and developers should retain access to Vista environments to investigate bugs when reported, we advise QA departments to begin migrating their automated testing platforms to Windows 7 at this point.

Our quarterly reminder: Graded Browser Support is a QA philosophy, not a report card on the quality of popular browsers. It’s designed to provide guidance for QA teams about how best to use their limited testing resources (and to frontend engineers about how to sanely cross-check work across a finite set of browsers). The goal is to be conservative and calculating: We want to test the smallest possible subset of browser/platform combinations, leveraging implicit coverage by testing the most commonly shared core browser engines.

The GBS Archive

 

AdWords Downtime: February 20, 10am-2pm PDT

6:45 pm - February 16, 2010 in AdWords API Blog
We'll be performing routine system maintenance on Saturday, February 20 from approximately 10:00am to 2:00pm PDT. You won't be able to access AdWords or the API during this time frame, but your ads will continue to run as normal.

Best,
- Eric Koleda, AdWords API Team
 

In the Wild for February 16, 2010

1:10 pm - February 16, 2010 in Yahoo! User Interface Blog

Some recent news and notes from the YUI community follows. What did we miss? Let us know in the comments or @yuilibrary on Twitter.

 

Gift Sales Just Got Easier: Advanced Buyer Messaging Feature out of Beta

11:41 am - February 16, 2010 in Checkout: The Official Google Checkout Blog
We're happy to share that the Advanced Buyer Messaging (or gift messaging) feature is now out of beta.

The feature, released in beta in January 2009, provides the functionality for your customers to add gift messages, add additional instructions, or request gift receipts. Over the last year, we've seen a number of Checkout sellers who have used this feature to improve the buying experience of their users.

For example, Always Brilliant and Serenata Flowers have both implemented Advanced Buyer Messaging to allow their buyers to specify gift messages and request a gift receipt. Espresso Royale lets buyers specify any special instructions they may have regarding the order along with a gift message.

We're making a few changes to the feature as we take it out of beta. Based on user feedback, we have streamlined the number of tags making the feature more straightforward to use. We will support only the gift-message, include-gift-receipt and special-instructions tags going forward. If you are currently using any of the old tags, you can continue to do so, but we encourage you to make the switch to one of the supported tags which will give you the same functionality.

If you haven't used the Advanced Buyer Functionality yet, we encourage you to explore how these features may be able to improve your customer experience. Take a moment to learn more about how to allow you buyers to specify special instructions related to delivery or treatment of goods, specify a gift message or ask you to include a gift receipt.

Posted by Boris Mizhen, Software Engineer and Satyajeet Salgar, Product Manager
 

GWT 2.0.2 is now available

3:30 pm - February 12, 2010 in Google Web Toolkit Blog

GWT 2.0.2 has been released and is available for download here:

http://code.google.com/webtoolkit/download.html

This was a minor release that includes the following fixes:

  • Standard.css missing new layout styles (#4429)
  • Using a PopupPanel in Internet Explorer without a history IFrame throws a NullPointerException (#4584)
 

In the YUI 3 Gallery: Julien Lecomte’s 1.3KB SimpleMenu with Keyboard and ARIA Support

12:21 pm - February 12, 2010 in Yahoo! User Interface Blog

Julien Lecomte wrote the SimpleMenu module for use on Yahoo! Search (the “More” link uses this code). It’s superbly light — a 1.3KB minified script leveraging the YUI 3 core, plugin architecture, and keyboard/focus management utilities. Moreover, it’s simple to use. He’s shared it in the YUI 3 Gallery — you can use it under YUI’s BSD license or you can grab the source from GitHub and use Julien’s code as starting point for your own project.

Julien hasn’t had time to document the widget fully, so I wrote up a common use case.

Take a simple piece of markup:

<!--menu activator-->
<a href="http://developer.yahoo.com/yui/" id="optionsmenu">YUI-Related Links</a>

<!--menu contents-->
<div id="optionsmenucontainer" class="yui-cssreset">
<ul>
<li><a href="http://developer.yahoo.com/yui/">YUI documentation</a></li>
<li><a href="http://yuilibrary.com">YUI project site</a></li>
<li><a href="http://yuilibrary.com/forum/">YUI discussion forums</a></li>
<li><a href="http://yuiblog.com">YUIBlog</a></li>
<li><a href="http://developer.yahoo.com/yui/theater/">YUI Theater</a></li>
<li><a href="http://yuilibrary.com/gallery/">YUI 3 Gallery</a></li>
<li><a href="http://twitter.com/yuilibrary">@YUILibrary on Twitter</a></li>
<li><a href="http://twitter.com/miraglia/yui/members">@YUILibrary developers on Twitter</a></li>
</ul>
</div>

And the following script:

<script type="text/javascript"
src="http://yui.yahooapis.com/combo?3.0.0/build/yui/yui-min.js&gallery-2010.02.10-01/
build/gallery-simple-menu/gallery-simple-menu-min.js"></script>

<script language="javascript">
YUI().use('gallery-simple-menu', function(Y) {
    Y.one('#optionsmenu').plug(Y.Plugin.SimpleMenu);
});
</script>

What remains is simply some CSS styling. Julien’s widget applies the .menu-visible class when the menu is activated; a simple approach is to set the menu container’s default position to absolute and move it off-screen. Then, in your .menu-visible declaration, remove the offset and allow the widget to position the container under its activator element:

#optionsmenucontainer {
    left:-4500px;
    position:absolute;
}

#optionsmenucontainer.menu-visible {
    left:auto;
}

Click through to try this example in action.

 
 
 
 
 
 
It's All About Search | © clsc.net |
2012.05.2123:36
Tech used here: Valid HTML - Valid CSS - Valid RSS - JavaScript - PHP - Smarty - MySQL - and a partridge in a pear tree.