July 2009 Newsletter
Truth is tough. It will not break, like a bubble, at a touch; nay, you may kick it about all day like a football, and it will be round and full at evening. –Oliver Wendell Holmes
We have more ability than will power, and it is often an excuse to ourselves that we imagine that things are impossible. –François de la Rochefoucauld
Life is a grindstone. Whether it grinds you down or polishes you up depends on what you're made of. –Jacob M. Braude
It is a trick among the dishonest to offer sacrifices that are not needed, or not possible, to avoid making those that are required. –Ivan Goncharov
Don't judge each day by the harvest you reap, but by the seeds that you plant. –Robert Louis Stevenson
The only correct actions are those that demand no explanation and no apology. –Red Auerbach
This excellent essay, excerpted from Robert Glass' book Software Conflict 2.0,
explores the question “What is software design?” He emphasizes that design is not about
external representations or methodologies, but it is a creative activity that
takes place in the mind. And one of the
most interesting things about this essay is that it was written almost 20 years
ago. I guess it’s true what they
say: The more things change, the more
they stay the same.
http://www.developerdotstar.com/mag/articles/glass_cognitive_view.html
In this classic article from Watts Humphrey, he
discusses the underlying causes of delays in software development (and
inaccurate estimation, as a consequence).
He says that the main cause is all of the miscellaneous work that programmers do in addition to the actual development. And his remedy for the problem is
profound: Developers should keep track
of time in detail to see where all of their time goes.
http://www.sei.cmu.edu/news-at-sei/columns/watts_new/1998/June/watts-jun98.htm
Most of the time programming languages are “graded” on performance
benchmarks, but these are often flawed and certainly don’t tell the entire
story. This author took on the challenge
of comparing languages based on speed, size, and dependability.
http://gmarceau.qc.ca/blog/2009/05/speed-size-and-dependability-of.html
While the intended audience for this article is web designers, it
contains some great general principles for estimation of most any sort of
development or programming project. The
article discusses developing a standard framework of tasks that always apply
and then using it to make specific estimates based on the requirements of a
particular project.
The architectural paradigms of web-based systems
continues to evolve. (Some
pundits say that we are now moving from Web 2.0 to Web 3.0.) This article argues that REST
is really just a means to an end and that the real architectural pattern is WOA
or “web-oriented architecture”.
http://www.infoq.com/news/2009/06/hinchcliffe-REST-WOA
In this newsletter, we often feature articles about “IT-business
alignment”. This excellent article
emphasizes that even naming this is part of the problem. Instead, we need to simply recognize IT as
part of the overall business, just like sales, operations, etc., that has a
specific role in the success of the enterprise.
http://blogs.techrepublic.com.com/tech-manager/?p=1453
Among the debates in the IT profession that never seem
to be settled is how much technical skill IT managers should have. This article explores this question and it
seems that the answer (as you probably expected!) is that “It depends!”
One of the popular agile practices (not to be confused with
methodologies!) is test-driven development (TDD). In this article, the author tries to dispel
some of the common misunderstandings, such as TDD doesn’t work in developing
architecture and writing tests after coding isn’t any different from TDD.
http://www.notesfromatooluser.com/2008/11/misconceptions-with-test-driven-development.html
This insightful article seeks to better define the line between the
software engineering (SE) discipline, which tends to focus on process and
methodology, and computer science, which covers the technical underpinnings of
programming, such as algorithms and complexity.
Certainly, it doesn’t resolve the matter once and for all, but it does
help to bring some clarity. And, Tony
Hoare gives his views on this divide as well.
http://www.ddj.com/architect/217701907
The role
of the CIO is changing from being the head honcho over technology to being
a key player in how to leverage technology as part of business strategy. Here are the steps that the CIO, and everyone
in IT, need to focus on to remain relevant.
http://www.informationweek.com/blog/main/archives/2009/04/the_new_it_mani.html
In the noble method of anti-pattern, learn how to write code that is
confusing and indecipherable! Seriously,
this should give you some ideas of how code in a way that understandable and
maintainable.
http://freeworld.thc.org/root/phun/unmaintain.html
Never one to shy away from controversy, Joel Spolsky
proposes a bachelor of fine arts track for programmers who are more interested
in the craft of programming instead of the traditional computer science
approach.
http://www.eweek.com/c/a/Application-Development/Programming-as-a-Fine-Art/
Ivar Jacobson promotes a new concept called “Smart is Agile++”. Basically, he says that any organization can
do "agile" simply by adopting smart practices over unsmart ones.
http://www.infoq.com/news/2009/04/Agile-Get-Smarter
A couple of months ago, we featured an article about 10 classic papers
that all programmers should read. Now,
here are 10 more papers that address software architecture.
James Bach bemoans the sad state of software quality and says that underlying cause of the problem is the tolerance of defects by customers. And he offers some suggestions for finding our way out of the mess.
http://www.satisfice.com/blog/archives/224
http://www.satisfice.com/blog/archives/251
I don’t think that this author is implying that computer or software problems were the primary cause of the accident, but he does make a good point about how important software testing and quality are in this age of increasing dependence on technology systems.
http://www.informationweek.com/blog/main/archives/2009/06/did_computer_fa.html
Most testers have an interest in the weird ways that applications can fail. (One blogger even writes about the “favorite” bugs of his coworkers in the Microsoft test group.) This article reviews some well-known and yet still extraordinary application failures.
http://www.infoworld.com/d/security-central/bizarre-bugs-9-strangest-software-glitches-ever-971
In a recent thread on the Agile Software Testing mailing list, members made their suggestions about the advantages and value of agile testing approaches, even on traditional methodology projects. Read this summarized list of the results.
http://www.infoq.com/news/2009/06/love_agile_testing
In enterprise development, coding standards are often non-existent or not followed if they are available. This article explains the value of coding standards in preventing code defects from the beginning.
http://www.embedded.com/columns/barrcode/216200567
Although I somewhat disagree with this author's general idea that "quality" and "testing" are synonymous, he still gives a good overview of the role of these functions within the development process.
http://www.developer.com/java/other/article.php/3515426
Test Forge is a new wiki-based site where you can share test plans, designs, procedures and test cases, as well as other various software testing wisdom with others. It's quite new, so it's a bit sparse right now, but it seems like a great idea. Get out there and share some of your stuff with others!
Every Windows users' nightmare is the Blue Screen of Death
(BSOD). This non-technical guide
explains what the various BSOD errors are and gives you some tips for how to
troubleshoot and resolve them.
http://www.maximumpc.com/article/features/blue_screen_survival_guide
JavaScript is the
de facto standard for client-side scripting
in web applications. Most readers of
newsletters already have some programming background. Thus, this is a great tutorial if you want to
use your existing knowledge to get started with JavaScript.
http://www.wooji-juice.com/blog/javascript-article.html
Trying to write a “generalizable” equals
method for your Java class that appropriately handles inheritance and subclassing is fraught with peril. This excellent tutorial takes you through
some of the common pitfalls and provides guidance for how to implement your
method taking them into proper account.
http://www.artima.com/lejava/articles/equality.html
In the Internet age, it is rare that even the simplest of applications
don’t have some sort of database,
either on the backend or embedded. (Did
you know that even Firefox browser has SQLite embedded for storing
bookmarks, history, etc.?) Thus, SQL
skills are an imperative for all developers.
This reference gives some tips, as well as great links to other
resources, about how to implement good database structures.
http://net.tutsplus.com/tutorials/other/10-essential-sql-tips-for-developers/
If you do any programming in Java, you’ll want to look at this! It explains best practices and patterns
across a wide realm of Java programming from some of the best known the Apache
projects, like Lucene
and Commons. For those getting started with EJB/J2EE, it includes a fantastic
section on JavaBeans.
http://www.discursive.com/books/cjcook/reference/book-cjcook.html
Most designers and developers know that CSS is preferred for web page
layout over tables. But sometimes CSS is
just too complicated. This article gives
you some tips about how to use CSS effectively and simply.
http://www.smashingmagazine.com/2009/04/08/from-table-hell-to-div-hell/
Ever wonder where the 160-character limit to SMS messages came from? Well, it’s not as random as you might think at first and it really pre-dates the portable technology boom era. The limit came about in 1985 when the chairman of the GSM committee responsible for non-voice services used a typewriter (remember those?!) to do some personal research about the maximum length of single-sentence blurbs and questions. And, thus, the SMS message length was born (and the Twitter message length of 140 characters maximum was derived.)
http://latimesblogs.latimes.com/technology/2009/05/invented-text-messaging.html
Want to know what the environment is really like at that potential employer? Curious about salaries at competitors? Glassdoor.com can help. This site allows you to find reviews and salary information from actual employees at companies in many industries. You can even contribute your own information, anonymously, if you prefer. And they even have a section on how employees rate their CEOs. (And also check out competitor Telonu.com. [Get it? Tell-on-you.])
With continuing job losses, the chances that you will be looking for a new job get bigger with each passing day. Here are ten questions that you are likely to face in most any interview regardless of the job type or industry, such as “Tell me about a problem you had in your life and how you solved it” and “Do you have questions for me?” These are always good to have thought about before the interview, but don’t just come up with “canned” answers to them.
http://www.dumblittleman.com/2009/06/10-answers-you-should-know-before-your.html
As summer is upon us, vacation season is in full swing. (I just got back from a week off myself.) This article looks at an interesting approach to vacation e-mail: just delete it all and tell people to contact you again when you return. How do you handle e-mail during absences?
http://www.informationweek.com/blog/main/archives/2009/06/could_you_take.html
This summer, Unix reaches middle age! One of the most amazing things to me from this article is that Ken Thompson wrote not only the original version of Unix itself in one month, but also an editor, a shell, and an assembler, as well! Pretty amazing even today with multi-year application development projects being the norm.
http://www.computerworld.com/action/article.do?command=viewArticleBasic&articleId=9133570
Even if you’re not officially a manager, these tips will help improve your effectiveness, efficiency, and relationships with coworkers and maybe even impress the boss. Most of these items are simple common sense (which Benjamin Franklin observed isn’t all that common!), but seeing them together in one place helps you make some good connections between them.
http://www.focus.com/fyi/human-resources/managers-cheat-sheet-101-common-sense-rules-leaders/
For the second year in a row, engineer tops Manpower’s talent shortage survey. It is followed closely by IT staffer.
http://www.forbes.com/2009/06/03/hard-jobs-fill-leadership-careers-employment.html
Many people are enticed by a career in programming because of the view that it is technically challenging and provides good, stable employment. This author points out this is true, if you are also committed to being a life-long learner and you can emotionally detach yourself from the code you write. And, certainly, you should always have a “plan B” in any career.
http://maximporges.blogspot.com/2009/06/how-to-become-software.html
While epistemology might not be your idea of an interesting subject (or maybe not even something that you’ve even thought of!), this article has some interesting implications not only for natural languages, but also for our limitations of perception when it comes to programming languages.
http://edge.org/3rd_culture/boroditsky09/boroditsky09_index.html
As most people know, it's tough finding a new job right now. So, everyone should focus on what to do to keep your current gig. These tips will point you in the right direction. And, the fact is that they are good advice regardless of the job market.
http://blogs.techrepublic.com.com/10things/?p=701
This posting (from 2001!) notes that technology is driving grammar to reverse the standard of punctuation marks being put inside closing quotation marks. I feel vindicated, since this is how I have written my entire life, much to the chagrin of many English teachers!
http://everything2.com/node/1070878
What are some of the things that others (or—Heaven forbid—you your yourself!) do at work that annoy you? Here’s a list of some of the bad habits that everyone needs to break. And, yes, my personal worst—procrastination—is number 1! (I even have procrastination as a tag on Delicious!)
http://www.careerbuilder.com/Article/CB-1249-The-Workplace-10-Worst-Work-Habits/
Everyone knows that communication is the linchpin of work and really of all relationships that we have with others. At the same time, technical people seem to think and communicate in different ways than “normal” people. This author explains four salient differences and gives some great advice for how to overcome some of these variations in communication style.
http://secretgeek.net/program_communicate_4reasons.asp
Advances in technology always result in social change. Just think about the automobile and the telephone. Certainly, the answer to the question posed in the title of this article is “Yes,” but the more relevant question is how is society changing because of computers. Interestingly, the computer is hastening is the demise of the metanarrative.
http://www.computerworld.com/action/article.do?command=viewArticleBasic&articleId=338575
Telegeography says that the global economic downturn will only temporarily slow broadband growth and predicts that worldwide broadband subscriptions will top 700 million by 2013 up from 400 million today. They also indicate that this, along with wireless growth, will mostly offset losses in landlines.
http://www.telegeography.com/cu/article.php?article_id=28641
Even homeless people recognize the importance and value of Internet access. Here’s a quote from one of the homeless people featured in the article: "You don't need a TV. You don't need a radio. You don't even need a newspaper. But you need the Internet."
http://online.wsj.com/article/SB124363359881267523.html
Cisco is predicting that by 2013, video will account for 90% of IP traffic and that the amount of traffic will be the equivalent of the contents of 10 billion DVDs per month!
http://www.contentinople.com/author.asp?section_id=430&doc_id=177779
In a new survey, almost half of respondents said that they would drop their mobile data plan to reduce personal expenses, if necessary. By comparison, only 10% said that they would get rid of home broadband service.
http://www.mobiletechnews.com/info/2009/06/26/002836.html
Everyone knows what a router is, right? Well, modern routers are changing from one-trick-ponies into integrated devices that are often more about applications and services.
http://www.networkworld.com/news/2009/061709-what-is-a-router.html
Even with the economic
difficulties in the
PicPick is a multi-function tool for application developers and web designers. It features screen capture, image editor, color picker, color palette, pixel ruler, protractor, whiteboard, and more. It runs from the system tray, so all of the functions are quickly available.
http://picpick.wiziple.net/forum
Trowser is a cross-platform (Unix, Linux, Windows, Mac OS X, etc.) text file browser that is intended to be a GUI-based alternative to less. It is a great tool for looking at log files and includes color highlighting, a persistent search history, graphical bookmarking, separate search result (i.e. filter) windows. Its key bindings are loosely based on Vim, so most users will be comfortable with keyboard navigation. (Requires Tcl/Tk version 8.4 or later. Windows users probably want Active Tcl.)
http://www.nefkom.net/tomzo/prj/trowser/
CodeRun
is a browser-based online IDE (integrated development environment). It can be used for developing in most any
language, but includes “channels” with code libraries/snippets for ASP.NET,
PHP, and
Tab grouping on the task bar is one of my favorite features introduced in Windows XP. But it isn’t always the most convenient way to switch between instances of the same application. WindowTabs is a much more natural way of grouping. It adds Google Chrome-like tabs to windows so you can easily switch using mouse or <Ctrl>+<→>/<Ctrl>+<←>. It even lets you group windows from different applications. (*Note: The free version is limited to 3 tabs per application. The $19 full version removes this restriction.)
Text editors are kind of a passion (addiction?) of mine. I frequently try out different ones to see if there is something that I like. I guess my favorite is really an amalgamation of a variety of editors. Nevertheless, TotalEdit is a really strong contender among the category of freeware editors. It has an amazing set of features that are too numerous to do justice here, but some of the key ones are excellent support for development tool integration like compilers, debuggers, etc., built-in diff/compare, search and replace with regular expressions, support for project files, column mode editing, and support for portable installation.
http://www.codertools.com/totaledit.aspx
Most users consider an application of any complexity incomplete without good documentation. HelpNDoc is a free help documentation authoring tool that can output documentation regular HTML, Microsoft Compiled HTML Help (CHM), PDF, or Word formats. You can define your own variables to ensure nomenclature consistency, such as product name, throughout the document.
If you are working with MS Windows and you get an error or informational message box from the application, you can simply press <Ctrl>+C (standard “Copy” keystroke) to copy the title text, the message text and the text of each of the message box buttons to the clipboard. Then you can just paste this information into any text processor.
Can you believe it? Tetris has been around for a quarter-century. I don’t even want to think about how many hours (days?) I’ve wasted spinning little blocks.
http://digitaltools.node3000.com/blog/1191-25-years-of-tetris
http://www.guardian.co.uk/technology/gamesblog/2009/jun/02/tetris-25anniversary-alexey-pajitnov
Forty years after the historic moon landing (I watched it on a B/W TV in a store window with my family, since we didn’t have a TV!), the debate continues about whether or not Neil Armstrong said ‘a’ in his famous first words from the moon’s surface.
http://news.bbc.co.uk/2/hi/science/nature/8081817.stm
These probably aren’t that funny for the under-30 crowd, but I found them quite humorous.
http://www.codesqueeze.com/the-ultimate-top-25-chuck-norris-the-programmer-jokes/
If you liked The Lord of the Rings films, this site is a must-see. It has an amazing 40-minute fan film in the style of the originals made for under $5000.
http://www.thehuntforgollum.com/