Friday, August 19, 2011

The 101 Most Useful Websites

 

most useful websitesAs we quickly approach the dawn of a new year, here are my picks for the 101 most useful websites of the year 2010.

The list primarily highlights the lesser-known or undiscovered websites and misses out all-time favorites like Google Docs, Wikipedia or IMDB that most of us are already aware of.

 

Useful Websites Worth a Bookmark!

The sites mentioned below, well most of them, solve at least one problem really well and they all have simple web addresses (URLs) that you can easily learn by heart thus saving you a trip to Google.

In a hurry? Download this list as a PDF eBook and read it anywhere.

01. screenr.com – record movies of your desktop and send them straight to YouTube.
02.
bounceapp.com – for capturing full length screenshots of web pages.
03.
goo.gl – shorten long URLs and convert URLs into QR codes.
04.
untiny.me – find the original URLs that's hiding behind a short URLs.
05.
localti.me – know more than just the local time of a city
06.
copypastecharacter.com – copy special characters that aren't on your keyboard.
07.
topsy.com – a better search engine for twitter.
08.
fb.me/AppStore – search iOS app without launching iTunes.
09.
iconfinder.com – the best place to find icons of all sizes.
10.
office.com – download templates, clipart and images for your Office documents.
11.
woorank.com – everything you wanted to know about a website.
12.
virustotal.com – scan any suspicious file or email attachment for viruses.
13.
wolframalpha.com – gets answers directly without searching  - see more wolfram tips.
14.
printwhatyoulike.com – print web pages without the clutter.
15.
joliprint.com – reformats news articles and blog content as a newspaper.
16.
isnsfw.com – when you wish to share a NSFW page but with a warning.
17.
e.ggtimer.com – a simple online timer for your daily needs.
18.
coralcdn.org – if a site is down due to heavy traffic, try accessing it through coral CDN.
19.
random.org – pick random numbers, flip coins, and more.
20.
mywot.com – check the trust level of any website - example.
21.
viewer.zoho.com – Preview PDFs and Presentations directly in the browser.
22.
tubemogul.com – simultaneously upload videos to YouTube and other video sites.
23.
truveo.com – the best place for searching web videos.
24.
scr.im – share you email address online without worrying about spam.
25.
spypig.com – now get read receipts for your email.
26.
sizeasy.com – visualize and compare the size of any product.
27.
whatfontis.com – quickly determine the font name from an image.
28.
fontsquirrel.com – a good collection of fonts – free for personal and commercial use.
29.
regex.info – find data hidden in your photographs – see more EXIF tools.
30.
tineye.com – this is like an online version of Google Googles.
31.
iwantmyname.com – helps you search domains across all TLDs.
32.
tabbloid.com – your favorite blogs delivered as PDFs.
33.
join.me – share you screen with anyone over the web.
34.
onlineocr.net – recognize text from scanned PDFs and images – see other OCR tools.
35.
flightstats.com - Track flight status at airports worldwide.
36.
wetransfer.com – for sharing really big files online.
37.
pastebin.com – a temporary online clipboard for your text and code snippets.
38.
polishmywriting.com – check your writing for spelling or grammatical errors.
39.
awesomehighlighter.com – easily highlight the important parts of a web page.
40.
typewith.me – work on the same document with multiple people.
41.
whichdateworks.com – planning an event? find a date that works for all.
42.
everytimezone.com – a less confusing view of the world time zones.
43.
warrick.cs.odu.edu – you'll need this when your bookmarked web pages are deleted.
44.
gtmetrix.com – the perfect tool for measuring your site performance online.
45.
imo.im - chat with your buddies on Skype, Facebook, Google Talk, etc. from one place.
46.
translate.google.com – translate web pages, PDFs and Office documents.
47.
youtube.com/leanback – enjoy a never ending stream of YouTube videos in full-screen.
48.
similarsites.com – discover new sites that are similar to what you like already.
49.
wordle.net – quick summarize long pieces of text with tag clouds.
50.
bubbl.us – create mind-maps, brainstorm ideas in the browser.
51.
kuler.adobe.com – get color ideas, also extract colors from photographs.
52.
followupthen.com – setup quick reminders via email itself.
53.
lmgtfy.com – when your friends are too lazy to use Google on their own.
54.
tempalias.com – generate temporary email aliases, better than disposable email.
55.
pdfescape.com – lets you can quickly edit PDFs in the browser itself.
56.
faxzero.com – send an online fax for free – see more fax services.
57.
feedmyinbox.com – get RSS feeds as an email newsletter.
58.
isendr.com – transfer files without uploading to a server.
59.
tinychat.com – setup a private chat room in micro-seconds.
60.
privnote.com – create text notes that will self-destruct after being read.
61.
flightaware.com – live flight tracking service for airports worldwide.
62.
boxoh.com – track the status of any shipment on Google Maps – alternative.
63.
chipin.com – when you need to raise funds online for an event or a cause.
64.
downforeveryoneorjustme.com – find if your favorite website is offline or not?
65.
example.com – this website can be used as an example in documentation.
66.
whoishostingthis.com – find the web host of any website.
67.
google.com/history – found something on Google but can't remember it now?
68.
errorlevelanalysis.com – find whether a photo is real or a photoshopped one.
69.
google.com/dictionary – get word meanings, pronunciations and usage examples.
70.
urbandictionary.com – find definitions of slangs and informal words.
71.
seatguru.com – consult this site before choosing a seat for your next flight.
72.
sxc.hu – download stock images absolutely free.
73.
zoom.it – view very high-resolution images in your browser without scrolling.
74.
wobzip.org – unzip your compressed files online.
75.
vocaroo.com – record your voice with a click.
76.
scribblemaps.com – create custom Google Maps easily.
77.
buzzfeed.com – never miss another Internet meme or viral video.
78.
alertful.com – quickly setup email reminders for important events.
79.
encrypted.google.com – prevent your ISP and boss from reading your search queries.
80.
formspring.me – you can ask or answer personal questions here.
81.
snopes.com – find if that email offer you received is real or just another scam.
82.
typingweb.com – master touch-typing with these practice sessions.
83.
mailvu.com – send video emails to anyone using your web cam.
84.
ge.tt – quickly send a file to someone, they can even preview it before downloading.
85.
timerime.com – create timelines with audio, video and images.
86.
stupeflix.com – make a movie out of your images, audio and video clips.
87.
aviary.com/myna – an online audio editor that lets record, and remix audio clips online.
88.
noteflight.com – print music sheets, write your own music online (review).
89.
disposablewebpage.com – create a temporary web page that self-destruct.
90.
namemytune.com – when you need to find the name of a song.
91.
homestyler.com – design from scratch or re-model your home in 3d.
92.
snapask.com – use email on your phone to find sports scores, read Wikipedia, etc.
93.
teuxdeux.com – a beautiful to-do app that looks like your paper dairy.
94.
livestream.com – broadcast events live over the web, including your desktop screen.
95.
bing.com/images – automatically find perfectly-sized wallpapers for mobiles.
96.
historio.us – preserve complete web pages with all the formatting.
97.
dabbleboard.com – your virtual whiteboard.
98.
whisperbot.com – send an email without using your own account.
99.
sumopaint.com – an excellent layer-based online image editor.
100.
lovelycharts.com – create flowcharts, network diagrams, sitemaps, etc.
101.
nutshellmail.com – Get your Facebook and Twitter streams in your inbox.

Also see: Best of the Web

Tuesday, August 9, 2011

Identifying value changed controls while submitting

Most of the application developers face the common requirement of giving alert message or showing a popup when particular set of controls are

changed. Consider the following example.

 

Requirement: The alert message or a popup should be shown only when the Language, Timezone and Country controls are changed. If those controls are not

changed, just save the imformation submitted.

 

 

<table cellspacing="0" cellpadding="0" border="0">

        <tr>

            <td>

                <asp:Label ID="Label1" runat="server" Text="Language:" AssociatedControlID="LanguageDropDownList"

                    EnableViewState="False" />

            </td>

            <td>

                <asp:DropDownList ID="DropDownList1" runat="server" EnableViewState="False">

                </asp:DropDownList>

            </td>

        </tr>

        <tr>

            <td>

                <asp:Label ID="Label2" runat="server" Text="Timezone:" AssociatedControllID="TimeZonesDropDownList"

                    EnableViewState="False" />

            </td>

            <td>

                <asp:DropDownList ID="DropDownList2" runat="server" EnableViewState="False">

                </asp:DropDownList>

            </td>

        </tr>

        <tr>

            <td>

                <asp:Label ID="CountryLabel" runat="server" Text="Country:" EnableViewState="False" />

            </td>

            <td>

                <asp:TextBox ID="CountryTextBox" runat="server" Text="">

                </asp:TextBox>

            </td>

        </tr>

    </table>

    <table cellspacing="0" cellpadding="0" border="0">

        <tr>

            <td>

                <asp:Label ID="NameLabel" runat="server" Text="Name:" EnableViewState="False" />

            </td>

            <td>

                <asp:TextBox ID="NameTextBox" runat="server" Text="">

                </asp:TextBox>

            </td>

        </tr>

        <tr>

            <td>

                <asp:Label ID="RoleLabel" runat="server" Text="Role:" AssociatedControlID="RoleDropDownList"

                    EnableViewState="False" />

            </td>

            <td>

                <asp:DropDownList ID="RoleDropDownList" runat="server" EnableViewState="False">

                </asp:DropDownList>

            </td>

            <tr>

    </table>

 

 

Logic 1: Setting a flag when control value changed

 

1. To address this requirement, developers used the logic of setting a flag to true whenever any of the required controls is changed.

 

var isChanged = false;

 

function changeStatus()

{

      if(!isChanged) isChanged=true;

}

 

The javascript method changeStatus() will be called for Language, Timezone and Country controls. Based on the flag value, the decision of

showing the alert/popup or not is taken. This logic has some flaws. When the user changes the control value and immediately set back to the old

value, the flag is still set to true. The logic fails. Then we need to find out the solution for not setting true while the value is set back to old.

 

Logic 2: Compare the populated value and current value

 

There is another different  logic for the given requirement. On server side page_load (..) method, while populating the controls get the values of

required controls and store it in a hidden field.

 

if(!IsPostback)

{

      PopulateControls();

}

 

private populateControls()

{

..

..

 

    initialValueHiddenField.Value = LanguageDropDownList.SelectedValue + TimeZonesDropDownList.SelectedValue + CountryTextBox.Text;

}

 

 

At the time of submitting, on client side get the concatenated values and compare with the populated values to decide showing the popup.

 

function SubmitButtonClientClick()

{

      var actualValue = document.getElementById('LanguageDropDownList').options ......

                  + document.getElementById('TimezonDropDownList').options ......;

                  + document.getElementById('CountryTextBox').value;

 

      if(document.getElementById('initialValueHiddenField').value == actualValue)

      {

            return ShowPopup();

      }

}

 

Logic 3: Check the initial value and current value using JQuery

 

Set an Id attribute to the table where the required controls are there.

 

<table cellspacing="0" cellpadding="0" border="0" id="settingsTable">

 

Now the following client side methods should be written.

 

$(document).ready(function() {

      initialState = getState();

}

function getState()

        {

              var state = "";

              $('#settingstable input, #settingstable select).each( function() {

                      //for checkbox controls val() method always returns "on" irrespective of the checked/unchecked state.

                      //so get the checked/unchecked value only for checkboxes. For other controls, get the val()

                      if($(this).val()=="on"){

                          state += $(this).is(':checked');

                      }

                      else{

                          state += $(this).val();

                      }

              });

              return state;

        }

function SubmitButtonClientClick()

{

      if(initialState  == getState())

      {

            return ShowPopup();

      }

}

 

Since we did not use the ID property of the controls, when new controls are introduced, we should just add to the settingstable.

So this logic will be more effective. As we are using JQuery no need to worry about the browser compatibility.