.Net Framework 3.5 SP1
Beware the WCF Configuration tool in Visual Studio. Auto-magic gone awry. If you make any configuration changes and save them, it will place a certificate tag in your web.config that will blow away your ability to run your service through localhost.
The solution is: Nuke the tag.
This cost me 2 hours of research.
Thursday, August 27, 2009
Wednesday, August 26, 2009
So Now Visual Studio Insults Me?
'
' This code was generated by a tool.
' Runtime Version:2.0.50727.42
Sigh.
' This code was generated by a tool.
' Runtime Version:2.0.50727.42
Sigh.
Thursday, August 20, 2009
VFP to .NET Developer Survival Guide
Reported from the Universalthread. I had a lot of positive response so I am reposting here:
Folks,I'm going to keep this simple. Early last year I went on haitus as a test engineer and moved back into the developer world. I was fortunate that I was hired by a company that I had already worked with years ago and they re-hired me by past reputation and were willing to overlook the fact that my last relevent programming experience was .Net 1,0 and sketchy with that and needed time to ramp-up.
I know a lot of you don't have that advantage and employers are looking for immediately usable skills. Especially in this economy. So I am going to suggest a series of steps to gain a foundation that you can use to get to where you need to be. I'm assuming that you're willing to bust butt on your own time while doing what you have to do to pay the bills.
Also, I don't want to take anything away from the EDS or Oak Leaf bootcamps and training. My only concern with those is that they go a mile wide but an inch deep. I'm not clear what marketable skills you gain with practical application.So here are the lessons I've learned and my suggestions. They are not all-inclusive. They are not expert. They are just what has helped me and the pitfalls I've run into and how you can mitigate them.
1. Language is irrelevent when at the ground-level. Walk away from the C# versus VB argument. From the VFP perspective, VB.NET is easier to understand and 99% as functional. What you'll find as you get more proficient is that it's just as easier to understand or code in either. So focus on VB.Net. Once you understand VB code without a reference manual, C# will make sense and you'll find yourself pretty much equally adept at either.
2. Get foundational literature. Anything by Charles Petzold works for me (the Programming Windows series, for example). I found myself using old functions like Str() because I could when I should have been thinking x.ToString. I had to make a mental effort to break that pattern and it really pays off as you get more into the complex Framework types.
3. Get a buddy. You are going to have, from a .NET developers perspective, stupid questions. It's inevitable. Have someone or someones who are willing to answer your seemingly dumb questions without issue.
4. Ignore the bleeding edge. If building a basic ASP.NET page befuddles you, you have no business looking at Silverlight or cloud computing. Get confident in the basics and it'll add tremendously to your understanding of the other stuff.
5. Set a functional goal. If an employer is not already paying you to do so, finf something simple worth doing and code your first project towards that. Or convert your simplest VFP app.
6. Apply Extreme Programming (XP) principles. Your first app may work but your code will suck. So what? One ot the tenets to XP is to refactor until good. Once something works, refactor towards best practices. If you break it,so what? Revert to working code.
7. Do not assume examples on the Web are canon, In the old Fox world, for the most part, people only posted code that they knew worked. Not so these days - there is a lot of crap out there. Take the ideas to heart as presented but be very leery of the code - especially if it's using Northwind or AdventureWorks since those dbs seem to be the refuges of the semi-competent.
8. Take pride of ownership, If you're a good VFP developer you will be a good .NET developer. Be proud of making things that work no matter how minor. You'll get better because if you've already mastered VFP then .NET is just a different syntax.
9. Give it time. Don't get frustrated, Think about how long it took you to master what you already know and expect another learning curve here as well. Not all skills are transportable to .NET from VFP but common sense is.
Folks,I'm going to keep this simple. Early last year I went on haitus as a test engineer and moved back into the developer world. I was fortunate that I was hired by a company that I had already worked with years ago and they re-hired me by past reputation and were willing to overlook the fact that my last relevent programming experience was .Net 1,0 and sketchy with that and needed time to ramp-up.
I know a lot of you don't have that advantage and employers are looking for immediately usable skills. Especially in this economy. So I am going to suggest a series of steps to gain a foundation that you can use to get to where you need to be. I'm assuming that you're willing to bust butt on your own time while doing what you have to do to pay the bills.
Also, I don't want to take anything away from the EDS or Oak Leaf bootcamps and training. My only concern with those is that they go a mile wide but an inch deep. I'm not clear what marketable skills you gain with practical application.So here are the lessons I've learned and my suggestions. They are not all-inclusive. They are not expert. They are just what has helped me and the pitfalls I've run into and how you can mitigate them.
1. Language is irrelevent when at the ground-level. Walk away from the C# versus VB argument. From the VFP perspective, VB.NET is easier to understand and 99% as functional. What you'll find as you get more proficient is that it's just as easier to understand or code in either. So focus on VB.Net. Once you understand VB code without a reference manual, C# will make sense and you'll find yourself pretty much equally adept at either.
2. Get foundational literature. Anything by Charles Petzold works for me (the Programming Windows series, for example). I found myself using old functions like Str() because I could when I should have been thinking x.ToString. I had to make a mental effort to break that pattern and it really pays off as you get more into the complex Framework types.
3. Get a buddy. You are going to have, from a .NET developers perspective, stupid questions. It's inevitable. Have someone or someones who are willing to answer your seemingly dumb questions without issue.
4. Ignore the bleeding edge. If building a basic ASP.NET page befuddles you, you have no business looking at Silverlight or cloud computing. Get confident in the basics and it'll add tremendously to your understanding of the other stuff.
5. Set a functional goal. If an employer is not already paying you to do so, finf something simple worth doing and code your first project towards that. Or convert your simplest VFP app.
6. Apply Extreme Programming (XP) principles. Your first app may work but your code will suck. So what? One ot the tenets to XP is to refactor until good. Once something works, refactor towards best practices. If you break it,so what? Revert to working code.
7. Do not assume examples on the Web are canon, In the old Fox world, for the most part, people only posted code that they knew worked. Not so these days - there is a lot of crap out there. Take the ideas to heart as presented but be very leery of the code - especially if it's using Northwind or AdventureWorks since those dbs seem to be the refuges of the semi-competent.
8. Take pride of ownership, If you're a good VFP developer you will be a good .NET developer. Be proud of making things that work no matter how minor. You'll get better because if you've already mastered VFP then .NET is just a different syntax.
9. Give it time. Don't get frustrated, Think about how long it took you to master what you already know and expect another learning curve here as well. Not all skills are transportable to .NET from VFP but common sense is.
Wednesday, August 19, 2009
Generics Love
Wow ... been a long time since I posted here. I've been really busy learning a whole new set of technologies and paradigms; well, at least new to me.
I'm on a WCF project in VB.Net, Framework 3.5 SP1. The class model being used is beautiful as far as OOP goes (yes, I think .Net has finally surpassed VFP in OOP in almost all aspects).
It's a bit of a pickle with the model handed to me which I must adhere to. The output will be serialized based on the model and the consuming requires a certain structure.
Here's a simulation of the model, roughly, in psuedocode:
Class ClubMember
(a number of attributes like Name, MemberID, et al)
Public Property Talks as Presentations
Endclass
Class ActiveMember
Inherits ClubMember
(a few more atomic properties+
Endclass
Class ActiveMembers
Inherits List (of ActiveMember)
Endclass
Class Presentation
(Buncha attributes for a presentation)
Endclass
Class Presentations
Inherits List (of Presentation)
Endclass
ActiveMembers are derived from a stored proc from a source table, Members
Presentations are derived from a Presentations table with a Many to One to Members
My question is, where is the focal point in this model to integrate the DAL when requiring ActiveMembers? Simply put, where does the code go to create the individual objects and the lists? I mean, I can make it work as it stands but it ain't pretty. What would be a best practice approach?
I'm on a WCF project in VB.Net, Framework 3.5 SP1. The class model being used is beautiful as far as OOP goes (yes, I think .Net has finally surpassed VFP in OOP in almost all aspects).
It's a bit of a pickle with the model handed to me which I must adhere to. The output will be serialized based on the model and the consuming requires a certain structure.
Here's a simulation of the model, roughly, in psuedocode:
Class ClubMember
(a number of attributes like Name, MemberID, et al)
Public Property Talks as Presentations
Endclass
Class ActiveMember
Inherits ClubMember
(a few more atomic properties+
Endclass
Class ActiveMembers
Inherits List (of ActiveMember)
Endclass
Class Presentation
(Buncha attributes for a presentation)
Endclass
Class Presentations
Inherits List (of Presentation)
Endclass
ActiveMembers are derived from a stored proc from a source table, Members
Presentations are derived from a Presentations table with a Many to One to Members
My question is, where is the focal point in this model to integrate the DAL when requiring ActiveMembers? Simply put, where does the code go to create the individual objects and the lists? I mean, I can make it work as it stands but it ain't pretty. What would be a best practice approach?
Monday, July 13, 2009
Cat - Fox Detente
My zen-master cat has done it again. This time, he's made friends with a pair of foxes. When I went to let him in this morning he was sitting on the railing of my deck happily watching two foxes. One was rooting around on my deck and the other was nearby watching. It looked like they were a mated pair.
Beautiful animals. The larger one, I presume the male, wasn't really afraid of me and actually walked over towards me. I was late to work so had no time to explore this further but my guess would be that neighbors are feeding them and they are not scared of people too much.
I spoke with a co-worker who knows about these things and she said it's possible that they have a den nearby and that they're scoping out the area to see if it's safe to bring out the kits to play. That would be really cool. I wonder how I could make things more comfortable or protective for them.
If I was the mystical sort I'd wonder if it was karma - a fox family is comfortable with me and I was a comfortable member of the Fox Team. Hmmmm.....
Beautiful animals. The larger one, I presume the male, wasn't really afraid of me and actually walked over towards me. I was late to work so had no time to explore this further but my guess would be that neighbors are feeding them and they are not scared of people too much.
I spoke with a co-worker who knows about these things and she said it's possible that they have a den nearby and that they're scoping out the area to see if it's safe to bring out the kits to play. That would be really cool. I wonder how I could make things more comfortable or protective for them.
If I was the mystical sort I'd wonder if it was karma - a fox family is comfortable with me and I was a comfortable member of the Fox Team. Hmmmm.....
Friday, July 10, 2009
My Apollo 11 @ 40
Looking back, I really can't explain what transfixed me about the space program.
I was a little boy held in awe watching the last of the Mercury flights and then the Gemini series, when I could, on our Zenith console TV. I cried real tears when the deaths of the Apollo 1 astronauts were broadcast on the PA of my elementary school while most of my schoolmates looked at me as if I was crazy. I was vaguely familar with whom White and Chaffee were at the time but Gus Grissom was a hero! Gus Grissom died! A hero died!
As all small children do I got over it pretty quickly.
I recall not being impressed with the Apollo 7 mission because they didn't go anywhere. I didn't understand the concept of a safe mission to try out new hardware at the time.
Apollo 8 filled me with a sense of wonder. They were orbitting the moon! The moon! Of course, I was distracted by Christmas and the anticipation of presents as I was all of 8 years old. Frank Borman was the media darling of that mission and he was added to my pantheon of heroes.
Apollo 9 is a cypher to me. I can't recall anything about that shot. A pop song, the Monkees; something else must have taken front seat that I can't remember now.
Apollo 10 I followed as closely as a 9 year old could. When the LM descended towards the lunar surface I was mentally begging them to continue on and land. I could not understand how they could get so close and not just go all the way. Oh, it was frustrating for a young and impatient space junkie.
Then came 11. THE moonshot. I followed every little interview on TV and article in the paper - the Miami Herald in my neck of the woods. It was summertime and I had no school and no other responsibilities so I watched every televised moment of the mission.
It's funny - every one talks about Walter Cronkite and Wally Schirra's telecasts of the mission as being the definitive broadcasts. I have to say that Cronkite's lack of technical savvy turned me off even at that young age even though I knew then, somehow, that he was a news icon.
My TV hero for Apollo 11 was ABC News' Jules Bergman. The man knew his stuff. He would pick up his little models of the CM and LM and show how they worked and what they would do and you just knew he knew exactly what he was talking about. I also remember bit pieces on NBC by a very enthusiastic Jay Barbree who's still following NASA to this day. I don't know whatever happened to Bergman but he deserves attention for his insights and reporting.
July 20 1969: I sat on the floor a few feet from the old Zenith console while my parents sat several feet behind on the couch when the Eagle landed, in the evening our time. It was Christmas and the Fourth of July all rolled into one for me. My parents, alas, were less than elated. The TV said that the astronauts would take a rest period before leaving the LM and that meant BEDTIME to the folks.
I whined and cajoled and...just before being forced to bed the TV announced that the astronauts would be coming out soon! I reclaimed my spot on the carpet and watched various news analysts debate whther the men would sink into lunar dust and what other calamities may befell them.
Finally, FINALLY, a bit after 10 PM they exited the LM. The static-laced images came through as well as Armstrongs famous first words: "One small step for (a) man, one giant leap for mankind". He then moved around a bit and, belatedly, the TV image was overlaid with a "MAN ON MOON" caption. Or something like that; I'm sure I could look it up but it would steal from the memory.
After a while of watching my parent insisted I go to bed. It must have been around midnight and, frankly, I was so tired with anticipation and the excitement that I didn't complain.
The next morning the Herald headline was "MAN ON MOON" in the largest type I had ever seen. I sat at our dining room table until my Dad was finished with the paper and passed it over to me (I had been an avid reader for a while by that time). I read it quickly and without depth; I waited for my Dad's attention to move elsewhere. Then I took the front page and stashed it in my room to keep what I thought was forever (It was destroyed by Hurricane Andrew in 1992).
The later missions didn't impact me as much. I remember Shepard's golf drive and a few other things from the successful missions. The Apollo 13 crisis was surreal to me - I thought that NASA was infallible and that it was all going to be OK and it wasn't until years later that I understood how wrong I was and the depth of the crisis.
I'm 49 now and it's almost 37 years since the end of the moon missions. In 1974 I had to do a report for school on the Space Shuttle. I thought it was a great idea but when I saw it was limited to low earth orbit I knew, even at that age, that human spaceflight was going to be limited to a low ceiling for a long time to come. So when Viking landed on Mars shortly thereafter I wanted; no, I needed proof of life to be found to give us a reason to go out again.
Even if the most ambitious plans of NASA are funded to fruition, with typical teething delays, I'll be 70+ before a man walks on Mars. Buzz and Neil will no longer be with us. It doesn't seem fair.
I was a little boy held in awe watching the last of the Mercury flights and then the Gemini series, when I could, on our Zenith console TV. I cried real tears when the deaths of the Apollo 1 astronauts were broadcast on the PA of my elementary school while most of my schoolmates looked at me as if I was crazy. I was vaguely familar with whom White and Chaffee were at the time but Gus Grissom was a hero! Gus Grissom died! A hero died!
As all small children do I got over it pretty quickly.
I recall not being impressed with the Apollo 7 mission because they didn't go anywhere. I didn't understand the concept of a safe mission to try out new hardware at the time.
Apollo 8 filled me with a sense of wonder. They were orbitting the moon! The moon! Of course, I was distracted by Christmas and the anticipation of presents as I was all of 8 years old. Frank Borman was the media darling of that mission and he was added to my pantheon of heroes.
Apollo 9 is a cypher to me. I can't recall anything about that shot. A pop song, the Monkees; something else must have taken front seat that I can't remember now.
Apollo 10 I followed as closely as a 9 year old could. When the LM descended towards the lunar surface I was mentally begging them to continue on and land. I could not understand how they could get so close and not just go all the way. Oh, it was frustrating for a young and impatient space junkie.
Then came 11. THE moonshot. I followed every little interview on TV and article in the paper - the Miami Herald in my neck of the woods. It was summertime and I had no school and no other responsibilities so I watched every televised moment of the mission.
It's funny - every one talks about Walter Cronkite and Wally Schirra's telecasts of the mission as being the definitive broadcasts. I have to say that Cronkite's lack of technical savvy turned me off even at that young age even though I knew then, somehow, that he was a news icon.
My TV hero for Apollo 11 was ABC News' Jules Bergman. The man knew his stuff. He would pick up his little models of the CM and LM and show how they worked and what they would do and you just knew he knew exactly what he was talking about. I also remember bit pieces on NBC by a very enthusiastic Jay Barbree who's still following NASA to this day. I don't know whatever happened to Bergman but he deserves attention for his insights and reporting.
July 20 1969: I sat on the floor a few feet from the old Zenith console while my parents sat several feet behind on the couch when the Eagle landed, in the evening our time. It was Christmas and the Fourth of July all rolled into one for me. My parents, alas, were less than elated. The TV said that the astronauts would take a rest period before leaving the LM and that meant BEDTIME to the folks.
I whined and cajoled and...just before being forced to bed the TV announced that the astronauts would be coming out soon! I reclaimed my spot on the carpet and watched various news analysts debate whther the men would sink into lunar dust and what other calamities may befell them.
Finally, FINALLY, a bit after 10 PM they exited the LM. The static-laced images came through as well as Armstrongs famous first words: "One small step for (a) man, one giant leap for mankind". He then moved around a bit and, belatedly, the TV image was overlaid with a "MAN ON MOON" caption. Or something like that; I'm sure I could look it up but it would steal from the memory.
After a while of watching my parent insisted I go to bed. It must have been around midnight and, frankly, I was so tired with anticipation and the excitement that I didn't complain.
The next morning the Herald headline was "MAN ON MOON" in the largest type I had ever seen. I sat at our dining room table until my Dad was finished with the paper and passed it over to me (I had been an avid reader for a while by that time). I read it quickly and without depth; I waited for my Dad's attention to move elsewhere. Then I took the front page and stashed it in my room to keep what I thought was forever (It was destroyed by Hurricane Andrew in 1992).
The later missions didn't impact me as much. I remember Shepard's golf drive and a few other things from the successful missions. The Apollo 13 crisis was surreal to me - I thought that NASA was infallible and that it was all going to be OK and it wasn't until years later that I understood how wrong I was and the depth of the crisis.
I'm 49 now and it's almost 37 years since the end of the moon missions. In 1974 I had to do a report for school on the Space Shuttle. I thought it was a great idea but when I saw it was limited to low earth orbit I knew, even at that age, that human spaceflight was going to be limited to a low ceiling for a long time to come. So when Viking landed on Mars shortly thereafter I wanted; no, I needed proof of life to be found to give us a reason to go out again.
Even if the most ambitious plans of NASA are funded to fruition, with typical teething delays, I'll be 70+ before a man walks on Mars. Buzz and Neil will no longer be with us. It doesn't seem fair.
Wednesday, June 17, 2009
Standards
A smallish rant.
There are a lot of IT departments out there who have rigid standards on every aspect of application development. Coding standards, naming standards, etc etc.
Unfortunately, most shops have adopted standards as a means of control. Standards put in place for thus reason are often an actual impediment to the process of software design.
Standards should exist for one reason and one reason only - to ensure reproducible quality in work performed. A standard should not detract from the process but should enable a quality bar.
There are a lot of IT departments out there who have rigid standards on every aspect of application development. Coding standards, naming standards, etc etc.
Unfortunately, most shops have adopted standards as a means of control. Standards put in place for thus reason are often an actual impediment to the process of software design.
Standards should exist for one reason and one reason only - to ensure reproducible quality in work performed. A standard should not detract from the process but should enable a quality bar.
Tuesday, June 16, 2009
Hungarian Notation Diatribe
Sometimes I think coding standards are like fashion standards. Often, styles and notation are fawned all over one year and then criticized and passe the next.
The current target of the code fashion moguls is Hungarian notation. That's the idea of prefacing a variable or object name with the type of variable or object.
According to what I've researched, this is no longer needed because of Intellisense and cute little popups when you hover over code telling you all about the source of the entity. So, if you still use code conventions like btnEdit for an button with an Edit caption, you're some sort of reprobate.
Interestingly, Microsoft stays away from this debate in code samples. To them, a Label is forevermore Label1 in sample code. I can kind of understand that since being an ex-Softie I remember the reluctance to embrace 3rd party"standards".
Personally, I still use a type of Hungarian and probably always will. I don't see why it's such a bad thing to name a variable boolActive when it's a boolean flag or intChildren when it's an integer variable. Who does it hurt? It makes hard-printed code easier to read and it's easier to "digest" a block of code with its intent. The name of the variable or object has no impact on the stack or heap so what does it matter?
Stupid code standard dweebs. Get a real job.
The current target of the code fashion moguls is Hungarian notation. That's the idea of prefacing a variable or object name with the type of variable or object.
According to what I've researched, this is no longer needed because of Intellisense and cute little popups when you hover over code telling you all about the source of the entity. So, if you still use code conventions like btnEdit for an button with an Edit caption, you're some sort of reprobate.
Interestingly, Microsoft stays away from this debate in code samples. To them, a Label is forevermore Label1 in sample code. I can kind of understand that since being an ex-Softie I remember the reluctance to embrace 3rd party"standards".
Personally, I still use a type of Hungarian and probably always will. I don't see why it's such a bad thing to name a variable boolActive when it's a boolean flag or intChildren when it's an integer variable. Who does it hurt? It makes hard-printed code easier to read and it's easier to "digest" a block of code with its intent. The name of the variable or object has no impact on the stack or heap so what does it matter?
Stupid code standard dweebs. Get a real job.
Thursday, June 11, 2009
VS 2008 Bug with Master Pages
This is really dumb.....
I created a template that uses a Master Page with the skmmenu control - a very common menu control. With the template I have a default.aspx file that has nothing but a reference to the master page. Simple enough?
When creating a web site based on the template, I get an "Error Creating Control" when I look at default.aspx. However, if I first click on MasterPage and leave it in Source view and then click on default page, the menu bitmap is shown and no error.
Obviously, there's a synch issue here but even more obvious to me is that there are a group of testers in DevDiv at MS doing a shit job.
It's becoming increasingly apparent to me that MS is pushing out code that isn't being vetted fully and UX (docs, examples) can't keep up either. C'mon guys....all the cool tools in the world won't help us out here in the real world if you don't testit or document it.
I created a template that uses a Master Page with the skmmenu control - a very common menu control. With the template I have a default.aspx file that has nothing but a reference to the master page. Simple enough?
When creating a web site based on the template, I get an "Error Creating Control" when I look at default.aspx. However, if I first click on MasterPage and leave it in Source view and then click on default page, the menu bitmap is shown and no error.
Obviously, there's a synch issue here but even more obvious to me is that there are a group of testers in DevDiv at MS doing a shit job.
It's becoming increasingly apparent to me that MS is pushing out code that isn't being vetted fully and UX (docs, examples) can't keep up either. C'mon guys....all the cool tools in the world won't help us out here in the real world if you don't testit or document it.
Monday, June 08, 2009
ASP Menu Control and XMLDataSource
Alright, who's the dumbass who decided to make it so that it's very, very counterintuitive to create a horizontal menu strip using the ASP.Net Menu control with an XMLDataSource?
Beat my head against this one all day. It's easy in code, easy in markup, but only ONE root node from XML? Gimme a break.
Beat my head against this one all day. It's easy in code, easy in markup, but only ONE root node from XML? Gimme a break.
Thursday, May 07, 2009
Friday, May 01, 2009
Tech Surfing, USA!
Sorry....thinking about the title got me to thinking of old 60's beach songs. Anyway...
Being jobless for the last month put me into a lot of interview cycles. And, as is the wont, I was asked a lot of leading questions about my experience. How much do I know about Team Foundation Server? SQL Server 2008? WCF?
One can always buffalo and claim experience when the truth is that very few have a great amount of experience in any of these things. I opted for the truth - "heard about 'em, read about 'em - and I'll learn 'em when it's needed".
IMHO, anyone who claims expertise in anything in the development world with a shelf life of less that 2 years or so is a liar. Let's be honest here - a serious development project takes months of planning and requirements gathering. Serious and/or experienced developers don't bet the farm on brand-new technologies. They just don't unless they have really gullible clients.
So...the project kicks off and is projected to last 6-9 months (an IT average - look it up - used to be 18 months). During that time the dev team is doing their best to implement functionality using what they already know, right? So where does the new stuff come in? That's shit they play with at home.
SQL Server 2008? Gimme a break. Good DBAs don't mess with infrastructure without a compelling need. Sure, they might standup a SQL 2005 or 2008 database for a limited project but the business will likely be run on SQL Server 2000 ... maybe 2005.
TFS is great. From a test perspective it's nirvana in that you can create and manage tests within a development project. And it supplants VSS - a longtime standard. So maybe it has more traction in newer projects.
WCF? Everyone wants it, no one seems to really know it. It has reinvigorated looks into SOA architecture but we've had that since Web Services and SOAP and WSDL and all that junk came around in 2000.
The botton-line point I am making is that a good skills assessment should be made on what was hot 3 years ago because those are the only technologies that anyone is going to have any real-world experience with.
I am proudly ignorant of F#, cloud computing,and other current and future paradigms. Ask me again 3 years from now.
Being jobless for the last month put me into a lot of interview cycles. And, as is the wont, I was asked a lot of leading questions about my experience. How much do I know about Team Foundation Server? SQL Server 2008? WCF?
One can always buffalo and claim experience when the truth is that very few have a great amount of experience in any of these things. I opted for the truth - "heard about 'em, read about 'em - and I'll learn 'em when it's needed".
IMHO, anyone who claims expertise in anything in the development world with a shelf life of less that 2 years or so is a liar. Let's be honest here - a serious development project takes months of planning and requirements gathering. Serious and/or experienced developers don't bet the farm on brand-new technologies. They just don't unless they have really gullible clients.
So...the project kicks off and is projected to last 6-9 months (an IT average - look it up - used to be 18 months). During that time the dev team is doing their best to implement functionality using what they already know, right? So where does the new stuff come in? That's shit they play with at home.
SQL Server 2008? Gimme a break. Good DBAs don't mess with infrastructure without a compelling need. Sure, they might standup a SQL 2005 or 2008 database for a limited project but the business will likely be run on SQL Server 2000 ... maybe 2005.
TFS is great. From a test perspective it's nirvana in that you can create and manage tests within a development project. And it supplants VSS - a longtime standard. So maybe it has more traction in newer projects.
WCF? Everyone wants it, no one seems to really know it. It has reinvigorated looks into SOA architecture but we've had that since Web Services and SOAP and WSDL and all that junk came around in 2000.
The botton-line point I am making is that a good skills assessment should be made on what was hot 3 years ago because those are the only technologies that anyone is going to have any real-world experience with.
I am proudly ignorant of F#, cloud computing,and other current and future paradigms. Ask me again 3 years from now.
Tuesday, March 17, 2009
The Invaders!
Something possessed me to add the old series, The Invaders, to my Netflix queue a few months ago. I vaguely remembered liking it when I was a kid when it first came out n 1967. So far, I've seen several of the original episodes and, man!, what a great show that was!
It's done by Quinn Martin,the same guys who did The FBI and The Fugitive and it has the same hallmarks: Voiceover intro and ending, "Act I", "Act II", et al.
The premise is that some guy sees an alien spacecraft land and can't convince anyone of it. Meanwhile, while he's checking it out, his home is burned down, the police think he's nuts, and his business partner dies. So now he's on the run hunting them down each episode.
Great show and it's an obvious influence on later shows like the X-Files.
It's done by Quinn Martin,the same guys who did The FBI and The Fugitive and it has the same hallmarks: Voiceover intro and ending, "Act I", "Act II", et al.
The premise is that some guy sees an alien spacecraft land and can't convince anyone of it. Meanwhile, while he's checking it out, his home is burned down, the police think he's nuts, and his business partner dies. So now he's on the run hunting them down each episode.
Great show and it's an obvious influence on later shows like the X-Files.
Thursday, January 08, 2009
Cat - Raccoon Detente
If I hadn't seen it with my own eyes I'd never have believed it.
My family owns a cat that is the most peace-loving, mellow cat ever born. This cat had never attacked another animal as far as I know. It loves to go out on our back deck and watch the squirrels carry on and the squirrels have accepted the fact that it's a passive observer and will parade right in front of it without fear.
Sometimes I leave unsalted peanuts out for the squirrels and, the other night, there were several that the squirrels had missed. As I was reading on the back porch I saw a raccoon come up to the deck and - timidly - start to grab and each the nuts. Meanwhile, my cat came to the back porch door and wanted out. With some trepidation I let him out.
The cat went about halfway across the deck before noticing the raccoon. The raccoon backed off and started making itself look bigger by extending it's forearms and trying to look menacing. My cat just stood there looking left and right and never directly at the raccoon.
The raccoon advanced on the cat and got face-to-face and started swishing it's forearms and snarling. The cat continued to act non-chalant. The raccoon then took a few steps back and reapproached the cat peacefully, nodding it's head up and down.
It walked right up to the cat and both animals sniffed each other nose to nose. Satisfied, the raccoon resumed eating nuts while the cat sat scant inches away without a care in the world.
I called the cat in that night but the next night I let the cat out and a few minutes later saw my cat *playing* with the raccoon. Every few minutes the animals would stop playing and do a "kissy, kissy" with the noses again. It was clear that they enjoyed each others company.
Is that normal or am I raising the Gandhi of cats?
My family owns a cat that is the most peace-loving, mellow cat ever born. This cat had never attacked another animal as far as I know. It loves to go out on our back deck and watch the squirrels carry on and the squirrels have accepted the fact that it's a passive observer and will parade right in front of it without fear.
Sometimes I leave unsalted peanuts out for the squirrels and, the other night, there were several that the squirrels had missed. As I was reading on the back porch I saw a raccoon come up to the deck and - timidly - start to grab and each the nuts. Meanwhile, my cat came to the back porch door and wanted out. With some trepidation I let him out.
The cat went about halfway across the deck before noticing the raccoon. The raccoon backed off and started making itself look bigger by extending it's forearms and trying to look menacing. My cat just stood there looking left and right and never directly at the raccoon.
The raccoon advanced on the cat and got face-to-face and started swishing it's forearms and snarling. The cat continued to act non-chalant. The raccoon then took a few steps back and reapproached the cat peacefully, nodding it's head up and down.
It walked right up to the cat and both animals sniffed each other nose to nose. Satisfied, the raccoon resumed eating nuts while the cat sat scant inches away without a care in the world.
I called the cat in that night but the next night I let the cat out and a few minutes later saw my cat *playing* with the raccoon. Every few minutes the animals would stop playing and do a "kissy, kissy" with the noses again. It was clear that they enjoyed each others company.
Is that normal or am I raising the Gandhi of cats?
Monday, December 22, 2008
Burnin' For You
My stupid science project:
Sometimes I can be a doggone good engineer but I don't build well. Therefore, half of my projects end up as scattered notes in a drawer or very cool diagrams somewhere else.
I've been studying radioisotope thermal generators (RTGs) for some time and think I've come up with a half-decent design for a heliothermal generator using focal mirrors and off-the-shelf thermocouples. Essentially, think a heat collector with thermocouples back-ended into a cool granite block for maximum temperature gradient.
My generator would look like a very shiny satellite dish about 18-20" in diameter focusing solar heat on a "hockey puck" containing the ends of about 50 thermocouples. The others ends are sheilded and pass into a granite block or other thermal-negative material to maximize electrical potential.
The math indicates I might produce about 380 Watts at 1vA under optimal conditions. Cool, huh?
I see more notes in more drawers in my future :-)
Sometimes I can be a doggone good engineer but I don't build well. Therefore, half of my projects end up as scattered notes in a drawer or very cool diagrams somewhere else.
I've been studying radioisotope thermal generators (RTGs) for some time and think I've come up with a half-decent design for a heliothermal generator using focal mirrors and off-the-shelf thermocouples. Essentially, think a heat collector with thermocouples back-ended into a cool granite block for maximum temperature gradient.
My generator would look like a very shiny satellite dish about 18-20" in diameter focusing solar heat on a "hockey puck" containing the ends of about 50 thermocouples. The others ends are sheilded and pass into a granite block or other thermal-negative material to maximize electrical potential.
The math indicates I might produce about 380 Watts at 1vA under optimal conditions. Cool, huh?
I see more notes in more drawers in my future :-)
Tuesday, December 16, 2008
Live! (Almost) From the Atlanta MSDN Developer Conference
Sorry there was no "heads-up" on this one; I've only known that I would be attending for the last few weeks. Normally I'd have posted something that I'll be at event X on day Y but my work schedule and the craziness of this time of year precluded that.
The Atlanta (and other cities) MDC is meant to distill critical developer sessions from PDC into a one-day event. I talked with a 'Softie about the purpose and execution of the event (dude, sorry, didn't note the name) and it seems that MS was not entirely convinced this was not a good idea since, at $99 per registration with speakers and MVPs comped, it was going to cost the company money.
Well, IMHO, I got more bang from the buck at this one day event than I have from any other in quite some time. If you'll excuse the phrase, MS went balls-to-the-walls and showed off a lot of stuff coming down the road that was definitiely ooh-and-ahh.
In the keynote alone, superbly managed by Ron Jacobs, we got doses of Azure and cloud computing, "Geneva", new SQL Services, Live Services, Silverlight/VS 2010 stuff, and Windows 7.
Ron used an interesting analogy to being aware of future technologies - he said is what like playing Age of Empires online and managing your kingdom only to find it rushed by your competitior without warning. I thought at first he was a bit melodramatic and was heavu-handed with the point but then, later, settled into more concrete and less fearful uses of the analogy.
My main take-away from the keynote was the unbridled enthusiasm and hope for Windows 7. Yes, "hope" not "hype". Ron was very open about what Vista falldowns are overcome by Windows 7 and showed a bit of a cool demo using the new HP touchscreen PC (which further justified my upcoming purchase of that machine - In your face, Tray!!)
Yeah, I could post a kool-aid faux knowledgable lie about the other things he talked about and say how wonderful they were since he used the stock phrase "isn't that cool?" enough times but, honestly, I am not familiar enough with the technologies to pass judgement and I'm not one to gush on hype. I have grown very conservative over the years judging upfront how a new platform or technology will service me and my customers so no insult intended for Ron or my former employer.
A friend from the Fox world, Alan Stevens, presented on the future of managed languages and cool stuff like JQuery (damn, now I'm doing the cool thing). Alan did a great, great job. Allow me an aside for a moment, this conference had a room christened the "Community Courtyard" with whiteboards and seats to discuss things. Alan *openly* sought out people looking for more information and then ran informal seminars in that room using the whiteboards and a clear, consistant manner to answering questions and directing the discussion. A few of the other speakers added commentary but Alan captivated about a dozen folks with expert insight into a variety of web architectural scenarios. It's easy to find technology experts, people persons, and great teachers, but it's RARE to find all in one guy. If MS doesn't hire this guy or make him a permanent addition to their speaker list they're missing the boat.
I continued to attend sessions in the Tools and Languages track and, thankfully, my co-workers attended sessions in other tracks so Advanced Systems Design got a full knowledge spread from their attendees.
I'm still digesting and I'll undoubtedly post more in the coming days as it occurs to me. It's almost midnight and I'm really tired from the 5 hour drive. I didn't immediately learn a lot but I never do from 75 minutes of being dictated to. However, I did have my interest piqued a-plenty and saw many things to be on the lookout for in the future.
Hey, Microsoft! Great job by your regional folks and you should do this every year. Thanks!
The Atlanta (and other cities) MDC is meant to distill critical developer sessions from PDC into a one-day event. I talked with a 'Softie about the purpose and execution of the event (dude, sorry, didn't note the name) and it seems that MS was not entirely convinced this was not a good idea since, at $99 per registration with speakers and MVPs comped, it was going to cost the company money.
Well, IMHO, I got more bang from the buck at this one day event than I have from any other in quite some time. If you'll excuse the phrase, MS went balls-to-the-walls and showed off a lot of stuff coming down the road that was definitiely ooh-and-ahh.
In the keynote alone, superbly managed by Ron Jacobs, we got doses of Azure and cloud computing, "Geneva", new SQL Services, Live Services, Silverlight/VS 2010 stuff, and Windows 7.
Ron used an interesting analogy to being aware of future technologies - he said is what like playing Age of Empires online and managing your kingdom only to find it rushed by your competitior without warning. I thought at first he was a bit melodramatic and was heavu-handed with the point but then, later, settled into more concrete and less fearful uses of the analogy.
My main take-away from the keynote was the unbridled enthusiasm and hope for Windows 7. Yes, "hope" not "hype". Ron was very open about what Vista falldowns are overcome by Windows 7 and showed a bit of a cool demo using the new HP touchscreen PC (which further justified my upcoming purchase of that machine - In your face, Tray!!)
Yeah, I could post a kool-aid faux knowledgable lie about the other things he talked about and say how wonderful they were since he used the stock phrase "isn't that cool?" enough times but, honestly, I am not familiar enough with the technologies to pass judgement and I'm not one to gush on hype. I have grown very conservative over the years judging upfront how a new platform or technology will service me and my customers so no insult intended for Ron or my former employer.
A friend from the Fox world, Alan Stevens, presented on the future of managed languages and cool stuff like JQuery (damn, now I'm doing the cool thing). Alan did a great, great job. Allow me an aside for a moment, this conference had a room christened the "Community Courtyard" with whiteboards and seats to discuss things. Alan *openly* sought out people looking for more information and then ran informal seminars in that room using the whiteboards and a clear, consistant manner to answering questions and directing the discussion. A few of the other speakers added commentary but Alan captivated about a dozen folks with expert insight into a variety of web architectural scenarios. It's easy to find technology experts, people persons, and great teachers, but it's RARE to find all in one guy. If MS doesn't hire this guy or make him a permanent addition to their speaker list they're missing the boat.
I continued to attend sessions in the Tools and Languages track and, thankfully, my co-workers attended sessions in other tracks so Advanced Systems Design got a full knowledge spread from their attendees.
I'm still digesting and I'll undoubtedly post more in the coming days as it occurs to me. It's almost midnight and I'm really tired from the 5 hour drive. I didn't immediately learn a lot but I never do from 75 minutes of being dictated to. However, I did have my interest piqued a-plenty and saw many things to be on the lookout for in the future.
Hey, Microsoft! Great job by your regional folks and you should do this every year. Thanks!
Friday, December 12, 2008
Being There (Part Two)
I have to make this post to clarify a position since my Inbox indicates that my message was received as an indictment against VFP.
In a nutshell I said in my last post that I had disengaged from speaking about Fox or otherwise encouraging the Fox community because I thought it was akin to leading folks down a dead-in path.
What I DIDN'T say is that Visual FoxPro is a bad product or development platform. In fact it is my opinion that to this day and for some time to come Fox is a superior tool for delivering Windows-based line-of-business applications. It is also a superior tool for creating COTS applications involving heavy data.
VFP is the victim of indifferent marketing and secondary product placement. Not bad engineering. Good Fox apps will trump a lot of other apps in the Windows environment when written by good devs.
In a nutshell I said in my last post that I had disengaged from speaking about Fox or otherwise encouraging the Fox community because I thought it was akin to leading folks down a dead-in path.
What I DIDN'T say is that Visual FoxPro is a bad product or development platform. In fact it is my opinion that to this day and for some time to come Fox is a superior tool for delivering Windows-based line-of-business applications. It is also a superior tool for creating COTS applications involving heavy data.
VFP is the victim of indifferent marketing and secondary product placement. Not bad engineering. Good Fox apps will trump a lot of other apps in the Windows environment when written by good devs.
Saturday, December 06, 2008
Being There
My current employer has invited me to attend a one-day DevCon in Atlanta later this month. I accepted the invitation not because I was all that keen on attending but because I really like these guys and if they want me there I'll go.
As is probably obvious to thoise who know me, I've totally backed off of the conference scene - with the possible exception of the March MVP Summit. I don't respond to Call To Speakers and I don't solicit invitations to speak or attend conferences.
Why?
Several reasons.
While I cherish my part in the Fox community I can't see myself speaking to that community anymore because I don't have a good feeling about the viability of being a Fox developer in the future. Yeah, I could stand there and give a rousing presentation on CursorAdaptors or MemberClasses; I mean, I really know that stuff. But it would feel wrong to me; I would feel like the 50's actor standing on stage talking about the motivations of his character in a lesser-known movie from that era.
I am busting butt to ramp up my .Net skills. That's what I now do for a living but it'll take time for me to get to the same level of skill that I have/had in Fox. Therefore, I don't feel comfortable presenting in that area as well.
Finally, as a former member of the Microsoft VS Data team, people may expect me to have knowledge and skills that I don't have since all of my time there was spent on VFP. I don't want to look like a doofus. I'm not ready to live up to the expectations others would have of me because I was at MS during the release of .Net.
It would be easy - very easy I imagine - to parley my past into numerous speaking and writing engagements centered around Fox. But whom would I be serving? If I go out and tell developers that Fox is great, Fox is cool, and look what can be done!, aren't I forestalling them from considering other languages and professional growth?
Maybe I'm being maudlin but I believe I have an obligation to the hundreds of friends and the thousands of people who know me by reputation. That obligation is to not push folks towards technologies that are dying. It's to hold up a lamp in the storm and help point a way through the storm knowing I'm not a navigator.
As is probably obvious to thoise who know me, I've totally backed off of the conference scene - with the possible exception of the March MVP Summit. I don't respond to Call To Speakers and I don't solicit invitations to speak or attend conferences.
Why?
Several reasons.
While I cherish my part in the Fox community I can't see myself speaking to that community anymore because I don't have a good feeling about the viability of being a Fox developer in the future. Yeah, I could stand there and give a rousing presentation on CursorAdaptors or MemberClasses; I mean, I really know that stuff. But it would feel wrong to me; I would feel like the 50's actor standing on stage talking about the motivations of his character in a lesser-known movie from that era.
I am busting butt to ramp up my .Net skills. That's what I now do for a living but it'll take time for me to get to the same level of skill that I have/had in Fox. Therefore, I don't feel comfortable presenting in that area as well.
Finally, as a former member of the Microsoft VS Data team, people may expect me to have knowledge and skills that I don't have since all of my time there was spent on VFP. I don't want to look like a doofus. I'm not ready to live up to the expectations others would have of me because I was at MS during the release of .Net.
It would be easy - very easy I imagine - to parley my past into numerous speaking and writing engagements centered around Fox. But whom would I be serving? If I go out and tell developers that Fox is great, Fox is cool, and look what can be done!, aren't I forestalling them from considering other languages and professional growth?
Maybe I'm being maudlin but I believe I have an obligation to the hundreds of friends and the thousands of people who know me by reputation. That obligation is to not push folks towards technologies that are dying. It's to hold up a lamp in the storm and help point a way through the storm knowing I'm not a navigator.
Wednesday, November 26, 2008
Common Table Expressions
Someone I work with turned me on to SQL Server 2005 Common Table Expressions (CTEs) a few months ago and I'm really starting to get into them.
CTEs are ways to create a derived set of data; sort of like a view but it doesn't persist in the database after being used. Here's a simple example:
WITH ProductSales (ProductID, ProductName, TotalSales)
(
SELECT product.ProductID,product.ProductName,
TotalSales = (SELECT SUM(Quantity)
FROM salesdetail
WHERE salesdetail.ProductID = product.ProductID)
FROM product
)
You then use SELECT * FROM ProductSales to get the results. Actually, you have to immediately query the results before doing any other non-CTE SQL.
I wonder if this is something we should have thought of for Visual FoxPro 9. Probably would have if Gene Goldhammer hadn't retired since he tended to think about new data features.
CTEs are ways to create a derived set of data; sort of like a view but it doesn't persist in the database after being used. Here's a simple example:
WITH ProductSales (ProductID, ProductName, TotalSales)
(
SELECT product.ProductID,product.ProductName,
TotalSales = (SELECT SUM(Quantity)
FROM salesdetail
WHERE salesdetail.ProductID = product.ProductID)
FROM product
)
You then use SELECT * FROM ProductSales to get the results. Actually, you have to immediately query the results before doing any other non-CTE SQL.
I wonder if this is something we should have thought of for Visual FoxPro 9. Probably would have if Gene Goldhammer hadn't retired since he tended to think about new data features.
Saturday, November 22, 2008
Bits of Madness
I ran into an odd situation this week while coding a webform with Yes and No radiobuttons using the RadioButtonList control.
Traditionally, Yes and No are presented in a control with Yes being first. Therefore, in a .Net RadioButtonList control, the Index value for Yes is 0 (zero), while the Index value for No is 1. Being the old traditionalist that I am, I assigned 0 to the Value property for No and 1 to the Value for Yes.
This is an unbound control but is sourced to a Bit column in a SQL Server table. A Bit column is referenced in T-SQL as 0 for No and 1 for Yes, for example:
UPDATE mytable SET mybitfield = 0
This would set MyBitField to No.
When I grab this column into a Dataset in Visual Studio and want to convert it into an integer, I use the CInt function. CInt, though, converts a Yes to -1 and No to 0.
So now we have the following for my simple radiobuttons:
Yes No
Control.Index 0 1
Control.Value 1 0
MyBitField 1 0
CInt("mybitfield") -1 0
And this makes my head hurt
The simple solution is to assign Control.SelectedValue to Abs(CInt("mybitfield")) which will convert the -1 to 1 and leave the 0 values as is. But others might scratch their head while reviewing the code.
Another way to simplify this would be if I changed the control so that No came first, changing the control from Yes / No to No / Yes. That, however, goes against the way people think. I don't recall hearing anyone talk about a "No / Yes situation". I guess I could also reverse the assigned Values for the control so that No is 1 and Yes is 0 but that doesn't feel right either.
Sigh. Leave it to Microsoft to complicate something as simple as Boolean logic.
Traditionally, Yes and No are presented in a control with Yes being first. Therefore, in a .Net RadioButtonList control, the Index value for Yes is 0 (zero), while the Index value for No is 1. Being the old traditionalist that I am, I assigned 0 to the Value property for No and 1 to the Value for Yes.
This is an unbound control but is sourced to a Bit column in a SQL Server table. A Bit column is referenced in T-SQL as 0 for No and 1 for Yes, for example:
UPDATE mytable SET mybitfield = 0
This would set MyBitField to No.
When I grab this column into a Dataset in Visual Studio and want to convert it into an integer, I use the CInt function. CInt, though, converts a Yes to -1 and No to 0.
So now we have the following for my simple radiobuttons:
Yes No
Control.Index 0 1
Control.Value 1 0
MyBitField 1 0
CInt("mybitfield") -1 0
And this makes my head hurt
The simple solution is to assign Control.SelectedValue to Abs(CInt("mybitfield")) which will convert the -1 to 1 and leave the 0 values as is. But others might scratch their head while reviewing the code.
Another way to simplify this would be if I changed the control so that No came first, changing the control from Yes / No to No / Yes. That, however, goes against the way people think. I don't recall hearing anyone talk about a "No / Yes situation". I guess I could also reverse the assigned Values for the control so that No is 1 and Yes is 0 but that doesn't feel right either.
Sigh. Leave it to Microsoft to complicate something as simple as Boolean logic.
Subscribe to:
Posts (Atom)