June 27, 2005
.NET | SevenCamels.Common.Cojay
Reinventing the Wheel
Well that was fun. I learnt something about Ajax, specifically Ajax.NET, and I got a nice code browser to boot. Inspired by Scott Watermasysk's Cojax, Cojay isn't as pretty, but it will do for now. Cojay is just for demonstration purposes at the moment since I haven't bought a license for the ComponentArt.Web.UI.TreeView control just yet.
Posted by Adam Boddington at 08:26 PM | Comments (0)
June 25, 2005
.NET
Cojax
Scott Watermasysk has written a very nice code browser he's called Cojax. Very fast, easy to use, and most impressively, he only spent a couple hours on it. Let's hope he makes the source code available, but in the meantime, I'm tempted to have a crack at building something similar myself. What's on TV right now? :-)
Posted by Adam Boddington at 12:28 PM | Comments (0)
June 24, 2005
Design Patterns
Random Thoughts on the Provider Pattern
I found an entry in Wikipedia on Aspect Oriented Programming (and no, I wasn't randomly reading Wikipedia, I got there from somewhere else... honestly).
I know nothing about AOP, but from this quick overview in Wikipedia it occurred to me that the Provider Pattern is a model for handling crosscutting concerns in object oriented applications. Sounds fancy doesn't it, but it's not. Crosscutting concerns are simply the things that appear everywhere in applications -- things like logging and transactions. The crosscutting concerns get tangled with and obfuscate the core business logic, a.k.a. the business logic concerns. Yeah, everything is a concern in AOP...
Posted by Adam Boddington at 11:48 AM | Comments (0)
June 23, 2005
Blogging
All Things Blog
I'm loving Wikipedia at the moment. Here are some great links on blogs. Helpful if you want to know what they're all about...
- What is a blog and where did blogs come from?
- What kind of blog software is available for running a blog?
- Using a blog client to post entries (optional).
- Reading blogs with a news aggregator.
- Finding a news aggregator.
If you're interested in starting a blog, don't forget to check out web syndication and Creative Commons as well. Of course the Creative Commons website is also a good place to go. :-)
Posted by Adam Boddington at 09:50 PM | Comments (0)
Blogging | Movable Type
Syndicate Me
Atom and RSS feeds for this blog have always been available, but for those folks who aren't using a browser that can automatically detect them (like, ahem, Firefox or Opera), I've finally created direct links to them. See the links? Just over there to the right... down a bit... under the heading Syndication. :-)
For those of you new to blogging (like me), here is a really good definition of web syndication and an explanation of what Atom and RSS feeds are all about. While my Atom and RSS feeds could be used for a variety of (license compliant) purposes (Movable Type automatically includes my Creative Commons license in the feeds), I've mostly provided them for the majority of blog readers out there that use some form of aggregator. Let's face it, I don't blog every day, so why not make it easy for folks to automatically get my content when I finally do write something? It can be a pain clicking on a website several times a week just to find nothing new has been posted.
Posted by Adam Boddington at 04:26 PM | Comments (1)
Search Engine Optimisation
Google's Secrets
Some of Google's secrets are out -- and some of them are very interesting reading. For example, the relative high ranking of my Optimising Movable Type for Google post could be in some part thanks to my five year registration of www.adamboddington.com. Who would have thunk it? I didn't expect that, but I suppose it makes sense if the majority of search engine spammers take up one year registrations.
(Did I mention that my Optimising Movable Type for Google post is back in the rankings? Probably not, since I decided I wouldn't blog about that stuff anymore. I don't know what's changed, but it's up there.)
The full analysis is interesting reading, but in the end it mostly confirms what we already know about search engine optimisation. Organic growth of good content will lead to high quality links, which in turn will lead to a handy search engine ranking. The optimisation tips help, but good content is much more important.
The article points out a couple of pitfalls though. One is the length of the domain name registration as already mentioned. The other (well known one) is knowing who is sharing your hosting server. If you neighbour is engaged in dodgy search engine spam tactics, your shared IP address might be banned. Could be a case for getting your own IP block whether you're sharing a server or not.
Thanks to Craig for sending me this link.
Update: 23 June, 2005
There is some interesting discussion on the Google patent here. The actual patent application can be found here.
Posted by Adam Boddington at 02:48 PM | Comments (0)
June 22, 2005
.NET | SevenCamels.Framework.Configuration
Version 1.1
I've written a quick update to the SevenCamels.Framework.Configuration library. The first change is to allow regular plugins to be instantiated as needed. The second change is to require all plugins to take their key as their first constructor parameter. The last change is the conversion of all collection classes to typed collections. More details on the three changes can be found below. You can download the latest version of the SevenCamels.Framework.Configuration library, with an updated Example program, here.
Posted by Adam Boddington at 02:47 PM | Comments (0)
June 07, 2005
.NET | SevenCamels.Framework.Configuration
Class Overview
As promised, here is a rundown on the classes in the revamped SevenCamels.Framework.Configuration library. You can download the library here. Please note the license files in the download.
Posted by Adam Boddington at 02:43 PM | Comments (0)
June 06, 2005
.NET | Design Patterns | SevenCamels.Framework.Configuration
Plugin the Provider Pattern
I finally took a look at the Provider Pattern outlined by Rob Howard in MSDN's "Nothin' But ASP.NET" column. There's a Part II as well which comes with a nifty little code example. It's very similar to some work that I've already done with plugins defined in configuration files, so I thought I would abstract my work out a bit more and see if I could get it to support the Provider Pattern as well. Extending it to cater for providers was pretty simple with a little refactoring, but before I start talking about the code, lets take a look at what the Provider Pattern actually is.
Posted by Adam Boddington at 01:20 PM | Comments (0)
June 01, 2005
.NET
app.config
You learn something new every day. I've always put the config files for my console and windows applications in the "bin/Debug" directory. It's ugly, but it's always worked for me -- up until today. For some reason, with a brand new project, my config file disappeared every time I did a build. I didn't solve that problem, but I did find out that if you put the config file in the project folder instead and call it "app.config", VS.NET is nice enough to copy it to the "bin/Debug" folder for you and rename it correctly when you build. I suspect the "bug" is related to the "feature" but I'm happy now that everything works again -- and better than before.
Posted by Adam Boddington at 09:17 AM | Comments (0)

