Monday, May 30, 2005

Pod-Casting? I'll Try

Well... it is certainly a first, and maybe a last. You will have to let me know what you think!


CodeFin - May 30, 2005 - First Pod-Cast


For those of you not familiar with the format, you download the above file and listen to it. Generally on your iPod, but that part isn't requisite. It will play in any media player (including the ones on your computer).

Thanks Kelly

Saturday, May 28, 2005

Cleaning



It is always a good feeling to get some deep cleaning done. After I had done the Saturday morning cooking at the Grandparents, and visited with an old friend, it was time to attack the top of the garage. The top of the garage is an interesting place for my family. 13 years ago, my parents did a pretty extensive remodel on our house. Part of that remodel was adding a pull down staircase that would give us access to the top of the garage. Mother is afraid of heights, and won’t climb up there, but the men of the household are often assigned to get stuff up and down form the top of the garage, as that is where a lot of the seasonal decorations have found their off season home.

The interesting thing about the top of the garage is that in many ways, it is the ‘last stop’ for any thing that we may be holding on to ‘just in case’. Just about every member of the family has something in the top of the garage. It is like the attic, except we don’t have easy access to our attic, so we use the top of the garage instead. Mom and Dad decided that this month they were going to clean the top of the garage and do a ‘clean sweep’ of it. The project was outlined, and it was determined that if we did it in two half day sessions on successive Saturdays, we would be able to throw away a lot of stuff, and get the abyss of the top of the garage clean.

Today my father and I climbed up the stairway and carefully pulled down each and every box, and item from the west side. Once it was on the ground, Mom and Dad went through a mini version of clean sweep, and then the non-throw away stuff made its way back to its home for the next several years until we decide it is time to do another throw away spree. What is exciting to me is that before today you couldn’t climb around up there it was so chalk full of stuff, and now there is a clean path!

Here’s to organization and spring cleaning.

Friday, May 27, 2005

Out of Their Minds : Wrap-up

It took me a little while longer than I anticipated to finish the book, but I would still highly suggest it to anyone who wants to know a bit more about the history of computer science and its fathers. For the most part the text was written at a level that anyone could understand, and if you didn’t understand all of the mathematical underpinnings, it didn’t take away form the point of the chapter. The authors did a great job of showing the reader the meaningful lives that these early computer scientists lead. I come away from this book with a deeper appreciation for the modern PC, and for those people who invested the years of their lives to make these marvelous machines work.

The more reading I do in this field, the more I realize that it will be impossible to master it all. One may be able to gain a superficial knowledge of a great many sub-domains, however, it seems to me that eventually I will need to settle down and become the master of a few. As I read and study, I am beginning to find some areas more interesting than others – I think that is a good indicator of where I may land someday. In the meantime, I need to continue to soak up as much general information as I can.

The one sentence recommendation:
If you are looking for a good book that explains the history of computer science that was written so that the general population could understand and appreciate, this is the book for you.

Tuesday, May 24, 2005

Beginnings

In an industry where things often go wrong, it is very pleasant to see something go well. This morning I sat in an organization meeting for a new web application that the department I work for will be developing. The application fits into our area well, and we have most of the backend data that this group is wanting to access. What was different about today’s meeting is that rather than discussing ways in which we would modify the existing system with our usual group of business sponsors, we were discussing a totally new application with a different group of business sponsors. It was very interesting to watch the programming manager place the ground rules and discuss how the project should flow with the business sponsors.

At one point in the meeting the business people were trying to get the program manager to commit to a completion date of later this year. Considering the depth of the project, the timeline these people had in mind wasn’t very feasible. However, I was very impressed to see how the program manager handled the situation. It was like he was quoting from some of the books that I have been reading recently about project management and the programming process. At this point you are probably thinking that this is something that any good program manager would work on. However, where I work, seeing such formality and care to organization isn’t something that I see very often. As the program manager explained our “development” process, it was very refreshing to see how he envisioned each phase of this upcoming project. He explained the roles that different people would have throughout, and what each person needed to do in order that things happened according to the revised schedule.

This is the first time in my working life that I have been in at the ground floor of a completely new project. Yes, we will interface with some of our other products, and use many of our existing tables, but this application will be all new. It was so pleasing to see people trying to do things “right”. This isn’t to say that the other products the team I work with produces aren’t quality. It is that there usually isn’t this type of formality and commitment to the design process.

Given the commitment and excitement of this set of business sponsors, and the dedication to proper planning and design of the program manager, this will be a fun project to be involved with. It won’t hit QA for several months, but it is awesome to be involved with it in its early stages.

I’ll close with another thought from the book I am currently reading.

“You can’t keep track of everything in a design given the number of people involved. But you have to have some sort of idea of what you want to do. That might be the most important thing: to have the imagination to think of things and get people to do it.” –Burton Smith

Monday, May 23, 2005

Comprehension

“In general whatever you’re trying to learn, if you can imagine trying to explain it to a computer, then you learn what you don’t know about the subject. It helps you ask the right questions. It’s the ultimate test of what you know.” -Donald Kunth


I didn’t get a lot of reading done this weekend, but I did run across that quote in Out of their Minds. In my first CS class, as I have mentioned before, we were programming in Scheme. Each exercise was completed according to a recipe. These recipes were outlines that would help beginning students get into the mindset of problem solving. Each function that we would program followed a form like this:

- Contract (what are the pre and post conditions)
- Purpose (what is the function supposed to do)
- Example (what would a sample call to the function look like, and return
- Definition (the actual code)
- Tests (tests the definition at least against the example to make sure it works)

The above recipe came from How to Design Programs. As the book continued and examples became more complex, additional steps would be added. For each function that we programmed, it was required that in comment form each step of the recipe be explained in the context of that function. This relates well to Kunth’s quote as it adds formalism to the idea that one must really understand that which he is trying to program before he commits it to code. My introductory CS professor called this the “domain knowledge”, and stated that it was important to understand what it is we were dealing with before we jumped off to try and make a program to do it for us. It is a sound idea.

Computers are only as smart as the people who program them. They do exactly what they are told. This is why programming languages are so precise. Though we try to escape the binary, and abstract away notions of assembly, they are still there at the heart of computing. In order that we produce useful programs that accomplish real world tasks it is critical that we understand what it is that we want the computer to do, and that we understand at some basic level how the computer does it. Granted, this advice may not apply to the end user. Certainly, every user of Microsoft Word doesn’t need to understand how the dynamic spell checker works. Yet, for the programmer who implemented it, he needed a solid grasp of the big picture.

In my Linear Algebra class last semester, we were charged with programming a simple MatLab function that would calculate a least square solution two different ways. I remember thinking that I understood how least square solutions worked, until I sat down to formalize it into a function. Though this is a simple anecdote, it is an example of Kunth’s quote come to life. I had to go back to the book to really understand the algorithm for calculating a least square solution before I could even hope to tell the computer how to do it.

The whole purpose of this short essay may seem trivial, but I can’t tell you how many times I have seen programmers hack away at a problem without taking the time to try and understand the basic underpinnings of the problem they are trying to solve. I am not an expert, but the quote above really made an impression on my mind. As I have been reading Out of their Minds, the common thread is that each of these early computer scientists saw something that they thought that they could improve, and by working to better understand that area, discovered something that forever had an impact upon the way we now understand computing. Had these men not endeavored to understand how to “explain it to the computer”, the world today would be a vastly different place.

Thursday, May 19, 2005

Episode III

I went to see Star Wars episode III – Revenge of the Sith this evening. What a show. True to Lucas form the show had its idiosyncrasies, but I enjoyed it none the less. Many critics are saying that the show is dark, and that perhaps it is too dark, as it does not let the audience relax. I would argue that the darkness of the plot is what sells the show. It allows the audience to feel the tragedy of Anakin’s dissent to the dark side. Every good story needs a strong archetypal character, with tragic a flaw. If Darth Vader doesn’t fit that role, I don’t know who does.

Go out and see the movie. It is worth the time. If you are the geek type, you will marvel at the special effects. If you are a Star Wars aficionado, you will be all over the story, and want to analyze the characters and verify the facts. If you want to understand what the people in the office are talking about next week, you might want to go see it. If you are just looking for something to occupy your time… again, this one’s for you, but you might want to catch up on the Star Wars plot if you haven’t been paying attention for the last 20 years.

Wednesday, May 18, 2005

iTunes and COM Programming?

Background:
I have been hooked on iTunes now for over a year. I love the software, the store is great, and it allows me to sleep soundly at night knowing that my digital music collection is legal. I was using iTunes before I got an iPod last December. For a while I have wanted a tool on the windows platform that would allow me to publish my recently played iTunes to the web. I have seen some of these tools written in AppleScript for the Mac platform, however, I haven’t seen it in the windows realm yet. Last night I decided that I needed something to work on programming wise and so I did a Google search for “Hacking iTunes for PC” and came across an article explaining how one could use some Apple SDK’s to create custom visualizations. While I wasn’t in the market for visualizations, on the same page, I found that apple has an SDK called iTunes COM for Windows. In theory, this SDK will give me the tools that I need to create my little play-list publishing tool.

Situation:
All was fine and dandy; I downloading the SKD, unzipping and then opening in Visual Studio was no problem at all. That is where the joy began and ended. Once again, I am faced with the fact that I must be the world’s biggest newbie when it comes to programming. Truth be told, I know nothing about COM, and following the example in the documentation about how to instantiate an instance of the iTunes COM object proved to be dismal last night. The error said that I couldn’t create an instance of an abstract interface. That would make sense, but I don’t think that Apple would be sending me an abstract interface. The SDK consists of two files a header file and a C source file. I am pretty sure it has something to do with what I call the Visual Studio learning curve. Typing code is one thing. Making sure that all of the little switches and toggles are correctly set is another story all together.

Hopeful Resolution:
This morning I found a book at Amazon that purports to teach one how to use COM. I guess that is a starting point. I said that I was bored, and wanted to learn something new. I guess this will be my opportunity. Maybe in a few weeks I will actually be able to build that little iTunes tool!

Plea for Sage Advice:
If you have any advice about COM programming, or good resources to learn it, please drop me a line.

Tuesday, May 17, 2005

Out of Their Minds

An interesting book, and is giving me a nice, but non-technical introduction to some of the history of computer science. The book basically consists of interviews with the fathers of key programming languages, theories, and algorithms. While the book is not nearly as exciting as something fictional that I could be reading, or as entertaining as Joel on Software was, I am learning about the roots of my profession. That must be important for something right? Didn’t someone once say that to essential to understanding where we are is comprehending where we’ve been? I don’t know who said it, but it certainly isn’t mine.

Those early scientists certainly had a lot to think about. I haven’t finished the book yet, but the common thread was that each person saw a problem that needed solving. Some aspect of a project they were working on was inconvenient, so the set out to make it easier. The other common thread is that as they made some aspect of a project easier, they quickly uncovered something else that wasn’t as easy as they would have liked it to be. It was either another ‘root’ problem, or a result of the latest invention. Luckily for us in 2005, there are still problems to be solved, and aspects of computing that still beg for research and thought.

I wonder if Turing and von Neumann knew of the impact that their thoughts would have upon the world at the time that they were doing their research. What would they think to see the world of computing today? I can only imagine that it would be pleasing. More about the book when I finish.

Saturday, May 14, 2005

NYC Day Four and Home

I will make tonight’s synopsis short and sweet.

- We slept in
- We continued our walking tour of NY, this time up to the Lincoln Center and Julliard
- We walked through central park, enjoyed the lawns, and went for a row boat ride. I particularly enjoyed watching my cousin and sister who had never rowed try to figure it out. They both got pretty good at it by the end, and I had a great time just enjoying the scenery.

Our flight out of JFK got cancelled tonight that we didn’t learn about until we got to the airport, so we had a crazy cab ride to La Guardia, to catch a flight to SLC by way of Cincinnati that we needed to board in less than an hour. Thankfully we made it just in time. Flying home always seems to take longer than getting there in the first place.

I am now again enjoying the comforts of home. What a fantastic trip I had. New York is an amazing city that everyone should experience at least once.


A picture of a pretty bridge in Central Park. We went rowing in that lake.

Friday, May 13, 2005

NYC Day Three

We got off to a late start today; we didn’t even leave the hotel until just before 10 AM. It must have been that the long day before finally caught up with us. Today the agenda wasn’t as full of destinations. The girls wanted to see Tiffany and Co. So after a stop for breakfast, which consisted of bagels, we were off to 5th Ave and 50th. At first I wasn’t too thrilled with the idea of going to a jewelry store, but in the end it was a pretty cool experience. I suppose that if a man had a lot of spare change, it would be good for him to know how and were to buy designer jewelry. Honestly, I had never seen such ‘bling’ in all my life. Huge diamonds which were so intensely beautiful. Really, it is no wonder women love them so much.

Following Tiffany and Co, we headed up the street 30 blocks, on foot because the girls didn’t want to spend money on a cab, to the Metropolitan Museum of Fine Art. We spent the rest of the morning/afternoon there. I was surprised by the size of the place, one look at the map and I knew that there was no way that we would be able to see each exhibit. We decided on Egyptian, Roman, Byzantine, European, Modern, and a photo exhibit that was currently touring. It was great to be able to see some of the art pieces in person that I had studied in High School and intro to Art History class in college. Seeing the works of the masters was truly an awesome experience, one that will not soon be forgotten.

We got home with just enough time to take a short nap before we went to go meet a friend that lives in the area for dinner. We enjoyed a great meal at the Olive Garden, and then it was time to make last minute preparations for the play that we went to see tonight.

Harvey Fierstein played Tevye in Fiddler on the Roof. Again, I can’t complain, there is a magic about Broadway that you have to experience to understand! Fiddler will always have a special place in my heart, because that was the musical that we put on my senior year in high school. The revival has some new songs, and I really liked them. I am so glad that I had the opportunity to come visit this great place. What a privilege it was to see not just one, but two shows!

It is again late. Tomorrow at this time, I will be back in Utah… but I will be sure to write of the morning’s doings and the flight home.


My sister and I outside the theatre before seeing Fiddler on the roof.

Thursday, May 12, 2005

NYC Day Two

What a day. Here is a quick enumeration.

- Faith Hill at Rockefeller Center with the Today Show
- Empire State building
- Battery Park
- First subway experience as an adult
- Statue of Liberty
- Drive by of Ellis Island
- Ground Zero
- Wall Street
- First time to see a Broadway show in NYC

We walked and walked and walked. My legs are tired, and I got more than a good dose of sun. But what a grand time we had. I think that I like the theatre district/midtown much more than the financial district. Not only does it feel safer, but it just seems to be more “fun”. When our show ended tonight we went to go and get some cheesecake afterwards, in Utah, you would have been hard pressed to find any place open for business after a show.

Wicked was absolutely amazing. I know that I often say that I loved a performance, but, I also won’t say it was good if it wasn’t. New York talent brings musical theatre to a whole new level for me. The musical Wicked was an awesome emotional, sensory experience that I will not soon forget. Every element was perfect, and it really made for a wonderful experience.

If I ever go “touristing” again in a big city or anywhere that there is likely to be metal detectors I will NOT be wearing a stainless steel watch, or a belt with a metal bucket. After having taken them both off three times today within a 6 hour time period, I would almost rather just loose my pants, or find a less offensive belt.


Faith Hill singing "Mississippi Girl" at Rockefeller Plaza for the Today Show




Me at the top of the Empire State Building, shot looking to the South.

Wednesday, May 11, 2005

NYC Day One

I suppose that while I am sitting here on the second flight of my day, I may as well write a blog entry even though I won’t see the likes of an internet connection for a few more hours. This morning Salt Lake City was the recipient of a May snowstorm. I couldn’t believe my eyes; I suppose it was a good thing that I didn’t get the vegetable garden in last weekend. The Salt Lake Airport was busy this morning; I have flown post 9-11 and have never had to wait in a long security line. Thinking all would be well, we arrived at the airport 60 minutes before the flight was to leave, and found some fantastic lines. Thankfully, they were moving quickly and we were able to get boarded on time, though the flight did start boarding right as we arrived at the gate.

Due to the weather in Salt Lake City, our flight ended up leaving 40 minutes late. I didn’t really notice as I was wrapped up in reading Joel on Software. The flight was a little bumpy, but other than that not very eventful. The events happened with it landing in Cincinnati at 3:47pm. Yes, our connecting flight to NYC had a departure time at 4:07. We didn’t get off the plane until close to four. We literally ran down the airport hoping that we wouldn’t miss the final boarding call for our connecting flight. We were close to the last people to board the plane. For anyone that knows me, I was a ball of stress. I just don’t do the “great race”, need_to_get_to_the_next_flight_NOW thing very well. Thankfully I am here on the plane, which I didn’t miss, to New York.

For those that don’t like the geek talk, you are welcome to skip the next two paragraphs.

I didn’t mention that on that flight form SLC to Cincinnati that I managed to finish reading my book. What an interesting and unique view of software development and IT management Joel Spolsky has. He has the experience to back up his opinions, and certainly has no problems calling it how he sees it. Reading his book reminded me, once again, how very little I know about the big bad world of software and computers. As I read the book, I was amazed over and over again how many little things that man knew. Where does one find the time to keep up on all of the technology? Not just in the domain of software but also hardware, law, and business.

I know that I have said it before, but of most interest to me were Joel’s ideas on hiring practices. It just reminds me that I have a lot of learning and practicing to do. Sometimes I wonder if someone coming to the software world as late as I am even stands a chance against the kids who have been programming since they were two, but I enjoy it, and I am learning quickly. Joel on Software was a good book that does exactly what it purports to do. Sometimes you may want to disagree with the author’s opinions, but at the same time, he recognizes when he is taking a controversial stance, and backs up his position with solid examples, anecdotes, and logic. If you like reading in the computer geek genre, this one is for you.

Back to my New York adventure, yep, I am still on the plane, and it is getting really bumpy again. I am not a frequent flyer or anything special like that, but I have been on a fair share of flights in my young life, and I am hard pressed to think of any flight that I have ever been on that wasn’t bumpy at some point or another. I do enjoy air travel though. There is something exciting about getting on this machine that has the ability to let me cross the entire country in a matter of hours.

I am going to put the laptop away for now… will write again when I get to the hotel and have some pictures!

We just got back from a very authentic dinner at a deli downtown. What an awesome city, it is gigantic and tiny all at the same time. Everything is so close, there are so many people, yet the streets are just tiny. The cab drivers are insane; I don’t think that traffic laws or right-of-way are considered very seriously. But then again, that is just after walking around for a couple of hours tonight.

Here is a picture of my sister, me, and my cousin in Times Square tonight. More tomorrow.

Monday, May 09, 2005

Monday, Staff Meeting, and moblogs?

It was a good weekend. I went to breakfast with two of my sisters at the this local restaurant called Blue Plate, Jane had pancakes, Kate had this frufru light meal with cottage cheese and berries, I had a Spanish omelet. Breakfast gives us a great chance to catch up with each other and just talk about life, not to mention I get a kick out of pretending that I am a “regular” at this little retro cafĂ©.

After breakfast I took care of the Saturday morning business, and spent the afternoon in the yard. The weather here in Salt Lake City has been quite manic, one moment it is raining, and the next it is sunny the nice constant is that at least it wasn’t cold. As my father likes to remind me, the great thing about spring is that it is the rare time of year when the indoor and outdoor temperatures match. I managed to get the flowerpots done, and prepared the vegetable garden for plants. When I get home from work today, there will be time to actually get the seeds in the ground.

Weekend behind me, it is time to face the week. Monday morning means staff meeting. Staff meeting means time to sit in a conference room and give status reports. I am sure you can imagine what it is like. My favorite part of the meeting is when application by application the QA specialist gives the report about what happened in the previous week. What were the support problems? What is the group currently testing? Will there be any releases this week? Sometimes this section of the meeting is filled with informative tidbits that anyone who carries the pager should be aware of. Other times, it is filled with dry talk of why stuff didn’t happen, or maybe about why a particular staffer is confused about the latest administrative change to the file system, or the companies newly adopted “standard” software.

On other stuff…
Have you read about google’s new camera-phone blogs? It looks pretty entertaining to me. Almost entertaining enough to make me want to pay the extra $5.00 a month on my cell plan so that I can send pictures and text messages. It would be a lot of fun to tell my upcoming trip to New York via camera phone. The downside? Well, I am not totally keen on having yet another blog to take care of. I wish that blogger would allow me to have content from multiple blogs on this one page. I will think about it for the next few days. I know that flickr lets you post to your photo stream right from your cameraphone, but in the world of choosy viewers who want discriminating photostreams I don’t know if polluting my flickr stream with cameraphone snapshots is really what I want to do. Thoughts?

Friday, May 06, 2005

Spring Semester Redux

Back in January, if you had asked me what a vector was in C++ I would have guessed that it was like the vectors that I use in math and physics. If you had asked me how to prove that a linear transformation is an isomorphism I would have given you a blank stare and asked if isomorphism in linear algebra was similar to isomorphism’s in chemistry. If you had asked me to count in binary, hex, or asked me anything that had to do with hardware at the bit level, I would have stared off into space, unable to give you a reasonable answer. If you had told me that I would study more, and sleep less, than I have ever studied or slept in my college career, I probably would have laughed in your face and told you that I was getting better at school and that things were supposed to get easier, not harder.

Some people don’t like to talk about the Journey, thinking that it is too much of a psychological game because what really matter are the results, right? I am one who likes to talk about the journey, because in addition to the results being important, educationally the process of getting there is also paramount to understanding how to solve a problem. Knowing what works and what doesn’t, and learning from your mistakes is the best way to prepare yourself for problem solving in the big bad world. The journey is an exercise in self-actualization.

This semester I learned that just because you understand object-oriented design, it doesn’t mean that you understand every object oriented language. Once again, the lesson that there is no free lunch in the world was further driven into my brain, as I worked out problems dealing with busses, and memory systems and stack pointers… oh my! (Forgive the Wizard of Oz pun) I learned that organization is critical to the success of any software project, and that in the cruel world it isn’t just how much effort goes into the solution but also that the solution does what it is supposed to do. I learned that after 26 hours without sleep, no amount of caffeine will keep you alert enough to function rationally, and that it is best to plan your time so that you don’t have to work all night the night before a project is due. I learned that while pointers in C++ can really be a pain to learn, and as my professor said, they give the programmer enough rope to hang himself. Pointers are also tool that give the programmer the ability to control how his creation works in memory.

I am sure that there are more lessons that I could mention if I thought about it long enough, but that list seems sufficient for the time being. This summer will be nice. It is the first summer in four years that I haven’t gone to summer school. It will be fun to work, read, and play. I hope that while I am not facing homework assignments for the next 18 weeks or so that I will be able to catch up on my reading, take a look at some technologies that I haven’t played with yet, relax and enjoy the summer months.

Wednesday night, I started reading Joel on Software, what an interesting commentary he has written about software development, and the typical pitfalls that organizations and software engineers can fall into. The book references so many other papers and books, I don’t know how anyone finds the time to do all of that reading. The distilled messages are still relevant and applicable though often general. When I finish the book, I will write a review.

If you made it to the bottom of this thing I’ll call an essay, you are a good soul. Thanks for the support.

Wednesday, May 04, 2005

One More Day

Yes, today is the day.... the last day of the Spring semester 2005. The test I took yesterday was hard. I hope that I did well enough to earn me a passing grade. The rest of the day was spent working on software practice. Thankfully, we were able to finish it up with enough time to come home and get a rest.

Sleep will be good tonight. I hope that our project presentation goes well in the morning, and that I have enough braincells to get me through the Linear Algebra exam in the afternoon. Needless to say, it will all be done by 5:30! What a 16 week race. I have learned a lot, but now, it is time to rest as it will be busy when I wake up.

Sunday, May 01, 2005

Yellow Tulip


Yellow Tulip
Originally uploaded by CodeFin.
Still closer to being done with this semester of school. Wednesday night can't come fast enough. There are still papers to write, and preparations to be made, but the light is certainly at the end of the tunnel. I was outside for a few minutes today, and could not help but get lost in the beauty of the spring flowers. What a sight for eyes that have been glued to the monitor for more hours than should be confessed.