April 2007 Newsletter
Knowledge signifies things known. Where there are no things known, there is no knowledge. Where there are no things to be known, there can be no knowledge. –Frances Wright
Think not those faithful who praise all thy words and actions; but those who kindly reprove thy faults. –Socrates
A person is not old until regrets take the place of dreams. – John Barrymore
Whenever you're in conflict with someone, there is one factor that can make the difference between damaging your relationship and deepening it. That factor is attitude. –Timothy Bentley
If you don't like something, change it. If you can't change it, change your attitude. Don't complain! –Maya Angelou
Outstanding people have one thing in common: an absolute sense of mission. –Zig Ziglar
We don't see things as they are, we see them as we are. –Anais Nin
The grass is not always greener on the other side of the fence. Fences have nothing to do with it. The grass is greenest where it is watered. When crossing over fences, carry water with you and tend the grass wherever you may be. –Robert Fulghum
One of the indictments of civilizations is that happiness and intelligence are so rarely found in the same person. –William Feather
Not every IT project that provides real benefits to business customers has to take millions of dollars and months or years to complete. Here's a list of ideas from across the IT spectrum that can be done on a shoestring budget and a short duration.
More than 1/4 of respondents to a recent survey indicated that poor communication is the primary cause of project failure. The next most significant causes were insufficient resource planning and unrealistic schedules.
Most organizations already have an established development process and methodology. But if you are in a position to choose or adapt your methodology, this article gives some good metaphors for some of the popular methodologies.
This interview with one of the authors of some papers (here and here) from a groundbreaking study on how (or even if) IT actually increases worker productivity focuses on some interesting conclusions: IT didn't necessarily improve the speed of projects, but it improved productivity from multitasking and IT-supported social networks predicted productivity better than experience.
Many IT workers are concluding that their work is no longer the job that they thought it would be. So what can companies and managers do about it? This article suggests these steps: computer science and MIS programs at colleges and universities need to return to generalist programs, face the reality that IT is a commodity, and get IT workers doing more than reactive work.
A new study says that information and communications technologies are responsible for a significant portion of recent economic growth. The report examines the impact of IT in five key areas: 1) productivity; 2) employment; 3) more efficient markets; 4) higher quality goods and services; and 5) innovation and new products and services. See the original, 69-page report here.
This excellent site provides periodic (typically, once every 1 - 2 weeks) podcasts (in MP3 format) on topics of interest to developers and others in IT community. Recent interviews have included Grady Booch and Guy Steele and they frequently have topical "roundtable" discussions as well.
Proper database design is key to a good application, particularly as it relates to performance and maintainability. This article discusses common errors and how to avoid them. Many of the principles apply not only to design of databases, but application development in general.
This post presents a good explanation of complexity of software engineering compared to other types of engineering in the physical realm. For a related article on the commonalities between software development and manufacturing, see Alistair Cockburn's good article.
This site has a wide variety of free introductory tutorials on software testing and software QA topics. It even includes some podcast (MP3) FAQs on Mercury WinRunner and Quick Test Pro. While the tutorials are not in-depth, they are useful for getting an overview of the various areas.
This post contains some good observations and feedback about the current of software quality (or lack thereof).
Interesting commentary that promotes the idea that as virtualization becomes more commonplace, testing environments, and ultimately actual production implementations, should be packaged as composite images to make dependency and environment conflicts a thing of the past.
If you are just getting started with UML (or even if you have some experience with it!), you'll find this quick reference to the UML syntax and language constructions extremely helpful. Print it out and post on your wall next to you computer!
UML can be daunting to learn, even to those with a strong development background. This simple introductory tutorial teaches the basics of the important UML diagrams, including use cases, class diagrams, sequence diagrams, and more, using a very understandable example and following it through the various steps.
While most readers of this newsletter would not be considered beginners, you may know someone who is. This site provides a set of tiered tutorials on programming and web development, based on the participant's skills. The lessons revolve around Microsoft's Visual Studio Express free development tools. (Note: I'm not trying to endorse Microsoft's tools or methodology, but just providing this as an option.)
When you are just starting out with Linux or Unix, learning the command shell can be daunting. This friendly FAQ on the bash shell is helpful to those new to the environment and even old timers.
What happens when the world runs out of IP addresses? This may not be the question at the top of your list of concerns, but at the current rate of depletion all of the current IPv4 addresses will be allocated by 2014. But, fear not! IPv6, with an address space of over 340 x 1036 available addresses! Here's how it works.
This reading list from a computer science course presents some of the seminal works in the development of computer science. These should be required reading for anyone who wants to understand the history of programming.
This overview tutorial introduces the concepts behind object-oriented in a relatively non-technical and language-agnostic way. It clearly explains the basic topics of abstraction, encapsulation, inheritance, polymorphism and more.
New research shows that people have more difficulty coming up with alternatives when working in groups, such as meetings. The indications are that "group think" tends to suppress creativity.
Even if we reduce the number of meetings that are part of the everyday business world, one of the remaining annoyances is that they frequently start late. This article gives some guidance for things that project managers can do to make sure that the meeting starts on time.
This editorial recommends that business executives take responsibility for improving morale of current staff and ensuring that more people enter the technology workforce in the future.
This nice list provides excellent tips on preparing for and doing well in your next job interview. It provides excellent links to more resources for each of the tips.
This article discusses the differences between how leaders motivate and how managers don't. It focuses on the fact that leaders are engaged and demonstrate they care and value employees. For more information, see the original article.
Two programmers offer a point-counterpoint style review of whether or not software development is still a viable career. Both of the articles are thoughtful and well constructed and should give you some fodder for your own consideration.
Technology jobs captured two of the positions in this list. One of the key factors for the technology positions, network systems analyst and data analyst, is the importance of business knowledge in addition to technical skills.
By 2010, more software development
jobs will be created in Asia than in
A technical look at scheduling in view of the situation that job effort and productivity increases as the deadline for a project approaches.
This developer gives his list of attributes that he thinks separate great programmers from the rest of the pack. You may not agree, but it gives you some good food for thought about the skills that you think are important.
In technology work, technical skills are frequently valued over most any other traits. However, in most jobs, interaction and working in teams is paramount to success. This article looks at emotional intelligence and competence and how to hone your skills in these areas for success at work and other aspects of life.
Technology workers are a different breed. And sometimes organizations need to adapt to those needs to get the most productivity. This article discusses the authors suggestions in this realm.
Telecom providers are concerned that increase in video and other multimedia content are starting to overwhelm the capacity of the Internet. However, skeptics are concerned that this is simply posturing around the "net neutrality" debate. Either way, it is interesting that the mainstream media is picking up on this story.
The new service is intended to allow businesses to interconnect LANs that are dispersed across multiple locations without additional hardware infrastructure costs.
Microsoft, Google, Dell, H-P, Intel, and Philips have asked the FCC for permission to allow idle TV broadcast spectrum to be used to transmit Internet data. The FCC is considering the proposal, but has concerns about interference with standard TV broadcasts.
With the exuberant pace of mergers and acquisitions in the wholesale carrier market in 2006, providers are looking for some stability in 2007.
gSyncit is an MS Outlook utility that allows you to synchronize (both directions) between your Gmail (Google Mail) calendar and Outlook. This is extremely helpful when working with people outside your organization, who do not have access to your Outlook calendar. It supports manual or automatic updates of your calendar, so you can simply set it and forget it.
TinyUML is a lightweight Java-based tool for creating UML diagrams. TinyUML supports most of the basic elements of the UML 2.0 standard. Diagrams can be exported to either PNG or SVG graphic formats.
Lightning is a very effective and easy to use document management tool. It includes multiple modules: Navigator, a notebook-style document organizer, Viewer, which supports display of MS Word, WordPerfect, and PDF documents, Notes, a simple word processor, and Connector, which allows you to access free online storage, calendars, and e-mail.
Explorer Breadcrumbs adds a tool bar to Windows Explorer that allows you to quickly navigate through the folder/directory structure without clicking through each folder.
Window Clippings is a new screen capture utility with some special features, including ability to capture not only the foreground window, but also that window's parent window (without capturing other windows), and showing transparency features for layered windows.
This is a nice system performance monitor that allows you to display the monitors as small floating, transparent, dockable windows or as separate icons in the system tray for each monitor. The monitors included are for CPU usages, disk usage, network traffic, and memory load.
FreeMind is a free, cross-platform mind mapping utility. It allows you to create diagrams around your central theme. It allows refactoring and easy adjustment and reorganization of your diagrams. Diagrams can be exported to SVG image format and other formats, including source code.
HexIt is a DOS and Windows hex editor with some nice features, including text view mode (display file as it would appear in text editor), a realtime disassembler, calculator, split screen display, and recording and playback of macros.
This free plug-in for Microsoft Word 2003 allows Word users to read, edit, and save documents in OpenDocument Format (.odt). Likewise, users can convert Word documents (.doc) to ODF. A later release will add support for spreadsheets, as well.
Windows has a little-known command line utility called systeminfo for reporting on the system configuration. To use it, simply open a command prompt (Start | Run à cmd) and enter systeminfo. To send the output to a file enter systeminfo > sysinfo.txt. It gives a report of basic system configuration information, including system uptime, total and available physical and virtual memory, product ID (license key), and more.
When working in most any application, keyboard shortcuts can be real timesavers. Here are a few esoteric gems from the Excel black belt users.
· <Ctrl>+<Space> – Select current column
· <Shift>+<Space> – Select current row
· <Ctrl>+<Page Up> or <Ctrl>+<Page Down> – Cycle up or down through the worksheets (tabs) in the workbook
· <Ctrl>+<Home> – Move cursor to A1 cell of worksheet
· <Ctrl>+<Arrow Key> – Move to the corresponding "edge" of the populated region of the worksheet. If you also hold down <Shift> it will select the specified cells in the region.
Here's a humorous look at how air travel would look based on the paradigms of various operating systems.
Want to know how to count from 1 to 10 in Swahili? Or maybe in Tagalog? This site will show you for these and over 5000 other languages.
Having trouble finding a place to carry your cell phone, PDA, and all of the other gadgets in modern life? Well, here's your solution: Great Pockets. These are trousers with oversize pockets for all of your gizmos!
The latest craze on the Internet are these Web 2.0 real-time quizzes about geography where you have to name all of the states or countries. This site has links to many of these quizzes. How much do you know about geography?
This cute online clock uses the standard UPC bar code style to show the time. It updates automatically and changes the bar code representation to match the time digits.
This site calls itself "the museum of mid-century illustration". That's the middle of the 20th century, mind you! It features unique industrial and commercial artwork from the 1950s and 1960s, providing a unique history of that era.