Sabrina graduates from her first class

Sabrina finished finished her first class tonight. :)   We’ve been going to a Early Childhood Development course with her for the past 5 weeks.  It really was fun to go.  There were 3 other classmates she was with and the instructor.  We basically just learned about things we should be working on with Sabrina and tips on how to do stuff like how to get Sabrina to start eating on her own.

It was nice to hear all the other parents talk about their kids and what they were experiencing. All her classmates were older so we knew what to expect with Sabrina after talking to them.  Most of the time Sabrina ended up doing exactly what her classmates were doing.  We said she was picking up bad habits at class. :)

The class was nice though and we hope to go again in the fall.

Google Maps not working in FF3

I installed FireFox 3 on their launch day.  It seemed ever since then Google Maps would not work in FIreFox for me.  It would just hang, “Loading…”.

Well it turns out it wasn’t FF3 but in fact a Skype number highlighting add-on that was the culprit.  I uninstalled the Skype add-on and voila, Google Maps work again!

The process cannot access the file because it is being used by another process. (Exception from HRESULT: 0×80070020)

All of my websites on IIS7 were stopped.  Whenever I tried to start any of them I would get the exception:

 ”The process cannot access the file because it is being used by another process. (Exception from HRESULT: 0×80070020)”

After doing some googleing I found that it was a problem with Skype.  When it iwas loading on boot up it was taking port 80 before IIS could.

So I just quit Skype freeing up port 80.  This allowed me to start my websites in IIS.  I then restarted Skype which was smart enough to take a different port since 80 was already taken.

Hopefully this helps someone else. 

 

Skype

Today I decided to get a land line.  After too many dropped calls and complaints of cutting out I decided it was time.

I called Charter and got everything lined up.

Chatting with @scaleovenstove he suggested I try Skype out.  It’s free so I figured it couldn’t hurt.  We both downloaded the client and gave it a shot.

He called me up first on my cell phone.  I couldn’t even tell he was on anything different than a normal phone.

I then called him skype to skype.  We talked for about 20 minutes and the sound was great.  It was really easy to use and since he had a webcam I could even see him.  The only thing I had to do was turn my IM sounds off, he could here them going off.

It all worked great though and I think I am going to go with them instead.  Now I am going to look into getting a Skpe enabled phone that runs over wifi.  I’ll post details later.

What does your office look like?

A cool site Where We Do What We Do, takes photo submissions of peoples work place.  Here’s my office.

 I wish mine looked like this.
 

Firefox 3

FireFox 3 is coming out next month in June.  They’re going to have a “Download Day” to try and set a record for the most downloads in one day.  I encourage everyone to take part in this.  Or, at least start using this browser especially if you are currently using IE6.  For the love of God, upgrade to anything better than IE6!

 

http://www.spreadfirefox.com/en-US/worldrecord/ 

Import .csv users file into Community Server 2007

Today I had to import an existing file of users into a new Community Server 2007 application.  At first thought I thought it would be simple to just use the import/export wizard in Management Studio.  However after looking into it further I realized it wasn’t quite that simple.  There are about 6 tables that are affected when adding a new user.

 What I ended up doing is writing a little import method to do this.  A couple things to prep CS2007 before I could execute the method:

  • Make sure all the roles that you are importing have been added
  • Make sure that the password requirements are going to be met by all the passwords in your csv.  I ran into an issue where some users didn’t have the default required minimum password length.  This is found in the web.config minRequiredPasswordLength in the Member section.
  • I placed the .csv file in the web root, here I knew aspnet would have rights to access the file.

After that I was ready to run the method.  Since I am not really familiar with CS2007 I just added the method in the ~/Themes/default/Common/Master.Master file.  I added the Page_Load () and called my import() method inside this.  I knew as soon as the page was loaded the method would be called here.  Originally I tried creating a small console app to do this, but it just wasn’t working.  It was missing a bunch of things from the web.config and CS dlls so I just figured why fight it. It’s a one time thing I’ll just throw it in the page and get it over with. Just Remember to remove all this after the users have been imported. 

The fields in the .csv file were:  FirstName,LastName,Username,Password,Email,Role,Territory,State

Now those fields don’t match up exactly in the CS database schema.  I ended up moving FirstName and LastName into commonName and Territory and State into location.  You can see all the properties that exist by looking into Profile section in the web.config.

One other thing I found out is that when creating a user you have set 4 properties.  username, password, email, and IsAnonymous = false. 

 

    void Page_Load()
    {
        import();
    }

 

    void import()
    {
        string fileLocation = @”C:\[path to your file goes here]\users.csv”;
        using (System.IO.StreamReader sr = new System.IO.StreamReader(fileLocation))
        {
            string line; // the current line being read from the file
            // File header: FirstName,LastName,Username,Password,Email,Role,Territory,State
            string userName;            //*********************************
            string location;               //* These are variables derived
            string commonName;     //* from my file. Obviously modify  
            string password;            //* to fit your needs.
            string email;                  //*
            string roleName;            //**********************************

            while ((line = sr.ReadLine()) != null)
            {
                string[] importFile = line.Split(new char[] { ‘,’ });

                commonName = importFile[0].ToString() + ” ” + importFile[1].ToString();
                userName = importFile[2].ToString();
                password = importFile[3].ToString();
                email = importFile[4].ToString();
                roleName = importFile[5].ToString();
                location = importFile[6].ToString() + “, ” + importFile[7].ToString();

                /* 1. Create the cs User and Profile
                 * 2. Add the aspnet Profile properties
                 * 3. Assign the aspnet User to it’s role(s).
                 */

                // 1.
                User csUser = new User();
                csUser.AccountStatus = UserAccountStatus.Approved;
                csUser.Username = userName;
                csUser.Password = password;
                csUser.Email = userName;
                csUser.IsAnonymous = false;
                
                CreateUserStatus createUserStatus;
                createUserStatus = CommunityServer.Users.Create(csUser, false);

                if (createUserStatus == CreateUserStatus.Created)
                {
                    // 2.
                    ProfileBase profileBase = ProfileBase.Create(userName, true);
                    profileBase.SetPropertyValue(“commonName”, commonName);
                    profileBase.SetPropertyValue(“location”, location);
                    profileBase.Save();

                    // 3.                        
                    System.Web.Security.Roles.AddUserToRole(userName, roleName);
                }
            }
        }
    }

 

Thanks to the following sites that help me create this:
http://mishler.net/2006/04/07/How+To+Import+Existing+AspNet+Membership+Data+Into+CommunityServer.aspx
http://www.igloocoder.com/archive/2007/08/22/1290.aspx
http://communityserver.org/forums/t/485629.aspx
http://communityserver.org/forums/p/490538/592779.aspx#592779

Let the challenge begin!

Our team is all set up for the F1 Web Challenge.  Well there wasn’t much set up for us.  We pretty much opened our laptops and we were ready to go.  David our designer had to quick get Visual Studio 2008 installed, we got the credentials all squared away for MySql and we are ready to go.  Yeah, every other team here has a couple of desktops, dual monitors,  I think most people just brought their office.  We look pretty lame, but hey, that’s ok.  We’ll spend our time developing while the other teams are tripping over all their hardware.  We still don’t know the non-profit we’ll be working with….  Oh it now begins….  Updates later.

Netflix Review

I’m lovin’ it.  The movie selection for streaming movies is huge and far more superior to MovieLink.  The quality is great, I haven’t had any problems with the movies.  I signed up for a trial with unlimited “Instant” movies.  I think between Alison and me we’ve watched like 8 already. 

The selection is good for older movies, however if you want anything new you’re not going to find it.  For that MovieLink is better.  A combination of both of these services though is great.  Since I have my computer hooked up to my entertainment center it really works out great. 

MovieLink.com Review

This is a site that lets you rent movies online.  I know Apple and Netflix are doing this now too, but here, there is no membership required.  It works pretty slick.  Find the movie you want to rent, add it to your shopping cart and checkout.  Once you purchase the rental you have a 24 hour period to view the movie.  You might ask how the manage that?  Well you have to download a desktop app in order to download and view movies.  The manager does integrate with Windows MCE nicely though.  I’ve watched a few movies off of the site and it has worked out great.  The only thing they need to work on is their selection, right now it is pretty limited, but hey, you don’t have a subscription so you’re not losing out on anything if they don’t have what you want.  I’ll have to review Netflix next.