Aluminum Unibody MacBook Optical Drive Noisy, Buzzing, and Vibrating Fix

I have had my Late 2008 Aluminum Unibody MacBook for over 3.5 years now. I had not used my optical drive in quite some time, and went to watch a DVD today. The optical drive made a loud buzzing sound and seemed to vibrate more than usual. I opened the MacBook up and discovered that downward pressure on the optical drive made the problem worse, while wedging a screwdriver under the optical drive and applying pressure upwards made the noise disappear.

After the Aluminum Unibody MacBook’s introduction in Late 2008, Apple quickly changed the MacBook Pro lineup to the Aluminum Unibody design and all MacBook Pros from Mid 2009 through Mid 2012 have used a similar unibody design. This fix may also work for other MacBooks, MacBook Pros, or other Computers with slot-load Optical Drives. The fix does require disassembling the optical drive and will most likely void your warranty.

The fix is to disassemble the Optical Drive, bend the bottom aluminum cover of it outwards to relieve the pressure on the disc that causes the buzzing sound and vibration, and reassemble the Optical Drive. Here are pictures and instructions on how to do this:

Step 0. Open up your MacBook so that you can see all of the internals.

Step 1. Remove Connectors and Screws

Disconnect the Optical Drive connector and the Connector that covers the Optical Drive L-Bracket screw. Unscrew the speaker and the T-Shaped mount that covers the optical drive.


Dojo / Dojox Mobile mblDomButton Icon List for Android and iPhone Themes

The Dojo Mobile Android and iPhone themes contain default icons that can be used in widgets, such as dojox.mobile.ListItem and dojox.mobile.ToolBarButton widgets. These icons all start with the prefix “mblDomButton”. I could not find a detailed list of these icons, so I searched through the Android and iPhone CSS files to find everything with the mblDomButton prefix. I have an Android and iPhone page listing these icons and displaying them, both shown below.


Automatically Take EBS Snapshots and Delete Old Ones with PHP Script

I am a big fan of Amazon’s RDS product, which takes automated nightly snapshots of your RDS Storage and deletes old snapshots after a specified amount of time. After reading that Amazon’s EBS drives sustain a 0.1% – 0.5% Annual Failure Rate, I also wanted to take automated nightly snapshots of my EBS drives. Deleting snapshots after a certain number of days was also of interest, because this way I am not over-paying for snapshot storage at Amazon or removing snapshots manually. I also wanted to email the results to myself after backups were taken.

I did some searching on Google and found a nice script by Chris at Applied Trust Engineering, Inc. that runs PHP from the command line to create an automatic snapshot. I used this script as an example to setup my script, so thanks, Chris. My script has support for:

  • Backup Multiple EBS Volumes
  • Protect against script running again and creating another snapshot too soon
  • Delete Snapshots after a Specified Period of Time
  • Script outputs Detailed Snapshot Information for these 5 categories:
    • Snapshots that succeeded
    • Snapshots that failed and had errors
    • Old Snapshots that were removed
    • Old Snapshots that had errors while trying to remove
    • Snapshots that were preserved
  • Includes PHPMailer code to email results of script to yourself

Script Setup

You will need: (all links open in new window)

  • My ebs_backup.php Code (download is a zip) (or look below)
  • Stores snapshot information in “./snapshot_information.json” – Make sure PHP can write this file
  • Configure the lines of code within the configuration comment blocks
  • Run script periodically to your needs with CRON or whatever
  • Requires AWS PHP SDK be configured for your AWS Account: http://aws.amazon.com/sdkforphp/
  • Optional PHPMailer Support to email results to yourself: http://phpmailer.worxware.com/ (configure PHPMailer at the very bottom of the script)

Screenshot of Output

Automatic EBS Snapshots


Twitter Fails to Uphold the Social Media Contract

In 1651, Thomas Hobbes published his definition of the the Social Contract Theory in Leviathan. In short, Hobbes wrote that men in the State of Nature possess all freedoms, but that will lead to men fighting with each other and killing each other over land and food. Men give up a degree of their freedom to enter into a Social Contract with a government and in return get protection. Jean Jacques Rousseau and John Locke went a bit further and said that a government exists to support the popular sovereignty of the people, there was a couple Revolutions in late 1700s, and not longer the Declaration of Independence was signed. But that’s history, so let’s focus on the present…

If you apply this theory to Social Media, you get the Social Media Contract Theory, which is pretty much the same concept. If people were out on a free-for-all internet they would end up destroying their personal images on websites like MySpace. Therefore, they give up a degree of their freedom to join private social networking sites such as Facebook and Twitter and in return their account and personal information gets protected.

In Twitter’s case, I disagree. Twitter is downright failing to protect their users. In the past two evenings, I have received a Direct-Message from two separate people that I am following that contains a curiosity-inducing message followed by a shortened link through bit.ly:

This link takes you to a Phising site:

How the 2012 Twitter Direct Message Virus (phishing scam) Works

From what I have been able to gather about the 2012 Twitter Direct Message Virus, it is a Phishing scam that collects your username and password when you login to the fake-login page. From there, it stores your username and password. Within a short period of time, another script, either on a server run by the Virus owner, or more likely by a server hijacked by a different Virus, the Direct Message Virus automatically logs into your Twitter account. It sends all of your followers a Direct Message (see above) with a curiosity-inducing message body and then a link to the fake Twitter Page (also see above). If one of your followers falls for the phishing scam and enters their Twitter username and password on the fake site, the virus will start the whole process over with their account. What’s even more concerning is that many people use the same Username and Password combination on other websites, meaning those are now vulnerable to attacks as well.

In my opinion, Twitter has created an environment which has increased their users base’s likeliness for falling for Phishing attacks. Additionally, their Direct Message security is apparently non-existant. Here’s my opinion on the matter:


Chrome Extension to Block News Feed Posts on Facebook

Today, North Carolina is voting on a Constitutional Ban of same-sex marriage and civil unions. While I am opposed to the amendment, my Facebook news feed has become quite cluttered lately full of other people’s opinions on the matter. I have created a chrome extension to make it easy to block these News Feed stories and easily unfriend the pesky poster…

changes to:

The Extension

Here is the Chrome extension that will block every post with the word “amendment” in it and allow you to easily unfriend the poster:

amendment_none.crx


Naming Conventions Matter – Case Sensitivity in MYSQL and File Systems

I have been in the process of transferring a PHP + MYSQL site built on CodeIgniter from a Windows server to a Linux server and have been dealing case sensitivity problems due to the CamelCase naming convention that was used in parts of the website. This post discusses different options that you should be aware of when deciding on naming conventions if you plan on making your application compatible with both Linux and Windows.

Naming Conventions Matter


Recursively Downloading the NCSU Campus Directory

NCSU provides a Campus Directory that allows you to search for a student or faculty member, and will return certain information as long as they have not opted to be removed from the directory. The directory is very useful for finding a fellow student’s information, but can be publicly viewed by anyone without limitation.

I have written a small recursive script in PHP to go through the entire directory and save each student’s year in school, major, and email. This demonstrates how easy it would be for a business to create a list and send students targeted advertising spam emails. Or even worse- how easy it would be for a hacker to create a list and send students personalized targeted phising emails…


About

My name is Caleb Lloyd. I studied Computer Engineering at North Carolina State University. I enjoy all aspects of Computer Engineering from Microprocessor Architecture to Embedded Systems Development to pure Software Development. This site is meant primarily as a place where I can post coding solutions that I have created for everyday problems. I welcome any comments on my posts, or comments through email if you would like to contact me- caleblloyd on gmail.