Facebook and My Phone Contacts

I am an IT professional and at times am required to take online training sessions that cover all sorts of topics. Last week at work, I took an IT security course and one of the areas of emphasis was social media.

The course mentioned that one thing you could do to protect your Facebook data was to download it. I had no idea this was something that could be done. After a couple searches with Google and looking at Facebook, I performed the “download a copy of your data” function from within the Facebook website on my laptop. Description of how to do this is here.

The downloaded data is amazingly detailed and complete. It had every single post I had ever made as well as most of the pictures and videos posted and many other things. But, one thing caught my eye – the “Contact Information”. This is not a list of Facebook friends, that was also there but separate.

The “Contact Information” section was a list of the contacts on my iPhone. I did not upload this data to Facebook and I did not enable the sync feature to synchronize my contacts to facebook. Facebook friends were NOT in my iPhone contacts. So, seeing these people listed with all my Facebook data was weird. But, it got weirder the more I looked at the data. There were multiple people in my contacts where I only knew their first name and phone number. But, in my downloaded data it included their last name also. I decided to search these folks in Facebook using just their phone number and bingo- their Facebook profile, including first and last name, was found.

It seems as though this “download your data” function will grab your contacts from your phone without your permission, will then match the people based on their phone number to existing Facebook accounts and include their full name based on that lookup. Kind of cool but kind of creepy too.

After I noticed all this, I tried to disable Facebook from accessing my contacts, but I do not see any place where this is enabled (nor disabled for that matter). In Settings->Facebook, there is no indication that Facebook will access my contacts. In the Facebook app, under Friends->Contacts, I am displayed a message indicating that having your contacts sync’d in Facebook is a great thing and that I should “Get Started”. I declined getting started with that.

But wait, there is more.

Every Facebook user knows the annoying “people you may know” listing of people’s profile pictures asking you to add them as a friend. This list has completely changed for me since I downloaded my data. It now includes people that were contacts on my phone, people that I had emailed (via Yahoo mail) and people that I have sent text messages to as my only method of communication. I have 6 different email addresses configured on my iPhone. One of the email addresses is associated with my Facebook account, while the others are not associated with FB at all. I found it very interesting that Facebook now kept suggesting I be friends with a person I had emailed on one of my non-FB email accounts. She is not in my contacts. I do not have a phone number for her and, quite honestly, I did not even know her full name. I only have an email and have only communicated to her via a secondary Yahoo email account that I rarely use, but now Facebook thinks she is someone I should be friends with. Hmmm. Facebook is so smart. Too smart.

So, the “download your data” function is clearly an interesting option to get copies of your data offline and backed up onto your computer, but it is not without its drawbacks. Facebook does whatever it wants to do, does not tell you what it is doing and has almost full access to whatever data it deems ‘needed’. Be careful out there folks.

I hope to have some follow-up to this in the future because I have a lot of observations and a lot of questions, but very few answers at this point.

Dear Jim Caldwell

An open letter to Detroit Lions Head Coach Jim Caldwell from an average Lions fan.

Dear Coach Caldwell,

  • I watch every game on TV.
  • I try to attend one or two home games each year.
  • I have friends that have season tickets.
  • I grew up in this area and have been a fan for all of my life.

At your introductory press conference at Ford Field, I listened to every word, every idea, every concept and philosophical thought you had. I was very impressed and was absolutely sold that you were the correct person to lead the Lions to success. Even in the face of losses, I was convinced your high character and discipline would lead, eventually, to wins on the field.

As the past few years have gone by, I have become increasingly frustrated with a lot of behavior, but I’m going to focus on just one aspect in this letter, that being your communication with the fans. I will not get into the game day decision making, personnel decisions or other football activities.

I listen and watch your press conferences after each game as well as the weekly press conferences on Monday. I hear the annoyance and condescension in your voice as reporters ask question after question. I hear your avoidance as certain questions are asked. I hear arrogance in other answers. You may think the reporters are stupid and ask stupid questions and are a giant waste of your time. In fact, you have directly said as much.

What I want you to know, Coach Caldwell, is that when you are speaking to the reporters you are ALSO speaking to me. The writers for the Detroit Free Press, Detroit News, MLive, Oakland Press and other publications are asking their questions in order to disseminate your answers to their readers. And coach, do you know who their readers are? They are Lions fans like me and tons of others.

When you are asked if there is a change of philosophy or a change in schemes based on the injuries on your defense, please know that this is something I would like asked. It is a reasonable question. When your answer is simply to berate, embarrass and demean the questioner, remember that you are also berating me. You are being condescending and obnoxious to me and all Lions fans that are listening. You are sometimes asked about Deandre Levy’s health. He didn’t play in the last game. What is his status? What is the injury? Did he practice? Did he show up at the facility at all? What is the prognosis? These are all reasonable questions that paying customers and fans would like asked. Questions I would ask if given the chance, but your responses are insufficient and infuriating. “Check the report” is simply not good enough and quite frankly, offensive.

You didn’t like those questions? Tough break, sir. You think you are too smart or above answering such nonsense? Too bad. Beyond being required by the NFL to give the pressers, you should take it as an opportunity to communicate directly to the fans. I can imagine its very tough after a bad loss to talk about all the mistakes, thoughts and decisions made during the game. It’s very, very hard, I am sure. How you handle these hard tasks says more about your character and your true self than anything else. It says more about you than an introductory press conference. When you act like an arrogant ass and demean the writers, you are demeaning all listeners and all readers and all fans. When you behave in this manner, you are an embarrassment to the Lions and the NFL.

What would I like you to do, coach? How about you show a slice of humility? How about a little insight? How about you attempt to communicate to the fans? How about you speak to us as equals…or at least as customers that have a right to answers? How about you act like there is valid information to be given in your press conferences?

Above all, Coach Caldwell, I’d like for you to think of each reporter in the room asking questions as representing 25,000 fans. Fans that pay your salary and pay to have a full stadium, fans that give you and your team a true home field advantage. In other words, do not treat them like a petty annoyance because when you do that, you are treating every single fan with the same embarrassing, arrogant, petulant attitude. And we deserve better.

Free up some iPhone space…for free

If you have an iPhone and deal with low storage, here is a trick to reclaim some unused storage.

  1. First, you must know how much free space you have: Settings -> General -> Usage -> Storage Available
  2. Go to iTunes and search for a movie with a bigger file size than what you have left on storage (Lord of The Rings: The Two Towers HD version is over 6.8 GB)
  3. Click the rent button.
  4. You’ll get a message saying ‘Cannot Download’ because you don’t have enough storage. There are OK and Settings buttons.
  5. Click settings and magically you will get some storage back (it probably erases some orphaned data from different apps to try to download the movie). If you click ‘Manage Storage’, you’ll see your new available storage.
  6. Repeat the process a few times.
  7. When I tried this, my available storage went from 800MB to 1.9GB. I had to do it about 5 times.

Original post: https://www.reddit.com/r/iphone/comments/462isr/get_some_storage_back_by_trying_to_download_a

Hen Man

Brian came home from the pub late one Friday evening stinking drunk, as he often did, and crept into bed beside his wife who was already asleep. He gave a peck on the cheek and fell asleep.

When he awoke he found a strange man standing at the end of his bed wearing a long flowing white robe. “Who the hell are you?” Demanded Brian, “and what are you doing in my bedroom?”.

The mysterious Man answered “This isn’t your bedroom and I’m St Peter”.

Brian was stunned “You mean I’m dead!!! That can’t be, I have so much to live for, I haven’t said goodbye to my family…. you’ve got to send me back straight away”.

St Peter replied “Yes you can be reincarnated but there is a catch. We can only send you back as a dog or a hen.”

Brian was devasted, but knowing there was a farm not far from his house, he asked to be sent back as a hen.

A flash of light later he was covered in feathers and clucking around pecking the ground. “This ain’t so bad” he thought until he felt this strange feeling welling up inside him.

The farmyard rooster strolled over and said “So you’re the new hen, how are you enjoying your first day here?”

“It’s not so bad” replies Brian, “but I have this strange feeling inside like I’m about to explode”.

“You’re ovulating” explained the rooster, “don’t tell me you’ve never laid an egg before”.

“Never” replies Brian

“Well just relax and let it happen”

And so he did and after a few uncomfortable seconds later, an egg pops out from under his tail. An immense feeling of relief swept over him and his emotions got the better of him as he experienced motherhood for the first time.

When he laid his second egg, the feeling of happiness was overwhelming and he knew that being reincarnated as a hen was the best thing that ever happened to him… ever!!!

The joy kept coming and as he was just about to lay his third egg he felt an enormous smack on the back of his head and heard his wife shouting “Brian, wake up you drunken bastard, you’re shitting the bed!”

SQL 2008 upgrade to SQL 2012


Our SQL 2012 project started with getting a sandbox VM configured. Installing SQL 2008 and subsequently upgrading the instance to SQL 2012. Went swimmingly. No real issues.

The First Upgrade
We scheduled the upgrade of our development instance for April 23, 2014. I kicked off the installer at 4:01pm ET on 4/23/2014. At approximately 4:45, I was presented with this error:


TEXT: The folder ‘’ does not exist. The folder is expected to exist to set permission on it. Examine why the folder does not exist and recreate it.

Quick aside: The error message is pretty specific and anybody that takes the time to read it would know what the problem is. This is really all you want from an error message, so kudos to Microsoft for this portion of it.

Before clicking OK, I went out to my drive to look at my directory structure. Turns out, there must have been some issue when I first installed this instance because the directory structure looked like this:
–This contained all of my databases

–This had just been created in the last few minutes

–These were empty and apparently created during the installation, but I then reconfigured SQL to not use them. Or, so I thought 

So, I renamed the ‘jobs.off’ and ‘log.off’ directories to remove the ‘.off’ portion. Easy enough. I find it really interesting that the installer created its own Data directory, but wouldn’t do that for the JOBS directory.

I then clicked on OK in the error dialog hoping the installer would retry the operation and continue. No dice on that.

About 2 minutes after clicking OK, the upgrade process finished with this lovely dialog.


There is nothing quite like seeing RED on your summary screen. Summary is basically saying that everything worked, except for the database engine. You know, the most important part. The heart of everything. That part failed, but hey…your tools will work.

I also received a message that the computer needed to be restarted. So, of course, whenever there is an error first step is to reboot. So, I did that.

After the reboot, I ran the SQL 2012 setup.exe again (right-click, run as Administrator). Went through all of the beginning dialogs without an issue, setup rules, checks, product key, blah, blah, blah. When I got to the ‘select instance’ page, it correctly listed the SQL 2008 instances as well as both the SQL 2008 and 2012 versions of the shared components.


I chose our DEV instance to upgrade and clicked Next and was moved to the ‘select features’ screen.


The instance was pre-selected and I couldn’t click or unclick anything, so I just clicked next of course and was given this error.


TAG: There are validation errors on this page. Click OK to close this dialog box. Review errors at the bottom of the setup page, then provide valid parameters or click Help for more information.

At the bottom of the screen is “there are no features selected for upgrade.”

What do you mean there are no features selected for upgrade? The instance is selected right on the same screen!

This was the time I started spinning my wheels for probably 30-45 minutes. A lot of looking at things on the server, rebooting the server and Googling everything I could think of.

I found a lot of blogs that spoke about this ‘no feature selected’ error, but their ‘select feature’ dialog didn’t list their instance properly. This was not my situation.

I also found a number of blogs that indicated I needed to uninstall my instance. This was not going to happen as my DEV instance was still fine – it was still SQL 2008 and was functional.

Of course, throughout this, I had reviewed my logs in the C:\Program Files\Microsoft SQL Server\110\Setup Bootstrap\Log directories. I finally found the big clue in the file “Summary_A2SQLDEV01_20140423_171837_GlobalRules.txt”. Here is one section of the file (I removed a couple columns for readability sake):

Product features discovered:

Product Instance Instance ID Feature
SQL Server 2008 sqldev mssql10.sqldev Database Engine Services
SQL Server 2008 sqltest mssql10.sqltest Database Engine Services
SQL Server 2008 Management Tools – Basic
SQL Server 2008 Management Tools – Complete
SQL Server 2008 Integration Services
SQL Server 2012 sqldev.inactive mssql11.sqldev Database Engine Services
SQL Server 2012 Management Tools – Basic
SQL Server 2012 Management Tools – Complete
SQL Server 2012 Integration Services

The clue is that there is a SQL 2008 “SQLDEV” instance as well as a SQL 2012 “SQLDEV.inactive” instance. What the heck? I thought it was upgrading my instance, not creating a new ‘inactive’ one? But, OK. hmmm.

At least I had a new keyword to Google with. I read a few more things and developed a strategy to remove the ‘inactive’ or ‘orphaned’ instance.

First, determine the ProductCode (GUID) of this inactive instance, then uninstall it from the command line and then retry the upgrade.

Determine product code:
In the log directories for the most recent failed attempt, I went to the Datastore directory and found the file “Datastore_Discovery.xml”. I opened this and searched for the keyword ‘inactive’. Found it. I then located the product code in the same section of the XML file.

Now that I had the ProductCode, I should be OK to uninstall it. But, being the cautious person that I am, I wanted to verify that this ProductCode was actually for SQL 2012 installation (and NOT either of my functional SQL 2008 instances), so I opened regedit and searched for 19B2A97C-02C3-4AC7-BE72-A823E0BC895A. I only found one occurance of it and it was specifically for SQL 2012, so I was confident.

I opened a command line and executed “msiexec /x {19B2A97C-02C3-4AC7-BE72-A823E0BC895A}.

This brought up a very generic and ominous “are you sure you want to uninstall this product” dialog (it does not indicate what the product is). After clicking yes or OK, a SQL 2012 screen appeared and within a minute it was completed.

Things looked clean.

I restarted the installer from scratch. Went impatiently though all of the screens waiting to get to the feature selection. When I got there and clicked next, the dialog moved to the instance configuration screen! Success. I clicked though the rest of the prompts and started the upgrade. After a short 7 minutes, I got this beautiful message.


I rebooted the server and then started the installation of CU8. It was slow, but was progressing. After about 10 minutes, my remote desktop session disconnected and wouldn’t reconnect. I tried pinging my DEV server with no reply. VM had crashed? In the middle of the upgrade? How in the world would SQL Server installer handle this? My evening was shot.

I contacted our support guys and shortly after my pings started getting answered, I got the ‘OK , try again’ email. As I logged back in, I didn’t know what I’d find in terms of a broken instance. But I was greeted with the wonderful “upgrade progress” dialog. The session had continued to run the entire time I couldn’t get to it. The VM had not crashed, the problem was just with my communicated with the VM. Phew!

Another 15 minutes of waiting before I got this:







Richard Sherman and Erin Andrews

Immediately following the Seattle Seahawks NFC championship game victory over the San Francisco 49ers on January 19, 2014, Erin Andrews interviewed Seahawks cornerback Richard Sherman. Here is the interview.

Sherman has been widely and viciously attacked for his over-the-top rant.

A little context

  • Sherman had just completed the biggest game of his life.
  • He had just made the biggest play in that game.
  • His team had just advanced to the Super Bowl.
  • Sherman is a very emotional, loud, trash-talking player. This is well known.
  • After the final play of consequence (not including the kneel downs), Sherman was pushed in the face by Michael Crabtree.
  • I think it is a safe assumption that Crabtree and Sherman were jawing at each other for the entire game.
  • So, after all this, Erin Andrews and her producers at Fox decide to get Sherman live on camera immediately after the final gun sounds.

A few questions

  • Was the end result not predictable?
  • Was it not understood that he would be emotional with tons of adrenaline flowing?
  • Did Fox hope that he would say something loud and perhaps over the line? Or at least near the line?
  • If Fox truly didn’t want this to happen, were they stupid enough to not expect it?
  • Could they have recorded the segment and aired it 30 seconds later if it was appropriate?
  • Could they have waited 10 minutes to interview Sherman?
  • Were there not other players available for comment?

My Take

Sherman is a human being. He is not a robot. To expect him to complete this game one second and flip the switch to non-game mode the next second is stupid and naïve.

We want our football players to be aggressive. They have to be aggressive to be employed at the NFL level. We want them to rise to the occasion at the most important and most stressful times. Is it fair to expect these same players to be aggressive, violent AND to be subdued immediately following a game?

The analogy I would draw is some of the new ‘targetting’ rules in the NFL. We want defensive backs to be aggressive and not give up receptions or big plays, but if a receiver lowers his head 6 inches, they are supposed to hold up and not complete the hit they have been making their whole lives. Again, these are people not robots.

I am not a Seahawks fan. I am a long suffering Lions fan. I had not dog in the race in the NFC title game, but I think Sherman was fine and is being wrongly criticized. If you are angry for what happened, blame Fox and Erin Andrews. Although, I think Andrews handled the outburst as well as possibly could be expected of her. But, she truly only has herself and anybody in the Fox booth to blame.

2013 Michigan v 2012 Michigan State


The UM football team underachieved in the 2013 season. They finished 7-6 after they were embarrassed in their bowl game. They played some close games, but so what, close isn’t good enough. They were probably 4 plays away from being 11-1 in the regular season (with the only clear loss coming against MSU).

But, could close games in 2013 mean anything for the 2014 season? Maybe. To believe this is even a possibility, you just need to look at the 2012 Michigan State University team; keeping in mind that the 2013 MSU team put up an incredible 12-1 season, including a Big Ten championship and a Rose Bowl victory.

Following the 2013 UM season, newly hired offensive coordinator David Nussmeier famously said this: “We were 11 points away from being 11-1”.

Following the 2012 season, MSU head coach Mark Dantonio made this statement: “When you look at last season, we were so close in so many different areas from having another 10, 11-win season”

Granted Dantonio didn’t identify the exactly number of points in his statement, but the sentiment is the same as the Nuss statement. They were very close to having a very good season.

Both teams were very unlucky at times. They were both bad at times and they both had some good moments.

So, this got me thinking….how similar were these two teams? Lets look.


  Record Bowl Close Losses Close Wins
2012 MSU 7-6 Buffalo Wild Wings Lost 5 by 13 points Won 4 by 12 points
2013 UM 7-6 Buffalo Wild Wings Lost 4 by 11 points Won 3 by 15 points

Had MSU lost all their close games, they would have gone 3-10. If they had won all the close games, they’d have been 12-1. Had UM lost all their close games, they would have gone 4-9. If they had won all the close games, they’d have been 11-2. Of course, if they had lost all close games, both teams would have played one fewer game due to not being bowl eligible.

Truly astounding how close those numbers are.

Here are some schedule-related similarities. Also amazing.

  1. MSU started the season with a win over a ranked team in Boise State. They then had a blowout win over CMU.
  2. UM started the season with a blowout win over CMU. They then beat a ranked Notre Dame team.
  3. Each team had comfortable wins over Minnesota.
  4. Each team lost to Iowa by 3 points.
  5. Each team lost to Nebraska by 4 points on their home field.
  6. Each team lost to Ohio State by a single point on their home field.
  7. UM beat MSU in 2012. MSU beat UM in 2013.

Weird, huh?


  Passing Yards Rushing Yards Total Offense First Downs Turnovers
2012 MSU 209.9 149.4 359.3 10.7 18
2013 UM 247.8 125.7 373.5 11.4 21

Again, very close. Passing yards shows a clear advantage towards 2013 UM, while the rushing yards is equally slanted towards 2012 MSU. Lets look at the players that put up those numbers.


  Attempts Comp Yards Comp Pct TD INT
Andrew Maxwell (MSU) 466 234 2606 52.5 13 9
Devin Gardner (UM) 345 208 2960 60.3 21 11

Gardner was clearly superior in 2013 than Maxwell was in 2012. I don’t think many people would argue with this.


The 2012 MSU team’s play calling duties were in the hands of offensive coordinator Dan Roushar, who left MSU to work for the New Orleans Saints following the 2012 season. He was replaced by Jim Bollman, who along with Dave Warner called the offensive plays in the turnaround 2013 season.

The 2014 Michigan team will only have one coaching change of note from the 2013 team and that is the firing of Al Borges and subsequent hiring of Dave Nussmeier as offensive coordinator. This means a new play caller for the coming season.


There are a few glaring differences between the two squads. Rushing offense and overall defense are the biggest.


  Carries Yards TD Receptions Yards TD
Le’Veon Bell (MSU) 382 1793 12 32 167 1
Fitz Toussaint (UM) 185 648 13 18 203 0

Le’Veon Bell was probably the single biggest difference between these two teams. Michigan had nobody that even comes close to what he produced. But Bell was not on the team the following year when MSU had the big turnaround.


  Passing Defense Rushing Defense Total Points Allowed
2012 MSU 175.8 98.6 274.4 212
2013 UM 231.3 140.2 371.5 349

WOW. Yeah, I guess its safe to say MSU defense was considerably better. And their defense improved even further from 2012 to their big 2013 season.


The other difference, and I’m not sure if it is a ‘big’ difference or not, is the results in the Buffalo Wild Wings Bowl. MSU beat TCU 17-16 in the 2012 BWW Bowl. UM was housed by Kansas State 31-14 in the 2013 BWW Bowl. Does this provide momentum heading into the following season? I doubt it especially when there is large turnover of players. But, as a program, it might add a little bit of confidence and swagger.


So, does this stuff mean anything? ANYTHING AT ALL?

If nothing else, it shows an incredible similarity between these two teams. Both underachieved. Both lost close games. Both lost games at home and on the road. Both won close games. Both turned the ball over too much. Both were very disappointed in the results of the season.

Obviously, we do not know until the 2014 season rolls around, but I think it at least shows a season based on close losses can possibly lead to a much better season the following year. The other possibility is that MSU having core strengths of defense and rushing is a much better foundation for success in future years than UM’s core strength of … of … help me out here. What was their strength?