Friday, July 4, 2008

SharePoint Training




About a week ago I finished a 5-day course for Microsoft SharePoint administration. SharePoint is a collaboration platform that encompasses functionality including content management, wikis, blogs, files sharing (including file check-in/check-out/versioning), workflow/BPM (Business Process Management), BI (Business Intelligence) integration with MS Outlook/Exchange, integration with other third party ERP (Enterprise Resource Planning) platforms such as Oracle and SAP via the BDC (Business Data Catalog), and an amazing search engine to crawl and index all of these data sources.


The convergence of all of this functionality into a single platform is aggressive. There is room for improvement in some of these areas. For instance a comparison of the document management in SharePoint may not quite be on par with Stellent but it's pretty good.


MindSharp is just a fantastic organization as well. If you need SharePoint Training I can't stress this enough: you need MindSharp. Ben Curry was the trainer for the class I took and he is the most knowledgible, dynamic, student-focused trainer I've ever had the pleasure of listening to. In addition to being a first class teacher his books on Microsoft Press are on par. His titles include Microsoft SharePoint Products and Technologies Administrator's Pocket Consultant and Microsoft Office SharePoint Server 2007 Best Practices (just published). In addition he contributed material to Microsoft Office SharePoint Server 2007 Administrator's Companion by Bill English (founder of MindSharp).

Saturday, February 9, 2008

Continuous Integration

Hands-down best Continuous Integration book on the market today. Continuous Integration is an implementation whereby every time a code file is checked into source control a series of actions is automatically kicked off. For example:
  1. Compile the code contained in the files being checked in. If it doesn't compile an email is fired off to the developer who checked in the offending code, asw well as the tech lead, etc.

  2. Run all unit tests written for the code being checked in.

  3. Run integration tests between the code being checked in and the rest of the application or component.

  4. Run QA tests on the code being checked.

  5. Run code review tests on the code being checked in.

Most likely you would not do all of the above with every check-in. For a .NET application you might use CruiseControl.NET and NUnit. The seminal CI article can be found here. It is considered an integral part of many Agile approaches but clearly holds great value in just about any development/SDLC environment.

Great Classical Music Site


If you're into Classical music Deutsche Grammophon has a great online music store.

Sunday, January 6, 2008

2007 Lists from SD Times

SD Times recently published several lists for 2007, including the following...
  1. Catching Up With Recommended Reading.

  2. The Best Sites for Developers.

  3. Best Blogs of 2007. I'm adding most of these to my Bloglines.

Tuesday, January 1, 2008

New Rationalist Videos

Two new fantastic sets of secularist/atheist videos are now available. The general focus of both of these efforts is general apprehension over the rise of fundamentalism in the world today. Specifically, concerns include the prominence of religiously motivated terrorism, politically

  1. The so called "Four Horsemen" (Richard Dawkins, Daniel Dennett, Sam Harris & Christopher Hitchens) are available here.

  2. The Second annual Beyond Belief symposium is a refreshing followup to the first, whose focus seemed to be "the new atheism". Beyond Belief is a consortium of well-known academics and scientific professionals focused on faith in an age of reason. My favorite sessions are those focused on recent research, in particular David Sloan Wilson (partly a response to Dan Dennett's presentation), Jonathan Haidt, Gregory Clark, and Pat Churchland. John Allen Paulos' presentation was enlightening. I was particularly interested in Scott Atran's presentation regarding terrorism. Sam Harris' speech was excellent as well.

Friday, September 21, 2007

Excellent Test Driven Development Article

A friend sent me the following Code Project link:


This is a really good article about Test Driven Development. It includes an NUnit primer with some history and context thrown in. Although it was last updated in 2003 it's still very relevant.

Sunday, September 2, 2007

The Future of UML and the American Programmer


The UML (Unified Modeling Language) has been in existence for some time now. As a developer I've been using Class Diagrams, Sequence Diagrams, and Activity Diagrams for years. In fact I just gave a presentation on UML to my team and I'm scheduled to give the same presentation again in a few weeks to some other interested developers in my company.

The OCL (Object Constraint Language), an extension of the UML, has been in existence for roughly the same amount of time and is a necessary ingredient to bring MDA (Model Driven Architecture) to fruition.

The vision of the OMG (the consortium that owns and maintains the UML) is that in the near future all applications will be written using only a modeling tool. There will be no "code base" to maintain (at least in the current sense of the term). Models will compile straight to machine language. Obviously we are not there yet. Jos Warmer & Anneke Kleppe in their book The Object Constraint Language: Getting Your Models Ready for MDA describe a series of five Modeling Maturity Levels (MML if you can stomach another three letter acronym) analogous to the CMMI levels. The most advanced MML, level 5, known as "Models Only" is achieved when "No adjustments need to be made to the resulting code." I assume this will be due to (1) development tools indicating to the developer that a model won't compile, (2) the abstraction levels being such that the mistakes we as developers make in our code today being nonexistant - we will have other problems to fix, and (3) the conceptual gap that exists today between code and the actual business model being reduced.

All of this raises some interesting questions. Although the MDA Initiative was announced by the OMG in 2000 (if memory serves correctly) how many more years will pass before a tool exists that allows MML Level 5 to be achieved? Will it ever happen? More importantly to those of us who are already feeling the squeeze from watching so many of our jobs go overseas to countries with lower labor rates, will business analysts soon be competing with us as well? Will tools advance to the point that many business people will be doing their own application development?

With regard to the MDA vision: Yes I think in some form, in some way, development tools will eventually achieve the abstraction level promised. Programming languages have progressed from machine languages to assembler languages through to today's high-level object oriented languages (with trade-offs at each transition) in the same way. Advances in hardware technology have contributed to this evolution as well. But how long this will take or whether the current MDA standard will be the winner are questions I don't have the answer to.

As to the plight of the North American programmer: Yes more people from different disciplines will indeed encroach on what was previously programmer territory. In the past application developers have been forced to change as staff cutbacks due to economic pressures have forced them to interact more with stakeholders and take on roles previously handled by project managers and business analysts. More and more, programmers are being forced into the corner of ROI (Return on Investment). Agile Methodologies are also working to change thinking about the Application Development Lifecycle and the programmer's role in it. Ten years from now the role of programmer will be different than it is today, no doubt impacted by new methodologies and tools. I think those who wish to remain on the same career path (corporate developer) must continue to learn the business they are supporting, continue to improve their rapport with business stakeholders through communication skills, and continuously retrain themselves as new technology lifecycles appear. This is not much different than what many of us have already been doing.

If you want to remain in the field of programming stay on top of UML, OCL, & MDA. Learn and be on the lookout for possible alternative paradigms such as Software Factories. Learn as much as you can about competing SDLC Methodologies (Process Models) and ALM tools. Learn how your company's business model works. Good night and good luck...

Saturday, August 18, 2007

Ontology

Ontology = Schema. It could refer to a database schema but more often it is in the context of the W3C's Semantic Web initiative. Specifically, the RDF - Resource Description Framework. Earlier philosophical definition - somehow related?

Tuesday, August 14, 2007

Multi-Touch

There's something new and interesting going on at Microsoft called Surface. It's based on a concept that has been around since the early 1980's (Wikipedia has a pretty nice backgrounder). It's called Multi-touch and it is really quite amazing to consider. MAKEzine has a nice little article for you hackers out there. The first thing crossed my mind watching the Surface demos was the movie Minority Report - the Wikipedia article mentions this as well. Actually Spielberg hired a number of professional "futurists" during the production of MR (for more on this see the Production section of this Wikipedia entry).

I rode home on the train this evening with a good friend who actually has a working prototype of something similar to Surface in his basement, though on a smaller scale. He's using an Acrylic screen that he purchased from Lowe's, a repurposed web cam, and some LEDs that he's sanded down. He explained that technology approach he is using is something called FTIR. What surprised me was that the most popular approach to Multi-touch is IR-based (infra red). I Can't say I completely comprehended everything he was trying to convey but I was fascinated.

Another thing Multi-touch brings to my mind is the whole UbiComp movement. I'm working my way through a great book on the subject, "Everyware - The dawning age of ubiquitous computing" by Adam Greenfield.

Fantastic Microsoft Video Training Library

On Microsoft's ASP.NET site they have amassed quite a few training videos available for free at http://msdn2.microsoft.com/en-us/asp.net/bb498194.aspx. There are dozens on AJAX alone.