AT&T’s Unlock Policies Cost It Yet Another Loyal Customer

I have been an AT&T wireless customer ever since I got my iPhone 3G. AT&T service has been average, with a lot of dropped calls from time to time. Overall, I am okay with the service and was planning to stay with them. A recent rejected unlock request changed my mind.

I had a HTC One X last year. Before I traveled internationally, I submitted an unlock request. It was approved right away even though the phone was still under contract. This year, I got a new iPhone 6 plus, and I am planning to travel again.I submitted an unlock request again, but the request got denied.

After multiple attempts to use the web form, I tried to call them and explained to them that I am planning to travel internationally and wish to use my phone with a different carrier. No dice. They said I needed to finish my contract first before they could unlock my phone. I explained that I submitted a request last year for my HTC phone that was still under contract and that got approved. They didn’t know why my previous request got approved but kept insisting that I had to finish my contract first. One representative told me that some users got their phones unlocked, went away with the unlocked phones, and never returned to US. That’s why they did not approve unlock requests for international travel. I could see that happening with new users, but I have been with AT&T for several years. How can they treat a loyal customer like this?

I can understand the they have policies in place to keep their customers. However, I think it’s doing quite the opposite for some customers. I researched the unlock policies for AT&T’s competitors and found that Verizon does not lock their 4G LTE devices. If I bought an iPhone 6 plus with Verizon, I do not need to unlock my phone at all because it’s already unlocked. Here is Verizon’s unlock policy.

When I mentioned this to a representative, she said she is happy to help me terminate my contract. It does not seem like they want my business. They would rather lose a customer than help me unlock my phone. I finally gave up and decided to leave AT&T after my current contract ends. I don’t want to deal with this anymore every time I want to travel internationally.



Coursera: R Programming Week 3 Tips

The week 3’s assignment is the easiest one. If you can figure out the sample program provided, the solution is very similar to the sample code. You only need to replace a few strings to get your assignment done.

Someone in the class forum wrote a small program to verify the assignment. I have modified it and here is the listing. BTW, I do not have access to the forum any more and I do not know who is the original author. If you are the original author, please let me know and I’ll mention your name in this post. Once you are done coding, put this code in the same directory and source it.

# Test your code
# generate matrix, and the inverse of the matrix.
size mymatrix mymatrix.inverse #
# now solve the matrix via the cache-method
special.matrix #
# this should take long, since it's the first go
print("Solving the matrix for the first time.")
time1 special.solved.1 time2 print(time2 - time1)
# this should be lightning fast
print("Solving the matrix for the second time.")
time1 special.solved.2 time2 print(time2 - time1)
# check if all solved matrices are identical
print(identical(mymatrix.inverse, special.solved.1))
print(identical(mymatrix.inverse, special.solved.2))
# should return TRUE

Uncertified Lightning Cable (almost) Killed my MacBook Pro

I recently purchased an iPhone 6 plus and am in need of more lightning cables. The certified lightning cables are expensive, so I was looking for a good noncertified lightning cable. I then found a combo set which includes a 3 in 1 cable and a 8000 mAh external battery for only about $14. This sounds like a very good deal. I ordered it because of the good reviews.

When the package arrived, I was pleasantly surprised that the build quality of the  battery and cable is very good. It also came in a handsome box. The package seems like it costs a lot more than its cost.

The problem occurred when I used the cable to connect my iPhone to my MacBook Pro. The moment I connected them, I saw a message on my iPhone saying that the cable is not certified and it might not work properly. I also noticed that my MacBook Pro turned off automatically without any warning. After that, I was not able to turn my MacBook Pro on any more. The charger flashed orange light and if I pressed the battery check button, there is no light or anything. It’s like there is no batter in the system.

I first thought my MacBook Pro is done for and I needed a trip to Apple Store. From my past experience, it could take days before I get my computer back. I decided to try fixing it myself. There is a thread in Apple’s support forum and this seems like a common problem. Someone suggested that disconnecting and reconnecting the battery connector might fix the problem. So, I opened up my MacBook Pro, disconnected the battery connector and reconnected it again. Guess what, it did fix the problem! If you have not opened up a MacBook Pro before, here are some pictures to help you.

My MacBook Pro is a Mid 2012 model. If you have a different model, there is a great web site for dis-assembly videos.

First, place your MacBook Pro upside down on a flat surface. Use a fine Phillips screw driver to unscrew the 10 screws.


I used a size PH 000 screw driver from this set. Note that the 10 screws are not of the same size, it’s recommended that you write down the location of each screw. Carefully remove the bottom part.


Gently pull out the battery connector, wait for a few seconds and reconnect it again. Do not remove the battery, it would void your warranty. That’s it. Before you put the bottom cover back, you can try to push the battery check button on the side to make sure the computer does recognize the battery now.




Coursera: R Programming Week 2 Tips

The assignment for week 2 is kinda tough if you have not used R before. The video lectures also did not prepare you for it. If you have not taken the swirl tutorial, I strongly recommend that you finish it at the beginning of the week 2. You also want to start working on the assignment as soon as possible.

Derek Franks wrote a great tutorial. If you follow the step by step tutorial closely, you should have no problem finishing some problems in assignment 1. Here is the link to the tutorial:

The second challenge I had about this assignment is that I did not know how to return a data frame in a function. After experimenting a bit and I finally got it to work. Here are the code for returning a data frame in a function.

## initiate the data frame
results <- data.frame()

## loop through the files
for (i in id) {
    ## read file and get completed cases
    ## add to the data frame.
     results <- rbind(results, data.frame(id=i,nobs=completed_cases))

## return the data frame

Function cor is used in one of the problems, but it’s not taught. You are supposed to figure it out by yourself. The usage is actually quite easy. Suppose you read the file and store it in a data frame called data. To calculate the correlation between column 2 and column 3, you use corr this way.

cor(data[,2], data[,3])

Coursera: R Programming Week 1 Tips

After taking The Data Scientist’s Toolbox in the Coursera’s Data Science Signature Track, R Programming is my second Coursera course. The Data Scientist’s Toolbox is very easy, I only spent like a few hours each week to finish the quizz and assignment and I always waited until the last day to do it. When I worked on the first programming assignment for R programming, I still waited until the due day. However, I then realized the lectures did not prepare me for the assignment! After working non-stop for several hours straight, I finally submitted the first assignment on time. Here are some of the tips I gather during the course. I hope it’s useful for someone.

Week 1 is the easiest one, because there is no programming assignment. Remember there is an optional swirl assignment? I strongly recommend finishing this assignment this week. It has a lot of materials which are not covered in the lectures. One added benefit is that you can get bonus points for this assignment. Please check this web site for more details about swirl package.


Set-Top Media Players Supporting DVD Menu – 2015

We published an article which recommends several set-top media players supporting DVD menu in 2010. Those players are no longer in production. Here is a list of players which you can buy now in 2015.

Macs Running Yosemite Freeze on Booting

We recently had some reports about Macs freeze on booting. The computers are all running the latest Yosemite. Here are the possible fixes for this problem. I listed them here with the detailed instructions on Apple’s website.

  1. Reset NVRam.
  2. Reset SMC.
  3. Boot to Safe Mode and reboot again.

On most machines, you only need to reset the NVRam. There is one machine that I used all three methods to get it to boot normally. Note that these are also the general procedures when you have problems with booting a Mac. You can try them even if the machine is not running Yosemite.

[Update: 4/1/2015]

You could try to delete BootCache.playlist file if all else fails.

  1. Press (Command+S) when the machine boots up to enter single user mode.
  2. Enter the following
    /sbin/mount -uw /
    rm -rf /System/Library/Caches/*
    rm /private/var/db/BootCache.playlist