Welcome

You have reached the blog of Keith Elder. Thank you for visiting! Feel free to click the twitter icon to the right and follow me on twitter.

Setting Up ClickOnce Certificate Files

Posted by Keith Elder | Posted in .Net, Smart Clients | Posted on 26-06-2006

0

Looks like Brian Noyes stole my thunder for a blog post I was going to do soon.  I get asked the same question.  “How do you sign your ClickOnce program with a valid provider like Versign?”. 

Unfortunately for myself, I had to figure this out the hard way last year during the VS2005 beta when I had to publish the new CRM app out with a Go Live license.  It’s a wonder I was able to piece all of the pieces together.  Call it a true testament to my genius.

Thanks to Brian for putting this together. If I get hit by a bus now at least someone else on my team can figure it out instead of wasting endless hours reading docs.  Why this type of content isn’t standard help on MSDN I have no idea.  I was talking to someone at Tech Ed who was responsible for the content on MSDN (sorry, can’t remember her name) and expressed my concern that they should catalog what blogger’s write about and turn them into docs.  It isn’t that hard to read the forums, newsgroups etc.  If two people have had the same problem, it should be documented and searchable on MSDN.

Is SPF the answer for Email Spoofing?

Posted by Keith Elder | Posted in Internet | Posted on 26-06-2006

0

For the past several months, maybe even longer, I’ve been the victim of various spam engines or viruses sending out massive quantities of email on behalf of me. If you’ve never had this happen it is a serious problem. Imagine how much email a spammer sends, then imagine ALL the bounced emails coming into your inbox. I thought I knew enough about procmail and mail filtering server side to be able to stop this from getting out of hand but my efforts have failed. Last week I was out of the office at Tech Ed and each time I checked my email via my phone, I would get 500 new emails. Have you ever tried deleting 500 emails from a phone? Or even from SquirrelMail? It is extremely painful. What is email spoofing? Email spoofing is something that can be fun if you want to send emails internally at the office, but when a spammer sends an email on your behalf and then sends millions, not so fun. In order to spoof the email the spammer picks an email address say… “spammerssuckdonkeyeggs@spammers.suck.com“. He sets this email as the “Return-Path:” header in the email. The return path header as outlined in RFC 2821 is a special type of header that defines where bounced emails go if they can’t be delivered. That’s right, anyone can put anything in the return-path header they want. What is SPF? SPF stands for “Sender Policy Framework”. SPF allows system administrator’s to modify their DNS zone records and add a special rule which outlines where email should originate from. Think of it like a reverse lookup for emails. When mail servers receive an email from someone they see that the email is coming from somedomain.com. The receiving mail server then queries back to somedomain.com’s DNS server to make sure the mail server sending the email to the receiving mail server is authorized to do so and that things match up. If not, the email get’s rejected. Note: If there is no SPF record in the DNS, the mail goes through. For more information on how SPF works, visit http://new.openspf.org/Introduction So far, so good After adding the following rule to my DNS zone things stopped coming in. It has only been a few hours since I added this to the zone file, but I would have received at least 30-50 bounced emails within that time frame normally. zorka.com. IN TXT “v=spf1 a mx mx:mail.zorka.com ~all” So far so good it seems. Either the spammers are taking a break or SPF is working. Has anyone else has tried this? How have your results been?

Total Protect Home Warranty – Good or Bad?

Posted by Keith Elder | Posted in General | Posted on 24-06-2006

188

I was going through mail this morning (no not email, real mail) and my mortgage lender sent me an advertisement regarding Total Protect’s Home Warranty. I normally don’t read ads but this is from my lender so I read them all just in case. It’s funny because now that we are home owner’s my biggest fear is some major gizmo in the home is going to all of a sudden quit and I’m going to have to fork over thousand’s of dollars to get it either fixed or replaced. Probably my biggest concern is air conditioning. We have two air conditioning units for our home. One cools the north wing and other the south wing. If one of them all of a sudden goes, we are talking thousands of dollars. Living in the heart of the south where temperatures are above 90 degrees each and every day for 4-6 months out of the year doesnt’ help my feelings either. My mother-in-law just had to replace an air conditioner. Her air conditioner was over 20 years old but she doesn’t run it that much. I figure it got about 4-5 years of solid use compared to mine since our’s stay on all the time. Insurance is primarily peace of mind but is it worth it? According to the brochure I got the price of the coverage would be $36.95 / month and a $50.00 deductible. Using the quote rate on their web site our deductible would be $95.00. Either the mortgage lender doesn’t know how big our house is or they are cutting us a break. Either way I’m going with the $50.00 because that’s what I have in writing from them. So $36.95 / month is $443.40 a year. If an air conditioner blows up within the next year or a refrigerator, I’m ahead. If a washer or dryer goes I break even since I can buy a new dryer or washer for that amount of money. But what about stoves and garbage disposals? The bottom line is how much stuff breaks? I don’t know nor can I remember from growing up. What are your thoughts? Home Warranty insurance good or bad?

Watch 1400 80’s Videos!

Posted by Keith Elder | Posted in Funny Stuff | Posted on 22-06-2006

0

For anyone that knows me, you know my musical taste lies in the 80’s. Call it what you will, the 80’s still rock. Nothing gets me coding in the morning like a good dance hit from the 80’s. I found a web site that allows you to watch over 1400 80’s vidoes! You remember videos right? The things MTV started back in the 80’s but abondoned for crappy shows like “Real World”? If you want to get your 80’s video fix for the day head over to http://www.freephotosandvideos.com/ and ROCK OUT!

Enterprise Library Feedback – Integrate GAT and Workflow

Posted by Keith Elder | Posted in .Net, Programming | Posted on 22-06-2006

0

Tom Hollander, who is on the Enterprise Library team, posted to his blog the Enterprise Library team want everyone’s feedback for the .Net 3.0 framework release.  As I sat and thought about this in relation to .Net 3.0, the more I thought about it and started to write about it, it just all became crystal clear.  Here’s my wishlist for EntLib 3.0:

  1. $20 – Add the EntLib console configuration tool into Visual Studio IDE.  Lot’s of people mentioned this in comments, so it looks like this should definitely be on their list.
  2. $20 – Integrate GAT to assist setting up EntLib based on the best “patterns” and “practice”. 
  3. $60 – Workflow Block

Integrating GAT with EntLib
Number one above is is self-explanatory so let me first start with number two.  If you think about abstracting and best practices and patterns you think of EntLib, however, there is one missing piece of the puzzle.  That missing piece is there is a best practice and pattern for how to setup and use EntLib.  If you are starting out using EntLib you are more than likely not going to use an “established best practice or pattern” as to how you should use EntLib.  I’ve seen this over and over when you want to create a new application to use EntLib you wind up holding onto one configuration file that you are familar with and copying and pasting.  Wouldn’t it be nice to simply install EntLib and using the GAT (guidance automation toolkit) you could create an “Enterprise Library Web Service”.  The GAT would then guide you through a configuration wizard of best practices and patterns on the recommended configuration and setup for EntLib based on the chosen application.  At least this would provide a baseline, and I think, a higher adoption rate of Enterprise Library in the enterprise.  It would also make it easy for anyone to start using thereby eliminating lots of training overhead to get up and running.

Workflow Application Block
Let me explain my reasoning for the Workflow block and why I invested so much into it. First and foremost Tom asked what we would want in regards to the 3.0 framework.  One of the new features of the 3.0 framework will be Windows Workflow Foundation.  For developers, this simply means you have a new set of APIs namespaced as System.Workflow. 

If you look at the existing blocks of Enterprise Library ( data, logging, exceptions, etc) these are all derived from currently existing Namespaces within the framework. The goal of these blocks are to abstract, simplify and tie each block together so it can be used with one another.  This is where the power of Enterprise Library comes in.  Since this would be a 3.0 release of Enterprise Library, Workflow is a major new namespace that will be available to us in the .Net 3.0 framework.  Having an easy way to re-configure workflow through an application config file and/or manage workflows via an application block to me makes perfect sense. If you’ve played with Windows Workflow Foundation you realize a lot of things could be abstracted.  Really this abstraction is no different than how EntLib provides the data block today.

Here are a couple of scenarios how I would want to use the Workflow block.  For example, imagine being able to configure EntLib when an exception is raised to be processed through the Workflow block instead of how we do it today via Categories. So based on the exception type, time of day, user that created the error, what phase the moon is in and how the stars align at that given time, the error could be routed via the Workflow block to the appropiate place.  With place being an email, log to database, notify pager, create a support ticket in an internal helpdesk system, notify your helpdesk, whatever.   Essentially what we *try* to do with EntLib today a lot of the time is make our logging blocks do workflow by creating tons of different categories based on different rules.  We wind up with a HUGE config file that becomes, well, HUGE.  Instead of doing things the way were are today, just simply have a workflow that you can define to handle all logging, exceptions or whatever.   

That’s my $.02.  I’ll be here all week. Smile