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.

June 2004 - Posts

  • Multiple IIS/Web apps installed on same server -or- Stop Peeing in My Cheerios!

    The company I work for sells a shrink-wrapped webserver/sql server application.  I've worked with a couple customers who are having performance problems with our application and it amazes me all the other IIS applications they have running on the same box.  In one situation, the company is running a Java-based application that routinely consumes 450MB of memory in 4 processes.  Our application rarely takes more than 50MB, but it gets starved for CPU cycles and memory. It's hilarious when they come to us complaining our application is slow.  I ask them, “are the other applications running slow.” To which they respond “yes” - and yet they decide not to understand the concept of a single processor as a constraint in this situation.   I am almost to the point where I want to drive the aspnet_wp process priority up to real-time, do some static memory grabbing in startup and choke the other applications out completely.  Granted, we aren't dealing with fortune 100 firms with dedicated IT staffs, but come on!  These people are hired as IT professionals.  One company agreed to move us to a dedicated server and installed us on their Domain Controller!  I kid you not!  I'm not making this stuff up!  After slowly counting to 10 and letting rational thoughts back in, we are getting to the point I believe we should contractually require a dedicated server for support purposes.  No dedicated server, no support. 

    I think people deploy Windows Server OSs with a different mentality than they have with other servers.  Why is this?  This mentality has been around for years. It's similar to the user who complains their computer is so slow, and then you find it takes five minutes to load everything in the Add/Remove Programs dialog box. 

    I would hope there would be a better way than doing this contractually, but I just don't see any other way from where I stand.

  • Easter Egg apps?

    I'm toying around with a graphical game app I wrote a couple years ago in VB.  The game is sort of a tetris/bubble-style game and everyone I've given the game to gets caught up in it.  I've resurrected the app since I ordered the book “Managed DirectX 9 Kick Start“ that I blogged about earlier.

    Then a thought hit me.  What if I made the game a library that throws up a form and allows the game to be played. People could take the library and put it in their apps as an easter egg.  I could control the amount of customization (naming, functions available, etc.) throught the class interface.  I was thinking about adding some animations using DirectX, but maybe I'd keep it a simple GDI+ based drawing application to keep runtime requirements absolutely minimized. 

    I think this would be kind of cool, or is that just me?  Does anyone know of people who currently provide easter egg apps?

  • New book (to me) - Managed DirectX 9 Kick Start

    The book Managed DirectX 9 Kick Start: Graphics and Game Programming by Tom Miller showed up yesterday.  This is really a fun read for me, I won't be using DirectX in my current position - it's just something I've wanted to learn.

    I'm not a game programmer or 3d graphics expert (by a long shot), but I've done a lot of 2d graphics work in the past using the GDI and GDI+.  So far the book is a fun read and good resource.  I spent some time last night reading the book and I've found he does a nice job of explaining the setup, code and parameters.  I've always found the setup to be the most confusing portion of DirectX and he does a nice job of sorting it out. 

    I'm looking forward to the rest of the book. 

  • Creating a database during a setup application

    Has anyone performed the creation of a SQL Server 2000 database during a .msi setup (created using Visual Studio .NET)?  If so, did you role your own installer add-on or use someone elses? What product did you use?
  • random thoughts on wikis replacing newsgroups

    I think we're starting to see wikis encroach on newsgroup territory, but some development of these types of wikis need work.

    Newsgroups are so 90's

    I've always found newsgroups to be disjointed, difficult to search and post followup is sketchy at best.  Half the time you end up with answers from people that didn't grasp the original questions and no one pays attention to the post once a response appears. Problems are constantly restated (users not searching the newsgroup before posting) and reply quality varies greatly.

    Enter the Wiki

    I believe the answer lies in having a community that directs itself to some degree. On Microsoft's groups, I see the MSMVPs who have a somewhat vested interest in driving the newsgroups spending their time sniping recurring newsgroup posts.  A wiki solution would allow for submission of articles that cover recent posts.  These articles could come from anyone, but some type of review would be needed to ensure quality.  This way the community can respond to the change in usage patterns that the original vendor does not necessarily control, endorse or anticipate. 

    The structure could resemble the existing structure with one caveat.  The wiki “community” should be able to spawn sub-communities as needed.  For example, microsoft.public.dotnet.framework.interop could spawn a sub-community called “.distribution“ if participants were posing a large number of distribution questions focused on interop.  This keeps the group focused and able to maintain some sort of direction to the newsgroup by keeping the areas clearly focused while serving needs that may change over time.  Duplication with the distribution newsgroup needs to be handled with care, but the content can reference the other site where necessary and communication isn't that difficult.

    The wiki still needs the ability to accept posts, but the focus of the site is on searching existing material (articles first, posts second). The NNTP protocol could still be supported, but I question whether that is a good idea.  Given this specialization, perhaps a better name than wiki is needed. The term “wiki“ is far too general, annoyingly ambiguous and has a “geek's only“ ring to it.  It is the 'Pat' of current webspeak - referring to the old SNL skit.  Calling this type of site something completely silly like a “lighthouse“ would be more informative than “wiki“!

    So who mans the lighthouse?

    The question becomes who drives this site.  Seems to me it's a perfect extension for the platform vendors.  If you consider the MSDN site, this would be a content generator for the site.  As new wiki articles are posted in response to community issues, these become fodder for content inclusion by the vendor - allowing the development community to help drive the platform docs.  Personally, if I were an MSMVP (I am not) I'd be far more interested in monitoring/mentoring a community than simply responding to random posts on a newsgroup.  But that's me.

     

  • The changing landscape - relating a Don Box post about training

    Don Box blogged about getting together with Martin Gudgin and Ted Pattison recently.  In the post, he talks about the changed landscape in the training arena - how training has become commoditized, platform vendors are driving information and what he calls the 'Google Effect' (questions can be answered by a simple query).

    I was working with Regulator last night using the “search” function to grab regular expressions other people have built. This started me thinking about how tools are changing the development landscape.  There was a time when this type of knowledge and expertise would have been relegated to a small set of developers/contractors who acted kind of like 'Cleaners'.  (If you've seen the movie La Femme Nikita or the Bridget Fonda remake, you'll know the reference complete with personality type.)  Sometimes the incremental advances we see in tools allow us to take these jumps for granted, and the type of integration in products like Regulator is logical but not trivial. 

    I think great teachers are a rarity and Box, Gudgin and Pattison all fall into that category.  I've had the opportunity, as many of us have, to sit through presentations by all 3 and I went to a training session by Gudgin back in '99.  I've wondered why Box and Gudgin left the training arena, and his blog shed some new light on that area.  I hope he blogs more of those insights in the future.   I'm sure being able to drive not only .NET but also the SOAP services was pretty compelling as well.  A friend of mine once said the goal of every developer is to develop code that is actively running and driving applications that are being widely used.  That said, there aren't many positions available with the type of impact and fulfillment that Box and Gudgin are filling. Besides, it has to beat trying to repeatedly teach other peoples concepts and implementations.  But that's just me guessing.

    It seems to me the development community is starting to become more dynamic than it ever has before.  Perhaps blogging and wikis are an essential part of that growth. (?)

     

  • 10 Tools for .Net Developers

    Here's an article from the latest MSDN magazine - I've been waiting for the web publication.  The article is titled “Ten Must-Have Tools Every Developer Should Download Now” by James Avery.  He lists a nice range of tools and it's worth reading.

  • Nice SQL Server - App Dev Article

    Here's a nice article by Roman Rehak in Visual Studio magazine listing 10 things to consider when writing SQL Server applications.  He lists some good common sense considerations and approaches here.

  • SDTimes article - McNealy takes another beating

    SDTimes has an article asking “Is Sun Toast?” 

    I think it's interesting for the press to finally be seeing Sun as out-of-sync with their chosen markets.  Or as the management-speak in the article states - “they have deep structural conflicts in all their markets.” I'd like to hear that pre-edited thought!

    More interesting is the turning on McNealy.  I wonder if this perception is growing within the print media?  Every reporter used to go to McNealy looking for quotable material. Now they seem to be quoting Sun's COO more than the CEO.  That by itself speaks volumes about their direction.

     

  • Development is fun once again

    I've had this feeling over the past couple months, and I'm just getting to the point of writing it down.  I was talking to a friend I worked with on a project back in ’97 and it struck a chord - development is fun again.

     

    Not to say I ever haven't enjoyed developing, but I think the "fun and cool stuff" is starting to mature and we're starting to see people making leaps with the technologies. For me things started going dark in the Fall of 1999.  I was at WinDev West and everything just seemed to be repeating itself – the “tough issues” went from being real things we were trying to get our hands around with frenzied last minute presentation additions to glossy presentations delivered with feigned excitement.  People assumed that because “Author X” compiled an “exhaustive list” of workarounds that we were all doomed to follow their suggestions.  The groups of critical thinkers seemed to be on auto pilot. Worse yet, the ratio of conference groupies to real developers was on the rise – it was pretty obvious and frustrating. 

     

    I guess it went downhill before that.  I actually attended a 3 day training seminar on MSMQ - the author taught everything there was to know about MSMQ short of revealing source code.  Technically it was the most exhaustive review of a component I've ever seen.  But 3 days on MSMQ?  Perhaps this was a sign the world was coming to an end!

     

    Back to WinDev...   At that same conference, Don Box revealed the SOAP spec they had been working on and it was very cool.  Part of the audience got it, but most sat there and went “huh?”  Finally, something useful involving the web that didn’t require formatting tags!  I think that spec carried me in new tech development until .NET hit.  The following spring, I pushed for developing a SOAP-based application at a local Fortune 15 company. We had the thing up and running in no time.  They didn’t understand what it was – only that the solution worked.  They had the local Microsoft guys come in to look at it, and I remember them looking at it thinking “holy sh*t, somebody got this to work and it’s cool!”  It’s funny because then the corporate IT types came in saying we should use “WebMethods” or some such tool, but the plants (who funded the operation) were unwilling to back their recommendation due to cost.  We did it for free and subsequently the company’s Java people were struggling not only to understand their IBM/Apache/SOAP library – they were attempting to understand how things worked.  The fact it was so simple made watching this entertaining and confirmed my beliefs around the “enterprise java” crew.  I was laughing out loud when I read WebMethods later endorsed SOAP over their proprietary messaging structure .

     

    Back then, I remember looking at web development and thinking to myself, “I didn’t get into this business to hard code a bunch of HTML tags and spew forth user interfaces in the web equivalent of printf.” 

     

    I did some protocol level development, library tools and Win32 fat-client work from ’99 until .NET came along.  The ability to truly componentize working bits made this fun. And the integration of WebServices into the platform rocked.  We built an application built entirely on webservices in the fall of 2002 in the supply chain space.  The best part about this was everyone else in our space was using file transfers, batch processing or even worse, database replication services.  We did it all with a configuration screen that simply asked for a plant name and a URL.  Latency in supply-chain is absolutely killer, and WebServices gave us the edge noone else had. 

     

    So I guess I owe thanks to this person and this person.  I suspect their work on the SOAP spec kept a few of us floating through the cold tech winter.

  • Postcards from the Edge - funny dev story

    Back in '97 I was at VCDC - Orlando where Jim McCarthy was giving a “developer night” presentation.  (How I think he got the engagement is another funny story... but I'll keep on track here.)

    Toward the end of the discussion he's talking about the things that are done in desparation to ship a product and he opens the microphones for people to share their stories. I'm writing this as best I remember, but the punchline is one I'll never forget.

    One guy gets up in front of the microphone and says...


    We were working ungodly hours to ship the product and everything was breaking.  Upper management was screaming at us and everyone was unhappy.  So finally, the project manager calls us into his office and says -

    “We're going to fire one developer a week until the product ships.”


  • Backing away from MSMQ - this time

    Earlier, I blogged that I was looking at MSMQ to perform message delivery within our application.  Given our application is shrink-wrap and runs in a variety of computing environments (few of which have ActiveDirectory, much less MSMQ installed), I decided to shy away from that product. MSMQ is a good product in the right situations, but I believe this is a situation that merits a different approach.

    The problem is this:  when one plant is a part supplier to an item made in another plant, guaranteed messaging must take place.  Timing is not critical, but ASAP.  All plants must be capable of talking to one another - so symmetry in implementation and interface is desirable (we are talking supply-chain here).  MSMQ throws out symmetry at each plant to some degree especially when dealing with workgroup mode. Simplicity is always a good thing, and in this case it's a really, really good thing (cost, time, potential errors make MSMQ fairly complex). 

    The solution I've settled on involves calling a webservice from a DTS.  All required transactions get dumped into a transaction table and a regularly schedule DTS hits that table.  From there, it calls a C#/COM Interop object that makes a webservice call given the payload and http address. If it fails, it tries again on a subsequent run. If it succeeds, it marks the tx successful and life is good.

    I was considering MSMQ for its guaranteed deliver alone - no need for special routing setups.  The nice bit with the webservice approach is that the C# object carries an abstraction point with it, so I could interchange other delivery mechanisms on an “as-needed“ basis.  The other nice piece to this solution is that I maintain full visibility of transmission progress from the application.  On the other hand, MSMQ becomes a black-hole with a significant coding effort to deal with the queue structure at each plant - which becomes worse when you consider multiple plants can run on the same box.

    I initially discarded webservices because they do not offer guaranteed deliver. We have an entire supply-chain management offering built entirely on webservices, but I try not to get in the mode of applying one technology to every problem.   But I think the DTS-based implementation guides us well in the guaranteed delivery approach and implementation costs ($, time, support, etc.) are just too  compelling to dabble in message queueing.

  • Picking a development conference

    I'm researching conferences and VSLive looks to be the largest, but I'm wondering if it's the best.  It used to be that WinDev East/West was the most technically deep conference, but without the likes of Box, Gudgin, et al. I'm not too enthused about it - unless I hear otherwise.  I'm looking for 3 things - ASP.NET, C# and SQL details (more Yukon than 2000).  Anyone have any preferences or insights?
  • Linux code-bloat - interesting editorial

    Bob Marr wrote an interesting editorial on Linux code-bloat. I've been seeing people blogging their moves to dust off the old machines and put linux on them.  With the latest distributions, they're recommending 256MB and a minimum 800mhz processor.  I remember when I could run linux on my old 32MB P166 with KDE!  I haven't installed the latest distribution in a long time - I didn't realize this was happening to Linux.

  • .Math .92 Release

    I posted the .Math .92 release tonight.  This release includes NUnit-based testing code.  I am at the point of debating taking the project out of Beta, but I figure I'll let the product sit for the time being. This gives people time to test and report on the product.  I'm currently content with where the product is at - code-wise, documentation-wise and performance-wise.

    I'm going to take a break blogging .Math for a little while, there are some things going on at work right now that are far more interesting and fun. 

More Posts Next page »

Our Sponsors

Free Tech Publications