Syringe.Net.Nz
Irregular Injection of Opinion
RSS 2.0|Atom 1.0|CDF

 Saturday, August 08, 2009
Simple Partitioning with Windows Azure Table Storage

While there are certainly situations where it makes sense to have a natural PartitionKey when working with Azure storage there are other times when all you really want is a simple way to bucket up your data into equal bins. The usual approach to partitioning is going to be some sort of hash function but if you decide to use a Guid as the RowKey for your data you’ve basically got a nice collision resistant equal distribution already, you just need to turn it into a partition key.

I was sitting on the plane back from Singapore having a bit of a think about this. Given that we can represent our Guid as a 128 bit Interger we can probably just do RowKey % PartitionCount  and get a nice simple ordinal for each partition.

So after my birthday dinner I did what any dedicated birthday boy would do and broke out Visual Studio for a bit of a hack around..

First problem was the ‘128 bit integer’ as .NET doesn’t have a native BigInt type. A quick bit of Tiwtter asking and @adjames suggested the BigInteger class in .NET 4.0, but, given this is Azure there’s no .NET 4.0 support quite yet. A bit of Binging (is that a verb yet?) found some posts on StackOverflow and an implementation of a BigInteger class on CodePlex.

A quick console application confirmed that my thinking on the plane was right.

static void Main(string[] args)
        {
            int[] counts = new int[]{0,0,0,0,0,0,0,0,0,0};
            DateTime start = DateTime.Now;
            for (int i = 0; i < 1000000; i++)
            {
                Guid g = Guid.NewGuid();
                BigInteger b = new BigInteger(g.ToByteArray());
                BigInteger c = new BigInteger(10); //Number of partitions
                int p = BigInteger.ToInt32(BigInteger.Abs(b % c));
                //Console.WriteLine(g.ToString() + " : " + p.ToString());
                counts[p] += 1;

            }
            DateTime end = DateTime.Now;
            TimeSpan duration = end - start;
            Console.WriteLine("Took: " + duration.TotalMilliseconds + " milliseconds");
            Console.WriteLine(counts.ToString(","));
            Console.ReadKey();
        }

Running this confirmed that my RowKey values would be evenly distributed across the 10 partitions- my concern here was that the Guid algorithm might not be quite up to the task but all seems good.

image

6500ms for a million rows doesn’t look too bad on the face of it. I’m sure there are plenty of performance optimizations to be eeked out, but, they’ll pale into insignificance compared to a round trip to Azure storage via the load balancer. What I do need to test is that it’s not more efficient to rehash the Guid into 64 bits and then calculate the modulo. But that’s for another night- jaded now and hoping to do 100km on the roadie in the morning.

.NET | Windows Azure|Saturday, August 08, 2009 7:50:00 AM UTC|Comments [1]|    

 Tuesday, April 21, 2009
Photo Featured on the Destination Rotorua Site

Way cool. @RotoruaNZ Tweeted me the other day after I posted some photos of Mountain Biking up here.

Asked if they could use one of my photos on their Mountain Biking page. Check out Phil Ross on the dipper with the *loud* strobe action going on.

http://rotoruanz.com/ 

rotoruaNZ_MTB_chrisauld

If you’re one of my overseas readers I can’t comment the City of Rotorua to you enough. I’ve dreamed of living there since I was at highschool and it’s still 100% on my 5 year roadmap. It’s close to the ski fields, has phenomenal mountain biking (the Redwoods), great kayaking (Kaituna and Wairoa) and great air links for frequent business travellers like me (Can go direct to AKL, WLG, CHC and ZQN).

The only query/quibble I have with the Destination Rotorua site is why on earth is it hosted on the other side of the world!?! See the trace-route below. Looks like it’s in Orlando!
Looks like their site uses PHP so they’ll probably be a good candidate for the Apache version of the Runtime Page Optimizer http://www.getrpo.com/Product/Apache. Running the RPO site tester it reckons it should knock a couple of seconds off the New Zealand load times.

C:\Users\Chris>tracert www.rotoruanz.com

Tracing route to rotoruanz.com [66.7.213.144]
over a maximum of 30 hops:

  1    13 ms    <1 ms     1 ms  …
  2    <1 ms    <1 ms    <1 ms  …
  3     1 ms     2 ms     1 ms  wlgrtr1-65.intergen.org.nz [202.126.87.65]
  4     4 ms     1 ms     2 ms  ihwrtr1-129.intergen.net.nz [202.126.87.129]
  5     2 ms     5 ms     3 ms  32.114.216.13
  6   158 ms   150 ms   148 ms  165.87.71.190
  7   150 ms   148 ms   148 ms  12.127.33.6
  8   150 ms   152 ms   158 ms  cr2.sffca.ip.att.net [12.122.136.74]
  9   148 ms   148 ms   156 ms  ggr3.sffca.ip.att.net [12.122.136.17]
10   150 ms   149 ms   154 ms  att-gw.sanfran.level3.net [192.205.33.78]
11   157 ms   162 ms   161 ms  vlan89.csw3.sanjose1.level3.net [4.68.18.190]
12   176 ms   152 ms   160 ms  ae-83-83.ebr3.sanjose1.level3.net [4.69.134.233]

13   151 ms   155 ms   167 ms  ae-2.ebr3.losangeles1.level3.net [4.69.132.10]
14   148 ms   157 ms   148 ms  ae-63-63.csw1.losangeles1.level3.net [4.69.137.3
4]
15   160 ms   163 ms   161 ms  ae-62-62.ebr2.losangeles1.level3.net [4.69.137.1
7]
16   183 ms   181 ms   192 ms  ae-3.ebr3.dallas1.level3.net [4.69.132.78]
17   202 ms   181 ms   180 ms  ae-93-93.csw4.dallas1.level3.net [4.69.136.166]

18   190 ms   197 ms   181 ms  ae-91-91.ebr1.dallas1.level3.net [4.69.136.133]

19   215 ms   214 ms   224 ms  ae-1-14.bar2.orlando1.level3.net [4.69.137.153]

20   220 ms   218 ms   210 ms  ae-9-9.car2.orlando1.level3.net [4.69.133.69]
21   212 ms   210 ms   211 ms  hostdime.car2.orlando1.level3.net [4.79.118.38]

22   211 ms   211 ms   213 ms  dime151.dizinc.com [66.7.213.144]

Trace complete.

.NET | Adventure Sports|Tuesday, April 21, 2009 11:11:42 PM UTC|Comments [0]|    

 Monday, March 23, 2009
My Sessions from MIX09 last week

So the session videos are up for MIX09.

It’s video and screen casts …. which means you can watch me deftly dancing across the stage in my yellow Crocs. Both sessions are a bunch of fun! Well worth taking a look at.

Building Accessible RIAs in Microsoft Silverlight
http://sessions.visitmix.com/MIX09/T65M

State of the Art in Web Site Design on Microsoft SharePoint
http://sessions.visitmix.com/MIX09/C20F

.NET | SharePoint | Silverlight|Monday, March 23, 2009 5:34:03 AM UTC|Comments [3]|    

 Wednesday, March 11, 2009
Creating the Structure for a SharePoint Theme in VSeWSS v1.3

So VSeWSS doesn’t provide a Visual Studio project type to create Themes.

So we have to start out with a SharePoint –> Blank Project.

Then we add a Root File
image

Then we need to create a structure something like this (if we want to be nicely multilingual aware)
 image

So creating these by hand is a bit of a pain in the arse… especially if you have to do it during a presentation (come to my presentation at MIX09! ‘State of the Art in Web Site Design on Microsoft SharePoint’).

So I wrote a little Macro that creates these folders for you… thought it might be useful to some people.

    Sub TemporaryMacro()
        Dim themeName As String = InputBox("Enter the template name")
        Dim rootItem As ProjectItem = DTE.Solution.Projects.Item(1).ProjectItems.Item(2)
        Dim templateItem As ProjectItem = rootItem.ProjectItems.AddFolder("TEMPLATE")
        templateItem.ProjectItems.AddFolder("THEMES").ProjectItems.AddFolder(themeName)
        templateItem.ProjectItems.AddFolder("LAYOUTS").ProjectItems.AddFolder("1033") _
            .ProjectItems.AddFolder("IMAGES").ProjectItems.AddFolder(themeName)
    End Sub

Hope it’s helpful for people.

.NET | SharePoint|Wednesday, March 11, 2009 12:12:51 AM UTC|Comments [0]|    

 Friday, March 06, 2009
Getting Tail Kicking Performance Out of Virtual PC

So there are plenty of posts around the web about how to get the best performance out of Virtual Machines. I thought I’d jot down what I do. I use VMs mostly for running training and demos- so my usage approach is optimized that way.

First let me say I am a Virtual PC guy. I’ve tried VMWare, I’ve tried Hyper-V, I’ve tried Virtual Server 2005 R2. In the end I just find VPC 2007 SP1 the best balance of performance and convenience. I use VMs mostly for presenting and I do so off a less than uber grunty machine- I run my VMs on a Lenovo x61t Notebook- it’s not the fastest machine in the world but it is tiny, light and versatile- all grat for regular travellers like me. My Vista Index looks like this

image
You’ll note I’ve invested in the important things- 300GB 7200RPM HDD and 4GB of RAM. Despite only being a 1.6Ghz Processor it still gets a 4.5.

Anyway, I digress. So here’s how I run my VPCs.

I do some basic Host machine tweaks per: http://support.microsoft.com/Default.aspx?id=840193
Basically this is just configuring my Virus Scanner (CA eTrust) to ignore VPC and my VHD and other related files.

I follow some of the guest tweaks that Andrew Connell has collated here.

My key secret is my drive configuration.
I put my VHDs onto a fast Flash key. I’ve got a 32GB Patriot XT and I just got an OCZ ATV 32GB. Both are fast reading drives at about 30 Megabytes per Second..
I then configure my VMC so that the *.vmc file is on my primary HDD spindle (the 7200RPM drive above) and I turn on Undo disks. This means that all the write traffic is on the 7200RPM platter and the read access is split between this main drive and the thumb drive. The result is great performance. I’ll probably swap my primary drive to an SSD later this year which will probably mean a bit of a rethink.

YMMV.. but this works well for me.

.NET | Windows 7even|Friday, March 06, 2009 7:28:36 AM UTC|Comments [1]|    

 Monday, February 02, 2009
Xero Error handling. Errors in your pages are bad. Errors in your Error pages are REALLY bad.

Whoops! Got to Xero this morning and got this.

image

Looking at the address bar it appears that it’s sent me to the custom error page. And then the custom error page has thrown an unhandled exception which has been bubbled to the default error handler.

If ever there was a case for using ‘On Error Resume Next’ then Custom ASP.NET Error pages are it . Throwing an unhandled exceptin from your nice Custom Error page gives bad UX.

On the plus side, the Xero support people are just super and the actual application really rocks too.

.NET|Monday, February 02, 2009 10:32:23 PM UTC|Comments [2]|    

 Saturday, January 17, 2009
Strategies for Scaling out your Data Tier

 

Had plenty of conversations over the past few days in Mumbai with people about scale out strategies. About the difference between stateless and stateful portions of your application and about some ideas around choosing horizontal partitioning strategies.

Waddayaknow… I boot up RSS Bandit this morning and Dare has a great post on this.

Covers many of the things we discuss this week.

One of the things I focussed on a bunch this week is having some knowledge of the distribution of your data when choosing a good partition key.
You want a horizontal partitioning key (partition key in Azure Table Storage) that ideally DOESN’T fit a normal distribution.
Think of it like this. If you partition your data using say the first letter of the user name then you’re gonna end up with a whole bunch in your ‘S’ partition and not a lot in your ‘Z’ partition.

Anyway. A great post and well worth reading.

Building Scalable Databases: Pros and Cons of Various Database Sharding Schemes

.NET | Windows Azure|Saturday, January 17, 2009 12:32:19 PM UTC|Comments [0]|    

 Monday, December 29, 2008
A Blog Post Well Worthy of your Time: C# Generic Type Variance by IvanT

So Ivan Towlson has written up a great post on C# covariance and contravariance in .NET 4.0

http://hestia.typepad.com/flatlander/2008/12/c-covariance-and-contravariance-by-example.html

I know that I burnt my fingers on this issue doing some ASP.NET MVC stuff a few weeks ago so I’m looking forward to getting my hands on the 4.0 bits to use in Anger.

.NET|Monday, December 29, 2008 10:21:56 PM UTC|Comments [0]|    

 Wednesday, November 19, 2008
Direct Connection with .NET Services (Azure Services Platform)

So one of the funky things about the .NET Services (was Biztalk serivces) part of Windows Azure is the Connectivity Service.

This makes it easier for WCF to communicate bidirectionally through NATs.

It works by initially working through the cloud hosted relay and then attempting to establish a direct connection. The direct connection approach is pretty cool.

Obviously if it’s inside the same subnet they just talk direct, but, if it’s punching through NAT devices it requires some differnet approaches.

The approach that Clemens et al have taken here is the idea of NAT Port Prediction. Basically it involes ‘guessing which ports will be opened outbound, firing a packet at roughly the same time between both ends of the connection and ‘hopefully’ snapping a socket open.

High level details are here:
http://nutss.gforge.cis.cornell.edu/pub/imc05-tcpnat/

Quite a cool approach, Clemens assures us that it’s used a bunch already by the likes of Live Messenger and others.

.NET | Windows Azure|Wednesday, November 19, 2008 11:20:35 PM UTC|Comments [0]|    

 Tuesday, October 28, 2008
Playing with the new RPO Fiddler Add-in

So not sure if I’m allowed to talk about this… but bugger it… here goes.

So the guys @ Aptimize (http://www.getrpo.com) have put together an add in for Fiddler that basically runs their Page Optimizer in the Fiddler proxy.

So this lets me basically ty the RPO on any site. The actual page load times are all up the wazoo due to all the traffic going *slowly* through fiddler…. but check out the YSlow goodness.

RPO Off, Microsoft.com gets a grade F (34)

image

RPO On, Microsoft.com gets a grade A (94)

image

.NET|Tuesday, October 28, 2008 4:14:04 PM UTC|Comments [2]|    

 Tuesday, July 08, 2008
Controlling the update order in T-SQL on SQL Server 2005

Sometimes you just want to do this

update foo set bar=123 order by foo.lastmodifiedtimestamp

Why.... well you may rely on the order of the timestamp.

It's suprprisingly hard to do but is possible using CTEs.

WITH InvoicesNumbered AS

(

SELECT *, ROW_NUMBER() OVER(ORDER BY LastModifiedTimestamp desc) AS RowNum

FROM Invoice

)

UPDATE InvoicesNumbered

set createdby =

(select top 1 userID from [user] where clientid = InvoicesNumbered .invoiceclientid)

WHERE RowNum < 20000; --Use a number larger than the row count of the table.

Idea pinched from here. Reposted in search of better Live Search ranking for the obvious search query 'controlling update order in SQL Server'

.NET|Tuesday, July 08, 2008 9:12:25 AM UTC|Comments [0]|    

 Tuesday, April 08, 2008
Web Management for Hyper-V
So in the move from Virtual Server 2005 R2 to Hyper-V we lost the Web management capability for the VM server.
Hyper-V management is all MMC based.

This has +'s and -'s but plenty of people are going to miss the web UI.

My friend Sondre has kickstarted an Open Source project to build a Web UI using the Virtualization WMI interfaces.

http://www.codeplex.com/HVWM

Well worth taking a look. I'll be doing a bunch of new posts on Virtualization on Hyper-V over the next few months as I build up my new Hyper-V box for http://www.medrecruit.com

.NET|Tuesday, April 08, 2008 3:34:35 PM UTC|Comments [0]|    

 Thursday, February 28, 2008
Non GPL Implementation of ODF Not Very Feasible At All

Feel free to take a look at the comments to the last post as this is a followup. You may want to ignore the snipey content devoid comments from our friend in the NZOSS community.

Herewith a follow up post that hopefully addresses the substantive questions that were actually raised (thanks Stu)

Sorry for the delay. I've been busy trying to get a high quality specification progressed through the ISO standards process. Oh and I've also managed to get outside to do some skiing in the Montana backcountry.

The issue is that the GPL aims to enforce the distribution of any derived work under the GPL also.

I do not want to release my applications under the GPL and inparticular I do not want to release any Open Source code I write under the GPL as I do not believe in the 'Copyleft' philosophy to which it subscribes.

Now that's fine. As a general rule I avoid GPL code like the plague (we do use LGPL code in some of our products). In fact our contracts at Kognition included a clause requireing neither party to the agreement to provide GPL code to the other.

So the question then comes to can I implement ODF without having to derive my work from any GPL based code.
My feeling is that even looking at the code for say OpenOffice will get me into trouble.
Likewise decompiling the code will be problematic.

I am actually comfortable reverse engineering by observation for features like 'blink', I do not believe that is going to breach copyright in the work.

But the question is, will reverse engineering by observation be sufficient. And to be honest I just don't know the answer to that question. I don't really see myself spending that much time working with ODF as I tend to agree with The Burton Report as to its likely levels of adoption and indeed the likely market segments to adopt it- selling software to people who are philosophically opposed to paying for software is unlikely to be a sustainable business. That said I did find a very interesting bit of commentary on the web about just this problem quite recently.

http://www.gnome.org/projects/gnumeric/announcements/1.8/gnumeric-1.8.shtml

"The Gnumeric team does not envision using the OpenDocument Format as its native format.

The spreadsheet part of ODF, in its current form, is ill defined and has many, many problems. For example: (1) there is no meaningful discussion of what functions a spreadsheet should support and what they should do. Without that, there is little point in trying to move a spreadsheet from one program to another; (2) there is no provision for sharing formulas between cells; (3) there is no implementation -- writing an ODF exporter consists of reverse-engineering OpenOffice to see what parts of the standard it can handle. (Note: the preceding comments relate to the spreadsheet part of ODF only; we do not have an informed opinion on ODF for word processing documents, for example.)

We may revisit this decision in the future, should the situation improve. In the meantime, we will strive to maintain a reasonable importer and exporter."

Those guys look to have actually broached the problem and to be honest that kinda answers my question. If I can't realisitically use ODF without reverse-engineering OpenOffice then I'm pretty much stuffed in terms of writing a GPL free implementation.

.NET | Adventure Sports | PoliTechLaw|Thursday, February 28, 2008 10:56:12 PM UTC|Comments [3]|    

 Monday, December 10, 2007
We're all going on a summer holiday.... well kinda

JB, Darryl and myself are doing a big road trip around New Zeaand in February showing off some of the great new bits that are shipping this year.

We're going to build and deploy a full blown application live on stage. And we're not talking about some basic console application here... this thing is going to be as mission ready as we can do in two hours! In particular it's going to be hosted across a pair of clustered virtual servers- it's basically the sort of setup that we'd be happy to pick up and drop into the Intergen Data Center.

Some of the things we'll be showing off...

  • Live mapping
  • AJAX Enabled WCF calls
  • Virtualization with Windows Server 2008
  • IIS7
  • Powershell Scripting for data center and VM administration
  • ADO.NET Entities
  • Spatial Queries with SQL 2008
  • Mirroring with SQL 2008

... and a whole lot of other cool things.

I don't want to give the game away yet and tell you what we're building, but, I'll give you a clue.....

You'll be able to keep an eye on where the three Amigos are going Mountain Biking and Whitewater Kayaking and Rafting and Skydiving and things as we make our way around the country.

.NET|Monday, December 10, 2007 11:04:28 PM UTC|Comments [0]|    

 Thursday, November 01, 2007
IIS Log Analyzer - OOXML Sample

Thought I'd chunk a quick note up here about a cool sample we built recently.

It shows off using .NET to put together Office Open XML documents (ECMA 376).

It can pull odwn your IIS log files and process these into things like spreadsheets.

It shows just how easy it is to build up office documents as XML.

http://www.codeplex.com/IISAnalyzer

.NET|Thursday, November 01, 2007 10:40:42 PM UTC|Comments [0]|    

 Wednesday, October 03, 2007
Step Into The .NET Framework

ScottGu has just blogged about the fact they they are making the source to the .NET Framework available so that you can step into it from your debugger.

http://weblogs.asp.net/scottgu/archive/2007/10/03/releasing-the-source-code-for-the-net-framework-libraries.aspx

I just love it how he and his team just stick this sorta cool stuff on their Blogs rather than going theough marketing (and LCA???)

.NET|Wednesday, October 03, 2007 10:14:10 PM UTC|Comments [1]|    

 Wednesday, September 26, 2007
Debunking the Analysts on Microsoft SOA Strategy

This was originally posted by meon our Intergen Company Blog. Reposted here for completeness.

Service Oriented Architecture: everyone is still talking about it. Recently there was a bit of a blog-o-thread happening among a bunch of US analysts about Microsoft’s SOA strategy. I refer in particular to articles by Lorraine Lawson at IT Business Edge and Dana Gardner at ZDNet.


Gardner is right when he says ‘SOA is a style and conceptual computing framework, not a reason to upgrade.’ Yet, maybe through lack of time at the coalface, he thinks that massive upgrades are required to put this framework in place. The answer couldn’t be further from the truth. The vision of SOA, that is systems demarcating themselves into atomic reusable services accessible by explicitly defined interfaces and open protocols, is easily implementable in the old faithful .NET 1.0 of several years ago. Sure you may not be able to pass transaction scope across interface boundaries or rely on non-transport level message delivery guarantees, but if people are required to upgrade in pursuit of these features then it must surely be called for what it is - the evolution and maturation of the entire SOA ecosystem - there were no vendors offering this six years ago, let alone Microsoft.


Even among its chief critics, Microsoft is considered a key initiator and implementer of the broad set of  WS-* standards. The irony of the criticism levelled at Microsoft in the above articles is that, unlike the other vendors mentioned, the Microsoft stack does not require expensive application servers (beyond the operating system and the cost of that pales against say WebSphere) to actually make the conceptual framework of SOA a concrete reality.


Criticism is levelled at the Connected Systems Division vision of agility in SOA applications. Having seen the future, to an extent, this is somewhere that I think shows great promise. It’s arguable whether we’ll actually be able to compartmentalize enterprise applications much longer. Increasingly I see organisations where our approach, even in relation to users on the ground, is about surfacing features out of a broader IT ecosystem within the organisation.  The future of IT agility will centre on the recombination of existing services and function more than it will the creation of new ones.


Lawson’s focus is a lot closer to the coal face. However twice in her post she notes some association between what she calls ‘Open Code’ and SOA. For example:


“I think what’s confusing matters is Microsoft’s inability, thus far, to reconcile SOA’s demands for open code and standards with a business model that’s thrived on proprietary solutions.”


This could not be further from the truth. While SOA certainly demands Open Standards it most explicitly frees us from the need to have ‘Open Code’. By making the boundaries of the application explicit and well described we are freed from knowing anything of their internal workings - if communication with a service requires us to see the ‘Open Code’ then we have surely failed. The SOA landscape and vision is very much one of highly optimised proprietary systems communicating by way of poorly optimised, but open, protocols. As Microsoft moves from a Desktop and Operating Systems company to being a broader vendor of both those tools and more vertically focused platforms it is inevitable that those teams, at the very least, will see the value in exposing their revenue generating applications for use by other vendors platforms. To ignore the need to have Sharepoint Server or Microsoft CRM participate in a broader Serviced ecosystem is to ignore a good portion of the market who don’t buy into the Windows Everywhere vision.


While analysts in glass towers gaze at their Service Oriented Navels, there are a good chunk of us out in the world making at least part of their utopian vision a reality. They would do well to talk amongst us in addition to themselves every once in a while.

.NET|Wednesday, September 26, 2007 3:27:51 AM UTC|Comments [2]|    

 Wednesday, September 12, 2007
Getting Admin from the Vista Search Box

I'm a huge fan of the Vista search box.

Press the Windows Key -> Type What You Want -> Hit Enter

Wham... no moe mousing around.

Just got a hot tip from Kate Gregory that pressing Ctrl-Shift-Enter runs the program 'As Administrator'

.NET|Wednesday, September 12, 2007 9:28:04 PM UTC|Comments [4]|    

 Monday, September 10, 2007
Silverlight 1.0 Ships.... Linux support coming.

Press release here

Big news is that Microsoft and Novell are tag teaming to take the Mono Moonlight project forward- thus Silverlight on Linux.

One of the team @ Intergen, James Newton-King has some source code in the Moonlight tree himself....

In fact James has just released a new verion of his JSON.Net library

.NET|Monday, September 10, 2007 5:36:17 AM UTC|Comments [0]|    

 Sunday, September 09, 2007
IIS Log Analyzer - An Office Open XML Example

The team @ Intergen (Simon 'Skip' Gardiner of Kognition fame was the project lead) have been beavering away recently on an Open Source application for parsing and reporting on IIS log files.

It's called IIS Log Analyzer and it shows how easy it is to use the Office Open XML file formats to do document generation.

While the application is hosted inside Excel (by way of Visual Studio Tools for Office) all the document generation is done with plain old XML generation and some help from the .NET packaging APIs.

OOXML really does open up a wealth of additional options for doing document generation really easily.

Check it out here:

http://www.codeplex.com/IISAnalyzer

.NET | Intergen|Sunday, September 09, 2007 3:28:08 AM UTC|Comments [0]|    

 Monday, August 20, 2007
Ful WCF vs .NET Compact Framework WCF

Here's a useful table that compares desktop with mobile for WCF work.

Feature

Desktop WCF

Compact WCF

Bindings:

 

 

·         BasicHttpBinding

Yes

Yes

·         CustomBinding

Yes

Yes

·         WindowsMobileMailBinding

N/A

Yes

·         ExchangeWebServiceMailBinding

Yes, via NetCF install

Yes

Formatters:

 

 

·         SoapFormatter

Yes

Yes

·         BinaryFormatter

Yes

No

Encoders:

 

 

·         TextMessageEncoder

Yes

Yes

·         BinaryMessageEncodingBindingElement

Yes

No

·         MTOMEncoder

Yes

No

·         GzipEncoder

No

Sample available

Transports:

 

 

·         HttpTransportBindingElement

Yes

Yes

·         HttpsTransportBindingElement

Yes

Yes

·         MailTransportBindingElement

Yes, via NetCF install

Yes

·         MsmqTransportBindingElement

Yes

No

·         TcpTransportBindingElement

Yes

No

·          

 

 

XmlDictionaryReader/Writer

Yes

Yes; stub around XmlTextReader/Writer

DataContractSerializer

Yes

No; but can be wire-compatible with DCS via XmlSerializer

Service proxy generation

Yes; via SvcUtil.exe

Yes; via NetCFSvcUtil.exe, not integrated into VS2008

·         Non-HTTP transports

Yes

No

·         Custom headers

Yes

No

WS-Addressing

Yes

Yes

WS-Security message level security

 

 

·         X.509

Yes

Yes

·         Username/password

Yes

No

WS-ReliableMessaging

Yes

No

Patterns

 

 

·         Service model

Yes

No

·         Message layer programming

Yes

Yes

o   Buffered messages

Yes

Yes

o   Streaming messages

Yes

No

·         Endpoint descriptions in .config files

Yes

No

Extensibility

Yes

Yes

.NET | Mobility|Monday, August 20, 2007 11:34:20 PM UTC|Comments [0]|    

 Thursday, June 07, 2007
Stripping Line Numbers from Code....

Say you've got some code with line numbers

1: using System;
2: using System.IO;

...

1430: else if (1==0)

blah blah...

 

And you want to strip out the line numbers.

This regex: ^[ 0-9]*\:

will do it for you. THanks go to the new regex building in Orcas :-)

.NET|Thursday, June 07, 2007 6:03:04 AM UTC|Comments [0]|    

 Sunday, May 06, 2007
Jesse Ezell on Flash vs Silverlight...

http://weblogs.asp.net/jezell/archive/2007/05/03/silverlight-vs-flash-the-developer-story.aspx

This is a great run through of some comparisons between Flash and Silverlight.... My hope is that Jesse can provide a bit more detail around Flex vs .NET 3.0 at some point too....

.NET|Sunday, May 06, 2007 1:02:11 AM UTC|Comments [52]|    

 Thursday, May 03, 2007
Calling All User Experience eXperts- Come Design the Next Gen Internet

So I'm looking to hire more talented designer/developers/UXEs... that is people who have great design ability but are also able to think about the code impacts of their designs- i.e. ho can we take that design and make it into great Silverlight/WPF and AJAX experiences..... Ping me an email... chris@kognition.co.nz

If you're just a fantastic designer I'd love to talk too!

.NET|Thursday, May 03, 2007 6:59:53 PM UTC|Comments [0]|    

.NET 3.5 - WCF Support of URI Based Access

So URI based services are super popular right now. REST/POX etc...

SOme great stuff coming in .NET 3.5 to do this really easily by basically allowing URI based access into WCF services. Includes things like the ability to push back raw binary data across the HTTP stream.

This allows .NET developers to QUICKLY do 'Webby' style web services.

All these bits are there to be played with in the Biztalk Services SDK. Basically they have branched off a good chunk of the new .NET 3.5 Beta 2 bits and shipped them in this SDK.

The blog to watch on this is Steve Maine- he's the PM for Web Access features in WCF.

http://hyperthink.net/blog/

There is more great stuff around this in the Biztalk Services SDK. Particularly ServiceModel.WebClient namespace. This is basically client side stuff for easily accessing URI based content.

SO the new web response has a generic GetBody method... so you can do

response.GetBody<
. At the moment the list of Types is bounded (any XML serializable type, stream, string, SyndicationSerializable type)... it's easy to subclass the type and then override GetBody<>.

It's all just syntactic sugar across HttpWebRequest so it works very similar in terms of resource usage (little) and auto prroxy config.

.NET | Biztalk Services|Thursday, May 03, 2007 5:26:23 PM UTC|Comments [0]|    

Biztalk Services - Cool Tools

Just saw a cool piece of tooling that shipped with the BT Services CTP yesterday.

It allows you to copy a piece of example XML to the clipboard.

Then go Edit > Paste XML as Serializable Type

It then infers schema and does an xsd.exe all under the hoods and pastes in a serializabl .NET type.

It's a batch file in the tooling directory.

So to get it RIGHT NOW go and grab the Biztalk Service SDK.

This SDK is Biztalk in name only.... it's a far more broadly applicable to general distributed .NET development.... This is definitely something you should be downloading if you do WCF dev.

.NET | Biztalk Services|Thursday, May 03, 2007 5:20:40 PM UTC|Comments [0]|    

Biztalk Services SDK

I'm in a Software Design Review around Biztalk Services and Web Programability. It's being announced to us a s a small (about 15) group... and we're allowed to blog it...

So I'll be blogging live :-) Updating this post....

Web Programability with Steve Maine

How can we program against the web.
How do we wite programs such that they can be programmed as part of the web.

Stuff that shipped already

Stuff shipping in Orcas

Stuff that is more experimental (some not blogable)

Talking about processes to get an abstraction over URIs... effectivly URI templates per Joe Gregorio.
This is available in System.UriTemplate (Orcas bits)...

Two directional abiliy to map name value pairs into and out of structured URLs.

Still need to use HTTP andlers to process tis sort of stuff in IE.

Orcas now has a [WebGet] attribute for WCF service operations and effectivly creates a templated URI space for that operation.

 

.NET|Thursday, May 03, 2007 12:32:20 AM UTC|Comments [0]|    

 Wednesday, May 02, 2007
Biztalk Services SDK

I'm in a Software Design Review around Biztalk Services and Web Programability. It's being announced to us a s a small (about 15) group... and we're allowed to blog it...

So I'll be blogging live :-) Updating this post....

Web Programability with Steve Maine

How can we program against the web.
How do we wite programs such that they can be programmed as part of the web.

Stuff that shipped already

Stuff shipping in Orcas

Stuff that is more experimental (some not blogable)

Talking about processes to get an abstraction over URIs... effectivly URI templates per Joe Gregorio.
This is available in System.UriTemplate (Orcas bits)...

Two directional abiliy to map name value pairs into and out of structured URLs.

Still need to use HTTP andlers to process tis sort of stuff in IE

.NET|Wednesday, May 02, 2007 10:51:56 PM UTC|Comments [1]|    

CRM 4.0 will use Windows Workflow

Sitting in a session at mix and they have confirmed that CRM 4.0 will use Windows Workflow Foundation to manage workflow.

.NET | Windows Workflow|Wednesday, May 02, 2007 7:03:25 PM UTC|Comments [0]|    

 Tuesday, May 01, 2007
Mix 07 my best MSFT event ever.

So I'm pretty sure that this is the best MS event I've ever been to. 2nd place would be Mix from last year.

I've been to such a variety of sessions and I love the fact that there are non technical Busines Decsision Maker Sessions. I just got out of a great one where I sat next to Ade from TVNZ. It was a mixture of people from Coke Digital Strategy, ABC and Sandisk talking about online advertising and market perceptions thereof. Probably the best session yet- well worth downloading.

I've been to the MySpace sesion where they talked about how they scale out across almost 10,000 machines.

I've seen enough technology releases with Silerlight to excite me but not enough to bore me.

It's a great atmosphere with lots of non-MSFT traditional attendees here- lots of Mac Books around the place.

I'll definitely be back next year if they'll have me.

 

[UPDATE]

To show you ow kick ass this event is... Todays keynote has a roundtable and they have people as diverse as Andrew Rashbass who is the publisher of The Economist! Kick ass!

.NET | Mix06|Tuesday, May 01, 2007 10:58:38 PM UTC|Comments [1]|    

More Details on Silverlight Streaming - Cost

Silverlight Streaming
4GB Free Storage

Free unlimited streaming for 1r up to 700kbps

Free up to 1 million minutes/month at launch

There are also new commercial terms around Live Contacts and Live Spaces Photos

Spaces Photos/Contacts.
< 1mil users / month = free
> 1mil users / month = $.025 per user per year

.NET | Mix06|Tuesday, May 01, 2007 3:59:31 PM UTC|Comments [1]|    

A good graphical overview of Silverlight

BradA linked to this

http://download.microsoft.com/download/f/2/e/f2ecc2ad-c498-4538-8a2c-15eb157c00a7/SL_Map_FinalNET.png

It's a nice High Res poster image that provides the overview of Silverlight

.NET | Mix06|Tuesday, May 01, 2007 12:05:00 AM UTC|Comments [1]|    

 Monday, April 30, 2007
MIX07 Keynote

OK... so here comes my Mix07 Keynote recap.

A few BIG announcements

1.       Silverlight as of beta 1 (released today with a Go Live License) has .NET framework support. This support is cross browser (IE and Firefox) and cross platform (Safari on the Mac). This is huge.

2.       Microsoft announced Silverlight Streaming. http://silverlight.live.com . This allows developers to store up to 4GB of sub 10 minute videos and associated Silverlight applications into the Microsoft supported Content Distribution Network (think Akamai). This is FREE!

3.       Microsoft announced IronRuby for .NET. This will compile down to IL like anything else and the Dynamic Language IL will run on both Mac and PC inside Silverlight. ScottGu did a great demo with everything happening on the mac. From writing XAML to writing Ruby code. Compilation happening inside Silverlight.

4.       Expression Studio shipped today... I’m coming back to NZ with a special commemorative copy- the Expression team had 1500 completely unique designs put together for the boxes J

 

Here is some more detail gleamed from the Keynote and some other connections within DevDiv@ Microsoft.

Sililverlight Beta 1 incl Go Live. Final release will ship this summer.

 Silverlight includes cross platform .NET in the browser. Uses the same CLR that ships with full framework-  it has the same JIT, GC and type-system that you have with desktop .NET apps today.  It means that it loads and can run the same compiled assemblies that are used with the .NET Framework today- subject to it not quite having the full framework at its disposal- i.e. som namespaces are missing.

Seeing performance of up to 1000 times faster than Javascript- showed a great Demo with a Chess AI algorithm compared in Javascript and C#. 8 to 20 times faster than ActionScript.

Silverlight includes a subset of WPF from desktop.

Silverlight supports HTML DOM Integration- you can use any .NET language to build AJAX stuff rather than having to use Javascript. So basically you can wire up VB/C#/Ruby/Python event handlers to HTML elements like you would do with Javascript.

We FINALLY have debugging of browser code to rival (read spank the pants off) Mozilla....Not only is there support for running CLR stuff on the Mac.... Also support for debugging applications on the mac- you can remotely attach the debugger to the Macintosh over the network and step through the code!

Still a little unclear on the SOAP support. I know it doesn’t support WS* or WCF. I didn’t thnk it supported soap (only REST/POX/JSON) but I’m still digging on whether it will support  SOAP.

Silverlight has full LINQ (it includes System.Core so it will support all the .NET 3.5 stuff in that) support and an offline data cache.

Silverlight plugn is a 4MB download. Install is a 2 second task.

While not announced they showed a version of Silverlight running on Windows Mobile- may well see this announced @ MEDC later this week.... I’m trying to find out more about this RIGHT NOW. If it is true then I have a great application to put together right now.

There is no Audio or Video capture in Silverlight v1.

There is currently lack of support for a number of key WPF features... These sould be available and baked into the final version.... Definitely missing are: databinding, layout manager, styles and templating.

Codec support includes WMV, MP3, VC-1 and H263 video. Silverlight will NOT support additional Codecs that users might have installed.

 

.NET | Mix06|Monday, April 30, 2007 7:09:52 PM UTC|Comments [1]|    

 Saturday, April 28, 2007
Tune Here for Silverlight News

So y'all know that MSFTs FlashKiller is called Silverlight...

But

You don't know quite how cool it's actually going to be. I know.... but if I told you I'd have to kill you.

So. Come Monday the Kimono Shall Be Opened @ the Mix Keynote.

I shall be blogging live and telling you all about it.... suffice to say.... YOU WILL HAVE KITTENS!

[Update]

Just found out more great stuff.... Tommorows announcements will cover not only developer platform but some all new developer service offerings....

.NET | Mix06 | Vista|Saturday, April 28, 2007 11:50:36 PM UTC|Comments [0]|    

 Monday, April 16, 2007
Mix Build Up is Starting - MS Launch the Silverlight name for WPF/E

So WPF/E has a new name.

Silverlight.

Install is under 2MB.

Currently not supporting .NET languages but I'd expect to see that change pretty quickly.

“Silverlight is a cross-browser, cross-platform plug-in for delivering the next generation of media experiences and rich interactive applications (RIAs) for the Web. Silverlight integrates with existing Web applications. Silverlight media capabilities include fast, cost-effective delivery of high-quality audio and video to all major browsers including Mozilla Firefox, Apple Safari, and Windows Internet Explorer running on the Macintosh or on Microsoft Windows. By using Microsoft Expression Studio and Microsoft Visual Studio, designers and developers can collaborate more effectively by using the skills they have today to light up the Web of tomorrow.”

The biggest thing for me in the whole Expression push from Microsoft is in closing the chasm between designers and developers. Yes, there have always been people who sit pretty well in between, but round tripping betwen creative and development types has always been a really hard problem. With WPF I think they've come pretty close to cracking this nut.

I'll be sure to be posting more on this Live From Mix in a couple of weeks.... I'm gonna try and use my time at Mix to get back into bloging :-)

.NET | Mix06|Monday, April 16, 2007 8:08:01 PM UTC|Comments [0]|    

 Sunday, April 15, 2007
.NET Architecture Camp

SO I'm sitting in the penultimte session @ the Dot Net Architecture Camp @ Auckland University.

It's been one of the most engaging events that I've ever been to. The quality of the speakers has been top notch.

But... more importantly... the quality of the audience has been top notch with some great discussions going on. I set out (as one of the organisers of the event) was to try and have a more discussive type of event- I'd been watching the Beyond Belief event videos at the time.... I think we've done a pretty good job.

 

.NET|Sunday, April 15, 2007 2:27:04 AM UTC|Comments [0]|    

 Tuesday, April 10, 2007
Intergen writes the new Windows Workflow Foundation Web Workflow Approvals Starter Kit

So late last week Microsoft published the Windows Workflow Foundation Web Workflow Approvals Starter Kit or WFWWASK :-)

This is the culmination of a lot of hard work by the Dunedin office of Intergen who put together this sample for the .NET 3 team @ Microsoft in Redmond.

It's a great demonstration of how you can use WF to achieve a multiuser task management and assignment system. It uses roles to determine the routing of tasks.

If WF interests you I encurage you to go and grab this sample kit to have a play. Feel free to post comments in here if you have any questions.... I must get the rest of our Dunedin team blogging!

 

 

.NET | Windows Workflow|Tuesday, April 10, 2007 1:51:01 AM UTC|Comments [2]|    

 Tuesday, February 06, 2007
New User Experience Screen Cast

A friend of mine in India has just started a new UX focused screencast.

www.revoluxions.com

Check it out. Only one episode so far. But looking good.

.NET | Vista|Tuesday, February 06, 2007 8:38:24 PM UTC|Comments [0]|    

 Sunday, January 14, 2007
The iPhone

Well, a number of people have blogged about the iPhone over the past few days... I've not had a bundle of time but here are some of my thoughts.

1. They are going to have to do a REALLY kick ass job with Touchscreen for me to like it. I've tried phones withiout buttons plenty of times both MSFT and other devices. I hate them with a vengence.

2. Only EDGE!?! Bleh! THis rules out streaming video to take advantage of the screen and over the air music purchases too. I GUARANTEE this will change prior to launch.

3. As to be expected from Apple the UI looks sexy as sin!

4. The webbrowsing looks evolutionary rather than revolutionary. We'll see just what sort of a job they end up doing.

5. The google maps doesn't look as good as the new MSN Mobile Live Search IMHO/

6. The user interaction design. Is, as per usual up to Apples high standard... let's just see if they can pull off a good touch screen.

7. God damn it's expensive!

THose are my thoughts... as I said... gonna be hard to get me off my candy bar smartphone... but we'll see.

Thought I might just a address a few of Rods points while I am at it.

“The Microsoft Mobile team must be performing hari-kiri. They have had 5+ years and did not make it about the software. They wasted Microsoft’s key advantage. They could have easily done a soft keyboard but did not innovate. The mobile software was just a scaled down PC interface that doesn’t really work. Compare Pocket Outlook to the Blackberry Message Stream interface. Microsoft squandered the opportunity to make it about Software. Heads will roll. BillG must be pissed.“

Urm... Windows Mobile has always been about the platform. It is a generic platform that supports a huge array of devices. The range of different form factors trumps even Symbian. More importantly the platform is all about enabling developers. The reason that enterprise developers especially prefer Windows Mobile over Palm/Symbian etc... is that it is a doddle to develop software for. The platform is VERY welll supported across the whole gamut of tools, from core driver level stuff (allowing easy addition of peripherals at the OS level- Symbol, HHP, Navman) through to simple developer tools (eVB, .NET Compact Framework). It is trivial for someone to pick up the Windows Mobile platform and tailor it to their needs be they a multinational hardware vendor or a small ISV.

OSX as a multitasking Interface should suit mobile networks as it allows background downloading.“

This is a complete marketechture red herring. People have been doing multitasking for ages. I can happily surf the web on my Windows Mobile device while mail is downloading. Same with Palm.

"They have eliminated a device. The iPhone really is an iPod + Phone. With the iTunes infrastructure there are many opportunities for monetizing over the air downloads. This will guarantee carrier support.“

Urm... I use Plays for Sure support on my windows mobile phone. It syncs really nicely with my Media Center PC pulling down not only audio but also video. And... the fact that it's build on a broad and simple to develop for platform means that I can have rich additional content such as DRM'd eBooks and Audio books supported in unique ways as well. iPhone only eliminates the iPod in so far as one might insist on having an iPod.

“The iPhone is a compelling wireless Internet device. The inclusion of Safari is compelling.“

No it's not. Unless they add decent WWAN support (at least UMTS) it's a MOST uncompelling wireless internet device. The inclusion of Safari has great potential... but again... hamstrung by bandwidth.

 

.NET | Mobility | Rants|Sunday, January 14, 2007 11:24:38 PM UTC|Comments [2]|    

 Friday, January 12, 2007
A VERY useful post on UI Thread Affinity..

As you *should* know.... it is important to be careful with threads when programming a WinForms UI... specifically accessing controls should be done on the single UI thread.

This post gives a load of great detail.

http://weblogs.asp.net/justin_rogers/articles/126345.aspx

.NET|Friday, January 12, 2007 7:15:04 PM UTC|Comments [0]|    

 Wednesday, December 13, 2006
PDC 07...

 http://msdn.microsoft.com/events/pdc/

 

October 2 to 5 2007 in sunny Los Angeles.....

 

Set to be a pretty big PDC.... I'm picking more of an 03 (really early look at stuff) than an 05 PDC...

 

Should be a hoot... my red shoes and I shall be there... not staying in little Guatamala this time though!

.NET|Wednesday, December 13, 2006 7:50:06 PM UTC|Comments [0]|    

 Tuesday, December 05, 2006
WPF/E is out

Microsoft have released the CTP for WPF/E

http://www.microsoft.com/downloads/details.aspx?FamilyId=2B01EC7E-C3B8-47CC-B12A-67C30191C3AA&displaylang=en

You'll note they have a Mac Client already!

.NET|Tuesday, December 05, 2006 2:29:54 AM UTC|Comments [0]|    

 Monday, November 13, 2006
Windows Error Reporting from .NET Applications

I taught some classes recently for Vista app compat readiness.

One of the key things you need to ensure your app does for Vista is take advantage of Windows Error Reporting.

This means you MUST NOT just swallow all exceptions with your own exception handling.

A couple of quick tips around this.

1. If you want to rethrow an exception with the original stack trace do a blind throw like this

try

{
...
}
catch (Exception ex)
{
DoFoo();
throw;
}

Note that we don'te append the exception variable onto the throw.

You can avoid any .NET dialog boxes and throw unhandled exceptions straight to WER by using this line of code.

Application.SetUnhandledExceptionMode(UnhandledExceptionMode.ThrowException);

.NET | Vista|Monday, November 13, 2006 7:37:32 PM UTC|Comments [0]|    

 Sunday, October 08, 2006
google Introduces CodeSearch

Google now has a Code specific searching mechanism...

Syntax and Examples (more about regexp syntax)
regexp Search for a regular expression
go{2}gle  hello,\ world  ^int printk
"exact string" Search for exact string
"compiler happy"
file:regexp Search only in files or directories matching regexp
file:\.js$ XMLHttpRequest  file:include/ ioctl
file:/usr/sys/ken/slp.c "You are not expected to understand this."
package:regexp Search packages with names matching regexp.
(A package's name is its URL or CVS server information.)
package:perl Frodo  package:linux-2.6 int\ printk
lang:regexp Search only for programs written in languages matching regexp
lang:lisp xml  lang:"c++" sprintf.*%s
license:regexp Search only for files with licenses matching regexp.
license:bsd int\ printf   -license:gpl heapsort
 
“”

.NET | PoliTechLaw|Sunday, October 08, 2006 7:59:03 PM UTC|Comments [0]|    

 Monday, October 02, 2006
Microsoft Need to use a Cloud Based Download Mechanism for Betas

OK.

So Microsoft now seem to release a new Beta/CTP/TR/.... of something pretty much every day. They're almost all multigig downloads.

Pulling them from one of their three (US/Asia/Europe) servers is painfull at best- getting 26k pulling down Vista 5728-16384 at the moment.

They really needs some sort of Cloud based Bit Torrent style download mechanism.

.NET|Monday, October 02, 2006 9:26:12 PM UTC|Comments [5]|    

 Sunday, September 03, 2006
DataExchange in Windows Workflow

Some discussion came up recently on a mailing list I'm on about how difficult it is to get dataexchange working with WF. Here is my reply

OK.
 
I'll stick my sticky beak in here because I'm guessing that one of the 'samples that use the hardest technique' that you may have looked at was written by me.
 
I'm going to talk about the whole ExternalDataExchange thing for a bit.
Take a look at that post from Brian for some detail on what I'm talking about. A key thing to remember with WF is that, more than any other part of .NET to date, it is aimed squarely at ISVs (and MSFT product teams who are the same sort of thing).
 
Basically the whole external data exchange mechanism is designed to make it easier to provide services to activites at run time. It's not the only way to communicate into and out of a workflow, but, if you are doing asynchronous processing it is the way that you *should* communicate into and out of the workflow.
 
The whole ExternalDataExchange mechanism has two key benefits.
1. It provides a disconnect between the abstract activity and the concrete implementation of that activity. If you take a look at my whit paper on MSDN you'll see we have the abstract SendEmail activity and three concrete implementations that send mail via SmtpService, Exchange WebDav and Outlook. By implementing these three as different services we can create a mechanism by which the administrator can chose how they want the SendEmal activity to be serviced at runtime- the appropriate implementation of ISendEMail can be bound in by a 'simple' configuration file setting. This benefit probably falls into the architecturally useful basket.
 
2. It provides reliable async messaging into and out of the workflow. When you implement the data exchange pattern your messages out of the workflow (method calls) and more importantly messages into the workflow (events) are proxied through a queing mechanism. It is very important that this happens and let me tell you right now, using the data exchange services is a BUNDLE easier than trying to do all the queuing stuff by hand. The reason it is important is that it allows workflows to be serialized out to disc and then deserliaized on receipt of a message. i.e. if we didn't queue the messages we'd have to dispatch the event into thin air or block the call while we retrieved the workflow back off disk into memory. This benefit falls into either the pretty much essential basket.
 
Now then. Brian has indicated that he thinks that doing the DataExchange stuff is a bit difficult. I encourage you all to read my white paper.
It shows how to use some command line tools that let you go straight from nicely written interface to strongly typed activities very easily.
 
If any of you are in Malaysia for SEA techEd this coming week I'll be presenting an ILL on this on Thursday I think.
 
 
.NET | Windows Workflow|Sunday, September 03, 2006 12:30:41 AM UTC|Comments [0]|    

 Thursday, July 27, 2006
Trademe Invest I Zoomin...

Tim has a post up titled 'Trademe Invest in Ruby on Rails'.... which is a bit misleading really.

It's more like 'Trademe invest in Zoomin, who happen to use Ruby on Rails'.

Good on Zoomin for gettig their claws ito Trademe on this one. I thik it's fantastic... but it's pushig it a bit far to note that 'Trade me have 'lauched their first Rails page'. If it were written in PHP they would have launched 'thier first PHP Page' and the same for JSP. Don't think it's too likely that Trademe will be making the move off ASP.NET anytime soon.

When you buy someone elses technology you generally get it as is where is :-)

A funny little example I saw this morning was Sysinternals Process Explorer. Microsoft now own this but there's still a right click menu option to 'Google' a process name.

Will be interesting to see how easy it is for them to Mashup the Zoomin stuff into Trademe though... in particular whether most of the 'mashing' occurs on the Ruby side or the ASP.NET side.

.NET | Human Aggregation | Rambles | Rants|Thursday, July 27, 2006 11:22:13 PM UTC|Comments [0]|    

 Monday, July 24, 2006
Debugging Windows Workflow Foundation

Windows Workflow can be a bit of a pain to debug some days. In particular there are often scenarios where an exception gets swallowed somehwere in the runtime and you go off and spend 20 hours barking up the wrong tree.

Someone had one of these issues using some of the sample code from one of my MSDN articles today.

http://forums.microsoft.com/MSDN/AddPost.aspx?PostID=575571&SiteID=1&ReturnUrl=

A hot tip is to turn on some of the debug tracing in the runtime- easy to do. Just bigg the following into your config file.

<system.diagnostics>
    <switches>
      <add name="WorkflowTraceToDefault" value="1" />
      <add name="Host" value="All" />
      <add name="Runtime" value="All" />     
      <add name="Activity" value="All" />
    </switches>
  </system.diagnostics>

.NET | Windows Workflow|Monday, July 24, 2006 2:38:12 AM UTC|Comments [60]|    

 Tuesday, June 06, 2006
W00t! Front Page of MSDN

We've done quite a bit of Workflow stuff for Microsoft recently.

This morning two bits of stuff that we've worked on are featured on the front page of
MSDN.

There's a Virtual Lab- which is basically some hands on labs that we've been working on running in a Virtual Machine and also my article on Simple Human Workflow.

Neath huh!?!

 

.NET | Windows Workflow|Tuesday, June 06, 2006 5:21:33 PM UTC|Comments [2]|    

 Monday, May 29, 2006
Must Watch Apprentice Tonight

"In this two-hour episode, the teams must create a 60-second promotional video for new Microsoft software, with execs from the technology giant as the final judges. With only two people left on each team, stakes are high."

.NET|Monday, May 29, 2006 11:39:38 PM UTC|Comments [0]|    

 Thursday, May 25, 2006
Who Cares About Search Really Anyway....

Dare has posted a PR about MSN Spaces now being the largest blogging system on the net.

This kinda got me thinking.

There's all this MSFT vs Google stuff at the moment. MSN Search (or whatever the %*&%$ they are calling it this week) vs Google. Wil Google become the next Microsoft... blah blah blah....

And it's all got me thinking. Who cares about search really anyway.

I mean search is now such a fundamentally ubquitous internet feature that it's almost becoming genericized beyond commercialisation. What I mean to say is that I think it's going to become harder and harder to make search make money.

How many of you actually ever click a Google Ad Link on Googles site?

I find that really the only time I click em is on other peoples real estate. And I think that's quite important. The battle for the years ahead is not around search but rather it's around controlling the channel by which others deliver their content. To this end Yahoo, MySpace and even MSN have a big jump on Google in my opinion.

.NET | PoliTechLaw|Thursday, May 25, 2006 9:09:43 PM UTC|Comments [0]|    

Choose One From Many...

Phil has a post up about different UX approaches to doing mutually exclusive selection (think radio boxes).

Thought I'd chime in with the way that Vista now does it (most of the time).

This is a new Win32 control in Vista designed for scenarios where in the past you'd lick the radio button and hit next... when all you were doing was making a single decision.

.NET | Vista|Thursday, May 25, 2006 8:59:37 PM UTC|Comments [0]|    

 Wednesday, May 24, 2006
Holy Smokeballs Batman... We Have Live.Local.Com

There is now a *little* bit of New Zealand data available on http://local.live.com

Still no street names for all the streets... but we're getting there.

There is also now a lugin for Outlook. http://outlook.local.live.com that looks quite snazzy.

.NET | Toy Box|Wednesday, May 24, 2006 9:17:34 PM UTC|Comments [0]|    

 Thursday, May 18, 2006
Project Orange

Microsoft are starting to make some announcements around WinFS.

J'Fo has the details on Project Orange, what looks to be the next super duper version of Explorer, here.

Sounds an awful lot like some of the ideas from Alex James with his XTend and Base4 projects.

.NET|Thursday, May 18, 2006 9:05:27 PM UTC|Comments [0]|    

 Thursday, May 11, 2006
How to get owned....

Ever seen a REALLY nasty SQL Injection attack in action.

Check this out.

http://www.rockyh.net/Posts/Post.aspx?postId=7a7542fd-f95b-40c6-b464-c30e560dd90d

Includes a demonstration of how to script an SQL injection attack to do a bitwise determination of any field in the vulnerable database too.

This is MUST WATCH material.

.NET | PoliTechLaw|Thursday, May 11, 2006 4:03:10 AM UTC|Comments [0]|    

 Monday, May 01, 2006
Mmm.....Banquet

After reviewing the videographic evidence it has been determined that Tim owes me lunch :-)

We'll both be sure to blog pics and a follow up to what I'm sure will be lively lunchtime discussion....

Tim- I suggest we do Japanese- Sakura maybe?

.NET|Monday, May 01, 2006 2:20:10 AM UTC|Comments [0]|    

 Wednesday, April 26, 2006
It's The Platform Stupid

So we had a great couple of lunchtime sessions at CodeCamp last weekend. I ws one of the presenters for both.

On Saturday I was with fellow RD Jeremy Boyd and Microsoft Architect Advisor (aka Evangelist) Mark Carrol. We were discussing the future of software development.

On Sunday it was a discussion on the business of software with Mauricio Freitas from Geekzone and Rod Drury from Aftermail.

Anyway, Tim Haines has blogged about some of what was said I herewith is my reply :-) (Read that post first if you've not already)

I'm am positive that I didn't say anything about Vista/Live specifically... we have it Video'd so we can find out. But I probably did misinterpret Rod supporting the Live/Vista wave of stuff if I said the words Vista and/or Live in my reply to Rod then I'll buy Tim lunch!). That said. I stand by my sentiments I think they are important and I think they are important for reasons that I really reinforced on Sat. Basically success in the software business is easier to achieve (for smaller scale businesses especially) if you build out on top of someone elses platform.

If we think of a quick history of computing.... the real success of the PC and Microsoft came about because of a few things:

  1. IBM and Intel provided a ubiquitous and fairly open hardware platform.
  2. Windows provided a platform for a whole ecosystem to build up on. ISVs fed of the uiquity of Windows and Windows was successful because everybody needed it to run their chosen applications- from Word to Autocad to Matlab.
  3. Some of the ISVs formed Platform type ecologies themselves- think of 3DS Max, Autocad. Think of Aftermail even, it is an application based on top of an application that runs on Windows that runs on IBM Compatible hardware.

Then along came the internet. The internet is a platform. My submission is that in terms of the layers we see above, the internet is far more of an IBM hardware platform than a plugin supporting 3D application.

No one owns the internet, no one dominates the internet to the extent of anything above. But, I don't think that it's stupid to reflect on this historical context a bit when we talk about future possibilities and platform plays.

So for example if you want to play in the e-commerce sandpit then you could build directly on the internet as your platform- say making a turnkey shopping app, or, you could build on top of another persons internet platform, say building tools to support business on eBay or TradeMe.

We're never going to have a Windows equivalent on the internet. No matter how hard Microsoft, Google and Yahoo try it's just not going to happen. The primary reasons being that a) no one vendor has a critical mas of market share and; b) It's too easy to build stuff on the internet without leveraging another platform (try writing stuff to run o Windows PCs without an OS... you need a Windows or a Linux  make it a realistic proposition).

They way I see it there is a fundamental rule for all this 'future' web stuff:

Your application has to be a platform. It has to be a platform for others to build on top of from a business perspective foremost. And to achieve that business platform it's likely that you'll need to have your application setup as a platform in the technological sense to some degree as well. If you can support an ecosystem ontop of your application it will flourish.

Now where does this leave us with the whole discussion around Live.com? Live is a platform play, make no doubt about it- frankly it's about time. Does anyone remember Hailstorm? If that hadn't been sunk by the usual 'big corporate paranoia' that goes on do you thin we'd been all excitied about this Web 2.0 thing now? Or would it have happened a couple of years ago?

I want to be able to build applications that leverage my personal data, I'm less concerned with privay than I am with imersing myself in a decently chunky technological soup that makes my life better. The key problems in my life today are that I have too much information to digest, too many things todo and frnakly too many opinions on too many things to be able to express them, do them and read them in the time I have available. I couldn't give a crap if it's Microsoft or Google or Yahoo or whoever that drives the next platform but someone has to step up to the plate and do it and be able to do it without wails of 'multinational this' and 'big corporate that'.

I'm baffled as to how a shareable web hosted calendar type application (as we would have had with Hailstorm) was wrong when MSFT proposed it in 2001 but is the best thing since tinned beer now that Google have jumped on top of it. I reiterate- no one is going to dominate the internet.

.NET | Mix06|Wednesday, April 26, 2006 10:23:25 PM UTC|Comments [0]|    

 Tuesday, March 21, 2006
IN The Belfiore Keynote Now

WPF will be supported on Media Center AND will be remoted out to XBox 360 and other Media Center Extenders.

Lot's of exciting new changes for MCE Vista- but none that have not been announced already.

So to recap- two ways of extending MCE

1. Media Center UI Langauge of sme sort (what MCE team use to buildtheir UI)

2. WPF

Showed MCE RSS Client Platform Sample- will be available as surce in SDK. Lot's of 3D. Think it's using the MCE UI language-but looks just like WPF- i.e. gratuitous Video projected on 3D surfaces.

Showed Electric Red Nascar portal. Uses WPF- very rich. Very cool. One of the best WPF demos so far. Lots of Video.

Have a ListView demo... where the List View Items are full figure driver cut outs! Yee Haaa! [I have a photo of the screen which I will try to post later]

.NET | Mix06 | Toy Box|Tuesday, March 21, 2006 6:18:32 PM UTC|Comments [0]|    

Spark @ Mix Session

They're now havinga session for we mortals who were not invited to SPARK to tell us about what they discussed...

Was designed to examine the future of architecture (Past 2 years, next 3 years)

How do we integrate Web 2.0 with SOA? What are the conflicts?
How do we take the rapid dev, rapid change nature into corporate dev?

Talking about differences between consumer space and enterprise space.

.NET | Mix06|Tuesday, March 21, 2006 12:47:03 AM UTC|Comments [0]|    

First Day @ Mix

So I'm about 1/2 way through he first day @ Mix.

Highlights thus far have been the session on Live.com stuff. Funnily enough I've meen luke warm on this for a while and as having ust that conversation with some other kiwis last week.

But, it's looking like it'll have great potential- great stuff to be done with MSN Messenger especially- I need to port my WF sample to use MSN Bos real soon.

Downsides thus fa have been not a lot more detail on WF- still getting Max and the Northface demos trotted out... which are all like sooo last year.  guess we'll have to do some realy cool stuff soon to show it off!

Currently in the WPF/E project below are some random notes.

WPF/E

Subset of WPF
CTP Q3 200
RTW First Haf 2007
Uses Javascript and Markup
Looks VERY ikely that they'll suport at least Safari and Mozilla (supports Netscape plugin model)
Will support 'object tag' type tag packaginng including compiled .NET IL code
Device support late 2007
Plugin currently 200k no dependency on WinFX
Also suports displaying a special WPF/E file tye

Showed some of the Northwave content
- THe rotatig jacket model

So I'm about 1/2 way through he first day @ Mix.

Highlights thus far have been the session on Live.com stuff. Funnily enough I've meen luke warm on this for a while and as having ust that conversation with some other kiwis last week.

But, it's looking like it'll have great potential- great stuff to be done with MSN Messenger especially- I need to port my WF sample to use MSN Bos real soon.

Downsides thus fa have been not a lot more detail on WF- still getting Max and the Northface demos trotted out... which are all like sooo last year.  guess we'll have to do some realy cool stuff soon to show it off!

Currently in the WPF/E project below are some random notes.

WPF/E

Subset of WPF
CTP Q3 200
RTW First Haf 2007
Uses Javascript and Markup
Looks VERY ikely that they'll suport at least Safari and Mozilla (supports Netscape plugin model)
Will support 'applet' tpe tag packacng including compiled .NET IL code

Gave WPF/E Demo (using NorthFace Content)

-Rotating Jacket  (using a DHTML slider and avascript to talk to XAML ject)
- The breathable jacket animation
-Video player

Firefox not smoke and mirrors- showed a demo of it running in Mozilla and on Safari!

[UPDATE]
- Are prepared t make WPF/E available to ship with Firefox
- Are commited to there being a Linux version of WPF/E 

[Another Update]
- Yes that does mean IL code running on Mac and Linux (obviously not the whole framework though)
- More to be announced @ the keyote tommorow (Tue AM PST)

.NET | Mix06|Tuesday, March 21, 2006 12:02:51 AM UTC|Comments [0]|    

 Saturday, March 11, 2006
Simple Human Workflow wit Windows Workflow Foundation

I've just had a white paper published on MSDN.

It show how to us WF to manage wrkflow among a groupof huan actors- it's really cool ithat the communication with the actors is via common protocols like email and instant messenger.

Take a look at the white paper here.

You can also see nd discuss this at my session on WF @ Code Camp.

I'll also probabl being running through the saple as a lab @ CodeCamp too...

.NET|Saturday, March 11, 2006 8:17:54 AM UTC|Comments [2]|    

 Thursday, March 09, 2006
Want to find out something from Mix?

So I'm going to Mix and there aren't many others that I'm aware of from NZ going.

So- I'm keen to see if anyone want to find anything in particular out? Want a particular question asked? Burning to find something out and think it will be covered?

Here is my schedule thus far. If you have a special interest in something post in the comments and I'll keep and eye out for you and blog about it- obviously I can only post about non NDA stuff, but, I'll do my best to find out as much as I can tell you about from the horses mouth.

Schedule For Chris Auld

Monday, March 20

1:30 PM - 2:45 PM  
NGW050 The Windows Live Platform: Build Applications That Have Access to 400 Million Address Books, and 13 Billion Contacts!   Palazzo Ballroom E-L    
3:00 PM - 4:15 PM  
NGW008 Windows Presentation Foundation (WPF): The Opportunity for WPF Applications in the Browser and Beyond   Ballroom O/P    
4:30 PM - 6:00 PM  
BTB035 Extending Your Experience to Mobile Devices   Ballroom A/B    
NGW046 Running a Megasite on Microsoft Technologies   Ballroom O/P    

Tuesday, March 21

11:00 AM - 12:15 PM  
BTB025 Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts   Ballroom M/N    
1:30 PM - 2:45 PM  
DIS003 Today's Identity Crisis, and the Identity Metasystem   Ballroom O/P    
3:00 PM - 4:15 PM  
NGW036 A First Look at Windows Presentation Foundation Everywhere (WPF/E): a Cross-Platform subset of WPF   Ballroom A/B    
4:30 PM - 5:45 PM  
BTB029 The Digital Home: Designing for the Ten-Foot User Interface   Palazzo Ballroom E-L    
NGW026 IIS7 As a Developer Platform   Ballroom O/P    

Wednesday, March 22

8:30 AM - 9:45 AM  
NGW034 From “Username and Password” to "InfoCard"   Ballroom M/N    
10:00 AM - 11:15 AM  
11:30 AM - 12:45 PM  

.NET | Mix06|Thursday, March 09, 2006 1:10:33 AM UTC|Comments [0]|    

 Friday, February 17, 2006
Mixng It Up In Vegas Baby.... YEAH!

So I'm just about fully confirmed for my Trip to MIX06. If you have been on another planet recently you may have missed out on learning that MIX is a conference about the next generation of the Web. MSFT are sponsoring/organising it, but it's gonna be really different to most other MS cons from what I can see.

I'm going there with anoter NZ ISV who I'm doing some architecture and strategy consulting with at the moment. We're going to hit the Game Developers Conference in San Jose on the ame trip so it's gonna be a CRAZY week.

There is a good http://channel9.msdn.com/showpost.aspx?postid=156677 that sets out some of the things that are going to be covered @ MIX.

It's kinda exciting for me because I've kind of eschewed 'the web' for the past few years and I've focused on Smart Clients. Funnily enough I wrot some of the first bits of published work on the sort of tenology that is now know as AJAX/ATLAS etc... (see my chapters in Practical XML For The Web)

 

I know I'm sure as hell looking orward to being part of the conversation.... be sure to keep a look out for my red shoes in Vegas. Come and say hi!

Oh... I'll be in Singapore the following week (Vista stuff)... so keep an eye out for the Red Shoes there too.....Gonna be some serious bum in a plane seat time put in over those to weeks!

.NET | Travel | Mix06|Friday, February 17, 2006 5:34:02 AM UTC|Comments [0]|    

 Thursday, February 16, 2006
Using Messenger Live for Remote Pairs Pogramming

While we're not strictly a XP dev shop, we occasionally do a bit of pairs programming to nut out difficult problems or when we are doing performance optimisation. Because we now have offices in Dunedin and Wellington this may need to be done remotely. Over the last couple of days I have spent quite a bit of time working on some SQL optimisation with our SQL Server guy and frankly, the remote approach is just about better than really being there. We've ben using Skype for voice and MSN Messenger 8 Remote Assistance to allow me to view and control his desktop. It really is rather good.

We could probably use MSN for voice instead, but, we didn't find the quality quite as good as Skype.

I reckon this is about the ultimate approach to pairs proigramming. It affords each dev their own machine and you also get yor own personal space- I remeber at a previous employer ho much I disliked helping one colleague who would just spend the whole time noisily chewing gum in your ear.

I'm not sure if MSN Assistance is firewall capable yet- we have an ISA Server in both WLG and DUD and a VPN tunnel means that it appears we are on the same network (thanks WIC and FX for the fast backbone). But frankly it makes the whole concept of pair programming just about doable from a logistical point of view.

.NET|Thursday, February 16, 2006 3:31:34 AM UTC|Comments [1]|    

 Wednesday, January 18, 2006
Are YOu Ready To Go-Live?

Windows Communication Foundation and Windows Workflow Foundation now have Go Live licenses.

Beta 2 of WF was released to the public today and it's got some great changes.

Make sure that you head to http://www.windowsworkflow.net/ to pick it up.

Make sure that you also grab the Hands on Labs from here:

http://www.microsoft.com/downloads/details.aspx?FamilyId=5DF74E3B-FB51-4A94-A11D-DFF70288A8BB&displaylang=en

These give worked examples of almost all the key functionality in Windows Workflow Foundation. The team @ Kognition have spent the last month or so re-working and re-building these labs for Beta2.

My favourite of the labs is #10. We provide a fully worked example showing how to

1. Host the WF Designer in your own application
2. Set properties on your workflow activites at design time- including showing you how easy it is to do activity binding in your own designer.
3. Save and compile the workflows
4. Run the workflow

.NET | Windows Workflow|Wednesday, January 18, 2006 8:20:22 PM UTC|Comments [3]|    

 Friday, November 18, 2005
Exchange 12 x64 Only!

According to MS Tech Evangelist Extrordanaire- Mr Nathan Mercer.....

Exchange 12 is going to be x64 only.

I personally think that this decision...

COMPLETELY SUCKS ASS!

There are just too many SMEs with existing hardware that they'll want to upgrade. As such I am prepared to bet Bob Clarksons Left Nut that they'll change this policy.

.NET|Friday, November 18, 2005 3:03:03 AM UTC|Comments [17]|    

 Thursday, November 17, 2005
Angus Takes The Red Pill

All around good bastard Ocker and MS Enterprise Server guru Angus Logan has decided to drink the kool-aid.

He's off to be a Tech Specialist with MSFT.

Well done bud!

.NET|Thursday, November 17, 2005 7:32:40 PM UTC|Comments [2]|    

 Wednesday, November 09, 2005
VS2005 Launch Madness

OK... so some of the Korean Dev community have put together a VS2005 rap...

Check It Out!

I laughed my ass off!

http://www.microsoft.com/korea/events/ready2005/vs_song.asp

.NET|Wednesday, November 09, 2005 10:56:26 PM UTC|Comments [0]|    

 Wednesday, October 26, 2005
Look What You Can Do With ASP.NET Two.....

Now this will be about the first and only time I post a friendly link to a Christian Web SIte.

But, one of my team mates here @ Kognition is a keen member of the Christadelphian church here in Dunedin and has put together a pretty kick ass wee site for his church in ASP.NET 2.0. He reckons it's childs play to use.

It even picks up the bible readings off a web service!

Anyway... take a look. Feel free to ask in the comments how any of it was done.

Be sure to check out the Joseph Movie:

“just for a little fun, one weekend we decided to travel down to Gore and film our rendition of the famous Bible story of Joseph.”

.NET|Wednesday, October 26, 2005 8:01:27 PM UTC|Comments [2]|    

 Friday, October 21, 2005
Developer Express Support Rocks!

OK... so we use the Developer Express Components in some of our projects and we recently found an issue with their reporting library. They had it resolved and a patch delivered to us within a week....

IMHO that's pretty impressive service.

Well done Dev Express.

.NET|Friday, October 21, 2005 3:16:35 AM UTC|Comments [14]|    

 Tuesday, October 18, 2005
Another MS/Kognition Case Study

Our work with the National Poisons Center www.toxinz.com has been published as a MS Case Study

.NET | Kognition|Tuesday, October 18, 2005 8:59:28 PM UTC|Comments [0]|    

The Finalizer Case Study Is On MS.Com

http://members.microsoft.com/CustomerEvidence/Search/EvidenceDetails.aspx?EvidenceID=13423&LanguageID=1

This is not just any old boring case study... becuase The Finalizer is a .NET Powered Battle Bot. As seen @ PDC.

.NET|Tuesday, October 18, 2005 8:56:14 PM UTC|Comments [0]|    

 Monday, October 17, 2005
Tips For Resolving WWF Build Errors - Beta 1

So the WWF tools for VS.NET 2005 have some 'issues' that can rear their head as strange build errors.

The symptom is that your solution, which has no syntax errors at all, sometimes fails to build and just spouts random bollocks.

What seems to be happening is some wierd caching of types by the designer- reason being is that the designer has to build your custom activities at design time so that you get a nice design experience.

So here are a few tips if you are seeing wierd build errors.

#1. If you are closing VS.NET and/or your solution, make sure that all designer and code documents are closed.

#2. If it's behaving strangely have a crack and building some of the key projects (communication service interfaces, services and activities) individually.

3#. If none of that works, close all your documents, close VS.NET, reopen and rebuild the solution as soon as you re-open.

.NET | Windows Workflow|Monday, October 17, 2005 7:57:46 PM UTC|Comments [6]|    

 Friday, September 23, 2005
*** SVN Gemini Commenter v1.1 ***

We've just released the latest incarnation of our Gemini/Subversion Commenter Utility.

I can't claim to have really provided al that uch input into it... credit for that goes to Nick head and Steven Higgan who are a coule f guys who work with me....

*** SVN Gemini Commenter v1.1 ***

 

Release Notes:

- All configuration now located in app.config

- Robust regex-based issue ID parsing

- Support for multiple issue ID's per commit

- Optional debugging

- Error handling

- Fixed bug with spaces in repository path

 

Usage:

SVNGeminiCommenter.exe repo_path rev# debug

e.g.

SVNGeminiCommenter.exe "C:/SVN/sourcerepository" 9999 debug

 

Instructions:

1) Add post-commit.bat to your SVN repository hooks directory

2) Edit post-commit.bat to reflect your repository path

NB: post-commit.bat currently echoes the arguments to args.txt. This can be disabled.

3) Commit file and reference issue ID in comment. The following are tested commit strings:

#1568 \r\nFixed issue

#1568, #999, #1000\r\nFixed issue

#1568, #999, #1000 Fixed issue

#1568,#999,#1000 \r\nFixed issue

#1568,1736 \r\nFixed issue

4) For instructions to integrate with TortoiseSVN see here:

http://tortoisesvn.sourceforge.net/docs/release/TortoiseSVN_en/ch05s24.html

SvnGeminiCommenter1.zip (18.08 KB)

.NET|Friday, September 23, 2005 1:19:54 AM UTC|Comments [0]|    

 Friday, September 16, 2005
Dave Glover Gets His Smartphone App on PDC Commnet

Dave, one of the DE's for Aus had his Smartphone voting app featured on the PDC Commnet!

Go Dave!

It's a cool little app that lets you use a WM5 smartphone for collecting votes at events and so forth.....

.NET|Friday, September 16, 2005 1:11:00 AM UTC|Comments [15]|    

 Thursday, September 15, 2005
Holy Shitballs...... WWF Designer Hosted In IE

THey have just shown the WWF designer pulled up into IE to dynamically edit the Indigo workflow they've just built...... and you can also edit currently running workflows.

This is just SOOOOO cool....

Imagine how good this could be for mobile routing solutions.... you can login 1/2 way through the transaction and reconfigure a running workflow to handle and exception case.

This is probably the coolest WWF demo that I've seen so far.

THey showed a workflow hanging on a delay activity and they dropped in some new activities after it stright from the web browser.

.NET | Windows Workflow|Thursday, September 15, 2005 11:45:40 PM UTC|Comments [4]|    

Workflow and Indigo

Sitting in a Don Box session at the moment looking at some future stuff for how WWF and WCF will talk together.

Very cool concepts- theability to simply have a workflow be an Indigo service but they really tightly integrated the two.... which is great.

For example if you have a correlated receive and send pair or activities in your workflow when exported as an Indigo service they will be matched up as a Send/Receive pair..... This also means that we can model contracts more richly than just single pairs- we can model contracts as conversations- i.e. we know the order in which our workflow expects to recieve messages.

Looks great. One thing that I'm interested in is just how much hosting support they're going to give us for Indigo Workflows. I'm pretty sure that IIS is going to be an out of the box supported hosting mechanism (hosting session is next).... will be interesting to see what sort of higher end support services we get OOB... things like persistence services and so forth to enable long running work flows.

 

.NET | Windows Workflow|Thursday, September 15, 2005 11:38:15 PM UTC|Comments [2]|    

 Wednesday, September 14, 2005
All ABout WWF- No not the wrestling stupid!

All About WWF
SO Windows Workflow Foundation shipped today. We've been kicking it around for a bit now.

WWF is going to be the worflow engine for windows. It basically allows you to declarativly stitch together application logic into worflows. Not only does it support your typical 'Biztalk style' sequential workflow types but it also allows you to build state machine type workflows. You can either write them in code or.... wait for it..... you can declare them in XAML (though it's called XOML in the current drop). What this means is you could potentially stictch together a whole application out of components in just XML. Avalon would form the UI and WWF could be used to provide a state based execution engine. Slap a nice GUI UI around it and you've got a high productivity app builder that any old BA can use.

I'm going to post a bit over the next few days about some of the things that I've learnt around WWF thus far and some of the cool ideas that I've got for WWF.

I'll post some screen shots tonight once I'm back on my dev machine.

.NET | Windows Workflow|Wednesday, September 14, 2005 8:28:38 PM UTC|Comments [0]|    

 Tuesday, September 13, 2005
Coolest New Tech @ PDC TOday

Was the new Linq namespace which is the unified data query namespace.

Will post more on it once I've found all the details but should be up on MSDN today.

.NET|Tuesday, September 13, 2005 9:20:38 PM UTC|Comments [3]|    

MS Office 12 - Otago Univeristy Student Edition....

Sitting in the Office 12 session here @ PDC....

THe new Office UI has.... wait for it.....

'Chunks' and 'Floaties'...... sounds like what you'd see after a big night on Castle St.

The Office UI has changed a whole heap. There are no longer any menus except File.

Yes you heard right. NO MORE MENUS.

Everything is driven from either the new tab based Ribbon Toolbar which is made up of Chunks. Or by mousing over 'Floaties' that are like toolbar type smart tags.

.NET|Tuesday, September 13, 2005 9:12:20 PM UTC|Comments [1]|    

 Tuesday, September 06, 2005
Casting Strings to SqlDbType compatible types at runtime

I HATE doing monkey work and had the pleasure of such this afternoon.....

So herewith a switch statement that casts strings appropriatly for most SqlDbType type parameters.

string nodeValue = node.Value;

switch (prm.SqlDbType)

{

case SqlDbType.BigInt:

prm.Value = Int64.Parse(nodeValue);

break;

case SqlDbType.Bit:

prm.Value = Boolean.Parse(nodeValue);

break;

case SqlDbType.Char:

case SqlDbType.NChar:

case SqlDbType.NVarChar:

case SqlDbType.VarChar:

prm.Value = LeftStr(nodeValue,prm.Size);

break;

case SqlDbType.DateTime:

case SqlDbType.SmallDateTime:

prm.Value = DateTime.Parse(nodeValue);

break;

case SqlDbType.Decimal:

case SqlDbType.Money:

case SqlDbType.SmallMoney:

prm.Value = Decimal.Parse(nodeValue);

break;

case SqlDbType.Float:

prm.Value = Double.Parse(nodeValue);

break;

case SqlDbType.Int:

prm.Value = Int32.Parse(nodeValue);

break;

case SqlDbType.Real:

prm.Value = Single.Parse(nodeValue);

break;

case SqlDbType.SmallInt:

prm.Value = Int16.Parse(nodeValue);

break;

case SqlDbType.Text:

prm.Value = nodeValue;

break;

case SqlDbType.TinyInt:

prm.Value = Byte.Parse(nodeValue);

break;

case SqlDbType.UniqueIdentifier:

prm.Value = Guid.NewGuid(nodeValue);

break;

}

.NET|Tuesday, September 06, 2005 4:40:54 AM UTC|Comments [0]|    

 Monday, September 05, 2005
Forthcoming Webcast On Workflow

Expat 'softie Paul Andrew has posted a schedule of forthcoming webcasts on Workflow in Windows Applications.

I'm one of the presenters.

Monday: Simple Human Workflow Using EMail
Monday, September 26, 2005

10:00 A.M.–11:00 A.M. Pacific Time 

In this session New Zealand based Regional Director, Chris Auld, will walk attendees through a simple worked example of the use of SMTP email as part of a workflow solution. Chris will demonstrate how to create custom activities to query Active Directory to retrieve user data, send email and finally wait for email responses to continue the workflow process. The code intensive session will give users taking their first steps with workflow a good grounding in some of the key extensibility concepts.

Now that is REALY early for you kiwis but it would be GREAT to see you there..... I'll post a bit more about workflow stuff after PDC :-)

.NET|Monday, September 05, 2005 12:49:08 AM UTC|Comments [1]|    

 Thursday, September 01, 2005
ARC312 Tech Ed Auckland

Herewith the:

.NET|Thursday, September 01, 2005 4:05:44 AM UTC|Comments [0]|    

 Tuesday, August 30, 2005
Blog Casts from Tech Ed Auckland

Last Friday we did some interviews with a few of the guys and girls out from Redmond.

You can find them on the NZ Dot Net Users Group page. http://www.dot.net.nz/Default.aspx?tabid=76

.NET|Tuesday, August 30, 2005 8:03:16 PM UTC|Comments [0]|    

Session Slides ARC307 Tech Ed Auckland

Here are my slides for Tech Ed Auckland session ARC307

ARC307_Auld_Blog.ppt (2.69 MB)

No demos. If you didn't get a Fabrikam DVD from the session and want one email me. The Generico stuff can be ordered from MSDN.

Happy to take any questions here.

.NET|Tuesday, August 30, 2005 3:37:53 AM UTC|Comments [0]|    

 Sunday, August 28, 2005
Tech Ed Live Blog - Avalon and Win Forms with Tony Goodhew

Live Blogging WIndows Forms and Avalon with Tony Goodhew

Avalon not necessarily a replacement of WInforms. Will be able to start to easily integrte the two.

Quick slide on Avalon Framework
.NET and DirectX based.
Unifying Documents, Graphics and Metadata. Tony says that it is borrowing ideas from the web world and applying to richer desktop UI. Avalon aimed at bringing cmpelling UI to the client.
e.g. Data Viz- more graphicly rich display model. Can increase the rentention in knowledge of users.

Will be shipping as part of Windows Vista. Will be on the machine but will not be dehydrated until 1st run. JIT deploy will be seemless. First startup there will be some overhead but after that WinFX just available.
Redist package available for WinXP and Win Server 2003. Will need to bundle the redist with apps for those platforms.

Tony left his demo cheat sheet in his bag *grins*..... I've done that before.....

Demo is MediaMania demo. Running in XP not Vista. So miss some of the Glass UI stuff.
Key things that help us now:
Vector Graphics
Scaling
Animation

A key problem with windows apps is they are built around a bitmap drawing system. Avalon changes this. Renders correctly even if we scale right up. Developer doesn't need to right scaling code.

Calls out to Amazon Web Service. Returns list of music albums. Tony starts talking about XAML and how we have split UI defnintion in Avalon.
e.g. We have a standard Avalon list box and we have written some XAML to skin it with new look including images. Tony now talking about scaling- the application is good at taking advantage of more screen real estate. VEry clever though- not just scaling. E.g. Text label control. One column when narrow. As you make it wider at run time by making wind bigger it will add more clumns and flow text correctly.

Lots of great new UI features all done in Markup language. Tony showing how we can 'reskin' the list box. \Can achieve MAJOR change.
Went from standard list to a 3D array of tiles.

Now back to slides and talking interop.
We can use Avalon to enhance existing winforms app. Might already have a set of controls that encapsulate business logic- might want to just add avalon look over the top. Avalon has a much more detailed eventing model for change notification. Still easy to take data code from 1.1/2.0 and take it into Avalon.

New control called ElementHost that allows hosting Avalon control within a winforms app. Deals with some of the background properties and that sort of host related stuff. GOing the other way you can drop a WIndowsFormsHost component into Avalon to host a windows control- strictly can host anything that has an HWnd.
Forms and WIndows just work together.
Some tehcnlogies don't transfer across... e.g. TRansparency, some styling stuff. If the WinForms control doesn't support what you want, you can't just get it by hosting inside Avalon. Some limitations are around ZOrder- HWnd host has to be at the top of the Z-Order.

THey are looking at ways to allow stuff to be rendered out to Metro- this will be preoblematic around WinForms controls... still working on the problem.

Demo
Showing a stock ticker that pulls details from NYSE.
Shows list being populated and chart being brought up. Going to show WInforms Charting Control being hosted. We've opened up the XAML. At the moment we see XML. Assured that we will get some graphical tools soon. At the moment it is a case of editing raw XML with Schema support. Unsure right now as to whether this will be available in 2005 or whether we will have to wait until Orcas (VS.2005.Next).

So we are now loking at how to embed WIndows Forms chart control. NOt much code to write. Can't really see it though- this room (Elliot in the crown) is too long for the size of the screen.

Good demo. Just works. Looks good and not out of place having WInforms control in there.

Back to PPT.
So when do we want to use what?
Not telling us to reqrite existing application in WinFX. But, are there areas of the app whch we could take advantage of WinFX in.

Can we use both?
Can we build apps that take advantage of WInFX when we find it.
We need to seperate the UI and the business logic. Make sure that you sperate the UI from the business logic. Abstract it out correctly. use events appropriately- observer patters, MVCs etc...

If you have a dependency then take it on the basis of broadest platform appeal. e.g. If you need a bitmap use a Windows Forms Bitmap not an Avalong bitmap so things can still be used on nw non WInFX platform.

So we are now looking at putting an Avalon Listbox into a WinForms app. We have the form in design view. Drops in the Element host, some databinding support controls to allow binding the Avalong control to windows forms dataset. Not able to drag and drop the Avalon control yet :-( BOooo... I was getting excited for a minute there!

Actually write some code to add it during a runtime formload handler.

Demo worked well... TOny happy......

Now we're goi9ng to look at how to make it adaptive- i.e. so it still works on Windows 2000... i.e. non WInFX platforms. So what did we do to determine it was running on WInFX? At present can check in code by trying to find the actuall class using reflection. Thus doen't require a dependancy... late bound not early bound.

If it doesn't exist we can just use our normal code and display a non Avalon Control.

Really need to do something about the screen in this room. A bit hopeless..... can't see squat. TOo much looking at code that I can't see in this demo now. BUt we get the idea. Runtime detection of WInFX support and draw either Avalon or WinForms  depending on our actual machine. Has used two seperate cotrol projects thus allowing us to avoid any early bound (depency) references
 in our actual Winforms project. DOn't need an Avalon dependency until we actually dyaniclally load the Avaol styled listbox cntrol at runtime. We do similar stuff to this in order to make our applications run on the same code base on WIndows Mobile and on WinForms desktop.


Back into PPT.

The obligatory Call to Action Slide
Key message here is to seperate the Business and UI logic. Says to use PAG P&P guidance.
Need to look at two to three year plan and plan how we will get there with introduction of WInFX.

We will need to look at some of this as check that we can migrate our metedata driven WInforms and CF Forms engine to Avalon at some point.

 

.NET|Sunday, August 28, 2005 11:57:59 PM UTC|Comments [5]|    

Tech Ed Podcasts Coming Soon

I did the Podcasts on Friday. Just need to finish encoding the video and upload them. Keep your eyes peeled.

.NET|Sunday, August 28, 2005 9:58:20 PM UTC|Comments [6]|    

Tech Ed 2005 Keynote Live Blog

Ross Peat (NZ MD)
Usual ra ra and blah blah. Spoke about forthcoming technology wave. Announced a new partnership with Incubators NZ worth NZ$3.5 mill. This is good. Directly affects me.

Iain McDonald (Director in Windows Team Redmond)
Wanted to piss take about the rugby couldn't. Didn;t want to talk about the cricket either :-)

Michael Kleef (Aus D&PE- IT E from Perth) came out for Demo.

  • Showed split token admin privs. Eaiser to run with lower priv.
  • Showed event log that can in turn trigger other jobsand tasks
  • Showed new policy stuf
    • Showed virtualised HKEY local machine. I.e. apps write to user specific apps while still able to write to HKEY local machine. Old stuff will thus keep running under new Longhorn Security
  • Search
    • Spoke about metadata tagging of file system objects. But what about WinFS? That is what they SHOULD have done.
  • Browser Security. Support for talking about certificates and other security stuff in IE. Anti phishing stuff. Little bit of demo hell :-)

Back into PPT with Iain.

Longhorn Ship Date H2 2006.

Now talking about VS2k5 and SQL2k5.
SOme figures

  • Up to 70% CODE REDUCTION
  • Up to 40% better performance

Prishant (some VS PM from Redmond... don't know him) showing VSTS.

  • Showed applicaton designer.
  • System designer
    • Validation. Both pretty uncompelling demos IMHO. Sorry guys.
  • Unit testing. Feeling rushed. Not enough detail given as to what is going on. Showed the code coverage support- this was VERY cool. VSTS can enforce 100% code coverage.
  • Security. Showed a CPP demo. Showed security warning around potential buffer overrun. Basically the same tools used for security analysis internally.
  • Web Load Testing. All runs within VSTS. Can generate work items directly from within test envrionment. Looks good but again..... not keynote RA RA sort of stuff.... the crowd has yet to really go *WOW* to anything.

Back into PPT. Talking about SQL Server.

Showed the 'death by PPT' slide listing new features in SQL.

Demo with (Andrew Coates another Aussie DPE guy from Sydney) showing reportng services. Showing end user reporting. Clickonce application. Hooray real world Clickonce.

  1. Asks t choose datasource- pre cnfigured by DBA
  2. Drag and drop report designer. Looks quite nice.
  3. Very nice drag and drop simple reporting.
  4. Showed a good 3 minute report build.
  5. Showed ability to save report back into sharepoint. Showed reporting services web part.
  6. Allows paremeters to be passed into report from the web part.
  7. Thought this was a pretty good demo. Still not super *WOW* factor though.

Now we're into WIndows Server. Talking about being non disruptive around updates. Help users to better manage updates. Spoke about 4 yearly majors releases and 2 yearly update releases. Trying t show value in Software Assurance.

Speaking about Windows Server 2003 R2. Sharepoint Services, .NET 2.0, Unix Interop tools.

  • Better support for management of Branch offices- remote backup, management, file and print. Minimal bandwidth requirements.
  • Better Web Single sign on support. E.g. Fidelity uses Web Single SIgn On for MS Staff with the MS AD authentication.
  • Storage. Speaking about archival of documents. Better SAN support. Better quota support- not allow JPGs, MP3s etc... Better UNIX NFS support.

Now talking abut 5 major windows server strategy areas

  1. Distributed Applications - Indigo
    Coudn't remember the new 'Foundation name'.
    Spoke about new Connected Systems Division (Biztalk, AD and Indigo teams). Spoke about how WIndows Server sits in here.
    Spoke about WCF. Interop play all based around web services.
    Easy service and management models. 
  2. Storage
    More and more storage is on edges of network. Smartphones, notebooks. Better replication of file system for these devices. Looks GREAT. Not sure if he made the case as strongly as he could have.
  3. Integrating the Edge
    Dealing with machines at the edge. Less control. How do you use plicy to define and protect the edge.
    1. Federated identity
    2. Multifactor and improved auth.
    3. Universal addresability-IPv6.
    4. Define the boundaries. Good IPSec cert based
    5. Network access protection. When laptop returns to physical network after being out in internet land. Quarantine and re-connect scanning and automated patching. Anti malware being built in.
    6. Per application VPSs and Firewalls.

Dynamic Systems Initiative
A move to model based management and development.

Virtualization.
Building virtualization into the core of windows. All very much about management. (Not cost me thinks).
Licensed the VHD format for Virtual Server.
Virtual Server R2 end of 2005. Will support Linux and other *nix's. BIG step for MSFT.
Longhorn will have Hypervisor and will support new virtualizaton chips from iNTEL AND amd.

Wrap Up
Showed product waves.
All finished.
In the end a not too bad keynote.

.NET|Sunday, August 28, 2005 8:56:55 PM UTC|Comments [7]|    

 Tuesday, August 23, 2005
Pod Casts From Tech Ed NZ

We'll be doing some kickass Pod Casts from Tech Ed NZ.

Check out www.dot.net.nz on Friday night for interviews with:

  • Tony Goodhew
    We'll be talking to 'that' mad Aussie about XNA the development platform for XBox live.
  • Ari Bixhorn
    Ari has been a regular traveller to these shores. I think I first ran into him when he was a PM for VB.NET. This time around we'll be discussing the forthcoming distributed computing framework called Indigo.
  • Betsy Aoki
    Betsy is the Microsoft Community Program Manager. She's one of the key people driving the open culture that now seems to pervade Microsoft.

Got a burning question for these guys? Want me to ask the hard ones for you? Post your questions in the comments.

.NET|Tuesday, August 23, 2005 5:58:11 AM UTC|Comments [0]|    

Tech Ed 2005: What you wearing?

So FrakArr (DPE Aus) and David L (DPE Aus) are going on about what they're wearing to Tech Ed...

I'l have my new Puma Red Shoes- they have GENUINE green space invaders on them.... beat that!

.NET | 1t|Tuesday, August 23, 2005 4:47:36 AM UTC|Comments [0]|    

 Monday, August 22, 2005
Tech Ed Auckland. Geek Running Sat Morning

OK all..... for those of you in Auckland on the Saturday.... I'm going to organise a geek run... we'll probably go up to K Road, across through the domain, down through Parnel and back along the waterfront.

We'll meet at the bottom of the Sky Tower @ 8:30am on the Saturday.

This will be a slog jog.... so all bunnies are forbidden.

Here is the entry for ya Smartphone
Geek Run.vcs (.41 KB)

RSVP in the comments if you are keen.....

.NET | Gettin Fit|Monday, August 22, 2005 8:13:04 AM UTC|Comments [12]|    

 Monday, August 08, 2005
Vote For Me

NZ DNUG is having a blog voting comp.

.NET|Monday, August 08, 2005 10:12:17 PM UTC|Comments [13]|    

 Thursday, August 04, 2005
Mobile Device Feature Database

From http://www.russellbeattie.com/notebook/1008563.html

Mobile Research Launches First of Its Kind Mobile Device Data Service

SEATTLE, WA (Aug. 3, 2005) - Mobile wireless tools and services provider Mobile Research today announced the launch of their "Mobile Device Database" service for the North American market.

The "Mobile Device Database" is the first commercially available solution that provides mobile developers and content publishers the data they need to address the problems associated with mobile device fragmentation. The "Mobile Device Database" is a comprehensive database of device data for each device on every major carrier. The "Mobile Device Database" contains over 500 data per device including supported APIs, media support, markup language tag support, WAP Push characteristics, messaging, and much more.

"Device specific information is crucial to developing mobile games and applications, formatting mobile media, providing customer support, and the delivery of mobile content in a mobile market where there over 100 unique models of mobile device available to subscribers at any given time" said David Adams, CEO of Mobile Research. The "Mobile Device Database" is launching initially for the North American market but will be expanding into European mobile markets this fall. The "Mobile Device Database" service is available on an annual subscription basis.

.NET | Mobility|Thursday, August 04, 2005 1:24:15 AM UTC|Comments [0]|    

 Thursday, July 21, 2005
Good Free HTML Editor Component

Someone mentioned this on the .NET list today. Here so I can find it again later.

http://www.fckeditor.net

.NET|Thursday, July 21, 2005 10:52:34 PM UTC|Comments [0]|    

 Monday, July 18, 2005
Multiple Startup projects in VS.NET

When you are writing and debugging SmartClient applications yu often want to be able to seamlessly debug across the web service boundary. That is, you want to be able to set break points in both your server and cient side code.

This often means that you need to have both projects running in the debugger.

I just found out that VS.NET supports this nativly.

Go to the Solution Properties of your solution and check the 'Multiple Startup projects' radio button. You can then set the order in which certain projects are started up. e.g. Start the web services first and then startup your smart client project.

Very cool- you learn something new every day.

.NET|Monday, July 18, 2005 1:45:37 AM UTC|Comments [0]|    

 Sunday, July 10, 2005
Jogging Through VS.NET - Contour Shuttle Pro 2 + VS.NET + Coderush

OK.... so y'all thought I had dropped of the face of the earth. It's been a stressful wee while at work.

But here is some cool new VS.NET foo for you.

I've been trying out the use of my Countour Designs Shuttle Pro v2 controller, the type you use for video editing, with VS.NET and Coderush.

It allows me to use the control surface to navigate my way around my code, jog in one hand, mouse in the other. I've also got it setup for a few other commands. It uses the Coderush smart navigation and smart selection stuff as well as Coderush markers.

This is my first cut at a settings file for the Shuttle and I'll probably change it after I've been using it for a while. but, I thought I'd share it anyway.

Here is the settings file and the HTML file that shows what each button/dial does.

 

Microsoft VS.NET 2003.html (6.59 KB)

Microsoft VS.NET 2003.pref (11.72 KB)

 

 

.NET|Sunday, July 10, 2005 4:53:49 AM UTC|Comments [0]|    

 Tuesday, June 21, 2005
MSDN Regional Director.....

OK..... the flair post from last night was really harping back to some stuff that Rory was going on about earlier in the year.

I posted the new flair (logo) to the left last night to see if anyone noticed... which they didn't... but now I can announce good and proper.

Someone, well Microsoft, in their infinite wisdom (or generosity) has decided to let me wear a Regional Director hat for a period. Which is all really rather cool.

It's quite an intimidating group to be associated with though :-) Lots of names of people whose books I've read and looked up to when I was a little whipper snapper developer......

Anyway... it's all rather exciting. Will hopefuly give me more opportunities to work with the community and evangelise technology as I an want to do.

.NET|Tuesday, June 21, 2005 12:21:43 AM UTC|Comments [0]|    

 Monday, June 20, 2005
New Flair.....

I got some new flair...... more on it tommorow :-)

.NET|Monday, June 20, 2005 7:14:36 AM UTC|Comments [0]|    

 Saturday, June 11, 2005
Casey Has Some Stuff on Tech Ed Announcements....

“Architect Certification - has promise, but i don't ever see myself getting in. not that i've even been in the game long enough (7 years full time). but the real question is ... what about Ingo. he's a Solutions Architect MVP, but isn't he something like 25? would they make an exception?”

*nods*... I know others who are in the 'holding pattern' without quite the 10 years (I don't think... well they're not THAT old and grey yet)... 10 years as a pure architect is pretty tough....

MCE - moving into "20 new markets, making 30 countries and 17 languages by the end of 2005". sweet!

NZ should be one... I've gone back to Snapstream for the moment but NZ support might get me to shift back to MCE.

Visual Studio and SQL Server - release dates. ... i cant wait! Biztalk 2006 ... is somebody ever going to write a good Biztalk book? been interested in it since 2004 ... but all the books suck. plus the certification exam needs to be refreshed

Has he tried one of Scott Woodgates books?
It's gonna be cool... lots of cool new stuff in the BizTalk spce :-)

.NET|Saturday, June 11, 2005 4:23:54 AM UTC|Comments [0]|    

Get Yo Some .NET Booty

Sean McB has a announced an NZ only competitin around VSTS.

Coolest thing is the “I never thought of using it to do that!”... category.

Don't think my schedule is going to give me time to have a crack at this one..... but... get onto it now closing date is 12 August.... and see you all @ Tech Ed!...... W00T!

.NET|Saturday, June 11, 2005 4:04:56 AM UTC|Comments [0]|    

 Monday, June 06, 2005
Really Good Instructional Stuff on Multithreading

Here

Nicked from Darren Niemke

.NET|Monday, June 06, 2005 6:31:48 AM UTC|Comments [0]|    

 Thursday, May 19, 2005
Tools You Can't Live Without - Red Gate SQL Compare

Every now and then you come across a tool that is just so fundamentally useful that you'd have to have rocks in your head if you didn't use it- Red Gate SQL Compare is one such tool.

Since starting Kognition I've become a firm believer in the concept that a well organised change management process is good for business (reduces support costs), good for the customer (reduces errors) and most importantly good for developer sanity.

We use a Dev->Staging->Production lifecycle. This is reasonably easy to manage for application code but databases are always the bugbear.

SQL Compare makes managing the migration of databases changes through the various lifecylce stages. Basically it allows you to compare and then merge the changes in SQL server databases. A simple concept but their execution is really good.

If you are an enterprise or an enterprise developer then you really should be using this bit of kit. If you are doing dev->staging->production migrations by hand then it will save you a huge amount of time. If you are not doing the migrations at all (and do all your work on production databases) then you are insane.

Oh... BTW: The person to thank for our impecable Change management is our CTO @ Kognition Mr Nick Head.... really smart process oriented cookie.

.NET|Thursday, May 19, 2005 10:45:49 PM UTC|Comments [6]|    

 Monday, May 16, 2005
Getting Better Performance out of SQL Server Table Variables

OK... So I've got a stored proc that does some searching in the DB. Something like

DECLARE @ResultsOfFTSQuery TABLE (componentid int)
 IF (@FullTextSearch <> '')
 BEGIN
  INSERT @FTSResults SELECT ComponentID FROM Components WHERE CONTAINS (Rendering,@FullTextSearch)
 END

 SELECT TOP 10000 *
 FROM  TheTable WHERE
      (TheKeyID in (SELECT ComponentID FROM @FTSResults)) AND .....

And the performance gets REALLY bad as the results of the first query increases. Simply adding a PRIMARY KEY to the table variable increased performance from 40 secs down to sub 1 sec.

DECLARE @ResultsOfFTSQuery TABLE (componentid int PRIMARY KEY)

This article notes that you can't have 'real' indexes on table variables, but if you create a PRIMARY KEY or UNIQUE contstraint you get one for free.

I'm off to spend some time trying to find other procs I can optimise :-)

.NET|Monday, May 16, 2005 8:53:49 AM UTC|Comments [0]|    

Nathan Mercer has gone to DPE

Sean has blogged that Nathan Mercer has joined the DPE team.

This is really cool. Nathan is a really good bugger so that's just great. Sean has done a bloody good job- taken his almost empty team and stocked it with a whole load of really talented people.

[PERSONAL RANT]
Sean says he doesn't like the term evangelist. I'm the opposite. I reckon it's a GREAT term. I'd love to have it on my business card someday.

Oh wait... I own the company... maybe I could put it on my business card.

.NET|Monday, May 16, 2005 7:11:59 AM UTC|Comments [0]|    

Integrating Subversion and Gemini. Inserting Gemini Issues from Application Code

At Kognition we make extensive use of Gemini for our issue tracking and as a lightweight project management tool. For source control we use Subversion. Half way through a project last year we had the bright idea of seeing if we could get the two working together. We developed two time-saving utilities for our internal use. We've had some interest from people wanting to achieve the same thing, so we're giving them out to the community.

Please note that these projects are basically just hacks we whipped up in a short amount of time - they are set up for us to use internally so will require some modification for your use, specifically you will need to use your own Gemini access code and WS URL. There may be other things as well...

The first was an extension to the MS Exception Management Application Block that handles all our unhandled exceptions in our smart client apps, presents the user with an option to report the error as a bug, and automatically creates the bug report in Gemini complete with stack traces. This was achieved by making use of the Gemini Web Service API.

The second was developed when we wanted to have a better audit trail of our bug fixes - especially when we discovered we had regressed old issues :-) The tool is a C# command line app that we install in the post-commit hook directory of our SVN server. It gets invoked automatically by SVN when a dev commits any files. If the comment includes a specially formatted string representing a bug ID (#nnn), we invoke the SVN command line tool to query the comment and the changed files, and then we format them nicely and use the Gemini WS to append a comment to the issue.

Not really much to them at all, as all the hard stuff has already been done for us by the lovely folks working on Gemini and SVN :-)

Again, if anyone wants to clean these tools up and make them a bit more generic they are more then welcome to.

SvnGeminiCommenter.zip (15.87 KB)

ExceptionManagement.zip (81.93 KB)

Licenced as below.

Copyright (c) 2005, Kognition Consulting Limited
All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  • Neither the name of the Kognition Consulting Limited nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

.NET|Monday, May 16, 2005 12:27:23 AM UTC|Comments [0]|    

Integrating Subversion and Gemini - Some Introduction

*this is the BLAH BLAH. To download the goodies try this post*

I was over in Perth last week and a couple of things happened. One is I caught up with Nick Randolph and we had a chat about integrating Subversion and Gemini. The second is I came to the conclusion that I had kinda been neglecting the technical side of my blog- too much politicking for me. So I'm going to try and be a little more tech focused over the next few months.

But anyway. Onto the topic of the post. We have some stuff here @ Kognition that we have implemented to allow us to link our version controll system (Subversion) with our Issue Management system (Gemini). What it allows us to do is have the check in comments from version control entered against issues into our issue control system to close the development/debug loop. We also have some stuff to allow us to integrate issue reporting directly into our applications for exceptions that are thrown.

Here is some stuff from our CTO, Nick Head on how it all fits together. It was put together by Nick and Simon 'Skip' Gardiner... I'm just a lowly user of the system :-)

its pretty easy to implement once you know the API's etc. We have two internal tools we have developed for integrating Gemini and SVN: an exception management framework for reporting bugs to Gemini, and an SVN post-commit hook so that comments and file modifications can be logged against the correct work item in Gemini.

The first one is a no-brainer - we just have a form that pops up whenever an unhandled exception ocurrs. All projects contain a project ID matching up with the Gemini project. We query the Gemini WS for the project's components, display them as a drop down, and let the user enter any additional repro details for the bug. Then when they hit submit, we get the full stack trace of the error, enabling us to fix the bug much faster than we would previously.

The next tool is a C# command line app that we install in the post-commit folder on our SVN server. This gets invoked on every commit. If the dev adds a bug ID in the comment in the format #nnn we know that its related to an issue in Gemini. We get the commit's revision number, query SVN for the comment and the changed files, then using the Gemini WS we add a comment to the issue.

I love that last little tool - means we have an effective way of tracking what files were modified for each issue.

We've thought about releasing these tools with an open source BSD license, but we just don't have the time at the moment to productify them (e.g clean up the code) and make them generic enough for use by other parties.

Actually, screw it - we will release the tools.”

So here you all are- our Gemini integration libraries. Released under the BSD license.

.NET|Monday, May 16, 2005 12:24:13 AM UTC|Comments [0]|    

 Friday, May 06, 2005
Tech Ed Rego Is Open.....

Sean McB's blogged about the early bird registrations being open.

It's @ Sky City again which is OK... I do like the 'maze like ness' of the Edge a bit more.... I do hope the speakers get to stay @ Sky City Grand.... they don't have in room broadband at the normal Sky City hotel... though Sean has promised that the WiFi for the event this year is gnna kick ass.

The pricing looks pretty sharp for Tech Ed (about the same as last year) and the content is going to be good. Hopefully y'all might see me there with my Red Shoes on....

 

.NET|Friday, May 06, 2005 8:33:18 AM UTC|Comments [0]|    

 Tuesday, April 19, 2005
ACT Move Website to .NET

THe ACT Party have moved their website from JSP to .NET.

Gavin has the details here, here and here.

Sounds like they are doing lots of REALLY cool shit such as dynaimically generated RSS feeds- i.e. do a search and then save the search as an RSS feed.....

“Making the switch to a Microsoft product isn't an issue of ideology, it's just that .Net is a great platform for doing the stuff we want to do. Rodney loves the Open Source, but our existing platform had a couple of really frustrating bugs. So we rebuilt it.”

Amen Brother!

Could have given the UI a bit more of a makeover though....It's not immediatly obvious how I use all the whiz bang features.

 

.NET | PoliTechLaw | Politics|Tuesday, April 19, 2005 1:35:42 PM UTC|Comments [0]|    

Darryl Burling Takes the Red Pill

Darryl is joining Microsoft in Wellington as a Developer Evangelist.... good stuff mate! You'll have a blast!

.NET|Tuesday, April 19, 2005 12:17:30 PM UTC|Comments [0]|    

 Tuesday, April 05, 2005
Sean Posts on VSTS

Sean has posted a BIG post on VSTS and how it's going to fit into the NZ dev market.

http://blogs.msdn.com/smcbreen/archive/2005/04/05/405711.aspx

.NET|Tuesday, April 05, 2005 11:53:40 PM UTC|Comments [2]|    

 Tuesday, March 29, 2005
Deeps is blogging.....

OK... so it had to happen sometime. Pradeepa de Silva one of my mates form a wee way back who is the Academic Evangelist for MS in ANZ has started blogging....

 

.NET|Tuesday, March 29, 2005 1:51:09 AM UTC|Comments [0]|    

 Tuesday, March 22, 2005
Mad Props To Lukas

My mate Lukas Svoboda from Auckland has been awarded MVP status in Architecture. This is VERY cool. Lukas is probably NZ's leading Microsoft Platform architect so the award is well deserved. Oh... he was also the guy that got the whole NZ Dot Net User Group thing going!

So... well done mate!

.NET|Tuesday, March 22, 2005 3:19:39 AM UTC|Comments [0]|    

 Monday, March 21, 2005
For All You Steve Riley Fans....

His book is availbale for pre order here.

http://www.amazon.com/exec/obidos/ASIN/0321336437/nova-20

.NET | PoliTechLaw|Monday, March 21, 2005 9:51:18 PM UTC|Comments [0]|    

Roll On C-omega...

Rick Byers has a cool example of some C-omega code talking to a database here: http://blogs.msdn.com/rmbyers/archive/2005/03/20/399489.aspx

rows = select * from DB.Employees where City == city; foreach( row in rows )

{

    string name = row.LastName.Value;

    int id = row.EmployeeID.Value;

    Console.WriteLine( id.ToString() + ": " + name);

}

.NET|Monday, March 21, 2005 3:33:23 AM UTC|Comments [0]|    

 Thursday, March 17, 2005
Tech Ed Details Confirmed

Sean has confirmed the details for Tech Ed here. It's at Sky City again..... which to be honest is not my fave venue- I like the maze like nature of The Edge more..... But it is defn. going to ROCK the SOCKs of the NZ tech comunity.

Look forward to seein y'all there... Keep an eye out for me... just look for the Red Shoes.

.NET|Thursday, March 17, 2005 9:59:36 PM UTC|Comments [3]|    

 Wednesday, March 16, 2005
The 5 Minute Guide to Managed Windows Services

Good post on the BCL Blog here on writing managed services in no time flat...

Blogged here for easy access later.

.NET|Wednesday, March 16, 2005 2:46:48 AM UTC|Comments [14]|    

 Monday, March 14, 2005
Geeks With Guns - Part II

Bill commented on my Blog that he likes Sigs, Glocks and H&Ks and the likes..... So I don't think it's too early to start organising the second Geeks with Guns event.

We did it last year and it was a real blast. The plan is to get a good group of MVPs together just before or after the Summit and go and rent out a gunshop shooting range for a blast up.

For those MVPs from less liberal less redneck countries this will be your chance to have a turn with all the fave handguns you see in the movies in a safe environment. It is a cheap way to have a great afternoon.

If you are interested email me: chris@kognition.co.nz and let me know.

.NET | 1t|Monday, March 14, 2005 4:01:07 AM UTC|Comments [0]|    

 Thursday, March 10, 2005
MS Acquires Groove, Ray Ozzie new CTO

”Ray Ozzie is now Microsoft's chief technology officer, reporting directly to Bill Gates. Ozzie and his 200-member Groove Networks team are officially part of Microsoft, thanks to Microsoft's acquisition of the company, announced on Thursday.”

http://www.microsoft-watch.com/article2/0,1995,1774732,00.asp?kc=MWRSS02129TX1K0000535

.NET|Thursday, March 10, 2005 9:42:27 PM UTC|Comments [0]|    

 Wednesday, March 09, 2005
Hot Tip For Today - Use Network Sync When Debugging Devices

Really quick tip today....

Darryl posted how he likes using a cradle when debugging. I've always been a fan of activesyncing over Ethernet or WiFi when debugging on the device. It's always been much quicker- the speed gap is closing now but it's still much more performant.

.NET|Wednesday, March 09, 2005 2:03:21 AM UTC|Comments [0]|    

 Monday, March 07, 2005
VS.NET Conditional Compilation with C#

Over the next few days I'm going to try and blog a bit more on technical stuff. It's going to be in the format of short and simple tips and tricks for improving productivity and the pleasures of development.

Tip for today is the use of conditional compilation.

Basically VS.NET allows you to set 'Conditional Compilation Constants' in the build properties of each solution configuration. You can then use these constants to enable and disable the compilation of certain areas of code based on the configuration you are working it. Out of the box the debug configuration has a flag called DEBUG. This means that we can write code like this that allows us to distribute DEBUG builds to customers for testing without having to worry about whether they will distribute it more broadly:

#if (DEBUG)
MessageBox.Show("This is a test copy of version " + string.Format(" {0}.{1}",Assembly.GetExecutingAssembly().GetName().Version.Major,Assembly.GetExecutingAssembly().GetName().Version.Minor) + " only. Please do not use in a production environment. Not for distribution to field users.");
#endif

Another place where we have used conditional compilation is in libraries that have to target both the Compact Framework and the Desktop framework. Basically we can have a single set of source code files and use conditional compilation to deal with features that are present on one platform and not another- for example we use it to flag on and off compilation of code that places scrollbars on forms- a feature that is out of the box on the desktop framework but roll your own on the compact framework.

.NET|Monday, March 07, 2005 9:45:17 PM UTC|Comments [0]|    

VSTS For Game Developers

SAN FRANCISCO — March 7, 2005 — Today at the Game Developers Conference, Microsoft Corp. announced new XNA™ software that will enable enhanced collaboration between content creators, programmers, management and quality-assurance staff members to speed the game production process. Based on the Microsoft® Visual Studio® 2005 Team System, the latest innovation of the company’s flagship development platform, XNA Studio is an integrated, team-based development environment tailored for game production.”

http://www.xbox.com/en-US/press/2005/0307-xna.htm

Looks pretty interesting- hopefully it means we'll see better support for rich content types in VSTS as well....

[UPDATE] John Lawrence says it will support big binary content at the very least. http://blogs.msdn.com/johnlawr/archive/2005/03/07/387902.aspx

.NET|Monday, March 07, 2005 8:51:54 PM UTC|Comments [0]|    

 Sunday, March 06, 2005
J Fo Notes That WinFS Is Now Also On The List Of

J Fo' notes that WinFS is now also on the list of Longhorn tech that will be back ported to XP. ne has to wonder just what is going to be left.

I'd hate to be Michael Sievert... looks like he'll be marketing little more than a point release....

Roll on the PDC I guess.... maybe they'll open the kimono a little more and show us what's been going on in the collective brain over the past two years.

.NET | Human Aggregation|Sunday, March 06, 2005 8:03:28 PM UTC|Comments [17]|    

 Thursday, March 03, 2005
An Emissary to the Amazon Fiefdom

Pat Helland, one of the smartest and all around nicest guys @ MS is moving on to Amazon. Means we probably won't see him @ a Tech Ed again :-( I think that his Fiefdom keynote was one of the best I've ever seen @ Tech Ed.

Good luck Pat!

.NET|Thursday, March 03, 2005 11:59:55 PM UTC|Comments [2]|    

 Monday, February 28, 2005
Good Art5icle on the Occasiona Inadequacies of Web Interfaces

As many of you know I'm quite the smart client geek... Chris Diggins posts about web interfaces and their short comings....

“My point is that a web browser and html is not the best possible technology for sophisticated online services. We see far too many broken ad-hoc javascript implementation which attempt to address these issues but they always seem to succumb to the fundamental flaws of http technology. I propose that we need a new kind of technology for these kinds of web services which require logging in and manipulating information online. “

It's called a SmartClient :-)

.NET|Monday, February 28, 2005 11:08:59 PM UTC|Comments [5]|    

 Sunday, February 20, 2005
More Good Stuff on CodeRush

Sam Gentile wades into the vs.nET addin debate and throws out Resharper in favour of CodeRush.

 

.NET|Sunday, February 20, 2005 9:55:02 PM UTC|Comments [0]|    

 Friday, February 18, 2005
In The Press....

We were in Computerworld this week with a wee case study on our project for the New Zealand National Poisons Center. This was a pretty full on project and it has some really smart technology in it- some of which we can't really talk about that much.

Big thanks to the team @ Kognition who worked on it- it was pretty hard yakka at times. Led by Nick Head, our illustrious CTO, the team was Jason McBratney, Simon 'Skip' Gardiner and myself.

From Left to Right..

Nick, Chris (Me), Jason, Skip... location. Out the front of our office door.

.NET | Kognition|Friday, February 18, 2005 1:11:35 AM UTC|Comments [0]|    

 Sunday, February 13, 2005
Another Online .NET Course?

Sean has a post about someone looking for 'beginner' level content.

Last year we ran an introductory ASP.NET course via Live Meeting that went really well.... It was about 14 lectures delivered by speakers from around NZ and Australia... maybe we could do another one of those?

We did ASP.NET last year.... anyone got a prefered *broad* topic for this year? Post in the comments...

.NET|Sunday, February 13, 2005 8:36:54 PM UTC|Comments [0]|    

 Sunday, February 06, 2005
...Points and Laughs....

Sean McBreen is blogging.....

Sean runs the Developer and Platform Evangelism Group here in New Zealand and is an all around nice guy......

Subscribled.....

.NET|Sunday, February 06, 2005 8:49:27 PM UTC|Comments [2]|    

 Tuesday, January 25, 2005
Goodger to Google....

Kiwi Expat Ben 'Firefox' Goodger has move to Google.

.NET | Human Aggregation|Tuesday, January 25, 2005 2:53:24 AM UTC|Comments [0]|    

More Cool Code Rush Stuff

Developer Express is happy to announce that Mark Miller, chief architect of our IDE Tools division, will be presenting a live MSDN Webcast on Tuesday at 12:00 PST (GMT-08:00). The online course will demonstrate how to extend Visual Studio with DXCore* plug-ins.

The session will start with an overview of the architecture, followed by three live coding demos showing:

* How to paint on the VS editor.

* How to replace the VS clipboard ring with a really cool one.

* How to build a custom code metrics analysis tool.

The first demo will be in VB and the last two in C#.

Mark will be using both CodeRush & Refactor! to write code, so this will also be an opportunity for non users to see the kind of programming speed that is possible with CodeRush & Refactor! combined.

To register for the class (or to view the session later after it's been recorded), click this link:

http://shrinkster.com/3dr

Then click the "Register for event" button in the column.”

.NET|Tuesday, January 25, 2005 1:31:40 AM UTC|Comments [0]|    

 Monday, January 24, 2005
Good News For Kognition Alumni

One of my company student interns, Mengqiu Wang, received a prestigious University of Otago International Scholarship.

Quite chuffed... he and some of the other members of the team have been working on a REALLY kick ass project over the past few months with .NET on an interesting new platform. Can't say much more than that as we're still under NDA.

Well done Mengqiu!

.NET | Kognition|Monday, January 24, 2005 3:26:43 AM UTC|Comments [0]|    

 Wednesday, January 19, 2005
Tim Haines does a Resharper vs Refactor Comparison

Here

 

He links to Scott Hanslemans great list of addins too.

.NET|Wednesday, January 19, 2005 10:42:32 PM UTC|Comments [14]|    

 Tuesday, January 18, 2005
Plug In of Choice - CodeRush

Nic has blogged again about how much he likes Resharper.

We are a mixture of both here @ Kognition. Some are Resharper addicts I'm personally more of a CodeRush fiend. I love the templating features and code completion. It does piss me off sometimes by being a little too intelligent.

They now have a refactoring plugin that does most of the core Fowler refactorings and then a few more. But it does it in such a cool way....

Check this out... you just cut and paste!

http://www.devexpress.com/Products/NET/Refactor/RefactorEMSPWalkthrough.xml

It's also worth noting that CodeRush and Refactor support VB.Net as well as C#.

 

.NET|Tuesday, January 18, 2005 8:55:48 AM UTC|Comments [0]|    

 Friday, November 05, 2004
WS-NewZealand

Jeff Barr has a post about a recent talk by Don Box on web services....

Good ol' New Zealand even gets a mention....

The original title of the was WS-Islands. Hes going to walk through the various standards in the talk, and attempt to explain and justify each one.

...

ws-NewZealand, a lovely place to visit exactly once per lifetime. Here are specs lke that. ws-eventing, strictly speaking it is not needed. But theres a desire to do pub-sub. Microsoft ships a simple version, IBM ships WS-RF, a three volume spec. ws-atomictx, good for the three people building transaction managers. ws-enumeration.

 

.NET | Human Aggregation|Friday, November 05, 2004 9:29:50 PM UTC|Comments [5]|    

 Tuesday, November 02, 2004
Contract IT Work in the UK

Someone asked about contracting in the UK on one of the mailing lists I subscribe to- a mate in Auckland who has been there done that posted a fantastic reply. Reproduced here for your information and pleasure.

Tims guide to working in the UK...

Cheat Sheet Version:

--------------------

* Its way easier when you're there (if you're applying from here many aren't interested or wont take you seriously)

* Gift of the gab goes a long way ;-)

* Many agents are petty & classest - don't out-class the agent

* Be good, but not too good - most contracts will become rolling

* Good contractors rates can provide a cheap and enteraining night a some antipodean pub

* Register quick and flirt with agents for securing invites to xmas functions.

* Stock up on condoms

Long Winded Inane Banter Version:

---------------------------------

Looking is always easy (no more difficult than doing single handed searches for porn on the web) - Securing a job is another story - I've found a lot of agencies and potential employers will ignore you if you're applying from here - however when you're there & they can see a face it makes all the difference (although I've also secured jobs remotely from here so it is possible - probably more so because they didn't actually get to see my face first).

Be good (quite easy because poms are lazy whining bastards - you'll seem like a breath of fresh air to management) but not so good that you have a high profile - most contracts will turn out to be rolling, ie if you're good and keep a low enough profile they'll just forget you're there and keep paying you. Here's a few other dubious tactics to increase your revenue:

- I've heard of some contractors billing more than 24 hours a day (dodgy)

- Also heard of some guys creating off shore accounts and invoicing from there (ie zippo tax), you just need to find an 'imaginative' accountant (very dodgy)

- I've also heard of contractors decreasing income (for tax purposes) by having a large entertainment account - the record I know of is one evening costing 1200quid for a few guys having dinner.

If you're a true billy-no-mates IT nerd then you'll probably have the social skills of a boy donkey's dingle dangle, fortuntately you're in luck, london is crawling with poor antipodean travelling scum who choose a socialistic view and correspondingly poorly paid bar jobs (unlike you with your superior capitalistic pig point of view and matching high paid job)- on any given night you can find a herd of these steaming social animals at a pub in Shepherd Bush who will be instant longlost mates if you buy a few rounds of snake bites with you're new found wealth (read: contractors rates). The down side is having to listen to their drivel and pretending that just because you were brought up 400kms apart that you have something in common..

The worst are the kiwis, after 12 pints you'll be expected to strip off and do the haka half naked on the bar. Another down side is the prevalence of STDs within this incestuous bunch.

Also, it goes without saying that regardless of whether you're a pure genius or a complete plonker who cant tell the difference between a virus and a visual development environment whose name ends in .NET and was developed by one of the biggest s/w companies, if you've got the gift of the gab and can spin a yarn or two about how you single handedly re-architected all the backend systems of a forbes 500 multinational then you're in with a grin.

Oh, one more thing, they're a cheesy classest society over there so it pays to target your self sales pitch to suit the audience, you know, if the agency is located in the east end then talk applesnpears cockney drivel or if its some snooty cow from knightsbridge then just drop a few names, like the time you & uncle steve ballimer went skiing in tahoe or that time you got drunk as a skunk on larry's yacht and fell overboard etc.

And lastly, now is a good time to go over there - some of the bigger agencies throw fantastic christmas functions, and some of their staff are really slutty (guys & girls - depends on which way you bend) ;-)

.NET | Human Aggregation | Rambles|Tuesday, November 02, 2004 7:30:57 PM UTC|Comments [0]|    

 Friday, October 22, 2004
Coming soon to a city near you....

I'm doing a speaking tour for a series of Microsoft MSDN events in early November.

I'll be in Auckland, Wellington and Christchurch talking about Web Service Architectures and the Microsoft Application Blocks.

When the registration site is posted I'll let y'all know the link.

 

.NET | Kognition|Friday, October 22, 2004 4:34:34 AM UTC|Comments [0]|    

 Wednesday, September 15, 2004
Full Text Feeds are back on blog.asp.net

Scoble has the details here....

Dunno why the hell they changed it in the first place....

.NET | Human Aggregation | Rambles|Wednesday, September 15, 2004 9:49:12 PM UTC|Comments [3]|    

 Tuesday, August 24, 2004
Auto Updating Smart Client Applications

I showed off some of this tech during my presentation @ Tech Ed Auckland this year and have had a few questions on it so here are some pointers to get you going. You have a few options for updating your smart client apps.

.NET|Tuesday, August 24, 2004 7:00:25 AM UTC|Comments [0]|    

 Sunday, August 22, 2004
Casey and the Toys He Covets

Lot's of peeps (incl Bill and Julia) are having kittens over CC's /tabletWeb article. Doesn't really do it for me to be honest (well not like his other articles do)- been living the smart client dream for too long now. The web is soooo last decade for LOB applications- and I don't see ink as a mass market web thing for a helluva long time yet).

But, Casey also posts on some other gadgets he is looking at playing with and it reads somewhat like my list at the momnt.

Media Center Edition - Tried it (got a nice eval pack from MVP summit) but couldn't get MCE to play nice with NZ TV freqs so moved my box to Beyond TV (www.snapstream.com)/ Love it! Couldn't live without it now. means I can cut the time it takes me to watch the 6pm news down to about 20 minutes... AND... I am no longer bound by the TV to be home @ 6pm. It is the complete shiznit!

Personal Media Center- Much like casey I don't want one till I can write code for it. I was kinda pissy when I found out from the PMC team that they were keeping it closed :-( Had visions of writing a cute little video editor to work with my Mini DV cam- pity they don't have firewire too...

SPOT - No SPOT coverage here in NZ (yet!?!) but that ain't gonna stop me getting one as soon as the SDK ships. What I really want is for the Suunto N6 to allow me to code against the HRM and Altimieter in managed code... man I could have some serious fun working something up with those and some mappoint foo.... *salivates* There is defn. an SDK coming though Casey! You should email me and I'll tell you who to talk to to make sure you get a copy!

Telematics- Computer in car... erm... I've ummed and ahhed about a computer MP3 plyer etc... for some time but haven't got the $$$ to justify it atm. Currently I just take my Tablet PC (Toughbook CF18) in and use that with my GPS.

 

.NET | Mobility | Toy Box|Sunday, August 22, 2004 5:18:46 AM UTC|Comments [0]|    

 Monday, August 09, 2004
Tech Ed 2004 recap....

I'm pleased Mr Dee didn't come to my session on smart clients, Val and Gabe gt a bit of a roasting... :-) *

I'll have to write up my review sometime over the next few days... just REALLY busy..... and got to do GST today!

I agree on poor old Nic's session... the drilling was crazy... I left and stormed down to the speakers room and told some people to start rolling shit down hill!

[OK.... Quick Brainfart Below]

To be completely honest I'm not as keen on Sky City as a venue. I really liked the Aotea center because it was spread out, had lots of room and has some character. The rooms are not as good as Sky City maybe, but, they've just done a major refit.

I didn't actually get to many sessions at Tech Ed this year- was busy reworking my slide deck to remove all the content I presented @ Security Summit. In the end I only had two people who had been to the security summit presentations in my session so I could have represented some of that exciting content.

My session went pretty well. Got through a couple of Demos. My Smart Client deployment demo went well apart from the fact that I couldn't get my initial MSI deployment to work so I had to XCopy deploy. Deployment really is the best feature of smart clients. We have one of our applications deployed from invercargil to Kaitaia and updated automagically over the internet.... Really is useful.

I think that I spoke fairly well but that I could probably do with refining my slide deck a little- had a bit too much detail on some of the slides. I really wanted to make it an interactive session... but everyone was pretty tired :-) Daryl Burling and Brent Clarke helped kick things off though.

Will be interesting to see my feedback. Anyway... gotta go do some work. More on Tech Ed from me (including jumping off the Sky Tower) later!

*[UPDATE] Mr Dee did come to my first session (the DNUG Meeting) and said it was a 'must not miss' :-)

.NET | Mobility | Rambles|Monday, August 09, 2004 9:26:14 PM UTC|Comments [0]|    

 Friday, August 06, 2004
Interactive Tech Ed Sessions

Michael Kleef is talking about how he tried to make his session more interactive for Tech Ed this year...

I really want to start getting my sessions more interactive too- tried to get this years Tech Ed one more interactive. The fact that it was 2nd to last session made it a bit tough...

Looks like Michael was using bribes... must remember to take some bribes next time :-)

Will have to wait and see how my evals turn out....

.NET | Rambles|Friday, August 06, 2004 3:42:34 AM UTC|Comments [0]|    

 Monday, August 02, 2004
Tech Ed Day One

Got to a few sessions on Day one... in between sorting my deck and in particular my demos.

The 100 level Map Point session was prettty good- getting our hands on the map data for NZ (about 6mo out) will mean that we can start to do some really neat stuff with our utilities job dispatch application. Pity there is no support for writing your own plugins to the MLS- kinda precludes doing funky stuff like location over packet trunk radio.

Next session I hit was the stuff on Team System. I'm not completely convinced that the demarcaton of roles in Team system is going to work in an NZ context- we tend to be jack of all trades down here... but we'll see. The workflow looks good but I'm going to delegate all that hard stuff down to Nick :-)

Went to the Metropolis architecture talk, if only becuase it was The Metropolis talk. Harry did a good job, knew his stuff well.

Also went to the Data in SOA discussion that Harry gave. Again, a useful session if maybe a little assumptuous of the idea that we are all from big IT shops.

Finished the day with an early Dinner @ The Mexican Cafe with Nick. Saw the guys from Provoke and there were plenty of other Wellywood types- seemed they were all out for dinner with PAndrew.

.NET | Rambles|Monday, August 02, 2004 8:26:49 PM UTC|Comments [3]|    

 Sunday, August 01, 2004
Tech Ed Keynote

Blogging from the keynote this morning.... The room is filling quickly and as per usual people are STUPID and don't shift to the middle of the rows..... is it some innate fear of a sudden need to ablute that causes this phenomena?

The MS team have been a bit more adventurous with the keynote this year and chose a 'Professional Speaker' rather than an MS exec for the keynote. I think this should be cool- we never get one of the really BIG execs down here anyway.

.NET | Rambles|Sunday, August 01, 2004 8:43:19 PM UTC|Comments [0]|    

 Thursday, July 29, 2004
Just how deep does the bunny hole go?

Seems everyone is taking the Red Pill.....

http://neopoleon.com/blog/posts/7285.aspx

http://weblogs.asp.net/gad

 

.NET | Human Aggregation|Thursday, July 29, 2004 2:10:40 AM UTC|Comments [0]|    

 Monday, July 26, 2004
Holy Smoke Batman... It's a full house!

Seems that yet again Tech Ed New Zealand will fill one of NZ's largest conference venues to capacity.

I'll be there! Will you? Let me know in the comments and we can catch up.... talk some politics and have a beer maybe.

The Keynote looks fantastic... a great surprise to pull out of the box... checkout what you're missing.

Deviating from the usual TechEd keynote, we are very pleased to bring you Dr. Joseph MacInnis, one of the world's foremost explorers and innovative thinkers. Dr MacInnis was the first man to dive under the North Pole, was a consultant to the Titanic discovery team and the discoverer of the world's most northern shipwreck.

.NET | Rambles|Monday, July 26, 2004 9:15:58 PM UTC|Comments [0]|    

It is funny.... Damn funny....

http://pluralsight.com/blogs/mike/archive/2004/05/25/415.aspx

at least I think it's funny.

.NET|Monday, July 26, 2004 7:14:23 AM UTC|Comments [0]|    

 Thursday, July 08, 2004
I'm buying this guy a beer when I'm next in Redmond....

Hi everyone, I'm a developer on the Partner Response Team - basically, if any OEMs, ISVs, or operators have problems or feature requests that can't wait for the next major version, my team is on it.

http://blogs.msdn.com/windowsmobile/archive/2004/07/08/176072.aspx

.NET | Mobility|Thursday, July 08, 2004 9:06:18 PM UTC|Comments [0]|    

A Question for the Scobleizer

OK so Scoble is a Longhorn Evangelist still (I think) but I've barely heard a peep out of anybody wrt Longhorn recently. It seems that it went whizzzz.... after PDC last year and now it's gone POP! Plenty of time is being spent Channel 9ing but almost all of that seems to be focused on current and early future tech.... though that's not all that bad a thing.

Has Microsoft officially pulled back from evangelizing (hyping) Longhorn? Are we going to see yet more slippage and rearranging of release dates, and particularly features? Might we see some of the cool dev stuff (Indigo etc...) for 2k3 server prior to Longhorn shipping?

C'mon Rob, preach to us brother!

.NET|Thursday, July 08, 2004 8:57:40 AM UTC|Comments [0]|    

More detail on the new Transaction stuff in 2.0

Bill pointed to this stuff earlier today...

.NET|Thursday, July 08, 2004 3:06:09 AM UTC|Comments [0]|    

 Wednesday, July 07, 2004
MSDN magazine for MSDN Subscribers

If you are an MSDN Universal Subscriber you can have MSDN Mag for free (in US or Canada) and $25 a year outside the US/Can.... Take a look for it under Special Offers in Subsciber Downloads

.NET|Wednesday, July 07, 2004 11:05:20 PM UTC|Comments [0]|    

From the 'I Hope It Throws A Big Warning Box' box

In the release notes of the latest emule build we find

'eMule can open the ports it needs on the internal WinXP(SP1 or 0) firewall itself either permanently (connection pref) or on each startup (extended settings) '

Now IMHO this is a HIGHLY priv. operation.... I hope that Windows throws some big ugly dialog boxes at you!

.NET|Wednesday, July 07, 2004 9:10:59 PM UTC|Comments [0]|    

Tech Ed Aukcland 2004 - Chris Auld Speaking

You heard it there first I'll be speaking at Tech Ed in the second to last session of the whole conference... eeek....

More details as I prepare my content... be sure to look out for me... I'll be the one wearing the red shoes! I am allowed to wear my red shoes under the speaker dress code aren't I!?!

But who are the Keynote speakers this year???
Steve Riley?

Good to see Tony Goodhew back in this neck of the woods!

And Michael Howard... Nice one....

.NET | Kognition | Rambles|Wednesday, July 07, 2004 3:31:53 AM UTC|Comments [0]|    

 Tuesday, July 06, 2004
Enterprise Services Evolution in Whidbey

Angel is blogging some stuff on the new System.Transactions namespace in 2.0 of the Framework.

Looks very sweet- Distributed Transaction support baked right in. No more kludgy enterprise services stuff- I always found it a real pain- if I remember right to get declarative transaction support you had to be a context bound object, strng named and a few other contraints that just made things a pain to do....

.NET|Tuesday, July 06, 2004 10:25:15 PM UTC|Comments [0]|    

Some brief notes on Mono

Someone was asking about Mono on a mailing list that I subscribe to... so I waded in....

Well... I'll wade in with my two cents...

The obvious comparison is with Jboss... But in the end the .NET Framework (runtime and SDK) is free (as in beer not as in Stallman) anyway. This means that there is far less of a cost differential between Mono and .NET than say JBoss and a commercial J2EE platform. For me the cost incurred in running .NET, basically a Windows Server license, is money well spent if only for the fact that should I really hit major problems there is someone I can ring up and yell @ down the phone.

To me even at the hobbyist level the whole open source thing is political/cultural more than it is cost based. You can do a huge amount on the cheap/free (as in beer) with .NET as well. Now with the release of the Express Edition products it is even easier.

SQL Server 2005 Express (MSDE Yukon) is now far less throttled for typical applications. The thread throttle has gone and it now supports up to 4GB databases! But... I digress.

I'm not bagging the mono Project or anything. I think that it marks an important step in the evolution of .NET. In particular it makes it somewhat more palatable to the political zealots who seem to pervade the open source community*. But personally I'm more excited about building cool applications to run on the .NET platform than I am rebuilding the platform itself for the sake of a political point. I like to save my politics for important stuff like lowering my taxes and increasing social freedoms.

*It's already palatable to the political zealots who pervade the commercial software community :-).

.NET|Tuesday, July 06, 2004 10:17:06 PM UTC|Comments [0]|    

 Wednesday, June 30, 2004
Steve Pratschner is blogging

http://blogs.msdn.com/stevenpr/archive/2004/06/30/170289.aspx

Hi everyone My name is Steven Pratschner.  Im the Program Manager for the CLR that ships as part of the .Net Compact Framework.  I intend to use this blog to post information on various topics related to the Compact Framework, including versioning, interop, diagnostics, performance and so on.  In many cases Ill cover topics that either havent been covered by the formal product documentation yet or are new in the publicly available pre-releases of Whidbey.  Ill also look at features that behave slightly differently in the Compact Framework than they do on the full .Net Framework

I'd be keen on a bit of insight into how the Garbage Collecter differs from the desktop...

.NET | Human Aggregation|Wednesday, June 30, 2004 10:37:50 PM UTC|Comments [0]|    

Regulator: A regular expression tool

I find that every time I dive into doing something with Regular Expressions I look for a tool to help me test them... and every time I spend a good wee while looking for a good tool.

So here is a good tool- http://royo.is-a-geek.com/iserializable/regulator/ - selfishly posted here so that I can easily find it next time I'm dealing with RegEx stuff...

.NET | Human Aggregation|Wednesday, June 30, 2004 9:02:19 AM UTC|Comments [0]|    

 Tuesday, June 29, 2004
Look Who Is Catching Up Now....

In his opening keynote at JavaOne on Monday, Sun Microsystems President and COO Jonathan Schwartz stressed the return of desktop Java and introduced new tools to provide a richer user experience.

Urm.... can you say Smart Client.... be sure to come and see me speak about all the cool things we've been doing with Smart Clients @ Tech Ed this year.

.NET|Tuesday, June 29, 2004 10:43:47 PM UTC|Comments [6]|    

 Friday, June 18, 2004
Port of Saxon to C#

Frolm Kurt Cagle

A new Open Source project has been started to port Michael Kay's Saxon 8.0 (and hence XSLT2 and XPath2 at a minimum) to C#, at http://www.x2x2x.org/x2x2x/home/. This is some of the more exciting news I've heard in a while, especially as Microsoft itself has been VERY ambivalent about adopting XSLT 2.0, preferring instead to go with their own "custom" XML transformation technology in Longhorn.

If Saxon is ported to C#, this could very easily prove the foundation technology to get XSLT 2.0 onto Windows in a major way. While not perfect, XSLT 2.0 is considerably less verbose, easier to build extensions and capable of group filtering and manipulation far in excess of what version XSLT 1.0.

.NET|Friday, June 18, 2004 7:21:44 AM UTC|Comments [0]|    

The Drunks Guide To Interface Based Inheritance

A friend posted this on our New Zealand Dot Net mailing list.... I laughed my ass off so much that I just had to share (with permission it).

[When should I use interfaces in my code]

I use them when I need a common API across dissimilar objects  - a little bit like getting drunk eg, take the following 2 classes..

 
public class hotChick
...
 
public class fatSlag
...
 
Obviously, 2 quite different classes... however if we get good & drunk we can make them implement the same interface eg:
public class hotChick : IShaggable
...
 
public class fatSlag  : IShaggable
...
 
When programming against the interface you dont want to care about the actual implementation - getting drunk has the same effect...  as long as the interface is the same you generally dont care...
eg
public void myMethod(IShaggable myShag){
  myShag.ShagRotten();
...
 
... as if by magic the fatSlag class, with a 10 pint handicap, all of a sudden appears to have some of the same properties and methods as the hotChick class ;-)
 
[UPDATE}
Lauren with the great comeback
 
class SexistPig: ILonelyBastard

ILonelyBastard TimHuffman = new SexistPig();

ILonelyBastard.Shaggable = false;


Lauren
.NET|Friday, June 18, 2004 3:45:12 AM UTC|Comments [0]|    

 Wednesday, June 16, 2004
Slides for Wednesday ASP.NET Lecture

Herewith the slides for the lecture tonight.

16th June - Form State.ppt (413.5 KB)

 

 

.NET|Wednesday, June 16, 2004 6:50:01 AM UTC|Comments [0]|    

 Monday, June 14, 2004
Slides for Mon 14th

Hi guys the slide deck for the Mon 14th NZ DNUG ASP.NET Lecture are here....

03_web_forms.ppt (758 KB) .NET|Monday, June 14, 2004 7:59:23 AM UTC|Comments [19]|    

 Friday, June 11, 2004
In the press......

Our ASP.NET course made it into the press this week.

http://idg.net.nz/news.nsf/UNID/AC7D8502C42007F2CC256EAA001E878A?OpenDocument&Highlight=2,auld

.NET|Friday, June 11, 2004 1:45:25 AM UTC|Comments [1]|    

 Wednesday, June 09, 2004
From the Tech Ed Schedule

http://www.microsoft.com/nz/teched/tracks/smartclient.aspx

- First Look at the Australian Microsoft MapPoint Location Server (MLS)

Please repeat after me.... OH HELL YES!

BTW...

.NET|Wednesday, June 09, 2004 9:26:14 PM UTC|Comments [3]|    

Wed June 9th Slide Deck for DNUG ASP.NET Course

9th June - ASP.net Architecture.ppt (1020.5 KB) 

 

 

.NET|Wednesday, June 09, 2004 8:02:11 AM UTC|Comments [11]|    

 Monday, June 07, 2004
Slide Deck for Lecture 2 of the NZ DNUG ASP.NET Course

Here is the slide deck for tonights session.

01_languageprimer.ppt (152.5 KB)

and

Audio

.NET|Monday, June 07, 2004 6:43:09 AM UTC|Comments [0]|    

 Sunday, May 30, 2004
MS Launches Smart Client Dev Center

Here

via Chris Sells

.NET|Sunday, May 30, 2004 8:55:57 PM UTC|Comments [0]|    

 Sunday, May 23, 2004
XSLISAPI in .NET Free article over @ ASP Today

Seems my article is one of the ones that is currently available free over at ASP Today.

It give a run down on how to emulate the old Microsoft XSLISAPI filter in .NET.

.NET|Sunday, May 23, 2004 12:55:48 AM UTC|Comments [9]|    

 Thursday, May 13, 2004
Tech Ed Sold Out

If you haven't heard already, Tech Ed has sold out.....

Neil has some comment on Scobles non hype which is rather interesting.

But what interest me is just how well we do in New Zealand-

We get about 1100 people (more actually but that way I can do the math better) to our Tech Ed. The US one has sold out @ 11,000. Now our population is only 4 million whereas there population is near on 300 million....

So.... I'll see y'all @ Tech Ed then!

.NET|Thursday, May 13, 2004 10:42:54 PM UTC|Comments [0]|    

What's new in CF 2

Sam Gentile has a great sumary of the new stuff in CF 2.0

http://samgentile.com/blog/archive/2004/05/12/11523.aspx

.NET|Thursday, May 13, 2004 1:20:42 AM UTC|Comments [0]|    

 Wednesday, May 12, 2004
Motorolla Smartphones.....

Lukas is blogging about the new Smartphones coming from Motorola.

He seems to have missed/forgotten/misplaced the MPx double clamshell phone- does he know something I don't? Dale Coffing had one of these @ the MVP Summit... Maybe it's becuase it looks to be becoming a a Windows Mobile SE Pocket PC device????

Not my kettle of fish to be honest... I'm think the MPX100 will be my sort of style... I'm a phone functionalty first kinda guy.

P.S. Get comments on ya Blog Lukas!

.NET | Toy Box|Wednesday, May 12, 2004 3:28:32 AM UTC|Comments [0]|    

 Monday, May 10, 2004
When XML goes bad......

Now I've always been a bit of a fan of XML......

I've written books on it...
Spoken @ Universities and other tech tiki tours around it...
...hell.... I've even got the number plate....

But there are some things that just should not be dne with XML..... one of these things is using it for writing bloody log files....

Nick (Kognition Senior Dev type guy) and I sat down this afternoon with one goal in mind..... find out why the %$^&$ our elegant and superbly architected Web Services layer was causing the ASPNET_WP process to consumer hundereds of megabytes of memory on most of the development team PCs.

The culprit was WSE. Some developer, somewhere in the evil empire, had decided that it would be a good idea to have the WSE implementation of WS-Security write to an XML log file every time something happens- this is great for debugging thought we, so it was duly turned on. Of course this developer didn't do it the elegant way as suggested by Dare, oh no... they commited the ultimate sin.... loading the whole bloody log file into a DOM (read in memory tree structure) simply to append a line... and doing it on each request of course.

The result is performance on par with a G.W. Bush press conference and a MASSIVE memory footprint. So, Mr Evil Empire dev..... do the nice thing and change the way logging works...

OK... so to recap for Google searchers who need to know about this problem in the future.

WSE has an XML based logging function. It causes the ASP.NET worker process to consume large amounts of memory. This also causes the Web Service request to be extremely slow. So.. don't enable logging.....

.NET|Monday, May 10, 2004 4:09:20 AM UTC|Comments [18]|    

 Wednesday, May 05, 2004
Bye Bye Nastyboy - Removing Dynamic Help from VS.NET

If, like me, you find that the Dynamic Help 'feature' in VS.NET is a right royal pain in the ass then this article from Fabrice tell you how to turn it off.

Anyway, today I found a nice way to disable dynamic help completely, for doing so go to:

HKEY_CURRENT_USER\Software\Microsoft\Visual Studio\7.0\Dynamic Help

And modify the value of the Never Show DH on F1 to YES.

The mere existence of that registry key says to me some kind person @ MS thinks Dynamic Help blows goats too.....

Disclaimer:
This involves $^%$^ing with your registry.... if you %^&% it up don't come crying to me.

.NET|Wednesday, May 05, 2004 10:19:11 PM UTC|Comments [4]|    

 Saturday, May 01, 2004
Postlogue: The MS Security Summit

I spent most of this week travelling the country with Paul Andrew and a few others presenting at the MS Security Summit series.

I mentioned a few things in my presso.. one was a book title worth grabbing.

As Nick notes, we had fantastic turn outs.

Nick notes a few experiences along the way as well... I guess I should add mine.

  • The AirNZ check in system does indeed ROCK THIS WORLD. I have bagged AirNZ quite a bit in the past, but the Kiosk check system really is fantastic. The best ID to use is your Airpoints or Koru Club card. That way, if you are happy with a random seat assignment, yu can have your boarding pass in under 5 button presses. I'm a stickler for choosing my own seat though. Based something around the following heuristic (for 737s).
    • Outside seat one row behind exit row only if no one is in the middle seat. The outside seat has no seat in front of it, but you really need the seat next door to be empty so you can put ya lappie on the tray table.
    • Second preference are the aisle seats in row 1. Can stick your big legs into the corridor... and get off the damned plane first.
    • Middle seat of an otherwise empty row of seats in the back 5 rows. By taking the middle seat you can often luck in and not have anyone seated next to you. This tip is even more important on Air NZs ever half empty trans pacific services.... always take the second seat in from the aisle towards the back. This gives you the best chance of keeping a group of others out of your row and thus allowing you to sleep, reclined, the whole way back.
  • I could get CafeNet @ the Intercontinental..... but they were nice and upgraded me to their top floor rooms which have free net anyway. The intercontinental gets two thumbs up from me for net access.

 

.NET | Rambles|Saturday, May 01, 2004 12:33:17 AM UTC|Comments [57]|    

 Friday, April 30, 2004
XBox Gossip...... MSIL in Silicon...

Xbox 2 News
If you're interested in reading about the latest gossip on Xbox 2, then you'll want to visit xbreporter.com. One of the latest rumors on xbreporter discusses support for the .NET Framework:

  • MSIL all the way
    The CPU for the Xbox 2 is rumoured to be designed to be a processor that can decode and execute instructions in Microsoft Intermediate Language (MSIL) while at the same time being able to run x86 code, to remain compatible with Xbox  

from [http://blogs.msdn.com/danielfe/archive/2004/04/29/123041.aspx]

.NET | Human Aggregation|Friday, April 30, 2004 11:53:57 PM UTC|Comments [1]|    

 Thursday, April 22, 2004
Lenn Pryor on Evangelism

Lenn runs the evangelicals in the longhorn group (I think)....

As some one who is pretty evangelical day to day.... and who would love to make it a profession some day... this makes interesting reading.

http://www.glitteringgenerality.com/default.aspx?date=2004-04-21

.NET | Human Aggregation|Thursday, April 22, 2004 10:44:46 PM UTC|Comments [6]|    

 Monday, April 19, 2004
Writing Good Bug Reports

Stephen Rosenthal has posted about submitting a good bug report over at the Windows Mobile Blog.

http://blogs.msdn.com/windowsmobile/archive/2004/04/19/116123.aspx

The biggest and most important thing in a bug report is reproducibility! If it can be repro'd it can be fixed almost guaranteed.

.NET|Monday, April 19, 2004 8:29:52 PM UTC|Comments [0]|    

 Saturday, April 17, 2004
New Zealand Dot Net Users Group Training Course

As you may already know I kicked off a discussion on the NZ .NET Mailing List late last week around the possiblity of running some free training on a community basis.

I've done some digging and there looks to be enough interest from both a student and instructor viewpoint to make it happen. The plan of attack will probably be to run it via Microsoft LiveMeeting. If you haven't played with LiveMeeting it's a bit of kit that Microsoft purchased off Placeware sometime last year. It allows powerpoiint presentations with live voice and application sharing over the internet in real time. MSDN uses it for their webcasts if you've ever watched one of those.

So anyway, the plan is to run some free training via LiveMeeting over the course of a month or two. The training will happen outside business hours either early in the morning (gotta give the option) or in the evening.

There are a whole load of potential parameters to the final course we could offer so what I'd like to do is solicit some feedback. If you are interested in participating in this community course please answer the following questions by posting me an email to chris(at)kognition.co.nz. I'll be collating the feedback and working on the final course proposal on Tusday night so please answer before Tuesday close of business. Just answer each question with the number and your answer.

1. What sort of time commitment can you make per week?
1 Hours
2 Hours
4 Hours

What is the best course time for you?
Before Work - 7:30am
After Work - 5:30pm
Early Evening - 6:30pm
Late Evening - 8:30pm

What sort of format would you like the course to take?
Lectures Only
Lectures and Labs
Labs Only

Which of the following topics would interest you (please put most important first if you choose more than one)?
ASP.NET
VB.NET
C#.NET
ADO.NET incl SQL Server 2000
Compact Framework
Windows and Smart Client Applications

Do you want the course to have an exam with a final mark?
Yes
No

Would you buy a textbook ($60-$150) if one were available for a course?
Yes
No

.NET|Saturday, April 17, 2004 9:10:18 AM UTC|Comments [0]|    

Self knowledge in Neural Networks

Casey has been spending some time playing with neural nets and asks

“i am beating myself up for not learning quickly enough today. does this exist in the neural network world? a machine knowing that its training is going badly and that it needs to train differently?”

No comments on his blog means I'll add my 2c worth here.

The way I see it there are two possible approaches (in mainstream NN theory) that address the rate of training issue.

1. Inertia
While not really providing for the concept of a global track on learning rate, the use of an inertia value provides a useful mechanism for controlling learning rate in a localised fashion. Basically it aims to prevent local minima/maxima solutions from being found.

2. Evolving Neural Networks
This probably provides better for the idea that Casey is looking at. Evolving neural nets change their architecture- usually by adding nodes but sometime also layers- on the basis of the perceived ability to fit the problem. This fit-ability is in turn often determined by the rate at which the potential solution is being approached in training.

Anyway.... those are my thoughts...

.NET | Human Aggregation|Saturday, April 17, 2004 7:29:23 AM UTC|Comments [0]|    

 Friday, April 16, 2004
Blatant Self Promotion mark II

Nic is doing it.... so I think I should as well....

Microsoft have a Security Summit (which could also be called "DevDays2004"), and I'm presenting at it, along with a bunch of other neat people (likie Nic). Its on in

  • Auckland, 26th April 2004 @ Carlton Hotel
  • Wellington, 28th April 2004 @ Hotel Intercontinental
  • Christchurch, 29th April 2004 @ Hotel Grand Chancellor

If you have an interest in, or need for, secure Smart Client application, or hack-resistant ASP.NET applications (I think that covers everyone), come along! Its free, tho I think it's filling VERY fast...

.NET|Friday, April 16, 2004 3:13:24 AM UTC|Comments [9]|    

 Monday, March 29, 2004
Locking done nicely

Ian Griffiths has a good post on how to use the using statement in C# to create a better approach to locking than the C# lock statement which runs a real deadlock risk. It would be nice to see MS parameterise the lock statement to provide the sort of timeout functionality provided by this solution.

That siad, with input from EricGu and others the proposed approach looks quite elegant.

http://www.interact-sw.co.uk/iangblog/2004/03/23/locking

.NET|Monday, March 29, 2004 9:13:18 PM UTC|Comments [0]|    

 Wednesday, March 24, 2004
Search engine for MS Newsgroups

The MS newsgroups are one of the best (and most underutilized) resources for .NET developers.

MS have launched a search engine for em- I'm still a big fan of Google groups but this offeres an alternative...

.NET|Wednesday, March 24, 2004 3:46:20 AM UTC|Comments [16]|    

 Tuesday, March 23, 2004
Whats in .NET CF v2

IDevNews is reporting in a bit of detail on what's going to be in CF 2.0

http://www.idevnews.com/IntegrationNews.asp?ID=105

  • MSMQ
  • New WinForms controls
  • Performance (up to 300% faster against SQL CE)

 

.NET|Tuesday, March 23, 2004 11:20:29 PM UTC|Comments [2]|    

 Monday, March 15, 2004
Doing the Subversion thing....

I've bitten the bullet and decided to start being better about source control in my business- we're a .NET only (pretty much) dev shop building Smart Client and Smart Device applications mainly for the electricity services industry. Up until now I've been using some rudimentary batch scripts for backup but haven't really been as diligent as I should be. With more people coming on board (more on this another post soon) I've decided to use Subversion for source management.

I had 3 basic contenders for my source management solution.

  1. CVS
  2. VSS
  3. Subversion

I have used VSS before and it is a DAWG! Sorry Korby, but it really is. They reckon that they are going to fix it but IMHO they would be better to throw the sullied name out and start afresh... CVS comes with a bit too much historical baggage for me. So, I decided to wait for Subversion- so far it looks good- good GUI support, merge based, easy branching... that's about all I'd really ask for in source control... oh! It's free too..... as in free beer not free software i.e. it is Apache licensed not GPL licensed... *refrains from ranting on the GPL* 

I installed it this evening and here's a quick tour of what I did in case you are doing it and can learn from some of the stuff I did.

  1. Downloaded
    Subversion http://subversion.tigris.org/ (the windows installer version)
    TortoiseSVN http://tortoisesvn.tigris.org/ (free as in 'free software')this is a nice Explorer integrated GUI
    AnkhSVN http://ankhsvn.tigris.org/(free as in beer) this is a plugin for VS.NET
  2. Ran the Subversion installer
  3. Decided that I wanted to use the built in Subversion server rather than installing Apache on my box. But the built in SVN server is a simple daemon... so I decided to download FireDaemon (not free but a trial version available) to run the server.
  4. Created a repository.... svnadmin.exe create e:\sourcerepository
  5. Got the server running against the repository by creating a FireDaemon service to run
    svnserve -d -r e:\sourcerepository
  6. Found out that I needed to run the service with certain rights- namely log on as a service (duh!) so I used Local System (reconfigured my FireDaemon service)
  7. Gave Local System read/write/modify permission on my repository
  8. Configured the repository configuration file for security in %repository%/conf
  9. Tested it using Tortoise just by going to Repo-Browser and creating a new folder in the repository.

I found that the most useful document for setting up on my Windows box was the TortiseSVN documentation- it was VERY helpful and easy to read and ran through pretty much the whole lot... I found the Subversion docs a bit too Unixie (I wouldn't know a Linux box from a bar of soap).

I'll post more as things go along....

.NET|Monday, March 15, 2004 8:48:40 AM UTC|Comments [17]|    

 Friday, March 12, 2004
Good articles on idempotent services

Make Services Idempotent
http://weblogs.asp.net/ramkoth/archive/2004/03/12/88423.aspx

Legacy Applications
http://weblogs.asp.net/ramkoth/articles/88778.aspx

.NET | Human Aggregation|Friday, March 12, 2004 11:35:34 PM UTC|Comments [6]|    

MS NZ Security Summit

MS are doing a roadshow security summit in Akl, Wel and Chc at the end of April. I'll be there wearing my presenters hat so make sure that you come up and say hi.

http://blogs.msdn.com/PAndrew/archive/2004/03/13/88762.aspx

.NET|Friday, March 12, 2004 11:33:51 PM UTC|Comments [2]|    

 Thursday, March 11, 2004
Whidbey and Yukon Release Dates.... the facts

Hans kicks off into the web logging world with a detailed post on the schedule slippage of Whidbey and Yukon.

The product name for SQL Server codename ‘Yukon’ is Microsoft SQL Server 2005

  • The SQL Server team is working hard to release Beta 2 in the coming months
  • There will be a Beta 3 release in the second half of 2004. Some early adopter customers will go live on this beta and will provide us with additional feedback before the product is shipped.
  • SQL Server 2005 is planned for release during the first half of 2005
  • The official product name for Visual Studio codename ‘Whidbey’ is Microsoft Visual Studio 2005. It is also planned for release in the first half of 2005.
.NET | Human Aggregation|Thursday, March 11, 2004 10:28:52 PM UTC|Comments [2]|    

Hola... the MS C# Team do a VB.NET vs C# Post

http://blogs.msdn.com/CSharpFAQ/archive/2004/03/11/87816.aspx

.NET | Human Aggregation|Thursday, March 11, 2004 8:10:03 PM UTC|Comments [2]|    

Look who is sending their Emissaries into the weblog Fiefdom...

Pat Helland, the MS architecture Guru and all around nice guy, is now blogging... subscribe y'all

.NET|Thursday, March 11, 2004 8:07:16 PM UTC|Comments [6]|    

 Wednesday, March 10, 2004
Embedded VC 4 SP3 Released

Amit has blogged that this is available...

.NET|Wednesday, March 10, 2004 8:45:07 PM UTC|Comments [2]|    

Of Specs and Bugs and PMs and Men

Some great stuff on specs @ MS

Scottie, spec me up!

When specs go bad

When you don't have a spec, everything is a bug

.NET | Human Aggregation|Wednesday, March 10, 2004 8:38:48 PM UTC|Comments [6]|    

Need portable crypto... Go Mono

One of the problems with the .NET crypto classes is that many of them simply interop into the unamanged CSPs installed on the machine. Shawn Farkas (a Microsoftie) has posted some stuff on using the fully managed bits from the Mono class libraries....

How cool is that. X11 licensed too....

.NET|Wednesday, March 10, 2004 5:06:46 AM UTC|Comments [23]|    

 Tuesday, March 09, 2004
Most useful stuff overheard on a blog...

...award for the day goes to

mszCool's Developer Discussion Cave

A tool for configuring SSL for development.....
Wikkid!

The first cool thing I discovered was SelfSSL – a great tool for developers, too. With that tool you can configure SSL on your IIS 6.0 developer instance with just one statement in a command prompt: selfssl /T.
You won’t believe, but this simple command generates a certificate for SSL, adds it to the certificate store (/T means add the local machine’s certificate to the trusted root authorities, too) and completely configures SSL on IIS. Simply great!!”

.NET|Tuesday, March 09, 2004 9:27:47 PM UTC|Comments [0]|    

New MS Blogger on Code Performance

Bill Wert, one of the Test Engineers on the CLR performance team has started blogging....

What sort of stuff do we want to know about code performance metrics?

I'm keen to hear about efficient ways of obtaining metrics- often when I've tried to do it in the past my performance testing code becomes the performance problem.....

.NET|Tuesday, March 09, 2004 10:34:26 AM UTC|Comments [0]|    

Making the Pocket PC Emulator serial port work....

Scoble has a link to someone grizzling about wasting half an hour only to find that the PPC emulator serial port don't work....

Two things..

1. Half an hour!?! *scoffs* We wasted a day and a half shagging around trying to get a legacy Delphi app to connect to a SQL 7 database earlier in the week (some bizzare bug in the Delphi ADO library in the end) so don't grizzle about half an hour.

2. It can be done.... you just need to google up the solution (1st result... Google is your friend..... newsgroups are your friend...)

1. Click "Tools | Options | Device Tools | Devices
2. Select the "PocketPC 2002 Emulator" in the listbox.
3. In the Startup Server section, click "Configure".
4. You should see a form with 3 tabs. Click "Hardware".
5. You can set 0, 1 or 2 serial ports in the emulated PC. Select the PC's
physical port(s) to be assigned to the PDA's logical ports.
6. Click the "System" tab and change the amount of memory in the
emulated PDA. I've found that unless you change this value, any changes you
make to the ports won't be seen by the emulated PDA.


 

.NET|Tuesday, March 09, 2004 9:28:06 AM UTC|Comments [0]|    

 Monday, March 08, 2004
All the new goodies in C# Whidbey

This DOC provides some good detail on all the new language features forthcoming in C# 2.0 (Whidbey)

.NET|Monday, March 08, 2004 4:25:26 AM UTC|Comments [0]|    

COM Interop in next version of CF

A post by Josh Heitzman seems to indicate that there will be COM interop support in the next version of the CF...

May be old news.. but first confirmation from an MS source that I have seen.

“the next version of the .NET Compact Framework will require C++ exceptions, as they are utilized in the new COM interop support being provided in the next version.  It's my understanding that the current version of the .NET Compact Framework does not require C++ exceptions, because it does not have the COM interop support”

Jim Wilson also has some insights

.NET|Monday, March 08, 2004 2:48:18 AM UTC|Comments [0]|    

 Sunday, March 07, 2004
CodeRush 1.0 is released...

http://www.devexpress.com

I'll post that full review I've been promising some time later this week.

.NET|Sunday, March 07, 2004 7:53:39 PM UTC|Comments [0]|    

 Wednesday, March 03, 2004
Dynamic invocation in .NET

Eric Gunnerson has an article up on MSDN that runs through the various mechanisms for invoking code on the .NET platform. If it's one this that managed environments are pretty good at it's resolving, loading and executing code on the fly. Eric runs through the performance os standard invocation mechanisms as wll as the more exotic/dynamic approaches.

Take a look.

.NET | Human Aggregation|Wednesday, March 03, 2004 6:35:34 AM UTC|Comments [0]|    

 Tuesday, March 02, 2004
Code Rush slated for release this week.

A little birdy tells me that Code Rush, the VS.NET IDE enhancer from DevExpress is due for release today or tommorow! I'll do the in depth blog post on it once I've had the release version for a couple of days.

.NET | Toy Box|Tuesday, March 02, 2004 7:18:53 PM UTC|Comments [0]|    

Laguna handouts at MDC

Looks like they're gonna be dishing out beta versions of Laguna (SQL Server CE 3.0) at MDC this year....

I seriously tossed up going on the way to MVP Summit but decided to go scuba diving in Hawaii instead.... gotta have some pleasures in life *grins*... It's bloody expensive ofr we antipodeans to get to these conferences too... even with the US dollar as weak as it is.

.NET | Mobility|Tuesday, March 02, 2004 5:02:39 AM UTC|Comments [0]|    

Using the same compiled assmbly on Desktop and Compact Frameworks

A recent Mobile Minute had a link to some stuff by Kyle Cordes on the Compact Framework. This short piece by Kyle gives a great once over lightly of CF development and covers off many of the questions that always seem to raise their head in any discussion of CF development. I had a few of them the other day in my web cast *plugs web cast*. Kyle even includes some very interesting BAT file instructions for building CF applications automatically... very cool this.

I'll add just a couple of quick points to some of the stuff there.....

“You can't run the same EXE/DLL on both the CF and desktop .NET“

Actually you can. With DLLs you can run the same DLL on a device as on a desktop. If your DLL is written to to only use the subset of the framework supported by both platforms. Alternativly with intelligent exception handling you can get away with making some platform specific calls too.

A great example of a .NET assembly that works fine on both platforms is SharpZipLib

http://www.icsharpcode.net/OpenSource/SharpZipLib/Default.aspx

 

“If you include both a desktop and CF project in the same ?Solution?, and you build/run the desktop app, VS.NET will build and deploy (!) the CF project. “

If you right click the VS.NET solution and choose 'configuration manager' you can turn CF project deployment on and off on a project by project basis.

 

Many CF API calls throw/return much less helpful error messages than the corresponding desktop .NET calls; a lot of descriptive error text was left out to keep the CF small.“

They were'nt completely removed. They are just held in a separate assembly that you need to include called System.SR.dll. Always worth having a reference to this in ya project while debugging.

.NET | Mobility|Tuesday, March 02, 2004 4:55:26 AM UTC|Comments [0]|    

 Monday, March 01, 2004
Russell Beattie on MS Phone Strategy

http://www.russellbeattie.com/notebook/1006453.html

“Remember, Microsoft has a sales rep assigned to *every* enterprise on the planet already (well, every enterprise that uses Windows... i.e. everyone). So extending their presence to Mobile is just as simple as throwing a few SDKs on the MSDN CDs and sending out a few sample Smartphones to CTOs. Combining forces with a few carriers, and suddenly Microsoft is on the map. Already here in the U.S. I can get a Microsoft device from every major carrier. That's pretty good penetration for a company that's supposed to be an also-ran in the mobile market.”

.NET|Monday, March 01, 2004 12:58:23 AM UTC|Comments [10]|    

 Sunday, February 29, 2004
More .NET core stuff... Garbage Collection under Rotor

[via Scoble]

Joel Pobar has a post on the workings of the Rotor garbage collector.
It's quite different to the CLR GC but makes interesting reading.

http://weblogs.asp.net/joelpob/archive/2004/02/26/80776.aspx

.NET | Human Aggregation|Sunday, February 29, 2004 8:51:07 PM UTC|Comments [6]|    

Caching in Whidbey

I'm a big fan of caching in ASP.NET
When you look at all of the .NET vs Java benchmarks it's usually the easy caching support that has given .NET the edge.

Andrew G Duthie has an article up on MSDN about the new caching stuff in Whidbey.

Specific goodies include:

  • A non sealed CacheDependancy class. i.e. you can inherit and create your own dependency expiration rules.
  • SQL invalidation. Obviously drawing from the above, there is now a bundled SqlCacheDependancy class. It looks like it is done via a polling mechanism rather than a trigger executed extended stored proc as used by Rob Howard in his example for use under 1.1 and 1.0
  • Substitution capability for chaning content after retrieval from the cache.
.NET | Human Aggregation|Sunday, February 29, 2004 8:41:40 PM UTC|Comments [0]|    

Dare on the forthcoming changes to forward only XML in .NET

http://www.25hoursaday.com/weblog/PermaLink.aspx?guid=51908783-d75d-4924-ac37-c19f25dbac44

In the next version of the .NET Framework we are moving away from the XmlTextReader and XmlValidating reader. Instead we will emphasize programming directly to the XmlReader and will provide an implementation of the factory design patterns which returns different XmlReader instances based on which features the user is interested.

.NET | Human Aggregation|Sunday, February 29, 2004 8:22:59 PM UTC|Comments [5]|    

Junfeng Zhang on getting the assembly version number

Microsoftie Junfeng Zhang has a peculiar post on retrieving the version number of the currently executing assembly from within the assembly itself. This is obviously useful for the sort of auto updating applications that I discussed in my recent CF webcast.

He lists the obvious approach which is to use the metadata reflection capability in .NET like thus:
Assembly.GetExecutingAssembly().GetName().Version

But Junfeng (a dev on the Fusion team) says:

Of course, this works. But personally, I think it sucks that you need API to get properties of yourself.“

He instead suggests:
a) Creating an internal class with constant (and presumably static) members to hold 'all the interesting assembly properties' or;
b) Take the more sophisticated option of holding an external file with these properties in it and auto generating this Assembly Properties class along with the AssemblyInfo class at compile time.

Now to me this is just plain wrong. The 'important information' that is being talked about is classic metadata- it is information that describes the code. The very reason that we have the sort of metadata reflection techniques that exist in modern managed runtime environments such as Java is so that we don't have to hard code these sorts of properties that are not intrinsic to the logic of the code itself.

Versioning (as we are talking about here) is really a compiled code concept not a source code concept. Taking the approach suggested muddies this distinction. .NET versions at the assembly level and importantly a versioned assembly need not even contain any executable IL code- it may just be a resource containing assembly. What do we do then? Have one version discovery approach for code containing assemblies and one for resource containing assemblies? Have all of our resource containing assemblies include the special Important Properties class?

I find it very peculiar that someone who must be deeply involved with the .NET metadata mechanisms (for those that don't know Fusion is the managed/unmanaged stuff that locates and loads .NET assemblies) dismisses the usefulness in this case with a simple 'I think it sucks'... Is there something we don't know about here? Is this sort of reflection overly resource intensive? If not I don't really see why the the standard approach should not be favored.

.NET|Sunday, February 29, 2004 8:54:05 AM UTC|Comments [4]|    

 Wednesday, February 25, 2004
CF Coolness 101.....

Chris Tacke has posted some info on a really cool little control that he has written for CF.....
An automotive dial gauge.

 

 

 

 

 

 

 

.NET|Wednesday, February 25, 2004 11:57:15 PM UTC|Comments [0]|    

More stuff on SQL Server Scheduling

I posted a couple of days ago on some stuff to do with scheduling in SQL Server.

MSDN has just published a good article on the internals of the User Mode Scheduler inside SQl Server.

.NET | Human Aggregation|Wednesday, February 25, 2004 8:50:26 PM UTC|Comments [0]|    

New Motorola Smartphone with.... WMS2k3 and.... CF SP2

Michael Yuan is reporting the release of two new Windows Smartphone devices from Motorola.

These have all the usual fruit that you'd want and expect on a current generation mobile;

  • 1.3MP Camera
  • Bluetooth
  • Tri Band GPRS

..... as well as a few things that set them apart....

  • WiFi!.... Yes WiFi!
  • Smartphone 2003 OS (first in the US with that I think)
  • SP2 of the framework.... which is just as well becuase you can't update the CF into RAM on these devices.

I'm going to grab one while I'm in the US in April if I can find one. Does anybody have any pointers as to where to get one in and around the Seattle/Redmond area?

.NET | Toy Box|Wednesday, February 25, 2004 8:15:54 PM UTC|Comments [0]|    

More Questions from my Webcast

1) If you add a file (say an xml config) file to a CF project and set its BuildAction property to Content would you still need to include it in the CAB inf file?

[CJTA]
No. If it is included in your project and set to BuildType 'Content' in VS.NET then the default CabWizard *.inf file will include that file in your final CAB.
However, if you want to be able to place some of those files into sub folders then you will need to edit the *.inf file. The reason is that the default *.nf generated simply places all of the content files (even if they are in folders in VS.Net) into the application directory.
 
[PMS] Ahh. Got it.
 
2) I installed Microsoft's Remote Desktop Manager as well as vxUtil, both of which I seemed to install via my desktop without my having to use ActiveSync directly. Which of the deployment models do these use? Can you point me to some more info on it?
 
[CJTA]
They both actually use Active Sync to manage the install. Basically what happens is
1. The package you download on your desktop installs the drops the cab files onto your desktop hard drive
2. The desktop installer application passes the CAB files to active sync which in turn passes them down to the device
3. Active sync on the devices executes the package on the device.
 
[PMS] This is the Exe that I ran I presume. How does step 2 happen? Is this a standard installer (e.g. MSI) or something custom written? What generated the Exe? Any references to info on this technology?
 
[CJTA]
The Active Sync App manager has an API that the sdetup program on your desktop talks to.
You can also buy off the shelf setup builders that make EXEs that can talk to the App Manager API
 
[PMS]
Related to that, for commercial PPC apps, what deployment mechanism is the most prevelent used? Simple CABs?
 
[CJTA]
Most commercial apps are deployed using Desktop based installers that communicate with App Manager. The focus of my discussion was really on enterprise apps where depolyment if often away from the desktop. It is worth noting here that even with a desktop installer approaqch there will be a CAB file written somewhere to your file system. If you need to install the app by had (or over the network somehow) you can go and find that cab file and copy it manually down to the device.
 
.NET|Wednesday, February 25, 2004 8:09:16 PM UTC|Comments [0]|    

 Tuesday, February 24, 2004
Making the Pocket PC Emulator work over the network

If you are using the Pocket PC emulator to debug Compact Framework applications that rely on networking you may want to look at this article. it describes the process to follow to ensure that the emulator can comunicate over the network.

.NET|Tuesday, February 24, 2004 10:37:41 PM UTC|Comments [13]|    

 Monday, February 23, 2004
New Fruit on MSDN

Couple of goodies have popped up on MSDN Subscriber downloads recently.

Win XP SP2 Beta
Windows Sharepoint Services

.NET|Monday, February 23, 2004 10:37:58 PM UTC|Comments [0]|    

Robert Levy on theSpoke and the move away from GotDotNet

Robert Levy has posted some comments on the rise of theSpoke.net and the fall of GotDotNet.com/student.

http://robertlevy.net/archive/2004/02/22/152.aspx

.NET | Human Aggregation|Monday, February 23, 2004 1:33:35 AM UTC|Comments [0]|    

From the Field: Casey Chesnut does Dallas

Tablet MVP Casey Chesnut has a run down of the Dallas MVP summit. We antipdeans were invited to attend via Live Meeting but I don't think many/any of us managed to get up that early in the morning.

http://www.mperfect.net/blog/browse.aspx?bid=632130464595625000

.NET | Human Aggregation|Monday, February 23, 2004 12:31:56 AM UTC|Comments [0]|    

Worth waiting for: cbrumme does CLR Hosting

When you were a kid did you need to know how things worked? Like taking things apart? Interested in the guts of the .NET framework? Good.

Your first point of call should probably be Don Box and Chris Sells' great book $a(ISBN 0201734117,books). It's a great read, especially for those coming from other managed environments (Java especially) as it allows you to get your head into exactly what .NET is without having to wade through 'how to program in an OO environment' 101. It's the sort of book that any .NET programmer worth their salt should 'cover to cover' at least once in their career. Then you can slot it back on the shelf for ready reference in answering those particularly gnarly newsgroup questions.

But, I digress. The second place to head is the weblog of Chris Brumme, one of the architects on the CLR team. This blog has an extremely high signal to noise ratio with the posts usually stretching into  several pages of extremely detailed information on a given aspect of the CLR and/or Framework. His recent post on hosting covers allot of ground with the real value, I think, being that it gives some insight into the considerations involved in producing highly performant server software - viz SQL Server.

Chris describes in some detail:

  • How CLR threading interacts with the underlying host.
  • How SQL server manages multi-threading in a slightly surprising fashion
  • Hooks that are being introduced in the Whidbey timescale to allow the CLR to better cooperate with 'extreme' hosts such as SQL Server.
  • Schemes for managing memory and threads in post physical and virtual (hyperthreading) MP environments.

http://blogs.msdn.com/cbrumme/archive/2004/02/21/77595.aspx

.NET | Human Aggregation|Monday, February 23, 2004 12:08:31 AM UTC|Comments [0]|    

 Sunday, February 15, 2004
Artima.com

Dunno if you already know of it, but, the site http://www.artima.com/ might really spin your wheels. Basically it is a set of informal interviews with some big names in software engineering- think Stroustrup, Gosling, Eckel, Hejlsberg, Cunningham, Meyer etc....

It's actually really readable and suprisingly un Computer Science like. (maybe I'm just becoming more CS like... I don't know...)

Anyway. Well worth taking a look at.

.NET | PoliTechLaw | Rambles|Sunday, February 15, 2004 8:33:30 PM UTC|Comments [0]|    

 Wednesday, February 11, 2004
Will Apple Go .NET

http://www.osnews.com/story.php?news_id=5905 [From Nino.Mobile]

IMHO it's too easy for them not to.

.NET|Wednesday, February 11, 2004 9:36:44 PM UTC|Comments [3]|