# Monday, 31 March 2008

You know it's been coming...

It's almost here...

PDX Webfoot is coming April 12 at the OGI School of Science and Engineering. For the latest information, go to the PDX Webfoot Website.

Some of the topics and people already on the agenda (subject to change at this point):

Topics:

  • Safe Internet Browsing
  • Silverlight 2
  • Internet Explorer 8
  • XNA
  • Adobe Flex/Air
People:
  • Scott Hanselman
  • Adam Kinney
  • Tim Heuer
  • Jason Mauer
  • Ryan Miller
  • Kelly White
  • Erik Mork

There will be good food (not just pizza) and there will be games and activities for spouses and kids (think Rockband and Mindstorms, though we can't guarantee either of those yet).

Monday, 31 March 2008 22:03:56 (Pacific Standard Time, UTC-08:00)  #    Comments [0]
# Thursday, 27 October 2005

Thanks to Mr. Sells' Entry*:

You Passed 8th Grade Math
Congratulations, you got 10/10 correct!

*Don't worry Chris, I'll tutor you.

Thursday, 27 October 2005 08:13:18 (Pacific Daylight Time, UTC-07:00)  #    Comments [2]
# Tuesday, 06 September 2005
Help Victims of Katrina - Red Cross

It seems like just yesterday that we were called upon to help our fellow persons in South Asia. Well folks, it's time to help out here at home.

Our southern states are in dire need. Especially the good folks in New Orleans and the surrounding area. All hell broke on them and it's well worth the time to do something to help them out.

If you have a preferred target for donations of time, goods, or money, please go to them. Otherwise, you might just want to click this link and give a little bit (or a lot) to the Red Cross. You know they are there helping out.

If you are looking for updates on the situtation down that way, you may want to check out this blog or Sara's for more information. As Greg mentions, TextAmerica and NBC have teamed up to bring a site dedicated to reconnecting people in the aftermath called MissingKatrina.com.

Heck, even Rory has jumped in and done his part... in his way, of course.

Tuesday, 06 September 2005 22:15:09 (Pacific Daylight Time, UTC-07:00)  #    Comments [0]
# Tuesday, 10 May 2005

Last fall, I was shocked to read an opinion piece form local editorialist Steve Duin (locked away in the 'paid' area of The Oregonian). As outlined in the Beaverton Valley Times, the Beaverton School District realized that they had more money than expected. With that new awareness, they voted to not collect the second year of an option levy that the voters had approved.

I actually had to reread the article - when the budget situation improved, they actually 'gave back' the tax money they had requested to make ends meet? Was this for real?

It turns out that it was for real. Further, I knew one of the people involved with this decision. Craig Irwin spends many of his days helping out at my favorite local spot, Nonna Emilia Ristoranté. He and his associates on the school board decided to not take money they didn't need.

As stated by board chairman Mike Osborne, “We want to be consistent and true to our word. When we needed the money, we used it. If we don’t need it, we’re not going to take it.” The idea was, if they were honest with the voters - giving back the money they realized they didn't need as expected - they would be in a better position to come back to the voters if needed in the future.

Sounds like a good idea to me. Of course, there are those that didn't agree. Dawn Bonder is one of these people and is challenging Osborne in the coming election. She's very involved with schools, but seems to be willing to do it all on credit... yeah, that's what it seems like... credit.

I really hold out hope that the government bodies will one day run a bit more like other entities - spend what is available or repayable.

Mike and Craig, you have my vote. I trust that you'll do the right thing.

Tuesday, 10 May 2005 23:16:59 (Pacific Daylight Time, UTC-07:00)  #    Comments [1]
# Saturday, 12 February 2005

I spent the last four years back in school getting a BS degree in Software Engineering. It's been a most excellent journey and I have been really happy with all I've learned. I wanted to do this stuff twenty years ago, but mistakenly took a business path in school. I'm better now.

Well, if you follow the link above, you will see me effuse over the Computer Software Engineering Technology (CSET) program I attended at PCC and the Director of it, Taylor Hanna. That experience was top notch and I am so happy that I stumbled upon it while looking to start taking some programming classes. Lucky, I was, that day.

Not only was the program good, but we had a great class. I made some good friends there and learned so much with their help. Absolutely amazing!

This week, I found out that PCC was cancelling the CSET program.

As I've mentioned before, CSET was probably not the easiest program to get through at PCC. It probably didn't fit the mold for community college programs. But it's a shame to see it hit the floor like that. I wonder what might have happened with just a bit of decent marketing behind it. I know there are plenty of us out here that would have given glowing testimonials to them.

It sounds like Taylor will still be there at PCC teaching in the CS/CIS area. If you find yourself there, take his class. And, say 'hi' for me.

Thanks to Taylor and everyone else that made it possible for me to learn all I did there. You've improved my stature and enjoyement in life immensely and I appreciate it.

Saturday, 12 February 2005 10:11:22 (Pacific Standard Time, UTC-08:00)  #    Comments [0]
# Monday, 08 November 2004

Once again, Scott Hanselman has come through for me. For our latest project in Patrick's Web Service class, we are building an application with a DataGrid. It always makes me crazy when using this control that there isn't an automatic “Size Columns Correctly” check box.

Fortunately, I recalled that Scott had found that same frustration and had found the solution. Using a little bit of the Reflection namespace, he grabs the private method that is used when double-clicking on the column borders and fires it off “by hand” for each column.

It's cool and is placed here for posterity.

     1: private void MyDataGridControl_DataSourceChanged( object sender,
     2:                                                   System.EventArgs e )
     3: {
     4:     try
     5:     {
     6:         Type       t = this.myDataGridControl.GetType();
     7:         MethodInfo m = t.GetMethod( "ColAutoResize",
     8:                                     BindingFlags.NonPublic
     9:                                     | BindingFlags.Instance );
    10:  
    11:         for( int i = this.myDataGridControl.FirstVisibleColumn;
    12:                 ( i < this.myDataGridControl.VisibleColumnCount );
    13:                 i++ )
    14:         {
    15:             m.Invoke( this.myDataGridControl, new object[] {i} );
    16:         }
    17:     }
    18:     catch( Exception ex )
    19:     {
    20:         System.Diagnostics.Trace.Write( "Failed Resizing Columns: "
    21:                                         + ex.ToString() );
    22:     }
    23: }
Monday, 08 November 2004 14:09:15 (Pacific Standard Time, UTC-08:00)  #    Comments [0]
# Monday, 16 August 2004

My wife, Jesann, was gone for the last week of July and into August. That was nine days of heck for me. Since that time, we have been spending a lot more time together. Thus, I haven't been at the computer more than I have to be.

I was approaching 3,000 unread emails and blogs. I decided that I should just blow a good portion of them away or I would never catch up. I'm sure that there was some interesting tidbits that I missed, but darn it, I had to do something.

School is out for summer... I am going to continue my education for a spell. Although the actual degree related courses are in the 'done' column, Patrick Cauldwell is teaching part two of his Web Service curricula. Highly recommended.

That doesn't start for nearly a month and a half, though. In the mean time, we will be having at least one more garage sale, getting down to the Oregon coast, making our annual trip to Black Butte and Bend, Oregon, and generally enjoying the summer time.

Monday, 16 August 2004 21:47:11 (Pacific Daylight Time, UTC-07:00)  #    Comments [0]
# Wednesday, 23 June 2004

As I blogged several months ago, more than twenty years have passed since I first entered college expecting to get a Computer Science degree. I went astray and looked to get a business degree. At the time, the MBAs (Masters in Business Administration) seemed like the thing to get. Unfortunately, it was not the thing I was meant to get.

Not that there is anything wrong with business degrees; I just know now that I have a passion for the machines that I can’t ignore. About four and a half years ago, I realized that I wanted to return to my youthful passion. Then, in the fall of 2000, I practically stumbled across the Computer Software Engineering Technology (CSET) program at Portland Community College (PCC).

One of the issues I had with the typical Computer Science degree was the focus on history and theory. I know a great deal of the history and, although I enjoy the theory aspects, I want to apply it to problems right away. The CSET curricula did this. As I approached the end of the two-year degree at PCC, I visited the Oregon Institute of Technology (OIT). Here, I could continue my studies and receive my bachelors degree in Software Engineering.

Graduation was last week.

What a journey this has been. I find it amazing all that I have learned in the past three and a half years and can now see how much I have yet to learn. I’ve heard it suggested that it is harder to learn as one grows older… I don’t agree with that anymore. There are two factors that affect a person’s ability to learn later: It takes some practice to get into the swing of things. Compartmentalizing information from different classes and being able to switch amongst them is a skill that becomes rusty over time. However, it does come back to you.

The second thing is sleep. It was easier to go without it twenty years ago and that doesn’t change.

A great number of people have helped me get here. First, the instructor I had more than any other was Taylor Hanna at PCC. Not only did Taylor provide a great deal of knowledge to us students, he drove us, too. There were some who thought Taylor was not very easy – they were right. However, as I’ve continued through my classes, I’ve been constantly reminded of how much I learned in Taylor’s classes.

Thanks, Taylor.

There are many instructors that helped me on this trip. Al, Ali, Barbara, Brad, Christian, Colin, Gary, Jay, Jeff, Julianne, Michael, Paul, Paula, RK, Ronda, Sean, Sergey, Shawn, Stefan, Terry, Vicki, and others, thank you for all you have passed on to me.

In addition, there are numerous other people at the schools that helped make my degree possible. My thanks go out to Abbie, Anne, Cheryl, Fran, Mary Lou, Peter, Sandy, Sylvia, and all of the other people who made it possible to go through these four years with some sanity preserved.

I had a chance to meet and work with many great people over this time, too. There have been many teams and tutor-ings that helped me get here. In particular, I want to thank:

Cat Anderson – You’re such a great pair-programming partner. Our family has really enjoyed getting together with yours over the years, too.

Mike Plourde – You’ve been a really good friend and we’ve had a great journey over the last years, haven’t we?

Jeff Sherwin – My goodness you know a lot! Your appreciation of good pizza is a testament to the quality of your character.

There are others too numerous to get to, but let me try:

Anita, Casey, Chris, Colin, Daniela, David, Earnest, Eric, Frank, Fred, Hope, Jamin, Janet, Jasen, Justin, Katy, Kim, Lael, Larry, Matt, Paul, Pat, Rhollic, Robert, Steve, Tess – Thank all of you for your help, support, and assistance throughout these years.

Another individual that helped me a great deal as a fellow student, instructor, and mentor is Scott Hanselman. First, Scott has been involved with the promotion of the programs at both PCC and OIT since before I started going through them. Second, after graduating last year from OIT, he immediately returned to teach an excellent class on programming in C#. Finally, on a personal level, he has become a mentor to me and helped me immensely in getting through my senior project.

Finally, I want to thank my family for there examples, support, enthusiasm, and love. You might think that taking over twenty years to get a degree would dampen the enthusiasm of the family… not mine. Even my siblings’ kids were excited and some even attended the graduation. Thanks all of you!

My mom didn’t get to stay around long enough to attend my graduation in person, but I knew she was there when I got up for my speaking portion and didn’t have any butterflies in my stomach. I know I wasn’t a perfect son, but my mom and dad always stood by me and made sure I turned out right. Thanks to both of them for all they did for me.

Last, but most, I want to thank my wife Jesann for her love and support through these years. Our household has a fraction of the income we did before I went back to school and I have spent way too much time staring at a monitor instead of helping her around the house. She’s been an inspiration to me and truly made it possible for me to get through this degree. Without you, honey, I wouldn’t have done this. Thank you and I love you.

Wednesday, 23 June 2004 13:29:32 (Pacific Daylight Time, UTC-07:00)  #    Comments [3]
# Wednesday, 09 June 2004

Last night was the OIT Senior Project Software Exposition. It was Great!

I was really impressed by what we put together for this year's show. I went to last year's and heard from others that had been in previous years'... This was a much bigger and better presentation.

First, we rearranged the room to better accomodate all of the presenters and attendees. A classroom layout doesn't really fit for doing several software presentations.

Second, every student made up a poster for his or her project. All of these posters looked good and added an extra bit of professional feel to the whole show. We also used the poster images for a rolling slide show on the room's projection system.

Third, every project was very demonstrable. The two game developers even had multiple computers involved to really show off what they were doing.

Fourth, we had refreshments available. Much more pleasurable for those attending.

Finally, the invites went out to people beyond the school. The event was very well attended and I'm sure will set a standard for future senior software fairs at OIT.

And well it should!

Wednesday, 09 June 2004 21:39:44 (Pacific Daylight Time, UTC-07:00)  #    Comments [2]
# Wednesday, 26 May 2004

The days are counting down quickly... in just thirteen days we will be conducting the Software Exposition for the 2004 Senior Projects at OIT. There are nine projects coming to a close and all will be displayed for others to see.

If you have a chance, it would be worth stopping by to see the applications that have been built. Who knows? You might just find your Next Great Developer while you are there!

There will be free food, fun, and great bunch of people. Below are the details of where and when:

5:00pm - 6:30pm
Tuesday, June 8th

Capital Center
18640 NW Walker Rd.
(185th and Walker Road)
Beaverton, OR 97006
(503) 725-2129

Wednesday, 26 May 2004 15:29:56 (Pacific Daylight Time, UTC-07:00)  #    Comments [0]
# Saturday, 20 March 2004

In my networking class this term, we built a simple chat program. It’s nothing fancy – type in your name, a server, and see what others are posting.

I decided to learn a little bit about .NET Remoting in this exercise. I found numerous examples (including some chat programs) demonstrating how easy it was to create such a program and felt confident with choice I had made. The only thing I had to add to the consolidation of information I had found was a way to select the server one was using.

Yeah… just that.

Now, it’s entirely possible that I missed some nugget of information out there and even that there is a different (better?) way of doing this, but I think I learned something of value through this exercise.

First, the app.config file I was using that worked fine was as follows:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.runtime.remoting>
    <application>
      <client>
        <wellknown
          url=http://ServerName:7777/LeChat
          type="LeChat.Broker.LeChatBroker, LeChatBroker"
        />
      </client>
      <channels>
        <channel
          ref="http"
          name="client"
          port="8888"
        >
          <clientProviders>
            <formatter ref="soap" />
          </clientProviders>
          <serverProviders>
            <formatter ref="soap" typeFilterLevel="Full" />
          </serverProviders>
        </channel>
      </channels>
    </application>
  </system.runtime.remoting>
</configuration>

With this file, one only has to load the settings with:

RemotingConfiguration.Configure( "AppName.exe.config" );

Easy! Of course, if I want to change the name of my server, what do I do?

Some of the learning I had:

The app.config file is meant to be a quasi-read-only file. Although one can write to it through various means, it is loaded at the launch of the application and cached for use throughout the activation – once the program is running, changing the app.config would make no difference.

All of the examples I found for loading the configuration in code were nearly identical:

HttpChannel channel = new HttpChannel( 8888 );
ChannelServices.RegisterChannel( channel );
RemotingConfiguration.RegisterWellKnownServiceType(
      typeof( LeChat.Broker.LeChatBroker ),
      "http://" + serverName + ":7777/LeChat",
      WellKnownObjectMode.Singleton );

This did not provide all of the parameters needed to make the two-way communication possible between the client and the server. In fact, kept going back and forth between having the chat text show up only on the server, or only on the client – depending on whether I registered a … ServiceType, or a … ClientType. Aarrrggghhh!

Finally, I started looking at the overridden constructor on the HttpChannel. I saw something about a IDictionary of ‘properties’ and realized I might be on to something. I started reading about SinkProvider’s and felt even closer. Finally, I had constructed the complete block of code that allowed my little chat program to work and I could insert any server name I needed to:

IDictionary configurationProperties = new Hashtable();
IDictionary serverSinkProviderProperties = new Hashtable();
configurationProperties.Add( "ref", "http" );
configurationProperties.Add( "name", "client" );
configurationProperties.Add( "port", "0" );
serverSinkProviderProperties.Add( "ref", "soap" );
serverSinkProviderProperties.Add( "typeFilterLevel", "Full" );
SoapClientFormatterSinkProvider clientSinkProvider =
      new SoapClientFormatterSinkProvider();
SoapServerFormatterSinkProvider serverSinkProvider =
      new SoapServerFormatterSinkProvider(
        serverSinkProviderProperties, null );
HttpChannel channel = new HttpChannel(
      configurationProperties,
      clientSinkProvider,
      serverSinkProvider );
ChannelServices.RegisterChannel( channel );
RemotingConfiguration.RegisterWellKnownClientType(
      typeof( LeChat.Broker.LeChatBroker ),
      "http://" + serverName + ":7777/LeChat" );

This turned out to be a more substantial investment than I had expected. I did get a chance to learn more about how this stuff works and I’m looking forward to reading Ingo Rammer’s book " Advanced .NET Remoting" to learn more. However, I felt compelled to document what I did so that I can re-learn it all if needed.

Saturday, 20 March 2004 13:22:47 (Pacific Standard Time, UTC-08:00)  #    Comments [0]