December 18, 2007

Identifying Performance Factors of Home Gigabit Networks

Filed under: Uncategorized — Anthony Park @ 12:41 pm

Ed Bukoski, Todd Ellermann, and I recently conducted an experiment to analyze how to get the best performance out of a home gigabit network. We used design of experiments (DOX) techniques to design and conduct the experiment, and held several factors constant to limit the combinations.

We were primarily interested in things which would beneficial to know before INSTALLING a home gigabit network, and held constant things which are put in place after the fact (ie. network cards, computers, software, etc.).

We analyzed the following factors:

1. Network cable length (10ft vs. 100ft)
2. Network cable wiring type (solid vs. stranded)
3. Network cable category standard (cat 5e vs. cat 6)
4. Network switch price level
5. Electro-Magnetic Interference (EMI) from a light switch
6. Electro-Magnetic Interference (EMI) from a power line

We set up our equipment in a large conference room, and ran 192 completely randomized scenarios.

Conclusions

None of these factors had a significant effect on network throughput performance. If factors are chosen to minimize and maximize network throughput based on the model equation generated in this experiment, the results would be as follows:

This experiment was especially interesting to me because I was considering whether or not to rewire my house with CAT 6 cable instead of the CAT 5E that is in place now. After these results, I’m not going to bother.

The full experiment description, design, data, analysis, and conclusions can be downloaded in this report.

tags: Media Center, Gigabit Networking, MVP

September 1, 2007

Presenting at Desert Code Camp on September 15th

Filed under: Uncategorized — Anthony Park @ 8:53 am

I’ll be presenting two sessions at this year’s Desert Code Camp. One of my sessions will be about Media Center development with Media Center Markup Language (MCML), and the other one will be about Windows PowerShell. If you’re in the area, please mark your calendar for this event and attend the Code Camp. There are alot of other interesting sessions, also.

Windows Vista Media Center Development - There is a new development language for Windows Vista Media Center development: Media Center Markup Language (MCML). In this one hour session, we will cover a brief overview of Media Center and create, install, and test a simple application in MCML from scratch.

Windows Vista Media Center Development: Presentation Materials

Intro Windows PowerShell for Developers - Take development productivity to new levels with this introduction to Windows PowerShell for software developers on the Windows platform.

Intro to PowerShell for Developers: Presentation Materials

What: Desert Code Camp
When: September 15, 2007 9:00-5:00; September 16, 2007 1:00-5:00
Where: University of Advancing Technology (UAT) in Tempe
Registration: http://desertcodecamp.com

What is a Code Camp? In short, it is a free developer conference. Who is welcome? Anyone!

To get a better understanding, here’s the Code Camp Manifesto:

By and For the Developer Community

Code Camps are about the developer community at large. They are meant to be a place for developers to come and learn from their peers. Topics are always based on community interest and never determined by anyone other than the community.

Always Free

Code Camps are always free for attendees.

Community Developed Material

The success of the Code Camps is that they are based on community content. All content that is delivered is original. All presentation content must be provided completely (including code) without any restriction. If you have content you don’t want to share or provide to attendees then the Code Camp is not the place for you.

No Fluff only Code

Code Camps are about showing the code. Refer to rule #1 if you have any questions on this.

Community Ownership

The most important element of the Code Camp is always the developer community. All are welcome to attend and speak and do so without expectation of payment or any other compensation other than their participation in the community.

Never occur during work hours

We need to understand that many times people can’t leave work for a day or two to attend training or even seminars. The beauty of the Code Camp is that they always occur on weekends.

tags: Media Center, MCML, MVP, Code Camp

June 25, 2007

Presenting at the Phoenix Symphony Hall on June 27th

Filed under: Uncategorized — Anthony Park @ 9:05 pm

For the last six months, I have been working with two other individuals to develop a framework for comparing web application technology platforms. The purpose of the framework is to provide a concrete, objective assessment of current web application technology platforms. The framework is also customizable, so that a company or individual can change the input parameters and select a technology that is right for their needs. As part of the framework development process, we evaluated seven different web application technology platforms:

  • ASP.NET
  • ColdFusion
  • Java (Struts/Hibernate)
  • Perl (CGI)
  • PHP (Cake)
  • Python (Django)
  • Ruby (Rails)

We performed an extensive review of these languages, and even built the same two web applications in every language to collect data and compare the platforms. We recently completed our research and are ready to share what we have learned.

This Wednesday (06/27), there is a huge Arizona .NET User Group “Uber Meeting” being held at the Phoenix Symphony Hall. Myself, Ed Buksoki, and Todd Ellermann have been invited to provide a 30 minute presentation at this event about our research and findings. Scott Guthrie and Stefan Schackow are the main headliners, and will be presenting about Microsoft Silverlight and ASP.NET.

If you’re in the Phoenix area, this is an event you will not want to miss.

More information here: http://azgroups.com/uber07/

tags: ASP.NET, Web Development, MVP

May 30, 2007

Woodworking: Girl’s Maple Dresser (Step 7: Drawers)

Filed under: Uncategorized — Anthony Park @ 10:00 pm

Woodworking: Girl’s Maple Dresser (Step 7: Drawers)

This is a continuation of the Girl’s Maple Dresser project.

Time estimate for this step: 8 hours.

The seventh step in making this dresser is to build and install the drawers of the dresser. The body of the drawers for this dresser will be made from poplar, and will later have faces made from maple (Step 8).

Step 7a: Measure

There are two sizes of drawers for this dresser, and there are three drawers of each size. The dresser allows for three drawers in each opening, each 8.5 inches high. The dimensions for the interior of the larger drawer section are 28 7/8 x 19 3/8 inches. I like to leave a 1/2 inch at the back of the drawer, and 1 inch for the faces. The drawer slides I purchased are ACCURIDE 3832 18″ Chrome Full Extension Drawer Slides from WoodCraft, which require 1/2 inch clearance on each side of the drawer. So, the final dimensions for the large drawer should be 27 7/8 x 17 5/8 inches. The dimensions for the interior of the smaller drawer section are 10 3/4 x 19 3/8 inches, so the final drawer dimensions should be 9 3/4 x 17 5/8 inches.

Step 7b: Cut pieces to size

Because we will be using rabbet joints for the drawers, the horizontal pieces will be 1/2 inch shorter than the final width. Cut six pieces of poplar to 8 x 9 1/4 inches. These will be the fronts and backs of the smaller drawers. Cut six pieces of poplar to 8 x 27 3/8 inches. These will be the fronts and backs of the larger drawers. Cut twelve pieces of poplar to 8 x 17 5/8 inches. These will be the sides of both the smaller and larger drawers.

Step 7c: Make dado cuts

After the pieces have been cut, it’s time to make the dado cuts for our rabbet joints. Install a 1/2 inch dado blade into a table saw, 1/2 inch high, and 1/4 inch away from a fence. Run both ends of one side of each of the 12 side pieces through the dado.

Next, adjust the 1/2 inch dado to 1/4 inch high, and right next to a fence. Run both ends of one side of each of the front and back drawer pieces through the dado.

Dry-fit the pieces together to ensure a good fit.

Step 7d: Router bottom slots

For the bottom of the drawers, we will be using 1/4 inch maple plywood. To hold the bottom in place, we will need to router a slot into the bottom of the drawers. To do this, use a 1/4 inch straight router bit, 1/2 inch high, and 1/4 inch away from a fence. Run all 24 drawer pieces through the router on one the inside edge to cut the slots. On the side pieces, do not cut all the way to the end of the piece (only to the dado slots).

Step 7e: Cut the bottoms

Dry-fit the drawers together, and measure for the bottom pieces. The drawer bottoms are made from 1/4 inch maple plywood. The bottom pieces should extend all the way into the slots which were cut with the router in the previous step.

Step 7f: Glue the drawers

The drawer pieces are held together by wood glue. Put glue in the joining slots for each drawer piece and assemble. Clamp the drawers while drying, and ensure that the drawers are square. I chose to use squaring braces made from 3/4 inch plywood to hold the drawers square while gluing.

Step 7g: Install the drawer slides

Install the drawer slides onto each drawer, making sure the front of the drawer slide is flush with the front of the drawer. To install the drawer slides into the dresser body, it helps to cut alignment pieces of wood from scrap and use them to support the drawer slide while drilling and screwing. For the alignment pieces for the top drawer slides, cut two pieces of scrap to 17 1/8 inches long. For the middle drawer slides, cut two pieces of scrap to 8 5/8 inches long. It also helps to place an alignment piece in front of the drawer slides so that the front of the drawer slides is set back 1 inch from the front of the dresser.

And, here is what the dresser now looks like with the drawers installed.


That’s it for the main body of the drawers. Next, we can work on the drawer faces.

tags: woodworking, dresser, maple

April 26, 2007

Anthony Park on the Media Center Show Podcast

Filed under: Uncategorized — Anthony Park @ 10:32 am

I was interviewed by Ian Dixon (host of the Media Center Show Podcast) a few weeks ago, and the interview is posted this week in the podcast.

Check it out here:

The Media Center Show #105 Anthony Park (2007-04-26)


tags: Media Center, MVP, MCEBrowser, MCEMailbox, Media Center Show

April 17, 2007

Do you want to beta test the next version of Media Center?

Filed under: Uncategorized — Anthony Park @ 9:35 pm

Microsoft is now accepting applications for beta testers for the next version of Media Center. Do you have what it takes?

http://connect.microsoft.com/site/sitehome.aspx?SiteID=23


tags: Media Center, MVP

April 16, 2007

Utah Spring Code Camp Recap

Filed under: Uncategorized — Anthony Park @ 6:58 pm

On Saturday, I attended and presented at the Utah Spring Code Camp, which was held at the Neumont University in Salt Lake City, UT. Overall, the Code Camp was a success. A couple of thoughts…

Too Much Microsoft

This was really disappointing to me. The ENTIRE Code Camp was Microsoft specific. Microsoft was one of the listed sponsors, the keynote was given by Microsoft, EVERY presentation was about a Microsoft technology, and most of the raffle items were Microsoft software, books, and 3rd party components which target Microsoft technologies. Grrr…. I had heard that there was a disinterest from other (non-Microsoft) user groups to participate, but I don’t believe it. Code Camps are a great opportunity to bring together ALL of the various user groups in the area and have tracks and sessions representing each group. I honestly don’t think that an effort was made to involve other technologies in this Code Camp, and that is very disappointing.

Keynote

The keynote presentation was given by Ben Miller, who is an MVP Lead for Microsoft. We haven’t had a keynote in the past at Desert Code Camp (mainly because there isn’t a room that would hold all of the attendees), but it was an interesting idea. I felt that the keynote was a little long, and I was disappointed that the keynote was about Microsoft. I think a good keynote topic for a Code Camp might be something that highlights the local user groups that are involved, discusses the state of the technology jobs in the local area, and stays away from technology-specific discussions.

Sessions

I attended several sessions throughout the day, and most of them were fairly good quality. Some of the technologies I saw there were .NET 3.5, LINQ, WPF, etc. A friend of mine, Nate, presented a good overview of some of the new features in .NET 3.5. There were 18 sessions, with 3 sessions always running concurrently.

My Session

I presented about Media Center Development with Windows Vista. I had a fairly small attendance, which I thought was awesome because I was able to really customize my presentation to what the attendees wanted to see. We built a simple application with MCML that had a button and some text that changed when the button was pressed. I showed how the click event of the button could be hooked up to managed C# code, so that the power of the .NET framework could be utilized in development. We also deployed the application to Media Center. Some of the individuals were interested in setting up Media Center systems, so I also answered quite a few questions about requirements and setup possibilities.

Sponsors

There were quite a few sponsors of the event, including Robert Half Technology, STG, Red-Gate Software, TEK Systems, Neumont University, and Microsoft. Several of the sponsors had booths set up in the lounge area where people could pick up brochures and sign up for the raffle. The sponsors paid for lunch, which was pizza from a local pizza chain, and provided raffle items. I do not think it is appropriate to have sponsors at a Code Camp. My personal feeling is that Code Camps should not have sponsors or, if they do have sponsors, the sponsors should be “silent sponsors”. The speakers were asked to add a sponsor slide to their presentations, which I thought was inappropriate. This implied that the sponsors were somehow responsible for the presentations, which is not true.

The Raffle

At the end of the Code Camp, there was a general session in which several items were raffled off to individuals who entered the raffle at the sponsor booths, and filled out Code Camp feedback forms. Some of the raffle items included books, t-shirts, software (ExpressionWeb), cordless mice, and even two IPod Nanos.

Pictures

The keynote presentation:

Nate presenting about .NET 3.5:


tags: Media Center, Code Camp, MCML, MVP

April 10, 2007

Possible problem registering Media Center applications on Windows Vista x64

Filed under: Uncategorized — Anthony Park @ 11:57 pm

Aaron Stebner recently posted about a possible problem registering Media Center applications on Windows Vista x64. The method for registering Media Center applications described in his blog post is the method that I recommended people use in my blog posts:

Media Center Hosted HTML Application Setup Project for Windows Vista

Creating a Media Center AddIn: Soup to Nuts

Creating an MCML Application for Windows Vista Media Center

I originally switched to using this method when Windows Vista Media Center came out because Microsoft stopped providing the RegisterAddIn dll for use in setup projects, and RegisterMCEApp.exe has not always been setup-friendly.

If you are using this method of registering Media Center applications within your setup packages, please read Aaron’s post on the topic and update them accordingly. I will be updating my blog posts (and my setup packages) that use this method as soon as I have some time to do so…

tags: Media Center, Media Center SDK, MVP

April 5, 2007

Determing the Strong Name of a Media Center AddIn

Filed under: Uncategorized — Anthony Park @ 11:34 pm

Earlier today, I received the following email:

Dear Anthony,

thank you so much for such a great summary of the numerous tasks one has to do in order to register the application in Media Center.

I have, however, one question:
How do you actually construct the “AddIn” String which is in your case “AnthonyPark.MediaCenter.MCML.MCMLHelloWorld_Start, MCMLHelloWorld, Version=1.0.0.1, Culture=neutral, PublicKeyToken=091b5809569f1055, processorArchitecture=MSIL”?

What exactly are the two first attributes and how can I find them out?

Thanks a lot,
Xxxx

The summary that this person is referring to is a blog post that I wrote back in October titled: “Creating an MCML Application for Windows Vista Media Center

For me, specifying the strong assembly name for the AddIn for the registration process was always one of the more tricky parts of developing an AddIn for Media Center. Almost every time I had a problem, it was related to this step in some way.

The “AddIn” string value used when registering a Media Center AddIn contains the information that Media Center needs to launch your AddIn. In the case of my example, the string looks like this:

AnthonyPark.MediaCenter.MCML.MCMLHelloWorld_Start, MCMLHelloWorld, Version=1.0.0.1, Culture=neutral, PublicKeyToken=091b5809569f1055, processorArchitecture=MSIL

This is what is known as the “strong name” of your assembly. To construct this name, use the following formula:

FQCN + “, ” + SASN

Where:
- FQCN is the Fully Qualified Class Name of the class that implements IAddInEntryPoint (the class that Media Center is supposed to launch). In my case, it is AnthonyPark.MediaCenter.MCML.MCMLHelloWorld_Start (which is the namespace that my class is in, plus the class name).

- SASN is the Strong Assembly Name of your assembly. The easiest way that I have found to determine this is to install your assembly into the GAC using the GACUtil, and then use GACUtil -L to list your assembly:

Hope this helps with your Media Center development! I also updated my previous post to contain this additional information.

tags: Media Center, MCML, MVP

March 29, 2007

Presenting at Utah Code Camp on April 14th

Filed under: Uncategorized — Anthony Park @ 9:55 pm

I’ll be presenting at this year’s Utah Spring Code Camp. My session will be about Media Center development with Media Center Markup Language (MCML). Utah is a little out of my way, but I am a big supporter of the Code Camp idea. If you’re in the area, please mark your calendar for this event and attend the Code Camp. There are alot of other interesting sessions, also.

My session abstract: There is a new development language for Windows Vista Media Center development: Media Center Markup Language (MCML). In this one hour session, we will cover a brief overview of Media Center and create, install, and test a simple application in MCML from scratch.

What: Utah Spring Code Camp
When: April 14th 2007 9:00-5:00
Where: Neumont University
Registration: http://utahcodecamp.eventbrite.com

The Utah .NET Users Group and SQL Server Users Group is conducting a “Code Camp” for local software programmers next month at Neumont University. The code camp is by the community for the community. Always free and Always for the community.

We will have Sessions on .NET, SQL Server, and Oracle. Presented by experts around the Utah valley!

The Saturday, April 14th event is scheduled from 9:00 AM to 5:00 PM. The conference is free please register at. http://utahcodecamp.eventbrite.com
Lots of Sponsors and Lots of software and Tech Gadgets to giveaway!
You can check out www.msutahevents.com for a session schedule and speaker list for the Code Camp.

What is a Code Camp? In short, it is a free developer conference. Who is welcome? Anyone!

To get a better understanding, here’s the Code Camp Manifesto:

By and For the Developer Community

Code Camps are about the developer community at large. They are meant to be a place for developers to come and learn from their peers. Topics are always based on community interest and never determined by anyone other than the community.

Always Free

Code Camps are always free for attendees.

Community Developed Material

The success of the Code Camps is that they are based on community content. All content that is delivered is original. All presentation content must be provided completely (including code) without any restriction. If you have content you don’t want to share or provide to attendees then the Code Camp is not the place for you.

No Fluff only Code

Code Camps are about showing the code. Refer to rule #1 if you have any questions on this.

Community Ownership

The most important element of the Code Camp is always the developer community. All are welcome to attend and speak and do so without expectation of payment or any other compensation other than their participation in the community.

Never occur during work hours

We need to understand that many times people can’t leave work for a day or two to attend training or even seminars. The beauty of the Code Camp is that they always occur on weekends.

tags: Media Center, MCML, MVP, Code Camp

Next Page »