March 2005 - Posts
He never did it, poor Michael Jackson, as he makes abundantly clear in
this defense.
One of the free ebooks Microsoft released while ago is Application Architecture for .Net - Designing Applications and Services. It's a little bit dated now but it still contains some valuable content. One of the nice points it contains is a picture that Microsoft use in quite a bit of their literature:
It's one of the pictures I try and keep in mind when architecting because I think it displays a nice separation of concerns. I've still not seen a great explanation for the difference between Business Entities (8) and Business Components (4), but I've come up with a few of my own ideas. One way I see they could be implemented is basically to contain your "business data" (+/- properties) in the BE's and business rules (+/- methods) in the Business Components. Obviously this is a simplified explanation though, but it sort of explains some of the thinking of the approach.
Anyway, 2 aspects of the picture have bugged me for a while. The first is the depiction of the DALC and the second is the "environmental" aspects (the grey bits). Microsoft actually discuss having a Data Access Helper component (basically something at least similar to, if not in fact, the DAAB), but then they neglected to put in on the picture. The second aspect is the grey bits. I see them as extending right down to the Data Sources and Services sections. You might not be coding too much at this point, but surely they are just as relevenant in necessary at this point.
With these in mind, I put together a slightly adjusted version of the image (it's in png format cos I felt like it :->):
I'd love to get some feedback though, so please feel free to comment.
For anyone who is interested, this is some feedback in the ongoing
iBurst Demo saga. The local iBurst resellers acutally had a
stand at Canal Walk, and the best they could get with the desktop unit was 17kb.
Craig, what are you doing to get such good speeds, even the iBurst guys can't get there?
Welcome to my PLWP. Unfortunately spent almost the entire weekend working :-(. I did get to watch the first 2 of my Lord of The Rings Special Extended Edition DVDs. Man, this edition ROCKS! The extra bits make the story sooo much richer - very highly recommended.
SourceForge watch out, Google is apparently getting in on the game, too. Check out http://code.google.com
I was chatting with a guy I know at one of the smaller ISPs who was telling me they just got
iBurst, too, and are now reselling it. They are going to be demo'ing it at Canal Walk this afternoon, so I'm going to check it out again because he tells me the speeds they get are really good. Check back later for a review...
We just had someone from CapeTel Wireless Communications (a local iBurst reseller) come and demo the iBurst to us, and I've got to say, I wasn't too impressed. It took a while to connect and the signal was fluctuating quite bit here in Parow. The guy was telling us he gets about 70-80k, but all we got was a steady 13-14kb, and this is in soft launch phase! How are they going to be when they suddenly get 20000 customers? Also, they also offer a 3gb limit and then drop you on to a slow link, but then you still have to pay per mb, even on the slow 64k link.
What I did find out is that they are going to offer a few options soon, possibly even with a static ip, and that you can get a single company account (i.e. 1 monthly payment) shared across multiple physical devices (”modems”, so to speak), and this might be an option for small company like us, but only if we can get something decent like 20 GB.
So far so bad, but perhaps we should remain positive and hopeful?
Ok, I'm sure somebody got fried for this one, but has anyone else noticed that 1 of the overloaded constructors for each these objects takes the same arguments (paramname and message) but in the opposite order . I don't know why I never noticed this before, I always thought I'd gotten confused, but I'm happy to report that's not the case (at least not this time).
More fun is that this is the kind of problem that can never be fixed because it will break to much existing code. Oh well...
Last night I attended the First Annual South African Blog Awards, held jointly in Cape Town at Obz Cafe and in Jo'beg at Cool Runnings. It was an awesome evening. The event itself was organised by John from CherryFlava, one of our leading sites (and winner of an award last night) and it was great to meet some really interesting guys, especially Seth from 2OceansVibe (which one 2 awards, one for best overall S.A. blog).
It's really amazing to see how strong our local blog community is and how much support it gets, both internally and from others in the country. Seth was telling me us gets something like 30 000 new visitors a month!
Also, Simon Stewart, of SA Dev fame, won an award for his blog BrokenKeyboards.
Thanks again to CherryFlava for organising and Paul from The Tie Stop for sponsoring the prizes.
Note: I can't access 2OceansVibe or SplatterMail - both of them are blocked by webmarshal!! :-(
A collegue of mine who sits one cubicle away just called out to me saying she believes I know how to solve a specific problem she's having. I asked her how she happened to know that, and she told me it's because she just Googled the error message and found my blog post about it as a search result ;-).
I got these off Daemonite, they are a must see, especially for fans of The Incredibles!
“The keynotes at MXDU 2005 were treated to another pair of fabulous animated intro sequences from Nectarine. Minty's team worked up some magic in the spirit of the Incredibles. The intros have been modified for the web and doctored to protect the innocent.”


Colin Coller, of CopySourceAsHTML fame, has been talking recently about some pretty kewl development principles, which he calls AlwaysBeReadyToDemonstrate, based on AlwaysBeReadyToShip. Key features are:
"
DailyBuild. The latest version of the product is built and deployed on a preview server every day. The build and deployment process is completely automated.
AlwaysBeReadyToShip. The latest version of the product always does something useful and is always in a releaseable state.
It has to be easy for anyone in the company to use the latest version of the product. There's a single preview server and a very short preview URL. Preview logins and accounts are created automatically and associated with your Windows identity when you arrive at the preview URL (no usernames or passwords to remember). Preview databases are rebuilt nightly with realistic sample data. I should always be able to say "Hey, open a new browser window, I've got something to show you." and then actually show them what I've been working on.
New features have to strike a balance between sizzle and steak. When I talk to a coworker I haven't talked to for a few days, I should always have a lot of little "that's nice" features and at least one "WOW!" feature to show them. I can't work on the framework for weeks or even days without something cool to show for it.
"
I think these are great principles. When we were still starting out last year with only one project we were doing similar things internally and it was great to “wow” the user guys and get instant daily feedback. Hopefully the project will continue on to be a great success.
I'm trying to do some work within a custom web service inside of Sharepoint. Part of it must run under the context of the invoking user and part of it requires more rights and should run under a more admin-like account. However, it appears that Sharepoint won't pick up the context user change. According to BlueDogLimited:
“The SharePoint object model, when running under the context of an IIS request, will always validate its actions against the original context of the request. Therefore, reverting to self or impersonating an admin account is absolutely worthless.
Is this a bug or bad design?
It's both. However, that's another topic altogether.”
The post suggest creating a new AppDomain with a factory to perform the functions I need, but recommends GAC'ing to get FullTrust. This of course means Strong Naming (see
here for Craig Andera's view on the topic). Is it just me, or does this seem a bit like overkill? I'm already calling various win apis to get user tokens, etc.
Why can't it be something simple, like:
Dim wpAdminUser As New WindowsPrincipal(CreateIdentity("Username", "Domain",Password"))mySPWeb.Context.User = wpAdminUser
“
Microsoft Internet Explorer 7.0 Details Begin to Leak
Microsoft Watch has some more details on what to expect with Microsoft's impending release of Internet Explorer 7.0:
Sources say that IE 7.0 - which is code-named "Rincon," they hear - will be a tabbed browser. IE 7.0 will feature international domain name (IDN) support; transparent Portable Network Graphics (PNG) support, which will allow for the display of overlayed images in the browser; and new functionality that will simplify printing from inside IE 7.0, partner sources said. The new browser also will likely include a built-in news aggregator.“
from http://www.microsoft-watch.com/article2/0,1995,1776290,00.asp
I've never actually tried the tabbed browsing, but everyone seems to swear by it, so this should be cool. I'm definitely keen on the png support though. Hopefully they fixed some of the existing bugs.
After a post of mine a few days ago on Interfaces and the lack of a file definition for them in Visual Studio.Net, Brad Kelly pointed me to a nice link on CodeProject on how to add items and adjust the existing ones. I played a bit with it this weekend and added some regions for C# and VB.Net and a VB.Net default constructor too (dunno why that was missing?). Also, I added interface definitions for both languages too.
If anyone is interested in these I'll put some details together, just let me know.
More Posts
Next page »