October 2007 Newsletter
A proud man is seldom a grateful man, for he never thinks he gets as much as he deserves. –Henry Ward Beecher
Design is not just what it looks like and feels like. Design is how it works. –Steve Jobs
Prosperity depends more on wanting what you have than having what you want. –Geoffrey F. Abert
To see ourselves as others see us is a most salutary gift. Hardly less important is the capacity to see others as they see themselves. –Aldous Huxley
The key is not to be thankful in some things, but rather, to be thankful in all things. Receiving all things with thankfulness means you do not set conditions on experiences in order to be thankful. –T.T. Braun
Change is the law of life. And those who look only to the past or present are certain to miss the future. –John F. Kennedy
If you do not change direction, you may end up where you are heading. –Lao-Tzu
To use bitter words, when kind words are at hand is like picking unripe fruit when the ripe fruit is there. –Thiruvalluvar
Contentment is a pearl of great price, and whoever procures it at the expense of ten thousand desires makes a wise and a happy purchase. –John Balguy
Almost 17 years ago, in an article entitled “Planning the Software Industrial Revolution”, Brad Cox proposed the concept of assembly line style software development. This article explores what has happened since then in this realm.
Paul Graham says that one trait of skilled programmers is the ability to visualize their work in their head and work on it and refactor it in such a way, much the way that mathematicians do. Furthermore, he outlines some additional techniques to help with development problem solving.
Sometimes a low-tech solution works best. This article discusses using wall-charts, often known by their loosely translated Japanese name of kanban, to organize projects and to track and report status on agile development projects.
Outspoken software development pundit Joel Spolsky discusses what it takes to build and maintain a great software development organization.
One developer's manifesto on how traditional IT organizations need to regroup and adapt to the increasing technical sophistication of users and the introduction of "personal technology" to the workplace.
Steve McConnell uses the process of building a playhouse for his kids to show how estimating effort on software development projects is even more complex. He emphasizes the geometric effect of unexpected problems on the schedule.
Many users at a recent conference said that their corporate IT shops were the major barrier to introduction of so-called Web 2.0 technologies, like blogs, wikis, and social networking. And many of them reported to "black ops" end-arounds on IT to introduce the technologies.
This monthly index reports the popularity of various programming languages based on "buzz" on the Internet.
Agile development techniques are touted as a great tool to improve development efficiency. An expert agile coach talks about some pitfalls that can lead to failure in implementing agile. Interestingly, most of this pitfalls are applicable to most any methodology!
A developer with more than 25 years of experience explains the principles of good development. The cornerstones are writing clean, understandable code and keeping it simple.
The author says that relational databases are not dead (or even dying), but makes some excellent points about some of the shortcomings of them with the new development and application paradigms. None other than Michael Stonebraker, however, counters that RDBMS are on their way out.
The author of a new book about how IT can better explain what it does to business users talks about how to improve the business-IT relationship.
Business users are increasingly wanting to merge their personal technology, such as using personal laptops, with the business use and this is something that IT will need to adapt to or risk the business instituting "black ops" solutions. Sun CEO Jonathan Schwartz agrees that consumer technology is driving innovation more than IT.
This author makes the interesting comparison between project schedule estimation and planning and building a relationship. He emphasizes that project planning needs to take into account unknowns and the unexpected.
The lesson from competitive companies is that IT and business must partner in a way that allows IT to anticipate needs and contribute to innovation. IT must become a center of innovation instead of simply doing the bidding of the business.
This article explores the business case for using software testing with a cross-section of industry experts.
Application performance and responsiveness under load is one of the key metrics in evaluating online web-based applications. This comprehensive guide covers all of the angles of performance testing, including philosophy, how/when to use performance testing, etc.
Business of software pundit Eric Sink answers questions about his philosophy about hardware testing. Interestingly, for a developer he distinctly recognizes the difficulty of testing.
TestLink is a Web-based test case management tool. It allows you to document your test cases, trace them to requirements, group tests into suites, and execute test cases and store test results. Likewise, it has very good reporting capabilities. TestLink is free (GPL) and is built on common other open-source applications, such as MySQL and PHP, and can run on both Windows and Linux servers. Visit the demo site to get a better idea of capabilities.
Functional test automation is often seen as the "holy grail" of software testing. But it is difficult to achieve in a streamlined, cost-effective manner. This article looks at how to develop and use a test automation framework using data-driven approach.
This book excerpt examines the more formal aspects of validating and testing software. Even though it is technical in nature, it uses actual examples for motivation and illustration.
This book excerpt discusses the basics of using CSS for structuring and formatting web pages. It discusses styles for specific page as well as external style sheets for applying a standard design to an entire site.
This introductory level tutorial will help you get familiar with developing JSP (Java Server Pages) applications. It takes a step-by-step approach and builds a complete example application along the way.
This article examines the algorithms behind the standard JPEG image compression technique. It discusses the lossy nature and how image quality is preserved.
Search engines are a key element of any sort of modern research endeavor. To get the results that you want, it's good to understand just how they work. This article explains the basic concepts behind search engines.
Multithreaded programming is increasing in importance with the widespread adoption of multi-core CPUs. This article looks at how to adapt, in a step-by-step manner, a simple Java GUI application to use multithreaded functionality.
This brief, hands-on oriented, step-by-step tutorial helps you get started in building an application using the Eclipse Rich Client Platform (RCP). It gives detailed instructions with complete screen shots on how to construct your application from start to finish.
Here is a handy single sheet reference to the main components of UML, including class diagrams, sequence diagrams and more.
Examining the Linux networking stack is a good introduction to the general concepts that underpin most any networked operating system or application. This introductory article the hierarchy and the basic structure of the networking code in Linux.
This is a frequently updated wiki dedicated to the understanding and advancement of the REST (representational state transfer) architectural pattern for web development.
50 years ago, Sputnik (not to be confused with Sigue Sigue Sputnik! <g>) literally launched the space age. But it was probably also the must significant catalyst for huge advances in computing and networking technology, too.
This is a nice, brief collection of practical tips on improving your attitude and happiness at work.
Productivity expert Merlin Mann provides some excellent articles on how to get you e-mail inbox empty and keep it that way. He discusses how to "handle" each message only once and other tips. Also, see his video presentation and associated slides on this topic.
In the spirit of anti-patterns, here are some great tips about how not to work. These habits will consistently hold you back and decrease your productivity.
Ever feel like you are at the end of your rope at your job? Read these inspiring stories of famous folks who failed, but didn't give up and went on to do amazing things.
Here's an excellent idea for chronic procrastinators (like me!): You work for a dedicated 10 minutes, then give yourself a 2-minute break (surf the Internet, chat with co-workers, whatever!) and repeat 5 times. This gives you 50 minutes of productive work per hour. There's even a handy freeware application called Instant Boss that will help you maintain the schedule pattern.
At one time or another, everyone encounters someone who is difficult to get along with at work. This interview discusses some strategies for resolving the conflict or at least surviving.
This article presents a wide variety of techniques for solving problems and spurring creativity on teams. Many of the techniques I haven't heard of before, but they look interesting.
Gone are the days of just a few, general job search sites. Job search sites are now very niche-oriented. This comprehensive directory of online job tools will help you find those that fit your needs.
Frequently, technical workers come to a crossroads in their career where they must decide to take the managerial route or continue on the technical side. Here are some criteria to consider when trying to make this decision.
Even though most IT workers enjoy the actual work they do, they are re-considering whether corporate IT is really all it's cracked up to be. Furthermore, many are recommending that their tech-savvy kids look at other career options.
Here are a brief collection of tips to help ensure your resume gets the good kind of attention that it deserves instead of ending up in the trash can.
What's the difference between a "satisfied" worker and an "engaged" one? Consultancy Globoforce says that it can make a huge difference in the success of an organization when workers are engaged instead of simply satisfied.
Everyone goes through periods when they just don't feel like doing things. Here are some ideas for breaking out of the funk and getting back to being productive.
Contrary to the title of this article, it's mostly about three major roadblocks to a successful meeting.
Currently, only 17% of rural
Researchers have developed algorithms that control and balance bandwidth availability in the network core itself. It enables distributed rate limiters to work together to enforce global bandwidth rate limits, and dynamically shift bandwidth allocations across multiple sites or networks, according to current network demand.
New research from Harvard lays the groundwork for using Internet bandwidth as "currency" in a new peer-to-peer video sharing application. The model emphasizes fair sharing of bandwidth resources by all parties involved in the network.
Savvion says that business process management (BPM) will become more important to telecom providers. They identify 5 key business processes where BPM can help.
Partimage is a free, open source disk partition imaging/copying utility, similar to Norton Ghost. It can save and restore images from a variety of Linux and Windows file system formats. When used as part of the SysRescueCD suite, it can be run from a live CD. It includes support for compressing image files using GZip and BZip2 to conserve space and can automatically split image files for storage on removable media. It can even save to or restore from an image file over the network.
Authentic is a free, comprehensive XML editing and authoring tool aimed at end users. It allows direct editing of a variety of XML formats and supports application of XSL transformations, direct editing of XML databases, and much more.
BitNami Stacks are packaged installation tools for web platforms, some of which include other applications, including Wordpress, Joomla, Mediawiki, and more. The cross-platform installers give you a completely turnkey solution for setting up Apache web server, MySQL database, and PHP, including all dependencies. These stacks make getting a web environment set up on your system a snap.
Pin 'Em Up a simple, free, Java-based desktop sticky note application. It is completely cross-platform and works well on both Linux and Windows, including tray integration. The application is very small and uses very little resources. Other features include user-definable note categories (e.g., "home", "office", etc.), ability to "pin" notes on top, hiding and show all notes, including by category, and more.
Java Class File Editor (JCFE) is a GUI-based (Java Swing) tool for browsing and modifying the internal structure of Java class (binary) files. You can save the updated class file after making changes and a built-in verifier utility can check the changes before committing them. In addition, it can generate a human-readable report on the class file. An excellent utility for making tweaks to applications when source code is not available.
Deligoo is a Firefox add-on that allows you to search within the sites that you have bookmarked on del.icio.us. So, if you know you've bookmarked something, but just can't remember which one it is, let Deligoo find it for you.
ShellSend is a command line utility that allows you to send e-mail, including attachments, from the command prompt and batch files. Just specify the "to" and "from" addresses and the SMTP server and it will send your mail. Great tool for e-mailing log files or output of command line utilities.
Hypercube is a utility that allows you to take widgets from web sites and put them on your desktop as standalone utilities. A wide variety of widgets are supported and Hypercube automatically provides access to widget libraries from over 150 providers. Or check out this great list of widgets for more options.
Vista Start Menu is a free replacement for the standard Windows Start Menu that removes some of the annoyances and adds some cool new features. You can resize the menu to accommodate all of your folders/programs, define tabs, shortcuts stay put when you move the, and even specify "power buttons" for shutting down or rebooting, and much more.
Ever have one of those moments where seconds after you hit "Send", you wished that you could have the message back? Here's a simple way using MS Outlook Rules to avoid that. Basically, you just set up Outlook to delay (defer) delivery of the message for certain amount of time after pressing "Send". The message just stays in the Outbox until the deferral period passes, so you can remove it or delete it until that time. Here's how to do it (in MS Outlook 2003):
(1) Select Tools | Rules and Alerts… from the main menu. In the Rules and Alerts window, press New Rule…
(2) In the Rules Wizard window, select Start from blank rule and then choose Check messages after sending. Press Next.
(3) In the next Rules Wizard window, leave all of the conditions unselected (unless you only want to apply this rule in some cases). Press Next. You will be prompted with the message "This rule will be applied to every message you send. Is this correct?" Press Yes.
(4) Enable (check) the defer delivery by a number of minutes action. Click on a number of in the Step 2 box and specify the desired "wait" time. 5 or 10 minutes is probably a good choice. Press Next.
(5) Choose any exceptions that you want, such as for high priority messages, etc. Press Next.
(6) Give your new rule a name, like "Don't Send Stupid E-mails" and press Finish.
Tip in a tip: You can use an adaptation of this technique to do other things such as set "Read Receipts" only for those folks that you have a hard time getting responses from.
OK… So dabbling in physics is probably not most people's idea of fun, but this site gives a great introduction to those topics that Einstein is famous for. I consider understanding these things key to being a well-rounded individual. :)
Still typing using the hunt-and-peck method? While intended for school-age kids, this excellent online typing tutorial makes learning to touch type fun and easy.
The fishing lure as art form? Who would have thunk it? Check out these interesting and creative designs!
Create wall posters from any image. Upload your image and select the number of blocks (8-1/2" x 11" sheets) that you want and the free service will provide you with a PDF file for the large-format poster. Check out the gallery for some cool examples.
Some of you were probably first introduced to computer games with the 1980's classic The Oregon Trail. This ad site provides a modern re-creation of it as a Flash-based game. The game is pretty cool and educational (even if they are trying to sell you something).
This interesting site examines words, phrases, and idioms both historical and current. The author provides punchy commentary in the usually cheeky, dry British way.
A cute, tongue-in-cheek look at the major milestones in the history of the Internet.