Send a suggestion!

We're building a brand new version of the site, and we'd love to hear your ideas

Members

Technology Zones

IBM Learning Center

Articles

Hosted By

MaximumASP

Info

10 Jul 2006 - Developer Blogs in United Kingdom

Blog Entries (10 Jul 2006) RSS << Earlier | Later >>

  • How will InfoCard work? What are the Laws of Identity? Who's Kim Cameron?

    Published on 10 Jul 2006 from

    Thanks again to Kim Cameron (Microsoft's lead Identity Architect) for both joining us at last week's TechNet Security Summit and for posting a wealth of interesting conjecture on his Identity Blog. There's a great White Paper outlining the Laws of Identity and plenty of information on both the need for InfoCard and how it works including a demo.

  • TestDriven.NET Enterprise & Professional

    Published on 10 Jul 2006 from

    I have recently released two commercial versions of TestDriven.NET. The need to create a commercial version kind of crept up on me. I had been working on it as much as I could between consultancy gigs. By the end of last year I realised it had turned into very much a full time job. I was actively turning down work in order to carry on supporting TestDriven.NET. For this to be sustainable I really needed to become an ISV!

    My original plan was to release the professional version of TestDriven.NET at the beginning of this year. Unfortunately something happened to derail that plan (more in a later post). You may have noticed that recent TestDriven.NET releases have been as much about updates to Grant Drake's NCoverExplorer than about TestDriven.NET itself. I am grateful to Grant for keeping me focused and generally positive through a difficult few months. TestDriven.NET 2.0 is now back on track, more stable than ever and and has some useful new features.

    At the moment the difference between between TestDriven.NET enterprise and professional is purely in the licence. TestDriven.NET enterprise is for organisations that wish to deploy a version of TestDriven.NET onto multiple machines. The licence grants the right to distribute TestDriven.NET enterprise onto as many machines as the organisation has licences. The enterprise licence includes one year of guaranteed support and software updates.

    TestDriven.NET professional is intended for developers who are responsible for acquiring and installing their own development tools. This version can be installed on as many machines as the licenced developer. TestDriven.NET professional can't be stored on a network share or deployed from a central location for use by multiple developers.

    Just because the commercial versions now exist doesn't mean I'm turning my back on hobbyist/budget-constrained users. There is still a TestDriven.NET personal version available. This version isn't crippled, it doesn't nag you and you don't need to enter a licence code. I could hardly call it "zero friction" if it did. I do however ask that if you use it regularly on commercial projects you purchase a professional licence. If you're using a version of TestDriven.NET that is deployed from a central location then you will need an enterprise licence.

    Thankyou for helping me turn TestDriven.NET from an obsession into a job! If you have any questions please contact me.

    Share this post: Email it! | bookmark it! | digg it! | reddit!

  • TestDriven.NET Enterprise & Professional

    Published on 10 Jul 2006 from

    I have recently released two commercial versions of TestDriven.NET. The need to create a commercial version kind of crept up on me. I had been working on it as much as I could between consultancy gigs. By the end of last year I realised it had turned into very much a full time job. I was actively turning down work in order to carry on supporting TestDriven.NET. For this to be sustainable I really needed to become an ISV!

    My original plan was to release the professional version of TestDriven.NET at the beginning of this year. Unfortunately something happened to derail that plan (more in a later post). You may have noticed that recent TestDriven.NET releases have been as much about updates to Grant Drake's NCoverExplorer than about TestDriven.NET itself. I am grateful to Grant for keeping me focused and generally positive through a difficult few months. TestDriven.NET 2.0 is now back on track, more stable than ever and and has some useful new features.

    At the moment the difference between between TestDriven.NET enterprise and professional is purely in the licence. TestDriven.NET enterprise is for organisations that wish to deploy a version of TestDriven.NET onto multiple machines. The licence grants the right to distribute TestDriven.NET enterprise onto as many machines as the organisation has licences. The enterprise licence includes one year of guaranteed support and software updates.

    TestDriven.NET professional is intended for developers who are responsible for acquiring and installing their own development tools. This version can be installed on as many machines as the licenced developer. TestDriven.NET professional can't be stored on a network share or deployed from a central location for use by multiple developers.

    Just because the commercial versions now exist doesn't mean I'm turning my back on hobbyist users. There is still a TestDriven.NET personal version available. This version isn't crippled, it doesn't nag you and you don't need to enter a licence code. I could hardly call it "zero friction" if it did. I do however ask that if you use it regularly on commercial projects you purchase a professional licence. If you're using a version of TestDriven.NET that is deployed from a central location then you will need an enterprise licence.

    Thankyou for helping me turn TestDriven.NET from an obsession into a job! If you have any questions please contact me.

    Share this post: Email it! | bookmark it! | digg it! | reddit!

  • Pink Blossom - Shaken, Not Stirred

    Published on 10 Jul 2006 from

    Pink Blossom - Shaken, Not Stirred Another exercise in motion however this photograph didn’t turn out at all as intended. The intended effect was a zoom out with a focussed blossom in the middle of the frame. Instead I ended up with a somewhat shaken appearance. View in Zooomr 500 x 333 version 1024 x 682 version Original Size - [...]

  • Unified Communications. Come to a User group meeting

    Published on 10 Jul 2006 from

    The Unified Communications User group is having 2 meetings in the UK in July.  Register for the event in Reading on the 18th July here and the event in London on 20th July here..The pub (after the Meeting  - not during!) will probably be the Sun and 18 Cantons on the corner of the street.  I'm fairly well acquainted with the local pubs round our London office as you can tell :-).

    The agenda seems to be all set for this months meeting, but what do you want the group to cover in future meetings?  Let us know so we can rustle up the speakers.  Here's the information about the group:

    The Microsoft Unified Communications User Group, is here to support the adoption and use of Microsoft Unified Communications and RTC solutions, principally Live Communications Server, Live Meeting and Exchange Unified Messaging. As Microsoft roll-out their full UC offering we'll be at the forefront of it's adoption. We are a forum considering these solutions to come and chat with existing users whilst providing a peer-level group of expertise for those people already working with these technologies. In addition to the Microsoft products we also act as a hub of knowledge and expertise for third-parties which extend the functionality of the Microsoft products.

  • New Dev-Centric Features In Office SharePoint Server Keep Your Apps Rolling

    Published on 10 Jul 2006 from

    MSDN Magazine Article - New Dev-Centric Features In Office SharePoint Server Keep Your Apps Rolling - by Ted Pattison. This article discusses: Building portal sites with MOSS 2007 and WSS 3.0 Shared Service Providers, user profiles, and portal search Integration with the BDC and back-end systems Managing Web sites, business intelligence, and enterprise data

  • Typo Trackback Spam

    Published on 10 Jul 2006 from

    As some will have noticed, I am now aggregated by the ThoughtBlogs service… yay!

    However, this (along with being linked to in other places) has meant that I’ve started receiving more spam TrackBacks than I can handle.

    So, I started tapping away inside Typo’s administrative console to remove TrackBacks from every post, since none of them are valid.

    Of course, this took far longer than was sensible so as a temporary fix, I removed them as follows (using Rails’ nifty script/console):

    $ script/console
    Loading development environment.
    >> Trackback.find_all.length
    => 89
    >> Trackback.find_all.each {|t| t.destroy}
    ...
    >> Trackback.find_all.length
    => 0
    

    Ah, much better.

    Guess I’ll just have to keep an eye on things and clean as I go.

    I’m also checking out the latest trunk revision for Typo (that according to Scott Laird) is nearing it’s 4.0 release which I look forward to using, most importantly, because a nasty memory leak that has apparently been quashed.

  • Typo Trackback Spam

    Published on 10 Jul 2006 from

    As some will have noticed, I am now aggregated by the ThoughtBlogs service… yay!

    However, this (along with being linked to in other places) has meant that I’ve started receiving more spam TrackBacks than I can handle.

    So, I started tapping away inside Typo’s administrative console to remove TrackBacks from every post, since none of them are valid.

    Of course, this took far longer than was sensible so as a temporary fix, I removed them as follows (using Rails’ nifty script/console):

    $ script/console
    Loading development environment.
    >> Trackback.find_all.length
    => 89
    >> Trackback.find_all.each {|t| t.destroy}
    ...
    >> Trackback.find_all.length
    => 0
    

    Ah, much better.

    Guess I’ll just have to keep an eye on things and clean as I go.

    I’m also checking out the latest trunk revision for Typo (that according to Scott Laird) is nearing it’s 4.0 release which I look forward to using, most importantly, because a nasty memory leak that has apparently been quashed.

  • Hacker 'to fight US extradition'

    Published on 10 Jul 2006 from

    Former computer hacker Gary McKinnon vows to fight extradition to the US.

  • Video - The wonders of international business (at Microsoft)

    Published on 10 Jul 2006 from

    I've worked on both sides of the Microsoft international equation - in the UK as the sub rep on various projects trying to get corp to understand the local market 'situation and challenges' and more recently in Redmond as the 'Corp' program manager acting as chief cat herder: planning, coordinating and getting 'buy in'.

    This video of Microsoft's internal international 'engagement' is just a little too close to reality for comfort...like the first conf-call clip. If you work in a sub or with subs at MS, you'll know what I mean.

    Update:

    Other thoughts on this. Acronyms.

    The acronyms that fly about in the video are all pretty much real and used almost as liberally as the video depicts (the excpetion is 'GB'). A lot are standard international jargon (LATAM, EMEA, APAC), some derive from economic roots (G7, G8, G29 - although these mean different things for different contexts within MS) and others seem to be purely MS-created (CRMG, BMO, BG, BOM, GTMs - mainly marketing). We do have an internal site 'Microsoft Acronyms' which is required reading for any MS newb. Without a read through it, you'd be completely lost in the first few seconds of most conversations / meetings / conf calls here. And that's for company-wide jargon. Each team / unit tends to develop their own specialised lexicon, though few teams are thoughtful enough to collate and share these on a site for the unit newcomers. You just have to ask. I came across a new one last week - 'ack'. It was response to a mail that I sent. 'ack' is all that came back. It's generally used, not just at MS apparently. Can you guess it?

  • Industry to stop 'music cheats'

    Published on 10 Jul 2006 from

    The British recorded music industry tells ISPs to freeze accounts of customers illegally sharing files.

  • Mono's new GC

    Published on 10 Jul 2006 from

    I noticed that the latest Mono release has details on the new Mono GC. This is diffent to the current GC but not yet operational. It will be interesting to see bench marks against the two. I would be interested to learn more about it's impact on dynamic languages as well.

    If like me your interested in this sort of thing, I found some Rotor GC notes here, here  and here for you to take a look at. Also if your interested in learning more about the CLR GC in general then this Google search will get you started.

    Share this post: Email it! | bookmark it! | digg it! | reddit!

  • BBC site leads World Cup online

    Published on 10 Jul 2006 from

    The BBC Sport website was the most popular online source for World Cup news in the UK, according to a study.

  • Redirect console output

    Published on 10 Jul 2006 from

    Another small class with nothing fancy or advanced, but that could spare time in not having to do it yourself ;-)

    .net has a lot of nifty debugging features. For Runtime support a lot of  convenient code exists in the System.Diagnostics namespace.
    But.. if you're anything like me, you use the Console.Write and WriteLine functions when developing. (when sometimes I really should use the Debug.Write... functions, but find it too convenient to use Console)

    Or.. other times when written for a console app, but now you want the same code to run in a windows app and still see the output.

    In any case, .net has made  it incredibly easy to redirect the standard output. No tutorial here on that subject, but still, had made a default output several times and decided that I could do with something generic.
    Well, here it is. It's very simple code which does nothing more than redirect the Console output to a listbox. It runs asynchronously with the calling code, so it won't hold it up that much, but the code might be ahead of the output in fast output generating output files.

    To start using, simply set:
    Subro.ConsoleOutput.Redirect = true;

    To stop, surprise surprise, set Redirect to false. By default the maximum number of lines kept (and displayed) is 250, but this can be changed by setting the ConsoleOutput.MaxLines property

    =0 && i h)ch.style.height=h;" selcount="3" selold="1" sel="1">Code CopyHideScrollFull namespace Subro
    { using System.Threading;
    using System.IO;
    using System;
    using System.Windows.Forms;
    using System.Drawing; public class ConsoleOutput : Form
    { static volatile ConsoleOutput instance; /// <summary>
    /// Starts or stops the redirection of the console output to a ConsoleOutput form window
    /// </summary>
    public static bool Redirect
    { get
    { return instance != null;}
    set
    { if (Redirect == value) return;
    WaitLock();
    //instanceLock.AcquireReaderLock(timeout);
    if (Redirect != value)
    { locked = true;
    if (value)
    { Thread t = new Thread(new ThreadStart(show));
    t.Start();}
    else
    { instance.Invoke(new ThreadStart(instance.Close));}}
    WaitLock();}} const int timeout = 5000;
    volatile static bool locked;
    //static ReaderWriterLock instanceLock = new ReaderWriterLock(); /// <summary>
    /// Thread start to start showing the output form in its own thread
    /// </summary>
    static void show()
    { new ConsoleOutput().ShowDialog();} static void WaitLock()
    { while (locked) { }} static volatile int max = 250;
    public static int MaxLines
    { get { return max; }
    set
    { max = value;
    if (instance != null) instance.Invoke(new ThreadStart(instance.CheckMax));}} public static bool ShowTime = false;
    /// <summary>
    /// The original output of the console window
    /// </summary>
    TextWriter orgoutput;
    protected override void OnClosing(CancelEventArgs e)
    { if(orgoutput!=null) Console.SetOut(orgoutput);if(stream!=null) stream.Dispose(); instance = null;
    locked = false; base.OnClosing(e); } protected override void OnShown(EventArgs e)
    { base.OnShown(e);
    instance = this; stream = new CStream(this);
    orgoutput = Console.Out;
    Console.SetOut(stream);

    locked = false; } protected override Size DefaultSize
    { get
    { return new Size(500, 300);}}
    protected override void OnKeyDown(KeyEventArgs e)
    { if (e.KeyCode == Keys.Escape) Close();
    base.OnKeyDown(e);} CStream stream;
    ListBox lb = new ListBox();
    ConsoleOutput()
    { lb.Dock = DockStyle.Fill;
    lb.BackColor = Color.Black;
    lb.ForeColor = Color.White;
    Controls.Add(lb);
    Text = "Console output"; KeyPreview = true;
    } void CheckMax()
    { stream.CheckMax();} class ConsoleEntry:INotifyPropertyChanged
    {             public readonly DateTime CreationTime = DateTime.Now;
    public string Value
    { get { return value; }
    set
    { this.value = value;
    if (ValueChanged != null) ValueChanged(this, EventArgs.Empty);if (PropertyChanged != null) PropertyChanged(this, pe);}}
    public event EventHandler ValueChanged;
    public event PropertyChangedEventHandler PropertyChanged;
    static PropertyChangedEventArgs pe = new PropertyChangedEventArgs("Value"); string value;
    public ConsoleEntry(string Value)
    { this.value = ShowTime
    ? string.Format("[{0}]   {1}", CreationTime.ToLongTimeString(), Value)
    : Value;} public override string ToString()
    { return value;}
    } class CStream : TextWriter
    { ConsoleOutput owner;
    ListBox lb;
    public CStream(ConsoleOutput owner)
    { this.owner = owner;
    lb = owner.lb;
    lb.DataSource = list;
    lb.DisplayMember = "Value";} public override void Write(string value)
    { Write(value, false);
    base.Write(value);} public override void WriteLine(string value)
    { Write(value, true);
    base.WriteLine(value);} ConsoleEntry last;
    BindingList<ConsoleEntry> list = new BindingList<ConsoleEntry>(); delegate void addDelegate(string value, bool end);
    void Write(string value, bool end)
    { if (locked) return;
    try
    { lb.BeginInvoke(new addDelegate(write), new object[] { value, end });}
    catch (ObjectDisposedException)
    { }
    catch (InvalidOperationException)
    { lb.CreateControl();
    Write(value, end);}} int index;
    void write(string value, bool end)
    { lock (list)
    { if (last == null)
    { last = new ConsoleEntry(value);
    list.Add(last);
    index = list.Count - 1;}
    else
    { last.Value += value;} lb.SelectedIndex = index;
    CheckMax(); if (end) last = null; } } public void CheckMax()
    { if (list.Count <= max) return;
    lock (list) while (list.Count > max)
    { list.RemoveAt(0);
    index--;}//list.RemoveRange(0, list.Count - max);} public override Encoding Encoding
    { get { return Encoding.Unicode; }} } }} . . .

  • Astronauts on second spacewalk

    Published on 10 Jul 2006 from

    Astronauts on the shuttle Discovery conduct their second spacewalk of the mission.

  • miniSPA 2006 - free software event

    Published on 10 Jul 2006 from

    After the success of last year’s miniSPA, the British Computer Society’s Software Practice advancement group is again running this free one-day event to showcase the best sessions from its annual conference SPA2006. miniSPA 2006 will be held on Friday 11th August at the BCS Davidson Building in central London. I’ll be going along and plan to participate [...]

  • Dyson school 'to boost engineers'

    Published on 10 Jul 2006 from

    Bagless vacuum cleaner inventor James Dyson plans to start a school aimed at creating more UK engineers.

  • rocketbored

    Published on 10 Jul 2006 from

    I am very very bored with all the Amanda/Rocketboom posts.

  • Campione del Mondo!

    Published on 10 Jul 2006 from

    Yes, well done to Italy! Now the most successful European team in World Cup history.

    They were fantastic throughout the tournament, and held their nerve very well during the shoot-out.

    Also, I was watching the game in one of my local bars in Dublin's Italian Quarter, and the celebrations were incredible! - which was weird because I was shouting for France!! ;)

    Top of the World! Top of the World! Top of the World! Top of the World!

    However! I'm very sad for France and for Zidane. France were the better team on the night until Zizou's moment of madness. (No doubt provoked by Materazzi but that's hardly an excuse for the assault!).

    Zidane has been the best player of our generation and it's so disappointing to see an illustrious career end in such a manner.

    (Even if he's been awarded the Golden Ball, LOL, Zidane can do no wrong it seems!!!)

    Share this post: digg it | kickit | Email it | bookmark it | reddit | liveIt

  • LiveJournal adds Jabber messaging

    Published on 10 Jul 2006 from

    According to Mashable! via Corante Technology Hub, LiveJournal has added Jabber integration.

    This means you can log in to Jabber-based IM clients using your LiveJournal username and password, and livejournal.com as the server. iChat, Gaim, Trillian Pro and Adium X are currently supported.

  • Tips & Tricks: Debugging JavaSctipt in VS

    Published on 10 Jul 2006 from

    Client Java Script is one of the most important things in web development but not the best and easiest to develop. Building of bigger and more complicated scripts, especially using DOM model or form field values can cause a lot of frustration and head pain. If we add debugging problems to that, we have something that worth of hate in result. Luckily VS 2005 allows debugging of Java Script blocks in any moment as easy as server side debugging.

    To use this feature we need Script Explorer panel but don’t look for it in the View menu. Panel is located in Debug -> Window but appears only when VS is in Debug mode (when application is running).

    0

    We should ensure that client script debugging is not disabled in IE before we start.

    0

    In panel we can see list of all scripts both included in aspx files and added as external script files. There are also auto-generated scripts as well. By double-click on selected script it will open in the main window.

    0

    Now we can debug it in well known way using breakpoints, steps, Watch and QuickWatch.

    0

    Hope it helps.

  • 'Magnetic memory' chip unveiled

    Published on 10 Jul 2006 from

    A microchip which can store information like a hard drive has been unveiled by a US company.

  • CSS-like Windows Forms

    Published on 10 Jul 2006 from

    I just noticed that Brad Adams noticed that Mike Swanson noticed … oh whatever. Point is that Infragistic, quite known .NET component designer company, have a quite interesting tool for styling Windows Forms applications. Personally, I’m not using this tool and I’m not event considering doing this. Moreover I’m not even close to do any Windows Form application but this seems to be interesting enough to write about it here. The tool is called NetAdvantage AppStylist and allows creating CSS-like libraries for application. These “stylesheets” can be changed in-fly by the user and developer can also allow end user customisation. That’s sounds really cool. Styles are cascading, so a top level style will be applied to all controls on a form.

     Like Brad, I would like to see anything that is using this feature. So if you gona use this, please send me a screen.

  • Links for 2006-07-09 [del.icio.us]

    Published on 10 Jul 2006 from

  • Final Reminder: Custom Cultures Webcast On Tuesday

    Published on 10 Jul 2006 from

    Just a reminder that I will be presenting an MSDN webcast entitled Creating Custom Cultures In The .NET Framework 2.0 tomorrow (Tuesday 11th July) at 5:00pm BST (9:00am Pacific Time). Click

  • Space shuttle cleared for return

    Published on 10 Jul 2006 from

    The Discovery space shuttle is cleared for re-entry to Earth after mission control checks its heat shield.

  • BizUnit - Context tamed!!

    Published on 10 Jul 2006 from

    Whew!! It took an entire evening but i finally cracked the mysteries of the BizUnit context and how it can be used. I even wrote a couple of my own custom steps to manipulate context. Writing BizUnit custom steps is really easy. The ITestStep interface and the Execute method are all you need.

    What really took me by surprise is the number of bugs in it. Take the XmlContextLoader for example. This step allows you to extract data from an Xml file (using XPath BLOCKED EXPRESSION and store them in the Context. The step will not work out of the box because a stream which contains the data is being read into a string, and then the stream is being used to load up an XmlDocument without rewinding it first. I also fixed a couple of others including the weird "Param" typo that i blogged about earlier. Just after i had finished all this i checked the GDN workspace and found a reply to my posts from Tanveer Rashid which was quite helpful, but then again, i had solved the issue by that time.

    So, Im planning to write a detailed document covering the use of Context and perhaps extend it to be a general BizUnit tutorial. I've reworked the documentation thoroughly especially in the area of the context load steps and im pretty comfortable that its much clearer now than earlier. I've also written more tests and documented the existing ones so folk can get an idea of whats available. I'm also considering starting up a BizUnit extensions project on the lines of NAntContrib to add more custom steps for the community (if Kevin doesnt grant me permissions to join the existing workspace, that is). Let me know if this is of interest and if there are custom steps that you would like to see. I should have the Context tutorial up in a couple of days max.

  • BizUnit - Context tamed!!

    Published on 10 Jul 2006 from

    Whew!! It took an entire evening but i finally cracked the mysteries of the BizUnit context and how it can be used. I even wrote a couple of my own custom steps to manipulate context. Writing BizUnit custom steps is really easy. The ITestStep interface and the Execute method are all you need.

    What really took me by surprise is the number of bugs in it. Take the XmlContextLoader for example. This step allows you to extract data from an Xml file ,using XPath expressions, and store them in the Context. The step will not work out of the box because a stream which contains the data is being read into a string, and then the stream is being used to load up an XmlDocument without rewinding it first. I also fixed a couple of others including the weird "Param" typo that i blogged about earlier. Just after i had finished all this i checked the GDN workspace and found a reply to my posts from Tanveer Rashid which was quite helpful, but then again, i had solved the issue by that time.

    So, Im planning to write a detailed document covering the use of Context and perhaps extend it to be a general BizUnit tutorial. I've reworked the documentation thoroughly especially in the area of the context load steps and im pretty comfortable that its much clearer now than earlier. I've also written more tests and documented the existing ones so folk can get an idea of whats available. I'm also considering starting up a BizUnit extensions project on the lines of NAntContrib to add more custom steps for the community (if Kevin doesnt grant me permissions to join the existing workspace, that is). Let me know if this is of interest and if there are custom steps that you would like to see. I should have the Context tutorial up in a couple of days max.