January 2008 Newsletter
The world is governed more by appearances than realities, so that it is fully as necessary to seem to know something as to know it. –Daniel Webster
There is nothing in a caterpillar that tells you it's going to be a butterfly. –R. Buckminster Fuller
We must not say every mistake is a
foolish one. –
Having a role model in life is a great thing to have; one who provides us with direction and inspiration. However, we will forever be restricted by that person's limitations if we live within their boundaries. Be influenced, but set your own standards and develop your own principals, if you are ever to live beyond someone else's dreams. –Jason Shahan
Speak only if it improves upon the silence. –Mohandas Gandhi
Sunshine is delicious, rain is refreshing, wind braces us up, snow is exhilarating; there is really no such thing as bad weather, only different kinds of good weather. –John Ruskin
Reflect upon your present blessings–of which every man has many–not on your past misfortunes, of which all men have some. –Charles Dickens
I've made an odd discovery. Every time I talk to a savant I feel quite sure that happiness is no longer a possibility. Yet when I talk with my gardener, I'm convinced of the opposite. –Bertrand Russell
Conquering any difficulty always gives one a secret joy, for it means pushing back a boundary-line and adding to one's liberty. –Henri Frederic Amiel
Happiness depends more on the inward disposition of mind than on outward circumstances. –Benjamin Franklin
From the webcam at the North Pole to the computer that is most distant
from the Earth, here are seven amazing technological feats, including the
background behind them.
http://www.cio.com/article/135700
To truly improve your software development process requires that everyone
is working together toward a common goal.
This article explores how to instill the teamwork mentality and ethic.
http://www.informit.com/articles/article.aspx?p=1081500
All software development efforts have their mistakes and problems and,
most of the time, these can be overcome.
However, avoiding mistakes in architecture is key
to long-term success. This article
examines some of the classic architecture blunders.
http://www.codinghorror.com/blog/archives/001003.html
This book excerpt explains the key principles of agile development and
how they differ from traditional waterfall development and introduces some of
the common agile methodologies, such as Scrum and XP.
http://www.informit.com/articles/article.aspx?p=758414
Microsoft and Google are in a showdown about the future of applications
and whether they will continue to be desktop-based applications or hosted
online services. This duel has big
implications for application developers everywhere.
http://www.nytimes.com/2007/12/16/technology/16goog.html?pagewanted=print
In the quest to achieve alignment between the business and IT, IT needs
to be careful not to align with particular business users, but rather with the
overall goals of the business.
http://www.itbusinessedge.com/blogs/tve/?p=233
While surprises are fun on your birthday or Christmas, in software,
particularly user interfaces, shocks should generally be avoided.
http://weblog.infoworld.com/stratdev/archives/2007/11/law_of_least_as.html
According to agile experts, two of the key success factors for
transitioning from traditional development methods to agile are using
test-driven development (developing tests first as part of requirements) and
bottom-up adoption.
http://adtmag.com/article.aspx?id=21004
Mary Poppendieck,
one of the key proponents and researchers of agile development, particularly
"lean development" and the application Toyota Production
System (TPS) principles to software development, gives an excellent video presentation
about how good leadership is an imperative for successful projects.
http://www.infoq.com/presentations/poppendieck-agile-leadership
Maintaining code is a fact of life.
But with some minimal effort in the initial development, you can write
code that is easy for you and others to understand. One or two extra minutes spent putting
comments into your code may save hours of frustration later.
http://www.ibm.com/developerworks/linux/library/l-clear-code/
The research article explores how developers and programmers understand
and use UML models for developing software.
It looks a variety of aspects, including benefits, easy of use, and the
overall UML environment.
http://www.acmqueue.com/modules.php?name=Content&pa=showpage&pid=468
When a software development project starts to go off the rails, the
project manager needs to take decisive action to assess the situation and
determine what approach to take. This
author refers to this as "catastrophe disentanglement" and presents
the basic ideas behind this approach.
http://www.informit.com/articles/article.asp?p=461427
Coherent and prolific testing blogger Adam Goucher is interviewed on his perspectives about software testing. He offers some excellent advice about how to be more effective tester and on keeping your skills sharp.
http://www.ddj.com/blog/debugblog/archives/2007/11/five_questions_38.html
Testing services-oriented architectures requires some different approaches (sometimes compared to changing the tires on a moving car) compared to standard application testing. One of the key factors to consider is that you are testing an architecture rather than an application, which increases the complexity.
http://weblog.infoworld.com/realworldsoa/archives/2007/11/dimensions_of_s.html
Ruminations on the seemingly illogical (at least on the surface) rhetorical question: Why do we write software to test software? This is an interesting perspective on test automation and some of its pitfalls.
http://www.sdtimes.com/article/TQA-20071201-01.html
There is a lot of talk about test driven development in methodology circles, but does writing tests first really result in better quality? This article looks at the results from some real projects.
http://www.ddj.com/development-tools/204300064
This article discusses five common problems in test organizations and processes that limit their effectiveness and how to avoid them.
http://www.top-itarticles.com/softtest/softtest03.asp
Getting started with Web
2.0 development does mean you have to master AJAX right off
the bat. This article gives you a gentle
start by developing some simple (or even complex) Javascript bookmarklets.
http://www.ibm.com/developerworks/library/wa-realweb3/
Most people have a reasonably intuitive idea of how data travels through
the Internet via TCP/IP. This article
uses a detailed example to show the transmission of data via TCP, the
transport protocol of the TCP/IP suite.
http://www.newartisans.com/blog_files/life.and.times.tcp.packet.php
Computers don't do a very good job of sorting things that contain both
alphabetic characters and numbers into their natural sort order. This algorithm takes the approach of
splitting these items into their alphabetic and numerical components and
sorting them separately. Includes
example implementations in Java, C++, Perl, and Python (or see this other Python
implementation).
http://www.davekoelle.com/alphanum.html
In many development circles, REST
(REpresentational State Transfer) is considered
"old school". But it is still
good for solving a great number of problems with interactive web
applications. This tutorial gives you
the basics by using some great analogies.
http://www.infoq.com/articles/rest-introduction
Ever wanted to learn Smalltalk? Well, this site is an excellent tutorial
using the Squeak variant of language. It provides step-by-step examples and fully
touts the object-oriented features of the language.
http://www.squeakbyexample.org/
Use case diagrams are very useful for outlining the main features and
functions of a system and the actors and interactions. This detailed tutorial shows how to use them
effectively and how to organize them.
http://www.andrew.cmu.edu/course/90-754/umlucdfaq.html
This excellent mashup tool allows you to use Greasemonkey
and Google Gears to make almost any web
site available offline by doing a few simple Javascript
tweaks. The detailed tutorial uses Wikipedia as an
example, with plenty of commentary about how to adapt it for other web sites.
http://code.google.com/support/bin/answer.py?answer=81101&topic=11982
Is there a child that you know that you'd like to introduce to
programming? Little Wizard is a
development environment intended to teach programming concepts to
elementary-school-aged kids. Using only
the mouse, children can explore programming concepts such as variables,
expressions, loops, conditions, and logical blocks. Every element of the
language is represented by an intuitive icon, making it easy to learn.
http://littlewizard.sourceforge.net/
Using meaningful and standard names is critical for good database
design. This site provides some simple
and effective naming standards and style guidelines. And if you don't like his, he offers links to
other standards.
http://justinsomnia.org/writings/naming_conventions.html
This online introduction to cryptography principles includes videos of
entire semester courses lectures and homework assignments, including
solutions. This is the perfect way to
get started with understanding this topic.
http://www.cs.washington.edu/education/courses/csep590/06wi/
No one that I know really likes meetings, but they are often unavoidable. Here's how both organizers and participants can make meetings, when necessary, more valuable.
http://blogs.techrepublic.com.com/10things/?p=263
One of the most common reasons that great workers start to fade is that management overburdens them with work, especially picking up slack from underperformers. This article includes tips for getting the top performer back on track.
http://blogs.techrepublic.com.com/tech-manager/?p=377
Everyone wants to be productive, but you don't want to carry it to the other extreme of leaving health and relationships in the dust. Likewise, everyone goes through productivity dry spells where procrastination seems to be the order of the day. Here are some practical ideas for getting back into the groove in a positive way.
Stephen Covey outlines his four key traits that differentiate successful leaders from others.
http://www.stephencovey.com/blog/?p=6
This interesting article, which focuses on software development, defines two types of categories: perfection-oriented, who are always looking for better ways of doing things, and performance-oriented, who emphasize getting something done immediately. A good perspective on the factors that contribute to successful projects.
http://dept-info.labri.fr/~strandh/Essays/psychology.html
The 80/20 rule (also known, especially in quality circles, as the Pareto Principle) is tossed around frequently in business circles, but many people don't use it appropriately. Here are some bad uses of it along with tips for applying it correctly.
http://www.lifehack.org/articles/productivity/the-top-4-misapplications-of-the-8020-rule.html
Thinking about taking a new job? Before you make the leap, you might want to check JobVent to see what current and former employees say about working there. Obviously, a site like this probably has a bias toward the negative, but it still might give you a good idea about what your future co-workers think.
E-mail is the lifeblood of the modern world. But many times e-mail is misused and even abused. Here are some tips for writing an e-mail that is useful and effective.
Offshore outsourcing is here to stay. Here are some of the lessons that have been learned in the first decade and adjustments to expect to manage risk.
http://informationweek.com/news/showArticle.jhtml?articleID=202801448
Manager's often make a false assumption that if the company is gaining good employees, then things are OK. However, research shows that almost 80% of people leave a company for reasons related to the boss.
http://blogs.techrepublic.com.com/tech-manager/?p=381
Technology giants Cisco and Intel are experimenting with unassigned, open seating arrangements where people are free to (and encouraged to) work collaboratively. Initial results are promising.
http://origin.mercurynews.com/ci_7622029?nclick_check=1
This management consultant suggests that managers should spend less time talking and more time listening to their employees. He points out that companies hire employees for their skills and experience, but if they don't listen, they aren't taking full advantage.
http://blogs.techrepublic.com.com/tech-manager/?p=334
Want to reduce stress and be more effective on the job? Here are some practical tips for improving the way that you work with others.
http://www.insidecrm.com/features/Manager-Common-Sense-Rules-082207/
Trinkets are not what IT workers are looking for. Instead of companies spending money on such things, workers simply want management to listen to the workers and to show genuine leadership.
http://www.eweek.com/article2/0,1759,2224485,00.asp
Here are some tips to help you weather the storm of a layoff and get a new job.
http://www.careers.eweek.com/article/The+Layoff+Lifeboat+How+to+Get+Back+to+Work/218038_1.aspx
No one likes to consider the prospect of losing their job, but it never hurts to be prepared. Check out these tips before such an event happens.
http://blogs.techrepublic.com.com/10things/?p=258
Traditional telecom operators must adapt to the all-IP world with its necessity for responsiveness and adaptability to market demands or face irrelevance. This article looks at what it will take.
http://www.internetevolution.com/document.asp?doc_id=141255
One of the researchers who predicted that the over exuberant build-out of bandwidth in the late 1990s would result in a bursting bubble (which it did!) refutes the recent report that the Internet may run out of bandwidth by 2010. And some other voices of skepticism about whether increased bandwidth use will cripple the Internet here and here.
http://bits.blogs.nytimes.com/2007/11/30/is-the-exaflood-coming/
XO, AT&T, and Verizon have all announced that their networks will need to be augmented to support additional capacity due to the anticipated increase in bandwidth demands.
http://www.lightreading.com/document.asp?doc_id=140477
A new 2.5 Gbps flexible plastic optical fiber from a Korean company and new glass optical fiber from Corning that can repeatedly bend without signal degradation are raising hopes that cheaper last-mile fiber to the home (FTTH) alternatives are just around the corner.
http://money.cnn.com/magazines/fortune/fortune_archive/2007/08/06/100141306/index.htm
IronPython Studio is a complete and free stand-alone (not dependent on the full Visual Studio suite) IDE for Python development. It only requires the Visual Studio Shell toolkit (about 385 MB) to allow you to develop and debug Python applications on the Windows platform. Features include editor, new application templates, GUI creation tools, and an integrated debugger.
http://www.codeplex.com/IronPythonStudio
Every year, I look around the Internet for a good, simple printable yearly calendar to carry around with me. And without fail for the past few years, I keep coming back to David Seah's Compact Calendar. Available in PDF and Excel format, you can customize it to your own preferences. It serves as an excellent at-a-glance ad hoc planning and scheduling tool, as well. And if you want a simple calendar to paste on the top or edge of your monitor, this one fits the bill nicely. Or this one if you need one to put in your wallet.
http://davidseah.com/blog/compact-calendar/
If you like the rich toolset of GoToMeeting, but don't much care for the $49/month fee, then ConferencingNow is for you. It mirrors almost all of the features that you've grown to love and does it all for free. You can share your desktop, change the "presenter" of the session, and much, much more.
http://www.conferencingnow.com/
CookiePie is a Firefox browser extension that allows you to specify different browser cookie profiles in different tabs or windows. This permits you to login into web-based systems with different accounts/profiles, like Yahoo mail, Meebo, or others. Likewise, web developers can use it to test applications with different configurations.
http://www.nektra.com/oss/firefox/extensions/cookiepie/
CFDButton enhances the Windows common file dialogs (CFDs), such as the Open and Save windows, to include custom file filters and "favorite" folders so you can quickly switch to your most commonly used directories.
http://dreamcycle.net/cfdbutton/
FileMenu Tools allows you to customize the Windows Explorer context (right-click) menu. You can add your own actions or customize applications to act on files. But the greatest features are the built-in functions, such as synchronize folders, customized wildcard-based delete, find and replace text in files based on regular expressions, and many more.
http://lopesoft.com/en/fmtools/info.html
XML Pad is a comprehensive, IDE-style XML editor. It includes almost any feature you could need for editing XML files, including regex support, conversion between XSD and DTD (both directions), color syntax highlighting, XML schema editor, tree view of schema structure, integration with CVS, and much more.
http://www.wmhelp.com/xmlpad3.htm
Supercopier is an enhancement/replacement for the standard Windows copy/move functionality. It allows you to monitor and control the copy speed, edit the this list of files (or order of files) while copying, resume a failed copy operation, and much more.
ADrive is a free, online file storage/hosting tool that provides up to 50GB of storage, which is much more than other services. It is completely web-based (no downloads required), so you can access your files from any computer with an Internet connection.
If you like to use keyboard shortcuts, like <Alt>+<Tab>, but get frustrated when you try to use them on the remote system when using Remote Desktop Connection, here are some keyboard shortcuts that you can use:
Normal Shortcut |
Remote Desktop Equivalent |
Description |
<Alt>+<Tab> |
<Alt>+<Insert> |
Cycles through running programs in most recently used order |
<Alt>+<Space> |
<Alt>+<Delete> |
Displays the active window’s Control menu |
|
<Alt>+<Page Down> |
Cycles through running programs from right to left |
<Ctrl>+<Alt>+< |
<Ctrl>+<Alt>+<End> |
Opens the Windows Security dialog box |
N/A |
<Ctrl>+<Alt>+<Break> |
Toggles the remote computer display between a window and a full screen |
N/A |
<Ctrl>+<Alt>+<-> (Minus sign) |
Places a screenshot of the screen in the remote computer’s Clipboard |
N/A |
<Ctrl>+<Alt>+<+> (Plus sign) |
Places a screenshot of a window in the remote computer’s Clipboard |
If you've upgraded to Internet Explorer (IE) 7, you probably noticed that the default position for the menu bar is between the address bar and the command buttons. I find this very annoying and non-intuitive. Fortunately, you can tweak the registry to put the menu bar in the standard position at the top of window (immediately below the title bar). Open the Registry Editor (Start | Run | regedit) and navigate to the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Toolbar key. Create a new key here named WebBrowser (no spaces). In the new WebBrowser key, add a DWORD value named ITBar7Position and set its value to 1. Close the Registry Editor and restart IE for the change to take effect.
In the spirit of Christmas, check out this ultracool nanotech advent calendar that measures just 8.4µm by 12.4µm. That's so small that it would take 5 million of these to cover a typical postage stamp.
http://www.rsc.org/chemistryworld/News/2007/December/14120701.asp
Ah, yes! With the end of the year comes the annual "top 10" and "best of…" lists. If you haven't yet had your fill of these retrospectives, head over to this site for a list of dozens of lists arranged by category.
http://www.fimoculous.com/year-review-2007.cfm
Human Brain Cloud is a free, online massively multiplayer word association game. The site displays a word or phrase and you enter the first thing that comes to mind. The site shows you how many times your entry matches others. The ultimate goal of the site is to build a lexicon of sorts.
http://www.humanbraincloud.com/
Mark Twain is quoted as saying, "Everybody talks about the weather, but nobody ever does anything about it." You can't actually change the weather with site, but at least you can have fun making your own predictions about tomorrow's weather. The site provides forecasts based on consensus of multiple forecast sources and user forecasts.
Think that you know geography pretty well? Here's where you can find out. This interactive online game asks you questions where the answers are places around the world. Click as close to the answer location as possible. It's both challenging and fun.
http://www.travelpod.com/traveler-iq
Danteworlds is an interactive, multimedia journey through the three realms of the afterlife presented in Dante Aligheri's Divine Comedy. The site features artist's renderings from throughout history, commentaries, and audio recordings.
http://danteworlds.laits.utexas.edu/
Think you've got what it takes to run your own Web 2.0 startup? Play this interactive reality-based game to find out.
http://www.onemorelevel.com/games.php?game=566
This site provides an excellent collection of poems from a variety of poets for the poetry novice. Browse by poet and learn the backgrounds of each of the poets. Two roads diverged in a yellow wood…
http://www.famouspoetsandpoems.com/