Sunday, July 26, 2009

Tip: Keyboard shortcuts for symbols

Wondering how someone makes a Heart, Arrow or even a TM trademark symbol with their Keyboard?

All you need to do is Hold down your "ALT" key and press another key on the keyboard to create a symbol. Here is a list of some you can make. Have Fun!

Alt + 0153..... ™... trademark symbol

Alt + 0169.... ©.... copyright symbol

Alt + 0174..... ®... .registered trademark symbol

Alt + 0176 ...°....... .degree symbol

Alt + 0177 ...± ... .plus-or-minus sign

Alt + 0182 ...¶....... paragraph mark

Alt + 0190 ...¾...... fraction, three-fourths

Alt + 0215 .... ×..... multiplication sign

Alt + 0162... ¢...... the cent sign

Alt + 0161..... ¡...... upside down exclamation point

Alt + 0191..... ¿..... upside down question mark

Alt + 1.......... ☺... smiley fsce

Alt + 2 ......... ☻... black smiley face

Alt + 15........ ☼... sun

Alt + 12........ ♀.... female sign

Alt + 11....... ♂.... male sign

Alt + 6......... ™ ..... spade sign

Alt + 5.......... ♣.... Club symbol

Alt + 3.......... ♥.... Heart

Alt + 4.......... ♦..... Diamond

Alt + 13........ ♪..... eighth note

Alt + 14........ ♫.... beamed eighth note

Alt + 8721.... ∑.... N-ary summation (auto sum)

Alt + 251...... √..... square root check mark

Alt + 8236..... ∞.... infinity

Alt + 24........ ↑..... up arrow

Alt + 25........ ↓..... down arrow

Alt + 26........ →... right pointing arrow

Alt + 27........ ←... left arrow

Alt + 18........ ↕..... up/down arrow

Alt + 29........ ↔... left right arrow

Wednesday, July 15, 2009

Dying IT Skills

There are some things in life, like good manners, which never go out of style, and there are other things, like clothing styles that fall in and out of fashion, but when an IT skill falls out of favor, it rarely ever comes back. Here’s our list of 10 dying IT skills. If any of these skills are your main expertise, perhaps it’s time to think about updating your skill set.

Is it dead or alive? This 40-year-old programming language often appears in lists of dying IT skills but it also appears in as many articles about organizations with legacy applications written in COBOL having a hard time seeking workers with COBOL skills. IBM cites statistics that 70% of the world’s business data is still being processed by COBOL applications. But how many of these applications will remain in COBOL for the long term? Even IBM is pushing its customers to “build bridges” and use service-oriented architecture to “transform legacy applications and make them part of a fast and flexible IT architecture.”

We’re not suggesting the Internet is dead but with the proliferation of easy to use WYSIWYG HTML editors enabling non-techies to set up blogs and Web pages, Web site development is no longer a black art. Sure, there’s still a need for professional Web developers (see the ColdFusion entry above for a discussion about Java and PHP skills) but a good grasp of HTML isn’t the only skill required of a Web developer. Professional developers often have expertise in Java, AJAX, C++ and .Net, among other programming languages. HTML as a skill lost more than 40% of its value between 2001 and 2003, according to Foote Partners.

8. SNA
The introduction of IP and other Internet networking technologies into enterprises in the 1990s signaled the demise of IBM’s proprietary Systems Network Architecture. According to Wikipedia, the protocol is still used extensively in banks and other financial transaction networks and so SNA skills continue to appear in job ads. But permanent positions seeking SNA skills are few and far between. noted that there were three opening for permanent jobs between February and April, compared to 43 during the same period last year. Meanwhile, companies such as HP offer consultants with experience in SNA and other legacy skills such as OpenVMS and Tru64 Unix for short-term assignments.

7. Siebel
Siebel is one skill that makes a recurring appearance in the Foote Partners’ list of skills that have lost their luster. Siebel was synonymous with customer relationship management in the late ‘90s and early 2000s, and the company dominated the market with a 45% share in 2002. Founded by Thomas Siebel, a former Oracle executive with no love lost for his past employer, Siebel competed aggressively with Oracle until 2006 when it was ultimately acquired by the database giant. Siebel’s complex and expensive CRM software required experts to install and manage. That model lost out to the new breed of software-as-a-service (SaaS) packages from companies such as that deliver comparable software over the Web. According to the U.K.’s site, Siebel experts command an average salary of GBP52,684 ($78,564), but that’s a slide from GBP55,122 a year ago. Siebel is ranked 319 in the job research site’s list of jobs in demand, compared to 310 in 2008.

6. RAD/Extreme Programming
Back in the late 1990s and early 2000s the rapid application development and extreme programming development philosophies resulted in quicker and more flexible programming that embraced the ever changing needs of customers during the development process. In XP, developers adapted to changing requirements at any point during the project life rather than attempting to define all requirements at the beginning. In RAD, developers embraced interactive use of structured techniques and prototyping to define users’ requirements. The result was accelerated software development. Although the skills were consistently the highest paying in Foote Partners survey since 1999, they began to lose ground in 2003 due to the proliferation of offshore outsourcing of applications development.

5. ColdFusion
ColdFusion users rave that this Web programming language is easy to use and quick to jump into, but as many other independent software tools have experienced, it’s hard to compete with products backed by expensive marketing campaigns from Microsoft and others. The language was originally released in 1995 by Allaire, which was acquired by Macromedia (which itself was purchased by Adobe). Today, it is superseded by Microsoft .Net, Java, PHP and the language of the moment: open source Ruby on Rails. A quick search of the job aggregator site returned 11,045 jobs seeking PHP skills compared to 2,027 CF jobs. Even Ruby on Rails, which is a much newer technology receiving a major boost when Apple packaged it with OS X v10.5 in 2007, returned 1,550 jobs openings on

4. Wireless Application Protocol
Yes, people were able to browse the Internet in the late 1990s before Apple’s iPhone. Web site operators would rewrite their content to the WAP’s Wireless Markup Language, enabling users to access Web services such as email, stock results and news headlines using their cell phones and PDAs. WAP was not well received at the beginning because WAP sites were slow and lacked the richness of the Web. WAP has also seen different levels of uptake worldwide because of the different wireless regulations and standards around the world. WAP has since evolved and is a feature of Multimedia Messaging Service, but there are now a new generation of competing mobile Web browsers, including Opera Mobile and the iPhone’s Safari browser.

3. Visual J++
Skills pay for Microsoft’s version of Java declined 37.5% last year, according to the Foote Partners’ study. The life of J++, which is available with Microsoft Visual Studio 6.0, was not a smooth one. Although Sun Microsystems licensed Java to Microsoft to develop J++, Microsoft failed to implement some features of the official Java standard while implementing other extensions of its own. Sun sued Microsoft for licensing violations in a legal wrangle that lasted three years. Microsoft eventually replaced J++ with Microsoft .Net.

2. Novell NetWare
Novell’s network operating system was the de facto standard for LANs in the 1990s, running on more than 70% of enterprise networks. But Novell failed to compete with the marketing might of Microsoft. Novell tried to put up a good fight by acquiring WordPerfect to compete with Windows Office, but that move failed to ignite the market and Novell eventually sold WordPerfect to Corel in 1996. Novell certifications such as Certified Novell Engineer, Master Certified Novell Engineer, Certified Novell Certified Directory Engineer, and Novell Administrator were once hot certs in the industry, but now they are featured in Foote Partners’ list of skills that decreased in value in 2008. Hiring managers want Windows Server and Linux skills instead.

1. Asynchronous Transfer Mode
ATM was popular in the late 1990s, particularly among carriers, as the answer to overworked frame relay for wide-area networking. It was considered more scalable than frame relay and offered inherent QoS support. It was also marketed as a LAN platform, but that was its weakness. According to Wikipedia, ATM failed to gain wide acceptance in the LAN where IP makes more sense for unifying voice and data on the network. Wikipedia notes that ATM will continue to be deployed by carriers that have committed to existing ATM deployments, but the technology is increasingly challenged by speed and traffic shaping requirements of converged voice and data networks. A growing number of carriers are now using Multi-Protocol Label Switching (MPLS), which integrates the label-switching capabilities of ATM with the packet orientation of IP. IT skills researcher Foote Partners listed ATM in its IT Skills and Certification Pay Index as a non-certified IT skill that has decreased in value in the last six month of 2008.

Monday, July 13, 2009

ASP.NET Tip for decreasing size of view state

How can I decrease the size of the view state?
One convenience of ASP.NET controls is that they can preserve state across post-backs—a topic we’ve covered in depth in Chapter 6. This, of course, is a feature that comes at a price—to implement it, we add a hidden field to the page to store the control settings for transmission between the client and server, but depending on the controls the page uses, the view state can sometimes become quite large.
One obvious way to reduce the size of view state is to turn it off if you don’t need it. This adjustment can be performed either at the page level, or at the control level. If, for whatever reason, you can’t disable the view state (for example, your page uses controls that are dependent upon the view state), there are a few other steps you can take to at least reduce its impact on your page size.
You have two options for reducing the impact that view state has on your page size—either compress the view state, or store it on the server.

Compressing the View State
The following simple CompressedViewStatePage class implements basic GZIP compression on the page’s view state. It reduced the size of the ViewState object on my sample page from 20,442 bytes to 6,056 bytes—an impressive 70% reduction in size! Here’s the class in all its glory:
CompressedViewStatePage.cs (excerpt)
using System;
using System.IO.Compression;
using System.IO;
using System.Web.UI;
public class CompressedViewStatePage : System.Web.UI.Page
static public byte[] Compress(byte[] b)
MemoryStream ms = new MemoryStream();
GZipStream zs = new GZipStream(ms, CompressionMode.Compress);
zs.Write(b, 0, b.Length);
return ms.ToArray();
static public byte[] Decompress(byte[] b)
MemoryStream ms = new MemoryStream(b.Length);
ms.Write(b, 0, b.Length); // last 4 bytes of GZipStream = length of decompressed data
ms.Seek(-4, SeekOrigin.Current);
byte[] lb = new byte[4];
ms.Read(lb, 0, 4);
int len = BitConverter.ToInt32(lb, 0);
ms.Seek(0, SeekOrigin.Begin);
byte[] ob = new byte[len];
GZipStream zs = new GZipStream(ms, CompressionMode.Decompress);
zs.Read(ob, 0, len); return ob;
protected override object LoadPageStateFromPersistenceMedium()
byte[] b = Convert.FromBase64String(Request.Form["__VSTATE"]);
LosFormatter lf = new LosFormatter();
return lf.Deserialize(Convert.ToBase64String(Decompress(b)));
protected override void SavePageStateToPersistenceMedium( object state )
LosFormatter lf = new LosFormatter();
StringWriter sw = new StringWriter();
lf.Serialize(sw, state);
byte[] b = Convert.FromBase64String(sw.ToString());
ClientScript.RegisterHiddenField("__VSTATE", Convert.ToBase64String(Compress(b)));

To use GZIP compression, simply inherit a specific page from the class, like this:

public partial class MyPage : CompressedViewStatePage

If you’re worried about the performance implications of compressing your view state, don’t be. It’s far more likely that bandwidth is a greater bottleneck than CPU time on any given web server. Although there are exceptions to this rule, the GZIP algorithm is blazingly fast on the CPUs of today. Besides, if your server’s CPU operates at 100% all the time, you have far graver problems to worry about than the size of a handful of pages.
This compression algorithm could also be implemented as an HTTP module, which could then be applied to an entire site with a simple Web.config modification. I suggest you try implementing this module as an exercise, if you’re keen. The MSDN article on building an HTTP module is a good place to start.

Storing View State on the Server
The second option for reducing view state’s impact on page size is to prevent view state data from being sent to the client altogether, and instead store the data on the server.
The following ServerViewStatePage class allows us to use the Session object to store the view state:

using System;
using System.Web.UI;
using System.Configuration;
using System.IO;
public class ServerViewStatePage : System.Web.UI.Page
private const string _configKey = "ServerViewStateMode";
private const string _formField = "__SERVERVIEWSTATEKEY";
private string ViewStateData
return Request.Form[_formField];
ClientScript.RegisterHiddenField(_formField, value);
private string PersistenceType
return (ConfigurationManager.AppSettings[_configKey] ?? "").ToLower();
private object ToObject(string viewstate)
byte[] b = Convert.FromBase64String(viewstate);
LosFormatter lf = new LosFormatter();
return lf.Deserialize(Convert.ToBase64String(b));
private string ToBase64String(object state)
LosFormatter lf = new LosFormatter();
StringWriter sw = new StringWriter();
lf.Serialize(sw, state);
byte[] b = Convert.FromBase64String(sw.ToString());
return Convert.ToBase64String(b);
private string ToSession(string value)
string key = Guid.NewGuid().ToString();
Session.Add(key, value);
return key;
private string FromSession(string key)
string value = Convert.ToString(Session[key]);
return value;
protected override object LoadPageStateFromPersistenceMedium()
switch (PersistenceType)

case "session":
return ToObject(FromSession(ViewStateData));

return base.LoadPageStateFromPersistenceMedium();

protected override void SavePageStateToPersistenceMedium(object ViewStateObject )
switch (PersistenceType)

case "session":

ViewStateData = ToSession(ToBase64String(ViewStateObject));



To use ServerViewStatePage, simply inherit a specific page from this class, like this:

public partial class MyPage : ServerViewStatePage

This class is configured via a single setting in Web.config: ServerViewStateMode. Once you’ve configured this setting, you’ll notice that the ViewState object disappears from the page—in its place is a simple ID that’s used to look up the contents of the page’s view state on the server, in the Sessionobject. If you feel uncomfortable storing view state in Session, this class could easily be extended to store view state wherever you like—in the file system, in the ASP.NET cache, or in a database.

As usual, there’s no free lunch here. The decision to push view state to the server and store it in Session has its own drawbacks. For example, the Session object could be lost if the IIS worker process recycles (a loss that does occur every so often in IIS, unless you’ve disabled this default behavior). Furthermore, any change to the underlying application files (such as editing Web.config, or adding new binaries to the bin folder of your application) will also cause the web application to recycle and Session data to be lost. And if you use more than one web server (such as in a web farm environment) you’ll need to manage any shared session state that’s stored in a database.

Ajax Tips: UpdatePanel,WebMethods & PageMethods

UpdatePanel Tips
Use UpdateMode=Conditional
By setting the UpdatePanel's UpdateMode property to Conditional, it will only update its contents when one of its triggers occurs or a control within the UpdatePanel itself raises a Postback.
To do this just do the following:

<asp:updatepanel id="UpdatePanel_List" runat="server" updatemode="Conditional"></asp:updatepanel>

Programmatically Tell the ScriptManager to handle a specific controls postbacks asynchronously
Programmatically telling the ScriptManager to raise a Postbacks Asynchronously can be usefull in some scenarios; such as when you may want to optionally enable ajax for certain things on the page.
To do this you just use the ScriptManagers RegisterAsyncPostBackControl method and pass it the reference to the control you want to make asynchronous.
Here's an example page that does this:

<asp:updatepanel id="UpdatePanel_List" runat="server" updatemode="Conditional">
<asp:button id="btnShowTime" onclick="btnShowTime_Click" runat="server" text="Show Time">

public partial class UpdatePanel_01_Default : System.Web.UI.Page
protected void Page_Load(object sender, EventArgs e)
{ /// Make btnShowTime postback
protected void btnShowTime_Click(object sender, EventArgs e)
lblTime.Text = DateTime.Now.ToLongTimeString();

WebMethods and PageMethods
Using WebMethods
By attaching the ScriptService and ScriptMethod attributes to your WebServices you can enable them to be accessed from within your pages via JavaScript.
Here's a sample WebService with the ScriptService and ScriptMethod attributes attached:
[System.Web.Script.Services.ScriptService][WebService(Namespace = "")][WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class WSTime : System.Web.Services.WebService
[WebMethod] [System.Web.Script.Services.ScriptMethod]
public string GetServerTime()
return DateTime.Now.ToLongTimeString();

Then to access the WebService from within JavaScript you need to first tell the ScriptManager about the WebService by giving it a ServiceReference. This can be done declaratively within the page, like so:

<asp:scriptmanager id="ScriptManager1" runat="server"><services><asp:servicereference path="~/WebMethods/WSTime.asmx"></asp:servicereference></servicesglt;</asp:scriptmanager>

Now to acess the WebServices methods you just use the namespace that ASP.NET Ajax creates in the page for the WebService and access its methods like normal JavaScript methods. The namespace that is created is the same name as the WebService, in this case it's WSTime. The whole Ajaxiness of calling the server and getting the results back are handled for you, and all you have to worry about is processing the results. Remember, WebMethods can only be called Asynchronously.
Here's an example of using the WSTime.GetServerTime WebService method from within JavaScript:
function btnGetServerTime_Click()
{ // call the WebMethod and pass it the method // to call once it gets the response from // the server.
function SucceededCallback(result, eventArgs)


Using PageMethods
PageMethods are accessed in the same fashion as WebMethods, except they do not require the creation of a WebService. PageMethods are actually WebMethods that are added to the page itself. Once thing to note is there is No way to embed PageMethods within Custom User Controls or Server Controls, they must be added to the Page; hence the name PageMethods.
Here's the C# code of an example page with a PageMethod defined:

public partial class PageMethods_Default : System.Web.UI.Page
protected void Page_Load(object sender, EventArgs e)

public static string GetServerTime()
return DateTime.Now.ToLongTimeString();

To enable the PageMethods you must first set the ScriptManagers EnablePageMethods property to True.
<asp:scriptmanager enablepagemethods="true" id="ScriptManager1" runat="server"></asp:scriptmanager>
Then you can call the PageMethods in the same way as WebMethods, except the namespace you use to access the methods is named PageMethods.
Here's the example code of calling the above PageMethod from JavaScript:
function btnGetServerTime_Click()
function SucceededCallback(result, eventArgs)


Thursday, July 9, 2009

Useful Web Based Tools For Linux

Linux is an outstanding operating system for serving up applications. And there are a ton of possibilities. From content management systems to Web portal creation tools, Linux has just about everything you need. Among those thousands of tools, a select few stand out as the best of the best. Listed below you will find my top 10 must-haves for Linux server/Web/cloud-based tools.

#1 Drupal
Drupal is one of the finest content management systems available. It's open source, based on PHP, and can serve up anything from individual sites to large corpora
te sites. Drupal is also modular, which means it defaults to a core installation but has a number of outstanding modules you can add. Installation of Drupal requires a database (MySQL is preferred), PHP, and a server (such as Apache). It was originally written as a bulletin board system.
Drupal is simple to install, easy to manage, reliable, scalable, and themeable. Some of the biggest sites powered by Drupal are Warner Brothers Recording, MTV UK, Harvard Science and Engineering, FedEX, NASA, and Ubuntu.
One of Drupal's best features (especially for the enterprise level) is the efficiency of bug fixing and patching. A large number of developers are working with Drupal, and shortly after a bug or security hole is discovered, a fix is released. Newer releases of Drupal take advantage of an automatic update notifier. As soon as an update of any installed module (including the core) is released, the administrator is informed. If you need a tool to help you quickly roll out quality sites, Drupal is what you are looking for.

#2 Webmin
If you need remotely manage a server or a desktop, Webmin is one of the best tools available. Webmin
allows you to remotely configure disk quotas, modify applications, configure services (such as Apache, FTP, and MySQL), control multiple machines from a single interface, and much more. The Webmin interface is strictly Web-based and is incredibly user-friendly. Like Drupal, Webmin is modular, which allows you to install modules for nearly any application/task and to write modules of your own. Webmin is one of those tools that every Linux (and now Windows) administrator should deploy to make their administrative tasks far easier. Webmin is released under the BSD license.

#3 Nolapro
Although not open source, Nolapro is one of the best Linux-based accounting and POS solutions I have used. Nolapro is another modular system, and it includes order management, general ledger, shopping cart, inventory tracking, accounts payable, payroll, B-to-B, accounts receivable, and POS. Nolapro is simple to install but not quite as simple to use. Of course, any system of this nature is going to have a somewhat steeper learning curve. Tthe software itself is free, but I highly recommend you purchase the printed manuals.
Because this system can handle so many tasks, having the manuals is key to getting your staff up to speed quickly. I have deployed Nolapro in a number of locations and have found it to be an outstanding solution. Even though the POS system is geared more for smaller businesses (lack of cash-drawer hardware), the rest of the system will indeed be robust enough to handle nearly any size company.

#4 eGroupWare
If you're looking for a solid groupware suite to replace Exchange, this might be exactly what you want. eGroupWare is a complete solution that includes calendar, group scheduling, notifications/alarms, e-mail (IMAP only), InfoLog, contacts, project management, bug/incident tracking, timesheet, SyncML support, and SiteMgr or JiNN support.
eGroupWare is not the easiest system to install (make sure you install from source and not from a prepackaged binary), but once it's installed you will find yourself asking "How is this amazing system free?" eGroupWare is an enterprise-ready, open source (GPL license), cross-platform Exchange Server replacement with a built-in Web interface. I've deployed it with great success. If you don't want your users accessing the calendar and e-mail from the Web interface, you can connect to eGroupWare with groupware clients like Kontact, Evolution, and Outlook.

#5 Joomla!
Yet another content management system that is as flexible as any other and widely used around the globe. The user list of Joomla! includes the United Nations, MTV Quizilla, LA Weekly, IHOP, University of Harvard, Citibank intranet, The Green Maven, and Outdoor Photographer. Joomla! is as simple to install as Drupal, includes numerous modules, and has a large community (which publishes a regular community magazine). A number of published books cover using Joomla! to build sites, creating extensions (modules) for it, beginning Joomla!, and Joomla! training, among other topics. Why would you choose Joomla! over Drupal? There are a number of possible reasons: If you need a shopping cart, if you want to include an event calendar, if you want a large selection of templates, if you want to include document management, or if you need commercial support.

#6 MediaWiki
MediaWiki was originally created for Wikipedia but is now used for many other *wikis. MediaWiki is intended to be run on server farms for sites that receive millions of hits per day. It's powerful and quite scalable. The backbone of MediaWiki is PHP and MySQL. The list of sites using MediaWiki is extensive. What MediaWiki has over many other Wiki servers is the ability to include multimedia files (including images, audio, and video). MediaWiki also has a large collection of extensions from AimButton to YouTubeTag (and many in between).

#7 PhpMyAdmin
If you are a MySQL guru you can look away now. For the rest of us who must work with databases to create and administer Web sites, PhpMyAdmin is just the ticket. The PhpMyAdmin Web interface is as simple as it gets. Of course, the product isn't limited to simplicity -- PhpMyAdmin also lets you issue MySQL commands from within the Web interface.
From within the Web interface the administrator can manage databases, tables, fields, relations, indexes, users, permissions, etc. PhpMyAdmin has been translated into 55 languages and has outstanding support and simple installation.

#8 VMware Server
Virtualization is critical in meeting today's computing needs, and the VMware Server will quickly become invaluable. By enabling you to create a virtual server once and roll it out multiple times, VMware Server drastically cuts deployment time. This particular server technology allows for the quick creation of test beds, server consolidation, and quick rollbacks. It supports 64-bit operating systems, 8 gigs of RAM, and 10 network interface cards. VMware Server also has a remote console, which allows for both remote and local access to the virtual consoles. VMware Server is a complete no-brainer for the enterprise environment.

#9 Packetfence
Packetfence is one of the best open source network access control tools available, and it's been deployed in numerous large-scale industries. Packetfence supports registration of new network devices, detection of abnormal network activity, isolation of problem network devices, remediation, registration and vulnerability scans, VLAN isolation, 802.1X, FreeRADIUS, and DHCP fingerprinting. It has both Web- and command line-based interfaces. Packetfence can be a simple system to install but a complex system to master. The Packetfence support is severely lacking (as is the documentation), so the included README files will be critical for your understanding of this incredible system.

#10 Domain Technologie Control
If you're looking for an open source hosting control solution, you'll want to look at the open source version of cPanel -- DTC. This solution, released under the GPL, has a ton of features that most other commercial solutions do not: real time bandwidth monitor, auto IP update, antivirus, anti-spam, and much more. This utility is *NIX platform independent (it can run on Linux, BSD, Solaris, Debian, OS X...) Unlike many other solutions of this type, DTC does not employ a daemon, but uses Apache as is. You can purchase professional-level support. If you are looking at creating a hosting service, and you need an answer for a lot of problems, look no further than DTC.

Tips to improve your public speaking

In the business world, speaking effectively is a must. Whether you are going on an interview, asking your boss for a raise (or a bigger budget), selling your product to bidders/purchasers, speaking with clients, giving a presentation, or rallying the troops for a long-haul network upgrade, you are going to need to be at your best with public speaking. Problem is, most schools don't really give you much in the way of training for public speaking. That's where I come in.
You may not know this, but I was an actor for a long, long time. I did Broadway, some films (nothing to mention), a LOT of theatre, and even taught at a couple of universities. So I know my way around speaking. And I know how to make speaking easier for those who look at standing up in front of a crowd (or sitting in front a prospective boss) as a nightmare made real. Here are 10 simple ways to make that nightmare more a dream.

#1 Prepare
You have to know your material. And I'm not just talking about memorizing words and facts. I mean really KNOW your material. You can't predict what is going to happen that might cause you to get sidetracked. Murphy's Law dictates that something will happen. And when it does, it's best to know where you are. That's when a little acting trick will come in handy.
When you have a large script to memorize, the best way to do it is in chunks. But not just any chunk. It's best to make a chunk all related material. For example: You're giving a presentation on why your company should migrate to open source software. You could have five different chunks to your speech: Intro to open source, Cost savings, Security, Reliability, Ease of use. With each of those chunks, you'll have certain bits of information to know. But always know the names of those chunks. So when/if you get lost, you at least know which chunk you are on. If you know the information within that chunk well enough, you can get back on track.
This has helped me a number of times on stage. If I know the gist of a scene and I get lost, at least I know what the scene is about, so eventually I can right that ship. If I have no idea what the scene is about, I'll never get that scene righted. Same thing with a speech. If you memorize just a big blurb of stuff and you don't break it down, you'll be lost in a sea of information if you lose your bearings. If you get lost within a chunk, that sea becomes a lake and you can find your way back to shore fairly easily. Know your material!

#2 Rehearse correctly
Most people don't realize this, but nerves have a serious effect on how you speak in front of people. Nearly everyone who gets nervous when speaking in front of people will speak faster than they normally would. This can lead to you not being understood and most certainly seeming nervous. (Pitting out that button-down? Shame!). To avoid this pitfall, rehearse your speech more slowly than you would normally. That doesn't mean speeeeeeaaaak verrrrrrrry slooooooowly. That means just be more at ease and relaxed when you rehearse. That way, when the nerves kick in, you will most likely be speaking at a normal pace.

#3 Hydrate yourself
Most would think this a crazy thing to do before speaking. But you know why so many speakers keep water with them when they speak? Nerves dry up your mouth. And when your mouth dries up, you will have a harder time articulating your thoughts. To that end, make sure you drink plenty of water before and during your speech. Now this doesn't mean down it like you've not had water to your lips in days. If you do that, you'll most certainly need to pause in the middle of your speech to visit the bathroom. Either that or you'll REALLY embarrass yourself.

#4 Relax before you go on
This is another one of those tactics that most people don't think will work. It does. One of an actor's biggest jobs is finding jobs. To find jobs as an actor you have to audition. Auditioning is one of the single most nerve wracking things you will ever do. I quickly discovered that if I relax before I go on, my nerves just ease away. But how does one relax? By not obsessing over what you are about to do. If you go over and over your speech before you go on, you will be in a constant state of reminding yourself that you are about to make yourself nervous. Instead, do something to get your mind off what you are about to do. Two activities did the trick for me: Reading a book or playing a video game. It's pretty easy these days to pack a PSP, DS, Kindle, or paperback with you. Do this and take advantage of the time before you go on. Your heart rate will thank you for it.

#5 Rest well
The night before you are going on the biggest interview of your life, don't go out and paint the town the color of the hangover you'll have the next morning. Instead, relax, go to the gym, catch a movie, read, or anything that is going to help you get a good night's sleep. And that doesn't mean medicate yourself to get those 40 winks. If you do, you'll wake up feeling worse than if you hadn't slept.

#6 Dress to impress
During my 20 years as an actor, I probably had just a handful of outfits I would wear during auditions. There are two reasons for this: Superstition and looks. When an outfit seemed to help me get a gig, I would use it more than not. But how does this really help? You choose a speaking, interviewing, rallying outfit that makes you look good (both to yourself and others) -- and when you feel like you look good, your confidence will soar. So don't just settle on your usual khakis and oxford. Bring in the help of that significant other to help you find just the right look that makes you KNOW you look good. The confidence you gain by this will greatly improve your speaking.

#7 Articulate
Have you ever listened to someone speak who was hard to understand? What do you do after a while? You tune them out. You find them uninteresting and assume they're not really knowledgeable about their subject. You can be the most brilliant person alive, but if your audience can't understand you, you will lose them. There are exceptions to this (think Stephen Hawking), but for the most part, speakers who articulate are thought of much more highly than those who don't.

#8 Be heard
This goes hand in hand with number 7. If you can't be heard, you won't be heard. If you have a softer voice, you know you're going to have trouble. And most people tend to speak more softly when they're speaking in front of a crowd. (Again, nerves can do many things.) Here's a way to help you out with this. When you rehearse your speech, do it in front of someone but have them stand in the back of the room. Make sure they let you know if you can't be heard. You can even make a game of it by giving them a nerf gun (hearken back to the '90s dot-com days) and have them shoot you when they can't hear you.

#9 Warm up
Your voice is like any other muscle in your body: You use it cold and it won't work well. If you roll out of bed, get dressed, drink your coffee, and go give your speech, you're going to have issues. Instead, make sure your vocal muscles are ready to work. When you give speeches, you are speaking for much longer periods at a time than you normally do. If you don't prepare yourself you can wind up with a sore throat (or sounding like you just smoked a carton). Two of the best ways to warm your voice up are by humming (single low- to midrange tones are best or simple melodies or scales) and by doing tongue twisters. If you need a good tongue twister to really get yourself ready try "The big black bug bled blue-black blood." Repeat that for a while and you'll be ready to knock 'em over!

#10 Don't fill the void
How many times have you heard a speaker or interviewed someone for a job only to turn them off because they filled the space between thoughts with sounds or words? You know what I'm... ummmm… talking... ummmm… about. Right? This sounds horribly unprofessional. Instead of filling your voids with grunts, groans, and signs of weakness, fill them with thought-filled, connected silence. Believe it or not, those pauses aren't as long as you think. And when your audience (be it a single person or a crowd) sees that you are still connected to them, even between thoughts, you will keep their rapt attention. In other words, don't drift off with ummmm... errrr... uhhhh... eeeee...sounds or words between your thoughts. Hold your listeners' attention with silence as you continue to press forward.

Ways to improve your writing by self-editing

Despite our best efforts, most of us make mistakes while writing. After all, we occasionally mispronounce words, use the wrong tense, or stop to reclaim a thought while talking. Writing is no different.
Unfortunately, catching mistakes in your own writing is difficult. Your mind knows what you meant to write so it glosses over the mistake and reads what you meant to write, not what you actually wrote. It's a difficult phenomenon to beat. Fortunately, you can improve your self-editing skills to cut down on mistakes and improve the quality of what you write.

#1 Put some distance between you and your work
The most important rule to successful self-editing is often the hardest to apply: Put it aside for a few hours or even a few days. Don't try to edit your own writing as soon as you're done. It's just too fresh in your mind and you will read what you think you wrote and not what you really wrote. Your mind will glance right over even the most obvious errors. The more time your work sits, the easier and more productive your editing effort will be. Be sure to add this downtime to your schedule.

#2 Read like a reader, not like an editor
The first time you read through a piece, read it as a reader. Ignore mistakes and read for comprehension. Knowing that you made your point is the most important step to editing your own work. The editor in you will still spot errors, just don't belabor them -- keep reading.

#3 Limit your first edit
During the first edit, resist the urge to change everything. Only correct glaring errors. If you feel strongly about a change, make a note in the margin. Later, you can always make the change, but more than likely, you won't. Your first instincts are usually correct. You'll save time and a bit of wear and tear on yourself by limiting those first changes to the most important ones -- the true errors.

#4 Now, you can edit
At this point, you're ready to correct errors and improve the language and organization:
• Correct typos, spelling, grammar, and punctuation.
• Make sure you've used the most appropriate words -- the biggest or most technical word is seldom the best word.
• Check for redundancy. Delete words, sentences, and even whole paragraphs, if necessary.

#5 Perform a line edit
Ignore the piece as a whole and review each sentence individually:
• Rewrite run-on sentences by deleting extraneous words and phrases.
• See if your subjects and verb agrees.
• Make sure the sentence conveys your intended point.
• Depending on the piece, you'll probably want to replace passive verbs with active ones. Only rarely are passive verbs the best use, but it does happen.
• Vary sentence structure if necessary. The same noun/verb construct is boring if used repeatedly.

#6 Take it apart
After your first major edit, edit each paragraph or section separately. How you approach this step is up to you, but the trick is to read the paragraphs or sections out of order. Each paragraph or section should stand on its own. Then, review them as a whole again for the following:
• Vary paragraph length. Long paragraphs are acceptable, but avoid one-sentence paragraphs.
• Move paragraphs and even individual sentences to support the flow of logic, if necessary.

#7 Return to the outline
If you're an outliner, compare the edited version to your original outline. They don't have to match. In fact, they often won't. Not everything in your outline has to be in the finished piece, and the finished piece might have items you didn't include in the outline. However, this is a good time to make sure you didn't accidentally omit an important item. What matters is that everything that needs to be in the finished piece, is.

#8 Read it aloud
Read the piece aloud. This tip sounds like overkill, but it works. Reading the article aloud puts energy behind the organization and the words. There's a cadence to every piece, and reading it aloud is the only way to make sure the words flow soundly through the entire piece. When you stumble over a word or phrase, simply rewrite it. Repeat this step as many times as necessary.

#9 Remove emphasis, unless you really mean it
While writing, it's easy to add emphasis to your words. For instance, you might add italics to words or phrases and use exclamation points to end sentences. A little emphasis is often necessary, but don't overuse it. If you have more than a few italicized words in the same piece, you probably have too many. Exclamation points are appropriate, but only if you really mean them.

#10 Run a spell check
Make use of technology and run a spelling and grammar check. You can use these features more than once. In fact, you might start out with one and end with one. That way, you can check your changes. But don't depend on these features because they don't catch everything.

#11 Know yourself
Pay attention to the mistakes you make repeatedly. For instance, you might overuse certain phrases or words or you might have trouble with verb tense or punctuation. Knowing your weaknesses will make it easier to correct your work thoroughly.

#12 Know your goal
Every piece has a goal or point. Write a sentence or short synopsis of the piece before you begin. After editing your work, make sure it truly honors your point. Every sentence and every paragraph should support the overall thesis. If they don't, delete or rewrite them.

#13 Edit other people's work
If possible, volunteer to help others edit their writing. The practice will pay off: By helping others, you'll improve your skills as a writer and an editor.

Wednesday, July 8, 2009

Essential (and free) Windows applications

Every time I build a new Windows computer, I install a dozen free applications for other people. These applications all seem to fill essential functions, and they all seem to be well-behaved installers and uninstallers. In other words, they won’t crash the computer or drag it down with gunk. Since they’ve served me so well, I thought I’d compile the list here and share them with you. Without spending a dime of your hard-earned money on software, you can now make the most of your computer.

#1: uTorrent
uTorrent is the BitTorrent client that is a must-have for anyone who wants an effective file-sharing application that can download large files. It was developed by a lone old-school programmer, Ludvig Strigeus, who wrote a BitTorrent client in a few hundred kilobytes (yes, that’s not a typo), which is a real pleasant surprise in this age of bloated Java applications with 100-MB memory footprints. It was bought out by BitTorrent Corporation, which raised some concerns among the user base. But the client has retained all of its functionality and the new owners have done a good job of maintaining it.

#2: Skype
Skype is another killer app for the modern personal computer. If you haven’t already heard of it and installed it, go get it. It’s the first and one of the few VoIP applications on the market that "just works." Couple it with a good analog microphone or something like the Polycom Communicator, and you’ll be able to send superb wideband audio—which is amazing compared to the normal narrowband audio you get on a telephone. If you add Whiteboard Meeting, which has a free limited version, you now have a mission critical business collaboration application.

Add a Logitech Quickcam Pro 9000, Quickcam Pro for Notebooks, or Quickcam Orbit AF for as little at $80 for the first two models, and you have yourself a very high-quality 640×480 video conferencing solution. Skype’s HQ (High Quality) video conferencing is something you just have to see to believe. The only downside to the HQ mode is that Skype does not support IEEE 1394 camcorders, so you have to buy those Logitech webcams if you want the HQ mode. The camcorder support would have allowed much longer zoom for use in the living room, but unfortunately, it doesn’t have that feature yet. Also note that you need a minimal of 384 kbps uploads to maintain HQ mode.

#3: Paint.NET
Paint.NET is just a nice free replacement for Windows Paint. It requires .NET Framework 2.0, but that’s included in Windows Vista. For a managed programming language, it’s not that bloated and loads relatively quickly. I would love to see RAW image file support, along with Lanczos3 image resizing algorithm, but they aren’t supported. That softens my enthusiasm for Paint.NET, but it’s still a simple image editing application that is very useful.

#4: Infra recorder
If you don’t have a Nero (OEM or retail) for your CD or DVD bu
rner or some other burner application, Infra recorder is a good free alternative. Not only that, it’s a lot less bloated and it has a small memory footprint. While Nero has some great functionality, it comes with too many applications and extra features that gunk up the system, though you don’t have to install them all. It won’t let you do simultaneous DVD or CD burning or other advanced things that Nero lets you do, but it does what it does well, and it’s a lot better than what comes with Windows XP or Vista.

#5: Dr. Divx
For those who want to take their movies on the go or back up their DVDs to a smaller format,
Dr. Divx is an excellent free solution. Unlike the commercial Divx encoder (which I bought and can’t use), Dr. Divx actually works in Windows Vista. A really cool feature is the ability to handle .dvr-ms files, including HD footage from HDV cameras as input. The Divx output can be played in something like this $40 up-converting Philips DVD player on your TV set or it can be played back on any computer. The down side to Dr. Divx is that it is single threaded, which means it can’t take advantage of both CPU cores, nor can it take advantage of SSE4 on the new Intel 45nm processors, which can have a huge impact on performance. Hopefully this will be addressed in future versions. For now, I’m just happy that I finally found something to encode my .dvr-ms HD content. Note that you do need to download and install the Divx codec for Dr. Divx to work.

#6: FastStone Photo Resizer
FastStone Photo Resizer is an absolute killer application for anyone who deals with images. It can batch resize, rename, and convert images of all formats and sizes. Unlike Paint.NET, it does support Lanczos3 image resizing, which is a superior algorithm for maintaining as much image fidelity as possible. It installs simply and operates quickly. If you’ve ever taken a load of 2- to 4-MB digital images and you need to distribute them via e-mail or Web, you don’t want to spend hours uploading and making your family and friends mad when you make them wait for 100 MB of downloads. FastStone is the perfect mate for digital photographers and bloggers. The only criticism I have is that it doesn’t support RAW files as an image source.

#7: K-Lite Mega Codec Pack
If you (or someone you know) is the kind of person who likes to d
ownload videos (especially from questionable sources promising adult content) and you don’t want to end up with malware, K-Lite Mega Codec pack plus QuickTime Alternative is for you. This is CRITICAL security advice that everyone needs to know about. If you can’t play whatever you downloaded with K-Lite’s included codecs and QuickTime Alternative, trust me: DELETE that file immediately and DO NOT run it. Malware pushers will give you these video files that need special video codecs to play, or so they claim. You download those special codecs and install them, and I can assure you it is no longer your computer.

#8: IZArc
As good as the built-in CAB and ZIP utility is in Windows XP and Vista, it isn’t enough, because you need compatibility with all the other compression formats out there.
IZArc will open any compression format under the sun and it’s free, unlike a lot of other utilities on the Internet. Get it, install it, and never worry about some compression format again. If you download something from BitTorrent that claims to be some special compression format and you need another one of those special utilities to open it, the safe bet is to delete that file because there is a good chance that the utility to decompress the file is malware. Don’t fall for it!

#9: CCleaner
CCleaner stands for Crap Cleaner. It is a great registry cleaner and temp file cleaner. (Note that the built-in Disk Cleanup utility in Windows XP and Vista will also do a lot of this.) I’ve used this application to clear out gigabytes of trash on PCs. It also has an excellent uninstaller, and you’d be surprised to see how much junk you can find with it. One note of caution: It does come bundled with Web toolbars, so be sure you uncheck that option if you don’t want them.

#10: Autoruns
Autoruns is an essential tool from Sysinternals (now owned by Microsoft) in the war against crapware. (Experts only: Don’t try it unless you know how to recover Windows.)

#11: Process Explorer
Process Explorer is another essential tool from Sysinternals for diagnosing computer problems and finding potential malware on your computer. It shows you exactly what’s going on in your computer in an easy-to-read tree view.

#12: AVG Antivirus Free Edition
Most people who read my blogs know that I am not a fan of
antivirus. To me, the only good antivirus application is no antivirus, but I realize that most consumers need some kind of protection from the hostile Internet and often themselves. So a nice compromise is AVG Antivirus Free Edition, which has a really small footprint and doesn’t slow your computer down to the point where your dual-core PC feels like an 80286 computer circa 1982. Best of all, it won’t hold you hostage for another $80 to renew your annual antivirus signature subscription, since this is FREE. If you bought a new computer, be sure to remove all of the demo AV software first.