Monday, September 27, 2004

(slaps herself in the forehead!)

I have been dancing circles around the fact that my client side policy was being totally ignored and I couldn't get a trace file generated from WSE2 either.

Doh! I was configuring the component that was doing the web service call, but the configuration info needs to be with the main app!

I know this, but I suppose I have been too determined that I was doing something wrong in my WSE2 setup to have thought of it. So it's here for future googlers.

Monday, September 27, 2004 2:31:39 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

When it is due to the fact that my web service and client application really ARE reading my policy files!

"Microsoft.Web.Services2.Policy.PolicyVerificationException: WSE464: No policy could be found for this message.”

I'm still in the middle of wiring this up. I have to say that the refactoring process is definitely time consuming (and very educational). It is MUCH easier of course to implement WSE2 when you are working with new projects.

I am working with a client app that has MANY components and many different web services. Even though it is working already, and seems foolish to attempt to tackle this, I know that if I can get this working with wse2 then I have accomplished and learned a lot.

Monday, September 27, 2004 11:15:51 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

Senior Programmer Analyst
Burlington, VT
6 months Contract  

This position is responsible for design, development and implementation duties for a web based aircraft finance tracking application.   This position will work closely with business personnel, as well as other IS and IT personnel to gather business and technical requirements needed to successfully design and develop new system features, enhancements to current functionality and defect fixes.  This position reports to the Manager, Structured Finance Business Systems.

Requirements
5+ years systems development experience with a concentration in mission critical web based applications. Expertise in VB.Net, ASP.NET, VB6, ASP, XML, XSL, XSLT, HTML, VSS and JavaScript. In depth knowledge of Microsoft SQL 2000, database design, programming and architecture.
MCSD or MCAD required. MCDBA and other certifications a plus
4 year degree in Computer Science or MIS or equivalent industry experience
Background in Structured Finance or other financial industry experience a plus.

Contact:
Kishore Khandavalli
iTech US, Inc.
Tel: 802 383 1500
Fax: 802 383 1501
www.iTechUS.com

Monday, September 27, 2004 8:44:55 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
 Sunday, September 26, 2004

This isn't lookin' good. It seems I may have to hand code my policies after all since my web service is not on localhost. When you click okay on this message you get a second one and finally enable policy flag gets unchecked. I've been trying to trick it, by creating the PolicyCache.Config file, by editing the web.config and more, but to no avail.

update ..and if I manually create a policy file, whether I name it with the extention config or xml, if I do anything in the wse2 settings config tool and save them (even if they have nothing to do with policy), the <cache name=“myconfigfile.xml“/> gets removed from the <policy> tags in my web.config. This can't be right. I must be doing something wrong.

Sunday, September 26, 2004 6:17:23 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

okay- I seem to have picked up this “jig” thing from Ted Neward, but I just noticed something - that is MUCH more obvious when working with code you know well, rather than fiddling little samples.

With WSE1.0, you have to modify your client's proxy to the web service so that it inherits from Microsoft.Web.Services.WebServicesClientProtocol instead of the default System.Web.Services.Protocols.SoapHttpClientProtocol. Every time you update the web reference, you have to remember to go back into the proxy and make that change. I have gotten into the habit, but really it's just one more thing I need to remember, cluttering up my brain.

I have just modified the client component that has been working with WSE1 to use WSE2. When I updated the web reference in that project, the inherited class was automatically changed to Microsoft.Web.Services2.WebServicesClientProtocol.

This makes me very happy. I can free up that little space in my brain now for more important things! And it is one less barrier to getting regular programmers to use this stuff. Thanks WSE folks!

(I should point out that you get TWO proxy classes and this happens to the WSE2 version...)

Sunday, September 26, 2004 4:39:33 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

I am finally converting my web service login and authentication procedures for one of my big production apps. Currently it is using straight web services, with a combination of soap headers and a System.Web.Security.FormsAuthentication ticket which is returned to the client as an encrypted string to be sent back with future requests as well as cached on the server. Lastly, I have a little user class that stores some details about the user that are used for authorization on the client end.

It's somewhat similar to a secure conversation model because my token also times out every two minutes and has to be regenerated, but I don't have to authenticate on every single message.

But an interesting difference is that I am explicitly authenticating at the user login (like we always have done, right?) whereas with the ws-security model, I will authenticate along with my actual requests. So if I were CODING all of this (which I'm not sure if I choose between hand coding in order to drill the stuff in to my brain better, or if I will just use the config tool and let that and policies do the grunt work for me -- and if you saw what a GORGEOUS day it is out - you'd probably vote for the latter, too! :-)) ...where was that sentence? Oh yeah, I will basically strip out the authentication that happens at login.

Thereare some cases where I am doing application updating and I require authentication at login for that process also. But for the other apps, I get to just rip out SO MUCH CODE - yippee - on both the client side and the ws side. Currently, on the client side, I am stuffing the token in the header of every ws call, so I won't have to do that any longer. On the ws side, every method takes that token and checks against the cache to see if it's still valid. So I get to take that code out. If it's not valid, I was returning nothing to my client and the client has to send back the login/pw (which is still available to the app) and get another token. So all *that* code can go, too.

Rip rip rip, delete delete delete.

Sunday, September 26, 2004 2:05:58 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

Stay by that phone! Your parents/friends/aunts/neighbors are bound to be calling soon! :-)

Sunday, September 26, 2004 9:50:12 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

My friend and neighbor, Sarah Jane Williamson, is going to rent her fabulous property out for the year 2005.

The house is furnished and it is one groovy place. Sarah Jane has a very unique style. The house was completely renovated in 1986 and the barn from 1995-1997. Sarah Jane is an organic farmer and the perennial beds around the house are incredible. We spend a lot of time on Friday evenings there, in the summer and fall on her porch and in the winter, cozied up to the fire place. The house is on a paved country road and about 35 min. to Burlington. Huntington is a very cool community with a lot of entrepreneurs and artists living here as well as many old-time Vermonters which makes for an interesting mix. There are two small country stores and gasoline about 1 mile away and some cool small towns about 15 minutes in different directions. And she has DSL! It is really heavenly here. If you like winter stuff, you've got 30 acres of great cross country skiing and you are 10 miles from Mad River Glen for skiing in the winter and right near Camel's Hump for hiking year round. And of course, to top it off, you can attend meetings at Vermont.NET and VTSQL if you happen to be a geek. Burlington is one of the very cool small cities in the country with lots of great food, music and art. And well, Vermont is...just Vermont. Heaven.  We are also about 4 hours from Boston, 2 hours from Montreal and a quick cheap trip on Jet Blue to NYC. A little further to Seattle :-). Burlington has an int'l airport served by five major airlines as well as JetBlue and Independent which makes quick hops to D.C. This is what we call “having your cake and eating it, too!”

Sunday, September 26, 2004 9:25:14 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

Here are pictures from Sept 23rd

I took these just now 10am Sept 26th as the clouds were on their way out.


Sunday, September 26, 2004 9:13:50 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
 Saturday, September 25, 2004

VSLive lucked out when the hurricane diverted and missed Orlando. Now PASS, in Orlando next week, is dealing with Hurricane Jeanne. Watch PASS track chair Roman Rehak's blog for updates. The SQLPass site also has information and links regarding the Hurricane.

Saturday, September 25, 2004 4:14:36 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

There is an AP article that has been picked up by a lot of papers around the world and I'll link to it on msnbc's site. The article is about using quantum physics for encryption via photons (light particles) - rather than the keys (strings of random numbers) we use today. It's pretty far out but not even totally new. There are a few companies already offering solutions (eg MagiQ Technologies) and Harvard is working on the availability on the web. Pretty amazing stuff. I guess in __ years from now, it will be as common as sliced bread.

Saturday, September 25, 2004 3:25:19 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

I love doing this! I have to refactor some pieces of a big production application for a client. This also means stripping some functionality of the application and turning it into individual components which I have wanted to do, but could not justify billing my client for. But now I must do this in order to incorporate some new functionality that will also need access to this logic. Sometimes, working with “old code” is a huge bore, but this is fun because I'm making my code smarter and that makes me feel a little smarter.

Saturday, September 25, 2004 1:29:24 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

When I first started looking at .NET, one of the new concepts that I kept running into was the “delegate” thingies. I kept seeing things written about them, but never walked away really understanding what they were. So it becamse my mission and the first time I really had a “DING!” go off in my head was an explanation in The Book of VB.NET by Matthew MacDonald. Unfortunately, I have long since passed this book on to someone in the user group so I can't quote it.

Anyway, I thought of this because Avonelle mentioned delegates and the difficulty that she has had getting her head around them and pointed to this article on KnowdotNET that gave her the “aha!” moment.

I actually had a more interesting realization about delegates this summer at TechEd when I was doing a TabletPC Hands on Lab that was all in C#. I couldn't understand why I had to keep writing so many delegates and then I realized that the delegates were creating event handlers! And THIS is why us VB background people have such a hard time grokking delegates. IN VB (past and .NET), event handlers come free. They are already there. If you drop a control onto a page, then you automatically have access to that controls list of events in your code. If you instantiate a class in your code, the class's events are available in the dropdown. So we never had to use delegates (not even available to use before .NET anyway) and therefore they didn't come naturally.

So you C++ and C# developers, next time your walking down the street and you see someone who is scratching their head muttering “delegates...I just don't get it”, and you are kind enough to attempt to explain and they STILL don't get it, don't just shake your head and walk away. You need to relate them to something that already IS in VB so that they have a bridge. Event Handlers are that bridge.

update with just a little more goo: Just an FYI for you VB'ers. I'm working on converting a login form from VB to C# ...oh the drudgery of solving casing problems! :-)  Anyway, I thought I would point out that when you double click on a control to get it's default event, C# automatically codes up the delegate in the InitializeComponent method. So I clicked on an OK button and not only did I get my event code but it's delegate was auto generated as well (that's backwards - because the delegate makes the event handler possible)
  this.btnOK.Click += new System.EventHandler(this.btnOK_Click);

So if you just consider the relationship between this delegate and the familiar event handler

      private void btnOK_Click(object sender, System.EventArgs e){}

it might help a bit...


 

Saturday, September 25, 2004 12:49:09 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

...and recruiters? Well, yes, actually.

I was reading this post of Casey Chesnut's where he is ranting about some of the annoying things recruiters do and says :

that disconnect being recruiters. you've got a high tech company on one end, then you've got technical workers on the other ... and smack in the middle, somebody that does not know technology

I couldn't help but think immediately of one of the SSL issues that is avoided with WS-Security. Things are secure when they are in the SSL pipe, but if you have an intermediary en route, your message has to exit the pipe and you can't be sure that the intermediary is secure. With WS-Security, you *do* have end to end security as the sender and receiver are the only ones who can interpret the message.

So I had to laugh when Casey made that statement, because I just couldn't help thinking of the somewhat skewed analogy!

Saturday, September 25, 2004 8:23:33 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
 Friday, September 24, 2004


(forgive the crappy photo - it's really hard to take one good pic of speaker and audience in a dark room and darn, all the chicks were on the edges of the room - but there were a bunch!)

Almost a year ago, Michele and I arranged through INETA for her to come to speak at Vermont.NET and of course come for a fun weekend visit. It was originally scheduled in June, when the lupine were in full bloom and “livin' is easy”, but unfortunately, in late May, Michele had some unexpected travel coming up so we rescheduled for September as she was already planning to go to Jim Murphy's group, NHDNUG in New Hampshire.

Although the weekend thing didn't work out wtih everyone's crazy schedules, Michele and I did get to spend a really fun day hanging out and hiking in the Appalachian Gap on the Long Trail. Luckily for her, the leaves have started turning early, so it is really beautiful here right now. She really had an insane trip, flying into Boston from San Diego on Sunday, driving the 4 hours to my house that night and then had to drive back to Boston on Monday night after the user group meeting. So I really wanted to be sure it was worth the effort she had put in to come all the way here.

Reading this post-meeting entry on her weblog, I think we did okay!

After a fun day on Monday we drove into Burlington for the meeting which was at a new location- the revamped offices of Gardener's Supply which is in a very special place called the Intervale in north Burlington.

Although I had told everyone the meeting would end at 8 so that Michele could get on the road (she had an 8am talk in Boston at SD East the next morning), she ended up giving us the equivalent of two incredible presentations and talked until 9!

I have never seen Michele present before and I was really bowled over by not only her knowledge (which I am *well* aware of :-) ) but her really professional presentation style. Although quite focused on her content, I did keep thinking about my presentation style (which is pretty nascent right now) and wondered if time and experience would help me come near her confidence (which I'm sure she will say is just percieved) and ability to communicate deeply technical information.

I have to say that the women at the meeting were pretty thrilled to witness Michele. The only other woman that has ever presented at our group is me and I really have paled in comparison to most of the other pros that have presented there. So it was everyone's first real experience of having a serious female presenter. So for the women, I think a lot of them were just really psyched because they suddenly didn't feel as out of place as usual as the group is naturally dominated by guys. It's hard to explain, but sometimes these things really do matter even if you don't want them to.

All in all, I think Dave Burke's post sums up the general feeling of the whole group about Michele's presentation. It was basically....awesome.

And to top it off, she was wearing a pretty cool shirt from Newtelligence!

Friday, September 24, 2004 5:20:52 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

Tim Sneath teases us that he was leaving MIcrosoft U.K. and finally explained it was to go work at Microsoft in Redmond. Hmmm, now I can't bug Tim about trying to get into TechEd Europe as a speaker....as if that was even a remote possibility anyway. But you can't blame a girl for trying! :-)

Tim Ewald really is leaving Microsoft. But he will be working at MindReef  (he already lives in NH) which is quite a coup for them - both MindReef and Tim. MindReef has some serious brainpower there. I only happen to know Dave Seidel (who coincidentally went to a very small and special college with my sister) and Jim Murphy who runs NHDNUG and came to Vermont to speak at one of VTdotNET's early meetings.

Congrats to all.

Friday, September 24, 2004 7:49:24 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
 Thursday, September 23, 2004

Yasser blogged that he is speaking at VS Connections. VS Connections is wrapped up with ASP Connections and SQL Server Connections too at DevConnections in Las Vegas in November. I sure hope his talk isn't scheduled at the same time as one of mine, so I can go learn!

Thursday, September 23, 2004 10:14:39 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

(update: check out Dare's post on NewzCrawler (and others) as Denial of Service clients)

There must be a few people who have their aggregators set to check rss feeds every 10 seconds or something. I very rarely look at my stats because they don't really tell me much. But I have to say I was a little surprised to see that there were over 14,000 hits to my website today (from 12am to almost 5pm).

So where do they come from?

10,000+ are from NewzCrawler then a whole lot of other aggregators and then a small # of browsers.

Very strange. I get a few links and fewer comments, so I really don't think there's a lot of people reading this and of course I know that the high aggregator number is from frequent refreshes.

One thing that I love to see coming in through referrers is that people are starting on the Vermont.NET website that has a feed from my Jobs category here and there are a lot of click throughs, which means that my posting local IT jobs that I find in the local papers over coffee (or that my hubby is kind enough to point out) is a good resource for some people.

Thursday, September 23, 2004 3:55:04 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

(talking smart client - windows forms app here, not asp.net)

I was using System.IO.Directory.GetCurrentDirectory to find DLL's that are to be loaded by reflection in a particular app. But when a user goes out and does something like look up something in windows explorer, that changes the definition of the system's current directory and you are no longer pointed to the startup path. Then when the user tries to load up the next form - it can't' be found! Oops.

GetCurrentDirectory's definition is “current working directory“. And even in the reference it explicitly says: “The current directory is distinct from the original directory, which is the one from which the process was started.“

So when you need to use the startup path, use the Application.StartupPath which is in the System.Windows.Forms namespace.

(oh, I'm just so embarrassed! :-) )

Thursday, September 23, 2004 12:47:21 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

The camera was handy, what can I say? Can you believe this cat, G.B.. He just loves newfoundland dogs! That's Daisy he's cozying up to. She's one of my parent's dogs who is visiting for a while - maybe permanently. Tasha is also a Newfie, just one who had an unexpected major haircut in July. We're hoping it will hurry up and grow back in before it gets cold!

Thursday, September 23, 2004 11:53:27 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  |