More Newz And Random Bits

WebTrends hits a stride again with first tracking of Google Android. I can't help but be a bit proud of the guys for putting this together. Being Android is a major up and comer it is awesome to get a little ahead of the curve every once in a while. Often staying ahead of the curve is ridiculously difficult.

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

Posted by: Adron
Posted on: 10/31/2008 at 1:09 PM
Tags: , ,
Categories: Keeping Up | WebTrends
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (0) | Post RSSRSS comment feed

Dammit! I Broke the Build!

I broke the build this morning as I fixed a bug at 1:12am. I didn't just break it though, I broke it in an absolutely stupid, shameful, silly way. I somehow managed to stick a semi-colon on the end of a line of code before checking in, in addition to the semi-colon that was already on the end of the line of code. Woe is me, I'm a little special in the head today.

It does go to show though, technically, with modern tools I should not have been able to make that mistake. This is something I'll have to work with others to assure we implement. Nobody, should be able to actually check in code that would cause a break of the build. I have a little research to do because in VSTS TFS 2008, the currently used tool, I'm not sure how to set this up. Hopefully I can help figure out a way to help implement this to reduce these wasted minutes and hours of each day for the teams.

In Other News

WebTrends has been getting some good news releases and other such things recently. Lately there has been a post about our new products and product efforts. WebTrends declared data independence. Beyond that if we take a look at what has been released we get into some interesting scenarios, especially for sites with serious traffic volumes that need measured! WebTrends Connect & Data Scheduler will provide multiple avenues for access to data, delivered on various frequencies you can setup and various methods in addition to that. Using Web Services, ODBC, and the associated APIs one can really wire up the data into dashboards and integrate the data into other tools. Imagine being able to actually tie in your analytics data for the executive team and display it beside the ad spot purchasing data, to compare web vs. TV purchased ads and follow through. I personally find it very gratifying to see an actual click through to purchase line versus and artificial "guesstimate" for TV ad purchases.

But just imagine, by connecting those systems it isn't unfeasible to imagine even that data becoming available in some manner. I'll leave that exercise (at least for now) up to the reader.

Open ID Rocks!

I mentioned a few days ago that Microsoft finally got on the band wagon, well Google has also decided last week that it will also provide Open ID Provider Services which I had not realized. But between both of them getting on board, that is awesome news.

...and more Broken Builds

As the day has moved on there have been other build breakages, not particularly me. However the onus has been put on me a few times. It makes me ponder what VSTS TFS is doing. I've used it in the past, mostly with VSTS TFS 2005, and have had tons of issues. I'm usually pretty observant of what source control systems do with my code, but TFS is super tricky. It ghosts things in and out, mixes up versioning and puts some files with other check ins, then reports a breakage on a CI build that has nothing to do with a particular check out.

Now last time I checked, that level of inaccuracy was unacceptable. I was hoping that these types of issues would have been resolved in 2008, but it looks like my hopes have been dashed. This doesn't even touch on Ayende's Issues that he's mentioned in the past, and more, and I'm sure more. He just flat out states it flat out " It means that it cannot be trusted". Which honestly, I can't disagree with. After using Subversion with TeamCity and other tools, TFS just does not have that same level of quality or trust. Once again I'll state, I sure hope to see this fixed and changed in 2010, even though I'm not holding my breath this time, I still have a bruise from passing out for the 2008 version.

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

Posted by: Adron
Posted on: 10/30/2008 at 5:32 PM
Tags: , , , , ,
Categories: Just Stuff
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (2) | Post RSSRSS comment feed

News, Keeping Up, and Work Bits

I finally listened to the keynote from PDC 2008. It was pretty good, nothing that I wasn't really prepared for, but I'm sure a decent amount of cool things introduced for the Microsoft Developer out and about in the wild. I was glad to finally see the cloud computer official, etc. Overall I'm chomping at really getting into some of the other sessions related to the specific pieces of technology. Especially WCF, WF, and the whole middle tier pieces. I'm also keen to see what is done with the ASP.NET MVC Framework, and especially looking for to a real release finally.

Anyway, nothing I haven't really blabbered on about before. In other efforts to keep up with technology and the architectural demands of the industry I often bounce over to InfoQ. One good listen recently was by Dan Pritchett of eBay. I'll correct his title for him, "Designing for Latency". Even though he's one of those evil "architecting is a verb" people, he's a good solid guy, and has some decent information to listen to and think through if you are building anything that might have latency involved. In other words, EVERYBODY!

In other news, Moore's Law Has Changed, instead now we get cores instead of clock speed increases. While I'd still love some clock speed increases, it is nice to basically have a multi-core proc in every box these days.

PDC 2008 Kewl Bits

Check out this video. VSTS is going to rock a lot more. There are a few issues still that concern me, but the work flows and bug tracking are looking pretty good and improved!

At 28.00 minutes in they hit on how to prevent checking in a local change set that might break the build. Not like the "no you can't check this in cuz you broke it" type of limitations, but it actually gives you information back on why it didn't build correctly.

Other parts are the testing now automatically sends a video along with the bug, also a whole event log is sent along with the bug, and a whole bunch of other information pertinent to getting a bug fixed.

At 32.29, the "Layer Diagram" is shown. This is a new diagram and let me tell ya, that sucker will save some time in drawing out the dependencies! For debugging and presentation of an architecture. I'm digging this, all built into the TFS Toolset.

36.10 the Architecture Explorer is looking wicked too. This just brings home the idea that we developers are finally getting those promised 4th Generation Languages. Albeit they're 5+ years behind, but they are arriving! The diagrams too, especially this layer diagram, is a beautiful thing to have that easily accessible. For a real kicker, check out the sequence diagram generated from code at 42:20.

For a real cool unit test bit, check out 46:10. That's all I'm going to say about that...

Today's Closing...

...That's about it for today. I'm hoping tomorrow to have my Part 2 for the WCF known types & other bits finished and written up.

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

Posted by: Adron
Posted on: 10/30/2008 at 7:01 AM
Tags: , , , , ,
Categories: Keeping Up
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (0) | Post RSSRSS comment feed

The Coolest Part of PDC 2008 So Far

I've been paying attention to the PDC 2008 Website and some interesting things, as one would guess, are coming out of the conference.  The two biggest pieces that I'm super stoked about are;  Microsoft is going to make Windows Live ID support Open ID, the other thing is this fancy spancy Windows Azure Cloud computer system.  This sounds like it could be pretty cool.  I'm not 100% sure I like it yet, but it does sound cool.

If you want to check out sessions, be sure to hit Channel 9.

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

Posted by: Adron
Posted on: 10/27/2008 at 8:34 PM
Tags: , , , ,
Categories: Keeping Up
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (0) | Post RSSRSS comment feed

Practices for WCF Data Contracts Part 1

Ok, now to the meaty section on WCF based Web Services.  This entry is about the data contracts that hold together and describe the data the web services offer across the wire.  These first few topics are solely on how to mark various classes, enumerations, and structures as a data contract.  In subsequent parts we'll cover data sets, collections, and other ways to move sets of data across the wire.

The basic structure is like this:

   1:      [DataContract]
   2:      public class Note
   3:      {
   4:          [DataMember]
   5:          public string Body { get; set; }
   6:      }

Pretty much any class that can be serialized or is serialized can be setup to move across the wire by this means.  Now what happens for some of the other types, such as a structure or a enumeration?  You can set those up like this:

   1:      [DataContract]
   2:      public enum Priority
   3:      {
   4:          [EnumMember]
   5:          Low,
   6:          [EnumMember]
   7:          Medium,
   8:          [EnumMember]
   9:          High
  10:      }

and a structure:

   1:      [DataContract]
   2:      public struct TimeInfo
   3:      {
   4:          [DataMember]
   5:          public Int16 EstimatedHours { get; set; }
   6:   
   7:          [DataMember]
   8:          public Int16 ActualHours { get; set; }
   9:   
  10:          [DataMember]
  11:          public DateTime StartDate { get; set; }
  12:   
  13:          [DataMember]
  14:          public DateTime EndDate { get; set; }
  15:   
  16:          [DataMember]
  17:          public DateTime CompletionDate { get; set; }
  18:      }

There are other properties of the attributes that can come in handy also.  Take this same Task Class as an example.

   1:      [DataContract(Name = "TaskItem")]
   2:      public class Task
   3:      {
   4:          [OnSerializing]
   5:          public void OnSerializing(StreamingContext context)
   6:          {
   7:              ClientKey = Guid.NewGuid().ToString();
   8:          }
   9:   
  10:          [DataMember(IsRequired = true, Order = 1)]
  11:          public string ClientKey { get; private set; }
  12:   
  13:          [DataMember(IsRequired = true, Order = 2)]
  14:          public string Title { get; set; }
  15:   
  16:          [DataMember(Order = 3)]
  17:          public string Description { get; set; }
  18:   
  19:          [DataMember(IsRequired = true, Order = 4)]
  20:          public Priority Priority { get; set; }
  21:   
  22:          [DataMember(Order = 5)]
  23:          public TimeInfo TimeInformation { get; set; }
  24:   
  25:          [DataMember(Order = 6)]
  26:          public Decimal Cost { get; set; }
  27:      }

The Name Property replaces the class or member name and provides a name to use instead.  The others are IsRequired, which sets the property as required or not, obviously.  The Order Property sets the order in which the serialization will serialize the particular property.

In the above example there is also the [OnSerializing] attribute.  There are four events that occur during the serialization and deserialization processing of the object;  OnSerializing, Serialized, OnDeserializing, and OnDeserialized.  Any method tagged with the particular attribute of the same name, will allow the method to be triggered during that particular event.

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

Posted by: Adron
Posted on: 10/27/2008 at 12:03 AM
Tags: , , , , , ,
Categories: How-To, Samples, and Such
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (0) | Post RSSRSS comment feed

Don't Get Shot by the Mac Bloods Yo!

Cuz u know, as pointed out here in the geek gang signs post, PCs are Crips yeah.

Needless to say I'm curious how things are going to go at PDC 08', and definitely curious as to what all will be released or at least shown for the first time.  I know there is a ton of Cloud Computing stuff that will be talked about, also a ton of stuff related to the ASP.NET MVC.  The biggest things I'm curious about is how cloud computing and parallel processing will play into utilization in an SOA world.  Then of course, distributed Web Services are an interest of mine, so knowing how these things will play together makes me x-tra curious.

All have fun, and I'm looking forward to the reverberations, rumors, a random tidbits coming this way.

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

Posted by: Adron
Posted on: 10/26/2008 at 2:26 PM
Tags:
Categories: Just Stuff
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (0) | Post RSSRSS comment feed

Code Paste Formatting Fixed With CSS

You'll have to look back and check out my entry on how to get code displayed on a blog entry nice n' smooth.  I did however add some CSS that cleaned up the display on the blog.  That snippet is below.

   1:  .csharpcode
   2:  {
   3:      padding: 5px;
   4:      margin: 5px;
   5:      border: medium solid #d0eb55;
   6:      overflow: scroll;
   7:  }
   8:  .csharpcode, .csharpcode pre
   9:  {
  10:      padding: 4px;
  11:      margin: 4px;
  12:      font-size: 1em;
  13:      color: #fff;
  14:      font-family: Consolas, "Courier New" , Courier, Monospace;
  15:      background-color: #414141;
  16:      line-height: 1.1em;
  17:      width: 720px;
  18:  }
Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

Posted by: Adron
Posted on: 10/25/2008 at 12:25 AM
Tags: , ,
Categories: How-To, Samples, and Such
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (0) | Post RSSRSS comment feed

Data Contracts in Windows Communication Foundation (WCF)

I've been going over data contracts for WCF lately and wanted to post a few specifics. One issue I ran into recently was odd, as it included an enumeration that needed to be included in part of a data contract. I had tagged the enumeration with the [DataContract] attribute but I was receiving an odd issue about the service disconnecting. The error message I was getting was something like this:

I had read, or thought via failed comprehension, that I could just tag an enumeration with [DataContract] as below.

   1:  [DataContract] 
   2:  public enum Priority 
   3:  { 
   4:      Low, 
   5:      Medium, 
   6:      High 
   7:  } 

As it turns out though, the [EnumMember] attribute needs added to the enumeration.

   1:  [DataContract] 
   2:  public enum Priority 
   3:  { 
   4:      [EnumMember] 
   5:      Low, 
   6:      [EnumMember] 
   7:      Medium, 
   8:      [EnumMember] 
   9:      High 
  10:  } 

After I added that, smooth sailing resumed. So don't just tag the enumeration, tag the members too. I'm also working on some other notes from my reintroduction to WCF (I've done a ton of work with it in the past) so stay tuned for that.

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

Posted by: Adron
Posted on: 10/24/2008 at 3:33 PM
Tags: , ,
Categories: How-To, Samples, and Such
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (2) | Post RSSRSS comment feed

Getting More From Word 2007

I have been using Word 2007 a lot lately writing up technical and how to documents for various projects I'm working on. In addition to that I've started looking at word for creating my blog entries. I did get word hooked up to publish blog entries against my BlogEngine.NET entries with the help of a blog post, "Publishing to BlogEngine from Word 2007" on RTUR.NET's Blog. I also found out where the default theme setting for Word 2007 via the "Setting the default to your liking" entry on The Microsoft Office Word Team's Blog. The one issue I have that I haven't found an answer to is how to change the default document that opens when you launch Word 2007.

So if you know how to change that default document I'd be keen to know how.

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

Posted by: Adron
Posted on: 10/23/2008 at 3:11 PM
Categories: How-To, Samples, and Such
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (0) | Post RSSRSS comment feed

Privates, If That Isn't a Summary, XKCD Lays it Out

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

Posted by: Adron
Posted on: 10/20/2008 at 9:57 PM
Tags:
Categories: Cartoons
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (0) | Post RSSRSS comment feed