As I write this I think of Moby Dick, "Call me Ishmael"...
Err, well another phone call the Thursday before my week of training confirms that it too, was cancelled. Maybe its a sign saying you should be a developer and only a developer - I really don't know why I want the MCSD other than the fact that it would be good to have. I mean, its not like I'm going to get a pay raise, or have my role changed at work. Maybe I'll just stick it on the back burner for now and ride on my MCAD at work (which btw has gotten me no where, gotta love companies who do that).
I think Microsoft is trying to get me to go to TechEd. This is the second time I've seen this (BTW - the image is not doctored):
Sounds like a nice headline for a newspaper, huh. I thought so too. Anyway, to the point of this post, I was struggling with formatting a Guid to the "registry" way of viewing it, you know - 32 digits separated by hyphens with curly brackets around it.
So for the past 2 days I've banging my head against anything replacable - wall, keyboard, desk - you get the idea...but WHY? Well I was trying to use ODBC to insert rows into a dBase file, and it was giving me an error: "Invalid syntax in Insert Statement". Just for reference, here's an example of my insert:
Just ran across NewsLook which is a NNTP reader for Outlook. Seems pretty promising, but I don't see why you would need it if you have NewsGator and my free NNTP Posting Plugin. NewsLook is currently in beta, and will cost roughly $40 USD when released.
I just had a student from a local high school job shadow me for about an hour or so. Overall, I think I left him with a very good impression on what development work is really like - well, in the sense that I spend some of my mornings doing bug fixes. I was able to show him how to diagnose & fix 2 different applications, 1 of which was alerted to me while we were working on the first application. However, I feel like I might have lost him at parts, because he hasn't done much programming himself, and has only really used BASIC (eek!) and HTML (ahhhh). I did ask him if he was lost at any point, and he said that for the most part he understood what I was doing. I guess thats a good thing, since he wants to become a game developer himself.
Finally, a way to pack dBase files in .NET. Something we've been looking how to do for a LONG time at work.
So heres an interesting question - I've been using this weblog for quite some time now, and I just realized that I don't really know what "Agg Views" are. Now - before you go off your high horse, I know that they refer to RSS subscriptions in Aggregators (I'm not a moron), but my real question is, how is this stat collected? Is it based on RSS subscriptions to only my feed, or does that include the main feed subscribers as well? Anyone care to enlighten me?
Ahh, so I haven't blogged since last Thursday...guess I've just been too busy lately. Anyway...
So Bill won, hmph. I wanted Kwame to win, but oh well. I'm in the middle of commercials, so I'm not sure what job Bill's going to take, but I would take the Golf Course job. I've lived in IL all my life, and it would be awesome to be out on the west coast.
I've been fighting this problem for quite some time now...whenever I was using IE or other applications where screens would refresh - and I would use my scroll wheel - the page would refresh, and sometimes go backwards and forwards. It was a very erratic and annoying behavior, but I finally figured out the culprit.
As a followup to my previous post on gathering research information, I wanted to share the findings with everyone in case they're put in the same situation I (and another co-worker) was. Thanks to the strong efforts of my co-worker, we were able to produce good measurements of TDD effects.
Advantages of TDD:
- 87.5% of developers reported better requirements understanding.
- 95.8% of developers reported reduced debugging efforts.
- 78% of developers reported TDD improved overall productivity.
- 50% of developers found that it decreased overall development time.
- 92% of developers felt that TDD yielded high-quality code.
- 79% of developers believed TDD promoted simpler design.
The aggregate score of these findings shows that 80% of developers found TDD to be effective. Also, there was an increase in code quality which passed 18% more functional black-box tests.
Challenges of TDD:
- 40% of developers found adoption of TDD was difficult.
- 16% increase in development time of projets.
These results were of a survey done, and not scientific facts. It proved difficult to find statistics on TDD due to the "new" nature and adoption of TDD in the IT arena, which is why our results were based on surveys that were found across the internet.
- Elfriede, D. "Effective Software Testing: 50 Specific Ways to Improve your Testing"
- Beck, K. "Test-Driven Development"
- E. Michael Maximilien, "Assessing Test-Driven Development at IBM" Found Here.
- George, B. and Williams, L., "An Initial Investigation of Test-Driven Development in Industry" Found Here.
- "An Evaluation of Test-First in University Environment" Found Here.
Update: Some confusion about where we retrieved this numbers has come about. Our company did not do this survey, it was retrieved from one of the references stated in this article. I will talk with my co-worker, who found the survey, to give me specifics on which resource it was found at.
Update 2: After talking with my co-worker, she stated that the information I quoted above comes from the PDF found in reference #4. This was a study done over in Germany.
Scott Louvau just recently posted a summary listing to the Whidbey newsgroups on what his team is working on. Some items were notable enough to get blogged, so here ya go in case you missed them:
As a followup to my blog post yesterday, my boss decided to throw a new one at me - give an example of how we can use NUnitASP for our projects as another form of TDD during the project life cycle. Well, I hadn't used NUnitASP before, so I jumped right in following their step-by-step tutorial for newbies. Sure, the tutorial wasn't a real-world example, it did give you an idea of how things work and what needs to be done.
I just ran across this very well stated newsgroup posting (to microsoft.public.dotnet.general):
I'm trying to shift my division at work into using TDD. Everyone seems to be in favor of it, however they're wanting some quantitative measurements via Case Studies or White Papers that will show over time or over a project that TDD decreases bugs and increases developer productivity. Does anyone know of any references that are available online that I can point them to?
Wally just pointed out a new data provider for .NET that will allow developers to talk directly with AS/400 servers. I don't know how many times we've had to access data on AS/400 systems in a round-about way. No more will we need to use DTS in SQL Server to transfer data over on a nightly basis!
I'm sitting here at work building an application using TDD (which by itself is another post, and may be coming later), and every time I start a new class for another piece of the puzzle, I'm hating on how I have put the keyword "sealed" class in my declaration. Now, this isn't a major issue, but it can be if you plan on releasing an API for customers to build against. What's my issue? Well, I'm wondering if the "sealed" and "notinheritable" keywords should be applied by default in Whidbey.
My proposition comes from the fact that it is good design practice to have your classes become "sealed" or "not inheritable", that way your users cannot accidently inherit and break changes with your API. In practice this is a big deal, and how often are you building an API, and you become lazy to allow the default attributes/keywords/accessors be applied to a API (classes specifically, making them public instead of private or internal/friend)? I'm almost betting very frequently.
I propose that in Whidbey, and future versions, that "sealed" or "not inheritable" be applied by default to all new class declarations created by the IDE. This way, you have to make an effort and think about what you're doing when removing this keyword, and hopefully make you think if you really need to do so.
As of right now, I realize that this can be accomplished by editing the templates used somwhere deep within the directory structure of VS.NET, so please don't tell me I can do this now. What are you're thoughts, feelings, objections to this?
I'm finding it very hard to keep track of things. I've subscribed to the "main" feed, and I get about 100+ messages a day that I normally just delete due to people just wanting to know why something is the way it is. In reality, I just wanted to get a feed of when new videos are posted...maybe I should narrow the feed down? Oh well, I've not really gotten around to it and it doesn't bother me to hit Ctrl-D 5-10 times an hour.
I guess the major thing that I would like changed, is if Channel9 did start posting a CommentsRSS feed, and then have NewsGator be able to grab those too. But, until either of those happen I guess its just very little surfing to & reading actual complaints/rants on Channel9 and waiting for those new videos to come across.
I just realized today that my home server (which hosts Vault for me) has been up and running for quite some time. In fact, I believe it has been up and running as long as I've moved into my latest apartment (middle of February). Going under this assumption, I checked it out with a little tool called "uptime" from Microsoft, and I was right...its been up and running for 53 days and counting. Nice! I don't think I've ever had a server (even at work) be up this long without needing a reboot. And yes - it is updated with all the latest security updates.
I started playing around with ASP.NET 2.0 a lot more this afternoon, and I've definately found some stuff that are a great enhancement.
- When referencing custom server controls that are stored in the GAC, you only need to have your register directive contain the TagPrefix, Namespace, and Assembly. There's no option to "CopyLocal" anymore, however it pulls directly from the GAC if the assembly lives there. Very cool, and easy for updating to future components. However, I do miss the "CopyLocal" option in case I want different applications using different versions.
- Nesting Master Pages is awesome! I've got my overall layout with 1 content page. I then have another master page that has its masterPageFile set to the main layout. Then, in my separate pages, I reference the nested master page and everything comes together. The one thing I don't like about this is that you can't use Design view to modify nested master's and pages deriving from nested master pages.
- I did find a bug when using the TreeView control and databinding it to Site Map Data Sources, or maybe it was the theme I applied to the TreeView...however, make a mental note. If you get a message stating that your <head> tag needs a runat="server", your <title> tag will get overwritten for some reason, and a default <title> tag with the contents "Untitled Page" will be used instead. I've submitted this bug to the Whidbey newsgroups.
- I wish there was a way utilizing the Site Maps & Tree View to collapse everything except for the current node (or parent node if I'm in the sub-node) to be collapsed. Take my website for instance. When you're on the homepage, the only sub-links you see are relevant to the homepage, however other broad subjects are visible with their children hidden. I'm sure there's a way to do this via code, but it would be nice to have a property for this type of situation.
- Why is it that when creating your Site Map, the <siteMap> element can only contain 1 <siteMapNode>, however, <siteMapNode> elements can contain 0-N many sub elements? Again, I make reference to my website, in which I don't want an top node, I just want my main headings. Any info relating to this would be helpful.
- Here's an interesting question...when working with code-behind files for web pages, why is it that the icons for those code-behind files have the resource file icon? Shouldn't I see a C# icon if it has a .aspx.cs extension or a VB.NET icon if it has a .aspx.vb extension?
- Themeing is extremely powerful and uber cool. At first I couldn't figure out how to use themeing against custom server controls, but then after an error message saying it couldn't find my custom tag prefix, it hit me. Just place your Register directive at the top of the skin file and all is well. Talk about making things easy :)
- I'm starting to enjoy not having to recompile everytime I make a change now, however I'm sure my view will turn to frustration again once I start working with classes & code that I would like to be verified against for syntax errors prior to viewing the webpage.
And that's it for today, I gotta start packing so I can get to my parents home for Easter, so I hope my little insight will help everyone out.
Happy Whidbey Coding!
Looks like theres finally something out there that will be competing with NewsGator and my NNTP Posting Plugin that allows for true NNTP support in Outlook. However, there seems to be issues with combining this plugin with NewsGator. Obviously I'm sticking to NewsGator & my NNTP Posting Plugin, why ditch my own stuff.
Preface: This post is in no way trashing or slandering the men and women that serve our country. I have great respect for those men and women serving our country during these frivolous times. It is, however, slandering the media and their recent attempts of providing "the best news around."
This morning, I woke up to do my morning routine - check email, get updated on blogs, take shower, etc. During which, I usually have the TV set to the Today Show on NBC. Unlike every other day, today I was enraged on what I heard. No, it wasn't a touchy story they were covering, but it was just the overall content of a interview with a family member of a man who was killed in the fighting in Iraq. As I'm listening to it, my mind starts to crank out hateful messages towards the media in these dire times. I started thinking to myself, why am I even watching this current story, why does anyone? My thoughts then shifted to completely hating NBC at that current moment as Matt Lauer probed more and more personal information out of this man, who just lost his brother, all because "it makes good news."
Why must the media cover stories like this? Why must they single out individuals who have just lost family members. I'm sure these family members want to get their story told, however, bringing them on national television the day after their relative died is not the way to do it. Let the families grieve, let them go through the normal process that any other person in this world would go through when loosing someone they love. Why should the media make their loss "special" just because they died in combat? Do you even realize that there has been approximately 600 US men and women that have died in battle in Iraq since we invaded? Why must the media choose one person or family to "portray", when there are so many others out there that have experienced the same situation. In reality, I don't care about these stories. Let the families grieve and get their stories published in books. Maybe then I'll care and read them...but I don't want my morning slammed with sorrowful stories that have no relevance to me.
I further extend my hatred towards the media circling around Princess Diana and Kurt Cobain. I have nearly the same feelings towards both of these stories as I do above. I find it absurd that the media still digs up pointless information about both of these great individuals years after their deaths. The whole fact that every year on (or around) Kurt Cobain's date that he passed, the media (especially on MTV) hosts "specials" concerning his life/death/music. I mean come on, the man has been dead for 10 years now, let him rest in peace. Then, there are the issues with the media constantly spouting more and more "theories" on what actually happened to Princess Diana the night she died. I remember watching (again) the Today Show awhile back, on how there were "new, never undisclosed tapes" of conversations with Princess Diana. Again, I state... so what, let her rest in peace.
So, why am I so adament about these issues? Well, it just drives me insane on how impersonal the media is. They don't care about the person, sure it may "seem" like that when they do a story, but in reality, they're just looking for the "best story." If that involves bringing on someone who has just lost a family member just the day before, so be it...its good news, right? I'm just waiting for the day when the media fails, when it starts reporting non-biased news, or even when they report news that I give a damn about. But, I think it'll be a cold day in hell before that even happens.
Okay, okay...I know Strongbad isn't real, and could never make an appearance anywhere (well short of a costume)...but I met the real life version at Walmart this eve. This story is true, it happened in front of me and my girlfriend, and in no way do I have any relation to HomeStarRunner.
So, at Walmart, this tall lanky old geezer was checking us out. Why he wasn't at home in bed is beyond me, but sure enough, he was working late and had an interesting way of entertaining himself. Normally when an item gets scanned you hear a "boop" noise (and if you've never heard this, then open your ears next time!), and this noise plays a major role in the story. So, here it is...the real life Strongbad story:
Strongbad: "Hey there, umm...alright, lets see there...doo doo doo, what ya got there"
Strongbad: "Ohh, another one...Boop"
Strongbad: "This makes three...Boop"
Strongbad: "Okay, how about $17.25"
Me: "Umm, how about we shoot for $15?"
Strongbad: (chuckles, then turns towards the register - randomly points to some gift cards hanging there and mumbled) "Looky here, got some gift card for babies"
Strongbad: (still mumbling) "They got duckies on them...mmhmmhmm...thats weird"
Strongbad: (still mumbling complete nonsese)
Me: "...Thanks..." (and I walk away astranged)
So yeah, if you improvise Strongbad's voice for whatever the Walmart man said, you'd get a good representation of why me and my girl friend laughed for about 10 min. all the way home. I think they're hiring anyone at Walmart thesedays, even cartoon characters.
If anyone would ask me that question right now, I would respond with "I'm insanely bored." But here I am, sitting at work, doing nothing. Not because I choose to do so, but because there's just nothing to do. Normally I have some bit of a programming project I can work on, like WebDeploy or Resizer, but recently I've come across no more items to add into these. Well, I'm sure Resizer could be beefed up a bit, I just don't feel like it right now.
So - here I am, writing a blog entry about what I do when I'm bored. Well, most of us would say "I program when I have free time"...sure, so do I...but like I already said, I don't have much to program right now.
Then, there's the ever allusive surfing the internet. Ohh, what I wouldn't give to see a "You've reached the end of the internet, please turn around" webpage. Maybe I should create one?
Don't we forget another time waster at work, getting away from your desk and wander around the office aimlessly. I never realized how relaxing an aimless walk was.
So - what do you do when you're bored out of you're mind?
As a side note, since BlogJet currently doesn't have spell checking, I generally use Dictionary.com to check those iffy words. So, when checking a few out on this post, I noticed that http://www.dictionary.com doesn't point directly to the "search & retrieve" page anymore. Nooo, instead I have to go to http://dictionary.reference.com. You realize how much harder & longer that takes to type?
Here comes the obligatory 100th post -- 'This is #100! Its been a long journey to get to this point.'
Okay, since that was cheesy as hell, I guess I should fill the rest of the post with an obligatory canned plug: Channel9 is live!
The Central IL Dot Net User Group will be meeting this Wednesday, April 7th at the Microsoft Office in Bloomington, Illinois. We will be hosting Nick Lews, a .NET Developer Evangelist with Microsoft's National Architecture Team in Chicago. He will be discussing Web Application Security and the Microsoft Reference Application (WebHack).
If you're in the area and want to join us, we'd be happy to meet & greet you! Our meeting starts at 6:00 PM CST. Hope to see you there!
One of my goals this year, is to earn my MCSD for .NET, however training in the Central IL area is very spotty, and damn near impossible to get. I recently signed up for 2710: Analyzing Requirements and Defining Microsoft .NET Solution Architectures through Levi, Ray, & Shoup (LRS), and I was just informed today that my class had been cancelled due to the lack of interest. What am I? Am I not interested?
This just reminds me of when a co-worker went through LRS earlier this year for some training, and he got a one-on-one training course only because they forgot to cancel the class. Lucky him, I guess...but still, why do they need to cancel classes when you have at least 1 interested person trying to further educate themselves. If you started a public school, and only had 1 kid, would you turn them away because you're class wasn't large enough? No, because that kid would not get the education he or she needs. Why is this any different?
I'm really not pleased with LRS right now about this, and as such I may have to go to Peoria or Chicago to actually get my training...at least in Chicago they assure you're class won't get cancelled. Which, unfortunately means that its going to cost me/my company more $$ to send me off to training. Oh well, its all for the good of me, right? LRS doesn't think so.
My team at work is starting to look into using the Extreme Programming (XP) model, and as such I've started to do some reading up on it...and determined that its driven highly on TDD. This is something, unfortunately, I've had no experience with. So - I downloaded NUnit and started working with it, and (like always) I was trying to find the most streamlined way of running my tests.
The NUnit GUI wasn't bad, it does what it needs to do...however I wanted something integrated into VS.NET. Sure enough, my praryers were answered when "NUnit Testing Integrated in Visual Studio" came out on TheServerSide.NET. So - I downloaded TestRunner, and started giving it a whirl. Its a bit cumbersome to figure out how to make it work...its not too intuitive, as the buttons don't have any tool tips, but the FAQ does give you a description of what each does.
Anyway, I suggest using this tool, its very cool and allows you to not leave the IDE at all.
Through my normal routine of reading/responding to Microsoft newsgroups, a question came up about "100% Managed Code" phrases that companies use. Specifically, the user was asking about a PDF component advertising it as such, and was just wondering if it was possible that they were using the Adobe APIs still. Well, my response basically stated that since they're advertising it as "100% Managed Code", that it probably doesn't use Interop, and has built on the described api.
This has basically made me start thinking about the term "100% Managed Code", and why companies use this. As I can see, this may be a nice selling point to business managers and what not, but it really doesn't play into a developers mindframe when they're checking out components (unless there is a defined restriction set forth by their company). I for one have been seeing "100% Managed Code" for several years now, and always disregard what they're saying, only because I don't care. So what, its "100% Managed Code", does it work? If you say yes, and I don't need to purchase anything further I'm sold.
So, why is this a big deal? Well, I feel that some companies may misuse and overuse the phrase "100% managed code" just because its hip, cool, and "the" thing right now. Okay, okay...so does that mean I can advertise all my free server controls as "100% managed code"? Well, sure...I mean, I use C# to build them, they need the .NET framework to run, why not. Well - DUH - of course my controls are "100% managed code"...otherwise you really wouldn't be able to use them...which is the main reason its implicitly dubbed "100% managed code".
However, the biggest gripe I have, is with those companies that release a new component or tool, and just to add hype, they state "100% managed code" and, lets not forget "Built on the .NET framework!" Wow, thats amazing...or is it? In this day in age, you're seeing a lot more applications being built on the .NET framework more and more, but why are companies still overusing and misusing this phrase? I think its a increasing trend that has absolutely no affect on how I look at 3rd party components when determining if they'll work for what I need them.
So whats my point? Think about your descriptions of components/tools, and how is it going to appeal to the common developer. Are we going to be amazed that it works - probably. Do we care that its written entirely on the .NET framework, not as long as my previous statement holds true. Remember that about 95% of the time, its developers that are given the task of finding a tool/component that solves a certain problem, not a business manager - so why do we need the hype?
WebDeploy has been updated. Please visit here for more information.
Well, I'm sitting here, struggling...struggling to find out how to get the active build configuration from a visual studio project file. I've been studying the XML file, and there is absolutely no where that denotes what the active build config is. I've also looked in the project.user file as well as the solution file, still...no luck. Would anyone like to share how you determine the active build configuration?
In response to Adam Kinney's post on Ego-Building Google Searches:
Are using my pet projects cheating?
Thanks for the links Graemef! Definately wasted about 30 min of my time...god I love April 1st.