05 April, 2009 15:38
Time Machine fails with Error mounting volume
Posted by mimo under [ General , Development ][ (0) Comment ] | [ (0) Trackbacks ]
I use a Macbook pro for doing all my software development. Since switching over to Mac, I can't imagine using any other computer to develop with. The combination of the OSX operating system with the power of the Macbook Pro makes for an unbeatable development platform.
I have also eliminated all windows machines from our house now as well. I have a linux server for my websites, an Imac for our 'TV', which also acts as our primary media server for music, photos and family media, and an old 17" Powerbook G4 that my wife uses. I have the three Mac machines backing up to a 1 terabyte Timecapsule.
The Timecapsule is a great innovation on Apple's part, and has already saved my life on a few occasions. Not only does it handle all my media etc. but with the new version of VMWare fusion, I am able to have automatic backups of my local development and document files that I use on the Windows side.
Time Capsule was easy to setup, and had run without an issue until a few weeks ago, when I started getting errors during backups on my Macbook Pro.
These were 'Backup failed - Error mounting volume', or 'Network error during backup'. After digging around a bit through various log files etc. I found that the likely culprit had nothing to do with the network, but was the fact that my hard drive had bad files and directories on it.
Resolving this issue involved booting up from the OSX CD and running the Disc Utiltiy Repair function on the Macbook Pro hard drive. Since doing this, Timecapsule is up and running again without a problem.
It would be nice if Time Capsule/Time Machine could produce a more informative message, or offer to take some kind of corrective action in the event of a failure like this instead of the misleading cryptic message it had generated. Thus this blog post so hopefully the next person who hits the problem will be able to fix it without having to dig through log files...
19 March, 2009 10:29
Team based development systems - Article 1 - Tools
Posted by mimo under [ C# .net development ][ (0) Comment ] | [ (0) Trackbacks ]
I recently completed an assessment and subsequent construction and deployment of a development management system for our software development team at Matrix
While Microsoft has brought out Team system for doing source control, automated build/test, its a fairly expensive product. It has the advantage of being an 'install and go' kind of thing, but the cost of it makes it prohibitive for smaller development teams.
There are also lots of great open source tools out there for performing these tasks that work very well. At Matrix where I work, I have assembled a set of tools that are doing a great job of letting us manage a very extensive set of code across a diverse team of people in a quick, easy and efficient manner. This blog post will review the tools we are using for this, and give examples of how to set it up.
(More)14 October, 2008 20:32
Configuring Silverlight to use a secured WCF Service
Posted by mimo under [ C# .net development ][ (0) Comment ] | [ (0) Trackbacks ]
- add .xap -> application/x-silverlight-app to the mime type in IIS to get IIS to recognize and transmit the mime type
- add .xaml -> application/xaml+xml to the mime types in IIS to get IIS to recognize and transmit the mime type
- add the clientaccesspolicy.xml to the root folder in IIS to get the cross domain working for wcf debugging
- Ensure that you have the IIS virtual directory security set to use NT authentication only
(More)
14 October, 2008 19:49
While I am critical of Microsoft, its because I know they can do better than they have in recent years. If you put the dismal performance of Vista and the horrible marketing campaigns of late, Microsoft outside the consumer and platform sphere has created some incredibly innovative products for developers over the last few years. Linq, and WCF are just two recent examples - not to mention the new SQL server 2008 which is amazing as well - more on that in a later post...
Unfortunately, it is Microsoft business model that needs innovation - not their tools. It is mired in the world of PC software - often to the detriment of new and innovative ideas.
Fortunately, Silverlight looks like a breakthrough technology for Microsoft: mainly because it shows a change of attitude. Microsoft is finally getting serious about cross platform support, and the web as the application platform. I have often wondered why Microsoft has not made a .net VM host for other platforms - Mono aside. The obvious answer being fear of cannibalizing its windows franchise. I personally think Microsoft, if it were serious about this battle for the web, would make windows free for consumers, and instead shift its focus to a subscription service based model: say $50 a year for support for Windows or something to that effect. It would cost it a fortune initially, and would affect their stock price (could it get worse??) but would force the company to formally acknowledge what has already happened: Operating systems are a commodity.
Anyway - fantasy aside - It seems that Silverlight is at least a start at Microsoft opening its platform up to other operating systems.
Silverlight allows for .net managed code to run on any platform using Windows Presentation Framework. I am very excited about this, as many of the apps we are looking at building can then be made to run on any platform. It is of course possible to do this with Ajax, which I have done, but it will be nice to have the advantage of a full fledged debugger and a nice set of tools that finally is graphic designer friendly on the Microsoft side (Google of course has had this for a while with its GWT - I have never liked Microsoft's native implementation of asp.net Ajax - its complicated and messy).
I already have a version of a managed code graph written in C# using the open source Visifire control working in IE, Firefox, and Firefox on the mac (have to try linux next)... using the same code base. This graph gets its data from a WCF service that pulls data from our accounting system.
Here it is running in firefox on my MacBookPro:
Getting this working though was a bit difficult from a configuraion standpoint.
(More)18 September, 2008 17:08
Setting line style in Virtual Earth
Posted by mimo under [ General ][ (0) Comment ] | [ (0) Trackbacks ]
Needed to set the style of a line in Virtual Earth.
This seems to be a bit of a hidden function, so took a bit of work to find:
Usage: shape.Primitives[0].symbol.stroke_dashstyle = "Dot";
Other line types:
Solid, ShortDash, ShortDot, ShortDashDot, ShortDashDotDot, Dot, Dash, LongDash, DashDot, LongDashDot, LongDashDotDot
07 September, 2008 23:15
SQL Server 2008 spatial extention
Posted by mimo under [ C# .net development ][ (0) Comment ] | [ (0) Trackbacks ]
Very exciting - we have setup SQL 2008 and I am now working on extending our syncrhonization system to incorporate spatial information....I will be making notes here as I work on figuring out the SQL spatial extensions. Some of these will be fairly simple to begin with, until I become familiar with the syntax.
To that end: one of our tables had lat/long information in it in standard floating point format. I needed a query to update this information into the new Geography column I created. The update query to do this:
update WaterWells set Coordinates =
geography::STPointFromText('POINT(' + CAST(LONGITUDE as varchar(50)) + ' ' + cast(LATTITUDE as varchar(50)) +')', 4326);
03 September, 2008 18:59
Bug in Dynamic Linq
Posted by mimo under [ C# .net development ][ (0) Comment ] | [ (0) Trackbacks ]
As noted in another post, I am using Dynamic Linq to build a generic query tool for a service layer I am constructing. In the process of doing so, I have run into the following error when I try to pass a query in for a Guid:
Operator '=' incompatible with operand types 'Guid' and 'String'
26 August, 2008 16:02
Smartphones - a case study in usability...
Posted by mimo under [ User Interface , Opinions , Smartphones , Rants ][ (0) Comment ] | [ (0) Trackbacks ]
For the past 3+ years, at Matrix we have been evaluating smart phones for corporate use. For most companies, the selection of a smart phone device is a non-issue: its RIM's Blackberry product and associated BEZ (Blackberry Enterprise) server.
Being a Waterloo University engineering graduate, I certainly would have no qualms about going the Blackberry route for a corporate smartphone device. However, working through the evaluation process at the corporate level puts a different perspective on these devices.
The biggest issues are: cost (device, dataplans, setup), maintenance, usability (not always in that order) and finally farther down the list - application platform. By application platform I am referring to custom business applications that are outside of contacts, email and calendar. I suspect as time goes on the application platform item will become more important at Matrix, but right now its not a priority.
Matrix users at present though have very basic requirements for a smartphone - they want it to work well as a phone, and be able to use it as a tool for managing their calendar, contacts and email in that order.
The Blackberry excels at these, but its requirement for a server to enable corporate messaging makes it more costly than other offerings, when you factor out the device as an application platform.
While the Blackberry Enterprise Server provides more value in terms of features, the market it was designed to serve has changed since its inception. The security measures on other platforms, while not as sophisticated perhaps as the BEZ, are good enough to be effective (more about this later). The dataplan monitoring and restrictions were something that used to be important - but now that phone companies are being forced to provide more logical plans that offer data pooling and reasonable data limits, the requirement for centralized monitoring has diminished significantly. The BEZ acts as a platform for software development - but other platforms are now providing sophisticated developer tools as well.
Finally the BEZ requirement adds yet another server (albeit virtual) that requires licenses, maintenance, updates, expertise and attention. The additional requirement of a CAL for devices connecting to the BEZ add another layer of cost - especially when you consider that many companies already pay for Exchange CALs.
So at Matrix, the focused shifted to evaluating mobile devices that could directly connect to Exchange via the Exchange push mechanism - which narrowed the search to Windows Mobile based devices.
(More)21 August, 2008 13:38
Architecture Journal article published on Enterprise Identity Synchronization
Posted by mimo under [ Design Patterns , C# .net development , Systems Architechure , Memes ][ (0) Comment ] | [ (0) Trackbacks ]
Very exciting news - an article co-authored by Barry Lawrence of BSTGlobal and myself based on a system now in production at Matrix has just been published in the Microsoft Architecture Journal.
The article is on the subject of Enterprise Identity Synchronization and describes a synchronization pattern and associate system architecture for keeping enterprise identity data up to date between disparate systems. In effect - it is a system for replicating identity memes around an organization.
This has proven to be a fascinating project from a number of standpoints, and I have learned a great deal from the experience of being involved in designing and building a services oriented workflow architecture. The implementation of the system has also been very fascinating, and is a real case study in how systems, people and processes are inherently intertwined. I will write a number of blog posts on the outcome of this project over the next few weeks.
24 July, 2008 22:53
The Big Switch?
Posted by mimo under [ Ideas , Systems Architechure , Opinions , Rants ][ (0) Comment ] | [ (0) Trackbacks ]
Therefore - I am always looking for ways to reduce costs of IT by leveraging wherever possible the kinds of ‘utility’ services discussed in the book, and have for some time been a believer in SAS.
Matrix right now is still very much in the ‘older’ model of IT services, in which we still own and manage an IT infrastructure based on Microsoft servers and applications which the company owns. (More)
08 May, 2008 13:56
Linq dynamic querying
Posted by mimo under [ C# .net development , Workflow ][ (0) Comment ] | [ (0) Trackbacks ]
As part of the workflow service project, I need to build an XML querying framework.
For this to work on the back end, I would like to use Linq - but in order to do so, I need to have it be capable of handling dynamically generated queries derived from the query XML coming into the service.
It appears that Microsoft has produced samples of this - Dynamic Query.
There are a number of good examples around:
ScottGu's dynamic query example:
Blog post that includes a join example:
The issue though with Dynamic Linq is that you appear to trade the strong typing associated with standard Linq for the flexiblity of Dynamic query.
A query executed with Dynamic Linq returns as a type of 'DynamicClass1' etc. which cannot be cast to other types. This means that a generic mapping process of some kind would have to be used to get the data back into some kind of strongly typed form.
In the case of what I am working on, I don't need the strong typing. I am working on setting up a service entry point for generic querying of data associated with the service in question. The query language coming in will be constructed in XML, and defined using a typical XML query pattern.
These queries will be translated to dynamic linq, which is then executed and mapped back to XML from the generic dynamic class generated.
(More)07 May, 2008 13:13
Accessing WCF Service from infopath Data Source
Posted by mimo under [ Workflow ][ (0) Comment ] | [ (0) Trackbacks ]
I have been constructing a workflow based service engine using WCF and WF with the intention of using infopath forms to route data through the engine.
Fortunately, the company that supplies our Project Services Automation system BSTGlobal has built just such an engine they call BSTFX. This tool is a set of service contracts and objects coupled with a management console and WCF hosting system that takes quite a bit of the work out of building a stable service oriented workflow.
One of the tricky bits though has been figuring out how to get Infopath to talk to a WCF service.
(More)20 November, 2007 15:55
How to set default values based on other fields in Infopath
Posted by mimo under [ XML Resources , Sharepoint ][ (0) Comment ] | [ (0) Trackbacks ]
Infopath is a great tool - but it does have some very strange quirks. For example, something that should be simple to do - such as setting a default value in a field based on a drop-down list setting in the form turns out to be incredibly difficult.
This is because infopath for its rules processor relys on Xpath statements, which can be a bit tricky to work with (they remind me somewhat of regex statements). It is possible to use managed code to get around such limitations, but one of the reasons we wanted to use Infopath was to allow non-programmers to build their own forms.
Having to use managed code for something simple like this defeats the purpose of using Infopath.
At any rate: here's the xpath statement structure you need to set a field's default value based on a drop-down list setting elsewhere in the form:
concat(substring("11.3", 1, (../../my:SampleType = "Plot" or ../../my:SampleType = "PartialPlot") * string-length("11.3")), substring("0", 1, (not(../../my:SampleType = "Plot" or ../../my:SampleType = "PartialPlot")) * string-length("0")))
This one sets the default value of the field its assigned to (PlotSize) to 11.3 or 0 depending on the setting of the SampleType field. I got the basic statement from the Infopath Team Blog.
10 November, 2007 13:00
Thoughts after a week at Microsoft..
Posted by mimo under [ Ideas , Memes ][ (0) Comment ] | [ (0) Trackbacks ]
Had a great time, great conversations.
Here are some initial thoughts from one of them:
Meme Emergence:
'meme catcher of future memes' - there is a re-emergence of interest in the school of thought in the evolutionary biology space called 'Evo Devo' (evolutionary developmental biology). This investigates the idea that evolution may alter developmental processes and build new and novel structures from old gene networks based in reaction to environmental pressures.
(More)07 November, 2007 09:18
Visiting Microsoft this week
Posted by mimo under [ News , Design Patterns ][ (0) Comment ] | [ (0) Trackbacks ]
I am attending the Patterns and Practices conference in Seattle at Microsoft. There were a number of other conferences I looked at attending, but I have wanted to visit the Microsoft campus for a long time, and it seemed to be a good excuse to do so.
The lecture schedule at the conference is pretty intense, and is held at the Microsoft conference center, so there is not a lot of opportunity to tour around either Seattle or even the campus itself. I am hoping that I can get a bit of a look around later in the week.
The conference features an excellent set of speakers, and is incredibly well organized and run. It has a nice blend of theoretical, practical, practices, methodologies. The conference center food has been outstanding, and there have been none of the issues with long lineups you often find at conferences.
They also have had some great after hours events, so far all involving beer (a very good thing). There are some great local beers - tried Fat Tire, Mginties(?), EBS so far. Tonight we have an evening with Microsoft Research, which should prove very interesting.
The hotel is a bit mundane (typical sort of suburban style), but is quiet and at least has a decent weight room.
I would highly recommend it to anyone who is involved in working with developing, designing or managing software projects.
One of the things I really like about this confrence is that it does not have a 'microsoft' centric focus. It is not a 'sales' pitch, which is something I was a bit concerned about when I first signed up for the confrence.
There are sessions that focus on Microsoft's development tool offerings of course, but the focus is not on the marketing but on the application of these tools to solve problems.





