How do you get the DirecTV Whole house DRV to work without an internet connection

For one reason or another, the Power Line connection no longer seems to work. I am not able to obtain an IP address unless I connect the DVR directly into the router with an ethernet cable.

I am not about to buy a new connector or wireless connector and I was determined to find a work around.

There is a work around. The box does not seem to care, even though it complains, about an internet connection. It just cares that it has a connection to a switch or router that can provide a DHCP address to both boxes.

So what I did was gran an old router that is just collecting dust and I connected the wire that used to connect to the Power Line connector and I plugged it into an ethernet jack in my router.

I reset the default settings on the DVR and did a network setup allowing it to error again when it could not connect to the internet.

Once I verified that the network settings were correct (as provided by the new router) I went to the second TV to verify the connection. Everything works.

You need to make sure the DNS server given by your router is on the same subnet (192.168...) or else it will not work. I originally had mine setup to use OPENDNS which was causing other issues (The box needed to connect to the internet to resolve the Box Name).

Problem solved. I hope this helps someone else.

Knockout.js mapping library subtle side effect when using .fromJS

Are you pulling your hair out trying to figure out why a new JS object is not updating your view model?

I was pulling my hair out and I even went to the extent of forking the Knockout.js mapping extension so that I could create a pull request with a new "bug" that I just found.

Was it a bug?? Well no more of a misunderstanding.

If you read the directions here it seems very easy to update an existing view model.

// Every time data is received from the server:
ko.mapping.fromJS(data, viewModel);

And I tried it, for many hours, with no updates to my view model. I was convinced it was a bug in the mapping library.

It was NOT. I choose to create a view model on my page just like this:

var viewModel = {
serverTime: ko.observable(),
numUsers: ko.observable()
}

This exact sample is used on the mapping page so why should you expect any issues when you update your model? The problem is that the property "__ko_mapping__" does not get added to the viewModel because fromJS was not used originally.

Why is this an issue and why should I care?

If you look at the source for fromJS you will see this code

 

if (arguments.length == 2) {
        if (arguments[1][mappingProperty]) {
            target = arguments[1];
        } else {
            options = arguments[1];
        }
    }

 

Since the property does not exist, it assumes your hand crafted viewModel is an "options" object and not your target object.

You can do one of two things to fix your issue.

Instead of creating the view model as seen above, give the value a temp name and call

var viewModel = ko.mapping,fromJS(tempViewModel);

Or you can pass an empty object object when you update

ko.mapping.fromJS(data, {}, viewModel);

I ended up using the first option.

All I can say is if I were a more seasoned JS dev, I may have caught this earler, but this is the fix.

How to get DevExpress XtraReports running on Azure

If your instance is stuck in Initializing or Stablizing Role, you most likely have a missing dll reference.

It took me a few deploys before I finally got fed up and walked the references with Reflector.

Since your Azure deployment requires every dll that will be used by your report, you need to make sure you have a reference to every reference listed here:

  • DevExpress.Charts.v11.1.Core
  • DevExpress.Data.v11.1
  • DevExpress.PivotGrid.v11.1.Core
  • DevExpress.Printing.v11.1.Core
  • DevExpress.RichEdit.v11.1.Core
  • DevExpress.Utils.v11.1
  • DevExpress.XtraBars.v11.1
  • DevExpress.XtraCharts.v11.1
  • DevExpress.XtraEditors.v11.1
  • DevExpress.XtraPivotGrid.v11.1
  • DevExpress.XtraPrinting.v11.1
  • DevExpress.XtraReports.v11.1
  • DevExpress.XtraRichEdit.v11.1
  • DevExpress.XtraTreeList.v11.1
You must also mark every dll to copy local as seen here.
Setpropertiestolocal
If you would like to verify that the references are added correctly, you can load your csproj file into a text editor. 
Csprojsample
Notice that a node exists, <Private>True</Private>.

The package file will be at least 40 megs one the references are added.

If you are lazy and would like to copy the references to your csproj file, here is the full list.

<Reference Include="DevExpress.Charts.v11.1.Core, Version=11.1.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
  <Private>True</Private>
</Reference>
<Reference Include="DevExpress.Data.v11.1, Version=11.1.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
  <Private>True</Private>
</Reference>
<Reference Include="DevExpress.PivotGrid.v11.1.Core, Version=11.1.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
  <Private>True</Private>
</Reference>
<Reference Include="DevExpress.Printing.v11.1.Core, Version=11.1.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
  <Private>True</Private>
</Reference>
<Reference Include="DevExpress.RichEdit.v11.1.Core, Version=11.1.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
  <Private>True</Private>
</Reference>
<Reference Include="DevExpress.Utils.v11.1, Version=11.1.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
  <Private>True</Private>
</Reference>
<Reference Include="DevExpress.XtraBars.v11.1, Version=11.1.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
  <Private>True</Private>
</Reference>
<Reference Include="DevExpress.XtraCharts.v11.1, Version=11.1.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
  <Private>True</Private>
</Reference>
<Reference Include="DevExpress.XtraEditors.v11.1, Version=11.1.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
  <Private>True</Private>
</Reference>
<Reference Include="DevExpress.XtraPivotGrid.v11.1, Version=11.1.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
  <Private>True</Private>
</Reference>
<Reference Include="DevExpress.XtraPrinting.v11.1, Version=11.1.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
  <Private>True</Private>
</Reference>
<Reference Include="DevExpress.XtraReports.v11.1, Version=11.1.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
  <Private>True</Private>
</Reference>
<Reference Include="DevExpress.XtraRichEdit.v11.1, Version=11.1.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
  <Private>True</Private>
</Reference>
<Reference Include="DevExpress.XtraTreeList.v11.1, Version=11.1.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
  <Private>True</Private>
</Reference>

My predictions for Build 2011

I am not an insider. These predictions are solely based on my 10 years of working with .Net with a little gut instinct thrown in.

In 2000 Microsoft announced this really cool technology called .Net. It was going to revolutionize the way we write software. ASP.NET was this cool strongly typed concept that was going to allow VB 6 developers to learn how to program for the web. What they seemed to forget was the million or so asp developers that write script and not this new ASP.NET thing. There was no upgrade path for the asp developers to continue to write websites. They were stuck in the old COM world wondering when they would have to abandon Microsoft. I have to wonder how many of these developers were forced into PHP and JSP.

Why am I telling you all of this? Because my hope is that Microsoft learned from the gigantic mistake of turning their backs on the dedicated Microsoft developers as they did in 2000. There has been tons of hype since the Windows 8 video was shown combined with the statements that HTML 5 and JS were the only way developers were going to be able to achieve true cross platform support of their applications.

Prediction 1

Xaml is not dead. This includes Silverlight and WPF.

I had the honor of learning about the Xen project that Erik Meijer and his team had built in 2003. Running on the 1.1 runtime, they had generics, union data types, Tuples, and what would become Linq. They also had Xml literals in C#, something that has only made it into VB.NET. This project was way ahead of it's time but it shows that Microsoft can, and hopefully will, port a developer's skill to the new technologies without isolating a good portion of the .NET developers. It would not be hard for Microsoft to convert Xaml to Html5 and convert the event code to JavaScript. My feeling is there will be an announcement at Build that will allow us to develop in a common project type and then we can run it as either a Silverlight or Html 5 application. WPF will also be migrated into Silverlight and they will become one technology.

Prediction 2

Async will be everywhere and it will blow your mind.

Everything will have async abilities out of the box with magic auto scale to a cluster or Azure without having to code specifically to Azure or other technology. Yes I know that async has already been announced but that is just the tip of the iceberg compared to what will come out.

If you look at the Rx.Net project, it is built with async in mind. If you combine that with the parallel extensions built into .Net 4.0 and Linq to HPC, you have what could become the most powerful computing platform in existence.

Imagine if you were to create a Linq expression that behind the scenes could automatically make a determination if it should scale out the work between in house HPC servers and Azure on the fly (based on policies of course). You dont have to think about how to design your call for scalability because the framework could make that determination for you. 

Prediction 3

Visual Studio vNext will be Html 5 and hosted in Azure.

I am just kidding on this one. I think vs.net vNext will simplify the learning curve of Html 5 / JavaScript for the 80% case. My thought is it will extend the WebForms space to support Html 5 but at the same time it will work with MVC 3. I think there will be a switch in the project to make it work in legacy mode or Html 5 best practices mode. Again, Microsoft has learned that they must not abandon the current developers. For as much as I do not like WebForms, it must be supported for the corporate developers creating in house applications. We can't repeat what we had to do in 2001, telling our bosses that we have to throw everything out and rewrite the entire application from scratch and it will cost a million dollars.

Prediction 4

The CLR is not Dead.

Seriously, do we think Microsoft is going to tell us to go learn C++? You will see two million new ruby, php and python developers next week if they even hint that the CLR is going away. The CLR will not be going away. My hope is that a "Compiler as a Service" does make it into .Net vNext. Yes, the vNext way of creating Html 5 applications will change and this will force people to learn a few new skills but we all need to learn new things. If you don't like JavaScript, learn Coffeescript.

Prediction 5

Microsoft will embrace open source.

This is a no brainer. If Microsoft does not embrace open source then the rest of the world will move on without them. Microsoft makes money from licensing. Who would run ruby on IIS for more money? I see Knockoutjs getting a lot of traction in vNext. They hired the guy that wrote it. This brings MVVM style binding to Html.

We will see in a few hours how it all pans out.

Joe

The pocket door project - Part 3

The next fun task of the pocket doors is hanging the drywall. We ended up using 10 sheets to complete the entire job with minimal joints. The 9 foot ceilings required us to hang two full sheets on top with a 1 foot section on the bottom.

Img_9257

We ended up cutting away the drywall above the french doors to reduce the joints. We only have one bad joint to repair (see last picture).

Img_9259

Nice clean drywall on the left in the dining room

Img_9260

Nice clean drywall on the right side of the dining room

Img_9263

We also cut the drywall away to the ceiling in the foyer to reduce joints.

Img_9264

A view of the right side of hte office

Img_9265

A view of the left side of the office

Img_9267

A nice view of the drywall from the french doors to the dining room wall.

Img_9273

Img_9274

Some of the damage left from the old pillars

Img_9268

We were 2 inches short on the office side, so we placed a small piece of drywall and I used the 40 minute powder to fill in the cracks.

Img_9269

The corner also had a big area to patch. I also used the quick set power for this.

Img_9270

Img_9271

I fixed the large holes by covering it with the fiberglass tape and pushing the quick set joint compound into the hole once it was 10 minutes old. You only have 20 minutes to work with this stuff.

Img_9272

There was a large gap left from where the pillar met the wall so I used the quick set stuff for this also.

Next is the project of joint compounding the entire wall and all of the joints.

 

 

The pocket door project - Part 2

Now that the beam is in, we had to build the header. This is a perfect example of measure 5 times, cut the 20 boards twice. We took the 3 inches off twice so we decided to just build up the header instead of tearing out and replacing 20 boards. The header is 4 layers of 2 by 7 inches wide. The osb is in place since the beam is only 6 inches wide

Img_9225

Close up of the header.

Img_9230

A wide view of the entire header. We also nailed (with ring shank nails) osb to the boards to reduce the odds of any separation. :)

Img_9236

First look of the hung doors.

Img_9237

Picture of the door pushed to the side.

Img_9238

Left side view.

Img_9239

The completed framing of the doors and pockets.

Img_9243
Close up of the door inside the pocket.
Img_9245

Side view of the left pocket.

Img_9246
Side view of the right pocket.
Img_9251

The French door replacing the entrance from the foyer.

Img_9254

Another view of the French doors.

In the next part, We will tackle the dry wall.

Our journey to help find a cure for type 1 diabetes

Many of you know September 11 as a day of mourning for our nation but, more personally, it is a day of sadness for our family. September 11, 2010 was the day our youngest daughter, Maya, was diagnosed with Type 1 Diabetes. Instantly our lives and family dynamic changed. This diagnosis means Maya will be insulin-dependent for the rest of her life, or until a cure is found.  Maya continually amazes us and is a blessing to have in our lives as a daily reminder of spirit, humility, and a positive attitude. You can take a peak at Maya's journey through the following link: 

 We are asking our family and friends to help support Maya, and our family, in our journey to help find a cure for type 1 diabetes. We will be walking as Maya's Amazing Miles team. All the information about the walks can be found at the links.

  • September 10 to help support the Juvenile Diabetes Research Fund 

  • October 22 to help support the Juvenile Diabetes Research Fund 

ADA Walk -  http://main.diabetes.org/goto/MayasAmazingMiles

Both are great organizations that have touched Maya's life, and our family, in  very positive ways and deserve our support in the search for the cure.

If you are interested, there are a few ways you can help us make a difference for Maya:
  • You can join our Family Team, known as “Maya's Amazing Miles,” which consists of family and friends who collect donations and walk with us, OR, just walk with us to support Maya on her amazing journey.
  • Send your donation and contact others in your circle of family and friends to donate as well. Just contact us and we will send you a pledge form. If you choose to raise donations yourself, you may forward this letter or write your own.
  •  You can send us a tax-deductible contribution in any amount, made payable to Juvenile Diabetes Research Foundation or American Diabetes Association. We will deliver any donations in Maya’s honor the mornings of the Walks.

Facts about type 1 diabetes

  • What is type 1 diabetes?
Type 1 diabetes is an autoimmune disease. In type 1 diabetes, the immune system attacks the insulin-producing beta cells in the pancreas. This means the body is no longer able to produce enough, or any, insulin to regulate blood sugar levels which can lead to life-threatening complications.

  • What is an autoimmune disease?
An autoimmune disease causes the immune system to mistakenly attack the body’s own tissues and cells. Type 1 diabetes is an autoimmune disease targeting the insulin-producing cells of the pancreas.  

  • Is there a cure?
Insulin is needed for people with type 1 diabetes to stay alive. It is literally life support for Maya and others with type 1 diabetes. This means having multiple injections daily or using an insulin pump, and multiple blood sugar tests by pricking their fingers for blood up to 10 times a day.  A healthy diet and daily exercise are very important in helping to keep blood sugar levels balanced and avoid hypoglycemic (low blood sugar) and hyperglycemic (high blood sugar) reactions, which can be life threatening. Maya checks her blood sugar levels a minimum of eight times daily and as much as 12 times daily including in the middle of the night - she is such a great sport about the situation, even at her 12 a.m. and  3 a.m. blood sugar check she is cooperative and has no complaints. 
  • What is insulin?
Insulin is a hormone that helps the body move the glucose contained in food into cells through the body to be used for energy. If beta cells are destroyed, no/very little insulin can be produced, and the glucose stays in the blood instead, where it can cause serious damage to all the organ systems of the body. Maya's body is in the "honeymoon phase" and her pancreas is still producing a little insulin. This is a temporary state and could last a few weeks or up to two years. 
  •  Is type 1 diabetes hereditary?

There is a misconception that type 1 diabetes is a familial disease. Only about 10 percent of type 1 diabetics have a family history. According to the Juvenile Diabetes Research Foundation (JDRF), this suggests there may be environmental factors influencing type 1 diabetes. We do not have a family history of diabetes. Maya's fifth cousin has type 1 diabetes also, but according to our doctor the cousin is so far removed that it doesn't warrant calling it a family history of type 1 diabetes.
  • Can type 1 diabetes be prevented?

Unfortunately nothing we would have done could have prevented Maya from getting type 1 diabetes. Unlike type 2, lifestyle changes and weight control would not have prevented this life-threatening disease. All we can do is manage it and pray for a cure in the near future.

Thank you for helping our family support Maya, and helping us raise money for a cure. We would be honored to see you at either walk. Our team will be wearing green shirts, Maya's favorite color!

 Warm Regards,

 The Feser Family

 

The pocket door project - Part 1

Now that I am working out of the house, we wanted to convert the formal living room into an office/den. We have talked about it since we purchased the house and normally it would not be a massive project.

I asked the builder if the pillars in this picture were decorative or not and he stated, yep, they are only decorative, if you want, you can take them down. In the back of my head I always thought, cool I can put in pocket doors just like my grandmother's house on Clifton Ave in Cleveland.

Greenville1139877f

O look, nice (ugly) decorative pillars.

The Demo

Since the pillars were decorative, it should only take a a few hours to take them down. Except for the fact that the builder wrapped the 2x4s in OSB with 3 inch (12 penny) nails. It took about 8 hours to take the pillars down to the studs only to find out the wall was load bearing.

Img_9109

With a ton of help from Joe (my neighbor) we determined that we had to build a new support beam to redirect the load from the middle of the room to the edges so that a 12 foot span could be created for the pocket doors. We decided to go with a double 36 inch pocket door (6 feet total) but to have a 6 foot door, you need 6 feet of empty space in the walls, hence the 12 feet needed.

Img_9187

This is a view of the supports inside the pillars once the osb and drywall is removed.

The Beam

We determined there was no way that we were going to be able to lift the 300+ lb beam into place that we would build it in position. So what we did is build a back support and a shelf one inch down from the final position. The beam consists of 3 2x12s and 2 layers of 3/4 inch plywood to create a 6 inch thick beam.

Img_9196

This is the first 2x12 in position. You can see we had to also build a temporary wall out of 2x6s just to hold up the ceiling as we built the new beam.

Img_9199

Each layer was glued and nailed with 16d nails (250 or so total).

Img_9201

This is the final beam. 3/4" plywood is sandwiched inbetween each 2x12 for strength and remove the risk of twisting.Once the beam was build, we then jacked the beam into position and inserted the support braces as seen below.

Img_9206

We used 2 sets of double 2x4s at the edge and two additional 2x4s 3 inches out to support the beam. That is 12 2x4s to just to support the beam.

Img_9208

Finished view of the support beam.

Img_9210

The other opening leading into the foyer will be replaced with a set of solid pine french doors. I had to tear the wall apart and increase the opening to the correct size due to the building being measurement challenged. The doorway was 2.5 inches too narrow for a 5 foot door even though the opening was build for a 5 foot french door. The doorway is now ready to have the door installed.

Img_9177

This is a picture of the french doors and in the back, the pocket doors.

 

Why do my Azure Table columns still have values when set to null?

With Azure Tables, null is the same as not having a value. For some strange reason, this does not mean delete the old column value.

The only way I was able to remove a value that was already set was to set the property to an empty string "".

For Example

Lets say a Person record had a field Address2 and Address2 used to be "Suite 100" and you saved it.

If you then set the value of Address2 to null and save it, the record in the Table storage is still "Suite 100". 

Once I set the value of Address2 to "", the value was cleared on the record.

Maybe I am doing something wrong but it worked.

How to use an AppSettings key in your Test Assemblies and in Azure

For the past two weeks I have been writing a production website in Azure with tons of tests. The first problem I ran into was how to configure a setting that can be used both from your tests and also from your Azure deployment (both local and in the cloud).

I use helper methods that determine if you are running within the Azure role or not and based on that, they read from the cscfg or the app/web.config file.

You can set the settings in Azure by going to your AzureWeb project, opening the roles folder and right clicking on your role configuration. Then click on the settings tab and add your keys.

Hope this helps

(download)