Christian Dam has an excellent 8 part series posted on his blog as to how to create secure Extranet solutions with the help of ISA Server 2006. It’s a must read for any large MOSS projects.
Filed under: Work | Leave a Comment »
Christian Dam has an excellent 8 part series posted on his blog as to how to create secure Extranet solutions with the help of ISA Server 2006. It’s a must read for any large MOSS projects.
Filed under: Work | Leave a Comment »
For those who have tried it before the latest version, 1.6, of the 3-D browser integrated rendering tool PicLens now supports searching and viewing YouTube videos. This is a huge leap in the development of what is already a ground breaking tool.
For those who have yet to try it out I can heartily recommend. I can gaurantee your image and now video browsing experience will never be the same.
Filed under: Uncategorized | 1 Comment »
Whew! That’s a long headline. As an IT Architect I get thrown curve balls from clients looking for all manner of solutions. I’m fortunate enough to work with some sharp people who like to invest time researching what they need and are about to ask for in advance so no complaining here. The task itself from this particular client I am sitting with today (and for the immediate future) was fourfold.
All of the above had to be run from a single command that can be batched and scheduled to accomodate nightly and adhoc builds. Now I don’t normally get involved in this end of the development process although after completing this task it’s a gaurantee I will in future.
I’ve had some familiarity with MSBuild in the past but never really took advantage of the possibilities I’ve just recently realized were available to me. However I started by asking a fairly simple question to the client:
“Where is your Team Foundation Server hosted?”
I’d made the assumption that things would be easy, that I could use Team Foundation Build and via the UI create the steps necessary for getting, building and so on. Unfortunately I was out of luck. No TFS today but maybe in a few months. So this was not going to be a walk in the park.
First things first: When in doubt – SPAM. I sent a mail around to some of the brighter guys I work with asking for input. Responses, those I got, varied but one in particular contained a simple little url to the SDC tasks project that got the ball rolling. For those that don’t know the SDC Tasks library is used to make the lives of those who use MSBuild on a regular basis much easier. It contains over 300 tasks covering a range of product technologies and platforms. The documentation is complete and the Installation guidelines, spartan as they are, give a good compass bearing on where to head.
I downloaded the latest release and created a folder named Buildtools on the root of the c: drive. I’m a structure freak so I spent some time organizing the contents the way I wanted them ala Binaries here, documents there, task descriptor another place and so on.
I started where everyone starts at the Documentation and the Installation pdf. The installation guide shows the 3 potential ways for using SDC tasks. I decided to go with the COMMON / SHARED INSTALLATION option. I won’t go into more detail than that but you can read up about it on the site or download it and try it out for yourself.
PROJ file
I now had the BuildTools in place so the next step was to put them to use. I fired up VS 2005 and created a simple proj file (basically just XML like all configs these days) and added what I found in the install guidelines. I expected to get a lot of help by adding the schema definition for MSBuild but oddly enough elements like CleanFolder and TasksPath threw errors on validation.
At this point I have to admit that there aren’t that many examples of project files for MSBuild floating around the web. Not surprisingly though I quickly discovered the project file is identical to the kind of project file you would find in Visual Studio like a csproj file. Taking my inspiration from here I put a project file together that resembles the following:
<Project DefaultTargets="Latest;Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<TasksPath>C:\BuildTools\bin\</TasksPath>
</PropertyGroup>
<Import Project="C:\BuildTools\tasks\Microsoft.Sdc.Common.tasks"/>
<Target Name="Latest">
<SourceSafe.Get
UserName="*******"
Password="*******"
Database="\\SourceControl\VSS\"
Project="$\CMS2002\Development"
WorkingDirectory="C:\Projects\CMS2002\Development\">
</SourceSafe.Get>
</Target>
<Target Name="Build">
<MSBuild Projects="C:\Projects\CMS2002\Development\CMSApp7834.sln" Properties="Configuration=Debug">
</MSBuild>
</Target>
</Project>
Now I had a project file to use in tandem with MSBuild. I went straight to the command line and got my first error. It was along the lines of “this version of MSBuild can only read solution files between versions 7-9″. I realized right away that I was trying to compile a VS 2008 solution file with the MSBuild executable in the v2 framework.
Having made the modification to point to the correct framework (v3.5 – damn mixed environments) I was successfully getting the latest code from source safe and almost successfully building it.
Almost you say?
Well it seems that the SDC tasks extensions are lacking an important property for the Source.Get method: AutoResponse=”True”. Basically what happens is that on first source GET everything works fine and the solution compiles as it should. However if the build output of the VS project is incorrect, pointing to bin instead of bin\release, or there is a file that is writable within the folder structure MSBuild will return an error with “a writable copy of ##### already exists” and stop the build for that particular project.
This is isn’t an optimal error, none are, but I understand that it’s by design – VSS shouldn’t overwrite files that are currently being worked on without prompting first. This essentially is what the AutoResponse property did when using VSSGet in older versions of VSS:
<vssget vsspath="/toplevel"
localpath="C:\dev\control\java"
login="${login}"
ssdir="${ssdir}"
serverpath="${serverPath}"
recursive="true"
autoresponse="Y"/>
</target>
It’s a small gripe and I’m sure there’s a reason for the omission of overwrite and autoresponse functions. More testing ironed out any other problems I faced. One thing I also discovered was that the CleanFolder method works intermittently – I’m investigating this further to see if some of the methods I have added overlap each other.
WSPBuilder
I can’t take credit for formulating the WSP build and deploy process here as the client Architect I work with beat me to the punch. He created post build events for each of the projects where they would either deploy via stsadm or do a manual file copy to the 12 hive. Anyone familiar with WSPBuilder should already be aware of how to work with post build events in Visual Studio.
To tidy everything up I created 2 simple batch files that run the msbuild command and point to the respective project files. Now the client can login in remotely to the build server and with one action get the latest code from source, build it, pipe the output into a datetime named log file for later debugging and deploy the solutions to MOSS. All of which takes less than 2 seconds!
Conclusion
A few hours legwork and investigation into a new technique for solution deployment and we now have a process that is fast, efficient and removes the element for human error. And once you know how it’s hard to stop. I’ve already applied the same methodology to a CMS 2002 project which I hope we can use for the production environment.
Filed under: Work | Tagged: MCMS 2002, MOSS, MSBuild, VS 2008, VSS 2005, WSPBuilder | Leave a Comment »
I think I’m going to be a vegetarian. There I said it. It’s not that I’m enthralled with the idea of having a pearly grey complexion and constant awkward flatulence. It seems to me to be the right thing to do and having just read George Monbiots article on how Biofuels are a crime against humanity my guilt strings have been pulled.
So easily impressionable I’m not and I’ll admit that I take more interest in Charlie Brookers postings than screaming tree hugger Monbiots cries of impending doom. In fact in the article Monbiot writes that he dropped being a vegan after 18 months. Nonetheless his suggestion is to drop meat and instead eat a fish called Tipalia which has some sort of indiscernible energy input/output consumption rate. It’s also a fish that has caused what can be termed a small environmental disaster in parts of Australia. So it’s ok to hate it and eat it.
To be quite honest the article touched a subject I’ve been considering over and over of late. My diet and thus my weight. I’m not fat, I’m not thin, I’m not super athletic nor am I a-physical. I recently quit cigarettes (god I miss ‘em) and have noticed a small but not dramatic weight increase. What really bugs me though is that my weight hasn’t changed much in 6 years. I’ve hovered around the 84-85 kilo mark for so long now. My BMI is right on the money. But I would like to drop at least 5-7 kilos if possible.
Way back when I lived in London and before coming to Denmark I was the sprightly weight of 72 kilos. A lot of this I can attribute to a forced diet of frozen pizzas, large amounts of coffee and a heavy smoking habit. But man was I skinny. Worse still wifey likes to point out my increased girth at regular occasions by pointing to a picture of me hanging in the hallway of our home. “Hey honey look how skinny you are”.
So there you have it. I’m going home this evening, tell wifey of my new dietary plans, patiently sit and wait while she laughs derisively for 23 minutes and then reiterate my plans with gusto. My veggie diet starts Monday the 21st or until such time as the freezer is emptied of meet.
I’ll start posting some tech related items soon…
Filed under: Uncategorized | Tagged: diet, personal, vegan | 4 Comments »
Web projects as we find ourselves working on in this day and age are no longer small definite roll-outs where we have a specific deadline to focus on. Instead they are more a matter of multiple site roll-outs with ever changing functionality and design. One of the more bizarre things I’ve come to notice in recent times is that although all the developers try to focus on quality certain bugs are only caught at the worst possible moments and weren’t envisaged beforehand i.e. a context was missing on a root channel for a function but if a user had setup a start channel (such as most of have done at one time or another in CMS) then it would never be picked up.
From previous experience I am somewhat stunned that although most large scale web projects today can have large development teams consisting of Architects, Senior and Junior Engineers, PM’s etc not a single dedicated QA resource can be found. Even worse, vital resources such as Lead Architects or Project managers have to spend their time doing adhoc QA work when it could be more effectively used. We are working both within an application and web sense these days with MSCMS so maybe we should begin to approach quality assurance “old-skool” software house wise. That is to focus, design and implement proper ongoing test strategies.
So where does this old-skool testing approach stem from. Well in ancient times (circa 97) and long before the fullscale adoption of the unified process *uurgh* software producers such as Corel, Lotus and others adopted a focused approach to quality assurance, production and design. These companies employed large QA departments and utilised tools such as Notes and Groupwise for logging of issues. Simpler times as they were and with products who’s evolution was linear and involved only release improvements the same strategy can still be used now for large scale CMS implementations.
It seems that fixed rates, tight time constraints and lack of resources means that web teams must focus on delivered end-quality from the get go rather than having a resource checking the delivery itself. Most typically clients are expected to test and report issues directly – this is a long laborious process and is left to interpretation of the final result by a person/s who may not be the most technically astute. This means of test is also left, to a lesser extent, vulnerable to abuse for economic, intra-political or strategic reasons.
Not all large web implementations are devoid of QA resources. There are cases where companies have tasked an individual with testing and the formal documentation of processes. And these projects have succeeded extremely well. Why?
We need a regression to earlier times where one or more QA resources aided the developers. Passing the onus of quality assurance to developers or even suggesting peer review, no matter how economically viable, fails in the long term. Also creating QA positions can be seen as a means of enticing new graduates into the depressed Danish IT sector at a lower pay scale, encouraging them to understand applications and technologies such as MS CMS and MS SPS and offering them a means of ongoing career progression into Junior Developer roles. I’m not evangelising a cascade build process. It has been tried and done. But effective Quality Assurance seems more necessary now than at anytime before.
Filed under: Uncategorized | 1 Comment »
“Lads sessions”
Well Gents, just like the Formula 1 season the “Lads sessions” are now back in action. We would’ve been starting in my place this Saturday night (9th) but have to postpone by a week or two until everyone gets their acts together. To keep in touch with modern times I suggest we rent a PS2 for the occasion with the following games: Fifa 2002 – even having to say it is sacrilege – and possibly NFL 2002 or Gran Turismo 3, suggestions are welcome. In keeping with tradition I expect an obligatory Dark Moustache cup as well. I expect we’ll all chip in for the expense but it shoudln’t be more than 20kr.
My culinary skills will be on display so don’t worry about the nosh. Bring your own beer, liquer etc. Be warned that the missus still has an aversion to the Rastafari religion so that kind of indulgence will be strictly in the washroom of the basement, if you know what I mean. We’ll decide on the next venue after we’ve drank 10 shots of Sambuca and molested the cat.
Note: Mr. “What’s it all aboot?” Lander will not be attending which means the rest of us actually have a chance of winning the cup. He is busy pimpin it up in Montreal although we will try and establish a video connection over my broadband so he can be virtually present!
The unscrupulous Al aka Ali G will also not be in attendance as he is too busy banging 17 year students in Dublin using pick up lines like “I’m a DJ baby, would you like to see my mike?”.
My basement also comes with a health warning for over exuberant champions – no repeat of the Dick/Leaping/Ceiling episode and the subsequent panic that ensued afterwards.
I’ll post soon with a new date etc. For those who need the address just send a mail.
Filed under: Uncategorized | Leave a Comment »