Saturday, October 19, 2013

Nexus 4 Default Notification Sound Won't Stop Chiming/Playing after it Starts

The Stupid Problem (short answer below)
In my situation this turned out to be a very stupid problem that I caused myself without knowing it. I changed my default notification sound on my Android Nexus 4 and after I did that, every time the notification started, it wouldn't stop. I thought I screwed something up in my configuration, but I couldn't figure out what was wrong. I started to disable this and that - nothing worked. Then I decided to change the default notification sound again just to test out a different sound...

The Stupid Solution to the Stupid Problem
It turns out that the available list of System Default Notification Sounds contains one obnoxious sound you want to stay away from which is named "Hangout". This sound/chime/tone for some strange reason or another will play for 40 beats by my count (until my screen turned off that is) - chances are it plays indefinitely, but frankly I don't care to find out because it is useless to me as a notification sound. So really the fix here is, don't use that sound, use any of the others just don't use "Hangout".

Reiteration (Short Answer)

  • Problem - Once notification sound starts to play it won't stop
  • Solution - If you have your system default notification sound set to "Hangout", choose something else.


Conclusion
Why Google? Why?

Sunday, September 29, 2013

South Florida First Time Home Buyer's Guide from a Regular Guy

So you are thinking of buying a home in South Florida (SF) huh? Well get ready for a head ache because it is no walk in the park, it is gut wrenching, slow and back stabby work. First thing's first, you need to find a trust worthy Realtor who you think is going to bend over backwards to help you. I had a past experience with an extremely bad Realtor. I have seen the difference between light and day in Realtor-ship with my current Realtor. The right Realtor makes all the difference, so find the right Realtor through friends, family or online recommendations.

Prepare yourself for the overly complicated political world of house hunting and owning a home. When I say Political, I mean in the seller's sense, a governmental sense and in a Bank's sense. Bank's don't care about giving you a good deal, it is all about them, they care about themselves. So a lot of the reasons as to why obtaining a home in SF is so difficult is because of the banks and the other part is the plethora of greedy sellers who were looking to turn a quick profit. It is difficult to find a home that isn't in poor condition both in a physical and monetary sense.

The Ideal Situation
The ideal situation doesn't exist in SF, but ideally this is how buying a house should go:
  1. You obtain pre-approval from a lending institution and you have a pre-approval letter to show the seller's Realtor
  2. Put an offer on a home
  3. After the offer is accepted you enter into a contract with the seller
  4. You select a Title Company
  5. You have to provide an earnest payment (down payment/deposit) to said Title Company
  6. You need to get an inspection done
  7. You need to get an appraisal done
  8. You need to get insurance quotes for home owners insurance and wind/hail/storm insurance
  9. The appraisal comes back at the exact asking value (not likely)
  10. You go into underwriting with your bank
  11. After 30-45 days of nonsense you are approved for your loan
  12. The Title Company tells you how much money is required for closing
  13. You wire the money to the Title Company
  14. You go to closing and sign documents that certify that you now own that property
  15. You go to your new home with a HUD-1 aka Closing Statement
The above steps are the ideal situation to buying a house, however things can go side ways very easily, it all depends on the parties involved.

Involved Parties
There are usually 7 parties involved in the immediate interactions and they are: Buyer(s), Seller(s), Buyer's Agent, Seller's Agent, Buyer's Lender, Seller's Lender and Title Company. There can be a single buyer and seller or multiple buyers and sellers - for all intensive purposes we will assume the singular.

Buyer
This is you and who ever else you want to involve in this dreadful process. You can do a joint purchase with someone else - but if they have bad credit, then it may not be a good idea.

Seller
The person(s) you are purchasing the property from. You do not interact with this person directly often - all interactions happen through your proxy who is your agent aka Realtor. I hope your Seller isn't a jerk, because that does make buying a house a lot harder. I hope you aren't a Jerk - because that doesn't help anyone.

Buyer and Seller Agents, Realtors or Real-estate Agents
These people do all of your talking for you and filter any of your requests, demands or frustrations; that way it is translated properly to the other side. They know the laws, tricks and tips - you don't. They know what paper work is required and they know what to do in certain situations as they arise. They go to bat for you when you really want to fight for something or if you want to get out of a deal. This is why it is so important to have proper representation. If you feel that your Realtor is not doing a good job then find a new one before entering a contract. If you are in a contract with a ratty Realtor then walk away from the current deal.

Buyer and Seller Lenders or Banks
These entities usually talk to their respective parts and will interact with the Agents and Title Company. It is strongly recommended that if you are a first time home buyer that you go to a Mortgage Broker and avoid going directly to a bank. Mortgage Brokers can get you a great deal, but be aware that they will sell your loan to another institution after they close your deal. If you go directly to a bank or lender, their rules are usually too constricting to the point where they will destroy your deal. The banks and their employees don't care about closing your deal - especially if you are 95% financed.

Title Company
The Title Company is the middle man for the whole transaction. They are not biased towards either side, they just go through all of the necessary documents to look for errors and make sure everything is valid. They also collect funds from both parties and make the final exchange. You and your bank pay the title company and the title company distributes funds to the seller, the agents, the buyer's bank, the seller's bank and finally to themselves. The Title Company is very important and can protect you when necessary from a botched deal.

Going Through the Aforementioned Steps
I am going to review each step in more intimate detail, because as you will see - the ideal doesn't exist. Especially not in South Florida. The ideal exists anywhere else except South Florida.

1. You obtain pre-approval from a lending institution and you have a pre-approval letter to show the seller's Realtor

This step is very simple - you call a Lender, tell them that you want to buy a house and they interview you. Prepare to give them intimate financial details, full name, current address, social security number, AGI, employment history, phone number and finally the most annoying part is allowing them to pull your credit*. They could ask for even more detail, it varies. Basically prepare to be on the phone for about an hour.

2. Put an offer on a home

You need to find a house first - good luck with that. Depending on the desired area you could find some really nice houses or total pieces of over priced crap. Examples:

  • North Miami Beach has a lot of nice property, but most of them are Foreclosures (REO) or Short Sales (SS). The homes I have seen in that area are totally destroyed and violate at least a dozen codes from varying code books. I have seen poor wiring, disastrous plumbing and laughable asking prices for piss poor housing conditions.
  • Aventura in the past 3 years has become snob central. More so than it has ever been. I watched it change because I lived there for the past 3 years. When I moved into my rental it was quiet and there weren't so many stuck up jerks every 20 feet. I don't know what happened, but all of a sudden there was a horrific influx of people and it started to get very over crowded with a lot of rich inconsiderate people who think they are the only thing that matters. There are a lot of townhouses and apartments. They are all very expensive.
  • West Kendall - stay away. I lived there for a year and half. The houses are cheap, I don't have anything nice to say about West Kendall or South Miami in general. I hate the area, I could live the rest of my life not going back there ever again.
  • Brickell - a very nice area, but property values have sky rocketed. It is high rise central, there are no houses here, just apartments.
  • Hollywood - I am 100% biased towards Broward County. I just think it is far better than Miami-Dade in every shape and form. I got a house in Emerald Hills which is a very nice cushy area. More family oriented and quiet.
Housing financial conditions will vary, but here are the basics: Regular Sale, REO and Short Sale.
  • Regular Sale - You want to find a Regular Sale at all costs, because it is a normal sale between you and a seller.
  • REO - Real-Estate Owned, which means that this property reached the final stage of foreclosure and a bank now owns this property outright. They are trying to get rid of this property and most of the time at a loss. People often get excited at the notion of picking up a property for dirt cheap, but the downsides to this are that there can be extensive damage to the home and the Bank won't lift a finger - take it or leave it. These properties are in as-is condition.
  • Short Sale - this sale is anything but short. Short Sales can take MONTHS to close because your biggest resistor is the bank who owns the property. The difference between a Short Sale and a REO is the seller still owns the property, they are just in an agreement with the bank to cut all losses and sell the property at cost. The seller walks away with zero or partial debt and zero profit, the bank sells the property to a new seller. Unfortunately the one thing that a Short Sale has in common with an REO is that the property is sold as-is. The seller shouldn't realistically be able to help the buyer with any problems with the property because they are in Short Sale which means they have either found themselves in financial hardship or they need to rid themselves of the property. A good example of this is you need to leave the country for any number of reasons, let's say an employment opportunity over seas.

Housing types vary, here are the basics: Home Owners Association (HOA), Condominium (Condo) or Single Family Home (SFH).
  • Home Owners Association (HOA) - is a community of people who all own homes, share certain common costs and follow agreed on rules. HOAs can operate in two different ways that I know of, they can either be Fee Simple or they can be Condo. Fee Simple means that only the basic costs are shared such as trash, basic maintenance and landscaping are taken care of. You are responsible for all repairs to your own unit and you have to pay your own wind insurance, water, sewer, electrical, cable, internet, etc... This results in a much lower association fee. 
  • Condominium Association (Condo) - Condos will bundle more services together and charge a higher association fee. This may include basic cable, basic internet, water, sewer, trash, wind insurance and other amenities. Usually you are responsible only for electricity and if you want to upgrade your cable/internet package you may do so.
  • Single Family Home (SFH) - you are not part of an association of any kind and you are responsible for everything.
The benefit of a Single Family Home or Fee Simple Unit is that you can typically have a much lower required down payment anywhere between 3-5%. If you want to go condo your down payment is about 20-30% which is not usually affordable if this is your first home. It can cause a lot of confusion, so make sure you know which homes you are looking at to make sure you can afford them before you put down an offer. It will just result in a rejection by your lender if you cannot make that down payment.

Housing (health) conditions vary horribly, especially in South Florida. If a house has been shut up for greater than a year, then the home is going to be in crappy condition unless someone has been checking up on it. If the A/C has not been running, then that means that there is stale air and moisture in the air. This allows mold to grow which you can usually smell immediately as you enter the home. Un-monitored homes usually attract theft, which means that windows may be broken, appliances are stolen, vandalism may have occurred and possibly worst of all copper is stolen. If a window is broken or a sliding glass door is derailed that means that rain and other crap is blowing into the house ruining the flooring. The most important thing to check for in a house is to make sure the roof IS NOT LEAKING!** Basically if you can get insurance on a house and everything passes inspection, then it is generally okay for you to proceed with this house.

When you find the house you are happy with, then ask your Realtor to draft up an offer.

3. After the offer is accepted you enter into a contract with the seller

You have to review a contract with your Realtor that is going to ultimately be sent to the seller's Realtor. The seller's Realtor is going to either accept or decline the contract before showing it to the seller because they want to avoid showing their client a contract with mistakes or just a bad contract. Eventually the seller gets the contract and they too will accept or decline the contract before signing it and sending it back to either be revised or to just continue with the sale. Typically what happens after the seller accepts and signs the contract is that you are expected to fork over an earnest payment which is either all or part of your down payment. Before this can occur you must have a title company.

4. You select a Title Company

More than likely your Realtor will already have a Title Company in mind, you can choose your own, but if you trust your Realtor, then you can go with his pick instead. If you don't trust your Realtor, then you need to find another Realtor. My point is, if you have never done this before, then how would you know what a good Title Company would be unless you have worked with one before? If you have family recommendations then that is fine, but I wouldn't worry too much about it. The Title Company is a mediator, they could care less about the finer details of your home and drama, they just want to make sure everything is legal and all of the money figures are sound. Their job is to make sure that when you are at closing the buyer pays what they must pay, the seller pays what they must pay and everything equals zero in the end on your HUD-1. They are there to make the sale happen and to make sure that all of the documents are in place for the sale of the home.

5. You have to provide an earnest payment (down payment/deposit) to said Title Company

As mentioned before, you have to provide an earnest payment to the Title Company that you just chose. The earnest payment is part or all of your down payment or deposit. This basically makes you accountable to the seller, you now have skin in the game. You are making them aware that you are serious about this sale. This is done for two reasons, you solidify that contract between you and the seller so they can't take other offers behind your back and it is protection for the seller. The seller is protected in the sense that if you, the buyer, flake out on the sale for some obtuse reason the seller is entitled to keeping your earnest money. There are way around and out of this, but let's not focus on that - you don't want to be in that situation - so don't get to this step unless you are really serious about the sale. It is like bidding on something on eBay then not wanting to pay when you have won, don't be that guy.

6. You need to get an inspection done

Before you get an inspection done, I would recommend you take a very good look at the home yourself which is something you should have done before going into contract anyhow. Look for obvious signs of something wrong. Look under every sink and behind all things that use water to find sign of water damage or owner neglect. Make 100% sure that you don't find water stains on the ceiling. If you suspect the home has a leak in the roof ask, a home with a leaky roof is worthless to you for purchase unless someone is going to fix it before the sale is through. On to the inspections. You need to find an inspection company, ask your Realtor or people you know which inspection company to use. This unfortunately has been an absolute crap shoot in my experience. I have hired two different inspection companies and I never felt totally thrilled about either. In SF you should get a full inspection done. A full inspection includes:
  • 4-Point Inspection - inspection of the home's HVAC, electrical, plumbing and roof
  • Uniform Mitigation Verification Inspection - Also known as a Wind Mitigation Inspection, is an inspection on your windows, doors and roof. In SF it is to make sure these parts are up to code with respect to hurricanes. You can get a discount for having a proper roof installed and hurricane prepared windows and doors. Your insurance will require this inspection.
  • Termite Inspection - this is to make sure that you do not have termites.
These inspections are quintessential to the whole process as your lender and insurance provider will ask for these documents, otherwise you cannot get a loan or insurance coverage.

7. You need to get an appraisal done

Getting an appraisal done sucks. It doesn't suck because it is hard work or anything, it sucks because the people doing the appraisal usually work for your lender. In some cases you have a choice in getting an appraiser, but again - just like choosing a Title Company, go with what they recommend - it is going to suck no matter what. Appraisals are done based on the value of your target home and the value of surrounding homes in the area called "comparables". Comparables are actually what suck the most because if the neighborhood you are trying to buy into is plagued with REO and Short Sales then the appraisal of your home is going to be a crappy one. Appraisers will look at the crappier comparables - rather than the more appealing good conditioned homes because they are in cahoots with the lender. They want to shoot for the lowest value possible because that will act as a deterrent for you to get a home or you will be forced to dig into your pockets to finance the home more on your own. Appraisals can make or break a deal easily. Here is a real world example that I lived through:

My seller wanted 195K for their home. We get an appraisal on the home, the appraisal comes back at 165K because like I mentioned the area was plagued with REO and Short Sales. The appraiser low balled the home because Wells Fargo doesn't want to finance people for 95% loans. Now what you have to understand about this situation is, the seller DOES NOT have to lower the price. They can just break the contract and you go your separate ways - you just lost the purchase and you lost any money you put into the purchase up to this point which is a combinataion of your time and the money you spent on this stupid appraisal and the inspection which is anywhere between 800 to 1000 dollars in total. Tread carefully and just know that you can potentially lose about a grand.

So, we get an appraisal back at 165K because the appraiser is biased. He didn't have to choose the crappy comparables, there were just as many decent homes to choose from at that time as well. I know what I am talking about I looked into it myself - we got screwed. At this point you are at the mercy of the Seller to reduce the price. We got a price reduction to 180K, but I had to pay an extra 15K out of pocket to cover the difference of the sale. I wasn't happy about it, but I really needed this home so I could move out of my bad rental situation (whole other story).

Getting an appraisal is the worst part. After the appraisal it is mostly easy sailing if your lender doesn't suck.

8. You need to get insurance quotes for home owners insurance and wind/hail/storm insurance

This part isn't too bad, the hardest part is finding a competent and reliable insurance agency. It is hard to choose because a good chunk of them suck. I have never heard anyone say "I love my insurance agency." That being said I strongly advise against using Brightway Insurance - they are fucking terrible. I know this because they are my insurance agency and they have caused me nothing but trouble - do not use them. I will explain in more detail later ***. Unfortunately a good majority of the big box companies are not available in SF because they are private institutions that can choose who they will and will not do business with. Companies like Geico (who farm out their home owners insurance responsibilities by the way) have actively declined any business with SF because the whole of SF is a gigantic liability due to our unwanted affinity for hurricanes. Basically all big box insurance companies who offer wind and home insurance would rather just not have our business because they think we have hurricane cooties; which unfortunately is true. No one loves SF (not even me).

As far as finding a company goes, do your best - it is difficult because the options are VERY limited. Please do shop around, don't get price gouged. Some of these companies are absolutely crazy with what they think is a reasonable cost for insurance policies. The point here is, you just need to get the insurance - the good news is after you get the home, you can switch the company out later - it isn't immutable.

There are three pieces of insurance you require depending on the area, but I would recommend getting all three pieces of insurance even if you don't need all of them.**** The three insurances are:
  • Wind, Hails and Storm Insurance - this type of insurance (read your policy) only covers damages caused by wind, hail and storms. This is also known as Hurricane Insurance. This policy will only help you with things inside of your home if and only if the damage was caused from the outside in. IE: A tree falls on your house due to the wind, or golf ball sized hail shatters your window, or your roof is ripped off because of a hurricane.
  • Homeowners Insurance - this type of insurance (read your policy) has nothing to do with anything outside of your house. This insurance policy only covers things inside of your house (and maybe some surroundings). This covers theft, fire and injuries to guests. If your house goes up in fire, your valuables can be replaced. If someone steals your valuables, they can be replaced. If someone takes a spill in your hall way because your cat pissed on the floor, that person can sue you for your insurance money - that's why you have home owners insurance.
  • Flood Insurance - this one is obvious. Hurricane Insurance DOES NOT COVER FLOODS, even if the flood is caused by a hurricane. If there is a flood, your flood insurance can cover the cost of rebuilding your home from the ground up. Your forced eligibility for Flood Insurance is determined by flood zones which are determined by an elevation survey which is something you have to do later anyhow. Whether you are eligible or not, you still require an elevation and land survey.
I would recommend getting Flood Insurance even if you don't need it because anything can happen in SF and Flood Insurance is rather inexpensive. I paid $400 for the year - that's nothing.

9. The appraisal comes back at the exact asking value (not likely)

Even though I covered this in section 7 above, I will re-iterate for completeness. After getting your appraisal back, you are either exceeding the asking price or below the asking price. If you exceed the asking price then your bank will cover you with a loan large enough to cover the asking price less your deposit. If the appraisal is below the asking price, then you are expected to make up the difference. The bank will only cover you up to the appraisal value less your deposit. Examples:

  • Above Asking Price - Asking price is 200K, you get an appraisal back for 205K, you are putting down a 5% deposit, so you are financed for 190K and you are expected to put down a 10K deposit. This is the ideal scenario - you WANT this to happen.
  • Below Asking Price - Asking price is 190K, you get an appraisal back for 160K, you wanted to only put down a 5% deposit, so you are financed for 152K and you are expected to put down a 38K by your lender. That's 20% down, that's 15% more than you probably wanted to put down! Surprise life sucks! This is the crappiest situation to find yourself in, especially if your sellers are apathetic assholes. Some sellers aren't as greedy as others and can understand that their home isn't worth what they are asking for - others are not quite as understanding. 
If you are below asking price, you are now faced with some difficult negotiations. Remember, even if you do bring 38K to closing for your down payment (deposit) - this DOES NOT cover CLOSING COSTS!!! Closing costs are separate! So keep in mind you just dropped 38K in this example, you will be expected to bring another 7K to 15K depending on the sale for closing costs! Do you have 45K to 53K to blow? How badly do you want this home? You might have to walk away... you will lose the money you spent on your inspection and appraisal if you walk, but it is better than being house poor and having buyer's remorse.

You can try to negotiate down the sellers to a more reasonable price, but it depends on the agenda and zealousness of the seller. Keep in mind, the seller is not obligated to do squat. They don't NEED to reduce the price, they should WANT to reduce the price and that's all. Some seller's don't need to sell, they have nothing to lose so they can wait. Some sellers have buyers lined up around the block, so they don't care if they sell to you and unfortunately in SF there are too many cash buyers. Cash is king and when you are a first time home buyer who is 95% finance, no one likes you. Put yourself in their shoes - would you rather make a sale or play games with a first timer? It is a shitty and frustrating situation all around for everyone. You want the house, the seller wants a sale and the lender wants to screw everyone as best they can. The only thing keeping them at bay is government regulations.

Let's keep this party moving and let's assume you came to a happy medium - you are still only going to put 5% down and you are 95% financed by your lender... for now.

10. You go into underwriting with your bank

Congratulations, you have a semi-concrete foothold on a home. You know you can buy the home, the inspections are acceptable, you know who you are using for insurance and the appraisal came back at a reasonable reading. Now it is time to have a financial anal probe shoved up your ass by your lender. I hope you have a stock of KY ready because you are going to need it. I have been through this process 3 times and every time I want to kill someone by the time it is over.

What is an underwriter? An underwriter is a financial fact checker who is making 100% sure that you are eligible for a loan from their institution. The main job of an underwriter is making sure that you have enough money to be financed and that your money is all coming from legitimate and verifiable sources. Prepare to hate life for the 30 to 45 days; here is why:

  • Proof of Employment and Income - You must give your lender any and all W-2 information. This includes pay stubs and phone calls to your direct supervisor. They can ask you for a signed letter of proof of employment. If you are a 1099 contractor, I have bad news for you - lenders don't like 1099 contractors and discriminate against they by saying you don't have a steady income. You are going to have a much harder time getting financed as opposed to someone who is a W-2 worker. This is blatant discrimination and I think it is stupid and wrong. A W-2 worker is no safer or stable than a 1099 worker in my opinion and a W-2 worker can change jobs just as often as a 1099 contractor.
  • Financial Records - You have to release any and all financial records to your underwriter that they ask for - no negotiations. The only things that might be exempt are things that will not be used to finance your transactions for the purchase of this home, but even that isn't always true. You will be expected to show your underwriter any and all check and/or savings bank statements, High Yield Savings Accounts, IRA or other investment accounts. Basically if it has money it, they want to know about it. All cash deposits over $200 (this figure varies by lender) are ignored and cannot be used for the purchase of your home, it is considered unverifiable income unless you can prove where it came from. Therefore you cannot use laundered or drug money for your purchase.
  • Tax Records - You must give them authorization to pull your Tax History via a IRS 4506T Form, they will fill most of that out, but you have to make 100% that your contact information is filled out correctly - otherwise it will get bounced back causing delays. This happened to me 3 times, the idiot underwriter***** (long story) kept leaving out my middle name from the form, despite me catching the error and telling her about it each time. You will be expected to give the underwriter copies of your last two or three Tax Returns. The amount varies on how much they trust you. If you have more than one W-2 for any reason, they will ask for a letter of explanation, work history and more Tax Returns. Oh by the way, they are going to cross reference those tax returns with the copies that the IRS has. They really really don't trust you and they shouldn't because that is the job of an underwriter, to scrutinize you horribly to the point where you feel raped. If you don't feel raped, violated or at least a little wronged in some way, then they haven't done their job correctly.
  • Inspection(s) Report - all of the inspections you did previously, you must give them copies.
  • Appraisal Report - the appraisal that you had done, they should have a copy already if they chose the appraiser, but if you chose the appraiser you must give them a copy. Don't be surprised if they want to perform a second appraisal - this is why you just let them do the appraisal, so you don't have to go through that.
  • Proof of Insurance - show them proof that you are ready to get insurance for this purchase. You should give them the contact information for your Insurance Agency and Agent that has been assigned to you from the Agency. You need to provide the declarations pages to the underwriter. It states how much coverage you have, the policy type and how much you are going to pay for the year.
  • Letters and Explanations - this can vary greatly. These are annoying to deal with, but basically the underwriter will find a discrepancy, you must give them a letter explaining why there is a discrepancy and why they shouldn't worry about it. Usually they tell you what they want on a case by case basis. I have two real world examples:
    • I had three different W-2s one year because I changed jobs and then my company changed companies that managed HR which changed the name of our company which made it appear that I worked for a different company. This in the eyes of an underwriter is not only suspect, but weird and unusual. I needed to explain to them in detail what happened and why. That is usually enough. If it isn't enough they will tell you they still feel uncomfortable with you and to bend over more so they can shove the probe up your ass more deeply.
    • My mother helped my open my first Checking account when I was in high school, her name was on my account when I was trying to get a home. I needed to provide a letter stating that even though she is on my account that I have full control over the funds in the account. I had to have my mother sign the letter and I submitted it to underwriting.
    • I had to provide a letter explaining my work history, because unfortunately my work his was confusing. I have a strange work history. In a 2 year period I switched jobs 4 times and I worked for 2 of companies twice each in the same 2 year period. Go say that 5 times fast. So yeah that put up a little red flag for them and I had to explain myself.
  • Investment Accounts - if you intend on using funds from your IRA or another investment account you must provide proof that you are allowed to withdraw this money for your first time home buyers experience. I use fidelity, here was my proof for them right here.
  • Explaining Records on your Credit Report - the worst part about a credit report is that you don't really have control over what information is in there. Financial institutions collect information about you that they think is correct, it isn't necessarily correct. You have the opportunity to get them to clean it up for you if they screwed something up, but that is no walk in the park. It is a pain in the ass. So my credit reports were always clean, but I had to explain to the credit agency that the lender uses why I had two vehicle leases under my name.
WARNING - DO NOT DO ANYTHING TO DISTURB YOUR CREDIT AT THIS TIME! 
While you are buying a house, you should not live your life financially, you are a slave until this is over. Do not make any unnecessary deposits into your account, they will be scrutinized and you will just cause a mess for yourself. You will have to write more letters explaining why you made a deposit and where the money came from. This scrutiny for deposits is for all deposits besides your main income check, but if your underwriter is an idiot, they will even scrutinize your main income check as well.****** Do not muddy the waters with your credit, don't open any new loans at this time, do not open any new lines of rotating credit such as a credit card. Do not pay off any old debts. Do not gain any new debts. Basically don't breath until this is over. Every time you make a change, you will be scrutinized and risk missing your closing date. At this point your underwriter will probably pull your credit a second time. The first time was for your pre-approval, so the credit check is probably over 30 days old by this time, so they need to pull a new one - too bad so sad. Oh by the way this hurts your credit score, makes sense right? The only good news is buying a house helps your credit score and the points you lose you can gain back pretty quickly. If you had good credit when you started, you will repair it. Keep doing what you were doing already to have a good credit score.

11. After 30-45 days of nonsense you are approved for your loan

If you made it this far then your brain is probably mush and you might be an alcoholic. Well the good news is the worst part is over, so put down that bottle of Jack it is time to finish this thing, still not time for rest yet. I am assuming a sunny day scenario here and assuming that your underwriter isn't stalling your loan approval *****. You have the green light from Underwriting to proceed to closing. Your underwriter will present you with a GFE. GFE stands for Good Faith Estimate. You will get several copies of the GFE throughout the life of the underwriting process, each time a blank is filled in making the amount you need to bring to closing more accurate. The reason it is called a Good Faith Estimate is that it is literally an Estimate they are giving you on Good Faith. They do not know for sure that these numbers are 100% accurate and you won't know until you go to closing. You want to hope these numbers are over estimated and you are pleasantly surprised a few days before closing and you owe much less than they quoted you for. You should study your GFE and make sure you understand what is on there, if you don't understand then make your underwriter explain it to you. They can give you an itemized page that explains how they got the figures quoted. This is basically a pre-HUD-1 statement.

12. The Title Company tells you how much money is required for closing

Assuming everything is okay at this point, the Title Company will tell you how much you need to actually bring to closing. This number should be around the amount you learned about from your GFE. Your GFE can be wrong by either being overestimated or underestimated:
  • Overestimated GFE - this is the most typical scenario that everyone wants to aim for. It is better to overestimate rather than to underestimate and cause any unwanted surprises. Real world example, I was quoted to bring up to 12K to closing, my actual was about 7K.
  • Underestimated GFE - this is a sour scenario, but that is the point of the GFE - it is on good faith, no one wanted to screw up and not estimate correctly, but it happens. Real world example, in a different deal that didn't go through for me, my lender screwed up and quoted my hurricane insurance as being way too low. When I told him what it really was, he flipped his lid and apologized because the GFE was very skewed by a few thousand. That's a shitty scenario.
You are now at the mercy of the Title Company finishing their internal underwriting, checks and balances on time for the closing date. They can discover problems during this process and it can cause issues for everyone. Real world example, during my purchase they found out that the legal description for my home was WRONG! This may not sound like a big deal, but it is. The legal description for a home is a very literal description of where your home is located in a series of coordinates (described in longitude and latitude) along with street names and other stuff that makes your head spin.

13. You wire the money to the Title Company

Literally you send the Title Company the money you owe before you even go to closing. There are methods of handling this. I wired the money to them from my bank. It cost 25 dollars to do. I suggest getting all of this setup immediately, the sooner the better just in case the transfer fails for any reason.

14.  You go to closing and sign documents that certify that you now own that property

Congratulations, as soon as the Title Company finishes their processes, you are called in for closing on a preset date aka your Closing Date. You go to closing with ALL of your documentation just in case they ask for it. Bring several forms of identification including a passport, social security card, drivers license and a check book just in case. Prepare yourself for some head aches if your sellers are assholes. Most importantly keep your mouth shut, say as little as possible and DO NOT piss off the sellers especially if they are arrogant pricks who are easily startled and fickle. Let your Realtor speak for you just like he always has, if you have something to say ask him first - he is your representation.

The Title Company has a lawyer who specializes in the sales of property. The lawyer will clearly explain to everyone what is on the HUD-1. If any documentation is required he will tell you and you must produce it. This goes for the seller as well. If the either side (buyer/seller) owes more money at this moment, an unsettled debt, they must pay immediately. Real world example: My idiot seller didn't pay his water bill and then proceeded to argue about it for 2 hours. I am not exaggerating. This asshole argued over 160 dollars which was 0.0025% of his profit from this sale. I hated my sellers very much, they were mean and inconsiderate jerks.

Anyhow after everything is settled, everyone reviews every line item by following the Lawyer's lead. He explains everything, if you have any questions, ask. When everyone is square, you all sign. This includes five of the seven people involved in the orchestration of buying your home that I spoke about at the very beginning of this tutorial. Your Realtor, you the buyer(s), them the seller(s), their Realtor and the title company lawyer. When the HUD-1 is signed by all parties, the exchange of keys is performed and the sale is final. You can now flip the seller the bird, but I don't recommend it.

15. You go to your new home with a HUD-1 aka Closing Statement

Congratulations the nightmare is over - you are finished. You now go home with a signed HUD-1. You must send a copy of this to your Insurance Agent. In SF you can apply for a homestead exemption. I would recommend doing that as soon as possible. Now your new head ache is moving in. You figure that part out.

Is buying a home right for you?
Its really simple. If you are not a responsible individual, you should not buy a home. The ideal home buyer is someone who is buying the home to live in, not as an investment. Don't make the main goal of buying a home an investment, because you can't lose if you just plan on living in it. Don't flip homes unless you know exactly what you are doing because taking care of a house is not simple. You must have enough liquidity on hand to take care of problems as they arise. You should be proactive about maintaining your home, if you don't any problems you already have might become worse with neglect. If none of that sounds tasteful to you, don't buy a home. If you are not handy, find a reliable handy man.

Mortgage Broker Recommendation
I strongly recommend VanDyk Mortgage Corporation they were professional, polite, worked fast, their underwriter was very competent, precised and quick. My loan officer was awesome, he was doing whatever he could do to help me. He saved me from Wells Fargo's incompetent and negligent underwriting. I am very grateful to them. The irony is that when everything was all said and done, my loan was sold to Wells Fargo. This is why Wells Fargo blocking my loan makes NO SENSE and all the stalling they were performing so hard. So lesson learned on my end, go to a Mortgage Broker, they will get shit done. The only thing that I will point out is they clearly state and make you sign a form that states that you understand that when you loan is sold, the company that buys your loan may require a different level of insurance than what you currently have. That happened to me, Wells Fargo told me I had inadequate coverage***.

Unequal Treatment Regarding your Closing Date
The closing date is a stupid thing. The point is to set a concrete date for when you are to close on your purchase or sale, but it can move with in reason. The only way it cannot move is if your seller says "no". It is a very malleable date, but at one point you don't want it to shift anymore and things can really fall apart if it is not met. You want to either close early or on your date, but not after your date. Your contract has stipulations/consequences that describe what happens if you miss your closing date - in short don't miss your closing date. Unfortunately sometimes other parties are responsible for making you miss your closing date such as your Title Company. Read world example: My Title Company kept telling me that I wouldn't be able to meet my closing date because they didn't want to over-promise, which is bullshit. This leads me to say, "What is the fucking point of a Closing Date if anyone can shit all over it." So take your closing date with a grain of salt. The buyer must keep the closing date, but no one else is really required to do so because the treatment regarding your closing date is unequal. Like I said to begin with, the closing date is STUPID.

Down Payment and Closing Costs
Just to be perfectly clear if it is not clear already - THESE ARE NOT THE SAME THING. You have to pay a deposit also known as a down payment in addition to closing costs. Closing costs are many things, so when you use that term know that it means your costs and the sellers costs. The correct way to speak about this is saying Closing Costs that the buyer is responsible for. Your down payment reduces your closing costs, that's all it does. The larger your down payment the better for everyone. Please do not confuse the two, your down payment is a subset of your closing costs and nothing more. When you go to closing, you must pay the remainder of your closings costs which are first described to you in your GFE from your lender. The closing costs consist of lender fees, title company fees, taxes, bullshit fees and more bullshit taxes. Oh yeah and Florida has the highest closing costs in the nation - that's what you get for not paying state taxes - that is the trade off. Home buyers get screwed.

*Credit Fun Fact - Every time your credit is checked or pulled - your FICO credit score is reduced by about 7 points - there is nothing you can do about this, it is just the stupid monopolized rules that the self governing entity FICO has put in place. If you get your credit checked again the following month it is reduced further by another 14 points. It is important to have a healthy credit score because it will determine your eligibility and your interest rate. A high credit score indicates low risk, a lower credit score indicates higher risk. So ultimately your credit score determines whether or not anyone wants to do business with you and the interest rate you will be gifted.

**Insurance Fun Fact - If the roof is leaking and no one is willing to fix it, then you cannot get home owners insurance. If you cannot get home owners insurance you cannot obtain financing. If you cannot obtain financing you cannot obtain a house. Do you see the problem here? NO LEAKY ROOFS!

***Brightway Insurance - These guys were more than happy to help me. They were okay when it came to actually getting new policies... then shit hit the fan. I recently find out that I had an error with my flood insurance coverage, I got a notice from Wells Fargo telling me in a Ransom Note that I have inadequate flood insurance coverage and if I don't  do something about it 16 business days from now that they will buy gap insurance for me whether I want it or not. Right away I submitted this letter to my agent, he ignored it, I called him and got his assistant. They failed to give me the proper amount of coverage and now I have gap insurance. They still haven't fixed the problem as of 09/29/2013. I need to find a new Insurance Agency - so FUCK Brightway Insurance.

****Another Insurance Fun Fact - The only reason you require insurance is because you have a mortgage. These insurances are NOT required if you buy your house cash, it is up to you entirely to have them once you don't have a lender in the picture. Additionally if you do not put at least 20% down on your purchase, the lender will force you to pay for PMI or Private Mortgage Insurance. Once you reach 20% equity on your home, you must request they remove it or they will not remove it for you. Lenders suck! This PMI is to protect them from you, if you stop paying, this insurance that you are paying for protects the lender from losing unrealized profit on the loan. Ain't that some shit? There you go, now you have inspiration to pay off your lender sooner rather than later.

*****Wells Fargo Underwriting Sucks Part 1 - When I was going through underwriting my underwriter was either incompetent or was trying really hard to make me fail so I wouldn't keep seeking a loan. She kept forgetting to tell me about things that I needed to submit and kept dicking up my paper work which at one point I assumed was on purpose because it was just too coincidental. I sent her my IRS 4056T and she spelled my name wrong 3 times, even though I told her that she spelled my name wrong each time. After that was taken care of (finally), she started asking me for stuff I submitted to her already. Then she started asking me for stuff that my Realtor said she didn't need and I have to agree with my Realtor she didn't need the stuff she was asking for. She was stalling for some reason, we kept getting closer to the closing date and she just kept asking for things that didn't matter. I have been through underwriting before at this point, I knew something was off. Finally she dropped a bomb on me, she said the home I was trying to buy was considered a Condo instead of a single family home because my home was sharing a wall with another home therefore I was supposed to give them 30% down and not 5% down. They fucked me at the last moment. Luckily I found a Mortgage Broker who saved me and my house deal and their underwriter was infinitely better.

******Wells Fargo Underwriting Sucks Part 2 - The same idiot underwriter that I was talking about in the first part would keep asking me where my pay check was coming from every time I gave her a bank statement. I kept telling her that - that is my salary check. She would then ask me to produce a physical check for the salary check line item. I was being paid via direct deposit, like the rest of the planet. She was being coy and asking me for a check for something that is ACH. ACH stands for Automatic Clearing House, which means THERE IS NO FUCKING CHECK - that's why it is called direct deposit. She was stalling the process! I had to re-explain this every time I submitted a new checking statement to her. She was playing stupid. Fuck you Wells Fargo underwriting.

Wednesday, July 31, 2013

Visual Studio 2012 Crashes When Attaching to Process or When Opening Solution


This is a rant. For the solution skip to the next section
So yeah... I don't know about you all out there in dev land, but I have been running into non-stop issues with Visual Studio 2012... Frankly I like Visual Studio 2010 better because it works and is easier to use in my opinion. I keep running into really ugly problems with Visual Studio 2012 that are show stopping problems; as in I cannot get work done. These problems include working with WPF applications, sometimes the IDE just doesn't feel like running the project... it just sits there no matter how many times you press the play button... gee... thanks? 

The Problem
Today's problems are (starting to sound like a 95' Ford) that the IDE crashes with the above screen shot when... 
  • ...I attach to process for IIS
  • ...press the play button to launch IISExpress
  • ...(and) ultimately starts crashing outright when starting up the IDE
There is already a ticket open for Microsoft support desk, you can view it here.

The Work Around (No Fix Yet)
As many things with Visual Studio... when nothing makes sense anymore START OVER. So by this time you probably have restarted your computer, reset IIS and done all kinds of other stuff you didn't want to do. In my experience of working with visual studio since Visual Studio 2003 moving forward, I have learned one important lesson: when your solution has gone renegade or wonky - DELETE IT.
  1. Close your solution if it is still open 
  2. So before you delete your solution, you can try to delete your solution's suo file. The suo file is hidden, so you need to enable the visibility of hidden files.
  3. If that didn't work, then create a brand new solution file.
I tried both options and both have worked for me.

Conclusion
Dear Microsoft - IE10 is a disappoinment for developers (I am still on IE9 because of the bugs in IE10) and Visual Studio 2012 half works. Please fix the tools I have to use every day. Thank you. 


Sunday, July 14, 2013

Dell Latitude E6400, Topaz Signature Pad and Broadcom USH Drivers

Introduction
Dell is special... Latitudes are not good development machines, they are business grade, but somehow organizations think that cheap laptops are okay for developers to use. Anyhow, I have been working with a Topaz Signature Pad TL-460-HSB and I have been having a horrible time doing so. My laptop just wouldn't recognize the signature pad. I found a solution and I am going to share it.

Problem
You plug in your Signature Pad and the drivers won't install, you see an error when you look in your device manager that reads "Broadcom USH" with a caution sign next to it. Congratulations you got a dell!

The Fix
The fix to this problem came from this forum post: http://www.sevenforums.com/hardware-devices/32073-broadcom-ush-latitude-e6400.html
  1. Go to this link: http://www.dell.com/support/drivers/us/en/04/driverdetails?driverid=V3P97
  2. Download this file: Dell_ControlPoint-Security-D_A18_R269916.exe (Figure 1) 
  3. Run the installer 
  4. At one point during the installation you will be prompted that what you are installing is old - ignore this because it really doesn't matter and the link provided is their main support link. I tried to find the latest driver and couldn't - thanks dell! (Figure 2). 
  5. For your installation - I am going based on memory now (writing this how to much later) - I remember only installing the control point software. Don't bother installing anything else. In other words uncheck all other option except for control point when prompted. 
  6. Finish installing 
  7. Restart if necessary
Figure 1 - The file you are downloading

Figure 2 - Less than helpful warning
Rant you can Skip
I hate dell because of stupid problems like this. Dell always has their own set of special problems per product, they have no uniformity and generally the cheap piece of crap you just bought is exactly that - a cheap piece of crap. If you are looking for a reliable and decent machine do yourself a favor and get a Lenovo.

Sources
http://en.community.dell.com/support-forums/laptop/f/3518/t/19308728.aspx
http://www.sevenforums.com/hardware-devices/32073-broadcom-ush-latitude-e6400.html
http://www.dell.com/support/drivers/us/en/04/driverdetails?driverid=V3P97
https://www.google.com/search?q=Dell+ControlPoint+Security+Driver+Pack+1.4.056+A18+R269916

Seagate DiscWizard Acronis True Image Imaging Software Failure


I have used the Seagate DiscWizard Acronis True Image imaging software before, and I rather like it. However it failed for me on bootup recently from both Hiren's BootCD and from Falcon Four's Ultimate Boot CD - this of course I want to clearly point out is not the fault of the disks, they just provide the software all in one neat little package. I have a feeling the imaging software is no longer a viable option as it is not updated enough to handle the latest mother board chipsets or something to that effect. Therefore the next option was to look for a different free alternative.

Error Messages
These are the error messages I received while trying to run DiscWizard:

  • acronis: cannot open module 'st': no such file or directory
  • acronis: insmod: error inserting '/lib/modules/floppy.ko': -1 No such device: No such device
After getting the errors the disk would spin down and not spin back up again... I started searching for why and I couldn't find a better explanation than: "You need to download the latest software". Okay, well I did, just not a new version of DiscWizard which I don't think is exactly free.

Clone your drive with: EaseUS Disk Copy 2.3.1
This was very easy to install and use. My favorite thing about it is it let me install the software to a USB drive as a bootable USB drive. No disk to burn! Fantastic. Running the software was simple and very straight forward. Choose your source disk and choose your destination disk. Done.

Gotcha
After I cloned my smaller drive to a larger drive, I had unallocated space. Apparently windows doesn't let you increase/extend the size of your system/boot drive for some reason I am not interested in understanding. Frankly it should be an option because other software can do it - why can't windows?

Extending your System Drive with: Partition Wizard 8
I would have recommended EaseUS's Partition Manager, but it kept trying to install all kinds of other software on my system except the partition manager. That gets very annoying after a few screens, so I canceled the installer. I found Partition Wizard 8 which does not require a boot CD and you can just run it straight from windows. Once again very straight forward. Select your partition, right click for context menu, select extend, move the slider bar all the way to the right, press OK, press Apply and you are pretty much done.

Conclusion
Thank you to all of the freeware that's out there. Disk cloning and changing the expanse of a volume is really not a day to day thing - so not having to pay for software for a one time deal if very nice.

Thursday, June 13, 2013

SSRS Windows Integrated Security: Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'

The Overly Complicated Problem
I spent about 2 days trying to figure this problem out, until we had some professional help step in to help us figure it out. The solution is embarrassing. First an overview of the problem. The error show down below is during a connection test for a datasource in SSRS. All of this is taking place in the SSRS 2008R2  Management Portal.


This error reads:
Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'

It unfortunately can be caused by a plethora of configuration issues. This includes: not having the right permissions - which means not being in the right group or being added to the right security context. Security context such as having permissions to a database in SQL Server or even being given the correct permissions in SSRS for a folder or datasource.

In my case, everyone else had access to this datasource except me - totally mind boggling.

My co-workers searched high and low, we even though maybe it was a server configuration issue.
I even thought it had something to do with the SPN of the server which you can read about here: http://www.sqlservercentral.com/Forums/Topic1391332-2799-1.aspx#bm1391473
Alas it was none of those things... it was something incredibly stupid.

The Potential Stupid Fix to the Very Frustrating and Stupid Problem
I can't say this will fix your problem, but it is a good place to start.

Assuming you are using IE to access SSRS (only seems to work properly in IE); add the SSRS server URL to your trusted sites in IE.

  1. Open IE
  2. Go to your internet options [figure 1]
  3. Select the security tab [figure 2]
  4. Select Trusted sites
  5. Click on the Site button
  6. Enter the URI base of your SSRS server's URI (if not using https, remove the check mark from the box) [figure 3] - an example of this is: http://ssrsServerName.contoso.local or if your network is setup for it you can simply use the server name: http://ssrsServerName
  7. Close out and apply everything (Save changes)
  8. Close IE - all tabs and windows
  9. Open IE - your problem should be fixed
Figure 1 - Internet Options

Figure 2 - Trusted Sites

Figure 3 - Add Server URI

Conclusion
This was much harder than it should have been. If this fix didn't work for you it is very possible you need to look into SPN setup and your permissions. I don't have a lot of experience in fixing SSRS, I just deal with the one off issues it spawns on occasion.

Warning
If you are using the Development Edition of SSRS I believe (I am not totally sure) that if you are looking for the configuration files that are spoken about here you may not find them. I don't understand why, but I am just giving you a heads up.



Monday, April 29, 2013

Windows Service Installer Error 1001: Cannot start service on computer %1 is not a valid Win32 application

Problem
I was working on a windows service I haven't looked at in ages. We recently updated some dlls that broke the windows service, so it needed to be re-tweaked. Every time I tried running the installer project I would get an error that would read:
Error 1001. An exception occurred during the Commit phase of the installation. This exception will be ignored and installation will continue. However, the application might not function correctly after installation is complete. --> Cannot start service [Service Name Here] on computer '.'. --> %1 is not a valid Win32 application
Which like most errors is pretty damn useless. 


Gotcha
After a lot of head scratching and googling I tried installing the service manually. Then it became painfully clear what the problem was. The output types of some of the libraries were set to the wrong types for debugging reasons. So I switched the output types of the libraries back to their respective types, the most important being the windows service project set as a "windows application" and the service installed this time without a hitch as intended.




Wednesday, March 27, 2013

Marriage and the IRS

Introduction
There are things no one tells you when you get married, one of which is doing taxes almost becomes impossible to do and is one of the most frustrating experiences I have had to endure to date right behind moving, buying a house (still not finished with that one) and taking final exams. I am going to steer clear of the political side of this issue, but one thing I think EVERYONE can agree on is our Tax system is definitely confusing and not fun to use.

Oh Expletive! I just shot myself in the foot!
I recently had the misfortune and finding out the hard way that I owe a gigantic sum of money to the IRS and I have no one else to blame but myself because I filled out my W-4 a specific way. I cannot use the word "wrong" because I didn't fill it out wrong. I put my marital status down as married and I claimed 2 for my allowances. I used the provided worksheet and it made sense to me when I was doing it. Well like they say, hind sight is 20/20...

Recommended W-4 Configuration
Everyone has a different tax situation - I am just sharing my experience - I am not a tax expert in any capacity. That being said, I am recommending that if you want to avoid owing a lot of taxes at the end of the year that you check off the box that says "Married, but withhold at higher Single rate." in section 3. I recommend having NO allowances, meaning you are going to put the number ZERO in section 5.

Every time the IRS see's that someone marked off "Married" alone they are probably ROFLing.
This indeed sucks because you see less in your paycheck throughout the year - but this is money you would have to pay regardless at the end of the year. So really it comes down to choice - choose your W-4 poison. Lastly - if you don't pay enough taxes during the year you are charged a penalty when you file.

Wait! There's More Bad News!
There is a very tempting option when filing your taxes to file "Married, but separately". Well prepare to laugh because it isn't all that great. It is nothing like filing as Single. I learned a few crappy things this round of taxes and that is...
...If you want to file Married, but Separately:

  • You are giving up your 1098E which is your student loan interest if you have any - you cannot legally claim it.
  • You cannot contribute to your Roth IRA because chances are you make more than 10,000 dollars - it is ILLEGAL for you to make a contribution and you will be charged a PENALTY of 6% on the contribution amount for every year that you do not remove it from your Roth IRA.
  • Your tax rate is completely different which of course depends on your AGI or Adjusted Gross Income.

I'm sure there are more disadvantages to filing this way, these are the only ones I had so far.

What does this all mean?
The IRS really really really wants you to file Married and Jointly - not separately. If you file Jointly you can claim your 1098E and your contribution limits to your Roth IRA are dramatically higher so you won't be penalized. Your tax rate is completely different yet again which is now adjusted depending on your joint AGI.

I heard I can file for an Extension...
Yeah you can file for an Extension... but it is only for an extension that gives you more time to FILE your paperwork - NOT pay your taxes due! GOTCHA! This is a very misleading pitfall, if you don't pay your taxes due you will be charged a penalty and interest. Right from the horses mouth here.

How do I calculate my Tax Rate?
This is a very nifty tool, but it is only Accurate and for estimation: Tax Act's Tax Bracket Calculator you just need your AGI which you can calculate by adding up all of your W-2 gross income and selecting the correct filing status. This is particularly helpful to let you know if you underpaid. The tax rate and tax amount shown in the calculator is your Federal Income Tax ONLY!

Not all Taxes are Treated Equal
There are three main taxes we all pay dubbed the "Payroll Taxes", the IRS only cares about 1 of 3 of those taxes when they are telling you how much you owe. The three taxes are: Federal Income Tax (FIT), Medicare Tax and Social Security Tax (SS). When you are calculating how much you owe, you can forget about including Medicare and Social Security in the total amount of taxes you paid - they do not count. Therefore when calculating what you owe - the only tax that matters is the FIT.

Conclusion
CYA - make sure to pay all of your taxes ahead of time and keep some money around for later just in case you owe money. There are payment plans - but they come with penalties and interest so don't do this unless you don't have a choice. The worst thing you can do is NOT pay.

Sources
  • I got a majority of my information from using Turbo Tax.
  • Google
  • IRS Website
  • Filing my taxes

Thursday, February 28, 2013

Setting Up WCF with Windows Authentication

Introduction
Configuring WCF to do anything for the first time is very time consuming, frustrating and just generally a hassle. My coworker and I mucked through this wonderful WCF configuration experience last night and now I am going to share our tale of torment and learning.

Useless and Unhelpful Errors
If you have been having trouble setting this up, then chances are you have seen one of two or both of these page errors that are served to you on a steaming hot yellow screen of death:

Useless Error 1
Security settings for this service require Windows Authentication but it is not enabled for the IIS application that hosts this service.

Useless Error 2
Security settings for this service require 'Anonymous' Authentication but it is not enabled for the IIS application that hosts this service.

Why is this happening?
Well you may have guessed it already, you didn't configure something correctly. The short answer is that you have to enable Anonymous and Windows Authentication for your application in IIS for this to begin to work. However there is more configuration that needs to be done which is described further down below.

The Not So Obvious Fix to the Stupid Problem
I can't promise that what worked for me and my needs will work for you and your needs. I can however promise that this will work if the instructions are followed exactly. There are a lot of moving parts here and unfortunately most of what is happening here is behind the scenes magic (Windows Authentication, Kerberos, NTLM, Negotiate, etc...). Therefore I have to assume that you have IIS7 setup correctly and that you have successfully enabled Windows Authentication for other applications, just not WCF yet.

Configuring IIS
  1. Open IIS manager > Click on your Application > Make sure Features View is selected
  2. In the IIS section of Features View double click on "Authentication" (Figure 1)
  3. Enable Anonymous Authentication (Figure 2)
  4. Enable Windows Authentication (Figure 2)
    1. On the left hand side of the window look at the Actions section.
    2. Click on "Advanced Settings..." make sure Extended Protection is "OFF" and check mark the check box labeled "Enable Kernel-mode authentication" (checked="True")**. (Figure 3)
    3. Click on "Providers..." and make sure the Enabled Providers are only "Negotiate" and "NTLM", do not add anything else here. (Figure 4)
  5. Restart IIS using CMD > iisreset /restart
  6. You are finished with configuring IIS, time to configure WCF.
**Kernel-mode Authentication
You want this check marked especially if you are using a custom UN/PW for your Application Pool Identity.

Figure 1
Figure 2
Figure 3
Figure 4
Configuring WCF
As usual, 99% of the configuration for WCF takes place in the web.config/app.config. In this particular case it is a web.config because I am assuming you are using a Web Application as your WCF host. Therefore there are two main pieces at work here:
  • Enabling Windows Authentication for the Web Application
  • Enabling Windows Authentication for the WCF Service
These two points of interest are actually mutually exclusive. Just because you have Windows Authentication enabled for your Web Application doesn't mean I can't still hit your WCF Service. Therefore it must be enabled for both.

Configuring Windows Authentication for the Web Application
Put the following authentication section into the <system.web> section. In this example I am using Active Directory group names to filter out who has access. You can use the user names directly if you want.
<authentication mode="Windows" />
 <authorization>
  <allow roles="ADGroup1,ADGroup2" />
  <deny users="*" />
 </authorization>
<identity impersonate="false" />

Configuring Windows Authentication for the WCF Service
Put the following secruity section into your <binding> section.
<security mode="TransportCredentialOnly">
 <transport clientCredentialType="Windows" />
</security> 

Full Web.Config Example For Reference
<?xml version="1.0"?>
<configuration>
  <system.web>
    <compilation debug="true" targetFramework="4.0">
    </compilation>
    <httpRuntime
      executionTimeout="600"
      maxRequestLength="16384" />
    <authentication mode="Windows" />
    <authorization>
      <allow roles="ADGroup1,ADGroup2" />
      <deny users="*" />
    </authorization>
    <identity impersonate="false" />
  </system.web>
  <system.serviceModel>
    <services>
      <service name="AuthWCFService.AuthService" behaviorConfiguration="AuthWCFService.AuthServiceBehavior">
        <endpoint address=""
                  binding="basicHttpBinding"
                  bindingConfiguration="basicHttpBindingConfig"
                  contract="AuthWCFService.IAuthService" />
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>
    </services>
    <bindings>
      <basicHttpBinding>
        <binding name="basicHttpBindingConfig"
                 openTimeout="00:10:00"
                 receiveTimeout="00:10:00"
                 sendTimeout="00:10:00"
                 closeTimeout="00:10:00"
                 maxReceivedMessageSize="2147483647"
                 maxBufferSize="2147483647"
                 maxBufferPoolSize="2147483647"
                 messageEncoding="Text"
                 transferMode="Buffered" >
          <security mode="TransportCredentialOnly">
            <transport clientCredentialType="Windows"/>
          </security>
          <readerQuotas maxDepth="32"
                        maxStringContentLength="20000000"
                        maxArrayLength="20000000"
                        maxBytesPerRead="4096"
                        maxNameTableCharCount="16384" />
        </binding>
      </basicHttpBinding>
    </bindings>
    <behaviors>
      <serviceBehaviors>
        <behavior name="AuthWCFService.AuthServiceBehavior">
          <!-- To avoid disclosing metadata information, 
          set the value below to false and remove the metadata endpoint above before deployment -->
          <serviceMetadata httpGetEnabled="True" />
          <!-- To receive exception details in faults for debugging purposes, 
          set the value below to true.  Set to false before deployment 
          to avoid disclosing exception information -->
          <serviceDebug includeExceptionDetailInFaults="true" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
  </system.serviceModel>
</configuration>

Conclusion
I think Microsoft needs to make this easier to figure out... Why the configuration has to be such a mystery that requires countless hours of plug and chug is beyond me. I have tried reading the white papers that are provided, but they are as useful as college books or technical manuals when you aren't really sure where to begin. As I like to call it FLUFF, lots and lots of FLUFF - no practicality - just lots of meaningless words strung into sentences.

Sources



Thursday, February 14, 2013

Things to know before buying the Nexus 4

Introduction
I bought the Nexus 4 recently and I have to say I am quite satisfied with my purchase, however I was pretty disappointed and borderline pissed off about a few things that aren't apparent until after you purchase the phone. However I would like to say that this phone is a MAJOR improvement over my old T-Mobile myTouch Q LGC800 which is a sad excuse for a phone when put next to the Nexus 4 which is also produced by LG. I am going to blame T-Mobile for the LGC800's initial total lack of performance, but after rooting the phone and freezing all of the T-Mobile bloatware the phone still had some serious issues with Bluetooth and other unexplained problems that made the phone an overall drag to use. I am mentioning this because unfortunately some of those problems have carried over to the Nexus 4 it seems. Well off to the list.

LG Product Page
The Nexus 4 is also known as the LGE960. You can view it's page here. You can download the user manual here as it does not ship with the phone; which is fine because it is something you would rarely look at anyhow. This phone is rather intuitive to use.

The Purchase Price is a Lie
Google Play advertises the phone for either 300 or 350 dollars. The price difference being that the 8GB phone is cheaper than the 16GB version. Well yes it is clearly cheaper by 50 dollars but since this phone does not allow me to use an SD card, I guess I am getting the 16GB version. Time to purchase the phone...

$350 my ass
Cadillac Shipping
Okay so I know there was going to be shipping costs involved and I know the $350 was just the cost of the phone, but holy crap. I feel cheated here. You are NOT given a choice on a cheaper form of shipping, I was willing to wait another 2 weeks for free shipping or at least cheaper shipping. I am going to assume the shipping included product insurance.

$13.99 Two Day Shipping -> 4% added cost

County Sales Taxes
All I have to say is... wow. I guess they had to add taxes, but holy shit.

$24.43 Taxes -> 7% added to cost (I live in Miami-Dade County taxes are 7%)

Total Overhead from Google
$38.42 - Yay I just paid 9.91% more than I felt like paying. Almost 10% higher than advertised!

Sub Total: $387.42

New Micro SIM Card
I had a regular sized SIM Card, so I had to purchase a new Micro SIM Card because apparently T-Mobile no longer changes them for free like they used to. I have been told you can cut the older regular sized ones down to size, but I don't trust that completely. I'm not that adventurous, I just need things to work right now - too busy for experiments.

$21.20 -> 5.47% more on top of the current total

New Belt Case for Phone
This phone is flat, skinny (small height), but wide in both length and width. I needed a new case with belt loops so I could keep my phone on my person. I am not one of those people who can just slip it into their pocket and not feel that it is going to be shattered in my pocket or left somewhere because I forgot to put it back. I bought this case: Krusell Hector 3XL Premium Leather Universal Case with Beltloops for SmartPhones with 4.3 / 4.8-inch Screen-Black.

$19.99 -> 5.16% more on top of current total

Total Overhead from Unexpected Costs
$41.19 - Paid another 10.63% on top of the $387.42, this is not Google's fault - but T-Mobile not switching out my SIM for free is not very fair and I cannot operate without having a pouch for my case so that is my preference.

Final Total: $428.61
$79.61 More than $349.00 -> 18.57% higher than expected

The Silver-lining
This was still cheaper than buying the phone anywhere else.

The Storage Space is a Lie
So I bought the phone for its 16GB and well I expected 16GB of free space. The phone has 16GB alright, but what they don't tell you is the OS has already used up 4GB of it. So you have 12GB of free space. Not the end of the world, but not very fair either.

Problems with the Phone
There are problems with Bluetooth and WiFi. I have had to restart my phone already several times because either Bluetooth stopped working or WiFi stopped working or both. There are reports about this all over the place and Google/LG has already started rolling out updates to fix the problem. I am tempted to root the phone and just use CyanogenMod. I am going to blame LG for this because these problems are far too reminiscent of what I had to deal with - with my old LGC800.

Minor Complaints
I don't care for the layout of the phone all that much. I don't like how there is a Google bar that is permanently affixed to the top of my screen. It cannot be removed. Adding widgets to your screen is a bit of a lengthy task since you have to look through your app drawer for them and scrolling through them is not quick. I am also concerned about the battery life of the phone, when it comes time to replace that battery what are we facing here? Can I do it myself?

Conclusion
This is by far the best phone I have owned so far. It is very fast, it does not lag which is my favorite part and it is very usable. The quality of this phone has offset the overall hit to the wallet which was a hard one, but I hope to hold on to this phone for as long as possible.

Get Authorized Roles from Web.Config

Introduction
To avoid hard coding the names of AD Groups, it is best to just pull them from a place where they already exist. They usually exist in the Authorization section of your web.config: configuration\system.web\authorization
So I started looking up how to do this and to my surpise it was more difficuilt than it had to be as usual when it comes to any xml file. Some solutions online just say to read in your web.config as an XmlDocument and I always think that is a last resort. If there is an API for it, use the API - don't reinvent the wheel as it is confusing for anyone that has to read your code later and you just wasted time rewriting something that existed already.

How to get the Authorization Roles from the Web.config
I don't have much to explain about this process other than it was hard to figure out, but now that is finished I don't want to have to think about it again. The code pretty much explains it all. Unfortunately the AuthorizationRuleCollection does not support any Linq operations, so this was uglier than I would have liked it to be. I am using a loop which I am not fond of, but I couldn't figure out a safer way to do this. The only good news is usually there are only a hand full of rules to loop through.

//Import the following
using System.Configuration;

//Get the web.config configuration for THIS web.config (hence the ~)
Configuration config = WebConfigurationManager.OpenWebConfiguration("~");

//Get the Authorization section which has the allowed roles in it (AD Groups)
AuthorizationSection auth = (AuthorizationSection)config.GetSection("system.web/authorization");

string[] arrRoles = new string[0];

//TODO: Find a better way to query the rules
//Loop through each rule
foreach(AuthorizationRule obj in auth.Rules)
{
 //Find the Allow Rule
 if (obj.Action == AuthorizationRuleAction.Allow)
 {
  //Resize the array
  arrRoles = new string[obj.Roles.Count];

  //Copy the roles from the StringCollection to an array of string
  obj.Roles.CopyTo(arrRoles, 0);

  //Exit loop after found
  break;
 }
}

Resources
http://stackoverflow.com/questions/213784/in-my-codebehind-class-how-do-i-retrieve-the-authorized-roles
http://msdn.microsoft.com/en-us/library/system.collections.specialized.stringcollection.copyto.aspx