Spot the web RSS 2.0
# Monday, January 14, 2008

Optimizing Symbol Resolution

How to speed up in a late binding world. Discusses the scope chain from vars to the DOM itself, and how to make sure that you don’t keep running around the chain.

JavaScript Code Inefficiencies

To make string manipulation more effience in IE:

  • Use local vars
  • Cache strings from IE objects
  • Use Array.join for concatenation

(I prefict that array.join will stick around even when it isn’t faster, just like the equivilent in Java land).

Some other thoughts:

  • Don’t use eval unless you really have too. Instead of parameterized code
  • SWITCH is costly for large sets, consider a hash table wrapped in a try/catch
  • WITH is costly due to symbol lookups everywhere, use manual iterators
  • Don’t use your own get/set accessors

IE Performance Considerations

DOM is expensive in IE, especially due to the generic nature of the platform. Also watch out for layout improvements such as hover CSS style.

HTTP Performance

Simplify and reduce:

  • Script in on JS file
  • Styles in one CSS file
  • Fewer, smaller, unscaled images
  • Simplify layout
  • Use HTTP compression (lots of detail on cache control)

Tools and Techniques

  • Developer Toolbar
  • Fiddler: HTTP traffic watching
  • Ajax View: New from MS Research. On the fly rewrite the JavaScript and add instrumentation code.
Monday, January 14, 2008 4:41:00 PM (Jerusalem Standard Time, UTC+02:00)  #    Comments [0] - Trackback
Web 2.0 | AJAX
# Thursday, January 10, 2008

xobni

Xobni (that's inbox backwards - cute!) is the next big idea in terms of productivity enhancements for your inbox. The Xobni software is an add-on for Microsoft Outlook that offers email management and quick access to important information in your email. But more than that, Xobni claims to "expose the hidden social network" in your email. That's ingenious because everyone I know is in my email...somehow, somewhere...but they may or may not be my friend on MySpace, Facebook, flickr, YouTube, etc. This is especially true for my family members over 40!

Xobni taps into email's hidden social network by creating information-rich profiles out of every person you have ever corresponded with by mining your email for information about them.

The Xobni software has several features, including fast email search, email analytics, automatic phone number discovery, threaded conversations, and more.

The email search is fast and begins finding the people and/or emails you're looking for as you type. A search for a contact will pull up their profile and every email where you two have corresponded...in 0.3 seconds!

A Xobni profile is created for every person you've emailed with and is displayed on the right side of Microsoft Outlook inside the Xobni sidebar. Each profile displays relationship statistics, contact information, related people, threaded conversations, shared attachments, and the author of the message you are currently looking at.

xobni

The relationship statistics show things like the time of day when you receive emails from the contact, the balance of incoming and outgoing messages, and the person's rank out of all of your contacts. These statistics are created by Xobni's powerful analytics engine, which can also be accessed from a menu option to further analyze your email habits with numbers, charts, and graphs.

A contact's phone number is displayed in the Xobni sidebar by automatically extracting that information from your emails. This way, you can see someone's phone number even if you've never actually entered them into your Outlook contacts. If you hover over the phone icon next to the number, you can see the text of the email from which their phone number was extracted.

phone_button

Further down, the related people section shows other people who are connected to that person in some way, exposing your shared friends as well as your contacts relationships to each other. Clicking on the name of one of the "related people" will take you to their profile in the Xobni sidebar.

Beneath the related people pane, a recent conversations area shows your most recent previous correspondence with that contact. This can be very useful to help jog your memory when replying to a new email, as you can quickly recall what had already been said. It can also save you time because you never have to navigate away from the current conversation to locate previous emails. The conversations are listed by date, and by clicking on them, you can then view the emails themselves. You can also reply or forward one of those emails right in the Xobni sidebar, or you can choose to open the email in Outlook. Attachments they've sent you or you've sent them are underneath the conversations area, again saving you from having to navigate away from the current conversation to find the email with the attachment you need.

Xobni also helps with scheduling. It displays your appointments, schedule, and to-do list, and in the Xobni sidebar, there is a "Schedule Time" link below each contact. Clicking this link opens up a pre-composed email with your availability. This saves you time as you don't need to check your calendar every time you need to schedule a meeting. Xobni knows when you have an opening. Another interesting feature is that Xobni also automatically identifies people you've lost touch with by looking at the dates of your last correspondence with them.

Outlook is Only the Beginning

Although currently for Microsoft Outlook only, Xobni's blog hints that this may just be the beginning by calling Outlook "the first platform we’ve integrated with." They said they chose Outlook because it is used by 350 million people, but they also say that they "don’t want to force our users to change email clients or social networks to use Xobni. Our software seamlessly integrates with the environments and systems that you already use to communicate and build relationships." This makes me think that we will see integration with more platforms in the future.

Xobni's brilliance is in providing you with a true social network filled with information that can help you stay productive and get things done. It will never replace the fun of building a customized profile page on a social network like Facebook or MySpace, but it uncovers the network already present in what is perhaps the main area of your life where you communicate and build the most relationships. This makes Xobni not just useful, but one of those, "how did I ever live without it" kind of things.

Xobni is currently in an invite-only beta, but you can sign up to try it here.

Thursday, January 10, 2008 4:54:04 PM (Jerusalem Standard Time, UTC+02:00)  #    Comments [0] - Trackback
Site Reviews | Web 2.0
# Wednesday, January 09, 2008

If you are looking for a ASP.NET Google Map Control, your search is now over.

Jacob Reimers from http://www.reimers.dk/ offers a great asp.net control in 2 flavors.

The free version which lets you easily display a map with markers and/or lines and a licensed version which gives you the full power of Google Maps.

Download the free control, unzip it to your Bin folder in your web app and add a reference to it.

 

This is a sample asp.net page:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ Register Assembly="GoogleMap" Namespace="Reimers.Map" TagPrefix="Reimers" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server"> 
    <title>Google Map test</title>
</head>
<body> 
    <form id="form1" runat="server"> 
        <div> 
            <reimers:googlemap id="GMap" runat="server" width="349" height="354" onmarkerclick="GMap_MarkerClick"  /> 
        </div> 
    </form>
  </body>
</html>

and the code behind:

using System;

using System.Web.UI;

using Reimers.Map;

 

public partial class _Default : Page

{

    protected void Page_Load(object sender, EventArgs e)

    {

        GMap.GoogleKey = "Your API Code here";

        GMap.MapType = MapType.Map;

        GMap.TypeControl = MapTypeControl.None;

        GMap.MapControl = ControlType.Small;

 

        GoogleMarker testMarker = new GoogleMarker("newMarker", new GoogleLatLng(43.611611, -88.952931));

        testMarker.MarkerText = "Test Marker";

        GMap.Markers.Add(testMarker);

 

        GMap.Latitude = testMarker.Latitude;

        GMap.Longitude = testMarker.Longitude;

        GMap.Zoom = 10;

    }

 

    protected void GMap_MarkerClick(GoogleMap GMap, GoogleMarker Marker, ref String MapCommand)

    {

        MapCommand = Marker.OpenInfoWindowHTML(GMap, Marker.MarkerText);

    }

}

Wednesday, January 09, 2008 1:23:22 PM (Jerusalem Standard Time, UTC+02:00)  #    Comments [0] - Trackback
.Net | Google | Programming | Visual Studio | Web 2.0
Navigation
Archive
<January 2008>
SunMonTueWedThuFriSat
303112345
6789101112
13141516171819
20212223242526
272829303112
3456789
About the author/Disclaimer

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.

© Copyright 2010
Guy Levin
Sign In
Statistics
Total Posts: 63
This Year: 0
This Month: 0
This Week: 0
Comments: 14
Themes
All Content © 2010, Guy Levin