Thursday, September 29, 2005

$100 Learning Appliance

The way we learn is changing. The current discoveries in regards to how we learn, combined with the deceasing price of computers are on a convergence. Fold this together with the emergence of new learning theories and techniques. The timing of a $100 laptop couldn’t be better. It will be interesting to see the impact of these computers on the young bright minds of the emerging-economic world.

Tuesday, September 27, 2005

Howe Sound and Google Maps API

I was wanting to learn more about the AJAX programming model so I figured why not hack google maps. The nice thing about it was that google has published an API for how to utilize their maps and customize them for your use. What I wanted to do is create a map which would describe Howe Sound, it’s islands, navigational aides, flora and fauna, inter-tidal zone, etc. I want to create a rich media learning experience. So I set out to use google maps as the starting place for this learning experience. It was relatively easy. Within half a day I had positioned a number of markers on the map, giving textual descriptions of the islands and providing hyperlinks to pages which would eventually give deeper descriptions of the islands. As you can imagine, I deepened my understanding of a number of things to get this done. I now know more about longitude and latitude, JavaScript, CSS, XML and each island itself. Yes, this project is a work in progress… Check back later and see how it improves…

NUnit and ConnectionStrings

Thanks to one of my co-workers I stumbled across how to get NUnit working with externally hosted App.config files in .NET 2.0 and VS 2005. I wrote test harnesses in NUnit for all the database classes I had developed. The connectionString was stored in the App.config file. Once I figured out that I needed the name of the config file to be the same as the “[appname].dll.config” stored in the “bin/Debug” directory then the NUnit tests worked. Then came the issue of deployment. We have a build server that uses cruisecontrol.net to manage our build and I needed to get the “[appname].dll.config” to be redeployed from my sandbox computer onto the build server. But how to deploy a file targeted for the “bin/Debug” folder. Nice thing about Visual Studio is you can set the property on the file so it gets copied from your project directory to the build server. Nice…

Monday, September 26, 2005

Cognitive Flexibility Theory

I love being in the flow… Over the weekend I was discussing Cognitive Flexibility Theory with a friend of mine. He is a builder of high-end architectural homes on the west coast. He has innovated in home construction by using lazer beam levels, mathematics and ‘good-old’ hand drawing. He’s really pushing the bounds of residential home construction. We were discussing how he got to this level of innovation, and his big challenge is training the employees of his rapidly growing company in how to do what he does. He described to me how he learned what he does… He described Cognitive Flexibility from an unknowing real world perspective. All very interesting… What I also found interesting in our conversation is that we needed to include the fact he was a classically trained musician as an attribute of his knowledge acquisition, processing and implementation.
Then this morning I was reading my daily RSS feeds and came across some stuff about Web 2.0 which then took me to a concept map.http://www.cetis.ac.uk/members/scott/blogview?entry=20050125170206

Sunday, September 25, 2005

MVC, a pattern or an architecture?

Is the Model View Controller (MVC) a design pattern, a framework or an architecture? I was having a discussion the other day with all of the developers on our team. We were discussing if the MVC was a pattern, a framework or an architecture? I said it was a pattern, two others said it was an architecture and the third said it was a framework. Being a thorough guy, I set out to prove it was a pattern.
I started out by getting definitions of a pattern, a framework, and architecture. This is best done yourself, but this is what I found;
  • Architecture as defined by the Software Engineering Institute “…is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them.”
  • When in doubt, check the wiki. The wikipedia defines a framework as “…a reusable design for a software system (or subsystem). This is expressed as a set of abstract classes and the way their instances collaborate for a specific type of software.”
  • Again, check the wiki. A “… design pattern is a general solution to a common problem in software design. A design pattern isn’t a finished design that can be transformed directly into code; it is a description or template for how to solve a problem that can be used in many different situations.”
So then I went the the “bible”, Design Patterns by Gamma, Helm, Johnson & Vlissides (Gang-o-Four) to see what they said. They referred the MVC as though it was a pattern, they never explicitly said it was a pattern. They said it was a triad of classes and that when you looked inside the MVC there were patterns. So from this I would not say the MVC is NOT a pattern but an architecture. Then of course I’ve been wrong before…

Friday, September 23, 2005

Patterns in .NET

If your into design patterns and your on any kind of a learning curve in implementing patterns in .NET and C# I’d suggest you read the descriptions of patterns from the data & object factory; developer training website. The great part of the site is they also provide samples.

Tuesday, September 06, 2005

Looking forward into education

There are many changes afoot with all the new technologies and the people who use them. In particular, the digital natives and how they will use technology 10 years from now… What I was pondering was how will they engage “traditional” education for their children? Is the concept of home schooling going to change with ubiquitous online education? Maybe our education system should be leaning toward a more metacognitive or “self-directed” approach.