Blog Posts from February 2005 (page 1 of 8)

Community Site

I’m trying to set up a community site for some old friends from high school. Got the domain name, got the hosting space, just need to figure out what to run on the site.

I started by looking the old IBuySpy portal. It’s been a while – it’s now called the ASP.NET Portal Starter Kit. Looks as good as it did when it first came out. However, there’s a slight security issue. My hoster doesn’t allow unauthenticated write access to the file system. Most of the ASP.NET Portal data is stored in the database, however the actual site layout is stored in an on-disk XML file. I could work around this by setting up a portal on my local machine, building out the site, and then uploading the relevant xml file, but I want to have my good friend back east help manage the site, so that workaround does’t work too well.

Next choice was DotNetNuke. They’re about to release their 3.0 version (3.0.11 is supposed to be the final beta). Looks really nice and installed very easily on my local testbed. However, my hoster also doesn’t give my DB account owner rights – I get reader, writer, DDL and security admin but not owner. DNN installs a series of stored procedures (which works on my machine due to having DDL permissions) but doesn’t give EXEC permissions to those procs to anyone except DBO. Woops. I wrote a small utility app that extracts a list of all user stored procs and calls “GRANT EXEC ON \<\<SPNAME\>\> TO PUBLIC” on each one. Seems to work fine, but given the size of the DNN codebase, I’m not sure I’m comfortable that there isn’t something else out there that’s expecting DBO permissions.

Assuming I don’t go with ASP.NET Portal or DNN, what other choices do I have? I’ve got pretty stringint security requirements, plus it has to use ASP.NET (go figure). I’m still looking at:

  • Rainbow Portal – similar to DNN in that it started from the original ASP.NET Portal source code
  • ASP.NET Community Starter Kit (CSK) – A baseline starter kit for building a community oriented site. Sounds promising.
  • GotCommunityNet – derivative of the community starter kit. They bill themselves as CSK 1.1. Sounds even more promising.

Any other suggestions?

Modeling vs. Visualization

Javier got me thinking when he left a comment to my square peg model post. I’ll get to intended semantics of class diagrams in another post, but I wanted respond to the latter part of the following comment:

I suppose you are assuming that the Class Diagram is intended to be used for design purposes. Then, a class diagram could be considered simply as a code visualizer.

That’s a great point that ties into something I’ve been thinking about lately: the Class Designer in VS2005 is not a modeling tool, it’s a visualization tool. For me, the difference comes down to abstraction and transformation. In VS2005, the Class Designer is built on top of the same metamodel as the underlying language. This means there is no transformation and that the diagram and the text of the code itself are at exactly the same level of abstraction. To me, you’re not modeling unless you’ve raised the level of abstraction.

However, while I think VS2005′s class diagram is a visualization, I also believe that UML’s class diagram is a model. UML is not built on the same metamodel as the underlying language. It’s at a slightly higher level of abstraction. That’s why you can generate Java, C++, Ruby or C# from a given class model. That transformation step between diagram and code is what makes UML a model. Granted, the class model of UML is intentionally close in abstraction to the code, but it’s still an abstraction.

The only reason it matters IMO if a given diagram is a model or a visualization is to be explicit about the need for transformation. And even the need or lack of transformation is only important for usage purposes. Each method has its pros and cons. UML can’t model C# code as precisely as VS2005 can visualize it, but VS2005 can’t be used to generate code for non .NET languages.

Javier’s point cuts right to the idea that modeling classes “for design purposes” isn’t particularly valuable as classes are such a low level abstraction. I think that’s why so many people use UML’s class model as a general purpose “thing” designer. The question is, what was the class diagrams intended use?

DIY Car Radio Harder Than I Thought

I want to listen to my Nomad in my car. Turns out you can get a cable that plugs into the CD Changer port on the back of the stock stereo in my 2001 Chevy Blazer that converts it to an RCA jack for only $60. Add a $5 miniplug to RCA cable and I figured I was golden. That is, until I tried to install it.

A comedian named Rida Rutner once said she “only like cars because they take me to clothes”. I’m not a big fan of clothes, but I don’t like cars much either (I only like care because they take me to Fry’s?). Apparently, this simple sounding DIY project of “plug in cable” requires the disassembling of half the car. Well, half the dashboard anyway. I didn’t realy expect that removing the radio would require “releas[ing] the park brake release cable from the park brake lever”. Wow.

Of course, in my area of expertise I guess most non-experts would be equally lost. I’m setting up a website for some friends, so I sent them a quick email with the status, and the response came back “could you write this again, but this time in English?” 😄

Almost Hockey On Carpet

I watched the National Lacrosse League All-Star Game this afternoon. It’s not hockey, but I enjoyed it quite a bit – especially at the end. They had the league commissioner on at halftime talking about expansion. If they had a team in Seattle, I’d go.

One of the things I liked about Lacrosse is that the players all have to have day jobs. Average NLL salary is apparently around $12,000. Apparently, many of the player’s teach for their “day jobs” which impressed my wife immensely. She mentioned that this is how all sports leagues should be. I couldn’t agree more.

When I lived in LA, I used to play hockey in the amateur league. I haven’t played since I moved up due to a variety of reasons – including cost and distance to rink. But there’s an indoor facility where they play lacrosse in Redmond, less than four miles from campus. They also play inline hockey and indoor soccer too.

Another Zen Micro Feature Request

The other day, I wished my Zen Micro supported variable speed playback for podcast playback. I’ve got another feature request, this time for podcast recording. The Zen Micro features include built in microphone and support for voice recording. But there doesn’t appear to be any way to hook up an external microphone. The built-in mic is fine for leaving messages for yourself, but it’s not high enough quality for podcasting “on the go”. Additionally, since I’m using WMP 10 instead of the app that comes with the Zen Micro, I’m not sure there’s any way to sync the recorded files back down to my PC, but I’m thinking that’s just a matter of geting Notmad Explorer talking to my Zen Micro.

Update: Sometime shortly after I blogged this, Adam curry posted an episode of DSC recorded on a Zen Micro that Sean gave him. I haven’t had a chance to listen yet, but I’m interested in how it sounds and how well it worked for Adam. Do you have to hold it near your mouth the whole time? I still wish I could use an external mic.