SamWhited|blog

Poems, rants, and peculiar things.

Almost home

Me holding a beautiful (injured) female juvenile Red-Tailed Hawk (B. jamaicensis)

I’ve finished up my internship with the Georgia DNR at Amicalola Falls and am back at my parents for a few days before I move back to Atlanta this weekend. As much as I loved working with the park – especially our wonderful birds of prey – and as much as I loved my little cabin in the woods, I can’t wait to get back to the city. I’ve learned so much from the good people of Amicalola this Summer, and gotten so much first hand experience with Raptors that I’m sure taking my falconry permit test will be no problem. This post is not so much a reflection or farewell as it is just to publically thank the wonderful staff at Amicalola and encourage anyone near the Dawson Georgia area (A short ride down GA400 from Atlanta) to see this beautiful park and all of its wonderful critters!

UFO

They say that raising a child is a full time job, and I’ve found that’s true… especially when it comes to birds. Yesterday a family brought a baby bird (We think a Cardinal, but it’s really still a UFO at this age) to the park saying they had found it in a parking lot and wondered if we’d look after it.

While we have a wildlife rehabilitator who works at the park and specializes in birds (raptors specifically, but other birds are fine too) we would normally put down a nestling this small and continue the circle of life by feeding him to one of the snakes or our opossum, but our rehabber saw this as a good opportunity to give me some first hand experience and we kept him.

Collaborative podcasting with Twitter

After reading about Rick Klau’s implementation of a collaborative podcast using del.icio.us I decided to do the same thing using Twitter. A quick read over the Twitter API and I had it set up and running. For those of you who don’t want to read Rick’s post, I’ll start from scratch and describe the idea and how I set it up.

The idea is simple, anytime someone mentions me (@SamWhited) on Twitter and includes a link to a media file (an MP3 for instance) the media file is automatically downloaded and synced to my Zune in the form of a podcast. Twitter makes it easy to re-tweet songs as well which is an added bonus.

Amicalola Falls

As I mentioned previously, I recently became a resource management intern with the Georgia Department of Natural Resources at Amicalola Falls State Park. The park is beautiful and I love my job so far. While I officially work in resource management I also work with programming and outdoor education, especially with Amicalola’s rehabilitated birds of prey and their reptile collection.

The raptors and other birds are possibly my favorite thing about the park so far; from Owl-Capone (the Barred Owl from Owlcatraz) to Fabio the American Black Vulture (more Stork than raptor), I thoroughly enjoy working with them on, and off the glove. The snakes are also lots of fun and people passing through the visitors center love to touch the snakes and learn about the various species native to Georgia (my favorite being the Eastern King Snake, Elvis even though he sometimes thinks my thumb is a tasty snack).

Amicalola Falls Move-In

A few photos from my cabin at Amicalola Falls State Park that I occupied while working as an intern for the GA DNR.

Jury rigged audio equipment

Today I stopped by the hardware store and left with nothing but a hose clamp and a couple of small alligator clips. I then took them home, cut up a pair of womens nylons, stretched them over the hose clamp and strung the entire device up to act as a pop filter for my microphone (which is currently tied to a camera’s tripod). There’s no better way to get expensive audio equipment than to build it yourself (especially when it takes a grand total of about a minute).

A brief history of object-oriented programming languages

Before the 1950’s procedural programming was thought to be the only plausible programming paradigm and any methodology which was not fully imperative was considered difficult or impossible to implement. However, as computers began to become faster, programming languages began to become declarative and higher level though the languages of this time were still difficult for humans to read and understand. This meant that problems to which computers could be applied were limited in scope by their complexity. Then, in the 1950’s a group of computer scientists published a paper detailing a new language designed to express algorithms. This language, ALGOL 60, introduced two ideas which changed the way people programmed and thought about programming related problems. ALGOL’s first innovation was lessening computers dependence on procedures and introducing the idea of nested code blocks which did not need to be explicitly named. This meant that program flow became much more natural and easier for humans to read without jumping around a document searching for entry and exit points. Secondly, ALGOL introduced the concept of scope, a basic implementation of one of object-oriented programming’s key ideas. Lexical scoping allowed each code block to have its own set of variables which other code blocks did not have access too. This meant that debugging code became much easier because one rouge piece of code could not affect other areas of the program to the same degree that it could before. Not only did ALGOL 60 introduce ideas that would be key to object-oriented design later on, but it also abstracted itself even further from the hardware than other previous languages by using a mathematically exact notation which made its code even easier for humans to read and manipulate. Unfortunately ALGOL’s syntax had a steep learning curve which deterred new users. In 1972 Bell Laboratories’ Dennis Ritchie created the C programming language. It was commonly believed that an operating system could not be programmed in anything but Assembly (the lowest level human readable programming language), but Ritchie set out to prove otherwise by designing a language which was independent of computer architecture and could work at a very low level while still being a mid-level language which was easy to read and write by humans. With C Ritchie then set out to design the Unix operating system. At around the same time one of the first truly object-oriented languages came into existence: Smalltalk. Smalltalk allowed users to define blocks of code as discrete, explicitly named “objects” each of which contained its own procedures and data (collectively called the objects ‘state’) and no object could modify the state of any other object without the appropriate permissions. Each of these objects could send messages back and forth and these interactions between individual objects gave rise to program flow. This abstraction of the way we perceive the real world (as a collection of objects which inherit properties from one another) made programming a great deal easier for the average mortal. However, it came at a cost: overhead. Object-oriented programming languages often had a much greater space and time complexity than the same program written in a procedural language. Even though transistors were becoming increasingly small and computers exceedingly fast this still turned many developers away from object-oriented languages. What was needed was a language which had the simplicity, and speed of C while still being as flexible as Smalltalk. Enter C++. In 1979 Bjarne Stroustrup of Bell Labs wrote an enhancement to the C language called “C with Classes”. It was renamed C++ (pronounced See-Plus-Plus) in 1983 after C’s “++” operator which increments a value by one. Originally C with Classes merely added objects (classes are the templates from which one creates objects), but was later expanded into a full programming language which added other object-oriented staples including polymorphism (the ability of one object to inherit and use the properties of another object) and multiple inheritance (a polymorphic chain of inheritance).