CAT | Technology
OK so maybe there won’t be blood but it’s still interesting that Vlad is turning out to be better at playing Microsoft’s game than Microsoft is.
He’s already offering the type of hosted services that Microsoft has only been talking about and is hosting them in privacy-friendly Europe.
Note to self: look into his backup services. Have a couple of clients that have more data than they can cost-effectively back up to tape.
Tomorrow he will talk about what he’s “got in store for her majesty’s prisoners.” Since it used to be a penal colony for England I’m guessing he means Australia.
No tags
The bar charts on the front page of the Dashboard just were not cutting it so I installed the latest updates of the Infragistics controls (2008.1) and started playing with the Gauge control. I wanted to come up with a gauge that could show at a glance sales this year, this period, this week versus the same timespan last year. I also wanted something that looked classy.
Did a little rummaging around the Internet and found some nice photos at the Mercedes Benz web site of instrument panels. So I came up with a gauge that mimics the speedometer of an E350. Since I’ve never found much in the way of community sharing on Infragistics presets I decided to make it available to anyone that wanted it. Save this as an XML file.
<?xml version="1.0" encoding="utf-8"?> <!--<PresetInfo PresetName="E350Speedo.xml" PresetDescription="Custom Preset Created 4/14/2008 2:29:39 PM" PresetType="All" />--> <igGauge:UltraGauge> <Annotations> <igGaugeProp:BoxAnnotation CornerExtent="40" Bounds="110, 255, 145, 30" Key="gaugeLegend"> <Label FormatString="gaugeLegend" Font="Arial, 13pt"> <BrushElements> <igGaugeProp:SolidFillBrushElement Color="DarkGray" /> </BrushElements> </Label> <BrushElements> <igGaugeProp:SolidFillBrushElement Color="Black" /> </BrushElements> </igGaugeProp:BoxAnnotation> <igGaugeProp:BoxAnnotation Bounds="129, 83, 112, 136" Key="gaugeContent"> <Label FormatString="gaugeContent" Font="Arial, 12pt"> <BrushElements> <igGaugeProp:SolidFillBrushElement Color="WhiteSmoke" /> </BrushElements> </Label> <BrushElements> <igGaugeProp:SolidFillBrushElement Color="Transparent" /> </BrushElements> </igGaugeProp:BoxAnnotation> </Annotations> <Gauges> <igGaugeProp:RadialGauge Bounds="0, 0, 100, 100" BoundsMeasure="Percent" Margin="2, 2, 0, 0, Percent"> <Dial Bounds="0, 0, 100, 100" BoundsMeasure="Percent" InnerExtent="0"> <BrushElements> <igGaugeProp:SolidFillBrushElement Color="LightGray" /> </BrushElements> <StrokeElement Thickness="5"> <BrushElements> <igGaugeProp:SolidFillBrushElement Color="White" /> </BrushElements> </StrokeElement> </Dial> <Scales> <igGaugeProp:RadialGaugeScale StartAngle="150" EndAngle="390"> <MajorTickmarks StartWidth="2" StartExtent="94"> <StrokeElement Color="Black" /> <BrushElements> <igGaugeProp:SolidFillBrushElement Color="Black" /> </BrushElements> </MajorTickmarks> <MinorTickmarks StartWidth="2" Frequency="0.25" StartExtent="96"> <BrushElements> <igGaugeProp:SolidFillBrushElement Color="Black" /> </BrushElements> </MinorTickmarks> <Labels Orientation="Horizontal" Extent="82" Font="Arial, 12pt, style=Bold, Italic"> <Shadow Depth="14" Angle="68" /> <BrushElements> <igGaugeProp:SolidFillBrushElement Color="Black" /> </BrushElements> </Labels> <Markers> <igGaugeProp:RadialGaugeNeedle EndExtent="95" Value="20" Precision="0"> <Anchor Radius="65" RadiusMeasure="Percent"> <BrushElements> <igGaugeProp:SimpleGradientBrushElement StartColor="DarkGray" EndColor="Black" /> </BrushElements> <StrokeElement Thickness="2"> <BrushElements> <igGaugeProp:SolidFillBrushElement Color="Black" /> </BrushElements> </StrokeElement> </Anchor> <Response /> <StrokeElement Thickness="2"> <BrushElements> <igGaugeProp:SolidFillBrushElement Color="Black" /> </BrushElements> </StrokeElement> <BrushElements> <igGaugeProp:SolidFillBrushElement Color="Silver" /> </BrushElements> </igGaugeProp:RadialGaugeNeedle> </Markers> <Ranges> <igGaugeProp:RadialGaugeRange InnerExtentStart="93" InnerExtentEnd="93" StartValue="0" EndValue="160"> <BrushElements> <igGaugeProp:SimpleGradientBrushElement GradientStyle="BackwardDiagonal" StartColor="SteelBlue" EndColor="Gainsboro" /> </BrushElements> </igGaugeProp:RadialGaugeRange> </Ranges> <Axes> <igGaugeProp:NumericAxis EndValue="160" TickmarkInterval="20" /> </Axes> </igGaugeProp:RadialGaugeScale> </Scales> </igGaugeProp:RadialGauge> </Gauges> </igGauge:UltraGauge>
I added a gradient blue range but you can remove that it you like. Use this code to manipulate the annotation box at the bottom of the gauge (I think it’s either a trip odometer or a gear selector display on the real car) and to manipulate the annotation box at the center of the gauge:
BoxAnnotation ga = theGauge.Annotations.FromKey("gaugeLegend") as BoxAnnotation; if (ga != null) ga.Label.FormatString = "Text here"; ga = theGauge.Annotations.FromKey("gaugeContent") as BoxAnnotation; if (ga != null) ga.Label.FormatString = String.Format("First Line:\r\n{0}\r\n\r\nSecond Line:\r\n{1}", firstValue, secondValue);
For my use I put ‘YTD Sales’ in the legend and ‘Last Year:\r\n{0:c}\r\n\r\nThis Year:{1:c}’, lastSales, thisSales.
No tags
9
ASP.NET 3.5 Extensions Videos : The Official Microsoft ASP.NET Site
No comments · Posted by Roger in Technology
ASP.NET 3.5 Extensions Videos : The Official Microsoft ASP.NET Site
I really need 26 hour days to keep up with all this stuff. Sleep is soooo overrated!
No tags
7
Katrien’s MSDN Blog : Silverlight and the HTML page: let your Silverlight do the work
No comments · Posted by Roger in Technology
I was reviewing the event log of a Small Business Server I monitor and noticed that a user had hit their disk space quota on the C drive. Since users don’t usually have access to the C drive I and the user in question was one of the IUSR_ accounts (that are usually used for IIS anonymous access, among other things) I needed to investigate.
Google found a reference to the “fsutil” utility to list files by owner. The command I used was “fsutil file findbysid IUSR_account c:\” and the files were all in the Trend Micro PCCSRV\Temp folder and the Trend Micro PCCSRV\Virus folder. I could not log into the Trend Micro dashboard (it would immediately return an error message that the session had timed out.) Deleted all the *.TMP files in PCCSRV\Temp and then I could log into the dashboard. Used the dashboard to delete quarantined files and all was good again.
Lessons learned:
1. Small Business Server performance monitor does not report quota alerts.
2. Trend Micro CSMSMB (at least version 3.6) leaves lots of TMP files behind even if you set it to do automatic log maintenance and won’t automatically clean out the quarantine folder (at least I couldn’t find a setting for that.)
3. fsutil to find files by owner. Much better than “dir /q | find”.
No tags
Vista SP1 is now available for download from MSDN and TechNet.
No tags
No, not the cat. The next version of Small Business Server. Here’s a few Q&A’s including a little tidbit about certifications.
No tags
…and a few non-C# blogs courtesy of the folks at DevTopics.
No tags
So I thought I would do a post or two about the latest project I’ve been working on. It’s a management dashboard (a first for me) deployed via ClickOnce (another first) and uses a “non-traditional” user interface (another first.)
In 2005 I was in Boston for TechEd and saw a presentation on an application that Microsoft developed for the CommonwealthBank of Australia. This was the first real SOA (Service Oriented Architecture) application that I had seen and it really opened my eyes to the possibilities of Smart Client apps. So this management dashboard is my attempt to leverage some of the things I saw in this app (there’s an entire MSDN case study page dedicated to the bank’s app, aka ‘CommSee.’)
Along the way I thought I would also post about the Virtual Server rig I built to test (and learn about) the ClickOnce deployment. The client’s infrastructure runs on five servers, two of which run as a fault-tolerant mirrored pair and I’m using the Virtual Server rig to replicate that infrastructure in the lab.
No tags
Just installed a code formatter from here. This code should be formatted and syntax highlighted for C#
try
{
DashboardSvc svc = new DashboardSvc();
string productionUrl = Settings.Default.ProductionUrl;
if (ApplicationDeployment.IsNetworkDeployed)
{
svc.Url = productionUrl;
}
return svc;
}
catch (Exception ex)
{
ClientEventLogging.LogError(ex);
}
No tags