<?xml version='1.0' encoding='UTF-8'?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-6567311723687986998</id><updated>2009-01-19T14:52:15.887-07:00</updated><title type='text'>Perpetual Motion</title><subtitle type='html'>Thoughts and opinions on general IT topics.  There may be some software architecture ramblings here, as well.</subtitle><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6567311723687986998/posts/default'/><link rel='alternate' type='text/html' href='http://www.perpetual-motion.com/kevin/default.htm'/><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.perpetual-motion.com/kevin/atom.xml'/><author><name>Kevin</name><uri>http://www.blogger.com/profile/11664652669673008450</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>9</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6567311723687986998.post-2154796630319596052</id><published>2008-01-15T11:39:00.000-07:00</published><updated>2008-01-15T11:47:15.787-07:00</updated><title type='text'>My last post</title><content type='html'>I haven't made a post in a long time, but there's a good reason.  My interaction with Garrett (&lt;a href="http://www.fearthecowboy.com/"&gt;www.fearthecowboy.com&lt;/a&gt;), and with some of the other great folks at Microsoft, led me to submit my resume.  From January through May of 2007 I was working through the interview process and catching up on various Microsoft technologies that I didn't have a chance to work with at the EUB.&lt;br /&gt;&lt;br /&gt;I received a job offer from Microsoft in May, so since then I've been focused on moving.  Between finding a new house, looking for schools for the kids, moving and unpacking, transferring accounts, and just generally changing my life, I haven't had any time to focus on the extension or this blog. &lt;br /&gt;&lt;br /&gt;I'm working with the Rights Management Services team (&lt;a href="http://www.microsoft.com/rms"&gt;www.microsoft.com/rms&lt;/a&gt;).  It's my dream job, and I'm working with excellent people.  However, maintaining a blog is incompatible with my job, and I'm pretty busy working on learning everything I need for work, and we're still settling in to a new country and a new house.&lt;br /&gt;&lt;br /&gt;If you're looking for a good RMS related blog, I suggest reading Jason Tyler (&lt;a href="http://blogs.technet.com/rmssupp"&gt;http://blogs.technet.com/rmssupp&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Thanks to anyone who dropped by to read this.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6567311723687986998/posts/default/2154796630319596052'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6567311723687986998/posts/default/2154796630319596052'/><link rel='alternate' type='text/html' href='http://www.perpetual-motion.com/kevin/2008/01/my-last-post.html' title='My last post'/><author><name>Kevin</name><uri>http://www.blogger.com/profile/11664652669673008450</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-6567311723687986998.post-6027754334656443530</id><published>2008-01-15T11:35:00.000-07:00</published><updated>2008-01-15T11:38:51.380-07:00</updated><title type='text'>A new version is available</title><content type='html'>There is a new version of the extension available.  I can't take any credit for it, though.  I've handed things off to Axel Nennker (&lt;a href="http://ignisvulpis.blogspot.com/"&gt;http://ignisvulpis.blogspot.com&lt;/a&gt;).  He's going to be looking after things, along with Andy Hodgkinson.  You can find the latest version at &lt;a href="http://www.codeplex.com/IdentitySelector/Release/ProjectReleases.aspx"&gt;http://www.codeplex.com/IdentitySelector/Release/ProjectReleases.aspx&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Thanks, Axel, for agreeing to take over this extension.  I'm glad to see it in capable hands.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6567311723687986998/posts/default/6027754334656443530'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6567311723687986998/posts/default/6027754334656443530'/><link rel='alternate' type='text/html' href='http://www.perpetual-motion.com/kevin/2008/01/new-version-is-available.html' title='A new version is available'/><author><name>Kevin</name><uri>http://www.blogger.com/profile/11664652669673008450</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-6567311723687986998.post-8443698465978197589</id><published>2007-03-12T14:03:00.000-06:00</published><updated>2007-03-12T14:04:16.731-06:00</updated><title type='text'>Extension Status</title><content type='html'>While I was out of commission I received a denial from Mozilla Add-ons.  They don't like the compiled extension.  I believe I need to compile it because of the interaction with CardSpace.  I'll take a quick look to see if I'm missing any alternatives.  They also suggested there can be exceptions to the rule, so I'm looking into that process.&lt;br /&gt;&lt;br /&gt;The reviewer did apologize for the long wait in the queue, which I thought was very professional.&lt;br /&gt;&lt;br /&gt;Hopefully this delay doesn't inconvenience anyone too much.&lt;br /&gt;&lt;br /&gt;On a development note I was looking at some of the issues that people have logged before my holidays.  Most of these shouldn't take long to resolve, so I'm looking forward to working on them.&lt;br /&gt;&lt;br /&gt;One of the other options is to get this into the Mozilla tree itself, rather than an extension.  This was the original goal, so even if the extension doesn't work out perhaps having it in the tree will go well.  I'm going to focus on the defects and issues first.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6567311723687986998/posts/default/8443698465978197589'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6567311723687986998/posts/default/8443698465978197589'/><link rel='alternate' type='text/html' href='http://www.perpetual-motion.com/kevin/2007/03/extension-status.html' title='Extension Status'/><author><name>Kevin</name><uri>http://www.blogger.com/profile/11664652669673008450</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-6567311723687986998.post-1679013938198233306</id><published>2007-03-12T14:01:00.000-06:00</published><updated>2007-03-12T14:03:11.847-06:00</updated><title type='text'>Interview in MozillaLinks</title><content type='html'>Before I got sick I was interviewed by the folks over at MozillaLinks.  That interview was posted recently.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://mozillalinks.org/wp/2007/02/cardspace-support-for-firefox/"&gt;http://mozillalinks.org/wp/2007/02/cardspace-support-for-firefox/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Kim Cameron also posted this on his blog, and politely corrected my comments on OpenID.  This interview was done prior to Kim &amp; Bill G announcing that CardSpace and OpenID will be working together.  As Kim has correctly pointed out, the two solutions complement each other by solving different problems.  Using CardSpace for simple Blog comment verification, for example, is overkill.  I was in the mindset of the problems that CardSpace addresses, and wasn't thinking about the areas where it isn't ideal.  Rats. I hate overlooking things.&lt;br /&gt;&lt;br /&gt;Anyway, that's why the goal is an Identity Metasystem.  An Identity Metasystem isn't just about being able to use one identity system without vendor lock-in.  It's also about being able to use different technologies for different problems.  This is why it is called an "Identity Metasystem", instead of a "Cross-Platform Cardspace Implementation".</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6567311723687986998/posts/default/1679013938198233306'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6567311723687986998/posts/default/1679013938198233306'/><link rel='alternate' type='text/html' href='http://www.perpetual-motion.com/kevin/2007/03/interview-in-mozillalinks.html' title='Interview in MozillaLinks'/><author><name>Kevin</name><uri>http://www.blogger.com/profile/11664652669673008450</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-6567311723687986998.post-8024759577336274392</id><published>2007-03-12T13:58:00.000-06:00</published><updated>2007-03-12T14:00:54.584-06:00</updated><title type='text'>I'm feeling better</title><content type='html'>If it seems pretty quiet over here it's because I have been sick.  I started what I assumed was a cold just before Valentine's Day.  We went on holidays with the kids for 10 days after that.  (We went to Disneyland for those that are interested, and a good time was had by all.)  However, it wasn't a very relaxing holiday, so every day I felt a bit more run down.  By the time we were back, I was sick in bed, and remained there until March 7.  The doctors feel it was bronchitis with a minor lung infection.  If that's minor, I must say I never want to see a major infection.&lt;br /&gt;&lt;br /&gt;Anyway, the lack of oxygen meant that I've had no energy for the last several weeks.  However, I've turned the corner, and actually gone back to work the last few days.&lt;br /&gt;&lt;br /&gt;Now that I'm feeling a bit better I'll try to get things back on track over here.  For those of you who emailed me, I apologize for not replying.  I'll try to respond to everyone in the next day or two.&lt;br /&gt;&lt;br /&gt;Thanks for your patience.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6567311723687986998/posts/default/8024759577336274392'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6567311723687986998/posts/default/8024759577336274392'/><link rel='alternate' type='text/html' href='http://www.perpetual-motion.com/kevin/2007/03/im-feeling-better.html' title='I&apos;m feeling better'/><author><name>Kevin</name><uri>http://www.blogger.com/profile/11664652669673008450</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-6567311723687986998.post-5913369296706809784</id><published>2007-01-07T21:13:00.000-07:00</published><updated>2007-01-07T21:15:19.801-07:00</updated><title type='text'>Code is available</title><content type='html'>I have finally(!) posted the code at &lt;a href="http://www.codeplex.com/IdentitySelector"&gt;CodePlex&lt;/a&gt;.  Inside the project is a readme file with setup instructions.  If you have all the necessary components set up, it should work without trouble.&lt;br /&gt;&lt;br /&gt;I found that when installing the gecko_sdk on a new machine, I would quickly try to use xpidl to compile an idl file to xpi.  If you aren't familiar with this process (as I wasn't when I started), there is a great HelloWorld example to get you up and running at http://www.mozdev.org/notes/hello_world_js_component.html.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6567311723687986998/posts/default/5913369296706809784'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6567311723687986998/posts/default/5913369296706809784'/><link rel='alternate' type='text/html' href='http://www.perpetual-motion.com/kevin/2007/01/code-is-available.html' title='Code is available'/><author><name>Kevin</name><uri>http://www.blogger.com/profile/11664652669673008450</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-6567311723687986998.post-4908444904198477933</id><published>2006-12-14T08:58:00.000-07:00</published><updated>2006-12-14T09:00:49.869-07:00</updated><title type='text'>CodePlex woes</title><content type='html'>I had high hopes of posting the code this morning.  However, after fighting with Visual Studio and CodePlex, I'm going to have to head to work.  I'll take a fresh stab at it this afternoon.  Sorry for the delay, folks.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6567311723687986998/posts/default/4908444904198477933'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6567311723687986998/posts/default/4908444904198477933'/><link rel='alternate' type='text/html' href='http://www.perpetual-motion.com/kevin/2006/12/codeplex-woes.html' title='CodePlex woes'/><author><name>Kevin</name><uri>http://www.blogger.com/profile/11664652669673008450</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-6567311723687986998.post-1597321884549633832</id><published>2006-12-12T14:41:00.000-07:00</published><updated>2006-12-12T14:59:18.165-07:00</updated><title type='text'></title><content type='html'>&lt;p&gt;I (with help from the &lt;a href="http://fearthecowboy.com/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;Cowboy&lt;/a&gt;) have been working for the last several weeks on a &lt;a href="http://getfirefox.com/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;Firefox&lt;/a&gt; extension to implement &lt;a href="http://cardspace.netfx3.com/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;Windows CardSpace&lt;/a&gt;. It's still got a few rough edges, but should work in most cases.&lt;br /&gt;&lt;br /&gt;You can download the extension &lt;a href="http://www.perpetual-motion.com/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;here&lt;/a&gt; for now. I'll jump through the hoops over at &lt;a href="http://addons.mozilla.org/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;addons.mozilla.org&lt;/a&gt; this week, and hopefully it will be available there soon. I'll post an update when it is there. I've also set up a &lt;a href="http://www.codeplex.com/IdentitySelector"&gt;project&lt;/a&gt; over at &lt;a href="http://www.codeplex.com/"&gt;Codeplex&lt;/a&gt; (as mentioned briefly in my first post), and will get the code posted there in the next day or so.&lt;br /&gt;&lt;br /&gt;You can test this extension at &lt;a href="https://www.xmldap.org/relyingparty" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;https://www.xmldap.org/relyingp&lt;wbr&gt;arty&lt;/a&gt;. Chuck Mortimore set up this test page, and you can also find his implementation of a FireFox extension there. &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;There are a few differences between Chuck’s and mine, but the significant one is support around scripting; I’ve made it a priority to have 1:1 features with IE.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;For those of you who wandered in and aren't sure what CardSpace is, you may wish to check out &lt;a href="http://www.identityblog.com/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;Kim Cameron's blog&lt;/a&gt;, or go straight to the &lt;a href="http://cardspace.netfx3.com/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;CardSpace website&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I will post some usage samples shortly, but in this post I'd like to list what is and isn't covered.&lt;br /&gt;&lt;br /&gt;Feature List: &lt;/p&gt;    &lt;p&gt; &lt;/p&gt;&lt;p style="margin-left: 0.75in; text-indent: -0.25in;"&gt;&lt;span&gt;-&lt;span&gt;          &lt;/span&gt;&lt;/span&gt;Support for both the &amp;lt;object&amp;gt; and &amp;lt;ic:informationcard&amp;gt; syntax. &lt;/p&gt;  &lt;p style="margin-left: 0.75in; text-indent: -0.25in;"&gt;&lt;span&gt;-&lt;span&gt;          &lt;/span&gt;&lt;/span&gt;Support for both JavaScript invocation (using xmlToken.value) and &amp;lt;form&amp;gt; posting (both implicit and using form.submit() ).&lt;/p&gt;  &lt;p style="margin-left: 0.75in; text-indent: -0.25in;"&gt;&lt;span&gt;-&lt;span&gt;          &lt;/span&gt;&lt;/span&gt;Supports object parameters required for the selector . These are scriptable, and most are read/write. I've tried to validate these as much as possible. I'm sure testing will turn up cases I've missed, so I expect this code will need to be updated as items are found. See more details in my post containing samples. &lt;/p&gt;  &lt;p style="margin-left: 0.75in; text-indent: -0.25in;"&gt;&lt;span&gt;-&lt;span&gt;          &lt;/span&gt;&lt;/span&gt;This should support all certificates that Firefox supports. &lt;/p&gt;  &lt;p style="margin-left: 0.75in; text-indent: -0.25in;"&gt;&lt;span&gt;-&lt;span&gt;          &lt;/span&gt;&lt;/span&gt;Pluggable identity selector. The extension creates an XPCOM Interface for Identity Selectors, of which I’ve implemented one that calls Windows CardSpace, and the end user can switch between them (right now, you have to change a pref in about:config , but I’ll add in an options dialog soon).&lt;/p&gt;  &lt;p style="margin-left: 0.75in; text-indent: -0.25in;"&gt;&lt;span&gt;-&lt;span&gt;          &lt;/span&gt;&lt;/span&gt; Error objects should be identical to the IE implementation (for ease of cross-platform web development) &lt;/p&gt;  &lt;p style="margin-right: 0in; margin-bottom: 12pt; margin-left: 0.75in; text-indent: -0.25in;"&gt;&lt;span&gt;-&lt;span&gt;          &lt;/span&gt;&lt;/span&gt;Uninstalls!&lt;/p&gt;  &lt;p&gt;To-do list: &lt;/p&gt;  &lt;p style="margin-left: 0.75in; text-indent: -0.25in;"&gt;&lt;span&gt;-&lt;span&gt;          &lt;/span&gt;&lt;/span&gt;It currently fails against the CardSpace sandbox. Garrett is pretty sure that this is a problem on the sandbox side, and I sure hope he's right. He's looking into it. &lt;/p&gt;  &lt;p style="margin-left: 0.75in; text-indent: -0.25in;"&gt;&lt;span&gt;-&lt;span&gt;          &lt;/span&gt;&lt;/span&gt;Testing. I've built this on XP SP2, and tested with FF 1.5 and 2.0. I've also tested from Server 2003.  I will continue to test with various setups. &lt;/p&gt;  &lt;p style="margin-left: 0.75in; text-indent: -0.25in;"&gt;&lt;span&gt;-&lt;span&gt;          &lt;/span&gt;&lt;/span&gt;Cross platform work. This is a Windows implementation. With a Identity Selector on another platform, this may work, but I’ve done no testing yet.&lt;/p&gt;  &lt;p style="margin-left: 0.75in; text-indent: -0.25in;"&gt;&lt;span&gt;-&lt;span&gt;          &lt;/span&gt;&lt;/span&gt;Make the pluggable Identity Selector switchable from the options dialog.&lt;/p&gt;  &lt;p style="margin-left: 0.75in; text-indent: -0.25in;"&gt;&lt;span&gt;-&lt;span&gt;          &lt;/span&gt;&lt;/span&gt;Improve security (look for out of domain IFrames, etc) &lt;/p&gt;  &lt;p style="margin-left: 0.75in; text-indent: -0.25in;"&gt;&lt;span&gt;-&lt;span&gt;          &lt;/span&gt;&lt;/span&gt;Detect for .Net 3.0. Currently it simply fails. &lt;/p&gt;  &lt;p&gt;&lt;br /&gt;&lt;br /&gt;In addition to getting the source code posted and submitting this to Mozilla, I will follow up here with a few more posts. I'll get into the code with you and describe how it all fits together. This is my first extension, so I'm sure there will be opportunity for improvement. Please feel free to send me your comments or suggestions.&lt;br /&gt;&lt;br /&gt;Many thanks to some of the Microsoft folks who answered my CardSpace questions, and in particular to the CardSpace Community Program Manager &lt;a href="http://www.fearthecowboy.com/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;Garrett Serack&lt;/a&gt;, who not only pointed me in the right direction when I was stuck, and provided me the sample code to call CardSpace from C++, but also restored my motivation to get it working. Thanks also to the many folks hanging out in the Mozilla #extdev IRC channel.  And thanks to Kim Cameron and Chuck Mortimore. While I didn't talk to these gentlemen over the course of writing this, I think I've read everything they've written on this subject.&lt;/p&gt;    &lt;p&gt;&lt;br /&gt;LINKS:&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;                &lt;a href="http://perpetual-motion.com/extension" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;&lt;a href="http://www.perpetual-motion.com"&gt;http://perpetual-motion.com&lt;/a&gt;&lt;wbr&gt;&lt;/a&gt; –Get the CardSpace Extension here.&lt;/p&gt;  &lt;p&gt;                &lt;a href="http://fearthecowboy.com/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;http://fearthecowboy.com&lt;/a&gt; –Garrett Serack’s Blog&lt;/p&gt;  &lt;p&gt;                &lt;a href="http://identityblog.com/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;http://identityblog.com&lt;/a&gt; –Kim Cameron’s blog&lt;/p&gt;  &lt;p&gt;                &lt;a href="http://xmldap.org/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;http://xmldap.org&lt;/a&gt; – Chuck Mortimore’s site&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6567311723687986998/posts/default/1597321884549633832'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6567311723687986998/posts/default/1597321884549633832'/><link rel='alternate' type='text/html' href='http://www.perpetual-motion.com/kevin/2006/12/i-with-help-from-cowboy-have-been.html' title=''/><author><name>Kevin</name><uri>http://www.blogger.com/profile/11664652669673008450</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-6567311723687986998.post-2652639298784969861</id><published>2006-12-05T21:18:00.000-07:00</published><updated>2006-12-05T21:53:55.544-07:00</updated><title type='text'>Introduction</title><content type='html'>This is the obligatory introduction post.   Let's get it out of the way so that we can move on to more interesting things.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Who am I?&lt;/span&gt;  Kevin Miller. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;What do I do?&lt;/span&gt;  I'm a contractor, or as some of my friends call it - a software mercenary.  I wander about from contract to contract, designing systems, writing code, mentoring, troubleshooting, and just about anything the client would like me to do, as long as it is related to software development.  I'm currently in the role of a Solution Architect.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Why am I writing this blog?&lt;/span&gt;  I'm working on some projects over at CodePlex (&lt;a href="http://www.codeplex.com"&gt;www.codeplex.com&lt;/a&gt;), and wanted a place to discuss the work I'm doing.  Also, like many bloggers, I think I have some (hopefully valuable) things to say, and thought this would be a good way to reach people who may be interested.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;What makes you qualified to write a blog?&lt;/span&gt;  Well, first of all, this is the internet, and qualifications have nothing to do with authoring content.  Secondly, I've been consulting for about 12 years now, and have learned a thing or two along the way.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;What sort of work have you done?&lt;/span&gt;  I don't want to turn this introduction into a resume, so I'll keep this short.  I started out doing C and C++ development (DOS, Windows, and OS/2).  I moved into web development back in the CGI days, and played with NSAPI and LiveWire (that later transformed into IPlanet for you kids out there) way too much.  This was followed by a number of years where I jumped from Windows development (VB, ASP, VC++) over to the Java world, and then back again.  I've been firmly on the MS side of the world since .Net was released, and will likely stay there until I see something worth noting from Sun.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;What's your language of choice?&lt;/span&gt;  I'm pretty language agnostic.  The right tool for the job, and all that.  I'm not a zealot about any language.  If I had to pick one, I'd pick JavaScript, but that's because it is a powerful little language that many people overlook.  Also, for the most part it's just C with a fancy name and an interpreter.  I've spent a lot of time in the various C-family languages, so I'm just comfortable here, I suppose.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;How about some personal info?&lt;/span&gt;  I live in Calgary.  I've been married to a wonderful wife, Santina, for nearly 10 years, and have three great kids.  I drive a Honda.  I have no pets.  I'm a little short on hobbies other than spending time with my family, but if I had to pick some I'd say learning history and math.  I'm fond of the old Ultima games, as well.  I used to go by RoninDragon on the UDIC newsgroup back in the day.  I'm afraid I was more of a lurker than a poster, though.  I used to be an avid comic collector, but that was a long time ago.  I like going to Vegas every year, and like to think I can play BlackJack, and I'm just learning about poker.  If anyone asks, my favorite Vegas casinos are Green Valley Ranch, Mandelay Bay, and the Monte Carlo.  I think that about covers it.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;What do you intend to talk about?&lt;/span&gt;  I think topics may vary.  I'll probably focus on my current projects for a bit.  After that, I'll probably talk about whatever strikes me as relevant that day.  I don't have any particular agenda or schedule, so those of you looking for a publishing schedule are probably out of luck.&lt;br /&gt;&lt;br /&gt;Thanks for tuning in.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6567311723687986998/posts/default/2652639298784969861'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6567311723687986998/posts/default/2652639298784969861'/><link rel='alternate' type='text/html' href='http://www.perpetual-motion.com/kevin/2006/12/introduction.html' title='Introduction'/><author><name>Kevin</name><uri>http://www.blogger.com/profile/11664652669673008450</uri><email>noreply@blogger.com</email></author></entry></feed>