HOW TO create a Contact/Feedback form without coding

HOW TO create a Contact/Feedback form without coding

Typically building a Contact or Feedback form requires some amount of server-side programming as submitted values need to be saved in a database or emailed to a specified address. There are also infrastructure costs associated with running self-hosted database software and email.

Zoho Creator offers free readymade configurable templates for a host of forms including Contact or Feedback forms. Once configured, Zoho Creator provides you a code snippet that you can paste into your web pages. When a visitor fills the feedback form, the values are saved to a database that can be accessed online and the values submitted can also be sent to an email address that you specify.

I was able to set up a Contact form for this blog within minutes.
Read More

Fiddling with Fiddler

I noticed the inconspicuous QuickExec box several months after using Fiddler, the HTTP debugging tool. There is more to Fiddler than what meets the eye.

QuickExec box in FiddlerThe QuickExec box is a thin black box just above the Fiddler status bar that lets you type commands instead of clicking on the menu options. Just type CLS when you wish to clear the Web Sessions, use ?word to look for a specific word among the Session URLs or filter URLs that are of a specific size using the commands < size and > size.

The neXpert 1.1 Performance Tool allows you to type additional commands in the QuickExec box than the pre-defined ones. One of those nifty commands is savesaz filename that let's you save Fiddler Sessions in a Session Archive (.SAZ) file at a specified path. Read more about it in my recent article Fiddler Tips & Tricks.

Also see:
neXpert - YSlow clone for Fiddler
Accidental discoveries
Read More
The Internet is for Everyone - Vint Cerf

The Internet is for Everyone - Vint Cerf

I came across the transcript of an interesting speech by Vint Cerf, 'the father of the Internet', on his vision & goals for the Internet. I feel the Internet is among the few wonderful inventions that has had the widest impact on the world.

Excerpt from the speech:
The Internet is for everyone - but it won't be if we are not responsible in its use and mindful of the rights of others who share its wealth. Let us dedicate ourselves to the responsible use of this new medium and to the proposition that with the freedoms Internet enables comes a commensurate responsibility to use these powerful enablers with care and consideration. For those who choose to abuse these privileges, let us dedicate ourselves to developing the necessary tools to combat the abuse and punish the abuser.

Related:
A Brief History of the Web
Read More

Book Review: Learning jQuery

I "discovered" jQuery a few months ago. jQuery is JavaScript on steroids. I've found it so useful, I've stayed hooked. The website Visual jQuery and the book Learning jQuery : Better Interaction Design and Web Development with Simple JavaScript Techniques by Karl Swedberg (a jQuery Evangelist) & Jonathan Chaffer have been extremely useful in helping me understand and appreciate the goodness of jQuery.

In my opinion, a good technical book has the following characteristics:
  • Is written in plain English with a conversational tone
  • Has practical reusable examples with scenarios I can relate to
  • Provides adequate background info on crucial concepts
This 380-paged book meets that definition. Chapters 1 to 7 cover the basics and key jQuery Library features like HTML document traversing, event handling, animating, and AJAX interactions. The remaining chapters cover the practical uses of jQuery including Plugins, a feature that has bowled me over. Among all the chapters, I found the ones on DOM Manipulation and AJAX valuable. There are numerous examples that can be applied at work. Reading through the book, it is apparent that it has been written by folks who have been in the trenches. I loved the little thoughtful tid-bits across the book, like this one -
Notice the use of a $ in the variable name, $speech. Since $ is a legal character in JavaScript variables, we can use it as a reminder that the variable is storing a jQuery object.

I wish the book came with a cheat-sheet or a map of all the important jQuery methods, properties and functions indexed to the detailed descriptions in the chapters.

I recommend this book to everyone getting started with jQuery.
Read More
Free print version of Newspapers

Free print version of Newspapers

Most newspapers round the world have online editions as well. While you get the news, you don't get to see things like Classifieds, Seasonal Sales etc.,. Some newspapers offer a digital edition of the "print" version which can be useful if you need such info and you missed a copy. You also get to choose local edition of different regions. So if you have re-located to a new city, you can still track news of you home city. Here is a compilation of the popular newspapers in Hyderabad (where I stay) & India:

Deccan Chronicle (free, registration required)
Times of India
Hindustan Times (free, registration required)
Indian Express (free, registration required)
Economic Times
Business Standard (free, registration required)
Eenadu (free, registration required)
Sakshi

Also see:
Beat the Recession with Tip Jar
Read More

HOW TO capture mouse pointer in a screenshot

I recently needed a screenshot of a web page WITH the mouse pointer visible. I did not find the regular Print Screen key, MS Paint, Paint.NET, Cropper, the Snipping tool in Vista to be of of any help. After a little googling, I found info dating back to 1999 that is still relevant. Hans Springer wrote that there are atleast 4 tools that can do this -
The first 3 are commercial tools with free trial versions available while the last is freeware. I used SnagIt (which I initially used many years ago) to get my screenshot.

If you know of any other tools, please post your comment.

Related:
Free tools to generate screenshots
Read More
HOW to log Remote Desktop connection info

HOW to log Remote Desktop connection info

Remote Desktop connection is a great utility to access PCs physically away from you with ease. If you are responsible for the security of a Windows machine that can be accessed through Remote Desktop, you have to constantly keep track of the users and their permissions.

To monitor activity of users connecting through RDP, you would have to set up an Audit Policy (see steps). Once set, Security Event Log will note when a remote user logged on or off. From the Event Viewer, a successful Logon/Logoff can be detected by an Event code of 528 and Logon Type of 10

To allow users to connect through RDP, they have to be added explicitly. However, any member of the Administrators group can connect even if they are not listed. A user who no longer requires access should be removed explicitly or his permissions have to be curtailed to prevent any potential abuse. To selectively or wholly remove users, right-click "My Computer", select "Properties", choose the "Remote" tab & make changes accordingly.

On a related note - Did you know, you cannot use Remote Desktop Connection to connect to remote (host) computers running the following editions of Windows Vista:
Windows Vista Starter
Windows Vista Home Basic
Windows Vista Home Premium

Related:
How to Remove Entries from the Remote Desktop Connection Computer Box
Running Windows applets from the command line
Read More

Generate Dynamic Tooltips with ASP.NET & jQuery

Let's say you have to scan a web page to find words matching those in a Glossary (that is continuously updated to provide descriptions for keywords), highlight them and show a brief explanation of the term as a tooltip when the mouse hovers over it. I wrote an article recently that shows how to accomplish this requirement using jQuery functions and a jQuery Plugin called SearchHighlight.

Dynamic Tooltip
The job of scanning a web page to find words matching those in a Glossary and highlighting them is done by the jQuery SearchHighlight Plugin. This Plugin basically takes the list of words that we want to match and whenever it finds a matching word in a web page, it wraps the word within a SPAN tag and the style setting for the SPAN gives the highlighted effect. Next, in order to show a dynamic tooltip that SPAN tag's TITLE attribute is used. The content for the TITLE attribute is fetched asynchronously from the Glossary which is a dynamic web page that retrieves keyword descriptions from a data source. The Glossary page can be implemented as a Generic Handler (.ashx) or a simple .ASPX page so that it returns just the description of a keyword which is provided to it as a querystring value. jQuery makes DOM manipulation & AJAX interaction simple and keeps the code short. You can first run the no-frills sample and hover over the highlighted word to see the dynamic tooltip before browsing through the article.

Related:
Infinite Scrolling or Continuous Scrolling UI Pattern using ASP.NET & jQuery
Generate Dynamic Tooltips with ASP.NET & jQuery
Read More

Browser built-in Web Development tools

The latest versions of new browsers contain powerful Web Development tools that are a boon to web developers. IE 8 has Developer Tools (keyboard shortcut F12), Safari 3 on Windows has a feature called Web Inspector & related Developer utilities accessible from the Develop option in the Menu and in Opera 9.6, Developer Tools (also called Dragonfly) is available from the Tools menu under Advanced option. Firefox 3 however contains just a Error Console that outputs validation errors and warnings exhibited by CSS and JavaScript connected to a loaded web page and the Firebug extension which offers more elaborate features for the web developer has to be installed explicitly. These tools offer great insight about how well performing the web pages that we have built are.

I like the Network Timeline option (part of Web Inspector) in Safari 3 that not only shows a HTTP Waterfall chart but also the sizes of various elements (images, scripts etc) of a web page that we want to inspect.

(click on image to magnify)
Safari Web Inspector
Read More
asp:menu fix for IE8

asp:menu fix for IE8

The asp:menu control makes building a website Menu simple. It is a powerful control that has over 75 properties which can be applied declaratively to construct complex static and dynamic menus. Despite it's ease of use, it has a few deficiencies that ASP.NET developers should be aware of. There are known issues with it in IE 8 and Safari browsers.

Thankfully, there is a official patch for IE 8 and workaround for Safari to correct the rendering issues.

Related:
HOW TO suppress the popout arrow on the menu while using ASP.NET 2.0 Menu control
HOW TO build a simple Tab Menu Control


Read More

HOW TO Find and Replace Characters Using Regular Expressions in Visual Studio

There was a question on ASP.NET Forums to find a pattern using regular expressions to match the following strings in code within Visual Studio -
href="ProgramInformation.aspx?ID=TX"
href="ProgramInformation.aspx?ID=NY"
so that they can be replaced with the following strings -
href="javascript:SetStateCode('TX')"
href="javascript:SetStateCode('NY')"

Most editors support regular expressions to find and replace characters. Visual Studio supports it as well but has it's own regular expression dialect.

Tagged expressions aid replacements in a regular expression search by extracting a specific set of characters that are required to be manipulated. In a single find/replace, you can have up to 9 tagged expressions. To tag our search criteria, we place {} around the criteria.

For the above requirement, we have to capture just the value of ID from the URL set to the HREF property and use it to build another string. To accomplish this, in the Find and Replace dialog box (Ctrl + H or Edit > Find and Replace > Quick Replace), place this in the "Find what:" box -
ProgramInformation.aspx?ID={[A-Z]+}

and this in the "Replace with:" box
javascript:SetStateCode('\1')

Click Replace or Replace All to change a single or multiple instances of the matching pattern.

Find and Replace Characters Using Regular Expressions in Visual Studio
Read More
10 Performance Secrets for SQL Server Developers

10 Performance Secrets for SQL Server Developers

Michael K. Campbell highlights 10 common performance problems to avoid in the latest edition of SQL Server Magazine:
  1. Failure to Properly Configure AWE (Address Windowing Extensions) Memory Usage by not enabling SQL Server to use more than 2GB of RAM.
  2. Failure to Normalize
  3. Failure to Use Clustered Indexes
  4. Failure to Optimize by ignoring the impact of statistics, indexes etc
  5. Failure to Create SARGable Queries (SARG - Search ARGument)
  6. Wasted Network Bandwidth due to SQL Server's chatty behavior
  7. Improper Use of Cursors
  8. Failure to Use Full-Text Indexing where SARGable queries aren’t possible
  9. Failure to Use Multiple Data Files. Microsoft recommends a ratio of roughly 0.25 to 1 data file per file group per processor.
  10. Failure to Properly Size Data Types
Read More
HOW TO generate a Heat Map with Google Chart API

HOW TO generate a Heat Map with Google Chart API

Google Chart API is a welcome addition to the list of free charting tools for ASP.NET developers, the other notable ones being Microsoft Chart controls for .NET Framework 3.5, WebChart and NPlot.

The Google Chart API supports 9 types of charts (and variations within them liked Stacked Bar etc) but except for Line, Bar, Pie, Radar charts and Scatter plots, the rest including Venn diagrams, Maps, Google-o-meters, QR codes are possibly not charts in the strictest sense of the word. The important thing about this API is that it is URL based. This means no installation of any components is required. The settings & data for the charts are provided though querystring fields and values. As the image is generated by Google's servers, you save on processing and bandwidth. This API option may be suitable for simple scenarios. Google allows 250,000 API calls per day.

Geographic heat maps help visualize location-based data by highlighting trends, anomalies and distributions across a geographic area. For instance if there is an epidemic, a heat map can show at a glance regions where it is intense.

When I came across the Map type in Google Chart API, I realized I could generate a Google Analytics-like Heat Map showing the top 10 countries from where my blog readers come from.


Read my article in EggheadCafe to see how easy it is to generate a geographic Heat map using Google Chart API.
Read More
Get IE6 to retire

Get IE6 to retire

Web development gurus Steve Souders, PPK, Scott Hanselman have all been bothered about why IE 6 hasn't retired yet.

IE6 is a pain. It’s slow. It doesn’t behave well. Things that work in other browsers break in IE6. Hours and hours of web developer time is spent just making things work in IE6. Why do web developers spend so much time just to make IE6 work? Because a large percentage of users are still on IE6.

There have been numerous suggestions on what developers can do to make end-users upgrade to newer versions of IE. The best way however seems to be what Microsoft has initiated.

A notification will be sent through Automatic Update about IE8. On Windows XP and Server 2003, the update will be High-Priority. On Windows Vista and Server 2008 it will be Important.

IE8 will not automatically install on machines. Users must opt-in to install IE8. Organizations that use Windows Server Update Services (WSUS) and Systems Management Server (SMS) will soon be able to deploy IE8 in the same manner as they would deploy any other update.

Hopefully this should get more folks off of IE6.

Related:
W3Schools Browser Statistics and Trends
Read More
Search Engine Wars

Search Engine Wars

Mike Markson, VP of Marketing for Blekko, cites instances of Google stealing the thunder off search engine players.....

* This past Tuesday, Wolfram Alpha announces its structured data search product. On the same day, Google announced its new structured data product.

* July 28, 2008, so called Google killer Cuil launched its search engine. It claimed that their index of 120B documents was 3x that of any search engine. Three days before though, Google announced it knew of 1 trillion URL's.

* June 3, 2008, Wikia Search launched a feature that allows users to add and delete URL's to search results. July 16, 2008, Google announced that it is bucket testing similar features. The features went live a few months later.

* February 25, 2009, Cuil announced it is integrating longer snippets into its results. March 24, 2009, Google announced...you guessed it....longer snippets.

and finally closes his argument with ....

I guess the fact that there are zero switching costs for search engines makes their paranoia run a bit higher than most.....

...provoking Matt Cutts to react with the "facts".

Once instance where I have seen Google drawing from others ideas is with Live Search's "Show Similar Images" feature.

Also see:
Search Engines in the post-Google era
Google Search - Then & Now
Read More