Tuesday, September 18, 2007

Apple's mistake?

On the way to work today I listened to the This Week in Tech podcast from last week. A new episode came out yesterday, but I did not plug in my iPod last night. Since I had not listened to any of my podcasts (I rarely do), this one was still available. Anyway, I listened to it and the discussion revolved mostly around Apple and their "announcements" of two weeks ago.

The main debate centered around the $200 price cut in the iPhone. The host tried to see the best in Apple, while the rest seemed to think Apple made a huge mistake. They also talked about why this was a mistake (bad publicity, overshadow new releases, etc). Even though they were disagreeing, I think everybody was making strong and reasonable arguments. I have to say I am in the "apple made a mistake" category, but I agree with the host that the true shame is the overshadowing of their new releases.

In particular, the new iPod nano. Sure, the iPod touch is what is REALLY cool, but the iPod nano puts video in such a small scale and for so cheap! That commercial for it is also strangely addicting and too catchy. The biggest problem I have with the nano is all the choices! Not only do we have to decide which iPod to get, we also have to decide which color. And if we want to surprise someone with a gift, that makes things difficult.

Monday, September 17, 2007

Open-source in ULS systems

In the Ultra-Large-Scale Systems (ULS) seminar we are reading the Carnegie Mellon report which makes a case for ULS systems as a new and legitimate area of research. This seems to be somewhat of a hot topic right now, including a special discussion session at OOPSLA last year and a workshop earlier this year. The fundamental problem with this research is that it involves considering things that most systems computer scientists do not consider (such as the social and economic aspects).

One particularly prevalent consideration is how the open-source movement fits into the models (See the Cathedral and the Bazaar). The semi-altruistic behavior of open-source software development has proven its staying power. However, these ULS systems will be developed by and for the government (at least initially), and will therefore not be open-source in the conventional sense. However, open-source-development-like behavior may be exhibited by competing government contractors.

Also the longevity of ULS systems may necessitate open-source models in order to remain relevant. These systems will take a long time to build, and will take even longer to be replaced. "Many eyes makes all bugs shallow," so open source may be the way to go. However, how does one put automatic driving, a hospital, or the military in the hands of open-source and feel good about it?

Friday, September 14, 2007

CS PhD jobs

I'm meeting with the career counselor for computer science students today at the U. We are going to look over my resume. I think this comic sums up things nicely:

Thursday, September 13, 2007

Embedded languages

Some time ago I read Stephen A. Edwards' article called Design Languages for Embedded Systems. Although it is now over four years old, it did and still mostly does provide a nice survey of a embedded programmer's language options. I wanted to review four that he mentions and one that he does not:

  • C - This is pretty much the current lingua franca for embedded systems, and it will probably stay this way for many years (fears of my previous post aside). Often classified like a big gun, one can do whatever they want with C. That include writing really really really BAD programs.
  • Java - Object-oriented, automatic garbage collection, and lots of other goodness. real-time java attempts to provide embedded developers necessary tools, but it has not completely caught on yet.
  • VHDL - This is a hardware description and modeling language. Reminds me of the good ol' days in CS 224. I must admit I did not actually use much VHDL then, but one or two people in the class did. So I am actually not really familiar with it.
  • Esterel - I am not really familiar with this either. However, at LCTES '06 I heard a number of talks from researchers using and/or improving it. Edwards was one of them (showcasing SHIM) and in his paper he classifies Esterel as a hybrid language.
  • OCaml - This is the language I am currently using the most, so I have to mention it. Unfortunately, I am not using it to do embedded programming but to analyze embedded programs instead. OCaml does not seem to be suited for really tiny MCUs, but it might work with other embedded programming

Wednesday, September 12, 2007

C in the future

During the last meeting of the Compiler's Reading Group (CRG) here at the University of Utah, the discussion moved to our future vision for users of the C language. The question put forth by Jay (if I remember correctly) was whether C (and C++) is going the way of Fortran, or if people will continue to use it as it is, or if people will use some "safe" variant of it. My advisor, John Regehr, asserted that both the first and third options will occur. Specifically, that C will become (it already has, to some degree) a niche and/or legacy language and that the version of it to be used will be made safe.

I think this answer will probably be correct eventually. It is supported by by Kathryn McKinley's talk from a few months ago. One poor student decided to take her on and say he did not believe that java garbage collection could do a better job than his own memory management. After some back and forth, she eventually said "you're wrong!" When it was her credibility vs. his, she wins. The point of that is programs have become so complex that a compiler usually beats the programmer. That makes languages which rely more on the compiler, like Java, seem a little more appealing and languages which give total control to the programmer, like C, seem a little more out-dated.

You may or may agree with this. My impulse is to fight long and hard against this. A lot of us like the "freedom" C gives us and hate having hands tied in any way. However, maybe the time has come to face the music and switch to another language...

Tuesday, September 04, 2007

Social networking

I decided that it was time to update my social networking and web 2.0 sites on the web. I thought it would take a few minutes and then all would be well. I also figured that while I was at it I would sign up for facebook. Well, a day and a half later I am done. Of course, part of that delay was time taken to watch my newborn and 19 month old, but it still took longer than I thought. I think in the future I might let some of these die off (again), but I hope to keep some of them up to date (more or less):