Frozen Bytes

liquescent frozen bytes of code to manageable puddles

Podcasts Get Me Home After Disney World Hangover

Podcasts Get Me Home After Disney World HangoverThe day before we are to leave from the water park vacation we decided to take the kids to Walt Disney World Magic Kingdom for the day. We arrive on time as planned, kids watched the opening of the park act and race with everyone else to get signatures from their character. We hit Aladdin’s Magic Carpet Ride several times, Jungle Cruise, Swiss Family Robinson Tree House, and Splash Mountain 2-3 times with my son. After a decent lunch in the welcomed air conditioning the batteries recharged enough to hit Pooh 3D Show, Its a Small World, and Fast Pass Peter Pan ride. The family decided to head back to the hotel for a nap then come back after dinner to enjoy the park at night. What a great choice!

The kids and mommy had a good 2 hour nap while daddy chased down a wireless connection that I never caught but I did find a few draft beers along the way to cool my thirst and temper. I’ve never heard of a resorts wireless going down for 3 days straight! I finally had sometime to play and I could not get a connection to save my life! I digress. We hit the park by 6 PM and made our fast pass time for the Peter Pan ride! The kids loved it! Just as I remember it. We did the Peter Pan ride a few times but then the heavens opened up. Yes! The clouds rolled in fast and the rain followed quickly. We still had fun running around in the rain, jumping in puddles and riding Buzz Lightyear about 4 times. Then we raced the cars at the speedway in the rain! That was fun! The rain eventually subsided in time to watch the light show and the fireworks. We really enjoyed the fireworks! After closing down the park we took the ferryboat back to the parking lot ( kids really enjoyed all the lights ).

If you ask my son what his favorite part of his day at Disney was …

More Road Trip Podcast Mayhem

More Road Trip Podcast MayhemEarly morning road trip, starting at 3 AM, to enjoy a water park and Walt Disney World with the kids for a long weekend! We normally travel through the night. This time the goal was to try the early morning travel. The tough call is, does daddy actually go to sleep for a few hours or just stay up all night? This time I slept for two hours then started driving at 4 AM. We woke the kids up once the car was ready to go, of course they woke up but thankfully went back to sleep once on the interstate. Honestly I think I prefer this early morning travel versus the overnight. The kids did great, still drove 9 hours but the morning breakfast stop seemed to breakup the trip just enough. The ONLY bad part traveling at this time I do not get to enjoy as many pod-casts before our precious packages awaken.

Pod-casts:

Observations

I was disappointed to learn Project Silk did not review Knockout.js or Backbone.js before publishing guidance. I will state, the Project Silk team does acknowledge Knockout.js and Backbone.js. Appears to be the case of get something basic out, then evaluate other more advanced frameworks/libraries in a subsequent release. Since the publication the team has reviewed Knockout.js and Backbone.js and will hopefully be publishing a revision to include direction on both.

I really enjoyed the pod-cast from Herding Code with Derick Bailey on Backbone.js. I have not been able to really spend the time I’d like learning Backbone.js BUT after hearing the talk I have a NEW vigor to get on it. I learned alot from the talk especially a few places to learn so called ‘best practices’. There is NO question in my mind Derick Baily is definitely an expert in the Backbone.js world. Before the talk I thought of Backbone.js as a framework and/or MVC framework but after listening to Derick that is not accurate. Backbone.js is more of a flexible library. I highly recommend listening to Derick Baily talk about Backbone.js. His knowledge and passion for Backbone.js is quickly apparent.

Concerning the talk with Brad Wilson … The information and knowledge that oozes out of Brad Wilson is simply terrifying! I’m looking forward to seeing how far Brad can push xUnit 2.0 release.

I have yet to hear a bad talk with Glenn Block, this guys is top notch! DotNet Rocks fellas had a great conversation with Glenn Block regarding node.js support in Windows Azure. It was encouraging to hear Glenn Block stress Microsoft wants to make Azure a platform that supports several frameworks not just C# and ASP.NET. Windows Azure now supports JAVA, Ruby On Rails, PHP, Hadoop, and Node.js. If guys like Scott Gu, Glenn Block, and Scott Hanselman can continue to push Microsoft to REALLY collaborate and embrace the OSS community I think big things will continue. The more the mentality of buy it or we can write it better is quieted or lessoned from within MS and MORE embracing existing frameworks and supporting more than just MS stack the BETTER .NET stack will become! Hold on to your hats times are changing for the better.

References

ALT.NET Continuous Delivery Practices and .NET Teams

Attended my first ALT.NET meeting last night at Manuel’s Tavern. Learning about Low-Risk Software Releases: Continuous Delivery Practices and .NET Teams. It was great to meet and talk with other like minded folks, hear about war stories and other viewpoints. Overall it was a great experience; looking forward to the next meeting. For me this content could not come at a better point. I’m currently working on BuildInABox focusing on CI and CD as well as potentially rolling onto projects where these principles can be leveraged immediately.

Checkout:

Versant Object Database Webinar and Networking Event

Versant Object Database WebinarExtremely excited about the upcoming Versant Object Database Webinar and Networking Event in two weeks at my office in D.C.

In the webinar will we review the current landscape of data management solutions, such as, Hadoop, NoSQL and NewSQL, differentiate Versant’s database from the other databases, present benchmarks on performance, review customers case studies, and provide a demonstration of Versant’s NoSQL database in both Java and .Net.

References

Overnight Road Trip Round Two

Overnight Road Trip Round TwoOvernight road trip round two, the return was 9 hours, a bit faster than version one, Podcast Delight for Overnight Road Trips. Unfortunately I was not able to listen to as many pod-casts this round as I had second shift. As always really enjoyed This Developer’s Life.

Pod-casts:

Podcast Delight for Overnight Road Trips

Podcast Delight for Overnight Road TripsThis past week I did a 10 hour overnight road trip. To get through the driving my staple has become 64 oz Water, 20 oz Coke Zero, cup of ice, carrots, pizza flavored combos, and most importantly listening to my favorite pod-casts once the stowaways are fast asleep. I’ve found keeping my mind thinking, interested and engaged throughout the drive with pod-casts works better than drinking a bunch of caffeine. The vehicle is moving at a high rate of speed BUT packages are quiet except for the melodious sounds of technology talks on RavenDB, Hadoop on Azure, The Chuck Norris Framework and This Developer’s Life humorous episode on Dinosaurs.

Hadoop on Azure is definitely interesting.

Pod-casts:

Working From Home

Leverage MVCMailer from ASP.NET Web Forms Application Today at work there was a short discussion on working from home (WFH) regarding a blog Virtual Working Tips. There was several points made regarding trust, technology, security, personal choice, and perception. I decided to make a few quick opinionated comments on the subject.

I’ve been working remotely for six years. I agree it takes a tremendous amount of discipline on both ends of the spectrum but it takes the right career, role and project. First you have to be responsible, productive, leverage technology to bridge gaps, exhibit good communication and writing skills, and work extra hard to make connections with people. I’ve found I work longer and have more productive days WFH then I did when working from an office. The other end of the spectrum is being able to walk away from the office, close the door so to speak. This can be a big challenge and takes discipline too.

Let me clear something up quickly … Working from home is not a vacation or party!

Simple JQuery AJAX Wrapper

Here is a simple way to create a helper function to wrap an JQuery.ajax method using an options object to override settings. I also included a wrapper to setup a JQuery UI confirmation dialog box in the Common JQueryHelper namespace.

FrozenBytesCore.Common.JQueryHelper
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
// Namespaces
if (typeof FrozenBytesCore == "undefined" || !FrozenBytesCore) {
  window.FrozenBytesCore = { name: 'Frozen Bytes Core', version: '0.1.0.0' };
};

if (typeof FrozenBytesCore.Common == "undefined" || !FrozenBytesCore.Common) {
  FrozenBytesCore.Common = { name: 'Frozen Bytes Core Common', version: '0.1.0.0' };
};

(function($) {

  FrozenBytesCore.Common.JQueryHelper = {

      // Make a JQuery.ajax call to a web method defined in options.url
      //
      // Example:
      // var options = {async: false, url: 'someurl', data: {mydata: 'string'} };
      // var request = webMethod(options);
      //
      webMethod: function(customOptions) {
          var defaultOptions = { type: 'POST', async: true, cache: true, timeout: 1000, url: '../Services/CxJsonHandler.ashx', data: {} };
          var options = $.extend({}, defaultOptions, customOptions);

          var request = $.ajax({
              type: options.type,
              async: options.async,
              cache: options.cache,
              timeout: options.timeout,
              url: options.url,
              data: options.data,
              contentType: "application/json; charset=utf-8",
              dataType: "json"

          });

          request.fail(function(jqXHR, msg) {
              var err = $.parseJSON(jqXHR.responseText);
              alert("Error: " + err.Message);
          });

          return request;
      },

      customConfirm: function(dialogId, okFunc, cancelFunc, dialogTitle, dialogMessageTemplate) {
          $(dialogId).dialog({
              draggable: false,
              modal: true,
              autoOpen: false,
              resizable: false,
              autoOpen: false,
              width: 300,
              title: dialogTitle || 'Confirm',
              buttons: {
                  OK: function() {
                      if (typeof (okFunc) == 'function') { setTimeout(okFunc, 50); }
                      $(this).dialog("close");
                  },
                  Cancel: function() {
                      if (typeof (cancelFunc) == 'function') { setTimeout(cancelFunc, 50); }
                      $(this).dialog("close");
                  }
              }
          });

          // Set the HTML
          $(dialogId).html(dialogMessageTemplate);
      }

  }    // End FrozenBytesCore.Common.JQueryHelper namespace

})(jQuery);

Here is a quick example of how you might levarge the wrapper. Given a web service, CxServices.asmx calling GetMessages web method passing in a psUserId parameter get back a array of JxMessage JSON objects.

Example Caller
1
2
3
4
5
6
7
8
var options =
{ async: false, url: '../Services/CxServices.asmx/GetMessages', data: "{'psUserId': '" + userId + "'}" };

FrozenBytesCore.Common.JQueryHelper.webMethod(options).then(function(data) {
  var messages = $.parseJSON(data.d);
  alert(messages);
  // ... do  logic
}
CxServices Web Service #
1
2
3
4
5
6
7
8
9
10
[WebMethod(true)]
public string GetMessages(string psUserId)
{
  List<JxMessage> messages = new List<JxMessage>();

  // .... do some logic like get the message list

  // Send it back as JSON
  return CxJSONHelper.Serialize(messages);
}

Why I Blog - Why Twitter

Leverage MVCMailer from ASP.NET Web Forms ApplicationA few days ago I was caught off guard when a peer asked why I blog. My initial response was learning. However, after stewing on the question for a day I discovered there is much more to answering Why I blog. I have alot of the same reasons as the next person, like T. Henrikesen - 10 Reasons Why I Blog 9/10.

The main reason is personal and professional learning with a goal in mind to work towards being a software craftsman, create eminence and build MY brand. I enjoy, crave learning new things, always have; at the same time I get just as much enjoyment when I’m able to share that knowledge to help peers.

Blogging provides an archive of my interests, involvement, work, and learning. In addition, it is important to read and comment on other blogs. I constantly find myself learning from reading blogs interesting to me. I do find reading blogs trigger tweets and ideas for my own blogs. Composing blogs and reading blogs can provide data for reflection on many different levels.

Blogging is a challenge and can initially be a comfort zone menace. In the end I’ve found blogging provides the challenge I need to keep my knowledge cravings in check.

Twitter is the vehicle I leverage to capture trends, links, and news relative to my professional and personal interests. There is an immense amount of learning opportunity to be harvested by following the experts of your profession. In fact, Twitter harvesting is a MUST. Twitter fuels my addiction to learn and attempt to become a software craftsman.

Why I Blog

  • Personal and Professional Learning
  • Craftsmanship
  • Enjoyment
  • Eminence and Brand
  • Knowledge Sharing
  • Archive
  • Networking
  • Challenge

Why Twitter

  • Professional Learning
  • Networking
  • Technology Trends
  • News
  • Links

References

Octopus First Impressions

Octopus First ImpressionsCouple nights ago installed Octopus! It made me want to jump out of a perfectly good airplane! My initial intention was to blog a getting started but Bob Yexley beat me to it with Octopus Deploy - My Favorite New Toy. Instead, I will share a few thoughts, first impressions and some suggestions. But first, restating the problem is important.

The Problem

I probably don’t really need to spend too much time here, do I? I mean, xcopy (with manual configuration, etc…yuck) is far too brittle and error-prone, MSDeploy/WebDeploy is just too much friction, third party installers and Wix are too much work (seriously, who has time for that?), and in enterprise/corporate environments, who really has the option of handling deployments through Visual Studio? What other options are there?

Well now, there’s Octopus.

If the problem is not enough take a gander at Why Octopus from the creator, Paul Stovell. Before going to much further, please note I still need to checkout the ChuckNorris Dropkick project from Dru Sellers.

First Impressions

You MUST install Octopus Deployment! How can the community help improve and move this framework along faster?!?

  • Installation is a snap!
  • Created First Deployment Quickly
  • No out of box IIS configuration
  • Deployed first Demo.NuGet MVC 3 application in minutes
  • Command line tooling with Octopus Deploy
  • TeamCity Integration

After I setup Octopus and deployed my first ASP.NET MVC 3 application in minutes my mind started racing. How great would it be to have the ability to create a deployment or kick off a deployment from TeamCity. So, does this integration exist?