Wednesday, December 28, 2005

I was just reading a post by Scott Hanselman on switching off of Acrobat Reader to Foxit's Reader.  I must say I wish I had known about this tool a long time ago.  While I've never had Acrobat crash as Scott did, I've never really enjoyed using it.  Among other things its load time was WAY too long simply to read a document (sure, there are ways to speed it up, but it's a headache).

  1. Gone are the load times; Foxit Reader 1.3 loads almost instantaneously.
  2. Gone is the bloat; Foxit Reader is about 2.5 MB and runs without an installer and with a smaller memory footprint (about 50% smaller).

It's added to my \Tools directory and my thumb drives...awesome!

Wednesday, December 28, 2005 5:34:00 AM (Mountain Standard Time, UTC-07:00)  #    Disclaimer  |  Comments [4]  |  Trackback
 Monday, December 26, 2005

Several months back I went down to my local Circuit City and picked up a NetGear RangeMax Wireless Router WPN824.  It wasn't, however, until December 24th that I actually had a chance to do something about it.  Over the years I've been impressed with NetGear's routers, having long employed a NetGear RO318.

In setting it up, I was able to effectively eliminate the RO318 (which is a wired router) and my other wireless router and consolidate them to a single unit with many more capabilities.  I am very excited and impressed with the new RangeMax as it offers many things that my other routers could not do, or at least didn't do well.

DHCP Reservations - One reason that I so thoroughly enjoyed Windows-based DHCP is that of reservations.  The effectively allow you to assign a hard IP address to a particular MAC address on the LAN.  My other routers did not offer such a capability, but this one does.  It both acts as my DHCP server as well as assigns hard IP addresses to devices (such as my Brother HL-5170DN printer, servers, etc) so I don't have to go in and configure them manually.  :-)

Firewall - My other routers of course offered firewall protection...which was very welcome and expected.  This router, however, has a double firewall for additional security.  And while I've seen it in other routers (and yes, my RO318 was rather antiquated), this router provides me to specifically designate the protocol (TCP/UDP) to accept over a given (set of) port(s), it also allows for an arbitrary list of ports.  My RO318 would only provide a set of about 10 ranges of ports for incoming traffic.  For the most part this might be sufficient, but I was constantly banging my head against a wall when needing to open other ports because my list was constantly full.  This RangeMax, on the other hand, doesn't yet seem to have an upper limit on the number of ports and ranges of ports that I can open.  Additionally, it allows me to 'name' the port range.  I fall back to simple protocol names, but it sure makes it easier to remember why I opened port 372 (arbitrary port # of course) and what it was for.

Wireless Security - I have rarely encountered a wireless router that didn't have problems with wireless security.  I've had, oh, three or four different wireless routers from different manufacturers and anytime I set up wireless security (be it WEP, WPA-PSK, etc) the router would freeze, I couldn't reconnect, or I could connect for a bit and then it would drop me...basically I had issues.  The best I could do on security was simply to disable SSID broadcast and lock it down with MAC filtering.  This one, however was a snap!  I setup the wireless security, MAC filtering, and disabled the SSID broadcast and it all just worked...and continues to do so.

Even though I don't have the recommended NetGear Wireless PC Card (which I might pick up today just for kicks to get the 108 Mb performance), I have never dropped, consistently had an 'Excellent' 54 Mb connection, and the router is traversing more walls and floors than before.  I am impressed.

If you're in the market for a router, want additional security, want awesome performance, and a greater network range, definitely take a look at the RangeMax router...I'm hooked already.

Monday, December 26, 2005 3:57:00 AM (Mountain Standard Time, UTC-07:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Friday, December 23, 2005

This is awesome - it's always great to find/discover tools out on the web.  Even ones that have been out there for years and you just never knew about 'em.  This is one of those cases for me.

ColorBlender is a free online tool that will automatically create palettes of matching/coordinated colors (a blend).  You can save your blends, download them in an .ACT file for Photoshop (awesome...I'll be using this all the time), an .EPS file (same for Illustrator), do PANTONE matching, etc.

It has a great UI for managing the RGB values of your color via sliders and provides some slight variations on your color.

For all those out there that are color-scheme challenged, this site should be on your 'do-not-misplace-this-site' list.  Very cool.

Friday, December 23, 2005 4:06:00 AM (Mountain Standard Time, UTC-07:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Thursday, December 22, 2005

Today we had the front door on the house replaced - a much desired improvement on the home.  I've added these before and after pictures to the House Projects gallery (before, after)  The next step is to get shutters on the house to match.  Then redo the flooring in the house.  We're going to tear up the carpet and put hardwood throughout the first floor entry, kitchen, and living room; but some of these projects will have to wait until the summer...or next...or the one after that.

Thursday, December 22, 2005 8:20:00 AM (Mountain Standard Time, UTC-07:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Tuesday, December 20, 2005

I was working with a customer today on an issue.  The customer had a custom VS project that he had inherited from another developer who had since left the company on other pursuits.  While the original developer could work in the solution just fine, the new developer was receiving the following error message:

Visual Studio .NET cannot create or open the application.  The likeliest problem is that required components are not installed on the local web server.  Run Visual Studio .NET setup and add the web development component.

Naturally the first thing I tried was to repair IIS with the following commandlines:

cd %windir%\Microsoft.NET\Framework\v1.1.4322
aspnet_regiis -i

That didn't fix the error, though I didn't really expect it to - the .NET extensions were all already properly mapped in IIS.  The solution was (unlike all of the recommendations that I found online to run the aspnet_regiis utility) to fallback to the same solution that had solved another issue a long time ago:  to delete the VSWebCache folder.

The VSWebCache folder is created automatically by Visual Studio when you open/create a web project and can be found in <root>\Documents and Settings\<user>\VSWebCache\<machinename>.  Simply delete this folder and VS will recreate it when you attempt (now successfully) to open the web project.

Tuesday, December 20, 2005 4:06:00 AM (Mountain Standard Time, UTC-07:00)  #    Disclaimer  |  Comments [90]  |  Trackback
 Saturday, December 17, 2005

DevUtah is pleased to announce the 2nd Utah Geek Dinner.  We held last month's inaugural meeting at Los Hermanos in Lindon, Utah to great success and turnout.  This time around we're keeping with the Mexican food theme (only coincidentally).

The 2nd Utah Geek Dinner is to be held on December 20th at the Mayan Restaurant in Sandy, Utah.  Hopefully this will cater more to the SL County residents but not dissuade those of Utah County or even further north from coming.

While the event is free and open to all, each attendee is responsible for his/her own meal (about $12:95).  A final head count needs to be given to the Mayan by 5:00 PM on Monday, December 19th.  Therefore, registration is open until 4:30 PM on Dec 19th, at which point registration will close.

Please indicate on your registration how many will be attending (if you're bringing your spouse).

Here are some helpful links for the event:

DevUtah's Website
The Mayan Restaurant (map to the restaurant)
RegistrationWIKI

See you there!  Should be a blast!

Saturday, December 17, 2005 12:23:00 PM (Mountain Standard Time, UTC-07:00)  #    Disclaimer  |  Comments [0]  |  Trackback

I've been recently dabbling with the DotNetNuke version 4.0.  I'm completely new to it, and wanting to experiment with it having created many web applications myself I wanted to see what it's like - I hear great things.

Any who follows this blog is very aware that I don't run under an administrative account, preferring instead to always run as a low privileged account.  Well, most of the web applications that I have on my laptop target the .NET 1.1 framework.  All of the .NET 2.0 web applications have run under Cassini and are file-based rather than installed as a virtual directory in IIS, therefore some things had not been configured to run properly using .NET 2.0 and IIS.

Upon setting up DNN and attempting to run it I ran into the 'Server Application Unavailable' error message.  I examined the event log and saw the following error message:

Failed to execute the request because the ASP.NET process identity does not have read permissions to the global assembly cache. Error: 0x80070005 Access is denied.

Ok, well doesn't mean that *I* don't have read access to the GAC (which I do)...it's indicating that the account associated with ASP.NET 2.0 applications doesn't have permissions to the GAC.  In this case that's MACHINENAME\ASPNET.  You might be tempted to open up Windows Explorer, navigate to the %WINDIR%\assembly folder (for that's the location for the GAC), right click it, and change security settings.  As it turns out, however, Windows virtualizes this folder and its contents into an aggregated view of the GAC contents rather than actual directories.  That option is out.

How then do we grant permissions on the GAC?  The answer is pretty easy actually: we use a commandline utility called CACLS.  Open up a command window and run the following command (or something similar to it):

CACLS %WINDIR%\assembly /e /t /p [DOMAIN|MACHINENAME]\useraccount:R

Substituting either your domain name (for a domain account) or machine name (for a local account) as appropriate.  The command line grants Read permission to the specified account to all files and folders in the specified folder.

You might also need to do something similar to your application's directory.

As it turns out, however, I don't want my web applications to run under ASPNET.  Instead I prefer to run them as my personal account so I can debug the applications (being that I'm not an administrator).  I had already used the aspnet_setreg utility to encrypt my credentials in the registry.  I then simply needed to update the <processModel /> element in the %WINDIR%\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.config file to resemble the following:

<processModel
   autoConfig="true"
   userName="registry:HKLM\Software\ASPNET\Identity\ASPNET_SETREG,userName"
   password="registry:HKLM\Software\ASPNET\Identity\ASPNET_SETREG,password"
/>

By doing this, I don't have to worry about granting the ASPNET account read access to the GAC (which I did anyway) and I ensure that ASP.NET 2.0 applications run under my local account (giving me all the access I need to run and debug them).

Saturday, December 17, 2005 8:08:00 AM (Mountain Standard Time, UTC-07:00)  #    Disclaimer  |  Comments [35]  |  Trackback
 Friday, December 16, 2005

We went out and splurged a few days ago, getting some toys.  We felt it appropriate to get them now and use them rather than get them and wait until Christmas.  It's long overdue, and we've been wanting/needing something for a long time, so we went ahead and bit the bullet.  I think we made the right decision.

First toy: Nikon D50 digital SLR camera.  We've had an Olympus E10 camera for several years, and it's been pretty good (unless someone moves during a shot...terrible shutter speed).  The Nikon is pure joy to work with.  I would have loved to get the new D200, but the price was prohibitive...though I'm sure in a few years it'll be in the budget range.

Second toy:  Sony Handycam 301.  This is something that we've been wanting for a long time.  In addition to fun family videos and what not, I'll also be using this at the .NET User Group to film the presentations.  It records right to DVD.  That, coupled with Camtasia (which is a fantastic screen recording/capturing application), we should be able to do some really great things.  (and yes, I altered the picture to show the Incredibles...it just makes more sense that way).

It's going to be a fun!

Friday, December 16, 2005 8:47:00 AM (Mountain Standard Time, UTC-07:00)  #    Disclaimer  |  Comments [2]  |  Trackback
 Thursday, December 15, 2005

Tonight, for those that can make it, Kathleen Dollard is presenting on WinForms Databinding with the Utah County .NET User's Group.  It should be a fun time.  For those that might not be aware, they meet down on the UVSC campus in room CS512 at 6:00 PM.

If I'm not mistaken this month's meeting marks the 1 year anniversary of the UCNUG, which is pretty exciting!

Hehe, I looked at Kathleen's blog (which, btw, doesn't have any activity since April 2005) and was amazed at her stats: 57 posts, 21148 comments!  Holy cow, must be incredibly insightful.  But then I saw that 99% are spam...which is unfortunate.

Thursday, December 15, 2005 9:27:00 AM (Mountain Standard Time, UTC-07:00)  #    Disclaimer  |  Comments [0]  |  Trackback

This is pretty cool - I downloaded it, installed it, played it, was impressed, and promptly died.  I gotta get used to the controls but they guys that worked on this (Dobermann, Chainsaw, et al) did a fantastic job...looks like lots of fun and it's very well done.

If you're a fan of the original XBox Halo (by Bungie), you gotta check out this Halo side scroller called HaloZero.

Thursday, December 15, 2005 8:16:00 AM (Mountain Standard Time, UTC-07:00)  #    Disclaimer  |  Comments [0]  |  Trackback