Archive for December, 2011

Summing up 2011

The end of a year. There’s so much to say and look back on, and at the same time I am already certain that I will temporarily forgot some of the amazing things that happened to me this year. For it was indeed a fantastic year!

People!

One thing I do know, though, is that I will only namedrop sparingly, since I’ve meet an abundance of fantastic and outstanding persons this year, and there is simply not room nor time to go through all of them. Suffice to say, this year has without a doubt been the year when I’ve met the biggest number of terrific individuals, and I hope you know who you are and how happy I am that I met you!

A new job

In March this year it was finally decided and happening – I joined Mozilla as a Technical Evangelist! Lots of new changes with working for something you truly believe in – a non-profit organization dedicated to keep the web open and free! It is naturally also a big change working full time from home (or, well, wherever I am at the moment), and quite liberating to work from literally anywhere as long as I have a laptop with me (and honestly, after having the new MacBook Air, I don’t think I’ll ever go back to a big bulky laptop again).

Someone special

For a good part of this year, I have been together with someone very special and I am really happy to have met a person who means a lot to me! She is smart, beautiful, funny, spontaneous and just an amazing being.

She is indeed one of a kind and I look forward to a continued great future together!

(I’m letting her be a bit incognito for now :-) )

Travel and speaking

This year was packed with a lot of travel, speaking engagements in four contintents and a whopping 178,541 km covered during 95 days on the road. I’d like to briefly go through my journeys this year below. And, if you like pictures, below each destination there is a link to all photos from that trip, so don’t miss it!

All the slides and videos from my talks are available on Lanyrd.

Brussels, Belgium [February]

I went to Brussels to give a joint talk with Christian Heilmann about HTML5 at FOSDEM, and we spoke to a completely packed room!

Packed House

Mountain View, USA [February]

A very intense trip to California, with arriving in the evening, followed by a full day of interviews for trying to get the position at Mozilla, and then travel home again the next day. It’s a long trip, but in hindsight it was definitely worth it! :-)

Montreal, Canada [March]

I was speaking at the ConFoo conference, and the trip included some interesting meals and sightseeing. Plus, of course, a dip in the outside rooftop pool at the hotel, surrounded by snow!

Hotel rooftop pool - Montreal, Canada and the ConFoo conference

I also got to know Jordi Boggiano here, and later on this year we also met in Italy and Switzerland.

[All pictures from Montreal in March]

Las Vegas, USA [April]

Microsoft invited me to take part of their MIX conference, and it was an extraordinary trip in so many aspects. Given the normal stance I get from web developers and the community, it was interesting, to say the least, to be at an event where the majority liked Microsoft and rooted for Internet Explorer…

It was also my first time in Vegas, and I complemented it with visits both to Hoover Dam (courtesy of Mike Taylor of Opera who drove me there) and visiting Grand Canyon, and also flying in it in a helicopter.

Las Vegas sign - Las Vegas, April 2011

[All pictures from Las Vegas in April]

Vaasa, Finland [April]

Ok, I’ll be honest. No offense to Vaasa, but after a week in Vegas, it’s hard to compete. I did have a good time, though (I always do :-) ) and the OpenKvarken conference was an interesting place to speak at. Also, having discussions with people like Monty Widenius (of MySQL fame) and Martin Storsjö of Bambuser is always a good thing!

Vaasa, Finland April 2011 - OpenKvarken Conference

[All pictures from Vaasa in April]

Verona, Italy [May]

Ah, Verona. Supposedly the home to Romeo and Juliet, something that the town had built upon immensely. A nice Italian town and the jsDay conference was a good place to be speaking at! First time actually meeting Patrick H. Lauke, of Opera, in person, which I’m quite glad for!

Verona and jsDay, Italy

[All pictures from Verona in May]

London, United Kingdom [May]

Managed to find some time to visit my brother in London, and we squeezed in seeing Eric Clapton play at Royal Albert Hall and some good stand up at Comedy Store. Also happy to meet friends like Jake Archibald and his elusive girlfriend, Stuart Colville, Frances Berriman and more.

Robert Nyman - London, May 2011

[All pictures from London in May]

Paris, France [June]

Between my old job and starting at Mozilla, I had a few weeks off and was quite happy to take my daughters to Disneyland Paris! It was a success, for all three of us, and it was an intense and joyous week!

London, United Kingdom [July]

Time to speak at the AJAX User Group and also get to meets tons of friends in, and around, London. Good times!

Dylan Schiemann, Robert Nyman, Christian Heilmann - London Ajax Mobile Event

[All pictures from London in July]

New York City, USA [July]

I was quite happy to land this gig! Speaking for the GothamJS conference on stage on Broadway in New York City! Pretty cool! In 2000, I had a stint in New York and I hadn’t been back since. So, given September 11 and everything else that have happened during the last eleven years, I was extatic to be back, and it is a city I truly love.

View from Empire State Building - New York City, July 2011

[All pictures from New York City in July]

San Jose, USA [July]

Immediately following the New York City visit we had a Mozilla work week in San Jose. First one for me, having been employed for about two weeks, and we had a very nice off-site meetup and get together.

Robert Nyman - Mozilla Work Week in San Jose and Mountain View

[All pictures from San Jose in July]

Zurich, Switzerland [September]

In the fall of 2010, while at a conference in Poland, I told Markus Leutwyler that he should organize something in Zurich. A little less then a year later he pulled it off, and I was happy to be asked to speak at the FrontEnd conference there. As I often do, I also managed to get some good sightseeing with some friends, which had us ending up outside the city in a moment that was like a mix of Deliverance and Blair Witch Project…

Zurich trip & Frontend Conference

[All pictures from Zurich in September]

San Jose, USA [September]

Time for my first Mozilla All Hands, where all the employees meet up at the same location and have a week filled with talks, discussion and collaboration. I was impressed to see the professionalism from the leading people in Mozilla, and as a JavaScript developer, of course it’s mighty cool to have Brendan Eich as your CTO and David Flanagan aboard. Every evening was also filled with exciting events!

Human Fussball - Mozilla All Hands, San Jose, September 2011

On the way home to Sweden, I had a layover in London for a few hours, so me and my brother managed to squeeze in a visit to Jimi Hendrix apartment since that specific day was Open House Day in London.

[All pictures from San Jose in September]

Los Angeles, USA [October]

After MIX in Las Vegas in April, Adobe MAX was my second massive conference this year. And man, I have to say, Adobe sure can put together a conference, and the outdoor party in downtown Los Angeles was amazing! Cirque du Soleil performance, Weezer doing a gig and much more! It was also my first time in LA, so I had a day packed with sightseeing.

Hollywood Walk of Fame, Hollywood Boulevard - Los Angeles

On top of that, I managed to walk right into the shoot of the next Batman movie, The Dark Knight Rises.

[All pictures from Los Angeles in October]

Amsterdam, Netherlands [October]

Flying in directly overnight from LA, I got to Amsterdam the first morning of the Fronteers conference. Amsterdam is a place where I have lots of really good friends, and it almost becomes sort of an overload being there – it’s so intense!

The bald guys - Amsterdam & Fronteers Conference 2011

[All pictures from Amsterdam in October]

Paris, France [October]

Believe it or not, this was the first time I was actually in Paris – I’ve only been outside the city before. I went there to speak at Paris Web which I quite liked. Giving a presentation that is live translated with both sign language and into French text on a screen is pretty fun! I also got to do all the touristy stuff as well – Eiffel Tower, Notre Dame, Musée du Louvre and Mona Lisa and more – by staying over the weekend.

Eiffel Tower - Paris

[All pictures from Paris in October]

Johannesburg, South Africa [October]

First time in Africa, and why not start by going all the way down to South Africa? I spoke at the Tech4Africa conference, which was a great mix of varying speakers and attendees. The conference organizers also graciously offered all the speakers a three day safari in a game reserve seeing all the amazing animals and surrounds they have, and it was out of this world! Lions, elephants, rhinos, hippos, crocodile, giraffes, ostriches and so much more!

Pilanesberg Game Reserve, South Africa

[All pictures from South Africa in October]

Santiago, Chile [November]

I flew directly from South Africa to Chile, via Brazil, to speak at the StarTechConference. After the high in South Africa I just wanted to stay there, but my visit in Chile turned out to be quite amazing as well! The different thing in Chile was that us international speakers were treated like rock stars, posing for pictures all the time, signing autographs etc. Slightly awkward when you know that you are just a normal person, but, I have to admit, quite entertaining too. :-)

StarTechConference, Santiago, Chile

[All pictures from Santiago in November]

Berlin, Germany [November]

I got three days at home after Chile, and then on to Berlin and MozCamp Europe. My last travel this year, and while it’s great fun, I also felt how worn out I was and that I just needed to be home for a while. However, the most excellent company made this into yet another fantastic time.

MozCamp Europe, Berlin

[All pictures from Berlin in November]

Summing up the year

All in all, this year has been tremendous! Overall I’ve gotten to experience so much, meet so many people, see so many places and also grow as a person. I’m finally finding out who I really am, what I want and what I don’t want, and ultimately, what I want my life to be like. And that, my friends, is a genuinely wonderful feeling!

Happy New Year, and may all your paths be fantastic!


Book Review (Book 7) – Think Stats

This is a continuation of the books I challenged myself to read to help my career - one a month, for year. You can read my first book review here. The book I chose for December 2011 was: Think Stats, by Allen B. Downey

Why I chose this Book:

I originally chose another book for this month, but changed to this one after a difference in focus (sort of) in my technical career. That brings up a couple of interesting points right away. The first is that it’s OK to change a list - remember that the purpose of reading these books is to gain information that gets you closer to your professional goals. When you develop your list, you have a certain amount of knowledge, and as you read more, experience more, and are exposed to more, you get different information. When that happens, adapt.

The second point is that your goal itself may change. I am focusing on “Big Data” this year and with the changes we’ve made in Windows and SQL Azure at Microsoft, this fits neatly with my professional goals personally and the company I work for. Actually, my goals in technology haven’t changed in the 27+ years I’ve worked in IT, in roles from electronics, programming, consulting, management, architect and in my current technical role here at Microsoft. I think that it has always been about data - everything in IT is an interface to data. And I have always wanted to be at the center of that. Data Science involves not just the sourcing, administration and movement of data, but in applying scientific (with an emphasis on mathematical) disciplines to get at the meaning the situation needs.

So that brings me to this choice. My friend Jeremiah Peschka found this resource for a role I am VERY interested in - the “Data Scientist”. It’s a combination of high-end mathematics, Data Analysis and Big Data. The resource is a series of books from O’Reilly for that very title. You can find that here.

Personally, I find the grouping of books a little cobbled together. They are all fine books, but I’m not certain how they lead you through the series of knowledge required for the topic, but that’s a post for another day. Within that series of books is the one I’m reviewing today. I started (since there is no implied order in the books) with the “Data Analysis” book, but it seemed to start in the middle of some topics I needed to research, so I switched to reading this one, and chose it as my December book.

Another note here - December is a tough month. Since so many people take vacation time during this month, most of my clients try to get as much work in before the Holidays as possible. Since they are all doing that at once, it makes for a lot of overtime. Also, I travel to see family, which of course puts me out of pocket for a while myself. So staying on track with the books - especially one that makes heavy use of computing, math and focus is hard. So it’s tough to maintain your goals all of the time - but keeping in mind why you do this is the important thing. It will keep you on track.

What I learned:

This book focuses more on what the title says - it’s more about being mindful of the way you use statistics than the statistics themselves. It’s assumed you know not only the basics of statistics (I used these free lessons as a refresher, along with some of my old stats books) but how they are used.The author doesn’t stop to explain a lot of stats he uses, but periodically he does show why a given formula works the way it does. This is very useful, and helps with understanding the point of using one method over another. He also does a great job of using statistics to verify other statistics.

Although it should be obvious, the meaning of the data is essential. We think about this when we deal with the result of data processing, but not necessarily when we work with the sources. For instance - as the author explained some central tendency, smoothing and so on using statistical methods, he introduced some numbers and asks you to guess the central number from the set. Dutifully you work out the answer, but in time he reveals that it’s a series of numbers on a die - which of course can only be whole numbers. The point is that you’re so focused on getting the right answer, you don’t define what the real problem is first.

Another great tool  - and a fascinating study that I need to look into further - is the fact that you can often make at least educated inferences into data you might not imagine. For instance, he talks about the example of a series of train cars, numbered sequentially. You see a train car numbered “60” - can you guess with any certainty how many train cars the company has? Fascinating stuff.

He includes a glossary at the end of each chapter. I found this a great approach for summarizing the information in one place, and really helpful in making sure I understood everything before moving on. I didn’t always, so I had to re-read parts of the book and freshen up my stats knowledge along the way as well.

He uses Python as the language of choice - which I found a bit unusual. Most of the stats profession uses something more like the R language, which I’ve also started learning, and one of the other books in this series includes R as a primary subject. Because the author uses Python, he includes references to a series of libraries you add into it to work through the examples. Python certainly is a Data Scientist’s tool, just normally not for statistics. The author uses great examples and assignments, but doesn’t really follow up on those. I guess I’d rather see those introduced earlier in the chapter and explained better. He tends to jump around a bit, and his references are to Wikipedia, which isn’t always as reliable or thorough as it can be. But these are small quibbles. It’s a good book, and a I learned a lot reading it. In fact, I have lots of concepts to unpack based on what I read.


How to Maximize your Droid Razr Battery Life

For those of you who bought the Droid Razr, i'm sure your as happy as I am with your new best friend. However, like most 4G LTE phones, the battery life can be less than sub par at times. That is why I have decided to give you a clear cut method on how to really maximize your Razr's battery life.





There are two applications you will need to download in order to achieve greater battery life. The first is Juice Defender and the second is 4G Toggle for RAZR.

The next step in the process of getting great battery life is setting up a few rules using the Smart Actions app pre-downloaded on the RAZR. I have 2 rules set in place on my Razr. The first is my (Battery 35%) rule. When the battery hits 35%, the RAZR will automatically launch the 4G Toggle for RAZR app. When this happens, you will want to change your network from LTE/CDMA to just CDMA. This will put your phone into 3G mode, saving alot of life compared to being in 4G. The second rule in effect is my (Battery 10%) rule. When the battery hits 10%, the phone turns the brightness to 0%, changes display timeout to 15 seconds, disables backround sync, and disables cellular data. Essentially after this rule, your smartphone, becomes a regular phone. You wont be able to go on facebook, or tweet or browse the web. You will strictly be able to call and text which will really prolonges your last 10% of battery.

The next step in achieving greater battery life, is setting up Juice Defender. In my own opinion, Juice Defender should come pre downloaded on every single droid. I've had this app on every one of my Droids since the OG Droid. This app is amazing in saving battery life. What Juice Defender does is it essentially controls your phone's internet when your not using it. For example. When my screen shuts off, my internet also turns off. However, It turns on for 1 minute every 15 minutes to check and see if I have emails, facebook, tweets, ect. You can customize what apps connect to the internet when your phone is locked. This app is a life saver, and a must have on every Android Device. Hope this guide helps, Please comment with any questions or concerns and I will get back to you as soon as possible.


Application Download Below


Juice Defender Download

4G Toggle RAZR Download

Changing the default HTML Templates to HTML5 in Visual Studio

If you're using Visual Studio 2010 to create Web applications, you probably have found out that the default Web templates for ASP.NET Web Forms and Master pages and plain HTML pages all create HTML 4 XHTML headers like this:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="$fileinputname$.aspx.cs" Inherits="$rootnamespace$.$classname$" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

Now I don't know about you, but I'm happy to use HTML5's simple DOCTYPE definition. The first thing I tend to do is manually change my document header so that it looks like this:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="$fileinputname$.aspx.cs" Inherits="$rootnamespace$.$classname$" %>
<!DOCTYPE html>
<html>

Wouldn't it be nice if this was the default?

If you have a few minutes it's easy to change the stock templates in Visual Studio, or if you prefer you can create your own custom templates to exactly suit your needs.

Stock templates in Visual Studio 2010

All the default document types in Visual Studio are based on templates which are stored conveniently in .zip files. The folder where Visual Studio stores its HTML templates for Web Application Projects lives in this location:

C:\Program Files (x86)\Visual Studio 2010\Common7\IDE\ItemTemplates\CSharp\Web\1033

If you're using Web Site project the location is:

C:\Program Files (x86)\Visual Studio 2010\Common7\IDE\ItemTemplates\Web\CSharp\1033

There are a ton of templates in both folders. For WebForms the one we want is - not surprisingly - WebForms.zip. If you open up WebForm.zip with your favorite Zip tool (or Explorer) you'll see something like this for Web Application Projects:

WebForm_Template[6]

You can see the three templates - the ASPX, .cs and designer files in the zip file. You can edit all of these, but for our purpose here I'll just change the HTML header.

If I open the default.aspx page you see the following default markup:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="$fileinputname$.aspx.cs" Inherits="$rootnamespace$.$classname$" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    
    </div>
    </form>
</body>
</html>

 

It's a template so you see a few template expressions like $fileinputname$ and $rootnamespace$ in the document. Visual Studio fills those values in when the template is loaded and a new item added to a project. However, the rest of the document can be changed to your heart's delight. For the basic WebForms template I simply added the HTML 5 doctype header like this:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="$fileinputname$.aspx.cs" Inherits="$rootnamespace$.$classname$" %>
<!DOCTYPE html>
<html>
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    
    </div>
    </form>
</body>
</html>

Save the file and make sure that the zip file gets updated with the saved data (check: Open the Zip file again and edit the file again to make sure). If you use any recent zipping tool (or even Explorer) you will be able to simply edit the file and save it to write the changes to the Zip file.

Rebuild the TemplateCache

You're not quite done yet, unfortunately. Once you've updated your zip template you need to override the Cache that Visual Studio creates from templates. Visual Studio internally unzips these template zip files and stores them in a TemplateCache folder which lives in:

C:\Program Files (x86)\Visual Studio 2010\Common7\IDE\ItemTemplatesCache\CSharp\Web\1033\WebForms.zip

C:\Program Files (x86)\Visual Studio 2010\Common7\IDE\ItemTemplatesCache\Web\CSharp\1033\WebForms.zip

Basically there are folders that mimic the .zip files and hold the unzipped content on disk. Updating the Zip file in the ItemTemplates folder on its own will not yet give you the new template until the TemplateCache has been updated.

To do this you need to run:

DevEnv /InstallVsTemplates

from the Visual Studio Command Prompt. This recreates the template cache with the updated templates you modified.

Alternately I also found that you can delete all the folders in the ItemTempaltesCache folder which effectively clears the cache. Visual Studio will then use the templates directly from the zip file. This can be useful if you're mucking around with the templates a bit or you're trying out multiple templates all at once as it bypasses the Template registration steps. When you're all done though it's a good idea to /InstallVsTemplates just to be 'correct' about it.

While you're at it you probably also want to change:

  • HtmlPage.zip
  • MasterPage.zip

along the same lines. Note that the various Razor templates already use HTML5 doc headers, so no need to update them for HTML 5.

Creating new Templates

Changing the stock templates is useful because you probably use them all the time every day. But if you want to make sweeping changes to templates, or you want to have multiple templates that do various specific tasks, it's probably better to create brand spanking new templates instead. It's also very easy to create brand new templates. One of the easiest ways to do that is actually built right into Visual Studio via the Template Export mechanism.

Let's look at an example. I'll use a Web Application project here, but the same works for any kind of project: Web Site, MVC w/ Razor, Web Pages.

Let's start with a page that acts as my default template I'm going to create. This template includes a few basic setups for some base layout that is common on sample pages I create:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication10.WebForm1" %>
<!DOCTYPE html>
<html>
<head id="Head" runat="server">
    <title></title>
    <link href="css/westwind.css" rel="stylesheet" type="text/css" />
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
    <script type="text/javascript">
        if (typeof (jQuery) == 'undefined')
            document.write(unescape("%3Cscript src='scripts/jquery.min.js' type='text/javascript'%3E%3C/script%3E"));
    </script>
</head>
<body>
    <form id="form1" runat="server">
    
    <h1></h1>

    <div class="toolbarcontainer">
        <a href="" class="hoverpanel"><img src="css/images/home.gif" /> Home</a>
        <a href="" class="hoverpanel"><img src="css/images/refresh.gif" /> Refresh</a>
    </div>
    
    <div class="containercontent">
    
    
    </div>
    </form>
</body>
</html>

Now to create a template from this page:

  • Select the Web project or any file within it
  • Click on File | Export Template and select Item Template

    WizardStep1

  • Click Next and select the file or files in the project to export

    WizardStep2
  • Fill in the info for the template:

    WizardStep3

This ends up creating a new template in your My Documents folder:
<MyDocuments>\Visual Studio 2010\My Exported Templates

and

<MyDocuments>\Visual Studio 2010\Templates\ItemTemplates\Visual C#

You might want to move the latter file into the

C:\Users\rstrahl\Documents\Visual Studio 2010\Templates\ItemTemplates\Visual C#\Web

folder, so the template properly shows up in the Web folder which then looks like this in the Add New Item dialog:

TemplateInVs

When you select the template it now produces your custom HTML for the template you created.

Templates A-GoGo

Templates are a nice way to create pre-fab content. I've found it useful for certain kinds of projects to create project specific templates just so some common content can be loaded into the page. While WebForm Master and Razor Content Pages remove some of the need to build large custom headers, for some situations having custom content pumped directly into pages is still useful. Templates make this task easy and save you from repetitive typing. It's worth the effort to spent a little time to customize those templates you use daily to fit your needs. Whether it's changing the existing templates or create brand new ones, you now have the tools to customize to your hearts' content. Go for it!

© Rick Strahl, West Wind Technologies, 2005-2012
Posted in ASP.NET  .NET  HTML5  

Explore, Learn & Extend from 4 New DevExpress ASP.NET Demo Websites

Check out these 4 new demo websites that we released with DevExpress DXv2.

Featured Demos

Here's the individual links to each demo:

Webmail Client

 

Hotel Booking

 

Video Portal

 

Event Registration

You can also find them here on our updated ASP.NET demos page: http://demos.devexpress.com/ASP/

Learn & Extend

These demo websites show you:

- What's possible with different DevExpress ASP.NET products in one website

- How to create a similar website for your projects

   - Full source code for the demo websites is available with our installation

   - Feel free to extend and use any of the source code, images or styles

Full source code for C# & VB.NET

Full source code is available in the DevExpress DemoCenter application. Launch the DemoCenter from your 'Start' menu and click the red 'ASP' button. On this page you'll see these four icons. Solutions for both C# and VB.NET are available:

image

Beautiful & Touch-Enabled

Each of these demo websites show a different scenario. And not only does each demo incorporate our controls and leverage the latest technologies like jQuery, they also show a unique look and feel for each site:

Webmail Client - shows how to use several of the DevExpress ASP.NET major products like the ASPxGridView, ASPxScheduler and many more! And you can also test any of the DevExpress themes against this website by using the dropdown at the top right!

image

 

Event Registration - shows how to create an internet style website for events! This demo shows off a mobile-friendly interface with larger fonts, tabs and even a new look for ASPxScheduler:

image

 

Hotel Booking - shows how to create a stunning website using several of the DevExpress ASP.NET Editor controls:

image

 

Video Portal - Shows how to create your own YouTube-style video portal using DevExpress ASP.NET products like the ASPxDataView, ASPxTabControl, XtraCharts and more. In fact, check out the transitions when click on a video:

image

 

Download & Explore

Download DevExpress DXv2 today and explore the above ASP.NET demos. Then drop me a line below with your thoughts, thanks!

 

DXperience? What's That?

DXperience is the .NET developer's secret weapon. Get full access to a complete suite of professional components that let you instantly drop in new features, designer styles and fast performance for your applications. Try a fully-functional version of DXperience for free now: http://www.devexpress.com/Downloads/NET/


  • Sponsored Links

  • December 2011
    M T W T F S S
    « Nov   Jan »
     1234
    567891011
    12131415161718
    19202122232425
    262728293031  
  • .

    Copyright © 1996-2010 Answer My Query. All rights reserved.
    iDream theme by Templates Next | Powered by WordPress