CodeBetter.Com
CodeBetter.Com
RSS 2.0 via Feedburner
           Do you Twitter? Follow us @CodeBetter

Steve Hebert's Development Blog

Steve's Blog - From .Net to dotMath and everything in between.

July 2004 - Posts

  • Moving in on a deadline

    My blogging activity has slowed in the past couple days - we're closing in on our release date of August 1 for some major enhancements to our product.  The progress is going very well  and it's looking like we'll make the release.  This functionality is pretty critical to growing our product and we've made a number of infrastructure additions to allow for efficient multi-plant solutions.  I've blogged about some of these items in the past including the webservice calls being made from SQL2K stored procs and it's performing very well in our live testing where we run the system side-by-side with existing systems.  Wrapping up the week is looking very good so far.

    Aside from that, my wife and I are buying a new house (purchase agreement signed yesterday) and I'm developing a fantasy football app in .NET on the side.  I'm taking a couple weeks off from karate after getting my brown-stripe belt last week.  I need to get the batteries recharged for the run at the black belt test.  I'll be happy to see July come to a close while hitting our deadline - then we'll relax for a day and start on our .1 release features. 

  • Campfire Development and the Wiki

    At my dayjob, all developers share coding responsibilities across the entire application. We all do SQL server developement, ASP.NET, webservices, etc..  Given this sharing of tasks across a large number of subsystems, knowledge sharing approaches have been relegated to campfire mode - we discuss them as necessary.  We get together and share approaches and discuss things we've learned in the process of coding.  We also share the products vision - where we see it going and discuss options of how to get there.

    As the company grows, this informal knowledge sharing becomes detrimental.  We will always have development campfires, but using them as the major source of knowledge dissemination on a project this large cannot be maintained. 

    - Many shared code pieces become 'assumed' knowledge and transferring that knowledge is difficult.  The application is one of the larger projects I've worked on and the team size is very small (3 of us).
    - Some rules are not immediately 'knowable' by virtue of the code.  Take index strategies, each index itself does not bear the qualities of the larger strategy.  The strategy is defined more by what's not there instead of what is there.  Cases like this burn lots of wood at the campfire.
    - Sharing the projects long term goal set is important to the health of the team.  If everyone can see the product roadmap and wishlist, everyone can better understand the direction. Rather than just coding the next spec and moving on, they look to share components across the entire application.  Identifying much of the sharing is the role of the scout(s), but every developer needs to be on the lookout for opportunies to reduce LOC through sharing.

    To combat these problems, I've put together a development wiki to share some of the campfire bits.  Now, when we get into any lengthy discussion, we log it on the wiki (I refuse to say 'wiki' it).  It'll be interested to see how this strategy works -  will we grab meaningful information and maintain it or will it degenerate into the equivilant of old code comments?  This will be fun to watch.

     

  • off-topic: I need one of these guitars

    I've always wanted to learn how to play guitar - finally somebody made a guitar that teaches.  Here's the Yamaha EZ-AG. Very cool!

    The link on the article doesn't appear to work, so here is one that does.

     

  • Wall Street Journal now provides RSS Feeds

    The Wall Street Journal now provides RSS feeds broken out into categories.  Here is their page that shows the various feeds that are available for both subscribing and non-subscribing customers.

    Subscribed.

  • Using SauceReader in place of RssBandit

    I'm starting to use SauceReader in place of RssBandit - primarily due to the integrated blogging support.  In spite of the switch, I have to say I prefer RssBandit's interface these days.  I just haven't been able to get RssBandit/w:bloggar working with my .Text blogs yet.
  • "Do you Blog" as an interview question

    I'm looking at refining my interview pieces as our company moves ahead and the question that keeps popping in my head is whether “Do you blog” is useful in feeling out a programmer's desire.

    Disclaimer:  By placing this question on a blog, I risk asking the choir what they think. However I think the question is valid and merits discussion.

    Ideally a question has a yes/no right/wrong answer for the sake of HR, but in an interview we are also trying to get a sense of fitness for the job.  I believe that every great programmer I've worked with has something to share with the software community - and they know it.  Some call it arrogance, some call it confidence, but ultimately a programmer desires to (1) make something unique and innovative and (2) have their code run on as many machines as possible. Without confidence a programmer won't test the limits of the technology available and look around for new ways to solve problems.  A programmer who fails to desire these traits resorts to being a simple coder/scripter.  If an interviewee said “I have a blog”, I would read it top to bottom and I'm sure it would reveal materials that reach far beyond the scope of the 1 hour technical interview.

    Back in the 90's I used the “have you read Code Complete” question as a springboard into a lot of insight and discussion.  I think that “Do you Blog” has the potential to bring out a lot of the same insight.  Does this person desire to turn out the best code possible? Does the programmer look to others in developing their own skill?  Does the programmer contribute effectively with other developers? 

    What do you think?

  • Using Sourcesafe over a VPN connection

    I've been using sourcesafe over VPN and the performance is slow.  In fact, slow is being optimistic.  Given that our upload speeds are 300kb,  a smarter tool is needed. Can anyone recommend one of the SourceSafe add-on/replacement products that work well over the web?  My only criteria is the same integration into Visual Studio.NET 2003 that I enjoy with SourceSafe. 

    Thanks

  • The beginnings of a new project

    A friend of mine and I are working on a new project in our spare time.  The application is based on a common past time (fantasy sports) and it's a lot of fun.  I've had a version of the program running for the past 4 years written entirely in C++/MFC and roles a persistence model that is entirely proprietary.  The rewrite expands the scope drastically and we've been going back and forth on the initial spec.  This has been a lot of fun.

    In the meantime, we have the webservices running and data persistence(XML based of course)/data model complete for the first phase of development.  Everything is being driven by the tests (NUnit).  Right now I'm working with the dotMSN library to prove out a concept in the application (so far I'm really liking the library).  I was looking for a .net library that worked with MSN Messenger and I have to say “thanks” to Kirk Marple for leading me to it.

  • Blogging as a company tool

    I am working with a company that has a number of offsite integrators and sales reps.  All but 2 of our implementations have been within Minnesota (our home state).  In order to keep track of things that are happening and improve communication, we are opening up an internal blog site.  Our integrators are all engineers (non-software) and I think the posts will make for fun reading.  I see this as a chance to jump outside the software realm and get a better feel for what's happening in the field at the same time. 

  • Flyweight and Visitor patterns in the Business Layer

    I was reading Steve Maine's blog entry on object-oriented business layers and it hit me that I've never seen a decent article on the use of the Flyweight pattern on the business layer. I think this especially applies in large relational based implementations and I've also found the visitor pattern useful in some situations where the OO-Relational mapping becomes hairy or the task complexity is high. 

    One complaint about OO models is that they solve the “constant-data, varying behavior” but fall down somewhat on “constant behavior, varying data”.  But in a relational transaction-based system the needed OO model is utilizing a small number of classes/instances to act upon large numbers of data entities and flyweights handle this very nicely.  Google searches turn up nothing on this approach, I'll have to keep looking...

  • Whatever happened to Kraig Brockschmidt?

    I was talking to a friend the other day about Inside OLE 2 by Kraig Brockschmidt.  This was a book we referenced heavily in old projects.

    If you're not familiar with the book it was considered THE book on OLE/COM until Don Box came along.  People referred to the famous “6 month haze” that you wondered through before actually grasping the book.

    After wondering what ever happened to Kraig, I googled to his Mystic Microsoft book.  I can't find the book in print anywhere, it seems to only be available through this link.  This link takes you to the “About the Author” section of the book, from there you can access any part of the book. 

  • .Math turns 1.0

    I'm happy to announce that .Math has gone 1.0.  I started blogging at the same the time I decided to release the library - I started blogging the process here.  NUnit tests have been added to the project and a full documentation set has been created as well.  You can dive into the library along with documentation here.

    I'm very happy with the experience.  I really wasn't sure what to expect, but I received some great help along the way.  The guys at ICSharpCode.net gave me some good hosting ideas, Jan Teilens provided some good code input,  and Ali Pavaresh and Girish Bharadwaj lent some good old “spreading the word” to a small project.  Thanks go out to Darrell Norton for bouncing some ideas on the inclusion of NUnit code on the project. I've got some other code I'd like to release shortly but some other projects are taking precedence right now. 

    This was a learning experience for me.  Prior to this I hadn't taken any code down the open source route.  If I had to condense the process into a short summary, I'd say review your licensing options first.  There are plenty of standards out there you can borrow from.  This is a choice you can make up front - you can always start overly restrictive and relax them as you go, but doing it the other way isn't a fair or (arguably) ethical practice.  Next, find yourself a host.  I looked at http://sourceforge.net and http://gotdotnet.com and there are others.  A good hosting match depends largely on your team size, sharing of coding responsibilities, initial project state, etc..  Finally, I'd recommend blogging the experience.  You won't always get feedback when you throw out ideas, but I always received input on the critical points. I also changed internet providers so I can provide a web page that demonstrates the project - I went with http://discountasp.net and I've been very happy with them (including service and performance).  My site doesn't require much bandwidth but being able to host .NET code is a huge improvement.  I'm happy to get out of a Linux hosting service that cost me roughly the same per month and offered me nothing from a development standpoint.

    There have been over 150 downloads so far - pretty good for a niche piece of code.  It'll be fun to continue watching the project grow.  Thanks to everyone for their help - I apologize to anyone I forgot. 

    -Steve

  • Software development bitmap hall of fame...

    I grabbed the Coding Horrors bitmap from the free chapter of McConnell's Code Complete 2 at the asp.netPRO website. 

    I think this picture strikes me as the funniest in all computer books - it's so dead-on.  When I run into ugly code, the image instantly pops into my head.  The only way it could be funnier is if the hair was animated like an old Scooby-doo cartoon. 

    My second favorite is the "recursive head-to-keyboard" animated image I've used in blogging before.

    There are quite a few in Jim McCarhty's book that I like, but the images are more than a simple little bitmap so I didn't include them here.

    Does anyone have other images that hit home?

     

  • Windows/MSN Messenger .NET libraries

    Has anyone come across the Windows/MSN messenger .NET libraries. I've been looking for them tonight without any luck. Am I experiencing a brain brown-out or what? I'm looking to pass messages between programs using Messenger - allowing for ad-hoc group message broadcasts and such. Any ideas on this? The Messenger approach seems to be the most logical, but I'm open to any approach - as long as I'm not installing something MSMQ on all the machines. Thanks, -Steve
  • ... a new project launches

    A good friend of mine, Bob Gross, and I worked on a project together several years ago.  Since then we’ve been on different projects and we haven’t had the opportunity to work together.  Bob’s helped me on an application I’ve been distributing for several years now and we recently had some thoughts that change the way this program can and will work. We’ve decided to work together on the application – now we just have to decide how we’ll license the software.  Will it be shareware?  Will it be open source/community driven?

    I’m really looking forward to it – downright excited to get started.  Working with quality programmers is always a joy and I should have thought about this sooner.  We’re collaborating via email and going golfing – perfect time to mentally white board outdoors.  In the process of doing requirements, I’m reviewing the book Software Requirements by Karl Wiegers and some other requirements titles, I’m amazed at how waterfall based the texts are.  I wish there was a requirements book that maps to the TDD approach.  As we’re tackling this task, I’ll be blogging some of these findings.  I really don’t like writing specs, but every once in a while it’s good to put on a different set of shoes and walk a few miles to stay acquainted with the issues. I’m taking a different approach to spec writing that I think will be interesting to grab and talk about.

    The application is based on fantasy football in particular but all fantasy sports in general.  I guess my dream job is writing an internet-based fantasy sports application 20 hours of the week, writing about football for fantasy football freaks 20 hours of the week (during the season), raising my family and doing karate 4 nights a week.  Oh yes, and working at home all but one or two days a week.  When I find that job, I’ll be sure to blog it!

     

More Posts Next page »