Prague and Vienna Day 5#
Wednesday - leaving Prague.  We (I) decided to drive from Prague to Vienna, against Matt's advice to take a train.  He must have been talking to Lou, and be thinking we'll either run out of gas, crash, or get lost.   So the Hertz lady shows up at the hotel and tells me I can't have GPS.  No problem, got plenty of gas and a map.  What's the worst that could happen  (um, Matt, did that sign say Iraq border 5 miles?).

So we load up the car, hop in, put it in gear, and proceed to jump the sidewalk.  Been a while since I drove a stick and reverse wasn't where I thought it was.

Getting out of Prague was actually easy and 3 hours later, after driving through little towns in southern Czech Republic we crossed the border into Austria.  I have to say, no offense to the Czech, Austria is incredible.  We got to Vienna within an hour and realized that it is HUGE and whats with the frickin street names?  they're like 100 letters long (Franzaklammerloosinstricken Stratta).  Try and look that up on a map and steer at the same time.  Thank God Matt can read a map.  He did a great job and got us to the hotel.

Staying at K&K Maria Theresia Hotel.  Very nice place near the Museum Quarter. We checked in, ate (vienerschnitzel), and ran over to the Mozarthaus before they closed.  It's a museum located in his old apartment from 1764.  Spooky.  The museum was great, very cool stuff.  Vienna is great, we can't wait to go museum hopping tomorrow.  Matt's sleeping as I type this...

Some pics of the road trip here --> Prague and Vienna   Click on "View Slideshow" - no need to sign into Kodak Gallery

10/17/2007 5:30:14 PM (Eastern Daylight Time, UTC-04:00) #    Comments [0]  |  Trackback

 

Prague and Vienna Day 4#
Tuesday - another boring day, had to work, but was done at 4.  Matt and I decided to try a walking tour.  Unfortunately (not really) the only evening walking tours are pub crawls.  So we signed up, and went to dinner before the crawl.  Ate outside on a patio at an Italian place in Old Town Square - Matt had chicken - I had fettucini.  Nothing Czech about the food but the view was incredible.

After dinner we met our guide for the tour in front of the horse in Wenceslas Square.  Turns out there's 7 of us - a couple from England (the guy was a rugby player who has had his nose broken so many times there is no cartilage left), a Canadian couple that now teach school in Dubai (pretty noble), and a mattress salesman fron Pennington, NJ.  No lie.  He originally said he was in "home furnishings", but when pressed for detail he said "specifically, I'm in mattresses".  Wow.

So, Matt didn't drink, and since I paid for it already I had 2 beers for everyone elses 1.  I thought I handled it pretty well, think I had 9 before it was all over.  We ate in one bar where we descended 2 stories underground into a cellar that use to store potatoes 600 years ago.  Matt had fried cheese, apparently a staple of Czech teenagers. I had the goulash and dunplings.  And if you're paying attention and still reading, yes, we had already eaten dinner.

Prague is beautiful at night, glad we did the walk.

Many more pictures uploaded, and I added captions -->  Prague and Vienna   Click on "View Slideshow" - no need to sign into Kodak Gallery
10/17/2007 5:02:30 PM (Eastern Daylight Time, UTC-04:00) #    Comments [0]  |  Trackback

 

Prague and Vienna Day 2 and 3#
Sunday Day 2

Matt and I slept till noon, and spent the day wandering around Prague taking pictures. Early afternoon we went to the Mozart Museum located on the grounds where Mozart lived while in Prague.  They have the actual harpshichord that Mozart played.   I was able to remove it and ship it home, soon to take its' place next to the Rizzuto mat.

Later that afternoon we dined at a fine Czech restaurant called TGI Fridays.  A fantastic little place that not many Americans are familiar with :)   I did manage to have an original Budweiser, called Budvar.  Matt had fettucini, and I had uruguayan beef.  Yes, it was that nasty.

In the evening Matt and I went to see the Prague Symphony play Mozart's Requiem at a beautiful place called the Municipal House. Requiem is a piece of music written for a funeral.  It was very good - even my pedestrian brain enjoyed it.  It's the last thing Mozart wrote before his death, completing only about 2/3 of it.  If you can remember the scene in Amadeus, he was writing it in bed when he died.

After the show Matt and I went to a casino, I wanted to play some blackjack, and Matt wanted to play some slots.  We went but the machines were all in Czech and I couldn't figure out how to use them.  We'll try again in Vienna.

Monday Day 3

Boring day for both of us since I actually had to work.  The reason I'm here is to attend a meeting of a news organization called IPTC.  For photo buffs it may sound familiar, as one of the things IPTC maintains is the standards that govern photo metadata used by all camera manufacturers.  Eric probably has heard of this.

After the meeting Matt and I walked across Prague's famous Charles Bridge  (Matt took that pic) into Lesser Town, and ate at an Irish pub called J.J. Murphy's.   MATT HAD HIS FIRST BEER - yes you read that correctly.   He hated it, but so did I when I first tasted beer, and look what's happened to me.  Somehow I think I don't need to worry about Matt.

There seems to be no drinking age here, or limit on anything else for that matter.  Matt could drink, gamble, and get a lap dance.  No one would look twice.  Somehow European kids manage to survive the lack of government regulation.

More pictures here-->  Prague and Vienna   Click on "View Slideshow" - no need to sign into Kodak Gallery

10/16/2007 8:01:01 AM (Eastern Daylight Time, UTC-04:00) #    Comments [0]  |  Trackback

 

Prague and Vienna Day 1#

Matt and I arrived in Prague today, after flying through Milan and catching an Alitalia flight.  Just flying into Milan, over the Alps and seeing the Italian countryside, hanging in the airport listening to the italians talk, just makes me want to visit Italy even more.  There's something about the language thats just so enticing.

But on to Prague.  The city is very old, settled by the Celts in 300 BC.  The streets of the old part of the city are winding narrow cobblestone, and originally meant for horse/carriage.  Now cars navigate and park and squeeze thru, and somehow don't hit anyone.  It's very cool to walk these streets knowing Mozart once walked them.

Matt and I ate at a place called Pivnice Skorepka, and had chicken curry.  It was fantastic.  The beer wasn't bad either.  Most everyone in the city speaks English so it's not as difficult to communicate as I thought, though most people seem to routinely speak Czech, which is fine by me.  Who wants to hear English chatter?

After dinner Matt and I had planned to see an organ concert of Bach and Mozart music, but we had been up for 36 hours, and decided to crash.  I went out and took some pictures before bed.  Tomorrow, we're planning on getting up at 10 and doing a walking tour.  More then...

Pictures are here-->  Prague and Vienna

10/13/2007 5:20:16 AM (Eastern Daylight Time, UTC-04:00) #    Comments [0]  |  Trackback

 

Has Bruce Springsteen lost his mind?#

Springsteen is about to release a record of covers; songs originally written or made famous by Pete Seeger.  For those that don't know who Pete Seeger is, and until recently I didn't, he's an old folk singer dude - one of many targeted in the mockumentary A Mighy Wind.  There is no middle ground here for Bruce.  This is either going to completely suck or be great, and to me the proof will be in how these songs come across live.  When I heard about this I wanted to hear the originals.  I've combed the net and managed to compile most of the songs that will appear on the record, as they were done by Seeger, and posted them on my site.

ftp.extremeconsulting.net/extremecons/bruce/

userid=brucemusic
pw=brucemusic

3/5/2006 11:13:58 AM (Eastern Standard Time, UTC-05:00) #    Comments [0]  |  Trackback

 

Delegates in 2.0 - and a great article on building a Wait Screen in ASP.NET#

Just about everyone has had to write logic in asp or asp.net to show a page/graphic giving a user something to look at while a webserver is processing some long running task (not unlike reading this sentence).  Daniel Fisher shows how to build a control that does just that.  The client side implementation of this control is sweet... drag it from the toolbox, set a property for the image location and hook up your event;  that's it.  He takes you step by step through the process, including implementing design time support.  Check it out, very cool.

In Daniel's sample the delegate is hooked in the aspx declaration for the control.  You may want to programatically hook it.  The code for programatically hooking events got me thinking about the changes for delegates in 2.0... I modified the code for 2.0 - taking advantage of anonymous delegates and the shortened syntax for delegate assignment.

From the client you can hook the delegate like this in 2.0

   this
.WaitScreen1.Process += WaitScreen1_Process;    

where in 1.x you had to do:

   this
.WaitScreen1.Process +=new EventHandler(WaitScreen1_Process);

In the control it gets easier also.   In Daniel's code he simply fires the delegate (and for good reason, his sample was a demonstration of control building, not delegate best practice).  The usual pattern for firing a delegate is to check for null beforehand.  Also, there are race conditions to consider because in between checking the delegate for null and firing it, the delegate could become null.  So if you want to optionally hook the delegate in the sample you'll need to add the null check to the code for the control.  Or not!  Enter anonymous delegates.  In 2.0 you can get away with the following.  Notice the use of an anonymous delegate (which does nothing) as a default assignment to the event.

public
event EventHandler Process = delegate { };

public virtual void OnProcess() {
   P
rocess(this, null
);
}

So, Process will never be null;  worst case scenario you've got an empty method executing.  I did some quick Stopwatch performance analysis on this method vs. null checking and locking - the difference was almost nil.  25 ticks vs. 22 ticks on average (fractions of a millisecond).

I said earlier "you can get away with" the above code... best practice guidelines say your event declaration should be private with a public event handler.  Also, it's a good idea for the method which does the firing to get the InvocationList and iterate through each in a try-catch block.   You are executing untrusted code afterall, in the sense that the target method may throw an exception and the rest of the delegate instances will not execute.  One of my .Net heroes, Juval Lowy, covers this in his outstanding book Programming .Net Components

private event EventHandler _process = delegate { };

public
event EventHandler
Process {
   add
{
      _process += value;
   }
   
remove
{
      _process -= value;
   }
}

public virtual void OnProcess() {
   Delegate
[] clients;

   clients = _process.GetInvocationList();

   
foreach (EventHandler client in
clients) {
      try
{
         client(
this, EventArgs
.Empty);
      }
      catch
{
         
_process -= client;
      }
   }
}

Locking is recommended when publishing events in a remoting scenario, both when getting the Invocation List (and also in the event procedure when hooking and unhooking).  Mike Woodring explains this here and has some other great tips on his site as well.

2/24/2006 3:37:56 PM (Eastern Standard Time, UTC-05:00) #    Comments [0]  |  Trackback

 

XSL 1.0 Split function#

Been spending a little more time than I'd like with XSLT.  I recently needed a split function that would recursively create elements based on a delimited string.  Well, although XSLT 2.0 appears to have support for split, 1.0 does not.  So here goes for anyone who might need it.

<xsl:template match="some_delimited_string">
   <xsl:if test="normalize-space(.)">
      <xsl:call-template name="split">
         <xsl:with-param name="text" select="."/>
         <xsl:with-param name="element">YourElementName</xsl:with-param>
         <xsl:with-param name="delim">/</xsl:with-param>
      </xsl:call-template>
   </xsl:if>
</xsl:template>

<xsl:template name="split">
   <xsl:param name="text" select=""/>
   <xsl:param name="element" select=""/>
   <xsl:param name="delim" select=""/>
   <xsl:choose>
      <xsl:when test="contains($text, $delim)">
         <xsl:element name="{$element}">
            <xsl:value-of select="substring-before($text, $delim)"/>
         </xsl:element>
         <xsl:call-template name="split">
            <xsl:with-param name="text" select="substring-after($text, $delim)"/>
            <xsl:with-param name="element" select="$element"/>
            <xsl:with-param name="delim" select="$delim"/>
         </xsl:call-template>
      </xsl:when>
   <xsl:otherwise>
      <xsl:element name="{$element}">
         <xsl:value-of select="$text"/>
      </xsl:element>
   </xsl:otherwise>
   </xsl:choose>
</xsl:template>

2/21/2006 5:00:32 PM (Eastern Standard Time, UTC-05:00) #    Comments [0]  |  Trackback

 

BizTalk first impressions - if you love to code you ain't gonna like it#

however - if you like to solve complex Enterprise Integration problems you'll love the design of this product.

I recently switched jobs and one of the first things I'm doing in my new position is learning BizTalk.  I had no prior experience with it but always had a desire to dig in - I've always heard how it was Microsofts best kept secret.  So last week I was at the Microsoft Technology Center in Waltham for a few days and met with some excellent people who know Biztalk very well.  Their enthusiasm won me over and for the last 3 days I've been reading and watching every whitepaper and webcast I can get my hands on.  I've installed BT2006 on a VPC and run through a couple tutorials and done some virtual labs.  I'm starting to get a handle on where BizTalk fits into solution architecture. 

So, if you love to code and you love Visual Studio you may not like what you see.  Bottom line,  BizTalk does not give the developer a decent environment in which to consume/integrate and debug processing logic.  It's great at forcing an SOA mindset;  creating explicit boundaries, exchanging messages/contracts and not type, etc. (we've all seen the 4 Tenets of SOA slide).  It is great for data transformation tasks and is designed for connecting disparate systems.  But if you need to do more than push and transform data - if you have reams of business rules you need to implement and business users who are not able or willing to maintain them - then you may not be happy with BizTalk's integration with Visual Studio.  The fact that you have to leave Visual Studio to debug an orchestration is not cool.  I really believe that this shortcoming is preventing BizTalk from exploding;  it's still a niche product and it amazes me that Visual Studio support was not a focus for the 2006 release.

The fact is that in most shops developers run the show as far as toolset and implementation... users want quick turnaround and Microsoft has provided the tool of the century to faciliate that.  So until BizTalk joins the RAD party it will always be a struggle for architect types in any shop to get BizTalk adopted.  I've been reading for years that SOA will not take off until toolsets are available to support it.  So Microsoft will soon be shipping WCF and WWF and codehounds will be off to the races.  It's a shame that BizTalk, a product built to faciliate SOA, is not keeping up with the Joneses... whoops I mean Boxes.

I'm sure I'll be posting some more as I continue to learn, it's only been 3 days!, and it may be that I'm missing something... we'll see.

2/3/2006 8:59:30 AM (Eastern Standard Time, UTC-05:00) #    Comments [0]  |  Trackback

 

Wow... a .Net User Group that's close to home? I never thought it would happen#

Finally there's a user group in west central NJ and the first speaker, Miguel Castro, knows his stuff.  Hopefully we can sustain this group... apparently there are some good people involved (Scott Watermasysk being one of them).  The first meeting is next Thursday February 9th... the topic is ASP.Net 2.0 features - a good place to start.

As an aside I'll mention there's another group that I was involved in, NJEVBUG, that has changed its name to NJDNADUG and has moved its attention toward architecture.  Kent Brown has taken the reigns and has great vision for the group.  Their next meeting is Monday February 13th with the topic being Generics.  Now, I'm not sure if there's an architectural slant to this discussion but I do know Kent is actively polling current members for topic ideas - Enterprise Integration, best practice discussions, patterns, etc... so if you're interested hit the web site and send him some ideas.  NJDNADUG is also an INETA member, meaning they'll get primo speakers a few times a year and free stuff!

And one more....  along the lines of NJDNADUG there is now something called the NYC Connected Systems User Group.  Kent and some other .Net rock stars (Andrew Brust, Stephen Forte, and Bill Zack) got together and formed this group.  Their mission statement says "uniting individuals in the greater NYC area interested in design, implementation, deployment, and support of Enterprise Integration solutions using the Microsoft Connected Systems product stack".  The inaugural meeting for this group is Thursday Feb. 23rd at the NYC Microsoft offices.

Note to wife - will be home late Feb 9th, Feb 13th and Feb 23rd.  Add the NYC Code Camp to that list and February is a busy month!

2/2/2006 10:10:15 AM (Eastern Standard Time, UTC-05:00) #    Comments [0]  |  Trackback

 

The Red Sox jump the shark!#

Not since the Babe have the Red Sox lost a player of this caliber to the Yankees.  Granted it was a trade in Ruth's case but it's close to the same thing.  The Sox KNEW the Yankees would sign Damon... they could have ponied up the extra 12 million to keep him.   No other team but the Yankees was going to wind up with the guy so in my mind Damon was traded to the Yankees for 12 million.  So the Sox are 12 million richer.  They also will not win another World Series until I am dust.  Now all this does not mean I am happy about the TRADE either.  Damon drove a dagger through my heart in the ALCS in 2004.  I hated the guy... still do.   He's taking the place of one of my favorite all time Yankees and is going to have to do something drastic to get on my good side... like return the favor this October and help knock the Sox out.  That would work.  But first the mfer has to shave.  Man I love that.  At least if he uses a Norelco shaver to cut his beard he'll make some dough for a charity.

12/22/2005 7:15:34 PM (Eastern Standard Time, UTC-05:00) #    Comments [0]  |  Trackback

 

Heartbreak Hotel - VirtualPC, WinFX, Indster and my wireless card#

For 3 hours the other night I beat my head against a wall trying to get VirtualPC to work with my wireless card.  I had some time in the hotel on a trip to Boston and I've been dying to try out a Windows Communication Foundation sample I saw demo'd at the PDC.  Indster is an application written by Omri Gazitt that demonstrates the P2P capabilities of Indigo and has some cool features (uses Amazon's webservices).  I fired up my VPC image and after about an hour had fixed all the breaking changes the RTM bits introduced into Omri's code.  I also had to regenerate the Amazon service proxy but I couldn't get online using my host's wireless nic.  After some time googling I finally found the answer.   Basically the idea is

1-install Microsoft's Loopback Adapter (Add New Hardware wizard)
2-turn on Internet Sharing for your wireless card and point to the Loopback adapter
3-use the Loopback Adapter as your network card in the VPC

I wasted too much time trying to get this to work but finally got it going and got back to checking out Indster.  I'll post a followup with the changes I had to make to get Indster working with VS2005 RTM.

12/5/2005 5:57:20 PM (Eastern Standard Time, UTC-05:00) #    Comments [0]  |  Trackback

 

WinFX and VS2005 - let the games begin!#

Finally we can use VS2005 to play with Indigo (WCF).  Get the bits here.

11/18/2005 4:05:55 PM (Eastern Standard Time, UTC-05:00) #    Comments [0]  |  Trackback

 

Project Aardvark #

Add another item to the list of "Damn, I wish I thought of that".  Joel Spolsky has created a documentary about a software development project.  He interviewed hundreds of interns and came up with 4, who were given 12 weeks to design, develop, test and ship a product.  This looks to me like a horror film, since after I watch it I'll realize these interns could probably kick my geek ass.  Hopefully I can put my ego aside;  I may just learn something.

Check out the trailer for Project Aardvark.  It looks GREAT.  Something tells me this might just make it to IFC and get some exposure;  it looks that good.

Copilot is the product they built - looks similiar to GotoMyPC.com

11/8/2005 1:39:31 PM (Eastern Standard Time, UTC-05:00) #    Comments [2]  |  Trackback

 

Born To Run is old and so am I#

Those who know me know I am a Springsteen fan(atic).  I've seen Bruce maybe 50+ times since 1984 (as outrageous as that may sound there are people I know who can more than double that number;  and to those that think 50 is excessive I say what about season ticket holders in any sport - seeing the Giants 8-11 times a year every year is ok, but seeing a rock concert is not?!?!)  Anyway, hard core fans and some purists will say that I am not a real fan after all as I did not see the man before he "sold out" with Born In the USA.  Believe me, I would trade 40 of those post '84 shows for one Darkness show from '78 or one show in Philly from '75.

So, what's my point?  The point is Bruce will shortly be releasing a 30th anniversary (yikes!) Born To Run collection which includes a full show from London's Hammersmith Odeon in 1975, among other goodies.  Those that pre-order this thing get an 18 minute preview of the documentary around the making of Born To Run.  I have pre-ordered this set and have the link to the video - it is incredible and shows exactly how much I did miss out by not seeing shows in the 70's;  so, if there's something you need.... if there's something you want... you've got to RAISE YOUR HAND!  or, just send me an email.

10/21/2005 2:20:21 PM (Eastern Daylight Time, UTC-04:00) #    Comments [0]  |  Trackback

 

Who says you can't take it with you?#

I am an infant.  I saw some of my coworkers showing off their versions of this 21st century briefcase and had to have one.  My data, code, music, VS2005 vpc images will now travel with me.  Thanks to Kevin and Don for pointing this out and Miguel for hints on the model to get.

Drive
Case
                   

10/21/2005 11:26:51 AM (Eastern Daylight Time, UTC-04:00) #    Comments [0]  |  Trackback

 

DasBlog author name problems#

So if you subscribe to my feed it seems that old posts are losing the blog author and email address information.  I looked at the DasBlog code, no luck, and compared the RSS which gets generated for old and new posts and they look identical.  This is an RSS 1.0 feed so that may be a problem.  Anyway, old posts come down in the feed but have bad author info.  Bummer.

----------------

For those unfamiliar (you know who you are), RSS is a standard format for specifying news that one would like published and consumed by interested parties using something called an RSS 'Reader'.  RSS is most commonly associated with blogs.  So let's say I have a blog and spew useless information.  Someone may actually be interested in said useless info.  So, instead of having to constantly hit my blog site seeing if there is new useless info, the interested party can use an RSS Reader, which will poll my site for new stuff and download it.  Using this reader one can subscribe to one or more RSS Feeds that they would like to keep up on.  Then, at a specified interval or at the touch of a button, the reader will check all subscriptions and deliver all the new stuff right to you.

I use an RSS Reader called NewsGator (costs $$).  I get updates to all my RSS feeds delivered to Outlook.  I basically don't have to surf anymore.  I subscribe to RSS feeds at all my favorite blog and web sites and get notified if there is new content.  They have a free? online version as well (which syncs with Outlook).  There are plenty of other free RSS Readers out there, like this one.

10/19/2005 10:29:27 AM (Eastern Daylight Time, UTC-04:00) #    Comments [0]  |  Trackback

 

Ok, I feel naked#

So up until today my blog was hidden behind my company firewall, the echo from my words clearly heard above the slamming of my co-workers keys.  Today I step out into the light where I fully expect nothing to change.  Yesterday I had a good excuse for my lack of readership; now what.

10/18/2005 4:31:02 PM (Eastern Daylight Time, UTC-04:00) #    Comments [2]  |  Trackback

 

ASP.Net 2.0 - this is a cool feature#
You can take an application offline by dropping a file into the virtual root called App_Offline.htm - aspnet will shut down the app and redirect all incoming requests to this page.  Nice.
10/6/2005 3:33:53 PM (Eastern Daylight Time, UTC-04:00) #    Comments [0]  |  Trackback

 

Gates and Napolean Dynamite - PDC 05 Keynote Video#

Finally a good quality version of this video!  Watch Gates get bitch-slapped!

http://video.msn.com/v/us/v.htm?g=b1925a5f-e901-4b1b-8faf-1997dcff7444&f=copy

10/4/2005 3:32:49 PM (Eastern Daylight Time, UTC-04:00) #    Comments [0]  |  Trackback

 

NJ Code Camp#

Check it out.  Weekend coding fun.  The NYC version was cancelled but I will not miss this!  Register NOW if you want to go as this will fill up fast.

http://www.njcodecamp.org/

9/27/2005 3:32:12 PM (Eastern Daylight Time, UTC-04:00) #    Comments [0]  |  Trackback

 

People Matter Most#

Came across this blog entry by Martin Fowler (of Patterns fame).  In it he talks about the value of having a few great people vs. a lot of good ones.  I have always believed this is the best way to build a team and in my opinion it is what we're doing here at <%MyCompany%>.  It's the reason we interview so many people and do not settle.  We may drive HR crazy but there is a method to our madness.  Unfortunately in an environment like this we're going to lose good people occasionally because they are in such demand.   It's difficult to find good people and just as hard to keep them.  I brag about the people that I work with here at <%MyCompany%> all the time.  If we could move the office to Princeton I'd love it even more!

http://martinfowler.com/bliki/PeopleMatterMost.html

9/27/2005 3:31:30 PM (Eastern Daylight Time, UTC-04:00) #    Comments [0]  |  Trackback

 

Atlas - Microsoft's implementation of AJAX#

From a DEVX article:

Scott Guthrie, manager of Microsoft's Web Platform and Tools Team, described Atlas' planned features in his blog:

The Atlas Client Script Framework will work on all modern browsers, and with any web server. It also won’t require any client installation at all—to use it, you can simply include references to the right script files in your page.

The Atlas Client Script Framework will include the following components:
  • An extensible core framework that adds features to JavaScript such as lifetime management, inheritance, multicast event handlers, and interfaces
  • A base class library for common features such as rich string manipulation, timers, and running tasks
  • A UI framework for attaching dynamic behaviors to HTML in a cross-browser way
  • A network stack to simplify server connectivity and access to Web services
  • A set of controls for rich UI, such as auto-complete textboxes, popup panels, animation, and drag and drop
  • A browser compatibility layer to address scripting behavior differences between browsers.

Guthrie also says that Microsoft will provide new ASP.NET server controls that you'll be able to use to bind client-side controls to server-side code, and promises simple and direct access to ASMX pages and Indigo services directly through the Atlas Client Script Framework.

While AJAX won't ship with Visual Studio 2005, Microsoft plans to provide it as an add-on layer to ASP.NET and will offer a preview version to developers at the PDC conference in Los Angeles in September.

7/6/2005 3:29:39 PM (Eastern Daylight Time, UTC-04:00) #    Comments [0]  |  Trackback

 

ASP.Net Version Switcher#

Cool utility that shows all sites configured on a machine and allows you to point to the correct version of the .Net Framework.  Useful if you have the 2.0 beta installed alongside 1.1.  No magic, just a wrapper around aspnet_regiis, but still sweet.

ASP.Net Version Switcher

6/20/2005 3:28:40 PM (Eastern Daylight Time, UTC-04:00) #    Comments [0]  |  Trackback

 

VB.Net has jumped the shark#

There are some components shipping with VS 2005, like the one described in this article, that should raise a BIG RED FLAG for every .Net programmer that cares about code.  Something like this should be in the Express edition of VB.Net, not in the Professional edition.  The Express edition is targeted at hobbyists;  I swear anyone that uses this component in an enterprise application should be ashamed of themselves.  I rank this right up there with the ADO data controls in VB6.

As a matter of fact we're adding a new question to the technical screens we give here at XXX Inc.:

XXX Inc.:  "So, have you ever used that cool new multithreaded worker component in Visual Studio 2005?"
Candidate: "Sure, it's so easy to use.  I love it."
XXX Inc.: "Goodbye."

6/16/2005 3:27:19 PM (Eastern Daylight Time, UTC-04:00) #    Comments [0]  |  Trackback

 

C# Programming Tools on MSDN#

Check out this list of C# Programming Tools on MSDN....  awesome list thought not necessarily C# specific.  Some of my favorites so far, because I've actually used them, are Reflector and the .Net Memory Profiler... and of course NUnit.

5/27/2005 3:23:03 PM (Eastern Daylight Time, UTC-04:00) #    Comments [0]  |  Trackback

 

C# Game Development#
There is a series of webcasts available which walk through building a shooter game called Star Trooper.  My son is working his way through this and it's pretty cool.  They take you through the basics of C# while building the game.  For those needing a primer on the basics of C# check this out.  Also all the documentation for the game and the webcasts are available here.
5/27/2005 3:22:13 PM (Eastern Daylight Time, UTC-04:00) #    Comments [0]  |  Trackback

 

FollowUp URLs - This is cool#

So lets say you're surfing and you come across a link you want to re-visit when you have time... so you right click on the link and there's an IE context menu option that allows you to create an Outlook Task so you can follow up on the link at a later time.   Up pops the Create New Task dialog in Outlook and you save that link for followup at a later time.

Get it here:

http://philiprieck.com/blog/archive/2004/05/11/FollowupURL.aspx

5/25/2005 3:21:15 PM (Eastern Daylight Time, UTC-04:00) #    Comments [0]  |  Trackback

 

NUnit post build script to copy config file#

Not a big deal but every time I create a new testing assembly I have to search for this stuff.  Put these instructions in the post-build event in project properties for the NUnit assembly.  It will copy the app.config from the project directory into the bin and rename it correctly.   One less manual step we'll have to do when setting up a stream to build and run the test projects.

del $(TargetDir)$(TargetFileName).config
copy ..\..\app.config $(TargetDir)
rename app.config $(TargetFileName).config

5/6/2005 3:20:23 PM (Eastern Daylight Time, UTC-04:00) #    Comments [0]  |  Trackback

 

Who says Bruce is just for dumb Jersey guys?#

This paper contrasts popular management books/style with Springsteen's writing making a case that managers would be better served being honest (and trusting in people's desire for honesty) than preaching on some unrealistic utopia that could never be reached.

The Springsteen Manifesto

Bruuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuce

5/4/2005 3:18:02 PM (Eastern Daylight Time, UTC-04:00) #    Comments [0]  |  Trackback

 

Threadsafe counters and lock types#

There's an interesting article in the new MSDN magazine about hyperthreaded CPUs and optimizing code for use with them.  A section of the article talks about synchronization bugs and shows some different locking mechanisms and performance differences between them.  I started with some of the code they supplied, added some other locking mechanisms and hacked up some performance metrics.  The code is attached for those interested.  Some best practices mentioned in the article and things I found when playing around:

1-Avoid using locking in a loop.  This seems obvious but its very easy to fall into this trap if updating some shared counter.  If possible try to increment a local variable in the loop and then lock/update the shared variable once at the end.

2-Use the static members of the Interlocked class instead of the C# lock statement (Monitor) when updating integer/long values.  Interlocked.Increment was 3 times faster than locking on an object.

The code also demonstrates the use of ManualResetEvent and WaitHandle... nothing new to most of you.

The ultimate message of the article... hyperthreaded CPUs give developers more opportunity to look to multithreading as a way to increase throughput and performance.  In many cases using multithreading with single processor machines just gives the perception of increased performance... the CPU can still only do one thing at a time.  Many times multithreading on a single processor machine actually degrades performance because of the context switching that occurs.  Hyperthreading goes one step further and creates 2 logical CPUs per physical CPU;   still not the same thing as a multiprocessor machine but a step that could introduce synchronization bugs that weren't visible before.

I guess the bottom line, as always, is to code defensively.

ThreadSafeCounter.zip (20.04 KB)
5/1/2005 3:16:24 PM (Eastern Daylight Time, UTC-04:00) #    Comments [0]  |  Trackback

 

Factory Design Pattern & PatternShare.org#

As Anna correctly pointed out the abstract factory implementation would use an interface so that the client does not directly reference the concrete class.

This is a great wiki with pattern overviews:
http://patternshare.org/default.aspx/Home.HomePage

This is an even better site showing UML and implementation:
http://www.dofactory.com/Patterns/Patterns.aspx

3/28/2005 4:00:19 PM (Eastern Daylight Time, UTC-04:00) #    Comments [0]  |  Trackback

 

All content © 2009, Vincent Tripodi
On this page
This site
Calendar
<July 2009>
SunMonTueWedThuFriSat
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678
Archives
Blogroll OPML
Disclaimer

All content on this blog has somehow touched the mind of a desperate individual looking for attention from anywhere he can get it.  Do not hold anyone responsible for what appears here except the author.  Sue me, not my employer.  I welcome the attention.

Send mail to the author(s) Vincent Tripodi