Ngoc-Huong's profileHuong's spacePhotosBlogListsMore Tools Help

Blog


    July 01

    The Alienist Book Review

    I actually first heard of the Alienist when it first came out. I think it was a favorable book review in Time magazine or something. Never got around to picking it up, not a huge fan of mysteries, but somehow the name of the book stuck with me. The cover of the book did as well, it was so foreboding it just seemed to etch itself indelibly in my memory. So fast forward to 2008, I’m at Fools’ Cap 2008 and they have a magnificently large collection of free books. One of these books is the Alienist. I snatched the book and being thoroughly burned out on life, decided to take these past few days to work my way through it.

    SPOILERS

    I liked it. It’s a book that definitely fits into the Sherlock Holmes mould, but with a distinctly historical take on things. I would have to say that is one of the most memorable things about the book, it has a very real sense of place and time. Turn of the century New York City. I’m sure if you looked up all the famous people and places they would all check out. But there is no sense of urgency to do so. The authenticity is evident as one reads and that feeling is only reinforced the further one goes into the story. The story itself is a little lacking in passion, and perhaps in 1994 was more shocking, but after the critical and popular success of Silence of the Lambs and the embedding of Hannibal Lector into the collective consciousness, the story revolving around serials killers loses its punch.

    It would have helped if the characters in the book had more gusto, but while not irritating, I didn’t feel any particular attachment to them. Dr. Kreizler in particular seemed to lack real depth. He has some weaknesses thrown in to make him appear less of the superman than he is, but they ring false. This is a man of great powers who may only really be foiled by himself. Much more time could have been given to Sara and her relationship with Moore, but she also ends up being a stock “strong woman” character with little depth. The two brothers thankfully do not become Jewish mockeries, but are not given a lot to do.

    The biggest misstep in the book is the secondary plot involving the police, the church, and J.P. Morgan( ?!!? ). It really has no bearing on the plot, and while proving an apt red herring in the 1st half of the book, the reveal is COMPLETELY wasted. I can’t say it any other way, it was a real letdown to find out what was actually going on. I suppose it was done to prevent the book from being a “straight” serial killer story, but it seems like there could have been much more done with it rather than just throwing it away. Also, after this the “surprise” about the serial killers youth being bad, and having a cold, heartless mother etc etc was almost an anti-climax.

    Overall, a thumbs up, with reservations for people with weak stomachs ( the murder victims are described in graphic detail ).

    June 22

    Jefferson’s Pillow Book Review

    My beloved (ex) fiancé Stacy at the time was travelling to Washington D.C. for some fun. On her way there, she just happened to sit next to a very distinguished gentleman who helped her kill some of the flight time by flying. It turns out this was none other than THE Roger Wilkins! She was thoroughly impressed and purchased Jefferson’s Pillow as a way to honor and remember that meeting. It has been in my care since then, and before returning it to her, I decided to read it. This book review isn’t going to focus on whether the book is good or historically accurate ( it’s good and as much as I know it is accurate are the answers to those questions ), but rather its going to focus on what I felt and thought while reading.

    A short summary of the book itself is that it starts and ends in the present, delving into the past in between these 2 bookends to find the answers that the author is seeking. The idea that the founding father’s could condone or even benefit from slavery whilst fighting it tooth and nail is an idea that is not thoroughly explored in our historical education. I think it’s a shame, because this book touches on many insights as to how that tension went on to form this nations character in ways that are still felt today. The title itself is something of a dramatic reveal as Roger tells the reader that even as a baby, Thomas Jefferson carried on a pillow borne by a black slave. It is a powerful image, and a metaphor for the often unseen and unrecognized benefit all Americans ( but especially those early Americans and in particular our Founding fathers ) received from the use of slaves from the beginning of the nation.

    It shook me for a moment when I read those words: Our Founding Fathers were shaped and molded by the use of slaves for both good and ill. It was the use of slaves that permitted them time to study and internalize the ideas of freedom and politics. So on one hand we condemn their acceptance of slavery, but on the other, it is highly likely that without slaves supporting them, our Founding fathers may never have been. In a book chocked full of ideas, I think this is one of the most powerful. It recognizes that George Washington, George Mason, Thomas Jefferson, John Adams and all the rest of those great men were strongly influenced by the culture and norms of those times, just as we are in our time.

    To me, the other thing that really stuck with me about this book is the strong sense of patriotism that book is meant to engender. It is a mediation on the idea of patriotism in the face of continued racism and bigotry in this country. The author points out these issues but firmly points out he is definitely an American. An excellent point he makes isn’t whether one sees ones’ self as an American, but how do others see us? More specifically, how would your country of ethnic origin see you? Roger answers that question by relating his experience going back to Africa. He notes that standing on the street corner, he was so indelibly marked as an American, that a random white lady came up to him and struck up a conversation with him about what state he came from. The experience resonated with me as I had a nearly identical feeling when I went back to Vietnam. Even if I were to lose weight, dress shabbier, and do whatever else it took to fit in, somehow I felt unrecognizably American. It was in the way I walked, the way I moved through the crowd, and even the way I stood.

    I think it takes an experience like that to show how much of an American you really are. It is a common feeling these days to feel somewhat alienated from America. It is such a large stew of different opinions and thoughts that it is hard to feel part of the larger whole. That is why I really liked this book. It tackles that feeling in a way that is specific enough to be thoughtful and provoking a strong reaction with clear examples, yet broad enough for anyone to enjoy reading it. Highly recommended.

    June 16

    Channel Master CM7000 Digital Converter Box quick take

    I recently ordered 2 of these devices just in case I needed them for the analog to digital switch. I don’t have any TV’s using antennae but I figured it didn’t hurt to have them, and hey, the government was handing out coupon vouchers for them.

    The coupon vouchers look just like credit cards, and you can use them both in person and online. The included paperwork doesn’t really explain it like that, but they are essentially gift cards/credit cards pre-charged with $40. Super easy, the only thing you have to remember is to use them before they expire. The date is pretty short, so if you got em, use em.

    I ended up picked the Channel Master because it was pretty much the best convertor for the price. There was loads of reviews on the web and Consumer’s Report did a pretty extensive comparison review. I only looked at ones with the best picture quality. On the review, it has a list price of $80, but it can be found cheaper online. I took a quick drive over to Fry’s, but they had it for $70 and I didn’t want to spend $60 ($30 x 2) for them. I bought mine from Solid Signal who had them for just a hair over $40. The shipping was pretty outrageous at $12 ( And they didn’t even box the damn things!!! They just taped them together! ), but I only paid a hair under $17 for both of them.

    Unfortunately, I was hoping to test the features and picture quality more thoroughly, but the boxes themselves cannot process a cable signal. They ONLY process over the air, so unless I wanted to bust out a pair of bunny ears, it was hopeless. I checked out the guide a bit, and while the picture seemed a little fuzzier with it, I was doing double co-axial cable which was gonna put the hurt on my signal quality anyway. The guide seemed adequate, I’d say my main gripe was that it was pretty obtuse how to navigate around. I scanned the entire channel gamut but nothing popped up. Overall I was pretty satisfied though. The packaging came with a pair of AAA batteries and also a very small section of co-axial cable to help you out to hook up the TV. I loaned the other one to my sister, so when she gets it hooked up, I may update this quick take. So if you’re in the market, I digged the Channel Master. Of course, the better option is to get a new TV! You’ll save space and draw quite a bit less power. Sure sure cathode ray tubes have their benefits, but not for TV. Get with the future people! :)

    May 28

    Letting go is hard to do

    My mom just smashed all my wine bottles and attacked me with a knife, then a pair of scissors. And my fiancé and I are taking a break. Who knows what will come? Life goes on.

    May 09

    Designing and implementing a Simpletron using C#

    The last problem in Chapter 8 of Deitel’s Visual C# 2005: How to Program 2/e is to design and implement a simple machine-language processor called a Simpletron. I won’t go into the basics of the machine in great detail, since the book does so at great length. It is a really interesting problem, but there isn’t a great deal of information regarding C# implementations on the web, so hopefully this post will serve to fill part of that void. There are 2 parts to the problem:

    1) Implement the Simpletron class in an extensible manner – This teaches you how to use Arrays in yet another way. Essentially in this problem, the Arrays are used both as RAM ( memory ) and as registers to hold changing values.

    2) Enhance the Simpletron by adding the capability to perform additional operations – This portion of the problem forces the student to understand the nuances of low-level CPU operation.

    I’ll only be posting code for part 1. Since this problem is often used in academic settings, I won’t be posting the other code, but what I’ll do instead is post errata I’ve found in the advanced problem, and my own interpretations of the enhancement requests. I found the wording in the book to be quite vague regarding how far to go with the modifications, so I hope this proves helpful. I searched fruitlessly for many hours with finding anything, so maybe someone else will be spared my pain. :)

    Code outline for the Simpletron:

    namespace Exercise8._32 {
        class Simpletron {
            // Input/output operations
            private const int READ = 10;
            private const int WRITE = 11;
    
            // Load/store operations
            private const int LOAD = 20;
            private const int STORE = 21;
    
            // Arithmetic operations
            private const int ADD = 30;
            private const int SUBTRACT = 31;
            private const int DIVIDE = 32;
            private const int MULTIPLY = 33;
    
            // Transfer of control operations
            private const int BRANCH = 40;
            private const int BRANCHNEG = 41;
            private const int BRANCHZERO = 42;
            private const int HALT = 43;
    
            private const int SIZE_OF_MEMORY = 100;
            private const int MIN_MEMORY_RANGE = -9999;
            private const int MAX_MEMORY_RANGE = +9999;
            private const int STOP_PROGRAM = -99999;
    
            private int accumulator;
            private int instructionCounter;
            private int operationCode;
            private int operand;
            private int instructionRegister;
    
            private int[] memory;
    
            public Simpletron() {
                memory = new int[SIZE_OF_MEMORY];
                accumulator = 0;
                instructionCounter = 0;
                operationCode = 0;
                operand = 0;
                instructionRegister = 0;
            }
    
            public void Run() {
                DisplayWelcomeMessage();
                UserDialogue();
                ExecuteProgram();
                DisplayMemoryDump();
            }
    
            private void DisplayWelcomeMessage() {
    
            }
    
            private void DisplayMemoryDump() {
    
            }
    
            private void UserDialogue() {
    
            }
    
            private int ValidateUserInput(int currentUserInput) {
    
            }
    
    
            private void ExecuteProgram() {
    
            }
    
            private int EvaluateOperationCode(int currentOperationCode,
                                              int currentOperand) {
    
            }
    
            private int AccumulatorOverflowValidation(int currentOperationResult) {
    
            }
        }
    }
    

    You can see that I have a Run method that is the primary execution method inside the class. There are also various validation methods that are called inside of some of the major methods. This code could have been placed inside of the main methods, but since it is called by many times, I thought it was wise to separate this code out. I would like to say that the particulars of the implementation aren’t super important – in this part of the problem, the main issue is the design. Another important thing to remember is to consistently use Test Driven Development. After each piece of code was created, I would run a few programs stressing those functions to ensure that the program was working correctly. It’s important that you test at least 3-4 variations of data to make sure that you are not designing only for a subset of your data.

    I could have automated the testing by creating an overload of the run method that bypassed the userinput method, but for the scale of this project, performing the testing manually wasn’t time intensive. I would like to stress that had we wanted to continue modifying the program, we would have wanted to create automation at that point.

    Okay, part 2 – the advanced section. I’d like to point out an errata on page 407: “In Exercises 25.10 and 25.11, we propose building a compiler that converts programs written in a high-level programming language (a variation of Basic) to Simpletron Machine Language. Some of the following modifications and enhancements may be required to execute the programs produced by the compiler: “ Well, I looked these problems up hoping for some clarification, but they don’t exist. :)

    I believe requests a), b), c), and e) to be pretty self-explanatory. Below is some additional information that I believe will help with the remaining modifications.

    d) Modify the simulator to use hexadecimal values rather than integer values to represent SML instructions – This modification is kind of weird, because if you followed the book, you almost certainly used an integer Array as your memory structure. It’s also kind of redundant to ask us to store things as Hex, since the computer is doing that anyway, but to shoehorn hex into your existing memory array would be a nightmare. And to what end? So I ended up interpreting this request to mean that on output, you should display all memory registers as Hex. I also added a section to the beginning asking the user which format: Decimal or Hex they would prefer. I know for troubleshooting I wanted Decimal since that is how I wrote the programs!

    f) Modify the simulator to process floating-point values in addition to integer values – This one is a doozy. There are 2 possible ways to interpret this – Add a double memory array, accumulator, and a whole new set of instructions. The other is to continue to use integer memory and registers and instead encode the floating point data to fit within an integer field. I used the latter interpretation, since the former is kind of cheesy. One point in favor of the latter is that it will teach you an important lesson about CPU’s. Hint: Up until Intel’s 386 DX processors, all CPUs only had a single accumulator register. I really enjoyed this modification.

    g) and h) Modify the simulator to handle string input – The only thing I need to mention is pay attention to this sentence in the clue the book gives you: Each two-digit integer represents the ASCII decimal equivalent of a character. That is the most important sentence in the clue. If you look up an ASCII table, you’ll see that they all have decimal representations, but that there are some with more than 2 digit representations. For instance, “h” or lower case h, is 104, so it’s impossible to fit into a 2 decimal bit memory location. If you did part f as I did, this problem might be easier for you, since similar thinking ( i.e. encoding/shifting ) is required.

    Hope this helps! I had loads of fun solving this problem, and I hope that these hints help you focus on the important parts of the problem.

    May 01

    Update on Microsoft Wireless Laser Mouse 7000/8000 not charging issue i.e. the flashing red light

    In my original posting on problem charging, I had focused on the 8000 series. Recently however, I found this blog post on the same issue of the mice not charging but it appears this issue is in the 7000 as well as and 8000 series mice. It appears Peter’s mouse, a 7000 series, doesn’t have a sensor as mine did, but it still doesn’t charge. I’m just going to repost my comment on his page, since it pretty much sums up everything:

    I have also posted about this issue in the 8000 series mice. I’m not sure if your situation is specific to the 7000 series or if there was a hardware update, but there is definitely a switch in the 8000 series mouse I fixed. I might guess that they did an update to remove the completely superfluous sensor, but didn’t account for this additional problem in the revised design.

    I hope it’s simply a different design, because if it was an update, it was again not well tested.

    April 30

    Making Homes Affordable Program can help you or maybe not…

    The government is currently trying to help out distressed home owners by providing assistance either through re-financing the current loan or modifying the terms of the existing loan. They have put up a handy website at http://www.makinghomeaffordable.gov and at the website there is a quiz to see if you are eligible or not. Okay, thus far everything is great. The quiz is only 5 questions:

    image

    So great! According to this, I’m eligible for help! They also give you the ability to look up your lender to call them.

    image

    My loan is through Bank of America so I went to their page at http://www.bankofamerica.com/mha/ to get the 411. Thus far everything is going well. I finally get a hold of a loan officer after getting transferred around 2 times ( don’t get discouraged ) and I find out I don’t get any help.

    What?

    Here is the lowdown. Currently the MHA program is in Phase I. What does that mean? It means:

    1. You need to have a loan through Freddie Mac or Fannie Mae. Period. Your loan can be owned and serviced by a different company. To get government assistance, your loan needs to be owned AND serviced by Freddie Mac or Fannie. My loan is owned and serviced through Bank of America, so no dice.
    2. What happens now? Well, in Phase I if you don’t get any help from the government you can get help through your bank…if you have a job. Unemployment does NOT count as income, so they will not give any assistance. If I am unable to make payments in the future, I can let them know and they’ll try to do something at that point.

    So basically I’m SOL until I either find employment or the MHA moves on. Argh! I love how my tax dollars paid for all those banks but now I’m locked out of the programs that are suppose to help people like me out. Our government at work….:(

    April 26

    Things I learned about comparing two poker hands in C#

    I’ve been going through Visual C# 2005: How to Program, 2/e and I recently got stuck on problem 30 in chapter 8. Chapter 8 deals with arrays and problem 30 is an innocent thing asking you to compare 2 hands of poker. Well, I spend a good month fucking around with this problem thinking to myself, there is NO WAY it should be this convoluted and hard. After finishing it yesterday, it turns out it is. The Coding the Wheel site has an entire page devoted to poker hand evaluations and my code looks remarkably like the naive implementation. My implementation is more difficult because beyond the initial hand evaluation, it tries to compare the hands and account for ties all the way down to a perfect tie, which in poker results in a pot split. I always thought suits would be used to break ties, but that isn’t an official rule according to Wikipedia. I found a few things significantly hampered me in my particular implementation.

    1. I should have developed using TDD. I developed the test code below AFTER I had written a significant portion of code, which killed me since I had to scrap a lot of that poorly tested code and rewrite my algorithms. I’ve posted a portion of the test code below. The only thing of note here is that I created an Enumeration called Hands which contained all of all the poker hands which I passed into this method.

      BuildHand method of DeckOfCardsTest class
       private void BuildHand(Card[] pokerHand, Hands typeOfHand) {
                  int counter;
      
                  string[] suits = { "Hearts", "Diamonds", "Clubs", "Spades" };
                  string[] faces = { "Ace", "Deuce", "Three", "Four", "Five", "Six",
       "Seven", "Eight", "Nine", "Ten", "Jack", "Queen", "King" };
      
                  // designate default suit 
      for cards as Hearts and default face as deuce
                  string testSuit = suits[0];
                  string testFace = faces[1];
      
                  Card card;
      
                  switch (Convert.ToInt32(typeOfHand)) {
                      // Create high card hand
                      case 0:
                          testSuit = suits[0];
                          for (counter = 0; counter < pokerHand.Length; ++counter) {
                              switch (counter) {
                                  case 0:
                                      testFace = faces[2];
                                      testSuit = suits[3];
                                      break;
                                  case 1:
                                      testFace = faces[9];
                                      testSuit = suits[1];
                                      break;
                                  case 2:
                                      testFace = faces[12];
                                      testSuit = suits[2];
                                      break;
                                  case 3:
                                      testFace = faces[4];
                                      testSuit = suits[3];
                                      break;
                                  case 4:
                                      testFace = faces[random.Next(4,9)];
                                      testSuit = suits[1];
                                      break;
                              }
                              card = new Card(testFace, testSuit);
                              pokerHand[counter] = card;
                          }
                          break;
                      // Create pair hand
                      case 1:
                          int pair = random.Next(0, 7);
                          for (counter = 0; counter < pokerHand.Length; ++counter) {
                              switch (counter) {
                                  case 0:
                                      testFace = faces[pair];
                                      testSuit = suits[0];
                                      break;
                                  case 1:
                                      testFace = faces[pair];
                                      testSuit = suits[1];
                                      break;
                                  case 2:
                                      testFace = faces[7];
                                      testSuit = suits[2];
                                      break;
                                  case 3:
                                      testFace = faces[9];
                                      testSuit = suits[3];
                                      break;
                                  case 4:
                                      testFace = faces[10];
                                      testSuit = suits[1];
                                      break;
                              }
                              card = new Card(testFace, testSuit);
                              pokerHand[counter] = card;
                          }
                          break;                
    2. I REALLY should have implemented a HandOfPoker class instead of using a Card array directly. This would have cleaned up my code quite a bit because each HandOfPoker object could have contained the frequency arrays I was using to store my face and suit counts. I also could have stored the hand results directly as properties instead of having to immediately compare after evaluation. See some of my ugly code below. Notice the massive redundancy as I compare the two hands. Sorry about some of the code getting cut off, but I can’t make it appear without ruining the formatting which will make it impossible to read. It’s not really for analysis, but to demonstrate what I could have improved.
      CompareTwoHands method from DeckOfCards class
      public void CompareTwoHands(Card[] firstHand, Card[] secondHand) {
                  Hands firstHandResult;
                  Hands secondHandResult;
      
                  int counter;
                  int cardCounter;
                  int highestCardCount;
      
                  int firstHandHighCard = faceValues.Length;
                  int secondHandHighCard = faceValues.Length;
      
                  // for each hand we will create 
      a frequency array for the faces (13) and suits (4)
                  int[] faceCountsFirstHand;
                  int[] suitCountsFirstHand;
      
                  int[] faceCountsSecondHand;
                  int[] suitCountsSecondHand;
      
                  faceCountsFirstHand = CountFaceCards(firstHand);
                  suitCountsFirstHand = CountSuitCards(firstHand);
      
                  faceCountsSecondHand = CountFaceCards(secondHand);
                  suitCountsSecondHand = CountSuitCards(secondHand);
      
                  firstHandResult = 
      		AssessHand(faceCountsFirstHand, suitCountsFirstHand);
                  secondHandResult = 
      		AssessHand(faceCountsSecondHand, suitCountsSecondHand);
      
                  if (firstHandResult > secondHandResult) {
                      Console.WriteLine("The first hand won with "
       + DisplayHand(firstHandResult,faceCountsFirstHand,suitCountsFirstHand) + 
      " beating " +
       DisplayHand(secondHandResult,faceCountsSecondHand,suitCountsSecondHand));
                  }
                  else if (firstHandResult < secondHandResult) {
                      Console.WriteLine("The second hand won with " + 
      DisplayHand(secondHandResult,faceCountsSecondHand,suitCountsSecondHand) + " beating " +
       DisplayHand(firstHandResult,faceCountsFirstHand,suitCountsFirstHand));
                  }
                  else if (firstHandResult == secondHandResult) {
                      switch (Convert.ToInt32(firstHandResult)) {
                          case 1:
                              highestCardCount = 2;
                              for (cardCounter = highestCardCount; cardCounter > 0; --cardCounter) {
                                  for (counter = faceCountsFirstHand.Length - 1; counter > 0; --counter) {
                                      if (faceCountsFirstHand[0] == highestCardCount || faceCountsSecondHand[0] == highestCardCount) {
                                          if (faceCountsFirstHand[counter] != faceCountsSecondHand[counter]) {
                                              firstHandHighCard = faceCountsFirstHand[counter];
                                              secondHandHighCard = faceCountsSecondHand[counter];
                                              cardCounter = 0;
                                              break;
                                          }
                                      }
                                      else if (faceCountsFirstHand[counter] == highestCardCount || faceCountsSecondHand[counter] == highestCardCount) {
                                          if (faceCountsFirstHand[counter] != faceCountsSecondHand[counter]) {
                                              firstHandHighCard = faceCountsFirstHand[counter];
                                              secondHandHighCard = faceCountsSecondHand[counter];
                                              cardCounter = 0;
                                              break;
                                          }
                                      }
                                  }
                                  if (counter == 1 && firstHandHighCard == secondHandHighCard) {
                                      highestCardCount = highestCardCount - 1;
                                  }
                              }
                              break;

     

    But you  know what? After doing all this, I’m pretty content with finishing it. I’m really fired up about what I learned, and after looking over some of the better solutions on Coding the Wheel, I realize that my solution is hampered by my tools, in this case my tool being the data structure Array which I’m being asked to use exclusively ( and I don’t really know anything else either. :) ).

    Hope this helps someone else trying to learn about this problem!

    April 25

    How long will it take for the Washington State Department of Licensing to renew my expired tabs?

    20 days.

    I have been driving around in mortal fear of the police since April 1st. In all the hustle and bustle of getting laid off, I totally forgot to renew my tabs on time. I sent in the payment on the 6th by mail and I just got them today ( the 25th ). So if you let your tabs expire, drive slow, don’t run any lights, and watch out for cops because you’ll have to wait 20 days to get your new tabs. It might be faster doing it online, but you have to pay a surcharge, and I was trying to save some dollars. Was it worth it? I dunno, but I got real good at identifying cop cars. :)

    April 21

    Signing up for COBRA: Yes! ( or Thank you Obama and the Country for passing the American Recovery and Reinvestment Act (ARRA) 2009 )

    Since my last day at Microsoft was the 23rd of March, one important decision I had to make was signing up for COBRA. If you don’t know, COBRA stands for Consolidated Omnibus Budget Reconciliation Act. There is lots of information available, but in summary, it’s a temporary form of health coverage that you can elect to have until you are able to obtain insurance again through your employer or through an individual plan. In the past, it was difficult to choose to select since even for a single guy like myself, COBRA normally would have cost $323.00/month. That’s right, for a single month’s of health coverage for a single, healthy male, it would cost over three hundred dollars! That’s not even including dental which will add between $20-50 to the final price. Of course, you could always try to get an individual plan, but the coverage is usually pretty terrible, and of course you have to submit to a test for pre-existing conditions. Hopefully you’ve never had a lapse in coverage, but if you have, then you’ll probably be rendered ineligible or priced out of reason.

    Let’s assume you qualify, here are the rates for a single, non-smoking male around 30 years of age through Group Health Cooperative:

     

    Plan Name and Deductable

    Coinsurance %

    Office Visit

    Monthly Cost

    Balance 5000 Catastrophic Plan

    50

    $30

    $62

    HSA 2000 Catastrophic Plan

    10

    10%

    $71

    Welcome 3500 Plan

    50

    50%

    $73

    Balance 2500 Catastrophic Plan

    40

    $30

    $75

    Welcome 1750 Plan

    40

    40%

    $89

    Balance 1500 Plan

    30

    $30

    $192

    Balance 1000 Plan

    20

    $30

    $228

    Welcome 500 Plan

    20

    $30

    $262

    As you can see, there are certainly much cheaper plans, but you’ll also notice that the coverage is sketchy at best. Although you have health insurance, having a $2500 deductable on top of $30 co-pays and a $75 per month fee isn’t exactly reassuring. It make sure you have coverage for a single catastrophic event, but you’ll be buried in debt after 2 years of this. And you can see that the better plans have monthly costs that rise sharply – the first plan to hit a $1500 deductable is almost two hundred a month. Still cheaper than COBRA, but the coverage and overall costs with Coinsurance and deductable is much worse than most employer plans.

    Well, what to do? Well Hallelujah! In 2009, President Obama and the American People passed the American Recovery and Reinvestment Act (ARRA). The long and the short of it means that if you are an eligible worker ( getting laid off from Microsoft counts ), you are on the hook for 35% of your COBRA premium for 9 months. Through a combination of government dollars and whatever else, the other 65% is paid for. This means that the $323.00 per month a single male like myself would normally pay gets a subsidy of $209.95 bringing the total cost down to $113.05!!! That’s lower than the Balance 1500 plan and offers significantly better benefits! On top of that, it’s now SUPER easy to sign up for COBRA benefits. Just head on over to http://cobra.ehr.com. Your separation paperwork from MS should have your User ID. To create a new user id, just click on the link above the login text boxes:

    image

    Here is the tricky part. During your user creation, there will be a screen asking you to accept the ARRA money. DO IT!!! It’s your ONLY chance to accept it. Once you waive it, you are done! I’m sure there is a way in case you accidentally click no, but don’t cause yourself pain. Getting laid off is hard enough already. Just be careful and select the right option!

    Once you are logged in, you’ve only got 1 option:

    image

    Just proceed and setup your COBRA enrollment. The only other tricky part is your subsidized cost won’t show up until you enter in all your information. So don’t get freaked out by the high cost, it will show your actual cost in the final screen. One more word of advice, when you print the summary for your records, select Landscape otherwise part of the data will get cutoff.

    So there you go! Your government dollars at work! I hope this helps someone get the health coverage they need at a price they can afford until they get a job. I know I am really thankful for this.

    April 16

    Persepolis (2007) Film review

    Last night my fiance and I watched Persepolis, an autobiographical film by Marjane Satrapi based on her graphic novels. I had heard about this film on the New York Times when it had been released and was intrigued by the story, but I never had a chance to see it. Enter the Netflix, and we had it delivered to our doorstep. My short take on it would be that I really liked the film, but it was really sad.

    I was really shocked that I probably learned more about Iran’s history in the movie than I had in my entire U.S. education. I’m a little ashamed about it, and I went to Wikipedia to verify some of the larger details. From what I can gather, its a mostly accurate depiction of the history of Iran during that time period. It’s pretty sobering stuff, with the ultimate kicker being that even though our country has an IMMENSE dependence upon this nation, and has participated in major political events, it is nothing more than a footnote in our history books, if that. I don’t ever recall learning about the Middle East during any of my school classes or at University. I think that it is remarkable that we should know so little about this nation, and continually wonder at our continued inability to understand them, or even interact with them in a reliable manner. Look at how well we understand Canadian or British history and we still have issues understanding them.

    That other thing that really stood out to me was the similarities in the revolution with Vietnams. Reading some more about it, I know that some of the fundamental reasons were different, but in essence I believe that the people rebelled in the hopes of something better and were only given an even worse country for their efforts. In a way, I felt a kinship with the Iranian people I don’t think I would have felt without watching the movie. If you aren’t from a country that was torn by revolution and clouded over by disappointment, I think it’s hard to have that same feeling, but if you are, then this movie will really speak to you.

    Two thumbs up.

    April 08

    A Tale of 2 Batteries

    If you read my HTC Vox S710 review, you may remember that one of my major gripes with the phone was the terrible battery life. Being the enterprising individual I am, I started checking out alternatives to getting a new phone since I wanted to save money. If you check out the official HTC replacement battery options, you’ll see that they cost around $40.00 USD. Now, considering you can pick up some cheap dumb phone for that much, it’s not a very appealing option. If you dig deeper you’ll find a whole mess of battery options for dirt cheap. I mostly looked on eBay, but you can find similar items online.

    I chose eBay because the prices are even cheaper than online, more like 8 dollars. I won my auction for $7.90 USD and free shipping! I admit, I was trepidatious about the whole thing, but reasoning if it was totally bogus, the worst off I’d be was 8 dollars poorer, I pulled the trigger.

    It arrived in a non-descript manila envelope in some bubble wrap and that’s about it. Looking at it for the first time did not leave a good impression. Janky as hell is about the best way to describe what I felt.  I mean, look at these 2 shots comparing the new (left) and old (right) batteries:

     

    HTC S710 old and new batteries 1

    HTC S710 old and new batteries 2

    I mean, jeez! The new battery was about as stiff as a wet piece of paper and looked like its contents were about ready to come out if I looked at it wrong. To top it off, its poor construction made its shape slightly larger than the actual battery opening, and in trying to force it in, I just about tore off the plastic end cap on one end. Take a look!

    HTC S710 old and new batteries 3

    At this point I was scared that if I put the battery into my phone it would spontaneously combust, sending me to an ignoble end to save a measly 30 dollars. Never being one to be accused of too much caution, I stuffed the battery in and hit the power button.

    It turned on and buzzed in my hands, going through its normal boot up without any issues.  I sighed with relief and once the phone was done with its ( painfully slow ) startup, the phone was sitting there with 3 bars of juice. Nothing to get too excited about, because my other battery said that too, only to fuck me right in the ass as soon as I tried to do anything such as place a call, check e-mail, look of the time, etc. Relieved that the phone simply didn’t blow up, I got ready for bed and set the phone down next to my bed. Here was the true test. After sitting around all night, if I could get up and check Microsoft’s stock and the New York Times from bed, then the battery would be declared a success. Sleep….

    Next morning I checked the phone. 2 bars! Let’s see what it had. At this point, the phone floored me. It took everything I had and laughed. Gmail, Wall Street Journal, New York Times, stocks, I even turned on the Wi-Fi and browsed some sites. The battery life hardly budged! Not believing it I carried the phone with me all day and evening and charged it over night to 100%. Damn! The phone was AMAZING! I had long phone calls, walks in the park, internet, e-mail, everything! The phone would even safely go for 2 days on a single charge! In fact, the battery life was so good that its made my happy with my phone again.

    So many of the weaknesses of the phone become more tolerable with good battery life, or conversely they become worse with poor battery life. Think about it, if loading a web page too a long time AND sucked your battery dry, would you get pissed? But in the same scenario, if it took a long time, but didn’t drain any life, sure it would be annoying, but not a killer in the same way as the former scenario. I would recommend ANY Windows Mobile user to consider getting a new battery if they are unhappy with the phone. You can thank me later. :) In case anyone is interested, I used this seller on eBay: http://myworld.ebay.com/centexwireless.

    April 07

    Floods and The Great Seattle Move of ‘05

    More photos from my past. These are from my move to Seattle. Check out the album!

    1) Flooded house

    2005 was a CRAZY year for me. I had just quit my job at Lockheed Martin and was getting ready to move to Seattle. I had flown my friend Sean Fitzgerald out to help me move and drive cross country when just before leaving, one of the worst floods to hit Upstate New York in over 10 years. My friends put us up until the waters receded, but in spite of our preparations, the flooding in the house hit all but the highest floor. You can see some pictures of the house, but here is the basement afterwards:

    Post Flood Basement

    The mud was an inch think and was infested with sewage and whatever else you can think of. My friends later told me the entire house was condemned and torn down. I suppose its hard to imagine if you haven’t gone through it, but a flood is probably one of the worst things you can experience. The worst part about the flood is what it does to things after the waters recede. Anything touched by the water will be damaged and it leaves behind a horrible stench as the nutrient rich mud deposited by the flood waters coat everything in sight.

    2) KPOF Catholic Radio in Denver

    So after leaving Upstate New York, Sean and I have an uneventful drive to my mom’s place in Michigan. After a few days of R&R, we head off to our next destination: Denver. The purpose of this visit is mainly to meet a girl my mom was trying to set me up with. That is a story for another day, but to get to the point, right before we head into Denver proper, we spy a MASSIVE red building. I head off the freeway to check it out. Apparently its called “The Big Red Castle” and it runs a radio station. We didn’t know that at the time, but the building is absolutely gorgeous and in the middle of nowhere. Totally awesome.

    The Big Red Castle KPOF Radio Studios

    3) Denver Proper

    We stayed with my mom’s good friend in Seattle. During the evening I was suppose to hang out with the girl, but during the day, she was busy at school, so Sean and I took a tour of the town. Did you know Denver has a Mint? Sorry, no pictures inside the mint, it’s not allowed for security purposes. And a pretty awesome Capitol building if I may say so myself. My friend’s mom has a super nice place and treated us like son’s coming home from war. A bit out of the way if you ever drive across the U.S., but I liked Denver.

    The Capitol Building:

    Capitol Dome

    Denver’s Public Library:

    Me at the Denver LIbrary

    Denver has a GIANT amphitheatre in the center of the downtown:

    Top of the world ma!

    4) The Flaming Gorge and The Craters of the Moon

    I’ll never know how we ended up in Flaming Gorge. I guess from what Sean and I can remember, we were at a gas station or an Arby’s or something, when this older guy, maybe early 40’s spins us a yarn about this gorge in the West that’s so fucking beautiful, at sunset it looks like its on fire. So it gets the name Flaming Gorge and done deal, right? Well, apparently the Flaming Gorge we went to was a desolate wasteland populated by dead cows, and crows. Maybe we weren’t suppose to come in the winter time, or maybe we went to the wrong Flaming Gorge? I dunno. But in the end, it was a good time.

    Flaming Gorge

    The Crater’s of the Moon was Sean’s idea. Apparently he and Sarah had wanted to see it on their road trip into Seattle, but had missed it. I think it probably would have been a great idea, but when Sean and I went, the park was completely deserted. In fact, in retrospect, I think the park was probably closed to the public entirely and somehow we just waltzed into the place. It was pretty eerie, the place had not a single other visitor and we just had free reign of the place. It got boring in the sameness, but a strange sight to behold at first glance.

    Craters of the Moon

    One final thing. In my photos I found an old picture of my beloved CRX. 1989 Honda CRX Si with 5-speed transmission. I learned so much about cars on that thing. I’m glad there was an old shot of the car in its glory. I sold it to some boy racer kids later on and they turned it into some The Fast and the Furious looking thing, but here she is in her stock glory.

    Farewell CRX

    We totally took the shot as a total fluke. We were talking about stuff when Sean mentioned his brother always took a picture of his car wherever he went. I did NOT do this, but this one shot was taken on that note.

    March 31

    Setup your computer with Windows XP Professional for use with Remote Desktop

    I used to never believe in laptops, but I got one from work and after a long time, I think I started using it out of pure necessity one day. The more I used it though, the more the form factor grew on me, and at the end of my tenure at MS, I was using it almost constantly. I think its the portable nature of the power that drew me. Sure, in this day and age, its specifications were almost laughable:

    Toshiba Portege: 1.7 GHz Pentium M, 2 gigs of RAM, 60 Gig harddrive, 1400x900 (4:3) resolution on a 12.1” screen.

    But I’ll be damned if that thing didn’t do everything I needed. I compiled the programs I needed just fine, and since I didn’t play any games, the only other thing I was doing on it was e-mail and web surfing. After Youtube added its HD resolution format the CPU started showing its age, but the spacious ( for a laptop ) screen resolution and excellent brightness made up for it. So why am I talking about all this now? Well, I don’t have a laptop anymore, but I can still bum a terminal or laptop off people when I at different locations. So I decided I needed to access my computer while I was out of the house. Its pretty simple, so let’s get to it!

    What do you need?

    • You’ll need an active, semi-permanent web connection ( you can’t power down your machine )
    • Windows XP Professional ( You can hack XP Home edition, but I haven’t done that yet )
    • Admin access on your computer AND your router if you have one.

    Credit where credit is due: I looked at the ScrewTurnWiki for the steps. The link to their article is here. Microsoft also has some guides to installing remote desktop here. Now you must be asking: Huong why are you writing up the steps then? Because I’ll have some specific steps for my router, the D-Link DI-524 that are not in their write ups.

    What to do:

    1. Open up Control Panel –> System ( This may be inside Performance and Maintenance ).image
    2. Select the Remote Tab and you’ll see the Remote Access options:image
    3. You’ll want the bottom checkbox marked that says Allow users to connect remotely to this computer. Also, If you want other people on your computer to be able to Remote Access the machine, you’ll need to add them in the Select Remote Users screen. If you are not sure you already have access, You can click the screen and it will tell you who has access:                                                                                blog picture
    4. Once you are happy with everything, you’ll need to click OK. Windows will setup your WINDOWS firewall for you, but now you need to setup your router. My instructions will be specific for my router. So go log into your router now.
    5. By default, most routers default to 192.168.0.1. If not, you’ll need to find out what it is. Type that IP address into your browser and you should get a prompt that looks like this:image
    6. If you don’t have a router, you’re done! You should probably get one though, because now your computer is even MORE vulnerable to the internet, and anyone can access your machine now if they figure out your password.
    7. If you’ve been following the ScrewTurnWiki, you’ll know we are here to enable the ports in the router and to direct the traffic to your computer. You could always hope the default settings works, but let’s not. The main screen looks like this:                     image
    8. Select the DHCP button. What were are going to do here is give your computer a permanent IP assignment based on the MAC address of the LAN card. Sounds complicated but its easy!                                                                                         blog picture
    9. Once you’ve picked the right MAC address, Select Enabled. Then type in a name ( the same name as the computer you have Enabled Remote Desktop to is a good idea ). Now select an IP. I don’t know what your router looks like, but usually 102 or greater is usually a safe bet. Then click the Clone button and it will copy the MAC address for you from the dropdown menu. Click Apply. After you click Apply, the router will turn it self off and reboot. This will take a while and it will kill you internet, so don’t get impatient. Once its done rebooting, your computer will now have a permanent IP assigned to it by the router.
    10. Now click on the Advanced Tab up above:                                                              image
    11. Some routers have Port Forwarding, but our router has something called a Virtual Server. For the purposes of Remote Desktop, they do the same thing, so don’t be confused. What we are doing here is having the router always send Remote Desktop communication to our specified computer. What you’ll want to do is Select Enabled. Type in a name ( Remote Desktop is a good idea ). For the private ip, you’ll want to give it the IP we assigned in the last section. Note that here you’ll need the entire IP instead of just the last digits ( i.e. 192.168.0.XXX ). Leave the next field at TCP. For the public and private ports, assign 3389 and then click always. Select Apply.
    12. Voila! Your computer is setup for remote desktop. Note you’ll need your computer’s IP. As mentioned in the wiki, you can use http://www.whatismyip.com/ to get your IP. You can also setup a DNS and have a friendly name, but I haven’t done that you. When I do, I’ll report back here. For now, enjoy your computer from anywhere! I know it’s been very helpful for me.
    March 26

    All that glitters is not gold…

    There is a great Kanye West song called Family Business off his album The College Dropout, and one lyrics really hits me:

    As kids we used to laugh,

    Who knew that life would move this fast?

    Who knew I’d have to look at you through a glass?

    My dad passed away on July 8th 2003 after being involved in a horrific car accident on the way to Tai Chi. My mom was in the car and survived, but with some severe injuries that she still hasn’t fully recovered from. After that, it became customary to visit home to take care of my mom and we’d also visit his grave. You’d think that my dad dying would have brought us together, but for us it didn’t. At the time I blamed my brother for things, and he was pretty weird. I’m not going to get into the stuff he did, but looking back, I just think that was his way of coping. I think we justify some things because we feel like we always have more time to make things right.

    Two sons

    So it makes me really sad to look at this photo. How was I to know that this is the last photo I’d ever take with my brother? How true the lyrics to the song. I sometimes wonder what he would have done different had he known how fast life moves. I wonder what he would have felt had he known that I’d be looking at him inside a coffin almost exactly 1 year later. We never know what the future brings.

    2004 all over again in 2009

    I’m almost finished processing all of my photo’s that were taken in 2004. W00t! I hope all my friends enjoy these photos that I’ve been hogging all these years. It has been immensely satisfying getting these out, and it has really been a trip down memory lane. For those of us who grew up in the US, I think Christmas has to be one of the more memorable holidays, and this photo had been hiding away all this time:

    Erik, Laura, Zak, his wife, me, and Adam

    I promised I’d give a rundown after adding several photo albums, so what better place to start than with this photo.

    1) Christmas at Erik and Laura’s House

    I was supposed to fly home when a massive snow storm basically destroyed all the airports in the entire North East. Erik and Laura happily put me up at the last minute so I didn’t have to spend Christmas alone with my cats. :) Her brother Zak also was there with his wife and aside from the happy times exchanging gifts, I distinctly remember partaking of more than a few games of Homeworld 2 against Erik and Zak. It’s times like this that makes me glad for the photos I took. I hadn’t exactly forgotten it, but seeing the pictures made the memories so much more vivid for me. A real gem amongst my older photos and one’s I’m happy to put up on my blog.

    2)  Picnic at Gary and Sandra’s House

    Little did I know that I’d come back to this house 4 (!!!) years later as a groomsman, but as Conan would say, that is a tale for another day. These photos are noteworthy because they feature Sandra happily showing off her garden, otherwise a mundane picnic in most respects.

    3) Lunar Eclipse of 2004

    All of the photos sucked except for this one. Not really accustomed to shooting at night, I didn’t really know what I was doing. Point of fact, I still don’t know what I’m doing, but this photo turned our very nice. :)

    4) Helen and Marty’s House

    Working on these photos was another great recall moment as the evening came back to me strongly. I am pretty sure that I had just bought my camera and was shooting a lot of totally horrible shots, but there are some nice photos in here. These photos also feature my VERY good British friends Kevin James and Kate Fox. At the time, they were together, but unfortunately they have now split. :( Seeing these photos makes me miss them, but it also reminds me of all the good times we had.

    5) My Cats

    This picture is the only picture I have of all the cat’s I’ve ever owned. Starting from the left, it goes: The Cheat, Mimi, The Kitten, and The Creature. It’s kind of sad to think of the 2 missing cats ( Mimi is still around my house, she has gone completely feral though, and The Cheat disappeared in a particularly bad snowstorm ), but looking at this picture makes me think of the innocent times I had as a first time cat owner.

    6) Erik and Laura’s House…again!

    Erik was my best friend back in New York, so I spent many and evening hanging around with him and Laura, eating dinner with them, and playing with their cats. In fact, I got my 3 cats from them in the first place! They have a really interesting house, and these two shots are pretty indicative of the place.

    March 25

    Your life in pictures

    As storage and the cameras themselves get cheaper, we will accumulate more and more pictures. Unfortunately, that means the amount of time we spend editing pictures grows as well. I've got a backlog about 5 years long of photos. I've resolved to work my way through them to try to get to the present, so you'll see more photo galleries being added. You might have already noticed a few new albums being added. A few galleries will get their own posts, but most of these just need a little blurb which I will post after a decent number have been added. So without further ado:

    1) The accidental kitten

    I used to own 3 cats, or maybe they owned me would be a better way to say it. :) I'm down to 1 now :( and how I lost the other 2 is another story, but this one is about the kitten I got by my carelessness. 2 of the cats were girls, and their names were The Cheat and Mimi. Mimi escaped one day and I got her back a little while later, so it didn't phase me at all. I noticed later that she was getting fat and used to tease her about it. One day, while I was taking a nap, I was awoken by the sound of panting. Looking down, I saw a GIANT pool of blood and several very dead looking kittens. The kitten in the pictures was the only survivor. I got Mimi fixed after that. lol. I gave the kitten away to Jason and Peri, a nice couple who later moved to California. The kittens original name was Lover-boy, or Trai Lo(???) in Vietnamese. They renamed him to Bort.

    2) Vancouver with the ex-girlfriend

    My first girlfriend in Seattle. This trip is full of ex's because the other couple sadly split up to. Probably the best thing about this album is the great B&W I took of the mall roof. And it makes my fiance mad at me that I posted the pictures. LOL

    3) Crankworx/Whistler Trip

    Traveled with my sister's family and her husbands dad to a downhill biking event. We also got to see Whistler and walk around the glacier. Pretty fun, and I also got a GIANT handful of condoms that I'm sure shocked the hell out of my mom when she was snooping around my room. Don't ask. Great pictures, and I wish I'd processed some of the family shots. Putting this up made me change my policy of editing photos. What good are pictures if they never have any people?

    4) Skydiving in New York

    Totally amazing, especially doing the Accelerated Free Fall class. That means they jump out with you but you pilot the chute down yourself. Still, it always make me sad looking at these pictures. Mark Lepkowski RIP. I'll always remember him this way.

    March 22

    How to fix build warning: Invalid search path 'C:\Program Files\Microsoft Visual Studio\VC98\mfc\lib' specified in 'LIB environment variable' -- 'The system cannot find the path specified. '

    I recently upgraded from VS 2005 to VS 2008. It was all peaches and cream until I started getting this mysterious error. If you do a search, the MSDN blog will come up with this post.

    Unfortunately, the person writing the blog didn't write the actual instructions in the blog, and the links are totally out of date! What to do??? Fortunately for us, my former team ( Go Brent Serbus, Don Tan, and crew! ) and helpful MVP Taylor Michael come to the rescue.

    http://social.msdn.microsoft.com/forums/en-US/csharpide/thread/c183a076-5d29-44fc-adb5-bd4c6b5b2b59/

    I'll distill his wisdom into some more easily followed steps ( XP, I haven't got on the Vista train yet ):

    1. Go into Control Panel -> System -> Advanced -> Environment Variables
    2. You'll see a variable called LIB. The old entries if you use all the default values will look like something from the Title of the blog post. You should be getting 1 warning per offending entry in the LIB variable.
    3. Delete all the entries that are causing your problems. I know its scary. Take a deep breath and do it. Apparently this is some holdover from VS 2005/2003 that doesn't get updated with the installer/updater.
    4. Restart Visual Studio.
    5. Voila! Your warnings should be gone.

    Hope this helps. It drove me nuts looking for a straight answer.

    March 18

    Why your Microsoft Wireless Laser Mouse 8000 won't charge i.e. Microsoft cuts corners on hardware....again

    I've had the MS wireless mouse and keyboard combo for a while now. It works very well, but one thing always bothered the hell out of me. The battery just wouldn't charge! You'd place it on the cradle and leave, and the next morning, it would be flashing red at you merrily, with no charge. Not just annoying, but productivity killing since I'd have to root around and find my wired mouse. Not my favorite way to start the morning. Poking around the web, I cam across this forum thread:

    http://forum.soft32.com/windows/Problem-Microsoft-Wireless-Laser-Mouse-8000-Bluetooth-ftopict368218.html

    If the above instructions are confusing or elaborate:

    1) Open your battery compartment

    2) Take the battery out and you should see a metal half ring in the bottom of the compartment. This detects if the battery has been seated correctly. This is also what is causing your problems.

    3) The cheapest fix is to jam the battery into the compartment making sure its pressing the switch. Place the mouse gently onto the charger and it should work.

    4) If it still doesn't work, you'll need to copy what the original poster did or get a new "bigger" battery. I know all AA batteries should be the same, but evidently the one you've got isn't big enough. Sorry, sometimes size matters. :P

    As an aside, you know, regardless of my status as an employee, why does MS hardware always have problems? I'm not just talking out of my ass here, here are all the problems I've had:

    1) Xbox 1: DVD drive dies...TWICE! I had to replace both by hand. Thank you Llama and your xbox pages!!

    2) Xbox 360: Red ringed, AND the xbox at work red ringed, AND this DVD drive is dying too. I'm going to pop it open and try cleaning it, but it usually takes 5-10 tries to get my copy of Soul Calibur IV working...my 3rd copy because the other 2 started cracking.

    3) Mouse won't charge because the battery switch is poorly designed and won't recognize battery unless you "wiggle it, just a little bit".

    Maybe I'm being overly hard, but it doesn't take a genius to figure out that you should get better hardware testers looking over your stuff. I have never had as many problems with electronics as I have with MS hardware. The part that kills me is that its so well designed in many other ways. Guess I'm a glutton for punishment....:)

    Relevant portion reposted here ( all credit to detroit doug ):

    (Msg. 9) Posted: Sun Feb 08, 2009 1:15 am
    Post subject: Re: Problem Microsoft Wireless Laser Mouse 8000 - Bluetooth [Login to view extended thread Info.]
    Archived from groups: per prev. post (more info?)


    There is a much easier fix that will only require you to open the
    battery compartment once and only once.
    Microsoft and whomever they have contracted to build the batteries had
    the same issue with the 7000 series as well and this is a fix Ive used
    on all the 7000 series Ive ran across.
    First take a piece of paper and cut a strip slightly under the length
    of the battery itself
    Then wrap this strip around the battery 2 to 3 times and cut off the
    excess length and tape it into place to keep it from unrolling
    Replace battery into compartment and test - it now should be the
    appropriate thickness needed to depress the sensor switch within the
    compartment and verify to the mouse itself a battery is indeed
    installed, THAT is the reason for the flashing red light, Microsoft
    contracted with a company that built a series of batteries that are too
    thin and do not depress the switch and the wonderful QA department never
    caught it and obviously marketing figures it is more cost efficient to
    continue to sell these units with an improperly designed battery than
    re-build and replace all of them already shipped
    Hope that helps
    Doug
    --
    Detroit_Doug

    March 17

    Getting laid off sucks. Getting laid off with outplacement sucks less

    I just finished my orientation session with the outplacement services company Drake Beam Morin (DBM) and was pleasantly surprised. To rewind a little bit here, Microsoft laid off 1400 people in a restructuring and as part of the severance package monies, each of the employees ( myself included ) were given a 16 week period with DBM.

    DBM's mission is to help you help yourself get a job. I thought I knew a lot about job searching, but they really broke things down in a way that made me examine some of the things I'd been assuming. You know, the thing that really knocked me on my heels was how positive everyone there was about me. It made me feel really good, in a way that I hadn't felt for a while, even before the lay off. I almost felt embarrassed, but I needed it. Just like they were straight with me when they told me to drop the whole laid off bullshit. Ione, my counselor, told me that she almost felt like I was sabotaging myself by doing that. That really blew my noodle. Was I? Maybe I'm still blaming myself for getting laid off. There is a lot of things you lean about yourself when something like this happens. It's hard to articulate the feelings that run through you. I'm still dealing with it, and I probably will be for a while. But I think DBM was a great step I didn't know i needed to take to deal with it.

    Best advice I have for those MS people who haven't taken advantage of the service is do it. Its 2 days of your time, and it doesn't cost anything. If you've been laid off elsewhere and you don't have an outplacement service, the best advice I can give you is the really lean on your friends and family. I knew that was what I should be doing, but you know what? We as people know many of things but we don't always use that knowledge. Smoking ring any bells?

    My last day is coming up fast. March 23rd. Damn, 2 months went by like they were nothing. Still interviewing, still looking. Stay motivated! Funny thing happened at the center though. I got to be pretty good friends with the 2 other guys there, and at the end of today's session, Ione was like, I'll see you guys later. And the other 2 guys (Mike and Cliff) responded likewise. But something stuck in my head: The ending of good will hunter. At the end, the best friend of the main character tells him friend he never wants to see him again. Not because he hates him, but because he loves him and we wants him to succeed. By leaving the main character will have fulfilled his dream and potential. So I told Cliff I hoped I didn't see him tomorrow. Because that means he got a job.