# Wednesday, March 08, 2006
Quality Code at AADND tonight

Patrick Steele is doing the tutorial session on NUnit and how it works.

Dave Donaldson doing the main session and is talking about writing quality software with VSTS.


User Groups
Wednesday, March 08, 2006 5:18:32 PM (GMT Standard Time, UTC+00:00)  #  Comments [0] 

# Monday, March 06, 2006
User Group Structure and Positions

When I was at the Rockford, IL .NET Users Group we spent a lot of time afterwards talking about the formation of a user group and best practices. We talked about the idea that they should structure the group so that one person is not having to do all of the work. It’s not sustainable to have one person running the whole show. I just got an email from Chris Hoffman asking me to repeat some of that information. 

 

The basic structure that we are using for three different groups (Great Lakes Area .NET Users Group, Ann Arbor .NET Developers Group and Ann Arbor Computer Society) is as follows:

 

4-5 elected officials – elections once a year.

President

This is the coordinator of all of the different people. Their two basic tasks are to makes sure that everyone else gets their work done and to run the meetings.

 

Vice-President

The basic task of the VP is to take over when the President is not able to make it. We also use the VPs as an extra body on any of the tasks that need to be done such as helping to coordinate marketing, pizza, venue and so on.

 

Treasurer

The Treasurer is the one that maintains the bank account.

User groups have expenses. Those can come in the form of paying for venue, pizza, web hosting, swag to give away and lots more. You can get money for these expenses through paid membership, sponsors, donations or some combination of the three. At all three of the groups that I’m involved in, there is a voluntary $20.00 membership. On top of that, they all have free venue so we are able to cover the expenses with that membership. Two of the groups also accept sponsorships so they can make money that way as well. The treasurer takes the money in and writes the checks so make sure this is someone that you trust. Not that the user group will ever make enough money that it’s worth embezzling but still.

 

Secretary

This secretary’s job is to record minutes at any of the board meetings and such. They are also responsible for running the elections. They should get familiar with Roberts Rules of Order before running the elections. That not required but it’s definitely good because it gives the whole process order and a sense of officialness.

 

At AACS (Ann Arbor Computer Society) we also have a Quartermaster who is responsible for physical things like getting the projector ready and the like. It’s their responsibility to make sure that the room is ready for everyone.

 


Then there are the appointed chair positions. The president has the power to create and appoint chair positions on an as needed basis. The reason that these are by appointment rather than by election is that it makes it easy for administration after administration to reuse the same chairs so there is some continuity between the years. The two chair positions that all of the groups have are:

 

Program Chair

This is the hardest job of the whole group in my opinion. It’s this chair’s job to ensure that there are speakers for every meeting. This person coordinates with INETA if it’s a .NET Users group, scan search engines for local speakers, contacts friends and family and begs and pleads for speakers. It’s a good idea to have a well connected person in this position when the group is starting up because it will make the job easier. As time goes on, the group will gain a reputation and it will be a touch easier because you’ll have some number of speakers asking to come speak + the INETA gigs so you really only have to find 4-5 presenters a year.

 

Web Master Chair

This is the person responsible for the web site. Plan on using Community Server, Dotnetnuke or some other portal style framework because it will make life easier.

 

 

Other chairs that have been created by various groups

 

Publicity Chair

Responsible for mailing out the meeting announcements, getting the group into MSDN flash and other community calendars and so on. Publicity is essential to growing the group. First you have to get the word out to get people interested in it. Second, until you get burned into people’s brain, people will intend on coming but forget about it unless there’s a reminder sent out.

 

Academic Liaison Chair

We have a lot of universities here so it made sense.

 

I hope that this helps. Please let me know if I missed something or if you have anything to add.


User Groups
Monday, March 06, 2006 3:12:17 PM (GMT Standard Time, UTC+00:00)  #  Comments [1] 

# Tuesday, February 28, 2006
4 Things Meme

Jim, I will get you back for tagging me… J

 

Four Jobs I’ve Had…

·                  Bailing Hay (Grew up on a farm in Arkansas)

·                  Security Guard

·                  Morning radio show host

·                  Software consultant

Four movies I can watch over and over…

·                  The Professional

·                  Ronin

·                  It’s a Wonderful Life

·                  Rosencrantz & Guildenstern are Dead

Four TV shows I love to watch…  (Disclaimer – similar to Jim’s, I watch a lot of TV with my kids)

·                  Myth Busters

·                  Get Ed

·                  Danny Phantom

·                  English Premier League Soccer

Four places I’ve been on vacation…

·                  Hot Springs, AR

·                  Zurich, Switzerland

·                  Buenos Aires, Argentina

·                  Philadelphia, PA

Four favorite dishes

·                  Biscuits and Gravy

·                  Ham and Cheese Omelet

·                  Argentinean Steaks – they cook them different there. It’s tender and melts in your mouth…

·                  Any meal with my family

Four websites I visit daily:

·                  http://www.live.com

·                  http://my.msn.com

·                  http://www.techeblog.com  

·                  http://www.geekswithblogs.com (well at least one of the blogs under there…)

Four places I’d rather be

·                  Anywhere with my kids

·                  Anywhere on my motorcycle

·                  Golfing Anywhere

·                  Skiing – I’ve never been but I’ve wanted to for a while

Four bloggers I’m tagging

Jeff Julian

Keith Elder

Darrell Hawley

Patrick Steele



Tuesday, February 28, 2006 3:51:02 PM (GMT Standard Time, UTC+00:00)  #  Comments [0] 

# Thursday, February 09, 2006
ASP.NET 2.0 Personalization Code
Here is the code from some of my recent talks. I will be updating this code from time to time so check back occasionally.

Thursday, February 09, 2006 3:50:24 PM (GMT Standard Time, UTC+00:00)  #  Comments [0] 

Ann Arbor .NET Developer Group’s first meeting last night

For our first ever meeting, I was thrilled with how last night went. We had 35 people show up for our first meeting. It was great to see all of the people in the room that I didn’t know. Of the 35 people, I knew about 15 of them. That’s one of the great things about user groups and community is that it’s a great way to meet people.

 

We are following the format that’s proven to work well at GANG where we have a 45 minute tutorial session followed by the 90 minute main presentation. The tutorial session is designed to give the audience the basic background that they might need to understand the main presentation. It also gives our members a good chance to get some speaking experience without as much pressure as the main presentation gives with a longer talk and a more advanced subject.

 

Jay Wren of ADP gave the tutorial session on Introduction to ASP.NET 2.0. Honestly, I was still running errands like getting copies of the eval made and all of that type of thing so I didn’t hear all of it. But what I did hear was very good and as complete as you can be in 45 minutes. It also seemed to be well received. We haven’t compiled all of the evals but it’s a good sign when there are people standing in line to ask questions afterwards.

 

Following that, I gave a session on ASP.NET 2.0 Personalization. See how the tutorial set the stage for this session? I actually stayed pretty close to on time. This is a new resolution of mine is to start staying within my time limits. I usually start answering questions within the time limits and then end up answering questions for a long time. I’m really trying to cut off the questions and have people with questions stay after and ask me offline so that we can cover it in more depth and people that aren’t interested can leave.

 

I enjoy the Personalization talk because there are a good number of GPMs (Gasps Per Minute). My brother, who is not a developer, came to Rockford, IL when I gave this same talk there and he loved it and phrased the term GPM. The code for the session will be up very shortly.  



Thursday, February 09, 2006 3:48:36 PM (GMT Standard Time, UTC+00:00)  #  Comments [0] 

# Wednesday, February 08, 2006
Design Guidelines Coming for The UX experience...

I found this via Bill Baldasti

 

I’m fascinated by design guidelines. They are intended to ensure that your user has a good and consistent experience with the rest of the applications on the given platform.

For example, the Designed for Windows for Pocket PC for Software Applications guidelines, which you have to follow to be Pocket PC Logo Certified, specify that you cannot have an exit button but must smart minimize nicely and that your application must come back to the exact same state when it’s reopened.

There is also a set Guidelines for User Interface for Developers and Designers that Microsoft has been pushing for a long time.

Even thought it’s a ways from releasing, Microsoft is already starting to build and promote the Windows Vista UX Guidelines. Being fascinated, I downloaded the guidelines. It came down as a 14 meg zip file that unzipped into 825 files. Wow!

It’s going to take some time to dig into this and really digest it. The good news is that they broke it down to a simple top 12 rules list. I’m not going to re-list those here, you can go read them on your own. However, some of these things should apply right now in your current work, like #10 which is clean up the UI including make sure that you use labels, organizing your menus and the like in a task oriented manner and so on. Or like #12 which is reserve time for development time for “fit and finish” work. That’s just good common sense that we should all be following.

Of course, now that you’re all excited about the glass aspects of Vista, they say that you should only use it “judiciously”.

 

It’s going to be interesting to see what happens with the guidelines and the UX experience. Personally, I’m excited by it all. I’m ready to start looking at the Ribbon control in Office 12.



Wednesday, February 08, 2006 2:30:09 AM (GMT Standard Time, UTC+00:00)  #  Comments [0] 

# Friday, February 03, 2006
Survey of the future of tech jobs...

I did several session at VSLive recently. As always I give out my email address in every session so that they attendees can contact me with questions. Sometimes these questions are related to the session – sometimes they are not. I’m not sure which session this particular gentleman was in but I got this interesting note yesterday.


Josh
 
I just sat through your talk at VSLIVE.  I tried to speak with you after the seminar but you were pretty busy.
 
I teach CS for [Some College], and I’m trying to get a feel for where the current and future jobs are for new grads with little or no experience so I can adjust our program. 
 
If we could only teach one track, would you recommend ASP.NET with VB, ASP.NET with C#, Windows programming with VB, or Windows programming with C#?
 
That is, is web development bigger than windows development now, and is that expected to change in the next 5 years?
 
And is C# growing faster than VB or vice-versa?
 
Thanks Josh.  I really learned a lot in your presentation. 

Sincerely,
 
Name Hidden
Computer Science Instructor
Some College
Somewhere, USA



Immediately you should be able to see the issue. The pat answer is that if you and your shop know VB or a VB like syntax, then you should use VB.NET and if you and your shop know C, C++, Java, or some other semi-colon profuse language, then they should go with C#.

However, this is a blank slate. There is no shop. The students don’t know anything so there’s only the future to look to for guidance. Yeah right!

Really I can boil the question down to this:
Where are tech jobs going to be in 4 years when these students graduate?

Wow! That’s a tough question. I’m actually going to reserve judgment on this topic until I hear from others. Please leave my comments on the blog at http://www.srtsolutions.com/public/blog/19990

C#VB.NET
Web??
Windows??



Friday, February 03, 2006 9:21:50 PM (GMT Standard Time, UTC+00:00)  #  Comments [0] 

# Wednesday, February 01, 2006
Ann Arbor .NET Developer Group

There is a new .NET Developers group forming located in Ann Arbor, MI called the Ann Arbor .NET Developer Group. This is going to be in addition to the groups that are in Southfield, MI and Toledo, OH.

Bill Wagner (as the group's president) has the official announcement on his blog (http://www.srtsolutions.com/public/blog/20574).

I'm going to be the first speaker at the 2/8/2006 meeting at 6:00. The topic is ASP.NET Personalization.



Wednesday, February 01, 2006 6:13:46 PM (GMT Standard Time, UTC+00:00)  #  Comments [0] 

VSTO (Visual Studio Tools for Office) Misconceptions

I did my VSTO Session (Visual Studio Tools for Office: The Agony and the Ecstasy) at VSLive yesterday. It was very interesting to gauge the reactions. In short, there were a ton of misconceptions about what VSTO is to be used for and what its capabilities are. I really think that next time that I do a VSTO talk - I’m going to devote the first 5 minutes or possibly more to dispelling some of those notions.

VSTO is used to have Office host your application, not the other way around. A lot of people didn’t understand this. The first several questions that I got after the talk were about how to integrate Office into their application for spell checking or hosting the Outlook calendar or read from the contacts in Outlook or any number of other types of integration. VSTO does not help you here. Each of the Office applications have a COM based API that will allow you to leverage that application but it’s not VSTO. You can use COM to load Word, paste text into a document, ask Word to spell check it and get back the list of spelling errors. This is a heavy process – especially if you are doing it for small amounts of text. You can use COM to load Outlook and get the list of contact, appointments and lots of other data. In fact, on the Pocket PC, this is the preferred way to have contacts, scheduling and so on. Again, VSTO does not help you here, COM does.

Actually, it’s interesting to point out that even inside a VSTO application that is hosted inside of an Office application, you are talking to the COM API in order to invoke the spell checker, talk to the list of appointments and so on. It’s just that the PIA (Primary Interop Assemblies) are referenced by default in a VSTO application so that they look like they are .NET APIs, sort of. Actually, that was a large portion of my talk yesterday. Those COM APIs are sometimes painful to work with and have some rather severe limitations.

If you are going to write a VSTO application, you need to go in with your eyes open. You are not dealing with a .NET API designed by the same guys that designed the rest of the .NET libraries. You are dealing with Office. This is good and bad. For better or worse, with VSTO, you have to make your application work like the Office application that is hosting your application. Sometimes this is very frustrating. However, the payoff is immense when you can cut the amount of training that you have to do for your users because they already know the interface.

That’s what VSTO is about. It’s about having Office as your front end because that’s what your users know.



Wednesday, February 01, 2006 4:09:42 PM (GMT Standard Time, UTC+00:00)  #  Comments [0] 

# Tuesday, January 31, 2006
Good ideas grow user groups

The best thing that a user group, especially a new group that’s trying to grow, can do is be inventive. Or at a minimum to recognize good ideas and copy them where possible.

There are a couple of good examples of this out there that I can point to fairly quickly.

There are a number of groups that have started doing one day conferences on the weekend after the Boston .NET user group started doing Code Camps. It’s a great community based event. I liked the twist that Jim Holmes and James Avery put on it where they did a collaboration between a couple of groups to throw the event. That spread the work out a little and maximized attendance.

I like the idea of not reinventing the wheel on the web site unless there’s a good reason. For example, a lot of groups are using .NET Nuke or Community Server for their web site. That’s a great idea because both of these make for really low investments in time, energy and money the three things that every user group needs to conserve and channel in the right directions. Here’s an effort in the Dallas area to work on a user group specific portal. Now, you might use the web site or part of the web site to introduce members to ASP.NET. Outside of that, copy from the other user groups…

At the Great Lakes Area .NET Users Group (GANG), our president, John Hopkins had the idea to start doing quarterly social events and starting a certification study group. I think that both of these ideas are very cool. It gets the group involved in more than just a place for free goodies and technical talks.

Another interesting idea that was new to me that I thought was very cool came from the UK. Dave McMahon and Richard Costell from the Next Generation User Group came to VSLive. Dave contacted as many of the speakers as he could and is doing video interviews of them to take back to his group. I thought it was an innovative idea that needed pointing out.

In order to really grow a group, you need to come up with innovative ideas and you need to copy those innovative ideas that have worked for other groups.

Beg, borrow and steal good ideas. When that fails - come up with your own.


User Groups
Tuesday, January 31, 2006 4:28:20 PM (GMT Standard Time, UTC+00:00)  #  Comments [0]