Software Design Engineer
 Thursday, June 22, 2006
Web time machine!

At SharpLogic Software, we have a wide variety of backgrounds as well as talents. Since I came aboard in early 2005, I have had the opportunity to interface with a number of different characters. One side-effect that happens after meeting and working with people who are truly passionate about technology and gifted with their work is that you realize just how much YOU have to learn. Of course, there are skills which are not easily learned - and are truly gifts some are born with. For me, and many others who say something like "I apologize for the drawing, I am not an artist..." during a presentation, no amount of practice will render me with the ability to create a beautiful Web page. I might be able to learn a thing or two about layout and read about user interface design, but I will still probably pick neon green text on a black background with an orange border. Luckily for us we have people on staff who effortlessly bridge the gap between artistic design and technical functionality.

The reason that I bring this topic up is because being around these Web geniuses has made me think back to years gone by when I learned a little HTML and for some reason thought it wise to create my own homepage. I jokingly thought to myself "I sure hope that nobody decided to archive that content from the Web past". Tonight I did a quick search for such a thing and came across http://archive.org which, among other things, allows you to search their archived index of some Web sites from the past. This includes domains that you may have owned at one point and are now in the hands of someone else. It is not a complete archive, but it sure is fun looking back at old content many Web developers may have thought was gone. It is also neat to simply see the evolution of a site over time. Take a spin and see if you can find any interesting archived pages.

Check out an example from Microsoft from October 1996 at http://web.archive.org/web/19961022175331/http://www.microsoft.com/

MSN.com from 1996, http://web.archive.org/web/19961025231757/http://msn.com/

Google.com from 1998, http://web.archive.org/web/19981202230410/http://www.google.com/

Only a few sites that I have tried are actually blocked from being searched. I do not know if this is an opt-out mechanism offered to site owners or something else entirely.


6/22/2006 11:18:50 PM (Pacific Standard Time, UTC-08:00)  #      Worldly Observations

 Wednesday, September 28, 2005
Funniest Algorithm Names

So I was looking at the list of algorithms page on Wikipedia, located at http://en.wikipedia.org/wiki/List_of_algorithms, the other day when I noticed a few funny sounding ones:

Blum Blum Shub – a pseudorandom number generator (named after the creators)
Bogosort – sort that generates random permutations until it finds “the one”
Blowfish – type of block cipher
Doomsday – calculates the day of the week of a given date (apparently each year has a doomsday, the day of the week on which the last day of February falls)

Leave a comment if you know of others :)


9/28/2005 1:29:45 AM (Pacific Standard Time, UTC-08:00)  #      Worldly Observations

 Tuesday, June 28, 2005
Visualization Tools for Computer Science Education

One of my favorite subjects within the realm of Computer Science topics is computer graphics and visualization.  Part of the draw, especially early on in my school career, was the instant gratification that could be found in implementing graphics code.  You get to directly see the results of your labor plus you can easily share it with others who do not understand the implementation details.

There are basically three types of learning methods – auditory, visual, and hands-on.  Of course, most people use a combination of all three throughout their life.  I am not sure if I am more hands-on or visual, but I am certain that I do not learn best through auditory means.  Therefore, unless I am somewhat familiar with a topic to begin with, lectures seem like a waste of time to me, at least the prototypical theory-only college lectures.  I take notes, but I have no chance of “getting it” until I sit down and have some hands-on time with the material.

I think that students could benefit greatly from tools that help visualize core computer science topics such as search algorithms, recursion, data structures, etc.  Unfortunately, for whatever reason, my instructors did not know that these types of applications existed, and neither did I until recently.  There are some very sophisticated scientific and data visualization tools out there, but I am currently just referring to fairly simple instructional tools with good interfaces.

Here is a link to a J# application for visualizing sorting algorithms, recursion, simple image viewing, and an oscilloscope simulation.  It allows you to even test your own algorithm implementations and see how they perform (Visual J# .NET Product Team, Microsoft).

https://www.mainfunction.com/DotNetInAction/Technologies/display.aspx?ID=2710&TypeID=2

The next link has some Java applications that help visualize automata and formal languages (Susan Rodger, Duke University).

http://www.cs.duke.edu/~rodger/tools/tools.html

Here is a well written paper titled “Helping Learners Visualize and Comprehend Algorithms” by Hansen, Narayanan, and Schrimpsher.

http://imej.wfu.edu/articles/2000/1/02/index.asp

I am sure that there are more visualization tools out there.  So are these tools being used at the high school or even undergraduate college level?  Aside from the elected computer graphics classes that I took in college, I do not remember having an instructor utilize visualization software in any way.


6/28/2005 2:16:14 AM (Pacific Standard Time, UTC-08:00)  #      Worldly Observations