Thursday | January 26, 2006

The Art of Bootstrapping

Bootstrapping means starting and operating a business with little or no money or assistance from outside investors.

This is an excellent article written by Guy Kawasaki with very practical and logical tips. If you want to startup something of your own just read this.

http://blog.guykawasaki.com/2006/01/the_art_of_boot.html

Sabir

Posted by Sabir at 18:12:44 | Permanent Link | Comments (0) |

Monday | January 23, 2006

Bit Torrent

Bit Torrent Download Sites:

www.isohunt.com : This website allows you to search for torrents of any type including music, movies, applications, documents, etc. Its servers scour the web and look for relevant torrents files and then shows you the torrent file, gives you a direct link for download, and tells you the number of seeds and leeches as well as its original published date. Remember, files that are newer and have more leeches will typically download faster.
www.mininova.org : This torrent site offers Books, Games, Music, Movies, TV Shows, etc.

www.torrentspy.com : A great Bit Torrent search engine that scours for files of all types.

www.thepiratebay.org : Another great BT search site out of Europe. Interestingly enough, because this site is based in Europe, it has managed to evade prosecution by both the MPAA and RIAA.

Also, many bit torrent sites require you to register as a member, where they track the amount that you upload in relation to your downloads and rank you as such. These sites often offer faster downloads because they are not open to everyone and the user base knows how much everyone is uploading and can cut off download privileges to those that don’t upload enough. I would highly recommend registering to the following sites of that nature.

 www.filemp3.org : focus on music
www.torrentbytes.net : broad focus on many file types
www.filelist.org : broad focus on many file types.

To Learn more about  Bit Torrent visit

http://www.shortflip.com/article/Bit-Torrent-Beginners-Guide-103.html

 

Posted by Sabir at 20:37:03 | Permanent Link | Comments (0) |

Wednesday | January 18, 2006

Google Suggest

As you type into the search box, Google Suggest guesses what you're typing and offers suggestions in real time. This is similar to Google's "Did you mean?" feature that offers alternative spellings for your query after you search, except that it works in real time. For example, if you type "bass," Google Suggest might offer a list of refinements that include "bass fishing" or "bass guitar." Similarly, if you type in only part of a word, like "progr," Google Suggest might offer you refinements like "programming," "programming languages," "progesterone," or "progressive." You can choose one by scrolling up or down the list with the arrow keys or mouse.

 http://www.google.com/webhp?complete=1&hl=en

Posted by Sabir at 21:30:26 | Permanent Link | Comments (0) |

Google Drive

Excellent application try it out
Google drive....
 
GMail Drive is a Shell Namespace Extension  that creates a virtual drive in the Windows Explorer, allowing you to use your Google Gmail account as a storage medium.
 
It allows you to do basic file manipulation, such as copy and delete of files inside the Gmail account. Because it is a Shell Extension, the interface you work in is Windows Explorer itself.
 
GMail Drive appears as a virtual drive under your My Computer folder in Windows Explorer.
 

You can:
Navigate between files and folders using the familiar Explorer folder view.
 
Do basic file manipulations, such as create folders and delete files.
Use copy and paste as you would normally do in Explorer to copy files around.
Use drag'n'drop to quickly move files between folders.
Show information about volumes and files using the Properties dialogs.
 
Posted by Sabir at 21:25:37 | Permanent Link | Comments (0) |

Thursday | January 12, 2006

How to Win Friends & Influence People (Dale Carnegie)

Building Relationships

Building Personal Relationships

  • Never criticize, condemn or complain:
    • People very rarely criticize themselves, no matter how wrong they may be. Your criticism will not be welcome.
      I will speak ill of no man, and speak all the good I know of everybody.” – Ben Franklin
    • Criticism puts others on the defensive, hurts feelings of self-worth and stirs feelings of resentment. Criticism is futile.
    • Positive Reinforcement works better. Example: Reprimanding workers for not wearing their hardhats is less effective than asking if the hats are uncomfortable and reminding workers that the hats were designed for their protection.
  • Become genuinely interested in other people.
    • People are most interested in themselves. If you share that interest, they will respond.
    • If you talk to people about themselves, they will listen for hours.
    • Remember people’s birthdays and other important details.
  • Talk in terms of the other person's interests.
    • Find the things that interest others and talk about those things.
    • Begin conversation discussing the other person’s interests and you’ll find them much more agreeable.
    • If you know nothing of their interests, try to ask intelligent questions about their interests. Perhaps ask for the story of how they developed those interests.
  • Be a good listener.
    • Nothing is as flattering as giving your exclusive attention to the person who is speaking to you.
      • Encourage others to talk about themselves.
      • Ask pointed questions.
      • By simply listening and asking questions, others will conclude you are a good conversationalist.
    • Listen and appreciate others’ concerns/complaints, you will diffuse tension and build relationships.
      • Be eager to hear from those who have concerns about you and your company, however wrong they may be.
      • Impress upon them how eager you are to hear them.
      • Thank them for bringing up their concerns.
  • Make the other person feel important.
    • One of the deepest human desires is feeling important and appreciated.
      “I am hearty in my approbation and lavish in my praise.” – Charles Schwab.
    • Continually recognizing someone’s expertise and capabilities will make them feel important. They will want to put that expertise in your service.
    • Give others clear authority over a part of a larger project and help them understand their tangible contributions. They’ll become more committed to the success of the project.
    • Be sincere – avoid flattery. Obvious, over the top flattery can often win smiles and carry the same favor as if it were sincere.
  • Use Names whenever possible.
    • A person's name is his or her favorite word.
    • Remember someone’s name and a few personal details.
  • Smile.
    • Greet others with enthusiasm and animation.
    • A smile says. “I like you. I am glad to see you.”
    • Smile even when speaking on the phone; the smile will come through in your voice.

Selling Your Idea

http://www.notesofintelligence.com/influence/comprehensive-selling-ideas-summary.html

Leading & Motivating Others

http://www.notesofintelligence.com/influence/comprehensive-leadership-summary.html

Posted by Sabir at 20:40:31 | Permanent Link | Comments (0) |

World's Best Quotes

http://www.careerlab.com/comments.htm

Visit the above URL..........Sabir

Posted by Sabir at 20:18:52 | Permanent Link | Comments (0) |

Websites U Should Know

For the entire list visit http://www.zealivityfive.com/index.php?page=article&q=news&id=146

Out of them i liked...

1.  http://www.meebo.com - Online yahoo,msn,gtalk,AIM messenger.
2.  http://www.rememberthemilk.com  :- Task management Tool Very good...
3.  http://www.writely.com  :- Sharing files on Net
4   http://www.writeboard.com/ :- Share a webbased Document

Sabir

Posted by Sabir at 19:37:14 | Permanent Link | Comments (0) |

Monday | January 09, 2006

Taking Professional Photos

Taking Professional Looking Photos Without a Professional..

Visit the Below Link.

http://www.theswitchboards.com/articles_professionalphotos.html

Posted by Sabir at 23:29:17 | Permanent Link | Comments (0) |

Wednesday | January 04, 2006

www.confluence.org

Degree Confluence Project:   

Educational Activities

The goal of the Degree Confluence Project (www.confluence.org) is for people to visit each of the latitude and longitude integer degree intersections in the world using a GPS receiver, to take photographs at each location, and to write a story about the experience. 

As of October 2005, 4,150 successful confluences have been found and 388 secondary confluences have been found by a total of 7.724 visitors who have taken 48,628 photographs in 168 countries.  Although confluences in the oceans and some near the poles have been excluded, there are still 12,024 yet to be found.

Author of educational activities:  

Dr. Joseph J. Kerski, Geographer, USGS, Denver, Colorado, USA, jjkerski@usgs.gov  

For more details visit: http://rockyweb.cr.usgs.gov/outreach/confluences.html

 

Posted by Sabir at 20:50:26 | Permanent Link | Comments (0) |

Tuesday | January 03, 2006

Speedup UR Website

Web Developers: Speed up your pages!

There is a ton of research on user behavior based on task response time and I'm sure if you search Jakob Nielsen's site you'll find something.

I remember an IBM study made more than 15 years ago that said if it took 1 second for the computer to respond, it would take 1 second for the user to start the next step, but, if it takes 10 seconds for the computer to respond, it takes 20 seconds for the user to start the next step on his task. It is an exponential problem because users get more and more distract the longer it takes for a command to respond.

Web sites are no different. Google proved with its super fast pages (part real, part perception) that users will perform many more searches if they know they don't have to wait long. If each query on Google would take 20 seconds to respond, you are more likely spending more time thinking about what search terms you'll use. But since it takes just 3 seconds, you just keep adding and removing search terms.

So, during the past few weeks I've been collecting tips for Web Developers on how to improve their page speed. These tips effect latency, bandwidth, rendering and/or perception of when a page is ready. They are in no particular order.

 

 

Tip #1: Strip spaces, tabs, CR/LF from the HTML

I'm always surprised when I look at some large website HTML to find out that it has a ton of unnecessary spaces, tabs, new-lines, HTML comments, etc. Just removing those elements can reduce the page size by 5-10%, which in turn can decrease the download latency. I'll go one step further and say to you to not use quotes on attributes unless necessary.

 

 

Tip #2: Don't use XHMTL

This is very controversial. A lot of people will call me crazy, but I see XHTML as a loser technology. It has its benefits, but they are far outweighted by the drawbacks. And the biggest drawback for me is that XHTML makes your page larger. Purists will always build their page on XHTML, but if you are in doubt about using it or not, don't!

 

 

Tip #3: Keep Cookies Small

Your cookie is sent back to your server every single time the user makes a request for anything. Even with Images, JS, CSS requests or XML-over-HTTP (AJAX) the cookie is sent. A typical HTTP request will have between 500-1000 bytes. Now, if you have 4 cookies each with names like "user_name" followed by a value with 30 characters, you are adding 15-30% more bytes to the request.

 

 

Tip #4: Keep JavaScript Small

Who cares if I'm calling my JavaScript function "start_processing_page()" or "slp()"? The download speed cares and the interpreter cares as well, so, use tiny function and variable names, remove comments and unnecessary code.

 

 

Tip #5: Use Public Caching

IMHO, This is one of the most under-used features of HTTP. Big websites use it (usually through a CDN, like Akamai), but the vast majority (I dare to say 99%) don't. All those icons, CSSs, JS can, and should, be cached by the browser (Private Cache), but public caching also allows Proxies in-between to cache them. This reduces the load on your server, allowing more CPU and bandwith to do the important stuff. Now, a lot of people don't use Public caching (or even Private) because their CSS is changing, the JS has bugs that need to be fixed, etc. Well, you can do 3 things to deal with that. 1) Let content to be cached for a short period of time (for example, 24h only). 2) Rename the files every time you make a change to them, this way you can let it be cached permanently, or 3) Implement an HTTP Filter that automatically renames the file if they have changed.

 

 

Tip #6: Enable HTTP Compression

Your HTML couldn't be a better candidate for compression. It has a very limited character set and lots of repetitions (count the number of "DIV" on your page). That is why HTTP Compression makes so much sense. It can reduces the download by 70% or more. So, instead of having to send 40KB of data, you are sending just 15KB. The user will thank you.

 

 

Tip #7: Keep all as much as possible in lower case

This actually works in conjunction with HTTP compression. Remember that this type of compression is lossless, this is, decompressing a content will yield the exactly original, which means that the compression algorithm will treat "DIV", "Div" and "div" as different streams. So, always use lower case for tag names and attributes on the HTML and CSS. Also try to be consistent on your JavaScript.

 

 

Tip #8: Avoid Tables

Rendering a table is probably the worse nightmare for a browser. If the browser starts showing the table before all the content inside it is loaded, the browser's rendering engine will have to re-render it many times as each piece is loaded. On the other hand, if the browser needs to wait for everything to be loaded, the user we see a blank page (or partially blank) for a few seconds. Browser's usually use a combination of both to reduce the number of re-renderings without leaving the user hanging in there. The point is, don't make your whole page start with a table. It is preferrable to have 3 tables (header, body, footer). Whenever possible, just avoid using tables altogether.

 

 

Tip #9: Set image size

This is very similar to the table rendering problem. If you add an IMG tag to the middle of your page and don't set "width" and "height", the browser has to wait for the image to be loaded to decide the final size, but, meanwhile it will cost the browser at least 1 re-rendering because it will not wait for all the images to be loaded to show you the page.

 

 

Tip #10: Compact your GIF/JPG

So, your page has several GIFs and/or JPG? It is very likely that those could be compressed even more without any loss! GIF/PNG mainly have a very compact data structure, but most applications like Corel Photo-Paint and Adobe PhotoShop don't optimize it at all. Go to http://download.com and find yourself a good set of tools to compact your image files. You will be surprised that one of your GIFs had 900 bytes and after compacting it, end up being just 80 bytes.

 

 

Tip #11: Reduce the number of external elements

If you see a request graphic from Keynote (a site perf monitoring service) you would be shocked at how long it takes to download just a few extra files to render a page, like a few images, a CSS and a JS file. If you did a good job with Tip #5 (using caching), the impact will be lesser. A browser can only request an image file, after it detected it on the parsing of the HTML. A lot of those file requests are serial. Some browsers limite the number of TCP connections to a single server (usually to 2), thus, allowing your page to only download 2 files at a time. If you have 1 page, 1 css, 1 js, and 7 images on your page (10 files), you can imagine that a lot has to happen before everything is loaded. The point here is, try to reduce the number of files (mostly images), and, if the CSS/JS are small enough, embed it into the page.

 

 

Tip #12: Use a single DNS Lookup

This is so overlooked. How many Web Developers think about DNS Lookup when they are building a site? I guarantee you, not many. But even before the browser opens a connection to your server, it needs to do a DNS Lookup to resolve the domain name to an IP address. Now, DNS lookups is one of the fatest things on the Internet, because the protocol is tiny and it is cached everywhere, including the user's computer. But, sometimes you see sites making "creative" domain names for the same server. Like all images come from "images.mysite.com", the page is coming from "w3.mysite.com" (after a redirect from "www.mysite.com"), and the streaming video comes from "mms.mysite.com". That is 3 DNS lookups more than necessary.

 

 

Tip #13: Delay Script Starts

If you have a process that renders 100 images per second using 100% CPU, and you add another process doing the same thing, the performance will be less than 100 images per second (less than 50 per process). That is because now the OS has to manage context switches. The same thing applies the scripts on your page. If the browser stills loading and processing a few images, or CSS and you just fire a script, it will take longer for that script to execute than if you had waited the page to be completely loaded. Actually, it gets a little bit more complicated. The browser fires the "onload" event for the page once it has all the elements necessary to render the page, not after the page has really been rendered (there is no "onrendercomplete" event). This means that even after the onload event, the CPU still being used by the browser to render the page. What I usually do in situations like this is to add two indirections. First, attach a script to the onload event to invoke a function that will create a time-event in a few seconds that will do the real initialization. In other words:

<body onload="setTimeout('init();',1000);">

 

 

Tip #14: Watch for Memory Leak

The biggest problem with browser's memory leak is that it doesn't affect only the page that created the leak, it affects every single page from any site after that. Internet Explorer is notorious for its massive memory leaks (becase of poor JavaScript). There are a few tools on the Internet to find out if your script is causing memory leak and where. The easiest test is to load your page 100 times and watch PerfMon to see if the Working Set is growing or not. The most simple thing that you should do is to unbind every event that you bound to (dynamically), and to release every reference possible (this also helps the JavaScript garbage collector to be faster).

If you have no clue what I talked about in one of the topics above, either you really don't need to know about it, or, you should immediately go buy some books, and I recommend all books by O'Reilly, like:

  • Dynamic HTML: The Definitive Reference - by Danny Goodman
  • JavaScript & DHTML Cookbook - by Danny Goodman
  • HTTP: The Definitive Guide - by David Gourley & Brian Totty
  • Web Caching - by Duane Wessels

 

 

Posted by Sabir at 16:43:28 | Permanent Link | Comments (0) |

Best tutorial on Java Struts

This tutorial is derived from Marty Hall's world-renowned live Jakarta Struts training course. Note that the course (and this tutorial) now covers Struts 1.2. The course is usually taught on-site at customer locations, but servlet, JSP, Struts, and JSF training courses at public venues are periodically scheduled for people with too few developers for an onsite course. For descriptions of the various other courses that are available, please see the servlet, JSP, Struts, and JSF training course page. To inquire about a customized training course at your location, please contact Marty at hall@coreservlets.com. Courses on servlets, JSP, JSF, Shale, Hibernate, and Java programming also available.

Click on the below Link

 

http://courses.coreservlets.com/Course-Materials/struts.html

Posted by Sabir at 16:35:38 | Permanent Link | Comments (0) |