03.31.06
Posted in Uncategorized at 11:54 pm by Todd
I came across the Retail Alphabet Game during my blog reading time today and figured I should share it. It was actually quite a lot of fun. But at the same time, kind of sad that I was able to perform at about 50%. I would like to claim that this shows how perceptive I am but more likely it means I am a cultural glutton (as opposed to a cultural anorexic).
Permalink
03.24.06
Posted in Uncategorized at 1:32 am by Todd
I just read this article that explains what Continuous Partial Attention (CPA) is. This is a new term that describes what we are all seeing (and doing). Just thought I would share a link to it (not that most of the people that read it here won’t have read about it on /. already).
Permalink
Posted in KSU at 12:53 am by Todd
I would like to extend my heart-felt welcome to the new coach of the K-State Men’s Basketball team, Bob Huggins. I believe that he will make a huge difference in the quality of team that we can field. His up-tempo style and his amazing recruiting are going be fun to watch.
As my friends know, I am a big basketball fan and have had a hard-time cheering on the wildcats during what I will refer to as the “dark years”. This is because I really did not like the coaches that we have had (Dana Altman, Tom Asbury, and Jim Wooldridge) and wanted to get a good coach. I think this will change now that we have a coach that I think understands basketball and wants to win.
I know that there is probably a lot of talk about the downsides to Coach Huggins. But I don’t think that we, as wildcat fans, should be concerned. I doubt that he will have another incident with DUI. He does not strike me as stupid or as an addict (alcoholic). I am also not concerned with the graduation rate issue. First, I don’t think it much matters as a metric for the school or a program. Second, looking at the numbers published by the NCAA, UC has about the same rate as KSU and Duke.
In conclusion, congrats to the KSU athletics department, KSU central administration, and all those involved in bringing a great coach to help make KSU basketball great once again. And a big welcome to Coach Huggins.
Permalink
03.18.06
Posted in Uncategorized at 3:05 am by Todd
After my previous post about science careers I took a long, hard look at myself to figure out why I started my “Science Career”, in particular my career in computer science. The first reason is that I have some God-given talents in this area. In some ways, I “just get” technology so it makes sense to end up in computing. The second is that I tend to think in a way the lends itself to science. By this I mean that I think in a very structured, methodical fashion that, at least to me, is crucial to scientific exploration. Last, I have a deep desire to help others in a meaningful way. Or as some colleagues of mine once put it, “a desire to serve and not earn money … aka, be a sucker.”
So with a science career I can leverage my talents and abilities in a way that brings happiness into my life. So while I agree in many ways with Philip Greenspun, I don’t think it is completely accurate in my case. Besides, what else could I do with my life and still come home (for any of you that don’t know, I am in the family business).
Permalink
Posted in Programming, SAnToS at 3:02 am by Todd
A long time ago in a far off galaxy a friend sent me a link to a tool that might be of interest to me. Today, I finally had a chance to play with it so I figured I would provide some notes on that experience here.
The tool is called
ConTest and it was created by
IBM in their
alphaWorks program. The idea behind it is to provide a tool that makes finding concurrency related bugs easier to find while testing (instead of other known techniques like static analysis or model checking).
The main use of ConTest is to expose and eliminate concurrency-related bugs in parallel and distributed Java programs. ConTest systematically and transparently schedules the execution of program threads such that program scenarios that are likely to contain race conditions, deadlocks, and other intermittent bugs (collectively called synchronization problems) are forced to appear with high frequency. Because bugs are found earlier in the testing process, ConTest dramatically improves the quality of testing and reduces development expense.
I did not perform an exhaustive evaluation but poked around to see what it could do. I basically read their documentation, ran ConTest on their demo application (a very simple bank example that is multi-threaded), and then ran ConTest on a couple of our classic examples (one called deadlock, a producer-consumer example, a bounded-buffer example, and a disk scheduler example).
I found that it is very good at finding errors (of the assertion type) and uncaught exceptions but does not do a great job on deadlocking examples. More than likely, this has to do with my lack of understanding on how to use the tool and not a failing of the tool (I would be happy to hear about the proper usage).
In summary, I think this is a very useful tool in extending normal testing for concurrent programs (this extends upon the types of testing that I usually see with Java applications, namely JUnit). However, this should be considered in light of the other types of testing that are possible. In the world of computer science this would be considered a heuristic (also see this and that) and not an exhaustive testing method.
So if you know me at all, or just know what my job is, you will see where I am going with this. I work in the Santos Lab where we create tools and techniques to help find bugs in critical software. Specifically, I work on Bandera (which provides a model-checking framework for Java applications) and Cadena (which is an IDE for component-based development that provides some forms of analysis and provides support for a structured approach to software development). So you can see that I believe in a more exhaustive (or formal) approach to testing (or rather quality assurance). Don’t get me wrong, I think this type of tool is very, very useful since it 1) finds bugs, 2) finds bugs in concurrent applications, and 3) finds bugs in a reasonable amount of time. But when the application is more critical (think life support systems and aircraft control software) developers must do more.
And in the interest of full-disclosure, model-checking is not the best solution in all cases (surprise, it has it’s downsides). Developers should be able to look at their application, their market, and the tools available to determine what techniques should be used in solving their problem. And I just hope that more and more people will look at model-checking as more than just a “formal method that is talked about at universities and in research groups”.
One note for anyone trying ConTest. If you use assertions in your code you will need to make sure to run with the -ea flag. I made the mistake of assuming this was taken care of in their run scripts.
Permalink
03.14.06
Posted in Technology at 8:41 pm by Todd
Since I long to be considered cool, especially among my peers on the internet, I am trying out a new web utility called ClusterMaps. You will see it along the right side column of my blog in the form of a world map with (hopefully) red-dots sprinkled across it. The red-dots represent visitors to my blog.
I came across this little gem on Martin Woodward’s blog during my daily browsing of blogs and thought it would be an interesting addition to my blog as well.
I also recently joined Frappr which provides maps for user communities. I joined the Firefox and JPF user communities in hopes of being cool (which has not really worked out yet … maybe someday).
I hate to admit this but it seems like I am starting to enjoy some of the “Web 2.0″ technologies. Based upon my naive understanding of the marketing of Web 2.0, these types of applications (community building) are exactly what is driving the new internet (or rather evolving the internet). I think the ideas are great but I just hate that there seems to be more fluff and less stuff. The technology is really interesting and useful but it is not exactly earth-shattering, ground-breaking, or any other cliche. To me, these are simply the next step in the growth of the internet (if the internet and the users of the internet can be thought of as organic). People seem to feel the need to develop more relationships using technology so the technology is evolving to support this (and in some ways, helping to drive the desire). To me, this started with email, IRC, and the various incarnation of IM. I am guessing this was just not personal enough so people started creating personal websites that had pictures and personal touches. This evolved into online journals and eventually blogs so that people could feel more connected to their friends daily lives (and personal growth). More evolution and you start to develop online communities that have really nice user interfaces that make it easy to communicate.
I guess the moral of the story is that technology is really quite interesting but what is more interesting to me is the interdependence of our personal evolution with that technology change. I guess you should stay tuned and try to filter out the fluff and grab hold of the stuff.
So to wrap things up, I want to be cool so I started using ClusterMaps and Frappr.
Permalink
03.01.06
Posted in Uncategorized at 8:46 pm by Todd
After reading this article by Philip Greenspun it got me thinking about why I got into a science-based career. I am not going to share my reasons yet (since I have not quite nailed them down) but I wanted to provide a pointer to the article. Hope others find this as enlightening as I did.
Permalink