 Thursday, July 14, 2005
I’ve recently blogged about SharePoint123 – the upcoming series of SharePoint training hosted by the Atlanta Community. The Atlanta Community organizing the SharePoint123 sessions has decided the best way to keep things organized is to form a new user group – the Atlanta Microsoft Professionals. The mission of the Atlanta Microsoft Professionals is to study in depth some of Microsoft’s tools, including SharePoint.
We’ve finally gotten a rough web presence online for the Atlanta Microsoft Professionals User Group at www.atlantamspros.com. We will be putting up a site for the SharePoint123 events very soon, but the user group site at www.atlantamspros.com will be the central point for membership registration. Register with the site to receive all future newsletters and e-mail communications.
— Matt Ranlett
posted with BlogJet
 Wednesday, July 13, 2005
We had a mid-sized group at the meeting tonight – 13 people in attendance.
Sandy Roach began our meeting with the second part of his presentation on Delegates and Events. This time we focused on Events and how Visual Basic syntax looks different for events as opposed to delegates. Where a delegate is essentially a function pointer, events are the Visual Basic implementation of the Observer pattern. An event publisher defines an event and maintains a list of objects interested in receiving messages about that event. When the event is raised, each of the interested objects, or subscribers, is notified and their event handling code is executed. Multiple subscribers can register interest in an event, and the object actually defining and registering the event is not notified whether or not any subscriber actually receives the event. Sandy showed us several demos illustrating events – two console events and one familiar GUI app showing button clicks raising events.
After Sandy, I took the floor and showed off a 100 level view of DotNetNuke. We looked at what web portals are in general as well as what kinds of functionality you get out of the box with DotNetNuke. We examined several of the modules, their edit pages and their admin pages. We looked at how DotNetNuke supported multiple portals from a single install. After talking about DotNetNuke in general, we discussed the upcoming DotNetNuke project, where we are going to build a working module in the VB.Net group and turn it over to the open source community. After we talked about DotNetNuke, we took a quick look at Windows SharePoint Services and how that differs from DotNetNuke.
— Matt Ranlett
posted with BlogJet
Introducing a new concept in Atlanta User Groups – SharePoint123! (website coming soon!)
I’m pleased to be the first to introduce a new concept in User Groups here in Atlanta – SharePoint123! Organized like one of those expensive training classes, complete with syllabus and hands on labs, SharePoint123! is designed to rapidly introduce developers to Microsoft Windows SharePoint Services and the intricacies of developing for this relatively new groupware product.
Windows SharePoint Services is a free product that integrates with Microsoft Office XP and 2003 to give users an excellent team-based approach to work. Have you ever had to work with someone further away than the next cube, and wanted to let that person or group of people know when you make changes to task lists, documents, slide shows, and spreadsheets? Sometimes storing these documents in a public location like Outlook’s Public Folders or VSS isn’t enough. Sometimes you need more. What if you want to ask someone who previously worked on a document a question – wouldn’t it be nice to be able to do that directly from Word? Windows SharePoint Services addresses these needs and many more! SharePoint technologies encompass the highly scalable and extensible Windows SharePoint Services and the Microsoft Office SharePoint Portal Server to offer web-based portals ranging from individual sites and team sites to entire corporate intranets and even extranets.
Come to the sessions to learn more about using and developing for SharePoint!
-- Matt Ranlett
I’m really excited to share this – I’ve been keeping it semi-secret ever since I found out about it. While I was at Tech Ed, I won a contest sponsored by Microsoft and the Excell Data Corporation. The grand prize was a portable media center from Creative! The same model Michael has. It finally came in the mail last Friday and I’ve been playing with it ever since.

It’s really a cool device, about a third larger than my cellphone (although it does have a protective case that makes it seem much larger than it really is). The thing (and case) actually does fit in my pocket, but not entirely comfortably. Anyway – about the device itself: think of it as an iPod capable of displaying movies! It is way more than that, but that seems to get the message across the best. It runs Microsoft’s Portable Media Center shell on top of Windows CE – which means it turns on and off instantly. It plays music – both WMA and MP3 (WMA results in a slightly smaller file). It shows photos (JPG is the only format I’ve tested). It plays videos (WMV videos, but the process of putting AVI and MPG videos onto the machine encodes them into usable WMV format). It even allows you to play music while watching a slideshow of your favorite photos! The 20 Gb drive holds so much stuff that with 465 songs, 173 pictures, and 66 videos (including a full length movie) I’ve only used up 3 Gb. I took a 2 hour movie (The Missing with Tommy Lee Jones) off a DVD and encoded it down to 318 Mb and put it on the thing.
Check out this great review from a Media Center MVP
I don’t know if I’ll attempt developing for the device, I’ve got lots of stuff on my plate at the moment and I never have free time. I’m sure I’ll be randomly posting about what I do with my PMC (like, if I ever write a useful program for it).
-- Matt Ranlett
posted with BlogJet
Wednesday, July 20th, Randy Miller from Microsoft’s Visual Studio 2005 Team Systems group is coming to the Microsoft Offices to talk to the SPIN process User Group about the newest features of Visual Studio Team Systems and MSF Agile. For more information, visit www.atlantaspin.org. To prevent us from having three User Group meetings in a single week, we have elected to cancel the Monday meeting of the Atlanta Mobility User Group.
-- Matt Ranlett
posted with BlogJet
Bill Baker, program manager of the SQL Server Business Intelligence team, is coming to town on July 21st to speak to the SQL Server User Group. To accommodate Mr. Baker’s busy schedule, the SQL Server group will be meeting in the Microsoft Offices off of Mansell Rd instead of their normal meeting location in the Concourse buildings. Be sure to visit www.atlantamdf.com to register for the meeting. Registration is used to calculate how much pizza should be purchased.
-- Matt Ranlett
posted with BlogJet
At least she is when it comes to famous people on TV. It has happened twice now – once with that movie Be Cool with John Travolta. In one of the early scenes there is this guy off in the distance and she sees his face for .02 seconds and says that he’s the Rock. It looks nothing like the Rock, so me and the two other people I’m watching the movie with all bet her money that it isn’t. We were all wrong and she should have made $15 if we’d paid her. The second time was while watching the Family Guy. There was an episode where Death comes to Peter on a golf course. I swore the voice was Norm MacDonald and she swore it wasn’t. Turns out that Norm MacDonald did play the character of Death on the Family Guy once, but not in this episode! It was Adam Carolla. Can I help it if these two guys sound the same to me? Anyway, instead of paying money, I now have paid in 2 hours of massage! My hands are getting tired!
— Matt Ranlett
 Friday, July 08, 2005
Sandy Roach began the group meeting with a presentation of delegates and event handling. Sandy tried to show us some simple examples of delegates in Visual Basic – including a sample which uses delegates to invoke a class’s instance and shared (static) methods. Sandy also covered multicast delegates, which invoke multiple methods from a single call. The power of delegates is that you can write code to call a single method, and then use delegates to have that one method call actually make calls to multiple methods.
Reading that sentence, it seems unclear. So let’s try it with an example. Suppose we have a program which deals with books. We have two significant functions: PrintTitle and Totalizer. If we create a delegate for each of those two functions, we can pass the pointer to the functions into a method call: ProcessBooks. ProcessBooks with then either print the title of the book or perform the logic in the totalizer function, depending on which delegate was passed to it. Notice that these two functions do nothing like each other – one handles strings and the other handles numbers. The fact that the delegates for both have the same signature (number of parameters) means that you can use either delegate from the same method call. Check back with the original post I wrote covering D’s presentation on delegates to the Mobility User Group.
— Matt Ranlett
posted with BlogJet
 Thursday, July 07, 2005
I took one of those disposable cameras with me to Hong Kong so I wouldn’t risk losing something valuable. Here are some of the photos I took while in the Far East. Let me just say in advance that I’m slightly disappointed with the quality of the photos. Oh well.
The view from my hotel room:
Nice pool. Never went in it.
The sky is indicative of the weather every day I was there – overcast and rainy.
Random shots of populated areas:
I know, it’s blurry. This is a photo of the “Ladies Market”, an open air market named after the ladies who shopped here when it used to sell clothing. Now it’s a free-for-all of thousands of different kinds of products, notably copy watches and handbags. You can get some good deals here!
This is Stanley – an area of Hong Kong Island famous for an open air market and the Murray House (the two story building in the center-left). The Murray House was built by the British in the early 1900s and later moved block by block to this area of Stanley so it’s original location could be used for a gigantic skyscraper Bank of China building. Now the Murray House is full of restaurants
Central Hong Kong. What you can barely see is that between the tall buildings, in the middle of the photo, is a mountain wreathed in fog. The entire city is built into and on mountains! Lots of steep hills here. I’m taking this photo from the dock where the Star Ferry arrives on Hong Kong Island.
This shot is really grainy, not sure why. Anyway, the glittering glass tower on the right is the Bank of China building (I think) – the original site of the Murray House. The city stretches on past what the eye can see.
Lantau Island is home to Hong Kong’s homage to Buddhism – the world’s largest outdoor, seated, bronze Buddha. Apparently every country boasts that is has the worlds largest Buddha of some sort (standing, reclining, stone, bronze, etc). This big guy is about 30 feet tall, on the top of a plateau. To get there you have to climb 261 extremely slippery marble steps. Underneath the Buddha is an educational museum and vegetarian dining hall. The project to build this statue was conceived in the early 1970s and finally completed in 1991.
Standing on the ground, you can get a real feel for the size of the Buddha. The 261 stairs are directly in front of me. I’m currently standing in some sort of spirit circle.
In these two shots I’m climbing up to the top of the plateau.
These bodhisattvas (there are six statues of them at the top of the platform) are shown giving gifts to Buddha.
Finally the fog cleared for a moment. Long enough for me to take this photo.
Looking down from the top. On the left you can see the spirit circle I mentioned before. To the right of that is an enormous free standing gateway. To the far right you can see the dormitories and study area of the monastery.
— Matt Ranlett
posted with BlogJet
 Thursday, June 30, 2005
I have been using SharePoint for a while now as a user and have never really had much trouble with accessing the SharePoint sites I use. Well I finally ran into a problem with one. Here is the error I am getting:
“You do not have permission to view this directory or page using the credentials that you supplied because your Web browser is sending a WWW-Authenticate header field that the Web server is not configured to accept. … HTTP Error 401.2 - Unauthorized: Access is denied due to server configuration. Internet Information Services (IIS) ”
It turns out that Windows Authentication doesn’t always work so well with Proxy servers. The solution to fix this is to use Basic Authentication and have SSL. I will see if the guys I am working with will get this set up for me. =)
—Brendon Schwartz
Posted with BlogJet
 Tuesday, June 28, 2005
Top announcement of the day: the mini Code Camp in Charlotte on August 20th. Brendon and I are already registered. Keep an eye on Maxim’s blog at www.ipattern.com for more details as they become available.
In other news, we had four companies looking to hire developers, including Magenic and Avanade. This does not include the recruiter who showed up for the first part of the evening.
After a bit of fun with the projectors and laptops, the presentations got underway. Doug Turnure filled in for Marty Mathis (unable to make it) and gave a brief look into how Reflection can expose your innermost private values. Just to review, reflection works by reading the .Net metadata to dynamically discover methods and fields. Doug began the presentation with a simple base class that he used as the object of reflection:
public class Customer { public string FirstName; public string LastName; private string Secret
public Customer(string firstname, string lastname) { FirstName = firstname; LastName = lastname; Secret = "SerenityNow"; public void Buy() { Console.WriteLine(me.FirstName + " is buying something"); } private void SecretBuy() { Console.WriteLine(me.FirstName + " is secretly buying something"); } } }
Then we took a tour through reflection with the following code (I’m not bothering to write everything out)
using System.Reflection
Customer c = new Customer("Doug", "Turnure"); Type t = c.GetType();
foreach(MethodInfo mi in t.GetMethods()) { // write out all the public method names Console.WriteLine(mi.Name);
// invoke the Buy method if(mi.Name = "Buy") mi.Invoke(c, null); }
// use the binding flags to specify which types of methods and fields to reflect on BindingFlags bf = BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static | BindingFlags.Instance | BindingFlags.FlattenHeirarchy
// show all methods foreach(MethodInfo mi in t.GetMethods(bf)) { // write out all the method names Console.WriteLine(mi.Name);
// invoke the private SecretBuy method if(mi.Name = "SecretBuy") mi.Invoke(c, null); }
// this can be done to fields as well - even allowing changes to fields foreach(FieldInfo fi in t.GetMethods(bf)) { // write out all the field names Console.WriteLine(fi.Name);
// change the value of the private field Password if(fi.Name = "Password") fi.SetValue(c, "New Password"); //this will also overwrite readonly data }
The reason this scary stuff works is because the runtime needs to know about your code, so everything is exposed. The only way to prevent someone from hacking your assembly is not to give it to them. Use web services. Or partially trusted permissions.
Doug finished his presentation and received polite applause as most people in the room looked around at each other in shock that their private data wasn’t actually private. Similar to the SPIDynamics presentation on SQL Injection and cross site scripting – there were several panicky looks…
Up next after Don was Steven Tynes from Avanade to present the Enterprise Library. For those who don’t know, Avanade is a joint venture between Accenture and Microsoft. They’re looking for bright people, so if you want a traveling job….
The Enterprise Library is the next logical growth after patterns (atomic solutions to common programming problems) and application blocks (subsystem level guidance for common services). The Enterprise Library helps to make the app blocks more consistent, easier to configure, and work together better than they did previously. Entlib is actually part of the patterns and practices guidance library and is a growth from Avanade’s original Application Connected Architecture for .Net (ACA.Net). The entlib is entirely free and is used as part of the framework for hundreds of software projects. Avanade has actually integrated the Enterprise Library into their new version of ACA.Net and is using it in over 30 clients’ projects.
We listened to Steven talk about the entlib configuration tool and the Data Access block for the majority of the time. There were so many questions from the group that the presentation quickly and frequently wandered away from the core material. Rather than try to cover what actually was said (the continuous questions were so distracting I stopped paying attention), I’m going to paste in a review of the Entlib I wrote several weeks ago when I saw Richard Weeks from Avanade presents the Enterprise Library:
The Enterprise Library wraps several of the PAP application blocks (Data, Config, Crypto, Security, Exception, Logging, etc). The goal of the enterprise library is to simplify the use of these blocks. For example, the extremely slick Configuration tool (add to the Tools menu by customizing the menu) will create all the XML in the App.config file based on a user friendly GUI as opposed to writing the XML on hand. The Database block allows you to connect to a DB, execute a stored proc, and bind the results to a grid in three lines of code. The logging component makes logging so easy it’s almost hard to believe. One line of code – Logger.Write(“text here”) – that’s it! Based on the config, we were logging to two places at the same time with independently configurable levels of detail. The exception component allows “exception policies” to be defined and log, wrapping an exception with another exception, replacing an exception with another, or create your own action. The exception policy tool was really sweet – complete with a list of potential exceptions (reflection, anyone?) you can select from. Dan and I both enjoyed this presentation – it looks like something really useful.
— Matt Ranlett
posted with BlogJet
Announcing the Portal Development Mini Code Camp – featuring Maxim Karpov
Microsoft Charlotte Campus
8050 Microsoft Way AP2 Building Charlotte North Carolina 28217
Register Now
Join us for our newest Charlotte Code Camp! This one day Code Camp consists of a single track, and is dedicated to portal technologies such as SharePoint, DotNetNuke, and ASPNET 2.0. Our speaker will be Maxim Karpov, who has been one of our highest rated code camp speakers. All PPTs and samples will be given out to attendees.
As always, the Code Camp Series represents the best technical content by the local developer community and select Microsoft Developers, put on for the community, at no cost. Code Camps are always free and guaranteed to be the most fun that you can have anywhere!
Tentative agenda (subject to change):
8:30-9:00 Registration 9:00-9:15 Opening comments 9:15-11:00 Session 1: What is a Portal Application/Glimpse of technologies 11:00-11:15 Break 11:15-1:00 Session 2: SharePoint Technologies 1:00-2:00 Lunch 2:00-3:45 Session 3: DotNetNuke 3:45-4:00 Break 4:00-5:45 Session 4: ASP.NET 2.0 5:45-6:00 Closing comments 6:00-7:00 Chalk board session
There are ONLY 200 seats available for this event, so sign up now...

http://blogs.msdn.com/trobbins/archive/2005/06/27/433183.aspx
 Sunday, June 26, 2005
Kim had a really nice SLR style Kodak digital camera that died a horrible death when it met pavement accidentally (not either of our faults). We’ve been researching new cameras together for a while now, and yesterday before we got home from the lake we stopped into Best Buy to get it. We were spurred into action b/c we forgot to bring a camera to the lake with us to capture the high flying inner tube action (along with Heidi’s dragboat racing skills).
We picked the Canon S2 IS: 
It looks like a great camera with loads of nice features (including a 12x optical zoom) but the reason we bought it is because it passed the moving hand test the best. Kim’s biggest pet peeve with digital cameras (and Brendon’s too, apparently) is that when you look through the view finder or LCD screen and pick what you want to capture, you press the button and some time later an image is captured. The moving hand test demonstrates this. Take your hand and move it in an exaggerated arc slowly from one side to another, in front of your face. Have the person testing the cameras try to capture an image as soon as your hand is in front of your face. Most digital cameras will catch your hand way off to one side, if it’s still in the frame. The ideal camera will catch your hand exactly in front of your face, as it was when you press the button. Of the half dozen cameras we tried – the Canon S2 IS came closest to this ideal image.
I haven’t really played with the camera yet – I was too sore last night with my sunburn to actually do anything other than whimper. I’ll test it out later – maybe a shot of how sun-burned my back is or something… I know everyone wants to see something like that, right?
— Matt Ranlett
posted with BlogJet
The last three days I was in Hong Kong, I spent wandering around the town shopping, eating, and generally mixing with the population. I noticed a few things I found interesting, so I thought I’d share them:
- Toyota cars rule the road, but I did see plenty of other models, including a Ford! No GM vehicles, but plenty of cars I couldn’t identify. Lots of the familiar manufacturers were selling models I had never seen before. All of the taxis were Toyota Crown Comforts – big and boxy. I didn’t write down the rest, but aside from the ever present Corolla and Camry, some BMW, Lexus and Mercedes cars, there were lots of cars I couldn’t place
- The public transit is so good and so effective, that most of the vehicles on the road were being driven by professional drivers – cabs, buses, and trucks. Lots and lots of trucks. The entire time I was driving around (in a bus) I didn’t see a single accident nor a single person pulled over by the police. Must be nice to not have traffic jams caused by morons and moron rubberneckers!
- If Toyota rules the road, Nokia rules the cellphone market. Three out of every four cellphones are made in Finland! The majority of the rest of the phones are Sony Erickson. I even asked someone about the Nokia phones vs the other phone brands and they told me that no one liked anything else. Nokia was where it was at.
- Everyone has an MP3 player, even people my grandmother’s age! When you spend lots of time waiting on buses and trains, you want something to help you zone out, I guess. The variety is HUGE. I’ve seen every model Best Buy carries and then some. My favorite little ones were tiny little cubes the size of a single die (you know, from a pair of dice). Apple has pretty good penetration here as well, but I think the most popular brand was JVC – they have a cheap little 1Gb player popularly worn with a neck strap.
- It is far more common to tie a strap to your cellphone and hang it around your neck than it is to put it in a belt case. With all the cellphones, MP3 players, random ID cards, and more hanging from around people’s necks, it made me wonder if their clothes didn’t include pockets!
- The people there were super nice. Most of the people speak some English, and if they don’t speak enough English to talk to you they go get the person who does speak English. I only walked into one restaurant where I was immediately given silverware instead of chopsticks b/c I was the Westerner. Everywhere else I was treated like a native (except of course for the people trying to sell me copy watches and suits from the side of the roads.
- I’ve already commented on how the schools in Hong Kong are starting to minimize the importance of English next to Mandarin Chinese due to China’s booming market. On my way home, I was pleased to meet two good ol’ boy college students from Alabama who were spending two years in school in China so they too could work with the booming Chinese market. After ten months in school, immersed in the Chinese language and culture, these two guys were anxious to get home and relax for a bit. We found a Subway in the airport in Korea and all had subs for breakfast – food they’ve not had since December! Taco Bell and Chick Fil A were also high on their TO DO lists. Great guys, we spent time chatting and watching movies during our 5 hour lay-over in Korea. They were bringing home several pirated movies purchased on the streets of China and we managed to find a plasma screen TV and a DVD player not currently being used. Good times in Korea!
Hong Kong was like New York City. You should visit both if you get the chance, but a visit to one of them is a requirement for a fully rounded life.
— Matt Ranlett
posted with BlogJet
It’s been a quiet couple of days on the blog as I have been trying to get back to a normal sleep pattern after my visit to Hong Kong. I’ve generally been falling asleep as soon as I get home from work, which means I haven’t been able to get anything done after hours. Oh well, the trip was fun and I think I’m back to Eastern Standard Time now.
Yesterday, Brendon and his wife Heidi invited myself and Kim to meet them at their vacation house on the north shore of Lake Lanier. Ok, so it’s really Heidi’s parents house, but even so… We took the pontoon boat out for a few hours, enjoying lunch in a relatively quite cove, plenty of slow drifting and conversation, and some inner tubing. If you’re not familiar with inner tubing, it’s loads of fun. You attach an inner tube to the back of the boat by a long rope and drag it (with someone in it) at 30 miles per hour across the water. The poor schmuck inside (usually me in this case) tries to hang on for dear life while the cruel boat driver (usually Heidi) tries their best to dump you out with whip-like turns and ramming you over the wakes of other boats. I think I rode the inner tube ten times! It’s exhausting, trying to hang on so hard. Actually, getting back on the inner tube once you’ve been dumped off is the most exhausting thing.
The lake was great, and I’m hopeful that Kim and I get invited back, but I’ve learned my lesson. The sun-block I used clearly was not as waterproof as it’s label suggested, and I look like I’ve been boiled! While I was at the lake, everyone was commenting on how red I was, but I didn’t feel bad at all. By the time we got near the house, I was forced to stop at CVS to get some aloe vera gel. Kim and I both got burned, but I’m worse off by far! Maybe it was all the dragging? Kim only volunteered to be dragged once. Anyway, we slathered ourselves with aloe vera and sat around trying not to touch anything for a while before falling asleep from sheer exhaustion.
Good times at the lake. I’m sorry that the other people who were invited couldn’t make it out. We spent hours drifting around talking, and Brendon and I only talked about our computers and the .Net community activities for an hour or so of the time. We did get made fun of by the girls when I opened Brendon’s water bottle for him, but I don’t understand why…? It’s not like we’re a married couple or anything…
— Matt Ranlett
posted with BlogJet
 Friday, June 24, 2005
It is funny how you stumble onto one thing, by looking for something else. I was looking something up on the web for a friend and ran across a blog, guess who it was. It was our old friend Rusty. I don’t know how long he has been blogging here, but check his blog out. http://vitaminzrecords.com/blog/default.aspx. I am glad I found his blog again.
—Brendon Schwartz
Posted with BlogJet
 Monday, June 20, 2005
If you are looking for components and want help selecting one, check out this site for How to select guides. This is for .NET applications and the first article is on PDF components. There should be more coming soon.
— Brendon Schwartz
Posted with BlogJet
© Copyright 2008 Atlanta .NET Regular Guys
Theme design by Bryan Bell
newtelligence dasBlog 1.7.5016.2  | |  | Page rendered at 12/3/2008 8:51:09 PM (Eastern Standard Time, UTC-05:00)
Reset | Slate | Movable Radio Heat | DasBlog | Just Html | Candid Blue | Discreet Blog Blue | Movable Radio Blue
|
On this page....
Search
Navigation
Categories
Blogroll
Sign In
|