August 2013 Newsletter
The greatest thing by far is to be a master of metaphor; it is the one thing that cannot be learnt from others; and it is also a sign of genius, since a good metaphor implies an intuitive perception of the similarity in the dissimilar. –Aristotle, De Poetica
It does not suffice to hone your own intellect (that will join you in your grave); you must teach others how to hone theirs. –E.W. Dijkstra
Nobody knows where the human race is going. The highest wisdom, then, is to know where you are going. –Leo Tolstoy
The sweetest of all sounds is praise. –Xenophon
Where there is shouting, there is no true knowledge. –Leonardo da Vinci
Begin each day by telling yourself: Today I shall be meeting with interference, ingratitude, insolence, disloyalty, ill-will, and selfishness—all of them due to the offenders’ ignorance of what is good or evil. But for my part I have long perceived the nature of good and its nobility, the nature of evil and its meanness, and also the nature of the culprit himself, who is my brother (not in the physical sense, but as a fellow creature similarly endowed with reason and a share of the divine); therefore none of those things can injure me, for nobody can implicate me in what is degrading. Neither can I be angry with my brother or fall foul of him; for he and I were born to work together, like a man’s two hands, feet or eyelids, or the upper and lower rows of his teeth. To obstruct each other is against Nature’s law—and what is irritation or aversion but a form of obstruction. –Marcus Aurelius, Meditations
This article could be appropriately sub-titled “Matching Expectations With Reality in Agile Development”, because it deals with that common gap between what management and employees thought agile was going to be and do and how it actually turned out. It provides some good context for how to help bridge some of these spaces, especially those to relate to organizational culture.
Inevitably, no matter how much information you (think you) have, your project estimates are going to be off, at least by some amount. But how can you keep your sanity when you end up with estimates that are way off?
Commitment by the development team for each iteration is a typical part of scrum in most organizations. This pundit suggests that commitment results in some dangerous unintended consequences and teams need to ensure that it is done appropriately.
As a follow up to his excellent introduction to test-driven development (TDD), this programmer gives some tips on how practically introduce TDD to your organization and make the practice stick.
As developers, one of our objectives should be to find the “simplest thing that could possibly work”. This doesn’t mean ignoring good practices or architecture, but rather finding an appropriate solution that allows scalability, maintainability, and so on. This article gives some good food for thought about how simplicity adds intrinsic value to our work.
Most of us understand clearly that agile methodologies are not “one-size-fits-all” and that each organization must adapt it to their situation and process. Nevertheless, the overall “agile” world is going through growing pains (one pundit calls it an impending winter!) This article looks at whether flexibility is a blessing or curse. What do you think?
A new study based on the experiences of the Google Chrome and Mozilla Firefox teams shows that it’s more cost effective to pay bounties to security researchers than to have dedicated workers do the same thing. Wonder if the same is true for non-security application problems?
One area of testing that is most impacted by changing from traditional (waterfall) development processes to agile methods is that of test planning. This article explores how to use the iterative nature of agile techniques to your advantage in test planning and estimation.
While certainly not on the scale of the Therac-25 or other life-threatening software defects, a problem with the accounting system for contractors of the UK postal service’s small offices certainly affected the lives and livelihoods of hundreds of workers, some of whom were wrongly accused of embezzling.
One of the age-old tensions is how the test group can work effectively with the development team, but still maintain independence. In agile methodologies, since the team is (or should be!) self-organizing, collaboration is even more important. This article looks at various perspectives on how to successfully balance the needs.
One of the more well-known (although certainly not propitious!) software failures was the problem on the Mars Pathfinder, which caused it to stop sending data back to scientists. But the story behind how engineers diagnosed and fixed the problem from 230 million miles away is the best part.
If you want a comprehensive refresher on some of the underlying principles of computer science and/or would like to learn the concepts around Linux/Unix programming, this is an excellent tutorial and reference. It covers the ideas of computer architecture, OS design, processes, memory and more. Furthermore, it gives a very detailed explanation of using the GNU toolchain for compiling and linking.
Even with the increased focus on application security, it’s still quite surprising how frequently SQL injection exploits occur. Even if you don’t know “little Bobby Tables”, you might want to take a look at this comprehensive list of injection problems to watch out for across a variety of common database platforms, including MySQL, MS SQL Server, Oracle, and PostgreSQL.
This reference is an excellent summary of the concepts developed by “Uncle Bob” Martin in his book Clean Code. Even if you don’t subscribe to the whole clean code regime, the sheet gives you plenty of tips for good development practices.
Most readers of this newsletter are probably not designers. But, as the author of this tutorial points out, at some level all of us are involved in design. So we should all know a few principles of design. This brief, but excellent tutorial and reference explains the key things pay to attention to when designing. And all of this is getting a bit easier as web design moves away from skeuomorphism (love the sound of that word!) to more simple designs, such as flat design.
API development is growing by leaps and bounds and it behooves everyone to design good, effectively APIs. This article provides a great checklist for best practices of implementing APIs and avoiding needless fluff.
Ask most workers what the biggest productivity killer is in their office and you’re likely to get plenty of responses about meetings. The CEO of Linked In says that by simply eliminating presentations by sending the presentation materials at least 24 hours before the meeting makes meetings more productive by allowing participants to come prepared and self-select on whether they really need to be there.
With nearly 3/4 of workers in the U.S. working on open-plan office settings, organizations are learning that improved collaboration comes with a price in productivity, especially when the work requires significant focus and concentration, not to mention privacy. Many companies are now looking for how to balance these needs with mixed-space office plans.
Among other criteria that you might want to look at when searching for a new job is how long people typically stay at an employer. According to this report, employees have the lowest tenure at retail and service companies, including insurance and financial services, and the longest tenure at manufacturing businesses.
This is an interesting finding that cooperation actually provides us with an advantage. Perhaps it says more about the design of our creation than anything else, because as the author points out, it’s a very counterintuitive result.
This article gives an interesting analogy for the use of overtime (or really any other extraordinary measure) to address a crisis. The author explains that these tools only mask the pain (or other symptoms) of the particular problem and don’t actually address the source of the problem. The pain that occurs needs to be felt so that the organization can fix the mistakes or other causes to prevent them from happening again.
Contrary to some folks, resumes are still a typical method for sharing a summary of your skills. (This doesn’t mean a resume is the only way to market yourself!) But with all of the changes in the hiring process, it’s sometimes difficult to know the new protocol around resumes. This article helps dispel some of the common legends around resumes.
Recent research has found that light propagation in optical fibers in a spiral motion instead of the usual straight line can speed transmission and, therefore, improve throughput. From their results, they were able to achieve transmission capacity of 1.6 terabits per second, the equivalent of transmitting eight Blu-Ray disks every second.
In a similar vein to the article above, this one gives an overview of how biologically-inspired algorithms and protocols are being investigated to improve network routing.
Many of us (at least, those of us of a certain age!), cut our teeth in networking learning about the OSI 7-layer model (or 9 layers according to these guys! J). This article explores how the OSI model quickly fell by the wayside when TCP/IP became the de facto networking platform. Another good example of how the “best” implementation doesn’t always (or even usually!) win.
MIT AI researchers have developed a new system named Remy that fixes TCP congestion on networks three times faster than human-designed algorithms. The power of the algorithm comes from how it is able to concentrate analysis on small changes in routing that result in large performance gains.
One of the interesting consequences of the destruction from Hurricane Sandy last year is that incumbent providers are using it as an opportunity to further remove copper cabling. Down from the peak of 186 million landlines in 2000 to around 100 million now, providers expect only 1/4 of households to have copper-wire-based service by the end of 2013. And AT&T intends to have all copper lines removed by the end of the decade.
As noted above, landlines are going the way of the dinosaur. In this essay, the author posits the question about whether or not even the concept of a telephone makes sense. She talks about how ubiquitous multi-mode communication makes telephones seem passé. I’m not sure that they will go away completely anytime soon, but who knows?
Google’s attempts to license Internet TV channels is leading to speculation that they may looking to become a competitor in the cable TV market. Much of the buzz is that they want to try to beat Apple to market for this service.
SSH Edit is a free, basic text editor that features syntax highlighting that allows editing of remote files over SSH. It’s very handy for quick editing of scripts and configuration files on your servers without the hassle of downloading a copy, editing it, and uploading it again.
Anyone who works with remote systems knows the value and importance of a good SSH terminal tool. Server Auditor is a cross-platform (even Kindle Fire!) mobile SSH tool with all of the essential features you’d expect, including swipe and gesture support for scrolling, selection and more, multiple connections, scrollback buffer and more.
You’ve probably more than once wished you could make an offline copy of a map from the various online mapping tools. There are plenty of tools out there to do this, but they typically are expensive. GMapCatcher is free, open-source tool to make and view maps from a variety of online mapping sites, including Yahoo Maps and Bing Maps (but, interestingly, not Google Maps!).
Command Line Files (CLF) is a basic command prompt replacement for Windows that adds a good bit of the shell functionality of Linux/Unix. Some of the built-in functions including showing free disk space and memory, a stack of the directories navigated to/from, wget for downloading files, display HTML of a web site, and much more.
With portable USB drives ubiquitous and online storage systems like Dropbox and Wuala so popular, regular Windows file search doesn't really cut it anymore. Dropout is a Lucene/Solr-based file search tool written in .NET. It indexes files, including content for text files, from any number of locations, including Dropbox, and provides lightning-fast searching for files.
Markdown has become the lingua franca of formatted text editing. And, now, with Markdown Here extension/plugin for Firefox, Chrome/Chromium, Safari, and Thunderbird (yes, I realize Thunderbird is not a browser!), you can use Markdown to edit your e-mails and see the resulting formatted content immediately. It supports most of the usual Markdown features, such as emphasis, italics, tables, source code formatting, hyperlinks, and more.
Do you get annoyed when trying to debug your Java code in Eclipse and you accidentally step into code from external classes and libraries? Why would I want to step through lines in Java’s core String class?! Eclipse has a nifty, but rather buried option to fix this called Step Filters. In Eclipse, chose Window | Preferences from the main menu. In the Preferences window, navigate to Java à Debug à Step Filtering. Enable (check) the Use Step Filters option and specify which classes to bypass when debugging. In addition to the built-in filters, you might want to add these, depending on what external libraries you use:
The Unix touch command simply updates the “last modified” date and time of a file to the current date and time. Windows lacks such a utility, but you can simulate the behavior by executing this command:
copy /b filename.ext+,,
where filename.ext is the name of the file that you want to update. And notice that there is no space between the file name and the plus sign and the pair of commas.
Are you on your way to a Scrum meeting and realize that you haven’t finished your committed work? Just hop over to this site and get a quick excuse for the problem! J
Like millions (actually 65 million to be more precise!), The Oregon Trail educational game was one of the main inspirations and influences on me toward a career in technology. Read this fascinating story about how it was developed over 40 years ago by three student teachers who didn’t even have a computer to begin with.
While some folks are likely to be turned off by the decidedly retro look of this site, it is a virtual treasure trove of historical information about the first large-scale non-military use of computer technology. You will be awed by the resourcefulness of the folks who worked on the space programs in the 1960s – 1980s.
What if Ron Swanson was your scrum master? You’d probably look for another job, right? Well, check out this Twitter feed for some tips… On how NOT to do agile!
So this site has to be one of the geekiest in fun on the Internet. It offers online crossword puzzles where the clues are regular expressions. Me? I couldn’t even do the “Beginner” puzzle!