Mike Reagan's Blog

Technology and Kayaking

Bots Have Won The War

clock November 29, 2009 10:00 by author Admin

My blog site has been repeatedly been the target of bots and their authors which have been flooding the comments on my posts, so I have decided that instead of upgrading to the latest version of BlogEngine.NET and adding a CAPTCHA, I will no longer be offering the ability to comment on my posts. Out of every comment I received, not a single one of the was a real person adding value. Bots: You win. 

 I don't post that frequently to this site anymore, and at some point in the near future, I will terminate the entire site. Too busy doing stuff to write anything on this site anymore.  



Rogue River Trip 2009 Report

clock August 29, 2009 07:01 by author Mike Reagan
We finally made it home from our Wild and Scenic Rogue River kayaking trip in Oregon yesterday. We put on Tuesday, Aug 25, and took out on Thursday Aug 27th. 

Day 1: 
Tuesday morning was pretty straight forward, went to the Galice Lodge and organized our shuttle and had breakfast. Food was okay, but not great. Organizing the shuttle was pretty easy and painless. We then had to pick up our permits from the BLM office, which is just a few miles down from the Galice Lodge. When we got to Graves Creek put-in, a commerical rafting company (NoahsRafting.com) was stopping by there. We got a chance to talk to them and both the guides were really helpful and told us we could tag along with them since it was our first time down. We decided to get going and meet up with them a short while down stream at Rainie Falls. 

Normally, back home we have at least a mile of easy class I/II to warm up on, but if you put in a graves creek, you have about 100 feet to warm up on before you hit your first two class III rapids. These were pretty straight forward read and run type rapids. A few rocks here and there, but fairly easy to navigate through. The water on the Rogue river is different than what we are used to back home, it is a little murky, and the eddy lines are not as well defined, which makes for an interesting after rapid experience.  Christine and I agree that if these rapids were on the South Fork American, they would be rated class II+ at most. In general, our thoughts are that most of the rapids were overrated just a hare in classes. 

Next up was Rainie Falls, which is Class IV/V depending on which line you take. There is a fish ladder that is Class III+ on the right which is what Christine opted for. I chickened out and portaged on river left (pretty easy portage), which also put me in a good position to get some good pictures of Rainie Falls (Main Chute) and Christine coming down the fish ladder. Christine said she was glad I decided to portage because the fish ladder was very rocky, narrow and technical. She thought I could do it no problem, but said if I wasn't feeling it, better not to risk it. A flip in there would not be fun since it's so shallow and a flip is likely. She said it's rating of Class III+ was appropriate given it's technical nature and consequence. 

After Rainie Falls, its a nice easy going float with a few easy class II rapids, the scenery was very nice and pretty. Lots of birds to be seen. Next up was Tyee rapid, which was Class III (really a II+). We eddy'd out above to do a little scouting to see what we were dealing with. It looked pretty straight forward, Right of center, move far right, then cut left along with the curving right bank. Fun rapid. 

Next up was WildCat rapids, which where Class III (more like class III-) and we had fun in these. There were some rocks thrown about on this one, so we kind of had to navigate around them, but no problem. Again, the scenery is quite beautiful, as it always pretty much is throughout the trip. 

Slim pickens was an easy class III (III-/II+) with a hazard (old metal barge sucken on river left), fairly easy as it didn't leave that much of an impression. 

Upper BlackBar Falls was a fairly straight forward class III rapid (rated Class III+). The best line is far right to left of center. I liked this rapid a lot. Not too difficult but fun. Before I ran it, I saw a two person Inflatable Kayak run center line and they got trashed and I got front row seats to some carnage. This was the IK riders first time down class III (and I think this trip was the first time they even went down a river in an IK). One of the riders told us she knew they made a mistake and they were off line from the start. Her first class III swim as a brutal one. 

Lower BlackBar Falls was pretty easy too. Big wave train right down the middle. Center line is best. Both BlackBar falls reminded me of the first drop into Lost Hat on the Gorge run of the South Fork American River. Not particularly difficult. 

After Lower BlackBar Falls rapid on river left is a moored Drift Boat marking the place to get out to hike up and catch the short road to the BlackBar Lodge. It's a good idea to tie your boats up, in case the powers that be decide to let more water down the river from the dam. You don't want to loose your boat(s) :-). I personally like the feel of the BlackBar lodge a lot. They have a generator for power, so lights out at 10pm and they turn back on a 7am whether you like it or not. Some of the cabins have light switches, some don't. What is nice, everyone gets their own little cabin. The cabin sizes range from 15-20 feet long and 12 feet wide. They each feature a private shower, and toilet, with a sink. The beds were actually quite comfortable. Dinner is served at 7pm with lemonade and snacks put out around 6pm. Dinner was pretty good, a typical turkey dinner. Breakfast was served at 8am, featuring pancakes, fruit, eggs, and ham. They provided us a fairly descent lunch to take with us which was nice. They gave us stuff to make wraps, including flour tortillas, mayo, mustard, lettuce, tomatoes, cheese, turkey and roast beef. 
 
Day 2: 
 
After pulling out of BlackBar Lodge, we headed downstream. There are many campgrounds to be seen for the next few miles. One notable rapid which is rated Class III, but was really a Class II+ called Horseshoe Bend. Mostly some class II rapids in between long periods of class I moving water. Normally I hate flat water, but it was nice cruising in the current and checking out the beautiful scenery. 

Mule Creek Canyon is probably my favorite experience on this trip. It is very interesting because at the top, there is a rapid called Jaws, which is just class II, and then below that the river narrows into a sheer rock wall canyon. There are many S-Turns with very turbulent water. You want to stay away from Telfer rock. There are some pretty good sized holes. Basically you want to follow the S turns, staying almost center most of the time but when turning stay to the inside of the turn. Stay off the walls! If you flip here, you will have a LONG swim because the rapid is long and there are no easy eddy's to catch, if at all. The grand finale is called Coffee Pot, which is basically huge boils that come up from the bottom, they come and go, sometimes as big as 3 feet tall. Christine and I both were doing tons of low bracing and a few high braces.  My recommendation is stay on top and do your best not to flip. If you flipped and you managed to roll up, you could be knocked over again as soon as you make it up. Very respectable hydrolics in this rapid. This rapid challenged both of us and there were quite a few "oh shit" moments. There isn't anything like this on the South Fork American River, our home run. 

Blossom Bar (which is rated at Class IV-) was very interesting and pretty. Basically there is a picket fence, and if you don't make the class II move into the chute on river right, you will float into the picket fence where class IV consequences are. I opted to portage for fear I might miss the line. The river isn't going anywhere, so maybe I'll feel better about doing it next year. Christine opted to run it, and she made it look easy (she is better than me, and she has more guts than me!). The portage was not pleasant, watch your butt when climbing over the rock wall on river right. Getting up can be a hard feat when you have a 40lb kayak on your shoulder with about 15lbs worth of gear. It is not apparent either when you get to the top which way to go so you can get down. There is no trail. I had to do a fair amount of walking around up there to chart my path. The way I went down, I ended up falling backward onto my butt and missed my tailbone by less than an inch. Nevertheless, it hurt and I was in pain paddling out of there. The best way to paddle out from where I portaged was the ferry upstream past a bunch of fairly large boulders, and make a few S turns into eddy's along the way to get to river left side of the run where is a fairly simple straight shot out. 

Paradise Lodge is on river right a few hundred yards. Unlike BlackBar Lodge, Paradise can be seen from the river, and plus the big sign is a big help. This was the more modern of lodges between the two. Our cabin was roomy and nicer than BlackBar, but BlackBar had a rougher feel to it that I kind of liked. Dinner was at 7pm with tasty snacks put out at 6:30pm. Dinner was better at Paradise Lodge. There was BBQ chicken and ribs, with a great fruit salad, and potatoes with seasoning.  Like BlackBar, the only source of power was a generator that goes offline at 10pm and they turn it back on at 7am. Breakfast was served at 8am, which consisted of Buscuits and Gravy, Scrambled Eggs, tasty ham and orange juice. Scones and muffins were also provided. Food was good at BlackBar, but the food was great at Paradise. Downside to Paradise was, they didn't provide a pack lunch, which was suprising since Paradise was more expensive per person than BlackBar. I am thinking it might have been a screw up on their part because the girl we asked was new and she said since we are private boaters we don't get a lunch. Didn't make a lot of sense.
 
Day 3: 
 
After leaving Paradise Lodge, its about 12.5 miles to the take out a Foster Bar. Most of it is slow moving current with some easy class II rapids, and two class III rated rapids which were really class II+. Both Christine and I got out of both rapids and looked at each other with a "Thats it?" look on our faces. It is important to watch out for the Jet Tour Boats that come up this section. We thought it best to stay out of the middle of the river and kind of stick to one side or the other during flat parts. Good news is you can hear them coming, so it's not like you don't have time to get out of the way. They usually slow down when they see you coming, although once they get .5 feet past you they kick up the throttle and leave you in one hell of a wake. Somewhat rude, but somewhat less annoying in the flat water since at least you get to bob up and down. 

Foster Bar Takeout was pretty straight forward, get out of your boat and walk a short distance to get your vehicle, drive down, load up, and take off. The drive to Gold Beach is about 45 minutes from the take out, but from there you have options, go back to Grants Pass or go to Hwy 1 to hit 101 to go down to Crescent City. 

Conclusion:

For our first overnight trip, we really had a great time. It was nice just the two of us reading and running the rapids, and it was good we scouted sketchy stuff. We were both more concerned with safety than we were about getting pictures and video and documenting the trip. Next time, we'll have a better idea of what to expect and I think we will get a lot more footage of the rapids and us running them. There are lots of sights to see on the way, and lots of hiking to be done if your so inclined. We managed to make full days of paddling without hiking much so if you plan on doing a lot of hiking or sight seeing I expect your days could be longer. Our average day was put on around 9am, and take off the river about 5pm. Our 3rd day, the paddle out, we got to Foster Bar around 1:45pm. We could have stopped and milked it a little longer, but for me, I just wanted to be done at this point since there wasn't anymore rapids left that were going to be challenging or fun. We had an excellent time though and will definitely be doing this again next year. For a self support kayaking trip down the Rogue, the Lodges are by far the best way to go. We only needed to pack basic essentials (change of clothes for evenings and sleeping, normal hygienic products). Even with as little supplies as we brought, our boats did get heavier which made it more interesting going through the rapids. Next time I think we will be bringing a little food (cliff bars, etc) to have just in case you get hungry and extra water. Better to have more water than you need than to not have enough when you need it. 

 
 



Been a while...

clock May 17, 2009 15:56 by author Mike Reagan

Its been a while since I posted, so for those of you that are reading my blog and wondering whats happened to me, here is the skinny. On the technology front, I have been doing a lot of work with the ASP.NET MVC framework and WPF (Windows Presentation Foundation). So far I really like the MVC framework, and am having a lot of fun with it. I have also been rewriting an application for work that I wrote using the Windows Forms tools, with WPF. The cool part about this, is I actually have something real to build and learn WPF with.

 On the personal front, my wife and I have been doing some more kayaking. About a month ago, Christine went on a trip with our friends Pat and Mickey to the Merced and the Kern rivers to do her first real class IV kayaking. After taking the last 9 months off from kayaking to let my neck/back heal I got back on the water a few weeks ago and have gotten the kayaking bug again. o far we have been out every weekend and I feel great. 



LINQ to XML

clock December 11, 2008 17:07 by author Mike Reagan

 

The past few months I have been slowly converting code that used the System.Xml namespace and the XML DOM to generate and read XML documents on various projects to use the System.Xml.Linq namespace instead (LINQ to XML). Not only is the programming API much simpler to use (once you understand it), it is in most cases dramatically faster in both reading and writing XML. I keep asking myself, how where they able to improve performance so much over the DOM?

I still don’t have the answer but in one simple case, I was using the DOM to generate a sitemap file that google and other search engines could use. Since all the content on the site I was using the sitemap for are served via complex links (url’s with querystrings) I was roughly generating 500 xml elements worth of data. My solution before was to write an ASPX page that would generate a physical XML file using the DOM. That age would take 15-20 seconds to finish executing. After redesigning the sitemap to be a custom HTTP Handler (ashx file) and using System.Xml.Linq, the execution time went down to .5 seconds. That is a vast improvement.

So, in other words, if you have access to .NET 3.5 and VS2008, I would suggest using the LINQ to XML capabilities as much as possible.



Silveright 2.0 Released!

clock October 16, 2008 15:14 by author Mike Reagan

Now that Silverlight 2.0 was released I have been really started to play with it. I was hesitant to play around with it/get serious about it until the final release came due to my experience with ASP.NET AJAX (formerly ATLAS). When ATLAS was CTP and Beta, it was quite a moving target. This time I let the dust settle before playing with it. I did do a little bit of stuff recently with Silverlight 1.0, mostly just hooked it up on my site, didn’t actually develop any Silverlight based products.

This time around, that will change as I am really impressed with how easy it is to get a functional product with it in just a little bit of time. Like most things, dedicate some time to it and you’ll pick it up fast.

I started Tuesday morning with Scott Guthrie’s series of posts on how to get started and quickly was able to get through the process of building this simple project. Since Tuesday I have been taking what I have learned and trying to build a few things with it, that I will share soon.

One of the great things about this technology is the server side aspects of this tool. My weakness has always been user interfaces and client side scripting. I typically spend more time in the middle tier writing business logic, and/or ASP.NET Server controls and developer tools. Frankly, I HATE writing Javascript by hand and having to deal with the intricacies of each and every browser. I like server side programming where I can write code in C#.

As I side effect of learning Silverlight 2.0, I was also exposed to LINQ to XML. Of course I read about it, but since I don’t necessarily spend a lot of time querying and/or generating XML, I really haven’t spent much time or needed to spend much time learning about it. I was more excited about LINQ to Objects, LINQ to SQL, etc. But after doing Scott’s walkthrough and in particular this post, I love LINQ to XML.

This is such a powerful and *simple* way to generate XML and parse XML. Tonight I was working on generating sitemap file that Google could use to index a site I am working on, and essentially, I wanted to loop through a product catalog and build a <url> node for each product returned in the data set.

See the code below for an example.

   1: var allProducts = (from products in DataContext.Products
   2:                            let ProductSubCategoryID = DataContext.ProductSubCategory_Product_XREFs.Where(p => p.ProductID == products.ProductID).Take(1).SingleOrDefault().ProductSubCategoryID
   3:                            let ProductCategoryID = DataContext.ProductCategory_ProductSubCategory_XREFs.Where(p => p.ProductSubCategoryID == ProductSubCategoryID).Take(1).SingleOrDefault().ProductCategoryID
   4:                            let LinkPath = "http://www.msrfx.com/ProductDetails.aspx?ProductID=" + products.ProductID + "&ProductCategoryID=" + ProductCategoryID + "&ProductSubCategoryID=" + ProductSubCategoryID
   5:                            select new
   6:                            {
   7:                                products.ProductID,
   8:                                products.Voided,
   9:                                LinkPath,
  10:                                ProductCategoryID,
  11:                                ProductSubCategoryID
  12:                            }).Where(p => p.ProductCategoryID != null && p.ProductSubCategoryID != null && p.Voided == false);
  13:  
  14:         XNamespace ns = "http://www.sitemaps.org/schemas/sitemap/0.9";
  15:         XDocument doc = new XDocument(
  16:             new XDeclaration("1.0", "UTF-8", "yes"),
  17:             new XElement(ns + "urlset", 
  18:               from p in allProducts select new XElement(ns + "url", 
  19:                   new XElement(ns + "loc", p.LinkPath),
  20:                   new XElement(ns + "lastmod", string.Format("{0:yyyy-MM-dd}", DateTime.Now)),
  21:                   new XElement(ns + "changefreq", "monthly"),
  22:                   new XElement(ns + "priority", "0.9")
  23:                 )
  24:             )
  25:         );

This was a way cleaner way to generate the XML document I needed than using the “old” System.Xml namespace.

These tools just keep getting better and better!



Google Chrome

clock September 28, 2008 16:46 by author Mike Reagan

I was excited to hear that Google was going to be releasing their own browser. It made a lot of sense for them to do it. As soon as the download link started working I downloaded it. My first impression of it was “sexy”. While I am not crazy about the icon they used to represent the program, the tabs were implemented in a clean and classy way. I like the subtle animations they did when you create a new tab.

One of the other exciting things about Chrome is the V8 javascript engine. In all the sites I have been to, I have noticed a significant performance improvement in loading times between IE7. I tried IE8 Beta 2, but after a few days I took it off, it still felt like a beta. With Google, everything is labeled Beta. Come to think about it, I have used Gmail for 4 years and it still in beta!

I like how lean and fast Chrome is, and I think it’s just going to get better.



Visual Studio 2008 LINQ to SQL Visualizer

clock September 27, 2008 15:54 by author Mike Reagan

I am really glad that Scott Guthrie made the  LINQ to SQL Visualizer available since it has helped me tremendously figure out what is wrong with my LINQ queries. One of the things that really annoyed me about it however, was when you check Original Query it shows you the SQL query that it generated, and it shows a list of the parameters at the bottom. It is nice to see what the parameters are and their values but umm, small problem, what if I wanted to copy and paste the query into SQL Server Management Studio to run it there? Well, you can do it, but you have to scroll forever highlighting the code, and you have to take the parameter list at the bottom and refactor it as DECLARE and SET statements to get a runnable query! Not quite sure why someone didn’t go the extra mile and do this. Luckily the source code is available with the download from Scott's blog,  because I was able to implement this feature in less than 30 minutes.

As you can see in the screen shot below, when “Original Query” check box is checked, it now generates a complete script that can literally be copied and pasted and ran within SQL Server Management Studio. I also added a “Copy to Clipboard” button so you don’t have to scroll any longer highlighting the text.

image

The only thing is, currently int, bigint, bit, datetime, and varchar’s are ONLY supported in the generation of  the parameter declaration since that was all I was intent on doing to solve the problem at hand before I got side tracked on this thing.

Download the source code here. The only modifications to this code were for these small changes, otherwise the rest of the credit goes to Scott Guthrie and pals.

Enjoy!



No Mobile Web Forms Support in Visual Studio 2008 RTM?

clock January 26, 2008 11:57 by author Mike Reagan

Ok, now this is VERY frustrating. When working in Visual Studio 2005 (and supposedly 2003 from this article http://blogs.msdn.com/webdevtools/archive/2007/09/17/tip-trick-asp-net-mobile-development-with-visual-studio-2008.aspx, but I do not remember, it has been to long) there was a template to choose from when adding a new item to a project called "Mobile Web Form" as shown below:

MobileWebFormTemplateVS2005

When I was working in Visual Studio 2008 Beta 2, I found the same template and it worked just like Visual Studio 2005. Once Visual Studio 2008 RTM'd in November, I installed it. A couple of days ago, I was showing my boss at work how to add a mobile page and while saying "Yeah, you must add a new item to your project like so...", neither one of us could find it. I felt like an idiot. It looks like the "Mobile [WebForm|Web Configuration File|Web User Control]" templates were removed in the RTM version! Others have confirmed this.

I find this quite irritating and annoying. Yes, its true, you can create a regular Web Form and then change the Inherits attribute in the <%@ Page %> directive, to make it MobilePage (assuming you brought in the System.Web.Mobile.dll reference). But, then I noticed that switching to design view instead of source view, the designer says it does not support designing mobile web forms.

WTF! I sure hope Microsoft ships a hot fix or includes this support VERY soon, in an update. I wonder if they needed to take that out to meet the RTM date they set? You can't take a feature out when it was in 2 previous versions like this Microsoft. In addition, the Expression based designer integrated in to VS2008 is a little quirky when your doing custom control development and you have [DesignerSerializationVisibility(DesignerSerializationVisiblitly.Content)] attribute on some properties. Sometimes, for whatever reason, instead of serializing the control properties to the page, it puts in a BUNCH of &nbsp; literals to replace the content with...but you still shipped it Microsoft.



Calendar

<<  February 2010  >>
MoTuWeThFrSaSu
25262728293031
1234567
891011121314
15161718192021
22232425262728
1234567

View posts in large calendar

Sign in