Currently focused on the technology important to the self-determined learner, completing my red seal as a carpenter, learning all I can about using AI in the residential building trades, and in building year-round greenhouses for Newfoundland and Labrador.
Friday, September 30, 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.
Wednesday, September 28, 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…
Tuesday, September 27, 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
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
Monday, September 26, 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.”
Saturday, September 24, 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.
Wednesday, September 07, 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.
Saturday, August 13, 2005
Test Driven Development; Microsoft vs. OpenSource
So why pay Microsoft when you can get the tools for free? Currently, I am team lead for a very talented group of people. One of the things the team has agreed to do is embrace eXtreme Programming (XP) and Test Driven Development (TDD). We have been making awesome progress on all fronts. Every day we deepen our understanding of XP and we have solidified our build, test and deploy platform. Having a TDD approach will assist us to become more nimble in meeting our customer needs while ensuring we have a quality product through time. Another interesting thing we are doing is using Visual Studio 2005 (VS2005) and .NET 2.0 for our development platform. Yes, they are in beta, yet we are wanting to embrace the .NET platform for the next major release of our server product so we figured we would jump right into the latest toolset. What we have found is that the OpenSource tools for our TDD work very well in combination with VS2005. We are using; MSBuild, Nant, Nunit, Ndoc, Ncover and CruiseControl, and we hope to integrate FxCop soon. Having all these tools working together will allow us to focus further on the business needs and not the technology implementation (and if our refactoring efforts break anything…) To get better insight into using these tools I do suggest you look at their respective sites and do some further reading, in particular; http://www.codeproject.com/dotnet/tdd_in_dotnet.asp this is an excellent introduction in using Nunit and Mock objects. So, now I get back to the title of this entry, why spend the additional money on the Microsoft Team Services (which provide you the TDD tools) when you can get it for free through OpenSource?
Saturday, July 30, 2005
singleton pattern
So how cool is that. I was running through one of the new MSDN enterprise application blocks in the debugger (IMHO, the best way to get to know a piece of code). And I was stepping my way through and what do I see but an URL to a blog entry explaining the singleton pattern, and why it was utilized in this particular situation. Some of the best sample code I’ve ever seen…
Thursday, July 28, 2005
./sqlexpress
I love diving into new technology. So much to learn, so many cools things. A whole lot of reading going on. So I’ve installed Microsoft Visual Studio 2005 (VS2005) and am wanting to work through a number of the samples. In particular, samples related to database / n-tier development. And VS2005 has a lot of new features for databases and database development. But when your learning you need to start somewhere. And I decided to start with the Microsoft MSDN Enterprise Library June 2005. This is a library of source applications for you to take a part and learn from. So I download the files, and begin to set things up. This is great, so to get the database samples running I need an instance of SQL Server. And fortunately, one comes with VS2005, it’s known as SQL EXPRESS or MSDE (by its previous encarnation). One problem it has no GUI. So how do you create databases, tables, etc. Well you could do it from within VS2005. But I’m a database guy at heart so I want my query window. Again fortunately, there is Express Manager a free download. If you used the default VS2005 default setup you need to logon to a server instance of SQL EXPRESS. This one got me, I was thinking “localhost” would work, nope! I ended up discovering that the instance you logon to is.\sqlexpress (that’s dot slash sqlexpress) there you have it. So much to learn, so little time… fun, fun, fun…
Wednesday, July 13, 2005
Open Courseware
Evidence toward a trend. Over the last three years I have developed the though that curriculum should be developed once and used by everyone. At this time, on the planet earth, there must be a huge duplication of course material and curriculum. I wonder how many 1st year spanish courses have been developed, and how many more will be developed. Or what about 1st year calculus. The duplication of course material and effort in creating and delivering this material must be staggering. What a waste of Masters and PhD educated peoples time. Why not just develop the course material once and have it shared around the globe? It would all become a part of the creative commons. It could all be a part of a SCORM type standard which uses a UDDI type directory service for the discovery of the course material required by either student or teacher. We can see the beginnings of this with the opencourseware site of MIT. This isn’t a matter of if a global repository of courseware will be available, but when it will be available…
Wednesday, June 22, 2005
Agile Database Techniques
One in every 10 technical books I read is different from the rest. And recently I’ve read some good ones, in general they all lived up to my expectations. These books include;
- User Stories Applied by Mike Cohn
- Extreme Programming Explained by Kent Beck
- The Non-Designers Design Book by Robin Williams
Wednesday, June 08, 2005
Software Architecture needs Process
Today we were discussing staff build up for a company I am involved with. Hiring staff is an interesting and very complex process when you think about it. Finding the right person to fill a job is very hard. Particulalry when you are building upon a staff of a 24 person start-up. Getting the right people, in the right job, at the right time, can have a huge impact on success. All this said, one of the other leads asked me what I wanted to do. It was an easy question to answer; “Process and architecture, I want to ensure we have a good process in place so I can start influencing architecture. Without process how can I ensure that the architecture I drop in at the begining of the development process, pops out at the end. You need process to implement architecture.” Quite a brash thing to say, and true. It would seem that theCarnagie Mellon Software Engineering Institute would agree with me.
Thursday, May 12, 2005
Write a business case
I’ve been a software developer for over eighteen years. I’ve seen a lot of success during that time, I’ve also seen failure. As many of you who follow my blog know, I have a strong belief that software quality has a positive relationship with start-up success. I have presented information to support this belief. What I also believe is that to have software quality you need strong leadership and a well articulated product vision. The whole company needs to know where the product is going and why. This allows people to work hard and with creativity, yet also know the bounds of their endeavour. They also know what is on the horizon and what the technology needs to be able to do to meet product and customer needs. Writing a technology strategy is not easy task. It takes an understanding of the future, and that’s tough. What can help with articulating the company vision is to write a rock solid business case. And their a couple of places to help get you started. First, query your government, they are always interested in encouraging innovation its good for the national economy. Check out the Government of Canada’s template for “Creating and Using a Business Case for Information Technology Projects“. Also, there are always a number of companies who put together competitions for innovation. Check out Telus’ offering in support of the technology start-up. Either way, do your homework, create a strong vision, articulate your business plan and don’t get bogged down with it, start running…
Friday, May 06, 2005
Bidirectional Traceability
I was busy studying for one of my Masters courses and I’m having to describe a teaching scenario that I have utilized in the last few years and identify if it would be considered behaviorist, cognitivist or constructivist. All very interesting and it got me thinking about a course I taught about software development methodologies. This was a two term course where we covered Rational Unified Process, Microsoft Solutions Framework and Capability Maturity Model. And yes, a great course in my mind. I was reviewing the learning outcomes of the course and reflected upon them. I came to the conclusion that two of the most important factors in methodology for software development are; strongly defined roles and responsibilities and bidirectional traceability. The roles and responsibilities keep people motivated cause there is no question to what they have to do and the traceability forces quality. The course I taught would be considered constructivist. It build on ideas taught in the first course and forced the students to participate together in problem solving activities.
Wednesday, May 04, 2005
Look at AJAX and Greasemonkey
So I’ve been teaching a course on ASP.NET. And it’s a funny thing that after all my time spent learning about code behind forms, server side controls and Microsofts’ view of the MVC pattern I can no longer see the benefit of ASP.NET. Just to note I was a huge ASP fan! And certified in four MS certifications. I’m a believer in XML / XSLT and feeding these via business tier (or façade tier) components. All this pushes me into AJAX and Greasemonkey. AJAX is Asynchronous JavaScript And Xml. gMail uses it and so do other popular sites. Its essentially JavaScript acting upon the browser DOM with provided XML data to render the UI. It allows the browser to do things against the server without hitting the submit button. Cool and very, very powerful when you wrap your head around it. Next is Greasemonkey, this is a huge innovation which could render business models ineffective, or so some think. Greasemonkey is best explained by plagerizing the mozzila site, “Greasemonkey is a Firefox extension which lets you to add bits of DHTML (”user scripts”) to any web page to change its behavior. In much the same way that user CSS lets you take control of a web page’s style, user scripts let you easily control any aspect of a web page’s design or interaction.” Either way, the UI is going through another iteration. In my mind, its one of the technologies which changes most frequently. Enjoy the added user experience this iteration is providing.
Wednesday, April 27, 2005
Technology won’t be proprietary
The rate of technology change is staggering. It’s faster now than it’s ever been. The internet is becoming a utility like our electricity, water works, roads, etc. It’s readying itself for it’s teen years. And you think it’s being a toddler was exciting. Just you wait. OpenSource will become mainstream popular. Keep in mind OpenSource will still only be a teen and in the beginning of its teens at that. What will be really interesting is when OpenSource discovers its place in about five to seven years, just as it becomes an adult. All this technology advancement will force more and more technology infrastructure into becoming utility. It happened to the backbone, it’s happened to TCP/IP, it’s happening to the net, now we are jumping up a level. Applications are also becoming utility; gmail, thunderbird,firefox. The next major step will be identity management and the infrastructure to keep all things personal. This is where OpenSource will begin to make it’s presence felt. People will not want their identity management to be held by anything proprietary. So people will elect something closer to an OpenSource model. What that is, I don’t know. What I do know is the utility applications infrastructure will become a part of our everyday life, like roads and electricty, and it will not be proprietary nor will it be pure OpenSource.
Wednesday, April 13, 2005
VB, Refactoring & .NET
So as I settle into my new job I am looking into many things. Mostly focused on continuous improvement, the SDLC process, having set iterations (heartbeat) and deeper quality. Given the bulk of the server code is in VB6 I’ve been searching for artifacts to assist in the inevitable move to .NET. I came across this great refactoring description for VB. Enjoy…
http://www.codeproject.com/vb/net/Refactoring_elixir.asp
http://www.codeproject.com/vb/net/Refactoring_elixir.asp
Wednesday, March 23, 2005
Software economics and code quality
So, I heard back from the NRC after I asked about software quality, start-up success and CMMI. They got back to me very quickly with a good nugget of information;
I just have one comment… using CMM-based assessment as a proxy for quality is not a good idea. CMMI is a process model, and as such does not really address product quality (it just assumes that heavy process = quality, and advocates measurement).So I continue my search for the truth about start-up success and software quality. I just finished re-reading a great paper named “Big Ball of Mud“. The paper is all about softwares defacto implementation architecture. What i have gleaned from this paper is “use an XP style methodology and refactor, refactor, refactor.”
Wednesday, March 09, 2005
NRC and Software Economics
I think I may have stumbled across a source of information for my software quality and start-up success relationship query. If you have been reading my blog you will know by now that one of my threads of activity is looking for quantitative evidence that software quality and good software engineering practices have a positive influence on a software start-ups success and ROI. Well, I’ve become frustrated with the challenges I have encountered in not finding quantitative evidence. So, I started thinking I should initiate a formal research project, and given my past positive experiences with IRAP and the NRC I could approach the NRC about my query as a research project. So during my searching of the NRC web site I found that they already have such a project underway. I’ve initiated contact, I’ll keep you updated as I discover more information.
Subscribe to:
Posts (Atom)