The Google Font Directory lets you browse all the fonts available via the Google Font API. All fonts in the directory are available for use on your website under an open source license and served by Google servers.

View font details to get the code needed to embed the font on your web site. Please also visit our quick start guide and FAQ page. For more help and suggestions, use our moderator page

Use web fonts on your site with just a few lines of code – and Google hosts the font for you. Much easier than SIFR or any other method that’s previously been available – and it works on IE6.

Posted via web from Phillip Duncan’s posterous

Why, Microsoft, why? That’s all I ask. Why must you continue to introduce proprietary technology in Internet Explorer?

Internet Explorer 8 Beta is now available for download and one of the new features is WebSlices. By adding a few specific class names to content blocks, IE will essentially syndicate the content.

<code><div class=”hslice” id=”1”>
  <p class=”entry-title”>item – $66.00</p>
  <div class=”entry-content”>high bidder:buyer1
    …
  </div>
</div>

Using the above classes will generate content the user (or IE8 user) can subscribe too. Why not RSS? Is it because that’s compatible with other software, browsers, and readers. Microsoft wanted something that would just work for Internet Explorer.

Do they honestly thing any developer will support or use this? Hmm… let’s see… I can create a RSS feed for my content that anyone can use (even IE7 and IE8 users) or I can create the WebSlice just for IE8 users. The only use this will get will be from FrontPage/Expression users who do not know any better.

Even Microsoft says it’s just like RSS on their site:

WebSlices behave just like feeds where clients can subscribe to get updates and notify the user of changes.

Please Microsoft, just make a good, fast browser for people to use. I was willing to admit IE7 was a step in the right direction. It’s fast and renders content relatively well and has good CSS support. It was only a matter of time before they had to go and ruin it.

I’ve finally deployed the DotNetNuke site I’ve been working on. After deployment is when the most obvious things pop up.

For instance, in DotNetNuke when you search for something in the site it will return a list of links to what it finds. What it won’t do is display something friendly like “No Search Results Found” if it doesn’t find anything. Dumb and not very user friendly.

I did find what I thought would be the solution at ecktwo, but it didn’t work in Firefox due to the

document.getElementById("search").innerHTML

which doesn’t work in Firefox within a table, which is what the Search Results are generated using the ASP.NET grid view. So, I thought I’d take a stab at building something that worked for both IE and Firefox.

Make a copy of your admin\Search\SearchResults.ascx file and then open the file in notepad. Apply the following code that I’ve highlighted in red:

<%@ Control Language=”vb” AutoEventWireup=”false” Explicit=”True” Inherits=”DotNetNuke.Modules.SearchResults.SearchResults” CodeFile=”SearchResults.ascx.vb” %>

<asp:Datagrid id=”dgResults” runat=”server” AutoGenerateColumns=”False” AllowPaging=”True” BorderStyle=”None”
PagerStyle-CssClass=”NormalBold” ShowHeader=”False” CellPadding=”4″ GridLines=”None”>
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<asp:Label id=lblNo runat=”server” Text='<%# DataBinder.Eval(Container, “ItemIndex”) + 1 %>’ CssClass=”SubHead”>
</asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn>
<ItemTemplate>
<asp:HyperLink id=”lnkTitle” runat=”server” Name=”result” CssClass=”SubHead” NavigateUrl='<%# FormatURL(DataBinder.Eval(Container.DataItem,”TabId”),
DataBinder.Eval(Container.DataItem,”Guid”)) %>’ Text='<%# DataBinder.Eval(Container.DataItem, “Title”) %>’>
</asp:HyperLink>&nbsp;-
<asp:Label id=”lblRelevance” runat=”server” CssClass=”Normal” Text='<%# FormatRelevance(DataBinder.Eval(Container.DataItem, “Relevance”)) %>’ >
</asp:Label><BR>
<asp:Label id=”lblSummary” runat=”server” CssClass=”Normal” Text='<%# DataBinder.Eval(Container.DataItem, “Description”) + “<br>” %>’ Visible=”<%# ShowDescription() %>”>
</asp:Label>
<asp:HyperLink id=”lnkLink” runat=”server” CssClass=”CommandButton” NavigateUrl='<%# FormatURL(DataBinder.Eval(Container.DataItem,”TabId”),
DataBinder.Eval(Container.DataItem,”Guid”)) %>’ Text='<%# FormatURL(DataBinder.Eval(Container.DataItem,”TabId”),
DataBinder.Eval(Container.DataItem,”Guid”)) %>’>
</asp:HyperLink>&nbsp;-
<asp:Label id=”lblPubDate” runat=”server” CssClass=”Normal” Text='<%# FormatDate(DataBinder.Eval(Container.DataItem, “PubDate”)) %>’>
</asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
<PagerStyle CssClass=”NormalBold” Mode=”NumericPages”></PagerStyle>
</asp:Datagrid>

<div id=”NoResults”>
<h3 class=”red” style=”text-align:center”>No Search Results Found</h3>
</div>
<script language =”Javascript”>
var search;
search = document.getElementsByName(“result”);

if (search.length == 0) {
document.getElementById(“NoResults”).style.display=’block’;
}
else {
document.getElementById(“NoResults”).style.display=’none’;
}
</script>

Be sure to add the Name=”result” snippet to the asp:Hyperlink in the code above. It’s easy to miss.

Save that and you should now have a spiffy new message displayed when no results are found. Use whatever CSS you want to style the message.

Multiple IE is a great little free program that lets you run multiple versions of Microsoft Internet Explorer along with version 7 of Internet Explorer.

The previous version I used to check IE6 used a Virtual PC and was a memory hog. This method worked perfectly and much faster and lets you test all the way back to Internet Explorer 3 (if you so desire).

Two nice WordPress plugins were released this week that might be of use to some.

First up is Local Analytics. This plugin caches the urchin.js file on your local server, allowing  faster loading of the script. It also adds an admin configurable host of options that allow better tracking of outgoing links, downloaded files, and email address links. Definitely worth a try if you like Google Analytics (and you should).

Next up is the WordPress Super Cache plugin. Heavily modifying the WP-Cache 2 plugin, Donncha O Caoimh has created another great plugin for WordPress. If you’ve got a lot of traffic and fairly static content, it might be just the thing you’re looking for. Comments suggest there might be issues with AJAX or other interactive features. So try it out and see how it works.

Unfortunately, I’ll have to wait on Super Cache. Despite a nice modification to use the plugin on a Windows IIS or Apache server, it still requires the ISAPI_Rewrite 3.0 package for use on Windows servers. With most of my work involving .NET development now and the site up and running fine on WordPress, maybe I should migrate to a PHP account?