Kevin Jensen

ASP.NET / SQL / C# Banter

Let me first say that I’m a huge football fan and I think bringing football back to Louisiana is import for the state.  That being said, I also think that it could have waited another year.

Hurricane Katrina absolutely destroyed the Superdome.  The roof was ripped off, and the entire complex was in shambles.  People have debated since then on whether the team should move or the stadium should be rebuilt.

The state decided to rebuild the stadium at a cost of $180 million. 

Here are some facts about the process:

The majority of the population of the gulf coast region is still living in Houston or Baton Rouge or Atlanta or wherever, largely because FEMA hasn’t gotten around to replacing or repairing anything but a handful of the homes and buildings and other critical infrastructure destroyed by Katrina.

Here’s who footed the bill for the new and improved Superdome:

  • FEMA: $115 Million
  • State of Louisiana: $13 Million
  • NFL: $15 Million
  • LSED Bond: $41 Million

Total: $184 Million

So that works out to 62.5% being paid for by the federal government – less than the 75% required by law, but almost certainly more than just “previous quality.”

All this, in addition to the new and improved FieldTurf (which is a substantial upgrade over the old AstroTurf playing surface).

Nothing was done to improve the Superdome’s capability as a storm shelter. It is estimated that those upgrades would cost an additional $30-$40 million.

I sure hope my free tickets are in the mail since I’m now a partial owner of their stadium.

I was asked the question today why a sql query was timing out.  A co-worker explained that he changed the ConnectionTimeout setting and it was still timing out.  I thought i’d post about the differences between CommandTimeout and ConnectionTimeout.

ConnectionTimeout is the one specified in your connection string and it is the time it takes for a connection.Open() invocation to wait until it gets a connection reference from the connection pool.  (Default value is 15 seconds)

CommandTimeout is the maximum time for a specific sql command to execute.  (Default value is 30 seconds)

First let me say that I have worked on DotNetNuke for the last five years.  It is the best open source product i’ve ever seen.  The project has wonderful developers and is always innovating.

Today they announced the formation of DotNetNuke Corporation.  This is exciting for me to see since I have been involved in DotNetNuke since the early beginning.  I’ve used the software in many projects and have built lots of custom modules.   Here is the press release:


Worldwide popularity of DotNetNuke enables new organization to pursue wide range of opportunities to benefit the community

Seattle, Wash. — September 21, 2006 — DotNetNuke®, the popular Open Source web application framework for the ASP.Net platform, today announced the formation of DotNetNuke Corporation, a new company to serve the growing needs of the project and its ever-expanding community. The new entity will focus on the management of the project, while leveraging a wide array of resources to create and distribute a superior, free, Open Source web application framework that cultivates a passionate developer community and a prosperous commercial ecosystem.

“The formation of this company reflects the maturity of the DotNetNuke project,” said Shaun Walker, founder of DotNetNuke Corp. “As the adoption rate of DotNetNuke continues to grow, it is increasingly being used as a platform for mission-critical websites and web applications. DotNetNuke Corp. exists to instill confidence that while the project continues to remain true to its Open Source ideals, it will also be backed by a company that is focused on providing professional management and stewardship for the project.”

Perpetual Motion Interactive Systems, Inc., Walker’s British Columbia, Canada-based company that currently manages the DotNetNuke® project and its intellectual property including trademarks, will transfer these assets to DotNetNuke Corp., which will be based in Seattle, Washington, Walker said. The new company will maintain the primary authority for managing the Open Source project, stewarding and distributing the source code, setting policies, managing intellectual property, and organizing the relationships between all participants in the project.

“DotNetNuke Corporation is not a typical commercial entity,” Walker added. “Rather, it is dedicated to the public benefit goal at the heart of the DotNetNuke project, which is to create opportunities and spread entrepreneurship to the world by providing a superior Open Source web application framework.”

The project continues to be successful in achieving this goal. In the four years since the DotNetNuke project was launched, it has seen its registered user ranks swell to 335,000 members and demand for its flagship product surpassing 2 million downloads worldwide. This worldwide adoption of DotNetNuke has created significant economic value both for the project and also the commercial ecosystem that it has spawned.

“This economic value is an unintended but real by-product of the DotNetNuke project’s overarching mission to create opportunities and spread entrepreneurship to the world,” Walker said. “Carefully managed, this value — and the resulting ability to generate revenue — can be used to make the DotNetNuke project self-sustaining and help keep the community open and diverse.”

In addition to spearheading the Open Source project, DotNetNuke Corp. will also focus on developing and delivering services which support the ecosystem, including marketing, sponsorships, and a wide range of partner-related activities. These activities are expected to generate revenue, but the company intends to focus on those opportunities that are consistent with the community values and public goals of the project, Walker said. This includes providing funding for aspects of the project that are difficult or challenging for volunteer teams to solely undertake such as professional marketing, large-scale platform and feature development, product certification and ecommerce initiatives, he added.

“Overall, the operation of the DotNetNuke project will remain unchanged,” Walker said. “Participants in the DotNetNuke project will not experience any difference in the way the DotNetNuke application is developed, licensed or distributed. As DotNetNuke Corp. adds resources in those areas that are currently lacking, we expect to see improvements that will have an overall positive impact on the project,” Walker said.

The current members of the DotNetNuke project management board – Joe Brinkman, Nik Kalyani and Scott Willhite – will join Walker as co-founders of the new company.

About DotNetNuke®

“Our mission is to create opportunities and spread entrepreneurship to the world by providing a superior open source web application framework which cultivates a passionate developer community as well as a prosperous commercial ecosystem.” DotNetNuke® is an open source web application framework ideal for creating, deploying and managing interactive web, intranet and extranet sites. With a rapidly growing community of over 300,000 registered users, a legion of dedicated professional developers, and an active commercial ecosystem, DotNetNuke® continues to strengthen its leadership position in the Microsoft enterprise market.

About Open Source

The basic idea behind Open Source is very simple: When programmers can read, redistribute, and modify the source code for a piece of software, the software evolves. People improve it, people adapt it, and people fix bugs. And this can happen at a speed that, if one is used to the slow pace of conventional software development, seems astonishing.

9/11

September 11th, 2001 will be a day that will be remembered by everyone.

The country changed that day, and our lives will never be the same. The terrorist indeed did exactly what they wanted. They were able to invoke pandemonium on the United States. People rushed to gas stations in fear of gas shortages. The Government shut down all major transportation vehicles and closed all large buildings.

Here is my recollection of the day:

I arrived at work at 8:00 a.m. I was working at SFA Solutions at the time as a CRM Consultant. I had a 9:00 a.m. meeting at Menttium Corporation to discuss customization plans of their Oncontact CRM package. Brett Greenberg was to meet me their. Just as I was leaving, I got a tip from a co-worker that something had happend in NYC and an explosion had occurred.

I remember jumping on CNN and the network was slower than usual. So I jumped in my car and tuned into the local news station. It took me 40 minutes to get to the office building and when I meet Brett there, we just sat in our cars and listened to the news break. They explained that a Jet had collided with one of the towers and that the building was burning.

When finally peeled ourselves away from the radio and went into the client’s building for our engagement. As you can imagine, the employees at Menttium were not in a mood to discuss anything and we just sat by a radio that they had. I plugged in my laptop and followed the news on the major news websites. (CNN, Yahoo, etc.) I’ll never forget some of the pictures and video clips they showed that day. The video of the plane hitting and the huge fireball. The people jumping out of the windows to prevent burning to death. It was the worst even I have ever seen with my eyes. It seemed like the entire country stopped that day. Again, the terrorists had done everything they wanted.

Out of all those visual challenges, one thing sticks out the most. When I was at the client’s office I heard a woman crying out loud. I walked over to where the noise was coming from and two women were trying to comfort one of their co-workers. She was watching the footage on a small T.V. and she was crying and mumbling words that nobody could comprehend. We could not calm her down nor get her to stop crying. At that exact momemnt, I had flashbacks of watching peoples reaction to the Kennedy Assassination. I wonder if this is how people felt?

It is now 5 Years later and we are still seeing the effects of that day. Our transportation system has been re-vamped. We have gone through two wars and terrorism seems to be much closer to home than it was for me growing up. I do feel safer today than I did 5 years ago. I think a lot of great things have come out of the 9/11 attacks. I loved the way the country came together. I loved seeing people on bridges waving American flags as I drove under them.

I’m very thankful for all the men and women that were involved in search/rescue teams on that day. There were a lot of hereos that did/didn’t make it out of that rubble. I personally salute each and every one of them. I also thank the men and women in Afghanistan and Iraq. These people are protecting the freedoms that we take for granted and make us who we are. You are brave and we are proud.

 

Well the hype of Web2.0 has certainly revitalized Javascript in the web development community.  Just when you think it’s dead…  I look forward to researching each of these libraries more thoroughly and then incorporate the best suited one into Kinetic CRM.

Here is the summary of the 4 main libraries as described by Sitepoint.

 

Dojo:

The great thing about Dojo is that it’s so rich in features. The Widget system provides a raft of useful controls such as a DatePicker, a RichText widget, as well as a considerable number of controls that you would expect to find in something like Microsoft’s MFC. In addition to this, you can build your own widgets on the framework using HTML, CSS and JavaScript (see this article for details).

But JavaScript need not be limited just to the browser, and Dojo is designed with this in mind. Dojo’s platform independence could make it an interesting platform for desktop widget development, as well as many other potential applications. As an example, Open Laszlo recently announced that it was licensing Dojo for its JavaScript implementation of the platform.

Dojo’s design has quite a Java-like aesthetic without trying to be Java. In fact, I’d say Dojo utilises JavaScript as a language exceptionally well. One downside of the library’s design, though, is the sometimes long package strings that you need to type out to call the methods or instantiate the library’s objects — it would be nice if Dojo could provide a way to “mix” a package into the global or local scope. This would provide ready access to a certain package if you planned on using a lot of methods from it, although I’m not sure how easily it could be incorporated.

Additionally, for all its features, Dojo is completely missing any functions that could aid the selection of DOM elements — something that’s quite fundamental to DOM Scripting. It seems to be quite a gaping hole in the library — it would be great to be able to select elements using CSS and/or XPath. Similarly, while some of the objects in the library seem to support a kind of iteration framework, Dojo is lacking in methods for iterating though arrays and collections, a task which seems to make up the bulk of DOM scripting tasks.
And at this point in time, documentation for Dojo is not at a premium. The official Dojo site contains some API documentation that’s far from complete, but it does have some well-written articles highlighting areas of the library. The JavaScript community has yet to embrace the daunting task of documenting Dojo, though, so independent on the topic articles are few and far between.

 

Mochikit:

First off, Mochikit’s logging framework is excellent. Simply add logging statements:

log(“This is so much better than alert”);
log(“ERROR This thing is broke”);

 

You can then use Mochikit’s bookmarklet to open a log window and view your log messages. You don’t need to add anything into your pages or include any extra script — it’s truly effortless and beats alert any day.

Mochikit also makes full use of JavaScript’s functional programming features to really enhance and simplify the library’s API. For instance, if you want to sort a group of objects by their name properties, you can use keyComparator to create the sort function for you:

var sortedByName = people.sort(keyComparator(“name”));

 

There’s also the useful counter function. This creates a function which returns a value that’s incremented by one every time it’s called:

var nextId = counter();
nextId(); //=> 1 
nextId(); //=> 2 
nextId(); //=> 3

 

There’s also a full set of Python-style iteration functions, such as forEach, map and filter, which are sure to see heavy use.

As far as documentation goes, Mochikit has some very good API documentation, but details on some very basic parts of the library are a little lacking. In particular, after reading all the docs, watching the screencast and writing a few Mochikit-based scripts, I’m still unsure which version of the library is best suited for any purpose. Do I use the packed version or the main Mochikit.js? How can I load individual parts of the library?
However, Mochikit does have a mailing list, so answers to these kinds of questions are, no doubt, not far away. All in all, Mochikit may not be what you’re used to in terms of a JavaScript library, but it’s beautifully designed and I’m looking forward to seeing where Bob takes it.

 

Prototype/Script.aculo.us:

Convenience is king with Prototype. Most notably, the $ function (which selects elements by id) and the $$ function (which selects elements using CSS selectors) provide extremely quick access to elements on the page. The $$ function even supports CSS3 selectors — most browsers don’t. When you use it in conjunction with the enumerable methods and Prototype’s other convenience methods, you can come up with some pretty concise statements. For instance, to hide all div elements with a class of /#c#”obscene”:

$$(“div.obscene”).map(Element.hide);
$$(“a[href='http://']“).each(function(element)
 {
   Event.observe(element, ‘click’, openNewWindow);
 }
);

 

As we all spend most of our scripting time working through lists of DOM nodes, this buys us a lot of power indeed. The compact and intuitive API really is the killer feature of Prototype for me.

Scriptaculous is a great, extensive effects library with solid drag-and-drop support that, again, is ridiculously easy to use. Consider this:

new Draggable(‘my_element’);

 

This produces an element that the user can drag. You can then add further configuration using object notation, like this:

new Draggable(‘my_element’,
 {
   revert : true
 }
);

 

Documentation was very limited for a long time, but recently many people have filled the gap, making Prototype one of the most widely documented of the big JavaScript libraries, albeit that that documentation is a bit splintered. There are no central API docs, but there’s a whole raft of libraries that cover parts of the library, as well as Jonathan Snook’s excellent cheat sheet detailing the entire library. The prototypedoc.com site also maintains a pretty thorough list of articles about Prototype to help you get started with the library.

 

Yahoo UI Library:

The documentation provided by Yahoo! for the library is excellent. The site has formal API documentation, plenty of examples, a mailing list and some brief but clear explanations of the main features of each part of the library. However, as with Dojo and Mochikit, the library has not quite managed to capture the imagination of the developer community as much as Prototype, so independent articles are still thin on the ground at the moment. The best place to check for articles about YUI is Yahoo! developer, Dustin Diaz’s site .

As I implied above, the event handling implementation is one of YUI’s main strengths, and the fact that it is decoupled from the other parts of the library means that it could well see a lot of use independently from the rest of the library. However, the rest of the library, while being very functional, doesn’t contain as many innovative features as the likes of Mochikit, Dojo and Prototype, and because of the long package strings, coding with YUI sometimes feel rather long-winded.

Yet the growing list of components is very rich. For instance, the Calendar component supports several languages and multiple date selections, and the Container classes give you the power to implement all kinds of windowed interfaces. One downside of using these components is that they tend to be very heavily dependent on the other libraries; in discussing this, Dean Edwards highlights as an example the treeview control, which uses around 260K of JavaScript.

 

So Who Wins?

Well, the short answer to this question is that there is no real stand-out solution that excels in all situations.

Prototype is the most comprehensively documented — albeit in a splintered way. It is also seemingly the most widespread library at the moment, possibly because it really excels at the kind of tasks developers complete most often, like selecting nodes and working with lists. Of course, it’s going to be the natural choice for Ruby developers because it sticks to many Ruby idioms. One other great thing about Prototype is that it has the mighty weight of Rails behind it and, as a result, there are many developers providing bug fixes and patches to Prototype. Finally, it offers a wealth of add-on libraries such as scriptaculous, Rico, and Behaviour that make it a good, solid choice for many developers.

On the other hand, Prototype has a very under-developed event handling framework, which is a major problem for an otherwise powerful library. Also — and this is purely a matter of taste — Prototype’s super-pragmatic approach to things (like the heavy use of the innerHTML property) can seem a little “dirty” sometimes.

For smaller projects, the decoupled design and fully-featured components of YUI may well be a big plus. It’s very easy to drop in the Connection Manager or the Event library and get going on some basic tasks without having to traverse too much of a learning curve. On the whole, though, it doesn’t have much to offer in terms of cool or powerful features.

Dojo is definitely the daddy of the bunch — you can almost always rely on it for the most powerful implementation of any feature. And Dojo’s focus on performance is an absolute godsend if you’re planning a very JavaScript-intensive application. The widget implementation also has enormous potential for building complex UIs. However it really is quite big — both in terms of its file size and the size of the API — so I wouldn’t recommend it for smaller projects.

In my opinion, Mochikit is by far the most well designed and well thought out of the four, and Python/Twisted/Nevow developers will definitely find its API very familiar. However, its documentation is a bit thin in some places (for instance, I’m still a little unsure as to which version of the Mochikit distribution to put in the script tag). Also, some of the idioms and functional techniques that it uses may be confusing for beginners or those who aren’t well versed in functional programming techniques. However, it really is worth a look. Mochikits’s capabilities will probably surprise you — the createDOM function, iteration tools and the asynchronous architecture are a work of art.

My 2006-2007 NFL Picks

Posted by kevin under Personal

NFL

Well it’s that time of the year again, and I’m going to present my pre-season football picks.

Each year I rank every team on how they will finish in their division and then pick a super-bowl champion

Here are my picks:

AFC East

  1. Miami Dolphins
  2. New England Patriots
  3. New York Jets
  4. Buffalo Bills

I think Daunte Culpepper is going to light it up for the Dolphins this year and R. Brown will rush for a 1,000 yards.

AFC North

  1. Cincinnati Bengals
  2. Baltimore Ravens
  3. Pittsburgh Steelers
  4. Cleveland Browns

Carson Palmer will have another great season and will win the AFC North. Without ‘The Bus’, the Steelers are going to be much weaker. I love McNair and the Ravens to grab a wild-card spot.

AFC South

  1. Indianapolis Colts
  2. Jacksonville Jaguars
  3. Houston Texans
  4. Tennessee Oilers

This is the last year the Colts will make a run. If Payton doesn’t get it done, he never will.

AFC West

  1. Denver Broncos
  2. San Diego Chargers
  3. Kansas City Chiefs
  4. Oakland Raiders

I love the Broncos. I think they have the best defense in the league. Look out for them in the playoffs this year, especially if they get home field advantage. I don’t believe enough in Philip Rivers in San Diego until he can prove me wrong as a starting Q.B.

NFC East

  1. N.Y. Giants
  2. Dallas Cowboys
  3. Washington Redskins
  4. Philadelphia Eagles

This division could be the hardest to pick. I think the Giants will ride the coat tails of Manning and Parcels will have the Cowboys playing much better. I think the Redskins are overrated and the Eagles don’t have enough toughness. I have a hunch McNabb doesn’t last the entire season.

NFC North

  1. Minnesota Vikings
  2. Chicago Bears
  3. Detroit Lions
  4. Green Bay Packers

I think the Vikes will take this terrible conference with a 9-6 record. The Bears still need a quarterback and the Lions and Packers need a facelift. The Vikings get killed in their first playoff game.

NFC South

  1. Carolina Panthers
  2. Atlanta Falcons
  3. Tampa Bay Bucaneers
  4. New Orleans Saints

If Steve Smith can stay health this year, the Panthers will make another playoff run. They will just edge out Mike Vick and the Falcons.

NFC West

  1. Arizona Cardinals
  2. Seattle Seahawks
  3. St. Louis Rams
  4. San Fransico 49ers

Look out for the Sheriff. Denny Green is going to take his Cardinals team to the mountain top. Look for Larry Fitzgerald to have a pro-bowl season.

Well That’s my Division Picks. My Pick for this year’s Super Bowl Champion is: Baltimore Ravens.

That’s Right! I picked the Ravens to stun the world and Win the Super Bowl as a Wild Card. I guess I’ll have to come back to this in January and see where I stand.

Windows Vista

Microsoft has released Vista RC1 to the public. I plan on installing it this weekend.

http://download.windowsvista.com/preview/rc1/en/download.htm

Signatures of the ISO files:
32-Bit
MD5 hash: 22486e815a38feffd9667317dfeec55a
SHA1 hash: e00b4ebbc81fb420cf047973b95a9cfb7cdf51b7
http://download.windowsvista.com/dl/preview/rc1/en/x86/iso/vista_5600.16384.0608292230_x86fre_client-lr1cfre_en_dvd.iso

64-Bit
MD5 hash: f3a385aae6e4dea9226e31d9f1148b56
SHA1 hash: 8e4de7a72c828a3543ff1663243eb0836da07eea
http://download.windowsvista.com/dl/preview/rc1/en/x64/iso/vista_5600.16384.060829-2230_x64fre_client-lr1cxfre_en_dvd.iso

download the .isos directly only with proper http-referer headers. so click the two html links ontop and start there.

MN Vikings

The Minnesota Vikings open their 2006-2007 season Monday night at 7:00 p.m. the against the Washington Redskins. It will finally be a test to see how good this year’s team is and how well some of the new players will come together.

My predictions for the season this year are 8-8. I still don’t think Brad Johnson is the answer and our wide receiver core looks pretty thin. If the defense can stay healthy, they should be a large improvement over last years squad.

GO VIKES!

Create a wordpress theme

Posted by kevin under Development

Since I have just converted my blogg to Wordpress, I thought I would post a link on how to build a Wordpress theme. I plan on converting a couple of simple websites that I have to Wordpress using this guide.

Johan Santana pitched another gem tonight!. The Twins are really playing well coming down the stretch and i’m looking forward to the final series with the White Sox.