feedburner
Enter your email address:

Delivered by FeedBurner

You wanted more Wally?

Labels: ,

Wally McClure is a great leader in our .NET community. He is a very active podcaster and author. He tours our area regularly, speaking on SQL Performance, ASP.NET, and is now diving head first into Azure.

Some things he has been up to lately?

- Published an ebook on ASP.NET 3.5 SP1: http://www.wrox.com/WileyCDA/WroxTitle/New-Features-in-ASP-NET-3-5-Service-Pack-1.productCd-0470457341.html

- Several podcasts on Azure:

http://aspnetpodcast.com/CS11/blogs/asp.net_podcast/archive/2008/12/22/asp-net-podcast-show-132-windows-azure-blob-storage-video.aspx

http://aspnetpodcast.com/CS11/blogs/asp.net_podcast/archive/2008/12/25/asp-net-podcast-show-133-windows-azure-table-storage-video.aspx

- A lap around ASP.NET 3.5 SP1:

http://aspnetpodcast.com/CS11/blogs/asp.net_podcast/archive/2008/12/05/asp-net-podcast-show-130-david-and-wally-talk-about-net-3-5-service-pack-1.aspx

- Caching in a 3.5 SP1 world:

http://aspnetpodcast.com/CS11/blogs/asp.net_podcast/archive/2008/12/04/asp-net-podcast-show-129-caching-with-net-3-5-sp1.aspx

 

So, go get your wally on!

SlideShare Sends PowerPoint to the Cloud

Labels:

I like SlideShare. I surf it for ideas, and I always find something interesting. I don’t normally post about other articles or blogs too often, but I really found this as an interesting example of using the cloud to expand your existing offering in a horizontal way to provide more value to your users, as well as make your service a little more sticky.

And without further ado…

http://www.techcrunch.com/2008/12/15/slideshare-sends-powerpoint-to-the-cloud-with-new-plugin/

SlideShare, a startup that we’ve likened to a YouTube equivalent for PowerPoint presentations, has released a new plugin for Microsoft Office 2007 that allows users to edit and publish presentations directly to their SlideShare accounts. You can download the free plugin here.

Beyond publishing new PowerPoint documents to the web, the SlideShare plugin can import SlideShare files from the cloud (both your own and those that are shared by others), which can then be modified on your native PowerPoint client. The plugin features an integrated search so you can browse through files from your SlideShare contacts and groups, as well as support for Twitter and FriendFeed so you can broadcast a new presentation without leaving Office.

clip_image002

nPlus1.org hosts ArcSummit on Cloud Computing

Labels:

nPlus1.org and Microsoft have teamed up to give a series of free ArcSummit events! The first of these events will be in less than two weeks on December 16th. I know it’s close to the holidays, but as things are winding down before vacations wouldn’t it be cool to spend some time with like-minded folks talking about how S+S and cloud computing can help your business and clients.

Tuesday, December 16, 2008
12:00 PM (Noon) - 5:00 PM Eastern Time
Microsoft Office - Cincinnati
MPR Room
4605 Duke Drive
Suite 800 Mason Ohio 45040
The event will consist of presentations and open discussions on two topics:

  • How Software + Services may provide business value .
  • Cloud Computing in General and an Introduction to Windows Azure .

Lunch will be provided starting at noon.

Register!

If you haven’t checked out the nPlus1.org website, you need to do it right now. They are also looking for new authors and editors, if you want to get involved in the community.

Getting a The request failed with HTTP status 401: Unauthorized Failure

Labels: ,

Recently I created a small tool to manage discount codes for CodeMash. It was a website based on ASP.NET Dynamic Data (which is part of .NET 3.5 sp1). This tool made it real easy to put together a quick and simple web form to manage these codes.

When I went to deploy it to the CodeMash server, I found I didn’t have SP1 installed, so I installed it. Deployed the web form, and everything seemed awesome.

Then at around 6:00am the next morning I started getting lots of emails about problems with the CodeMash site. Which was funny, because the core site (not including registration) has always been fairly stable. It is an ASP.NET site. We store the site content in WSS, and bring that content into the web site via the WSS web services. Both sites live on the same server (remember that, it becomes important later on).

That morning, those web services started failing with a “The request failed with HTTP status 401: Unauthorized”.

I searched and wondered. I uninstalled SP1, and reinstalled .NET 3.0 RTM. Nothing fixed it. I pushed a build of the site that bypassed the services as a short term fix, but the problem persisted for over a week. It was KILLING me. What made it harder was the the services worked just fine when being called from a remote location, like my developer workstation. But calling the service from the same web server that the WSS services were running kept failing.

I searched, and searched, and searched. I couldn’t find anything that even remotely helped. The Jim Holmes (fellow CodeMash founder, and all around smart guy) sent me a link to a blog post that might help. It turns out it was a link to my own blog. The post shows how to configure WSS for just NTLM instead of Kerberos. This configuration is now exposed in the WSS admin tool, so you don’t have to do it at the command prompt anymore. But that setting was already correct.

I was at a complete roadblock. I even uninstalled, installed .NET 3.5 sp1 and reinstalled WSS. Then I simplified my search terms, and a MSKB article popped up. I then followed the steps in the article, and that fixed it. Yahoo!

The article covers a change that .NET 3.5 SP1 puts in place. This security change is already present in other scenarios, so they added it to SP1 to make it more consistent. This feature protects against loopback reflection attacks, and blocks any loopback call. A loopback call is when you call ‘out’ to a service that is actually local. The KB article goes over a few options. You can disable loopback check, or you can reconfigure how you connect to the local service (using a local address, instead of a public address.)

The problem had nothing to do with WSS, and that was the red herring for me. It had to do with some fixes that the .NET 3.5 SP1 put in place.

ColArc Meeting

Labels:

My friend James just announced the next meeting for ColArc is this Monday evening. It’s at 6pm, and is at the QSI office. You should check it out.

I plan on being there, and we will be giving out a free ticket to the MSDN Developer Conference, which is in Detroit on January 22nd, 2009.

Are you ready for a REST?

Labels: ,

Many architects and developers are integrating services into their strategies and projects. There are two main delivery mechanisms with services (from a mainstream, standards perspective). You can use SOAP, or you can use REST.

There have been wars for a long time around which is better, easier to use, and has less impact on the global environment. This post isn’t about that. My answer as to which one you should use is ‘It Depends.’

SOAP has all of the enterprisey-goo that we typically need at the core of our systems. Transactions, Strong Typing, Routing, Security, Extensibility, etc. These are all planned out with WS-* standards for platform interoperability. REST, on the other hand, is simple, lightweight, easy to use, and very straightforward.

I think most organizations will end up with a measure of both in their environments. I think SOAP will be more prevalent at the core of your enterprise, with REST at the edges that touch other enterprises and the public at large.

When we shipped WCF 3.0 (a long time ago it seems), we shipped complete support for all of stable and adopted WS-* protocols, so that enterprises could start building really great services in their infrastructure.

Then REST hit. REST is one of those overnight successes that take ten years to happen. Everyone has had a REST based application on their desktop for at least ten years, if not longer. It’s called your web browser.

Did we have to develop a new platform and framework for REST on .NET? No. WCF isn’t a WS-* stack, it’s a communications framework, that was built to handle changes in how we format and send messages. So adding REST to WCF wasn’t all that hard. There was some basic support in WCF 3.5.

But there is always room for more support, and customers are always looking to us for best practices, and other guidance. In order to support this need, we have launched the REST Developer Center, and the WCF REST Starter Kit on CodePlex.

The starter kit has been released as a preview. We have put it on CodePlex so our customers can use the bits, and give us feedback on how to improve it before it ships.

From the site:

The WCF REST Starter Kit Codeplex Preview 1 release provides new features that enable or simplify various aspects of using the http capabilities in WCF, such as caching, security, error handling, help page support, conditional PUT, push style streaming, type based dispatch and semi-structured XML support. The WCF REST Starter Kit also provides Visual Studio templates for creating REST style services such as an Atom feed service, a REST-RPC hybrid service, Resource singleton and collection services and an Atom Publishing Protocol service. In addition, there are samples, documentation and other guidance that help to use these new capabilities.

A friend of mine, Jesus Rodriguez, who is about as all knowing about services as you can get (and who has a bad habit of trying to sabotage me at conferences the night before I speak) is going to start a series on the WCF REST Starter Kit. So go read his first post on how to add caching to REST.

Whitepaper on Windows Azure has been posted

Labels: ,

You have likely heard about Windows Azure by now. We made a very big announcement at the PDC today about it. Windows Azure is our Cloud OS. It will allow you to run .NET code in the sky, in a dynamic, scalable, and manageable way. We have also announced Live Services, .NET Services, and SQL Services. These services sort of stack on each other. Think of Azure as your Server OS. SQL provides data related services, etc.

Azure will support web facing, interactive, stateless applications. These applications run in an instance called a ‘Web Role.’ You can also host code that just performs asynchronous work, called a ‘Worker Role.’ The Worker Role might host a WCF service fed by a queue for example.

You will be able to develop and test locally using the Azure Fabric locally, and then only deploy to the cloud when you are ready.

David Chappell wrote a great whitepaper on our new services platform, and explains some expected customer scenarios. It walks through our services platform very nicely. Check it out the whitepaper on Azure Services Platform.

 

Check out the following links for more information:

Welcome to Renaissance 2.0

Labels:

The Renaissance was a period of rebirth in Europe during the 14th to 17th centuries. It was hundreds of years of revolution in the arts and in culture. The social patterns, thinking and technology that allowed this to happen took thousands of years to develop. It sparked a new passion in learning, new techniques and styles of painting, and widespread reform.  This lead to an amazing leap in science and technology and the definition of the scientific method, heralding the ‘Modern Age’. This ultimately led to a change in human society so grand, that we still talk about it today.

Many of the world’s best achievements and treasures come form this period of time.

I think the past few years, and the technologies coming out today, represent the leading edge of Renaissance 2.0. And since we are all geeks, we will of course shorten it to Ren2.0.

Today, with cloud services, Azure, software plus services patterns, modern testing, SOAP/REST, Geneva, platforms like Mesh, and everything else, leads us to the point where we can build applications we have NEVER dreamed of before, just like what happened in Ren1.0. Think of the applications and services you use today, that could not have existing at all a few months or years ago. Think of all of the new experimentation and advances that will build on these early steps. The core internet really enabled this all. The easy access to information, and to communications has multiplied the amount of innovation and free thinking needed for such an explosion.

Thousand of years from now, there will be college students studying Twitter, and the times we are in today.

This is the time to take your idea, and just DO IT! The economy may look to be in shambles, but that shouldn’t stop you. Now is the time for you do build that game changing idea, perhaps in your spare time, or perhaps with some angel funding.

Niccolo de Niccoli, Poffio Bracciolini, Leonardo da Vinci, Copernicus, Galileo, Martin Luther; they all had their turn.

Now it’s our turn. Change the world, or stay home.

* I wrote this post almost six months ago, but wanted to hold it off until our announcements at PDC today. I thought people would be more likely to understand what I was saying if they had seen those announcements.

Published on nPlus1.org

Labels:

Mike Wood, James Bender, and Chris Woodruff saw a gap in the community. They saw that there was a strong community and a great deal of support for all types of developers. They also noticed that there isn’t a lot out there to help architects and aspiring architects come together, learn, and become better at what they do.

So they got together, scrabbled together some cash (Microsoft is proud to be a sponsor), and launched www.nPlus1.org. The team is organized into two groups. Senior Editors run the organization, and coordinate the original content that is submitted for publishing. Then there is a larger group of Editors. Editors focus on submitting links and summaries of content found elsewhere on the Internet (known as TidBits on the site). They are actively looking for more Editors, so ping them if you are interested. This two pronged approach brings both new content from local authors, and a simple way to find all of the great architecture related content scattered all over the place.

The site is specifically geared for all types of architecture, and related interests. It is a v1.0 of the site, so please submit any feedback on how to make it better to the Senior Editors on the site.

I was asked to write an article to be part of the launch content. I submitted “What Does An Architect Do? It Depends.” Give it a read, browse the site, and subscribe to the RSS feeds.

I know they have a lot of ideas for improving the site over the next few weeks. And if you have an interesting link, and an idea for an article, I recommend you contact them with your idea.

Meet the guy in charge of VSTS Test

Labels:

My teammate Jennifer Marsman has planned a tour with Mark Mydland through Michigan, Ohio, Kentucky, and Tennessee. Mark is the Principal Group Manager over Visual Studio Team System Test Edition.

Mark’s team will be making some huge announcements around what the next version of VSTS:Test can do, and you don’t want to miss this. It’s really incredible.

Mark will be presenting at most user groups as he tours, and here is his schedule. Don’t miss it. Jennifer specifically scheduled Mark’s tour after the PDC so he can show you all of the new features. Come ask him your testing questions. We will also be provided dinner at all of the user group meetings, so come on out, and see it all in action.

Grand Rapids, MI - Tues 11/11 at 6pm

Watermark Country Club, 5500 Cascade Rd, Grand Rapids, MI 49548

Ann Arbor, MI - Wed 11/12 at 6pm

SRT Solutions, 206 S. Fifth Avenue, Suite 200, Ann Arbor, MI 48104

Cleveland, OH - Thurs 11/13 at 6:30pm

Sogeti office, Beacon Place Office Building, 6055 Rockside Woods Blvd, Independence, OH 44131

Columbus, OH - Fri 11/14 at 6pm

Microsoft "Polaris Parkway" office, 8800 Lyra Dr, Columbus, OH 43240

Cincinnati, OH - Mon 11/17 at 6pm

MAX Training, 4900 Parkway Dr, Suite 160, Mason, OH 45040-8429

Louisville, KY - Tues 11/18 at 6:30pm

Sullivan University-Louisville Campus Theatre (Room 254), 3101 Bardstown Road, Louisville, KY 40205

Nashville, TN - Wed 11/19 at 6pm

Microsoft Nashville office, MPR room, 2555 Meridian Blvd, Suite 300, Franklin, TN 37067

Memphis, TN - Thurs 11/20 at 6pm

New Horizons, 4775 American Way, Memphis, TN 38118

Knoxville, TN - Fri 11/21 at 6pm

New Horizons, Building C, Suite 100, 9111 Cross Park Drive, Knoxville, TN 37923

(This Knoxville location is subject to change; I'll update this post once it is confirmed.)

SOA & Business Process Conference 2009

Labels: , ,

The SOA & Business Process Conference 2009 is put on by Microsoft, and is held on campus in Redmond. I have been to it many times as a partner and customer, and it is one of my favorite events.

The event always gives you great access, directly, to the teams building our strategies and products around SOA and BPM. This is a great chance to learn a great deal, and provide feedback on our roadmap. The conference is also loaded with thought leaders, and leading companies in the SOA/BPM space.

The event has grown so large over the years, that in order to keep it on campus, they had to break it into two parts. The first part is for partners in the SOA/BPM space, and runs January 26-27, 2009, and will cost $599. The second part will be for customers, and runs January 28-30, 2009, and will cost $599 if you register before December 1st, 2008.

There is also a great reception held on the evening of January 27th for all of the incoming customer attendees.

The theme for this year is “Real World SOA Here and Now!" The focus will be on solutions that are out and running today, and the ROI and related benefits from those solutions. There will also be a focus on best practices.

You can register here for the partner half (use the code soabppart), and here for the customer half. Contact me if you would like a more detailed invitation.

Event: Microsoft Dog Food Developer Conference

Labels: ,

I have been working with some friends that are on our Enterprise team to put together an event. We decided to call it the Dog Food Developer Conference. About half of the speakers are local community leaders, and the other half are Microsofties.

DF will be held on November 20th, 2008, and starts at 8:00am.

We will have three tracks throughout the day, covering a wide range of topics. The schedule is listed below. The last part of the afternoon is left for open discussion with the speakers. We have reserved plenty of small rooms, so you can snag a speaker, and sneak off to have a private conversation. You can, of course, have your conversation out in the open if you want.

The event is free, and there are only a few seats left, so register quickly. Lunch will be provided.



Time:

Track 0

Track 1

Track 2

8 to 9:00 AM

Register

9-9:45 Key Note

S oftware + S ervices , MS Roadmaps, PDC Announcements

Speaker: Brian Prince , MS

S oftware + S ervices , MS Roadmaps, PDC Announcements

Speaker: Jeff Blankenburg, MS

S oftware + S ervices , MS Roadmaps, PDC Announcements

Speaker: Jim Holmes, MS MVP

9:55-11:35

Will go to Noon for Q and A

MOSS: ECM

KnowledgeLake, Imaging Capture

Speaker:

Knowledge Lake : Mike Miller , Mark Oman, KnowledgeLake

IE 8: Application Compatibility, Web 2.0, Web Slices, activities and extension.

Speaker: Mike Lutton, Sogeti

BizTalk: SOA and ESB

Speaker:

Monish Nagisetty, Quick Solutions

Noon to 1:00 PM

Lunch

Lunch

Lunch

1 to 2:20

MOSS Development

Speaker: Leon Gersing, Telligent

SilverLight/WPF Overview

Speaker: Jeff Blankenburg, MS

Legacy Modernization: Tools for COBOL and Mainframe migrations to .NET

Speaker: Hewitt Wright, MS Walter Sweat, Fujitsu

2:30 to 3:30

Virtual Earth

Speaker: Steve Milroy, MS

MVC Overview

Speaker: Steve Smith, Regional Director for MS MVP Program,

Nimble Software Professionals

Writing Secure Code:

Speaker: Steve Webb , ICC

3:30 to 5:00 PM

Ask the experts and whiteboard one on one sessions:

1. Carey Payette, President of the Central Ohio .NET Developer’s Group

a. C#

2. Alexei Govorine, Co-founder of Central OH Application Lifecycle Management Group

a. Team Foundation Server, ALM

3. Rick Kierner, HMB Consultant

a. MOSS Development

4. Jim Holmes, MS MVP

a. .NET, MOSS Development

5. Monish Nagisetty: Founder of Mid-Ohio Connected Systems Developers User Group

a. SOA, BizTalk

6. Leon Gersing, Telligent

a. MOSS development

7. Jeff Hunsaker, Co-founder of Central OH Application Lifecycle Management Group

a. Team Foundation Server, ALM

8. Mario Fulan, Microsoft Consulting Services

a. MOSS Governance and development

9. Tom Sears, Microsoft Consulting Services

a. .NET Architecture, Architectural Guidance

10. Steve Smith, MS MVP

a. ASP.NET, MVC, Agile Practices

11. David Baliles, MS SLG Dev Tools, Solution Specialist

a. MSDN and TFS

12. Mike Gresley, MS SLG Developer Technology Specialist

a. .NET and TFS

Add Events to Calendar, Subscribe to Events

Wrap up from Ann Arbor Day of .NET

Labels: ,

I am just now recovering from a great tip up to AA. The event went very well, and the organizers did a great job. It is really cool to see leaders from five different user groups get together to put on such a smoothly run event.

The speakers and content they lined up were just great. I ended up in the big amphitheatre room again, as the last session of the day, just like last year. But I am not complaining. I actually like that. It allows me to tie some of the things I have seen during the day together, and weave them into my talk.

I spoke on ‘How to be an architect.’ This was the first instance of this talk, and I think, with that being said, it went pretty well. I definitely found ways to smooth the delivery, and increase the connectedness of some of the value flow. I will work to make these improvements before the next time I deliver it.

I have posted the slides here, if you are interested.

I do want to follow up on some of the questions that were asked.

0. Someone asked, if you wear many hats at work (architect, developer, support guy, etc.), where can you find the time to do the continuous learning. I responded that you should just get a divorce. This actually showed up on Twitter, and I want to make it clear.

I was JUST KIDDING.

Here are some thoughts though:

a. Learning IS part of your job as a dev or an architect. So set aside an hour or two a week to do just that.

b. Keep a stack of trade magazines next to your desk, and read them during the fragments of free time we have scattered throughout the day. For example, while you are waiting for your machine to boot, or for something to download.

c. Don’t forget to ‘Eat like a bird.’

d. Keep magazines and books in the office bathroom.

e. Learn to scan headlines, and speed read. I can read a whole magazine in minutes by doing this. Also keep in mind that most journalists follow a standard pattern to their writing. The article usually has three parts: Summarize what you are going to say (this pulls you in), provide the details, and then close with summarizing what you said. When I am skimming, I just read the headline, and the first ‘part.’ I only read the detail section if the article is very germane or interesting.

1. I was describing what some of the concerns an architect should have. Someone then piped up and asked why I hadn’t mentioned ‘design.’ I immediately responded that Information and UX architecture are important too. In hindsight, the person might have been asking about the technical design that some architects do. It is an old notion that the architect on a project provides all or most of the detailed technical design. This is ok, if that is how your organization works, but I try not to play that role. As an architect, I try to layout the high level concepts of the design. This is the outline that the details will fit in. Then I work with the developers to define the detailed technical design as needed.

This accomplishes several things. First, it fits in really well in in agile process. Second, it moves some of the design to some often underused assets, your developers. They know how to write this code, and they know the frameworks very well. Let them help you define these details. They can bring that experience, while you represent the higher level concerns (business, user, project needs, etc.). This also answers another common concern of developers, in that they want to be more involved in the design, and have impact on what they are building.

I want to thank all of the people that came out. See you next time.

How to put on a PDC viewing party

Labels:

The PDC is next week, and it is going to be huge. The amount and scale of the announcements are, in my view, the biggest of any PDC in the past (can’t say for future PDCs).

Two of the keynotes by Ray Ozzie will be streamed live. The other keynotes will be available online shortly after they are completed. Since the PDC is on the west coast, this puts the keynotes during lunchtime in the EST time zone.

The keynotes will contain all of the big announcements, and the great demos. They will give you an idea for the flavor of what the sessions are going to deep dive into.

So here is how to throw a PDC viewing party.

0. Reserve a conference room of some sort. You will need a projector, speakers, and a computer to stream from. The speakers are optional, if everyone in your part can read lips.

1. Invite everyone you know. Invite people you don’t know. Tweet about it. Try not to break any stalking laws though.

2. Either convince your boss to pay for pizza for everyone, or tell the attendees to bring their own lunch. Giant bowls of popcorn sound good right now too. You could just steal food from the office kitchen refrigerator, but you never know how old that food is. Pitch this to the boss as a training event, and a heads up on the new technologies MS is releasing. It is important that you can work our plans for the next few years into your own plans.

3. Settle in, and watch. Keep the wow-ing and ahh-ing down. You don’t want to make your officemates jealous that you are a developer, and they are stuck with some ‘other’ career.

4. Don’t forget to poop like an elephant, and think like an architect. After the shock and awe feeling wears off, and your vision returns, start to talk about the tech, and how you could use it to make your jobs better. How you could use it to increase your value to your customers. Perhaps that new thing will allow you to roll out more features faster, or connect with the customer in a new way. Share what you learn with the gophers who don’t show up to your party.

5. Start a buzzword bingo game, and give out prizes. Words to track would be ‘super’, ‘excited’, ‘cloud’, ‘plus’, and ‘whack-a-doo-whack-a-doo’, ‘mac’, ‘apple’, ‘virtual’, and ‘mobile.’

If you can’t get your own party together, you either need to just huddle in your cube, and pretend you are working on code, or traipse on over to someone else’s viewing party.

When you are done, and want to talk about any of the topics in detail, please let me know. We can schedule a visit.

If you know of a public viewing party, let me know, and I will list it here, or post it as a comment.

Leave the coffee Brian.

Labels: ,

Everyone is excited about PDC2008. Go register if you haven’t yet. See your local user group leader for a $200 off discount code!

The biggest announcement so far is that each attendee will receive a 160 GB USB hard drive, with all the bits on it, include a pre-beta release of Windows 7! We will also be revealing our cloud platform,  as well as details on .NET 4 and Visual Studio 2010.

To celebrate, Channel8 just published this video, of the marketing team putting together some promos for PDC. Watch to the end to see the twist.


PDC 2008 is coming... and I can't wait!

Announcing Team System Cafe

Labels:

A great team member of mine (Randy Pagels, who works with a lot of customers to help them understand the business value of ALM and TFS) just launched a site at http://www.teamsystemcafe.net/. It brings together a lot of great resources on Team Foundation System, Visual Studio Team Suite, and Application Lifecycle Management.

There is a great blog roll of related sites as well. Take a few minutes and check it out.

ArcReady Slides

Labels: ,

The Tennessee tour for ArcReady went very well (followed up by an awesome week at Disney for vacation). I want to thank everyone who came out. We had a lot of good conversations.

Here are the slides:

Session 1 covers the patterns and concepts for how to architect for different distributed systems using modern architectures.

Session 2 covers Zermatt, and how you can use it to deploy scenarios covered in session 1.

PDC EARLY BIRD SPECIAL EXTENDED!

Labels:

Once when I worked for a consulting firm, one of my leads wanted to go to a big conference. So we filled out the paperwork, estimated flight and hotel costs, and submitted it into the black hole of bureaucracy. I hounded my manager at the time, every other day.

After what seemed like an infinite amount of time, we found out the training request was approved. It was too late to use the early bird special price, but registration was still open.

Then we had to fight the admin staff to get the attendee registered. By the time everything was all said and done, the event was sold out, and they couldn’t go.

If you are in that situation, please note that the Early Bird discount for PDC2008 has been extended until September 8th. You will get $200 off (little less than 10%).

This is the one PDC you can’t miss. It will be bigger than ever, covered with a gooey layer of awesomeness.

Go register now, and ask for forgiveness later. :)

Register

I’m on .NET Rocks!

Labels:

We were hanging out at the hotel bar on Saturday night (August 23rd), just hanging out. It was my birthday, and we were unwinding from devLink (which rocked!), and I was exhausted from working really long days.

Carl and Richard from .NET Rocks was hanging out there as well. After the conversation got rolling, they whipped out a wireless microphone with onboard memory and started interviewing everyone at the table. There is a great discussion of devLink, OpenSpaces, CodeMash, and lots of other stuff.

It was a lot of fun. Take some time and give a listen to show #372.

Kentucky Day of .NET

Labels: , ,

Jeremy Sublett and Chad Campbell are organizing the second Kentucky Day of .NET.

 

It will be on Saturday, September 6. They have lined up a number of great speakers to cover lots of .NET topics for developers.  Please visit http://kydayof.net to see the sessions and to sign up.

Jeff Blankenburg will be keynoting, and I will be presenting my Soft Skillz talk. If you need a ride from Columbus, maybe we can carpool.

 

Saturday, Sept. 6

Sullivan University

9:00 am to 4:00 pm

CodeMash 2009 Call for Speakers

Labels: ,

I'm pleased and excited to inform you that CodeMash 2009 planning is underway! We'll be returning to the Kalahari Resort to hold our third event this coming January 7-9, 2009, and do hope you'll consider participating.

Submit your proposed session through the CodeMash website by navigating to http://codemash.org/BeASpeaker.aspx. As with prior events, speakers are provided with a free conference pass, including food, admission to all sessions, and all of the fame and glory attached to being a CodeMash participant. The deadline for submission is October 22, 2008, however given the volume of proposals we'd appreciate it if you could strive to beat this deadline by at least a few weeks.

January 7-9, you ask? You read it right, we're expanding the event to include a third day! Dubbed the CodeMash Precompiler, this day long event (held on January 7) will include a number of hands-on labs which give attendees the opportunity to explore a topic at great depth. We're still sorting out the details. The ensuing two days will follow the same fun format as per the previous events.

MSDN Unleashed Event Details

Labels:

We are ready to announce our next ArcReady and MSDN Unleashed tour dates. ArcReady was detailed in the prior blog post. For those that are new, these are events given by your local evangelism team, in as many local cities as we can work out.

These events happen every quarter. The ArcReadys are always in the morning, from 9am-11:30am. MSDN is from 1pm-4pm. They will usually be held in the same facility. ArcReady is geared for practicing and aspiring architects. You don’t have to be an architect to get value out of it. MSDN Unleashed events are geared for all types of developers.

MSDN Unleashed

Session 1: Demystifying WPF

Today’s applications need to do more than simply work. They need to draw in the user, and provide a differentiated experience. This means moving beyond battleship gray forms, boxy UIs, and providing a positive user experience. Windows Presentation Foundation (WPF) provides powerful capabilities to develop a compelling user interface, the kind that makes an application stand out. In this session, we’ll examine the core concepts of WPF such as layout panels, data binding, styles and control templates, and we’ll use them to develop an application UI from the ground up.

Session 2: Developing Applications with Visual Studio 2008 and .NET Framework 3.5 Service Pack 1

Service Pack 1 and Visual Studio 2008 introduce a wide variety of new features for targeting Windows, Office and the Web. This includes more controls, a streamlined setup, improved startup performance, fresh graphics features, improved AJAX support, and much more. We’re also introducing the ADO.NET Entity Framework and ADO.NET Data Services, which are designed to simplify application data access by providing an extensible, conceptual model for data from any source, while enabling this model to closely reflect business requirements. Don’t miss this lively session and learn how to use these powerful new features in your applications.

WHO SHOULD ATTEND?

Anyone who designs, develops, or debugs code. If you are an architect, developer or just enjoy curly braces, join us.

WHERE ARE THE EVENTS?

Events are held in 12 cities across Central Region.  To register for this event, please select a link below.

9/10/08 Nashville TN

Register

9/16/08 Downers Grove IL

Register

9/17/08 Indianapolis IN

Register

9/23/08 Irving TX

Register

9/23/08 Waukesha WI

Register

9/24/08 Houston TX

Register

9/25/08 Austin TX

Register

9/30/08 Southfield MI

Register

10/2/08 Columbus OH

Register

10/7/08 Chicago IL

Register

10/7/08 Mason OH

Register

10/9/08 Cleveland OH

Register

ArcReady Announcement

Labels: , ,

We are ready to announce our next ArcReady and MSDN Unleashed tour dates. MSDN Unleashed info in next blog post. For those that are new, these are events given by your local evangelism team, in as many local cities as we can work out.

These events happen every quarter. The ArcReadys are always in the morning, from 9am-11:30am. MSDN is from 1pm-4pm. They will usually be held in the same facility. ArcReady is geared for practicing and aspiring architects. You don’t have to be an architect to get value out of it. MSDN Unleashed events are geared for all types of developers.

Microsoft ArcReady

Architecting Modern Distributed Applications

Nearly every application we build today has dependencies to other systems. How do we design them to work together to meet our goals? How do we decide what to build and what to buy? Do we host it ourselves or in the cloud? With a bewildering array of choices, the biggest challenge we face today is how to architect robust applications with the right technologies to meet our user’s needs and integrate nicely into our existing IT ecosystems.

Join our Central Region Architect Evangelists for a great discussion on architecting distributed applications using all the latest technologies and best practices.

Session 1: Blueprints for Success. In this session, we will survey the modern architecture landscape from the ground up, including infrastructure, application, and client solution choices. We’ll discuss how current industry trends are shaping our architectures and present an innovative architecture mapping technique for analyzing our customer’s needs and aligning them to today’s technologies and solution patterns.
Session 2: Making It Real. In this session, we’ll take a look at several case studies to learn how to apply the mapping technique from Session 1 to architect real world solutions that add true business value. We’ll examine applications we use every day and take a walk through a Microsoft reference architecture that explores many of the decisions we face when building modern distributed applications.

WHO SHOULD ATTEND?

Architects and Senior Developers who are interested in becoming an architect.

WHERE ARE THE EVENTS?

Events are held in 16 cities across Central Region.  To register for this event, please visit www.arcready.com.

Date Location
9/10/2008 Nashville, TN
9/11/2008 Knoxville, TN
9/30/2008 Southfield, MI
10/2/2008 Columbus, OH
10/7/2008 Cincinnati, OH
10/9/2008 Cleveland, OH

ARCast.TV episode Live!

Labels: ,

A few months ago I sat down with Jim Holmes and Philip Jordan at Quick Solutions to talk about an elegant way to handle a difficult scenario.


ARCast.TV - Jim Holmes and Philip Jordan on Excel Services

http://channel9.msdn.com/shows/ARCast.TV/ARCastTV-Jim-Homes-and-Philip-Jordan-on-Business-Models-that-leverage-Excel-Services/

They often have customers with complex business logic in Excel, and the customer often thinks they want a new application to replace this. But the users also want to be able to update not only the business data, but the business MODELS. Trying to do this can be difficult, so Jim and Philip turned to MOSS, and Excel Services.

Excel Services allows the user to publish their spreadsheets to their consumers. The consumers use the sheet in the browser. They don’t need Excel on the desktop. The great thing is the Intellectual Property of the business model is safe, because the end consumer only ever gets to see the output of the models, not the math behind the models.

Anyway, please check it out. It’s only 20 minutes long. This is my first Arcast episode, and I really want to do several more.

So, you want to start a user group?

Labels:

The community in Heartland is very strong, it is vibrant. It is a community I am proud to be a part of. But there are always new audiences that need new ways to work together to learn and develop themselves. Here are some basic steps to get a user group started. The goal in these steps is to keep the barrier to entry as low as possible, and as free as possible.

0. Get a name. All things must start with a name. Something to encapsulate your major topic or focus. A geographic term is usually also included. The name should be pronounceable. You see, us geeks like to verbalize our acronyms. It shows a degree of acceptance of the acronym, and hence the group, when this happens. Examples:

CinArc (Sin-Arc) – Architecture in Cincinnati

ColArc (Call-Arc)– Architecture in Columbus

CONDG (Con-dug) – Central Ohio .NET Developers Group

POOP (Poh-op)– Portland Open Office Professionals

Once you have a name, you can try to make a logo, although that is optional.

10. Create a Live ID and live email address (for example poop@live.com) that will belong to your user group. You should not use your personal id, because as the group grows, you don’t want the groups assets tangled with your personal assets.

Create a blog at any of a number of free online blog hosters (blogspot.com for example). Use the group email address to sign up for this. Pick a template, give the blog the same name as the group, and give it a good description so that it can be found by search engines. This blog will have a generic address, such as poop.blogspot.com.

In the blog template, make sure you put contact information, directions, and meeting schedule (every sixth odd numbered Tuesday after Lent, at 6:00pm).

Buy a domain name for your group. Again, any of the domain registrars can do this. I use godaddy.com. Once you buy the domain (poop.com), follow your blog hosters directions for having www.poop.com direct to your groups blog page (this concept is similar to host headers in web servers). Then you can market www.poop.com to possible attendees, speakers, and sponsors.

Go to skydrive.live.com, and create an account with your poop Live id. This will create some online storage for you so you can store the presentation materials online, and make them available to your members.

Now go register all of this with www.codezone.com (if your new fancy user group is MS centric). This will give you membership and event management tools. It will also allow you to buy swag with points to give out at your meetings. Other benefits are that people will be able to find your user group in the directory, and it will be submitted to the different MSDN newsletters and event search engines.

There are other online registry’s for user groups and events. Check out www.communitymegaphone.com.

One more big step. People will want to subscribe to your new blog with an RSS reader. If they subscribe directly, then it is very hard to move your blog later (sometimes the neighbors borrow tools and don’t bring them back). I suggest you create an account at www.feedburner.com with your user group email. Feedburner will publish your RSS feed for you, redirecting readers to where ever you might host your blog in the future. Think of it as DNS resolution for your RSS feed.

I also recommend that you keep a three to six month schedule of speakers and topics prepared. Being able to tell your members what the upcoming meetings will be about will keep your attendance rate up.

This will get you started. There are other things you will eventually need to work on. I would wait until you regularly get more than 42 people per meeting, and you have had a good 12 month track record. At this point, the group is stable, and you will start to need help. Recruit a board (2-3 other people), and look into filing as a non-profit in your state.

You will also need to come up with a sponsorship and job-posting policy. I can cover these topics in another post.

Blogs are conversations (macro-twittering at times). Post your recommendations to someone who is new in the community, and is trying to start a group.

Oh, one more. Network in your community, and join up with other UG leaders in your area. They can help you.

Also also, it seems some of the strongest groups were started by the person that just wanted other people to learn with.

Also^3, looking back at this post, this is the tip of cloud computing, and hosting solutions in the cloud. I didn’t have to setup a server, arrange for patches and backups, and composed several different vendors and services to present the application I needed. This is indeed the start of Renaissance 2.0.

Ok, I promise, only two more things:

a) try to play after the meetings. go to a local adult beverage dispensory, and bond as a group.

two) 70% of your speakers should be local enthusiasts. not every speaker can nor should be a speaker from outside. groom and grow your local talent. it’s the community bootstrap effect. (that's my term, I just made it up. it’s trademarked.)

FlameGoat.net

Labels:

I was speaking a while ago at ITT in Nashville, TN. After my talk, several students came up to tell me about a site they were running called FlameGoat.net.

The voice of the site is intended to be a little on the edge, with a ‘fight the power’ type tone. The site is interesting, with a lot of gaming news and trailers. They have started sections aimed at developers, with room to post videos and tutorials.

These students were clearly self starters, taking their idea, and executing it, instead of just talking about it. The other great thing, is that 15%-25% of the ad revenue is donated to Saint Jude’s Children Hospital every month. Not only did they execute their idea, they are using it to help the community. That’s just awesome.

As I look at my career, and the people I have known, I remember seeing some great idea, and thinking that I had the same idea, but never did it. I slowly learned that many times you can’t wait for someone else to let you do something, you just need to find a way to do it yourself. This is a good example of that.

And the trick with any content site, is to keep that content fresh, and constantly moving. I wish them good luck.

Open Source Projects Must Market Themselves Better

Labels:

The open source community is rich with alternatives for any need or framework you could possibly need. It is a veritable cacophony at times. While this richness is great, it can be a challenge to get your project adopted by developers.

This also presents a challenge for those architects and developers who are shopping around for a framework to solve a particular problem. Most projects have a web site somewhere (CodePlex, SourceForge, etc.), with a list of bugs, releases, notes, etc.

Most of these project pages have only a short description about the project. That description was likely written at the very beginning of the project when it was just a simple idea. The description is usually outdated, and never updated as the project moved forward.

If I am an architect/developer browsing your project site, and I see something that is vague, and hard to understand, I won’t likely check out your project. After an hour of only seeing poorly marketed and documented projects, I am likely to not choose any framework. That’s not a good outcome. Downloading, compiling, and playing with more than a few frameworks is just too messy and time consuming for an architect that needs to ramp up on a particular space, and make an informed decision on how to move his own project forward.

You need to market your Open Source project like any other product on the market.

Open Source project leads need to market their project, and help people understand why they should use your framework. If you are a persistence framework, you have to make that clear. You have to describe what your tool is like, and how it works (at a high level). You should also define what is required to use it (.NET 2.0, certain tools, etc.), and also what the process is for leveraging it in the developer’s project. Your site should also include walk through’s, perhaps webcasts around how to start a project with it. At a minimum, include some diagrams or screen captures. Let me know what I am getting.

If you really want to knock it out of the park, link to or provide information as to why you need to do what the framework does. For example, if you have a DI framework, provide information on when and why DI is a good idea. You could also link off to some resources that will educate the reader on DI. Informing that user will help them understand why they should use DI (in this case), and know why your particular framework is a good choice.

I had this discussion with Nate Kohari from Ninject at a Day of .NET a few months ago. When he released a new build (congrats!), he updated his site to help the reader better understand what Ninject does, how it is used, and how it differentiates itself from other frameworks.

Your project site doesn’t have to have fancy design like Nate’s (but that is great if you can), but it should include this basic information.

You need to make it easy for a visitor, within a few minutes, to understand the value of your project, and how to get started.

Leon, I can answer your question now…

Labels:

About a month ago I was at CinArc. During the break Leon asked me what Microsoft was doing about open source, and when were we going to change our business model to adapt or compete. He wasn’t picking a fight, he honestly wanted to know if MS recognized this new aspect of the market (not really new at this point, but anyway), and were we going to engage at this level, if not embrace it.

I didn’t have an answer at the time. Not because I missed the ‘Annual Evil Empire Planning Meeting’ (I am still waiting to get invited to that meeting), but because I was so new, and am really not part of that part of the organization. I recently attended a session where Sam Ramji explained Microsoft strategies for working with open source, and the open source community. I was very pleased with what I head. I shows that we are embracing this model, and the people who believe in it.

There have been some amazing announcements about how we are supporting and engaging the open source community.

Our message: We are committed to making Windows the best platform to run Open Source applications on. That’s it.

Our actions and commitments are our proof. And these are just the start.

- The Open Specification Promise: We have put many, many protocols based on Microsoft’s patents into the OSP, with a promise that developers have a right to use them without any fear from any patent claims from Microsoft. Per the site that defines the promise: “be used for free, easily, now and forever.” Developers can use these protocols in any way, and for any use, even commercial. Our promise is also more broad, and more flexible than other promises. There have been clarifications on our promise so that developers really understand what our commitment is.

- PHP ADOdb patch: ADOdb is a very popular data access framework for PHP. Microsoft is contributing a patch that enables ADOdb to access SQL Server through the native drivers in PHP. I was very proud when I was told by Sam about Microsoft’s first real contribution to the open source community. He promises there will be much more. From the plans I heard about, I believe him. Sam’s team has tested more than 100 PHP applications on IIS, and they worked without any changes.

- Sponsor of Apache Software Foundation – We have sponsored the ASF so that they can continue their operations. This shows that we believe in their way. Does this spell the end of IIS? NOOOO! We will continue investments into IIS, which is currently the fastest platform for running PHP applications.

- FastCGI/IIS7 – FastCGI is a component for IIS7 that serves up PHP content. There is an article on how to install it, and how to configure IIS to host PHP.

- Over 5000 projects on CodePlex. Over 300 with MSFT engineers contributing (yes that can be more, and should be, and will be!)

 

There are plenty of other announcements that we aren’t ready to go public with yet.

The message is clear. We want our platform to be the best for you, regardless of what tools and frameworks you use to change the world. We are working hard to make this happen, and are actively embracing the open source world. It takes time to turn a battleship though, but I have met the people leading this charge, and I have faith they will do it. It will take more than just this small team. All of us need to work hard to understand the open source community, from their perspective, and learn how we can work together.

Babbage Simmel’s Summer Technology Conference 2008

Labels: ,

A local training partner, Babbage Simmel is putting on a summer conference in Columbus. All of the speakers are from Microsoft, including Mark Harris, Luis Gonzalez, and Bill Steele. Details below.

August 21st and 22nd

Free hands-on labs, Special presentations, Giveaways, Lunch provided!

Babbage Simmel is inviting you to come and experience the latest in Microsoft technologies: Windows Server 2008, SQL Server 2008, and Visual Studio 2008. One full day complete with hands-on labs, technical demos, and presentations by Microsoft and Babbage Simmel, August 21st or 22ndYou Choose! Come find out how you can leverage these products to solve your toughest challenges and reach some of your greatest opportunities.

Event schedule includes:

· Seminars on the upcoming training offerings and certifications for Windows Server 2008, Visual Studio 2008, and SQL Server 2008

· The newest Hands-on labs and First Looks for Windows Server 2008, Visual Studio 2008, and SQL Server 2008 – running all day at your own pace

· Discussion time with and presentations by Babbage Simmel and Microsoft representatives on Windows Server 2008, Visual Studio 2008, and SQL Server 2008

· Time to network with industry peers

· Vendor tables and giveaways!!!

· Lunch and beverages provided both days

Babbage Simmel Seminar Series

Day 1 – Thursday August 21, 2008

  • Server Core, Security Improvements, NAP
  • IP V6, Virtual Server 2008/Hyper V, Terminal Server
  • VS.NET and 3.5 .NET Framework
  • Developing applications with Visual Studio 2008 and .NET Framework 3.5 Service Pack 1
  • WPF, Demystifying WPF 
  • The New Generation of Microsoft Certifications 
  • Lunch will be provided free of charge.

Day 2 – Friday August 22, 2008

  • Server Core, Security Improvements, NAP
  • IP V6, Virtual Server 2008/Hyper V, Terminal Server
  • SQL Server 2008 Overview
  • What’s New in SQL Server 2008
  • VS.NET and 3.5 .NET Framework
  • Developing applications with Visual Studio 2008 and .NET Framework 3.5 Service Pack 1
  • Application Security with Vista
  • The New Generation of Microsoft Certifications 
  • Lunch will be provided free of charge.

 

Space is limited and seats sell out fast, so be sure to register today! 

Register here: Babbage Simmel Summer Technology Conference 2008

Featured Products/Topics: Microsoft Windows Server 2008, Microsoft Visual Studio 2008, Microsoft SQL Server 2008

Recommended Audiences: Technology Executives, IT Managers, IT Professionals, Business Executives, Vice Presidents, CEO, CIO, COO, CTO, IT Directors, Administrators, Solution Architects, Software Developers, Business Decision Maker, Technical Decision Makers, Developers

Enterprise Applications can have great UX

Labels:

We often think that Enterprise applications are boring WIMP (windows, icons, menus, pointers) style apps and that there is little to no value to having a compelling UX. Sometimes we do this because we can’t sell a better UX to the business customer. Sometimes it’s because this seems easier for us as the developer. Sometimes it’s because someone thinks that it is such a small app, that it doesn’t matter. (If it is so small, and matters not, why invest the time and money to build and maintain it?)

UX is as much of the architects job as anyone else’s. It needs to be part of your project plan and system architecture. Having good UX in the presentation layer is like having a well factored class structure in the business tier.

There is just this lack of compelling UX in the business/enterprise application world. The problem is not the argument about why UX is important, but great samples of real enterprise applications that show how effective great UX can be. While there are many benefits to the business, working with a well designed UX can really re-motivate a tired enterprise developer as well. Nothing like a new shade of gray to motivate you in the morning.

dnrTV just aired an episode with Billy Hollis talking about current project. I stopped watching/listening to DNR a while ago, mostly out of apathy. This episode got me watching again.

He shows an enterprise application his customer has built using WPF. He does a walk through of the application, and then eventually walks through some sample code. He proves that you don’t have to have a designer (although that can really help!). He built this app with a team of three, so you don’t have to have a big team either.

The one thing you need? Enough energy to get out of the rut, and stop making carbon-copy-boring-high-friction-developer-first-user-second-battleship-gray-ware(tm).

It’s amazing what you can do with a list in WPF.  The animated sticky notes on the side? A list with some styles. Check out this episode.

Do your applications have this good of a UX? Why not? WPF makes it crazy easy.

I Solve Problems in the Shower

Labels:

I like to solve problems. It’s in my blood. I have a feeling if you are in this industry, it’s in your blood too. I think this is why I was drawn to Math and Physics growing up, and ended up studying them in college (along with CompSci of course). I think this is also why I like the type of games that I like to play. RPG’s, and RTS’s tend to be problem solving type games. Think of the missions you are assigned, or Civilization and SimCity. Those are problem simulators. Anyway…

When a problem gets in my head, I can’t shake it. There are times when I will hit a roadblock for days. One of my strategies is to take a break from the problem, get my mind off it. When I come back to the problem I usually have some fresh ideas on how to approach it. The time off gives me the ability to come back with a different perspective on the problem. That's why, when meeting with customers, I like to give some initial feedback, and then spend a day or two digesting what we talked about. This time gives me the perspective to give the best feedback I can.

Another approach I use is to list out all of the possible solutions on a whiteboard, aka Solo Brainstorming. This helps me get my thoughts together, gets some kinetics into the equation (Brain mapping software doesn’t seem to work for me in this scenario). The ideas seem to build on each other, and it makes for an easy ‘rule out the crap' process as well.

But my best solutions to problems, the biggest breakthroughs I have are always in the shower. I don’t know why. I think the isolation, the removal of distractions maybe? Anyway, that's where my best thinking happens.

There were many times when I would go into work, and start out with :

“I was thinking about you in the shower this morning, and I think we should …”

As part of keeping my problem solving skills fresh, I thought I would take a crack at the www.projecteurler.net problems. I got to the seventh problem in a few hours. One of the problems, #3, is stated:

The prime factors of 13195 are 5, 7, 13 and 29.

What is the largest prime factor of the number 600851475143 ?

Side note: At one point I had to refactor my code from int to Int64 because of the size of the number. I should have seen that in the first place.

At the surface, the algorithm to use is straight forward. Find the factors for the number, then determine which of those is prime, then determine the largest one of those. This is of course a brute force solution. We often just use brute force because cpu’s and RAM are so cheap today.

While the first order goal of the problems on the list is to solve them, your code is also expected to solve them in a minute. You don’t upload your code, you just type in the final answer. People post their code in the forum dedicated to each problem. Many people use assembly. Brings me back to the college days.

My first cut at the code took a while to calculate this, as a matter of fact, a whole conference call on the upcoming fiscal year.

While I didn’t use a timer, I think I didn’t make the one minute mark.

My process for finding factors was as tight as it could be. Finding primes is a brute force thing, there isn’t a formula that will tell you the nth prime number. That’s why there are those distributed computing screen savers out there.

I considered using the concurrency framework to split the work across my cores. But that would be a new fx to learn, and I wasn’t sure it would help.

So I started my isPrime loop at the top of list! While there were hundreds of factors, and only a few of them were primes, I figured the largest prime factor was likely to be found on the upper end of the list.

Didn’t help, time wise at least.

So I took a shower (advantage of working from home). By the end, I had come up with ways of speeding up the process.

I recalled that there were better ways for testing the primality of a number besides making sure it didn’t have any other divisors besides 1 and n. This lead to finding out a different way of approaching the problem. I looked up the math, and implemented the code. It was done in only a few minutes.

You basically divide the number by primes until you have nothing left. Track the primes you used, and the answer is the largest one in the list. This is an inversion of the original approach. Why find all of the factors? Just test each prime that is less than the target number to see if it is a factor. Then, instead of testing hundreds of numbers for primality, I am only checking a few numbers.

I had an isPrime method.I did need to write a new helper method. I implemented a nextPrime method, that given any number, finds the next largest number that is a prime. I implemented a few optimizations here as well. For example, not checking even numbers past two.

I am sure I could tighten this code further, but it is ‘MeWare’, and I wanted to move on to the next problem.

I love solving problems.

private void button1_Click(object sender, RoutedEventArgs e)
{
List<Int64> answers = new List<Int64>();

Int64 remaining = Convert.ToInt64(textBox1.Text);
Int64 divisor = 2;

while (remaining > 3)
{
if (remaining % divisor == 0)
{
answers.Add(divisor);
remaining = remaining / divisor;
}
else
divisor = nextPrime(divisor);
}

}





public static Int64 nextPrime(Int64 start)
{
Int64 numToCheck = 0;

if (start > 2)
{
if (start % 2 == 0)
numToCheck = start + 2;
else
numToCheck = start + 1;
}
else
numToCheck = 3;

while (!isPrime(numToCheck))
{
numToCheck++;
}

return numToCheck--;
}



public static bool isPrime(Int64 target)
{
// assumes target is > 2. I know, but it’s meware.


            if (target % 2 == 0)
return false;

for (Int64 i = 3; i < target; i=i+2)
{
if (target % i == 0)
return false;
}

return true;
}