Wednesday, September 21, 2011

The Dyson DC41 Review (Flawed)

This is a great product and is probably the best vacuum out there. But that hasn't stopped me from noticing a few defects. There are really 2 major ones that nearly made me return this product.

The first issue is that they got rid of the foot lever that typical vacuums have to engage the beater bar. Instead you just force it down and start vacuuming and when you are done you just put it back up and it latches and stays upright. This is pretty neat but when you are putting it upright there are 2 distinct things that happen, it engages the wand hose and then it engages the lock that holds it up. The switch for the hose is much louder and happens first so this leads you to believe the vacuum is upright and to let go when it is not latched properly causing it to fall over if you are not quick enough to catch it. This makes me respond by putting it upright much more forcefully then I want to do to something I’ve bought for nearly $600.

The second main issue is the path the air flows to the motor. There are 3 zones in the canister. The air goes from the outer to the inner getting cleaner as it progresses. The outer one is for big debris and dust, and then air flows through those tiny cyclones on the top and deposits its finer dust in the middle zone. Finally after leaving those cyclones the air goes through the filter (accessible though the top of the canister) and down the inner zone to the motor then finally out through the filter in the ball. The problem with this is that when you empty the canister the dust can and will cross contaminate from the other zones and into the post filter, inner zone. This means next time the vacuum is started it will suck in that dust into the motor and the ball filter.

So here is the story of how I found out about this defect: to test out the DC41 I took it to a house that was very dirty (some parts had not been vacuumed for a year) and vacuumed nearly the whole house. I had to empty the canister 3 times. After the 3rd time the vacuum got clogged (A peppermint in the narrow hose tool) and it activated the thermal cutoff. After learning about the thermal cutoff and what it meant, I took apart the vacuum and cleaned out all the access ports. Also looked at the post motor filter and saw that it was absolutely filthy but the filter in the canister was still white. So the dust was bypassing the canister filter somehow. So I figured it was when I dumped the canister the dust plume went everywhere including back up into the part of canister that is meant to be dust free. That amount of dust can’t be good for the motor.

Here are a few more nit picks:

It feels a little harder to navigate then the DC25

I wish it had a light and something to automatically rewind the cord.

Sometimes it feels like it’s about to break in my hands.

It does not have a spot for all the tools.

The hose wand sometimes doesn’t extend all the way out of the hose and sometimes causes the airway to be blocked when used. I think the DC25’s wand was better.

The reason I decided to keep this vacuum is the active base plate, I have a lot of wood flooring in my house and I want to get as much dust up before I use the Swiffer. Using this vacuum I now only have to use one pad each time I clean with the Swiffer instead of several.

And the DC41 will not be facing that dirty house again so it will never be that full of dust again.

Here are few good things about it:

It has great suction.

It survived that dirty house.

Its cord is long enough that I can plug it in anywhere and vacuum the entire floor.

Ultimately I think this is a great vacuum but for $600 I expect the best with no flaws and this has 2 too many flaws for that price. Unfortunately I can’t find a better vacuum so I’m stuck with this one.

Thursday, August 12, 2010

Smudge proof Touch Screen password screen.

The current problem with touch screen password screens is that smudges can give away what your password is if you don’t clean them right after you log in. The smudges reveal where you put your finger to press the numeric touchpad or the pattern you put in.

The simple solution is to randomly change the location of the buttons each time the screen is presented. This only works for numeric touchpad’s though and has the issue of people expecting numbers to be in order. So I recommend using colors instead.
Here are examples of what it would look like:



This would eliminate the issue of smudges giving away passwords making a much more secure way of protecting cell phones.

Wednesday, January 14, 2009

The project file ‘ ‘ has been renamed or is no longer in the solution. In Silverlight.

Recently one of my projects at work was moved to a different SCM. After the move a message box that said “The project file ‘ ‘ has been renamed or is no longer in the solution.” would appear every time we tried to compile the solution. After a while I figured out how to fix this. The solution has a silverlight project; somehow the web app that hosted it got corrupted. The fix was simple right click on the project and click “Properties” and under “Silverlight Applications” tab remove the blank silverlight project and add the intended silverlight project. The code now compiles.

Tuesday, February 19, 2008

Creating Unions in C#

Here is a Small trick to create a C/C++ like union in C#.

          You have to use the StructLayout attribute applied to the class. the StructLayout attribute needs to be passed the parameter LayoutKind.Explicit. This makes it so you can declare the exact offset in the number of Bytes each field will have. Naturally you will need to use another attribute for each of the fields to specify this offset; the name of this attribute is FieldOffset. Both of these Attributes are in the System.Runtime.InteropServices namespace.



Here is an example where 2 32bit integers will share the same memory address as a 64bit integer.


using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Explicit)]
public
struct PairID
{
[FieldOffset(0)]
public
long Id;
[FieldOffset(0)]
public
int LowId;
[FieldOffset(sizeof(int))]
public
int HighId;
}