Category Archives: What’s Special About Today
Witness to a Murder (of crows)
Taking a diversion from the usual technology-related topic to share a bit of what most people will never see, Sunday morning, 5:30 AM, the first day of Fall, 2014. My internal alarm clock wakes me up. It is still quite dark outside. Charlie, our rooster hasn’t even woken up yet. That reminds me of something I have wanted to do for a long time: watch the large flock of birds by UW Bothell leave their roost. Would there ever be a better day to do it than today? Probably not. So I got up, grabbed the camera and tripod and headed over to the bike trail by the UW Bothell campus.
I got there by 6:00 AM. The air was mild and very calm. It was still dark enough that the dark side of the New Moon with a brighter thin crescent edge was visible to the east, looking out over the roosting area.
I set up my camera and waited. It wasn’t long before the first birds start to fly, around 6:10 AM. It started off slow at first, but very quickly the sky was full of them – A Murder of many thousands of Crows!
I was able to capture the sunrise as they left their roost in rivers of birds flying out to greet the world. I noticed that they don’t just fly out in all directions. Instead, they follow flight paths as if Air Traffic Control were giving them instructions. The stream of birds went on for over 30 minutes. Since it was early on a Sunday morning, the traffic noise from the highway was quiet. The result is a very peaceful, almost meditational video. I can imagine leaving the video playing on one of my computer monitors for a calm white-noise effect to offset the chimes of meeting reminders and email alerts while I work. It is recorded in HD, so it’s worth watching in full screen.
Don’t let the conditioning of modern television’s 5 to 20 second long clips between scene changes make you anxious after a minute or two of this. Consider finding a time when you can sit and let the video play in its entirety as if you were there yourself, filming it. If you are looking for a moment of excitement, you will have to create it yourself. Count the number of times you see a lone bird flying in the other direction. Or count the number of times a bird flaps its wings as it passes by. Or count the number of times a pair of Canada Geese fly by. Or count the number of distinct caws you hear. Or simply count the number of birds that fly by. Or just watch the rhythm of the stream of birds as the sky gradually changes color. This far north, we have long sunrises. Enjoy.
The Bothell crows make up a murder of many thousands of crows that roost every night at the 58 acre wetlands restoration site sandwiched between I-405, Hwy 522, and the University of Washington-Bothell campus.
The restoration project was started 12 years ago. This is what it looked like back then:
You can learn more about this flock of crows at the UW website.
And their Facebook page.
You can also get a better idea of just how large this murder is from this footage of them gathering again at the end of the day.
A Moment in History for Structured Programming
As we race forward in technology, clamoring to be the first person to discover the next big innovation with all the chaos and enthusiasm of the great land rush of the American West, it is good to occasionally take a break from the race and check our bearings by looking back at our past.
Today is a very special day in the history of computer science. Not for the birthdays we are celebrating today (Happy Birthday Ed!) but for the memorial of one who passed away on this day in 2002. Today I write in honor of the Dutch computer scientist Edsger W. Dijkstra and his influence on this field of science.
Edsger Wybe Dijkstra (May 11, 1930 – August 6, 2002) made numerous important contributions to computer science. You can get a good feel for his impact in the Wikipedia article about him. As you read, search through the bibliography and you can find details of his original works that apply to software development even today. Even Google probably would not exist without Dijkstra’s insights. There is one topic that had a particularly profound impact on me. It all revolves around the Goto statement.
In 1968 this article by Dijkstra was published in the Communications of the ACM (Association for Computing Machinery).
In his letter, Dijkstra calls for the abolishment of the Goto statement from high level programming languages because it promotes bad programming practices that make for unmanageable code. The debate went on for awhile before subsiding. But then in 1987 a new article was published in the Communications of the ACM titled “Goto considered harmful, considered harmful”. This article debated the merits of the original article of 1968. That stirred the debate once again and over the next few months letters to the editor dominated the magazine. Then after several months of debate, there was one letter to the editor that was particularly detailed and scientific which poked holes in the arguments of both sides of the debate, first pointing out the incorrect syntax used in the arguments, like the use of upper case vs. lower case variables, then it ripped apart the content of the arguments. In the end, the author stated his disappointment that after 20 years, we had made no real progress on this position. The letter was signed by Dijkstra himself.
I find it fascinating to have been actively involved in that debate with the computer science legend himself in those days. Since that time, the topic has occasionally surfaced again in one form or another, though never with the energy and passion of the programmers and computer scientists (called developers now) in those first two waves of debate. And yet, even today, 44 years later, we still see the results of programmers who continue to fail to heed the real message Dijkstra was sending: the concept of structured programming. Corrupted data, security vulnerabilities, software crashes and incompatibilities are the result. While object-oriented languages make it easier to follow structured programming, they do not guarantee it. Learning to write a program (now we call them “apps”) is easy. There is an endless supply of self-taught developers. The challenge is getting the world to use the best practice concepts that Dijkstra was championing.
It might seem like 44 years is a surprisingly long time for such bad practices to persist. But, depending on what you consider the starting point, computer science is only about 60 to 80 years old. If you compare Computer Science to Medical Science, we are at the medical science equivalent of using leeches and witch doctors. With the explosion of information, it is no longer likely that any one person will accomplish the brilliant feats like DaVinci, Edison, or Einstein did, but hopefully our collective intelligence will make it possible to accelerate the maturing process of computer science that we can quickly realize the goals of Edsger Dijkstra in his pursuit of better software. So what do you think? Should the Goto statement be considered harmful?