Showing posts with label C#. Show all posts
Showing posts with label C#. Show all posts

Tuesday, August 25, 2009

Resorting to humor!

I needed a laugh today, no work.

Quick Guide to Programming Languages

The proliferation of modern programming languages (all of which seem to have stolen countless features from one another) sometimes makes it difficult to remember what language you're currently using. This handy reference is offered as a public service to help programmers who find themselves in such a dilemma.



TASK: Shoot yourself in the foot.



C: You shoot yourself in the foot.



C++: You accidentally create a dozen instances of yourself and shoot them all in the foot. Providing emergency medical assistance is impossible since you can't tell which are bitwise copies and which are just pointing at others and saying, "That's me, over there."



FORTRAN: You shoot yourself in each toe, iteratively, until you run out of toes, then you read in the next foot and repeat. If you run out of bullets, you continue with the attempts to shoot yourself anyways because you have no exception-handling capability.



Pascal: The compiler won't let you shoot yourself in the foot.



Ada: After correctly packing your foot, you attempt to concurrently load the gun, pull the trigger, scream, and shoot yourself in the foot. When you try, however, you discover you can't because your foot is of the wrong type.



COBOL: Using a COLT 45 HANDGUN, AIM gun at LEG.FOOT, THEN place ARM.HAND.FINGER on HANDGUN.TRIGGER and SQUEEZE. THEN return HANDGUN to HOLSTER. CHECK whether shoelace needs to be re-tied.



LISP: You shoot yourself in the appendage which holds the gun with which you shoot yourself in the appendage which holds the gun with which you shoot yourself in the appendage which holds the gun with which you shoot yourself in the appendage which holds the gun with which you shoot yourself in the appendage which holds the gun with which you shoot yourself in the appendage which holds...



FORTH: Foot in yourself shoot.



Prolog: You tell your program that you want to be shot in the foot. The program figures out how to do it, but the syntax doesn't permit it to explain it to you.



BASIC: Shoot yourself in the foot with a water pistol. On large systems, continue until entire lower body is waterlogged.



Visual Basic: You'll really only appear to have shot yourself in the foot, but you'll have had so much fun doing it that you won't care.



HyperTalk: Put the first bullet of gun into foot left of leg of you. Answer the result.



Motif: You spend days writing a UIL description of your foot, the bullet, its trajectory, and the intricate scrollwork on the ivory handles of the gun. When you finally get around to pulling the trigger, the gun jams.



APL: You shoot yourself in the foot, then spend all day figuring out how to do it in fewer characters.



SNOBOL: If you succeed, shoot yourself in the left foot. If you fail, shoot yourself in the right foot.



Unix:
 

% ls
 
foot.c foot.h foot.o toe.c toe.o
 
% rm * .o
 
rm:.o no such file or directory
 
% ls
 
%



Concurrent Euclid: You shoot yourself in somebody else's foot.



370 JCL: You send your foot down to MIS and include a 400-page document explaining exactly how you want it to be shot. Three years later, your foot comes back deep-fried.



Paradox: Not only can you shoot yourself in the foot, your users can, too.



Access: You try to point the gun at your foot, but it shoots holes in all your Borland distribution diskettes instead.



Revelation: You're sure you're going to be able to shoot yourself in the foot, just as soon as you figure out what all these nifty little bullet-thingies are for.



Assembler: You try to shoot yourself in the foot, only to discover you must first invent the gun, the bullet, the trigger, and your foot.



Modula2: After realizing that you can't actually accomplish anything in this language, you shoot yourself in the head.



Wednesday, January 30, 2008

Adventures in WCF and WF

So I set off to rewrite my previously written WSE 3.0 SOA in WCF using WF. The concept based on the original plan was to use WCF obviously to replace the services and use WF rules engine to replace what I called actions. The actions were based on work that Avanade had done here where an action defines the settings that are used for connection information or router forwarding information (an action an object in the framework should take). These definitions were stored in a configuration file.

Well, I got off to a rocky start because I basically took the WCF sample with the router and the Echo Service/Calculator service and changed them to match my needs. First lesson, use the WCF configuration tool. The settings in the configuration files for the services were way off after my rewrite. The configuration tool validated and helped me get them back in sync. The second piece is use the "svcutil" command line tool. Man, this is so undocumented and should be more highlighted somewhere, but was a crucial piece of getting the configs with the right settings.

Couple of comments and I will get into more detail later. Microsoft has finally addressed some of my previous huge concerns for security and compression in the WCF framework. I absolutely think what they did in these two areas in WCF are worlds better than any previous attempts. Good work team!

Next, if you actually read this blog, MS has once again fallen short on documentation for some of the advanced stuff. First, LINQ can not be used in a SOA architecture because some of the core classes in the LINQ framework are not serializable. I know there some folks working on this, so hold your breath. LOL. Also, There is no clear documentation on WF specifically addressing the validation of the rules for framework classes such as the OracleClient. I am still working on figuring this one out so hopefully I can pass along some information for others soon. As I can't find anything via a search engine, I am hoping MS will pull through for me soon, because I can't be the only one on the planet with this issue.