Monday, December 24, 2007

Fred Meyer's To The Rescue

In my quest to find a Nintendo Wii for Christmas turned out to not be an easy one. A week before Christmas I decided to get a Wii, after calling around and finding out all different stories about people camping outside of Best Buy, Target, Toys-R-Us, and the like. I decided to try Fred Meyer since we were in the store shopping for grand parents... so I walked over to the electronics section and asked them if they had any Wii's. As expected they said they did not have any, however the guy behind the counter said we get shipments in on Wednesdays and Fridays around 6am and the store opens at 7am so get in line early. My eyes glowed as the day was Sunday... I had three whole days before I could attempt at getting my own... so I went back to work on Monday and mid-afternoon a co-worker of mine said he just picked up a Wii at E-B Games about 10min ago and even had the Wii in his hands to prove it. Since E-B Games is 5 blocks away I decided to lock my machine and run... After I got to the store I was next in line and asked the worker behind the counter for a Wii... he said to me... "Sorry Sir this is the last one". So I said with a smirk... "Thank you"... and turned around and went back to the office. Wednesday soon came and I made sure I was going to be at the head of the line, so I arrived at 5:30am and was 2nd in line... I waited until 7am. When 7am came a Fred Meyer employee showed up to open the doors and said to all 20 people in line that they did not get the shipment in and are very sorry for the inconvenience. Cold and hungry... I turned around and went straight to work, I figured I would give it one more shot and go back on Friday for one last chance before Christmas... otherwise I would wait until after Christmas. Friday came and I arrived at 5am this time and I was first in line... then 7am rolled around and the same employee came to open the doors for a line of 30 people or more... this time he said... "Sorry folks we only received 14 Wii Consoles this morning so I can only accept the first 14 people in line". Yay!!!! :)
I walked up to the register and paid for my Wii console... merry Christmas to me!

For those looking for so called impossible gifts to find around the holidays in the future... don't forget about Fred Meyers.

Tuesday, December 18, 2007

Watch Your Memory Spaces when Implementing C++/CLI

So for the past 4-5 days I've been trying to figure out why my CLI will not run in one of my CPP files. I figured since it was just a POD(Plain Old DataType) it should behave as expected... not the case... basically the POD is being allocated in seperate memory space than the applications memory space and thus being joined up using the semantics of what's known as a SharedPtr (shared pointer) In my quest to beat or figure out the compiler I was not able to get CLI to play nice inside of a shared pointer class. I tried every which way under the sun that I could possible think of to get it to work... IJW (/clr, /clr:pure, /clr:safe) I even tried using the old and new style gcroot and auto_gcroot wrappers around System::Runtime::InteropServices:Marshal class... still no dice. Every time I went to call a member on the managed type I got a memory corruption runtime error. I searched around and no one I could find had a solid answer so the only thing left to do was pull the logic in to the program memory space and then once the managed work was done I could then Marshal the data to the native world and pass it in the back door of the seperate memory space via a custom accessor I created and voila... it worked! I would love to show some of the code for how I did this but unfortunately it would be against company policy. However, I think the key take away here is that when you're trying to expose functionality that you've invested in years ago to a now modern managed world of applications you really need to have a sense of both worlds as you write your managed functionality. I on the other hand am learning native as I work with it so there is always little surprises popping up as I code. : )

-Develop with Passion
(Jean-Paul S. Boodhoo)

Monday, December 17, 2007

Moving back to Web Development in ASP.NET

So it's been a little while since I posted about the progress I've been making at WAMU.
Things have been going really well, I moved the entire C++ code base over to 2005 which was a lot of fun... "Not". And since the rollover I've been adding perf improvements and refactoring some sections of the code base in CLI, throughout the process I've learned more about pointers, STL, containers, memory space, loadlibrary, getprocess, etc... more than I ever wanted to know. ;)
However I've learned what it takes to write native code and how much I appreciate managed code. The company has been going through a rough patch with having to layoff some people which have caused some of our developer contractors to leave there positions. So I'm back on the internal intranet site for now as the lead. I will most likely re-structure all the work that has been done in a way that makes more since for new people that will be coming on board next year. The intranet site is not that complex which will make it easy for me to restructure it and incorporate a build process using Nant of course as well as adding some acceptance unit test with MBUnit. If there is time I will try to setup CCNet on a machine just for me so that I can monitor stuff that other contractors are doing. Whew! I have a lot of work ahead of me and not much time to do it in... so wish me luck as I enter back in to the world of ASP.NET/AJAX and best of all novice code. ;)

Thursday, December 6, 2007

New VS.NET Settings!!!!

VS.NET 2005 Settings provided by Scott Hanselman...
Download these awesome settings here!
-Thanks Scott

Monday, November 19, 2007

WPF For The Holidays

Well it's almost Thanksgiving... and as I sit and think about what I was doing over the last holiday break it hits me. I was working on building a Drill Team Competition Judging Application in Windows Presentation Foundation... This time one year ago it was in beta, and I can honestly say that the technology and my knowledge on it has come a long way. I've since finished the application above which now needs to be re factored into MVP. However, I've turned my attention to a new application also for Drill Teams... but more of a Team Management software package than anything else. So for the last few weeks I've had a craving to work on WPF again... much like the craving I get for turkey during the turkey holiday. ; ) So I went poking around Google last night in search of new WPF videos or training to purchase and found some free videos that has already began to change the way I think about all the cool features in WPF. For those of you looking to learn about things like Data binding, Styles, Templates, Documents, 3D, Media, etc. Then you need to do what I'm planning on doing this holiday when I'm sitting around pretending to visit with my family. WPF BootCamp, it's a series of videos that start from the basics and works it's way up to advanced topics. And what's even better is the presenters... folks like Bea Costa (Data binding Genius), Kevin Moore, Dr. Sneath, Celso Gomes(Blend God) and more. Each video is a good length about 45min minimum so the talks are very good an in depth. I haven't seen them all but I certainly will watch each one at least 5 times each to make sure I get the material. ;)

-Enjoy the Boot Camp-

Saturday, November 10, 2007

Code Camp pushed back

It kinda sucks, but the code camp got pushed back and to January and I'm honestly really bummed about it. However I am going to be doing a few things in the mean time to fill the void.

1) Nerd Dinner
2) "Free" in person MSDN event
3) And possibly buy a few of the new tutorials at innerworkings.

Thursday, October 25, 2007

My First Ever Code Camp!!!

Finally a code camp in the seattle area... usually they hold these in places I can't visit like Canada, Oregon, California, etc. Now finally there will be a code camp at the old Nintendo building now Digipen in Redmond. It will surely be a lot of fun and I hope to learn a great deal... especially with the following break out sessions.


Using SubSonic

There are a lot of ActiveRecord implementations out there. Come check out SubSonic a lightweight offering on CodePlex.Track: ASP.NETSpeaker: Chris Kinsman
Castle - The DVD Extras

Many people have already heard of the Castle Project [] and some of the major subcomponents: Monorail, ActiveRecord, Windsor. Whether you use these things or not, Castle has build up a compelling array of supporting components and libraries that are relatively easy to use from your application - even if you're not using the rest of Castle: Dynamic Proxy, an NVelocity fork, Scheduler, FlexBridge, and other things not directly associated with Castle. In addition, a lot of the Code is so well written, you just feel smarter after having read it. Let's take a look at some of these things, how you can leverage them, and what the code looks like.Track: ASP.NETSpeaker: Chris Bilson

Dependency Injection with ObjectBuilder 2.0

What is dependency injection? When should I use it (and when not)? This talk will answer those questions and more, plus show off some of the design changes made to ObjectBuilder 2.0 (and sample containers that drove and validated the design).Track: Core .NETSpeaker: Brad Wilson

Rethinking Unit Testing:

The release of NUnit 2.0 was 5 years ago. This version of NUnit was more than just a warmed over port of other frameworks, pioneering the use of aspects to describe tests in .NET. Unit testing began to really catch on in .NET. Five years later, most developers are doing unit testing, and many of them cut their teeth on NUnit. With many unit tests under their belt, Jim Newkirk (the primary NUnit 2.0 author) and Brad Wilson -- with feedback from many friends and co-workers -- have released a new unit testing framework for .NET, In this talk, Brad will discuss the history of, including their motivations and decisions, as well as show the new framework both for test writers and for those who wish to extend the framework for their own uses.Track: Agile PracticesSpeaker: Brad Wilson

Pex – Automated White Box Unit Testing

Parameterized unit testing is becoming a mainstream feature of most unit test frameworks; MbUnit RowTest (and more), VSTS data tests, Theories, etc... Unfortunately, it is still the responsibility of the developer to figure out relevant parameter values to exercise the code. With Pex, this is no longer true. Pex is a unit test framework addin that can generate relevant parameter values for parameterized unit tests. Pex uses an automated white box analysis (i.e. it monitors the code execution at runtime) to systematically explore every branches in the code. In this talk, Peli will give an overview of the technology behind Pex (with juicy low-level .NET profiling goodness), then quickly jump to exiting live demos.Track: Core .NETSpeaker: Peli
Windows Live DevelopmentIn this session, we'll take a look at the Windows Live development platform, which enables 3rd party applications to integrate with Live ID, Contacts, Spaces, Messenger, Alerts, Silverlight Streaming, Virtual Earth, and Expo.Track: ASP.NETSpeaker: Ed Kaim

Reflector and Friends: An overview of Lutz Roeder's .Net Reflector and its add-ins

Do you use Reflector on a daily basis? How about it's addins? Ever want to write your own addin? If so, you will probably find this session of some use and maybe even have something to add. This will be an introduction and overview of Lutz Roeder's .Net Reflector tool and some of the addins the community has developed for it along with a look at developing additional addins of your own. There are two sections to this talk: an introduction and overview of the tools (length depends on the experience of the attendees) and a look at developing Reflector addins or extending existing ones.Track: Core .NETSpeaker: Jason Haley

Black Belt DSA, building Duplex Agents

The Disconnected Service Agent in the Smart Client Software Factory allows you to queue up web service calls to a remote server when disconnected. These calls are played back once the connection returns. This is great for simple message exchange patterns that instantly return a response. However, it does not help you in the case of a long-running operation in which the response is to be returned out-of-band. Come to this session and see how we can tweak the DSA to allow it receive an asynchronous response. We'll utilize a WCF Duplex channel to provide an agent that will make a call and go about it's merry way until it receives a call back from the server. This functionality is beneficial beyond offline scenarios, I'll show you how you can also use this technique to faciliate exchange patterns with multiple responses. For example requesting a large result set of data that is returned in a chunked fashion over multiple successive calls. If you are develeoping with SCSF / CAB, don't miss this session.Track: WCF and WFSpeaker: Glenn Block

Session state injection your way with WCSF

The StateValue mechanism in Web Client Software Factory provides a nice clean way of injecting values to and from ASP.NET's session state. One of it's big advantages is it provides for testability, allowing the values to be substituted in a unit test. Another big advantage is that it allows a declarative way for values from ASP.NET Session's state to be plugged in. But what happens if you aren't relying on ASP.NET Session and have a custom or third-party mechanism? Are you "up the creek without a paddle"? Actually no. Come to this session and I'll show you to "Have it your way" and make our Session State strategy bow to submission.Track: ASP.NETSpeaker: Glenn Block

Data Enhancements in Visual Studio 2008

Visual Studio 2008 offers a number of features that make it easier to build both 2-tier and n-tier data applications. This session will cover the following: • Using the new TableAdapterManager to manage updating of related table. No more having to write the code make sure child rows are deleted before parent rows. Now, it’s automatic. • Using ADO.NET Synchronization Services to maintain a local copy of data that doesn’t change often, such as lookup tables, and then synching that data with the server version. • Automatically separate DataSet code from TableAdapter code. Today, you must do this by hand if you want to use the DataSet Designer and build an n-tier application. Or you can have VS 2008 do it for you. • LINQ to SQL classes and the Object Relational Designer. The LINQ to SQL classes provide a way to map a database model to an object model. You can write the code yourself, or you can use the Object Relation Designer and drag and drop tables and stored procedures from the Server Explorer. Track: Core .NETSpeaker: Robert Green

Windows Application Enhancements in Visual Studio 2008

Visual Studio 2008 includes some cool and exciting new features for building Windows client applications. In this session, we will explore two of them: • Client Application Services provide a way for you to add remote login, roles and profiles to client applications. Today, you can log into a Web site such as Amazon and the Web site knows who you are and what your preferences are. They are stored on the server and you are who you are regardless of what computer you use. Client application services gives you the ability to add this same functionality to a Windows application. You will write a service to authenticate users and to determine what roles they have. You can then call that service from any client. You can also write a service to manage settings. So you can store user settings on the server rather than only locally. • Windows Forms and Windows Presentation Foundation Interoperability. WPF is the revolution in user interface we have all been waiting for. Over time, it will increasingly be the way you build client applications. In the meantime, what do you do with all your Windows Forms and user controls? You will want to use them in your WPF applications. And what if you build a neat WPF control? You will want to use it in your Windows Form applications. With Visual Studio 2008, you can and we’ll see how. Track: Core .NETSpeaker: Robert Green

An Introduction to Windows Communication Foundation

This session will provide an introduction to Windows Communication Foundation. It will answer a number of questions such as: What is WCF? Why was it invented? How does it compare to Web services or .NET Remoting? How is it better than those? What is a service? How do I create one? How do I host one? How do I call one from my applications? What do I need to do to make sure clients and services can communicate? Once we answer these types of questions, you will be able to start creating your own WCF services and have a much better understanding of how to work with this promising new technology. Track: WCF and WFSpeaker: Robert Green

For more info head over to the site.

Seya There!!!

Tuesday, October 23, 2007

Modifiability: Or is there Design in Agility

This is a question that often comes up in Software Engineering. As I follow the blogs and discussion I often run into some wonderful information... and sometimes it's life changing. I happen to catch the following video which I encourage all developers to watch which is narrated by none other than Martin Fowler.
The discussion covers quite a few aspects of software design including things like how to make design decisions, TDD (Test Driven Development), BDD (Behavior Driven Development), encapsulation, and more. The panelists for the discussion are so very gifted and talented at what they do, they are all brilliant in there own way and conveniently enough work at thoughtworks.

Rather than go into each one of these guys web site... I'd rather just point you to InfoQ
which is where there web sites, articles, and videos can be found. If you can... check out each one of them, they all cover so many topics and you will certainly learn a lot. I have... ; )

Saturday, September 15, 2007

"Make It Right" Software

For those of you that know I'm buying my first home soon(Prescott) also know that I'm going to be there during the build to make sure all the necessary additions are made the way they are supposed to be. For the past several months I've been watching Discovery Homes new show... Holmes on Homes Mike Holmes is my definition of a world leader in pure and honest craftsmanship. His approach to building/renovating homes is second to none... he has a clear vision to all projects and fully supports learning and implementing new concepts to make outstanding finished products. I like his approach so much I've decided to use that same approach to building software... when Mike has a problem with implementing the right kind of solution such as removing asbestos... he calls in the pro's and makes sure it gets done right. This same principle can be applied to software development... whether it's security, exception handling, validation, or just pure design its very feasible to look around at what others are doing to help ease the pain in implementing these kinds of important decisions that every developer faces. Speaking from experience... this approach works, you can implement such things as Microsoft application blocks, Design Patterns such as MVP (Model-View-Presenter) to help with certain areas of each application build or re-build. My approach to building software or re-factoring software will always be to "Make It Right" and "Above Code" which can be translated to above standards. This will insure that the software will run and last a long time... the same will be true for my first home.

-Thanks Mike

Thursday, September 13, 2007

"The Meeting"

Today I reached a milestone in my life where I heard everything I had been working so hard to hear. "Cameron... we need you to be apart of our team and we're prepared to make you happy to do so." Today I got promoted to develop on the C++ team, thanks to all the hard work and research I did on C++/CLI integration with native C++ I was able to bridge the gap between native and managed code and leverage both in a .NET web application. Anyway they want me to do more of this, especially since I was able to completely erase 6 months of COM work in just a few short weeks of C++/CLI... This promotion is leading to a lot of great opportunities and experience in the financial industry and with the C++ language. Knowing that I'm only 27 and earning 95k annually is a great feeling... I thank god and my family (Wife... Rachel & Daughter... Katheryn)for supporting me through all the extra time I put in on the weekends and the late nights so that I can learn. Learning is the best thing anyone can do in anything that they do, and I will never stop learning. ; )

Friday, August 17, 2007

Developing software in the financial industry

The new job is going great only 4 weeks in and already so much has happened. My first task was to migrate a VS2003 C# Windows application with 3rd party charting capability to VS2005 C# 2.0. That took about a week seeing as how the application wasn't very big... and since I used the MVP (Model View Presenter (Supervising Controller)) Design pattern the data was flowing very well. Then came the infamous request from my boss that most developers never want to face, but will most likely face at one time or another in there career... "Can you port that windows application in to a web application?" Luckily my use of the MVP Design pattern helped me to confidently respond "Yep! No problem..." So week two I began the journey of encapsulating the majority of the windows application logic in to ASP.NET 2.0 Web Components. These components would ultimately be used in the departments intranet site... This was looking to be a smooth transition until I got to the new major dependency of the application which was none other than a C++ COM object. Oh and did I mention the person that created the C++ code and COM object are no longer working for the company. :) So what's an experience C# developer to do... what any experience developer would do... research. So the idea is to integrate legacy code in to my modern .NET code, otherwise known as Interoperability. So I looked at my options and it turns out there is a managed C++ language known as C++/CLI and Microsoft has done a significant amount of work to not only aid in Interoperability challenges of COM, but to have the best of both worlds with performance of native(UnManaged) code and Managed code. Week three I read as much as I could on C++/CLI for C# developers by Dean Willis... a great reference to help any .NET developer come up to speed on writing C++, and since I'm new to the language it was even more of a hurdle, so I got a few native C++ books as reference as well. Overall, the main thing I needed to understand was interop between native/managed code. so by the end of
week four and the entire weekend I was able to write my own C++/CLI wrapper around native C++ API's. Awesome stuff, after a while of writing managed C++ begins to feel a lot like C#... so I began to feel right at home... I'm happy to report that I've replaced the COM object which took the guy who wrote it 3 months development time. It took me about a week and half. :) My boss was so impressed that he's considering moving me up a step to work on a C++ team. I've only been writing C++ for about three weeks time... thank god for Microsoft's work on C++/CLI.

Long story short... if you have any interoperability to do with C++ into managed code, seriously consider C++/CLI... there are a lot of options to help with seamlessly integrating with native code. Oh... and on a side note, no one on the C++ team including my boss even knew about C++/CLI so when I told them about the interop story on the white board they literally where stunned, and I of course looked very good. : )

Thursday, July 5, 2007

My New Developer Job!

Alright... taking a break from the home automation projects I was able to focus on job interviews
much like the picture above. Well... maybe not exactly like the picture above, but the job I did land is similar. I'm now working for a well known banking company that goes by the name "Washington Mutual"... Scott Hanselman eat your heart out. This is going to be a great move,
I'll get to embark on the world of JAVA and C++ and Oracle 10i on the back end... I'll be sure to give updates as I go along, my start date is 7/16/07!!

Sunday, June 3, 2007

Project Morning Weather Channel

The project has been completed for about a week now... I'm still editing the videos and will post them soon. For the time being I thought I would at least discuss the products used in the videos in a little more detail. If you have not read any of the previous post then "shame on you"... and if you have... "thank you". This project surfaced due to my daily struggle of waking up, getting to the living room, turning the t.v. on, and channel surfing to the weather channel to check the daily weather with out waking up my 5 year old daughter or lovely wife. As if this weren't enough challenges I have to keep a 1 1/2 year old yapping Yorkie and 9 year old tuxedo cat quiet as well... as you can probably imagine it's a daunting task... so I started looking for a solution. I need a way to automatically turn the t.v. on, navigate to the weather channel and mute the volume prior to my waking up in the morning. Enter the solution... so I will be using an old school 32inch Zenith TV(Man I can't wait until I get my house so I can upgrade to plasma) with a comcast DVR reciever, then I will use a USB IRTrans transmitter along with packaged web server which is controlled through a custom .NET application.
At first I implement a console application for simplicity... then I factor out the code into a windows service for a little bit of polish. The videos should shed more light on the implementation and I certainly had a lot of fun doing them. :)

Thursday, May 24, 2007

Home Automation Project Series

Okay, this is sort of an introductory post of the home automation project series that I will be documenting on video. I'm primarily doing this for a couple of reasons... one... for anyone who is interested in home automation projects along the same lines as mine and also for myself so that I may have something to reference back to years from now. :)

The following is the current outline:

1) Automate morning television set to weather channel and muted volume
Note: This will be done in the tiny two bedroom apartment (I'll explain the project on the video)
* Technologies (Infrared Transmitter, USB Interface, .NET SDK/API, Custom C# Windows Service)

2) Automate lights and shades to that of the previous post
Note: This will be done in my new home so I will have a much bigger canvas(Hopefully (yn))
* Technologies (X10,Z-Wave or CM11A, Parallel,Serial or USB, .NET SDK/API, Custom C# Windows Service)

3) Install touch screen monitors in a couple of hallways and home office wall, then test with either windows ce or window tablet pc... most likely windows tablet pc.
4) Build 3.0 WPF application to override scheduled services on demand
Note: This will have Speech-To-Text capabilities, so the app can be driven by the sweet sound of my voice. :)

* Technologies (Tablet PC platform, .NET 3.0, Expression Blend C#, WPF, Speech 5.3 SDK)

***Future Projects***

-Install solar panels on roof top and collect solar energy
Note: (Figure out a way to collect wind energy as well)

Once I have collected the energy and safely stored in a known location I want to be able to track
how much I've consumed, and how much I have to sell to the energy company.
Then I can use X10 to communicate with the energy levels and tell me how much energy consumed and available to sell respectively. Once that is complete it will be a matter of hours before I can hook that up to my WPF application and speech enable it. :)

Whew... that is certainly enough for now... I really could go on and on.
This however is a good stopping point... so with the long memorial holiday I have starting today I think I will get started on the first project... stay tuned... and to all my fellow dev's out there...
have an exception free day!

Monday, May 7, 2007

Home Automation Part 2

Since I have the software side of things nailed down I thought I would take a few moments to talk about the hardware side of things, now since I want screens in a few places through out the house I know I'm going to need to cut some holes in some walls. This is not an issue until we start to think about climate control... how on earth am I supposed to keep all my components cool if I'm living in a Dallas,TX. Hopefully something will surface in my research, until then I 've been able to find quite a few possibilities for the hardware side of things. Since I will need to have screens in the wall I don't want them to be very big because they need to be mounted and available to touch hence... (Touch-Screen) so I found a couple of options... 1) Phylon 7" Wide-Screen VGA TFT Display with Touchscreen this monitor is just the right size and the right price. Or
2) The new Touch Screen LCD PC from Quataris Technology this obviously is the right and size and I can run WinXP/Vista/or CE 6.0 on it. Definitely a front runner at the moment.

Once I find the right display I will need to figure out wiring through the walls etc. don't worry I will have documented steps on most of this information right here on

The plan for phase 1 :

1) Control lights in living/dinning/master suite/control room(office) /media room
2) Control the blinds in living/Master suite

For the software I'll be building a custom UI in WPF running on .NET 3.0 leveraging the WinXP SP2 or Vista Platform and it will all be controlled through the new Speech to Text Managed Api's using C# of course. :)

The goal is to walk in to or out of a room and speak to the lights or blinds via voice command.
I'm currently thinking something along the lines of "Lights On", "Lights 1" = dim lights (25%) , "Lights 2" = dim lights(50%) , "Lights 3" ,"Lights 4" and "Lights Off" respectively. Same kind of thing for the electrical blinds.

These sorts of applications are spinning up all around us in homes of folks who can afford a team of specialist to come in and install everything, of course leaving a pretty universal remote for all the components. Not me... I'm a dev all the way and with the help of Phidgets and the display possibilities above I'm well on my way. Oh... I forgot to mention Phidgets... well the link is above for the full info, but essentially I came across the company by watching a UWTV Computer science and engineering lecture on the subject and then went over to the website for more info... these guys are electrical engineer grads who build hardware devices for plug-n-play use.
Awesome stuff, more over... Lee Brimelow has already gotten starter with it over at he controls a 3D model in WPF with several phidgets.

Home Automation Part 1

This is one of my favorite topics that resides near and dear to my heart.
So I thought I'd blog about my some of my ideas and plans... I first got into home automation about 3 years ago back in 2003, shortly after my first couple of years in .NET development.

I started to look in to X10 Technology which was compliant with .NET and super simple to get setup, soon after that I got busy with work stuff and then eventually found myself back in to r&d. Even though I don't have a home yet, I plan on moving from the small 2 bedroom apartment in Bellevue,WA to a 4/5 Bedroom, 2 living/2 dinning, 3 bathroom, game room, 2 car garage home in Dallas, TX. This will make things seem so much more comfortable allowing us to appropriately welcome our soon to be third addition to the family... with this kind of setup I have a more than adequate canvas to begin my mission for a smart home. Of course the home will be running on .NET 2.0/3.0 code and X10 hardware for lighting... mostly simple things that have been done by some of the folks out there in the community, folks like Tony Northup, and Chris Walkers Z-Wave Technology which extends X10. Definitely some cool things out there in the .NET space of Home Automation.

Friday, May 4, 2007

The buzz around Silverlight & MIX 07

Mix 07 is coming to an end... even though I didn't actually attend in Vegas I subscribed to the feed of live footage keynotes and break out sessions... which honestly felt like I was there.

Silverlight is essentially WPF/E ... a cross platform web based solution for rich UI experiences.
A tiny clr enabling all sorts of technology to run on top of it... everything from Ruby to Python, Javascript, DHTML, AJAX and more. Speaking more on the cross platform it will run in safari on the mac as well as fire fox which I love!

Now for those of you that know me also know that I don't represent the Web Dev side of development, but I must say that this technology is pulling me back to the web side of things.
Very Cool!

Wednesday, April 25, 2007

Diagnosed with Hypertrophic Cardiomyopathy (HCM)

For the past month and a half I have been experiencing some weird activity with my normal work out routine. After about 10 minutes of working out I immediately need to vomit.
Not good... so I checked it out and turns out I have HCM. Which basically means I have a muscle in my heart that thickens(grows bigger) after activity or exertion... this causes abnormal blood flow in the heart and is causing me to vomit. For a more accurate definition/explanation I have supplied the following information:

What is Hypertrophic Cardiomyopathy (HCM)?

Cardiomyopathy is a condition in which the muscle of the heart is abnormal in the absence of an apparent cause. This terminology is purely descriptive and is based on the Latin deviation. HCM is a primary and usually familial cardiac disorder with heterogeneous expression, unique pathophysiology, and a diverse clinical course, for which several disease causing mutations in the genes encoding proteins of the cardiac sacomere have been reported. While HCM has typically been recognized by its structure ie., hypertrophy, the electrical function of the heart are also adversely affected. There are three types of cardiomyopathy: "hypertrophic", "dilated" and "restrictive". The main feature of hypertrophic cardiomyopathy is an excessive thickening of the heart muscle (hypertrophy literally means to thicken). Thickening is seen in the ventricular septal measurement (normal range .08-1.2cm), and in weight. In HCM, septal measurements may be in the range of 1.3cm to 6.0+cm. Heart muscle may also thicken in normal individuals as a result of high blood pressure or prolonged athletic training. Furthermore, there is a fine line between and athletic heart and a heart with HCM.

In Hypertrophic Cardiomyopathy (HCM), the muscle thickening occurs without an obvious cause. In addition, microscopic examination of the heart muscle in HCM is abnormal. The normal alignment of muscle cells is absent and this abnormality is called "myocardial disarray".

Now in my case I have about a third of the disarray shown above, which is kind of scary. Doctor says there is two ways to treat it. 1) medication to suppress the growing of the muscle or 2) surgery which would essentially be removing part of the muscle. Of course I opted for the medication to start.

Being very athletic for 20+ years I figure that my being 27 would not be cause for concern, but when I checked it out the results revealed a little cause for concern. If you ever feel as though your body is not acting normal you should definitely check yourself out... you never know what you might find.

for more information on HMC visit 4HMC

Tuesday, March 27, 2007

More On Creative Math

Ok, Lately I have been really interested in math again. It just so happens that I caught one of my weekly Computer Science & Engineering video lectures on UWTV... this week the topic of discussion was Software For Algebra and Geometry Experimentation or SAGE. Very cool lecture from the man that started it all... (William Stein) Written mostly in python... this application does some really advanced level interpretations and the contributors to the project use SCRUM which is also cool. If you ever wanted to know how to calculate something or find the polynomial or calculate polynomials click on the link above and explore the world of SAGE.

C# Math Creativity

Alright, after checking out Karsten's blog I was immediately inspired... so I ran out to B&N and got the book Flash Math Creativity. Since I have an extensive background in flash I thought I would check it out... turns out it covers quite a bit which really helps me in the C# world. One of the modules I am working on right now for DirectorsMate is a Formation Helper module which allows a director or coach to specify how many team members they have and pick a basic formation shape... for instance if I have 24 members on my team and I want a Circle formation all I have to do is specify 24 and click the circle button. Behind the scenes I loop 24 times, and each time i create an ellipse shape and position it in a specified location using standard math that I picked up in the book. If you're ever doing Formulas or Math Calculations in C#... you need to take a look at Flash Math Creativity... it maps to C# seamlessly.

Shifting Sands Of The Company Structure

At my day job I am basically in a team of two developers... the guy who's been with the company from the beginning and myself. About a week ago I was informed that the other guy was planning on leaving the company... leaving myself to basically handle his duties and mine. With only being part of the company for a single year and having all of this responsibility kind of dumped on my plate is honestly a bit frightening. There are so many good things that can come from this sudden shit of sands... I can streghten my development skills, and project management skills even further. Although, it is a lot to take on... especially since now I will be potentially in charge of areas such as back-end database, web site, ftp, billing department applications, testing, staging evironments to name a few.

We'll have to see how it all unfolds over the summer....

Wednesday, March 21, 2007

Understanding EULA and FEULA

For those of you out there who are putting together software for your start up know that at some
point you will have to put together a EULA (End Users Licenses Agreement) or FEULA (Fair End Users Licenses Agreement). Having one of these in place protects you from end users who want to basically do harm to your company in court... I have been around and around and have decided to go with the FEULA and tweak it for my needs... thankfully their is a lawyer in the family on my wife's side. If you can gather up the means I highly suggest you have your EULA or FEULA looked over by a lawyer before putting on your install.

Wednesday, March 14, 2007

Working with Decimals in C#

I recently ran in to a bind while working on the ScoreSheet CTP, and once I figured it out I thought I might blog about it... just in case anyone else has similar issues out there.

ScoreSheet is a try-out system I am building for teams that hold try-outs for a specific event... and inside it resides a calculator engine that I use, and well a requirement came in which needed to be able to get the total score no matter what it is and view it as a percentage.

I came up with the following procedure which works out quite well...

Friday, March 9, 2007

Converting Collections in .NET 2.0

So last night I was having a bit of an issue with getting the values from my Dictionary<string,int> to a normal generic List<int>.

I figured it out and just knew their had to be a better way, so I asked a co-worker of mine the next morning and got the following result after collaborating with him... of course the results were much better this time around.

As you can see from above I just pass the values from the dictionary to the constructor of the collection I want to convert to. I am able to do this because the constructor takes IEnumerable as a parameter... any collection which inherits IEnumerable can be passed in.
In the future always look for this first, for it may be the solution your looking for when converting collection in .NET 2.0

Tuesday, March 6, 2007

Bouncing back and forth between .NET 1.1,2.0, and 3.0

Ok, for those of you out there who can sympathise... you know how frustrating this can be.
A typical day consist of the following 10 steps...

1) Wake up... go to work... migrate delphi to C# 1.1 and maintain
2) Daily meetings on design ideas for migrating C# 1.1 to 2.0
3) 6pm, can it be already.... get home... fire up Vista... and Continue the Revolutionary C# 3.0 Application which will one day change the world.
4) Work Out/Shower
5) Family Time & Dinner Time
6) Spouse Time & favorite T.V. Shows
7) Tuck the little one in bed.
8) Back to the C# 3.0 Application
9) Read for a little while.
10) Bed Time