April 2014 Newsletter
Tell me who your friends are, and I’ll tell you who you are. –Spanish proverb
The walls we keep around us to keep sadness out also keep out the joy. –Jim Rohn
Conversation is a catalyst for innovation. –John Seely Brown
Rome lived upon its principal till ruin stared it in the face. Industry is the only true source of wealth, and there was no industry in Rome. By day the Ostia road was crowded with carts and muleteers, carrying to the great city the silks and spices of the East, the marble of Asia Minor, the timber of the Atlas, the grain of Africa and Egypt; and the carts brought out nothing but loads of dung. That was their return cargo. –Winwood Reade, The Martyrdom of Man (1871)
The respect of those you respect is worth more than the applause of the multitude. –Arnold Glasow
The noblest pleasure is the joy of understanding. –Leonardo da Vinci
Most of us have experienced the conundrum of trying to decide what technology, tool, methodology, workflow, etc. to use in our development process. This article uses a good analogy of deciding which stocks to pick to maximize your investment. The author tries to address the question of whether to choose the tried-and-true or the up-and-comer.
Pragmatic Programmer Dave Thomas, one of the original signatories to the Agile Manifesto, says that it’s time to do with “agile process” and actually start working with agility. His ideas are at the same time revolutionary and obvious. I think (and hope!) that this missive will be the beginning of new philosophy (and implementation!) of agile.
Every project manage wants his/her project to succeed. But many PMs are thrust into the role without much training. So how to ensure that your project goes well? This author offers that tip that the most important task when starting out on a project is to uncover the real reason for the project.
Many of the things that we believe about software development and the methodologies that we use are based, substantially, on anecdotal evidence. This insightful essay looks at how these legends are perpetuated and how to effectively assess such claims and develop a healthy sense of skepticism about the outrageous statements that take on a life of their own.
One of the practices in most organizations for IT projects is a “business case” to demonstrate the business value or return-on-investment (ROI) of the effort. But what about IT practices themselves and particularly the use of agile development methodologies. This article explores some of the ideas for determining whether or not these techniques deliver on their promises.
As we frequently discuss in this newsletter, the whole world seems to be going “agile” in their development processes. But what does agile mean when it comes to testing. This excellent article gives some ideas on agile overall and how it impacts the test function specifically.
One of the least-explored (and, therefore, not very well understood) areas of software testing is how to test data migrations/conversions. This article helps you to understand the specific things that you need to emphasize for this kind of testing and to determine if black box or white box testing is most appropriate for your situation.
In many people’s minds, the HealthCare.gov debacle is probably one of the most significant examples of software development and testing gone wrong. This article provides some in-depth analysis at how it was the “perfect storm” of factors that led to the disaster.
You might call netcat the Swiss Army knife of networking tools. This tutorial provides some basic examples of the power of the tool for doing such tasks as a simple chat program, interrogating a host for OS type and server programs, a simple port scanner, and more.
If you do any development today, it’s likely that you are using some open-source software tools or libraries in your work. If so, you need to make sure you follow the principles of the license. For me, understanding all of the subtleties of open-source licenses is frustrating at best. This site helps you understand them in simple language and it has references for what you “can”, “can’t”, and “must” do with your code with respect to the license.
With the Internet, it’s not difficult to do a quick search for help on CSS. Nevertheless, this list is helpful in the sense that properties are arranged alphabetically. In addition, each entry is cross-referenced and linked to the relevant W3 standard for that property.
If you are a visual learner, you’ll enjoy this Git tutorial, which uses the fantastic D3.js library to show you the outcome of actually executing Git commands. You use the actual commands interactively on the site and it animates your action.
Good API design is vital to the success of almost any system, whether it’s an enterprise application (using SOA concepts) or a public tools. This excellent, multi-part tutorial teaches you the concepts in a step-by-step manner starting with the principles of why an API is important through to how to actually implement one.
Even if you aren’t a full-time front-end designer/developer, anyone who works in development would be well-served to learn the basics of CSS selectors. This fun site provides a game-based approached which presents you challenges of increasing difficulty to help you learn. Of course, they offer hints if you get stuck, but just give it a try and sometimes trial and error is the best teacher.
There are more regular expression (regex) tutorials on the Internet than you can shake a stick at. But what makes this one worth checking out is that it starts very simply and builds in a gentle manner at a reasonable pace. Moreover, it has simple exercises (with answers!) for each topic. And you can do the whole thing in just under an hour.
I don’t typically include articles such as this, but I’m making an exception. This article is an example of very biased reporting about the software development career. As an “ancient” (according to this article!) developer, I found very little of what was included here to be true, based on my experience. I think that the development career is wide-open for those over 30 (and over 40, 50, and beyond), if you are willing to learn and grow each and every day. What do you think?
In a similar vein to the previous article, the topic of “ageism” (or what I’ve always heard called “age discrimination”) seems to be quite a hot topic recently. This article gives an interesting perspective in that as a venture capitalist, he admits that the process is biased toward younger entrepreneurs (although sometimes I wonder if these wunderkind get more press due to the “novelty” of the whole thing). However, he points out that plenty of successful startups have been founded by older people, and not just in the technology realm.
In a completely ironic twist, this slide deck discusses how PowerPoint is devaluing education, by avoiding actual teaching and learning and, instead, attempting to “entertain”. In fact, the Large Hadron Collider staff have banned the use of PowerPoint in their forums and seminars and now just use low-tech whiteboards to encourage discussion and interaction.
Most people intrinsically know that good managers are a rare gem. According to this team’s research the main problem that results in bad management is promoting people as a “reward” for doing good work as an individual contributor, rather than because they have management skills. The good news is that about 1 in 10 people have the right skills, so most organizations have a management talent pool right in front of them.
Scott Hanselman is a developer’s developer: master coder, excellent communicator, and eminently practical in all things. In this article, he brings many of have development productivity tips together in a single place. This is a must-read!
Probably my favorite section of this newsletter is the Tutorials/References, because lifelong learning is a passion for me (hence, the existence of this newsletter to begin with!). But how you learn is nearly as important is what you learn. Here are a bunch of great tips to improve the process of learning, most with references to additional information.
Recently, productivity-improvement techniques have been taking a beating. But, to me, the issue is really about what works for your particular situation, especially for programmers and other technology workers. There is no one-size-fits-all approach to reducing procrastination and improving productivity. The nice thing about this list is that the suggestions are flexible and most anyone can adapt the concepts to their specific situation.
In this interview with one of the world’s foremost neuroscientists, he offers some great insights into how develop creativity and an innovation mind-set in your organization. Some of them include the idea that brainstorming is a bad way to generate ideas and execution on ideas is more important than generating them.
While it’s certainly improved over the years, average Internet performance in the US contains to lag, with the US falling to 31st in download speed and 42nd in upload speed. According to this article, consolidation resulting in decreased competition in the US telecom industry is to blame.
For all of its flash in many areas, Google tends to be rather reticent when it comes to their Google Fiber project. According to this observer, we shouldn’t let this approach lead us to believe that it’s not a priority for them. He says that they are on pace to be in the top 10 telecom providers by the end of the decade.
If you use a shared hosting platform, you’ve probably experienced the frustration of not being able to connect to the host via SSH. Leash is a free Python-based utility that you run on your hosting account, which allows you to create a bash shell in your web browser. You can run MySQL shell commands, the Python interpreter and more, just like you were logged in via SSH.
If you need to download online map tiles (images) for offline use or embedding in a document or web page, TileDownloader is a great tool. TileDownloader lets you specify the boundaries for the tiles to download visually or by latitude/longitude pairs. Likewise, you can configure a variety of OpenStreetMap source servers to use.
If you use Remote Desktop in Windows frequently, you know how difficult it can be to keep track of all of your connections. This handy utility allows you to create an “address book” of sorts for your connections, including groups.
Wow! I’m not even sure what to say on this. However, it may be evidence that the “acronymization” of the technology industry mainly serves to confuse others. Perhaps these mnemonics would help.
Perhaps I’m a “retro-geek”, but this article involves several of my favorite things: Legos, Rubik’s Cubes, and robots. Specifically, a new version of previous Lego robot Rubik’s Cube-solving champion has bested the previous record by more than 50%, by solving a cube in 3.253 seconds.
If you weren’t already convinced of Alan Turing’s genius, this should seal the deal. In a moment when he says that he had nothing to work on, he took up the subject of the theory of embriology and discovered the underlying reason that the alternate spirals on sunflower seeds follow the Fibonacci sequence.
While I know that April Fool’s Day has already passed, I couldn’t resist including this page. It’s a very creative satire on how companies try to “productize” everything that they create, even if there isn’t really a problem to be solved.
Most people probably imagine that Mark Twain became famous as a short story or novel author. But, based on this book excerpt, he hit the big time by embarking on a public speaking “tour” telling the tale of 15 survivors of the USS Hornet were adrift at sea for 43 days based on interviews with them while he was recovering in the same hospital in Hawaii.
Need a little humor at the expense of your development methodology? This funny (and often too close to the truth!) list of alternate agile development definitions is sure to put a smile on your face.