Tech Blog

Jay's Technical blog

Disclosure Time

23 January 2006
Jay Kimble

[WARNING! This is an archived post and as such there may be things broken/missing here.. you have been warned.]So last week, Robert Scoble posted this blog entry.  Robert comes clean with some stuff he has been given, and I would like tio do the same.  First of all, if you see a review on this blog (or here) by me then it's probably because someone gave me product.  I have a couple resources for product.  I am a member of Xtras.Net XDN (my subscription was given to me, BTW, but I may pay next year) which provides a free product every month.

I have also been given a subscription to Developer Experess' product line (partially because of my How To Select Guide on Reporting, and partially because of my unsolicited comments about Refactor! when it was announced that it was being added to VB.Net 2005... being nice to companies in your blog pays off).

I also have subscription to /n software's products.

I also have copies of just about every product that appeared in my How To Select Guides articles (which have not been published due to some issues beyond my control; I expect things to get back on track soon).

Finally know this, if I am reviewing a product, I probably was given it.  I don't buy product for the purpose of reviewing, and right now I work at a company that pretty much doesn't buy third party product without a lot of effort (don't get me started).

In the future you may see some reviews by me of the /n software's products and the Developer Express stuff (I really like both their product lines).

Best Interview Processes...

23 January 2006
Jay Kimble

[WARNING! This is an archived post and as such there may be things broken/missing here.. you have been warned.]So as you may know I spent the last 9 months looking for a career move.  I didn't want a new job; I wanted a better job.  So with Eric Wise's Interview questions in hand, I interviewed (and turned down) a lot of companies in the last year; I also ticked off a lot of recruiters because I just wouldn't take that position...  In the last 2 months I had 2 really good opportunities. During both their interview processes I found a pleasant surprise: a really intelligent interview process that let me demonstrate my knowledge without being a total pain. Before I go on, let me mention that I have been hit with every type of minutaie know to man.  Name the framework class that can be used to control an electric toaster... System.It.Was.Nice.Talking.To.You.Not! Please take our automated test... hmmm... again with the minutaie.

So the one I didn't get (I would have taken it if it was offered... I wasn't a good fit for the first project), Fortis Software, put me in a room with 2 developers (first).  They probed my knowledge by reviewing my experience.  After probing a bit, they had me write a function on a white board.  It was actually a simple function, but it let them see how well I could think. They also had me answer some questions for some scenarios built on a white board.  They had me interview with several others, but this first part was the heart of the interview.

The next was with my new job: ASPSOFT.  Jon called me and we chatted for about 1/2 hour on the phone.  He probed my knowledge and experience.  The final test project was that he gave me a 3 hour task to do one evening.  The project was real world (Some day I'll reveal more about it).  It tested my .Net knowledge,  my database skills, my problem solving skills, and finally my personal development philosophy.


New position

16 January 2006
Jay Kimble

[WARNING! This is an archived post and as such there may be things broken/missing here.. you have been warned.]

Hey, everyone (who reads my personal feed).  After working at [corporation's name removed to protect me from possible lawsuits]  for the last 5 years, it was time to move on.  I just accepted a job with ASPSoft and will be working with John Papa.  Hence the new banner I added to the HTML version of my blog.  Many thanks John and Jon!


Boo!

09 January 2006
Jay Kimble

[WARNING! This is an archived post and as such there may be things broken/missing here.. you have been warned.]

[small update... I added the links to Nemerle and Boo].

No, I'm not dreaming of Halloween.  I have been fooling with SharpDevelop and discovered that there are bindings for Nemerle and Boo.  Since I hadn't played with either (but have heard about both via Miguel de Icaza's Blog -- the lead on Mono).

Languages have always been an interest of mine.  So this weekend I decided to forego my 7th attempt at VC++ and I read through the Boo tutorial and I have to say at this that I can see a lot of reasons to use it.  Boo is very similar to Python.  There are no block characters (like "{" or "}"); you define blocks using your indentation (something that scares me a bit).  Types can be inferred.  If I say:

i = 1

the compiler determines that the variable i is an integer.  It can also be a little more dynamic letting you switch the type of a variable.  To me this is the best of all worlds.  Instead of a generic type like object that holds all types which makes for slow code; the boo compiler is able to switch out the type meaning that your variables can contain any type, but they are specifically of one type.  I'm not saying that this is perfect for everything, but for those quick and dirty sessions of coding up a quick prototype this might just be perfect (digging way back in the codebetter archives... check out this post by Darrell on "Why you should learn Python"

It also has some cool list/ienumerator processing features.  Your functions come prebuilt with synchronous and asynchronous (background threaded) methods.  It has a cool way to replace
    if(not SomeCondition) {
       i=1
    }

via "Modifiers"
    i = 1 unless SomeCondition

I could probably go on and on.  I need to play a little more...


Loosely coupled... dangerous??

06 January 2006
Jay Kimble

[WARNING! This is an archived post and as such there may be things broken/missing here.. you have been warned.][I'm doing an experiment.  I'm writing this post using Writely and FireFox instead of using the CodeBetter Editor and IE6... BTW it didn't work... I guess I need to try something else]

Over the last month during the holidays and my own blogging block I have been reading a book on Patterns (Yes, DonXML, I finally did it).  Mainly because I feel that I have reached a point with my knowledge in my Object Oriented journey that I really need to see some new ways of doing things.  The book I had was Professional Design Patterns in VB.NET.  Admittedly I didn't read the whole book, but I did read the first chapter (which is about 70 pages if memory serves me) on the patterns covered.  The rest of the book appears to give one practice in when to use the patterns.  The book, BTW, does an excellent job of encouraging you to realize that each pattern has benefits and trade offs that you need to be aware of.

As I have looked at it, I have been contemplating some of my own personal projects' designs and how to make them bigger.  I use the word "bigger" on purpose (and not to be grammatically incorrect or vague).  I have discovered the power in large APIs (I won't call them systems).  One of my temptations (and the point, finally) is to build these systems that read namespaces/classes from a config file or from the registry to easily extend the project.  In fact I have seen this with ORMs as well as with some of the IOCs (I've been looking at those too) where you load assemblies based on a name in a config file.  For instance

<sqlClasses>
   <sqlClass>
       MyClasses.SomeSubNameSpace.AnotherOne.SQLServerClass
   </sqlClass>
</sqlClasses>

There would be some kind of factory that would read the config file and load up one more classes accordingly.  It's very flexible/extensible.  My brain has been taking in the "bigness" of all this.  I can extend/deploy without recompiling anything else except the new extension.  Testing just the new extension should be drop dead simple.

Part of me is fearful of this and part of me wants to do it everywhere.  I guess I have the right perspective in that it is not something to be used everywhere... there are trade offs.