free geoip February 2007 - Jayson's Blog -
A conduit to the voices inside my head.

February 2007 - Jayson's Blog

  • Where I Used To Work -- MS Charlotte

    TLC forwarded this article about Microsoft Charlotte to me earlier's an interesting read, and I think a lot of folks don't realize that A) Charlotte has an MS hub, B) the MS hub here is huge, and C) is very instrumental to MS's enterprise support offerings.  Of course when I worked there, I was the equivalent of a phone janitor (tier 2 developer support...somewhat technical, but nothing like what is mentioned in the article) but the environment itself was electrifying.

    One day I'll get back in over there.  One day.  Regardless, read the article.  While you're at it, check out my previous blurb about MS Charlotte over here.

  • Hang Up The Phone And Drive

    I saw the funniest thing driving home today.  I pulled up behind a soccer-mom-mobile (and SUV for anyone who has no idea what that means) which had a fairly large bumper sticker with the following text:

    "Drive now, talk later."

    The driver was, of course, yakking away on the phone the entire time I was behind him.  I don't care if you drive and talk, but if you're going to advertise something at the very least have enough dignity to stand by your convictions.

  • First Week At The New Job -- Lovin' It

    So I've been at the new gig for a week now, and so far everything is going beautifully.  Even though the company is headquartered here in Charlotte (500+ employees worldwide), the office here is small...maybe 30 or so folks, evenly split between Financial/HR and geeks (infrastructure, coders, and analysts) along with CxO offices.  That makes for a pretty quiet workplace, which is a huge plus.

    The development environment itself is also quite nice...I was bestowed a laptop on day 1, a fairly tricked out Toshiba Tecra which docks to a spiffy Dell 2007wfp display.  Not as great as dual monitors, but definitely better than a lot of other environments I've worked in.  I can use the laptop panel as a small secondary monitor if need be which works out quite nicely.  I was a little dismayed at first when I discovered they keep the laptops locked down (no admin rights at all, which means no installing software...though I did manage to get Firefox installed since you can run it from any directory on your machine), only to realize the system they have in place more than makes up for this. 

    The development environment is a sandboxed network (as it should be) that we remote/tunnel into from our desktops...the machines are hosted out in Seattle HQ and have all the niceties of a normal network such as SAN backends, fast backbones, etc since they are all on the same rack (both workstations AND servers).  This means we can trash it to our heart's content...if something goes wrong we aren't down longer than it takes for the infrastructure staff to do a restore.  Need more RAM?  No tech coming by your desk, installed directly in the rack.  Need a new development server?  Done.  Accidentally format your machine?  No worries.  It's all centrally managed out of sight somewhere.  Latency could be a bit of an issue at times, but the flexibility of this setup more than outweighs any of the drawbacks.

    So far I'm in maintenance mode...that's the norm when ramping folks up.  I also heard my teammate here in town utter the words I love to hear: "Don't worry about breaking your neck getting the UI perfect, there is an entire team out West who's entire job it is to clean up the CSS, add master page type stuff, etc."  Music to my ears.  That let's us focus more on the task at hand, and earn our keep doing the nuts and bolts type stuff.

    A Seattle trip is looming with my teammate Chris, probably towards the end of March but no firm dates yet.  Hopefully I'll be able to catch up with some blogging buddies when I get out there.  If you're in the Seattle area and I don't know who you are, drop me a line and we'll get something planned up.

    So far, nice and dreamy.  Pics to come once I get my workspace decked out and cozy.

  • Using Anonymous Methods For Control.Invoke/Control.BeginInvoke

    One commonality shared by most Windows Forms applications is the need for a responsive UI; this means implementing some sort of threading scheme so that processes can run on background threads so as to not interrupt the user's workflow while using the various controls placed on the UI itself.  The caveat to this is that the CLR does not allow cross threading updates to classes that inherit from System.Windows.Forms.Control, i.e. the control cannot be updated from a thread that wasn't responsible for the creation of the control.  There is a pattern exposed by the BCL that enables this kind of programming:  You need to declare a delegate which will act as the pointer to the method to update the control, then in your main code block check for Control.InvokeRequired, and finally call Control.BeginInvoke passing in your delegate as the argument.

    The end result ends up looking something like this:


    public class Foo : Form { public static void Main() { Application.Run(new Foo()); } public Foo() { InitializeComponent(); } private delegate void ConsoleWriterDelegate(); private void DoSomeWork() { if (this.InvokeRequired) { this.BeginInvoke(new ConsoleWriterDelegate(WriteToConsole)); } } private void WriteToConsole() { Console.WriteLine("Writing to console via explicit delegate "); } }

    In this case, we've really just written a delegate simply for the sake of creating one.  You'll also notice that we aren't passing any parameters to the WriteToConsole method.  This is a simple programming idiom made more complicated than it actually should be.  Fortunately there's a delegate exposed by the BCL just for cases like this, System.Windows.Forms.MethodInvoker.  Couple this delegate with anonymous methods in C# 2.0 and we can make the DoSomeWork method from above much simpler:


    private void DoSomeWork() { if (this.InvokeRequired) { this.BeginInvoke(new MethodInvoker(delegate() { Console.WriteLine("Writing to console via anonymous method. "); })); } }

    For simple cross thread calls that need to interact with controls, this pattern is much simpler to implement and we get the added performance gains of using MethodInvoker.  This code idiom will also work with Control.Invoke.

  • Recent Band Discovery -- The Cinematics

    It's hard to sift through the crapola that is the music industry as of late...95% of the stuff that's out now is pure junk IMO.  And who has time to go to the music store these days?  Sometimes I wish I was a DJ so I could get paid to listen to music.  Regardless, I've been trying to branch out some lately; TLC and I recently discovered a late night show on Fuse TV that caters more to indie rock and whatnot...The Dive.  It comes on reeeeaaaallly late though.  Speaking of which...

    It's unreal how hard it is to find music channels that actually play music videos any more.  Even fuse has started showing movies and other non-music related BS.

    Regardless, a recent discovery is a Scottish troop: The Cinematics (MySpace profile with sample songs here).  Even better is that they are coming to Charlotte on the 22nd of March...very much looking forward to it.

  • Obligatory Grammy Post -- Chili Peppers!

    I don't care about award season.  I care even less about the Grammys, eschewing Maynard Keenan's opinion of the ceremony:

    How about the Grammy? You received one, but didn't attend the ceremony....

    I think the Grammys are nothing more than some gigantic promotional machine for the music industry. They cater to a low intellect and they feed the masses. They don't honor the arts or the artist for what he created. It's the music business celebrating itself. That's basically what it's all about.

    That all being said, it was extremely gratifying to see my all time favorite band (of bands still playing together and making records), The Red Hot Chili Peppers win 3 Grammy's including rock album of the year.  I first got into them back when Mother's Milk came out, and was instantly hooked.  As a former bass player, Flea is one of my all time idols, and is arguably the best rock bassist around.  But the thing that strikes me most about these guys is perseverance...25 years of making music and still going strong.  I've given them an 18 year following of my own.

  • New Community Server Licensing Document Released

    [update] The community is jumping in over here and the reaction is about what I expected. The MVPs are weighing in with their opinions on a seperate thread as is very much worth mentioning that Rob Howard and Co are actively listening, so feel free to chime in if you have an opinion/suggestion/etc. [/update]

    Earlier today, Rob Howard released the new licensing scheme (direct link [.pdf]) for Community Server 2007.  I won't venture into too much detail until that document is finalized (which it may already be), but I'm concerned over the limitations set forth for the personal edition: The blog/gallery count is too low, but my main concern is in the number of mirrored feeds allowed, plus if you follow my guidelines for setting up a mirrored content section you burn one of your available blogs.  You can purchase 50 pack blog/gallery/mirror licenses at 100USD each which is fairly reasonable, but I feel each tier should be shifted up one level.  I'm curious to see what the community reaction will be. 

    Regardless, CS 2007 is shaping up to be a killer release from some of the internal betas that I've seen.

  • ScottGu Has A Power Packed Outline Of Orcas Up

    Scott Guthrie continues to show us why he's the man with the plan over at Microsoft with a huge post on some features new to Orcas:

    One of the highlights of my recent trip to Europe was getting the chance to publicly show off some of the new features in our next release of Visual Studio and the .NET Framework (codename: "Orcas") for the first time publicly. 

    You can download the deck I presented here.  You can also watch a version of the Belgium talk that Tom posted on the web here (note: another version taken from my WebDD talk in the UK will also be posted shortly).

    "Orcas" is going to be a pretty exciting release, and contains a ton of great functionality that I think you will really love.  I'll be drilling down into more details of it over the next few months in many more blog posts.  Below are a few screen-shots from demos I showed over the weekend in my talks in Europe.  Note that they are just a few of the features - there are a lot more features I have yet to talk about. :-)

    He also mentions that all of the features mentioned in his post will be available in the February CTP of Orcas.  My favorite (non eye candy) new feature will be the ability to target multiple versions of the .Net framework...the new CSS related stuff is extremely cool as well.  As much as folks like to bitch about some of the software that MS produces, Visual Studio has been (and continues to be) one of their best products.  Does anyone remember Visual InterDev?  Wow, we've come a long way since then.

  • Linked To By Wiki -- Note To Self, Write Better Articles

    I recently noticed a reasonable spike in traffic around here a few days ago; turns out an entry of mine got linked to by a Wiki article (no, I didn't make the link from Wiki myself ;-)).  The point of this entry isn't to garner kudos or pat myself on the back (of course the ego points do make me feel all warm and fuzzy inside).  The point is that the article that was linked to mentions in passing the point: A breaking change in the .Net framework from 1.x to 2.0.  If you were to go strictly by the title of my post, you wouldn't even know it was .Net related, much less even tech in the article is framed around a reference to a regression in Community Server introduced by the breaking change.  Hardly a professional explanation of the issue at hand.

    I definitely don't consider myself even close to a professional blogger, not even an amateur most of the time.  It's times like these where I wish I could go back and rewrite some of my old "casual" stuff to make it more tidy around the edges in the rare chance it gets a glancing 15 seconds.  Ok do I really care?  Not really...but it's damn tough to make writing that's both A) interesting and captivating as well as B) professional and polished.  Atwood does a fantastic job...virtually all of his posts are knock outs in most areas, i.e. I find them interesting, and so does my girlfriend (who can spell IT and that's about it)...he captivates a variety of audiences.

    That all being said, I do love the open-endedness of the internet.  And I need to remind me not to take myself too seriously.

  • New Year, New Job, New Beginnings

    While I've known about this for a couple of weeks now, the proverbial ink dried on the contract earlier today so I'm able to officially say that I have scored an amazing position with a local marketing firm: Hawkeye | Cohesion.  I will, of course, be doing mainly .Net development...what's icing on the cake is that this isn't a traditional IT job; the products developed for clients are outward facing, and run the gamut of application types.  It'll be a refreshing change from IT as this company is first and foremost a creative firm and thus promote and encourage that type of thinking.  Huge plus.

    The company itself is based out of Seattle, but has a group of about 50 folks here in Charlotte, with the intention being to ramp up a larger technical team locally which is something I'll be involved in as well.  The office itself is literally dripping with ductwork, fantastic views of uptown Charlotte, a game room...a comfortable working environment is one of the top items on my list.  They'll do nicely.

    This is also a fulltime salaried position...I've been doing the contract/consulting gig virtually my entire career; it'll be nice to settle down, especially with a company like this.  So anywho, I (officially) start on Monday and am beyond excited about this opportunity.  I will of course be posting more details as I get settled in.  Yippee!

1 2 Next >

Copyright © ::
External Content © :: Respective Authors

Terms of Service/Privacy Policy