Coloured iteadstudio PCBs

Good news everyone! iteadstudio is offering coloured PCBs at a lower cost. After I had my very first set of PCBs manufactured, I was thinking of making my next set of PCBs in a different colour. However I found the price difference to be quite big and might just stick with plain old boring green instead. Now that they’ve announced their new offering, I’d definitely go for a different colour for my next batch.

Continue reading "Coloured iteadstudio PCBs"

Firefox Desktop Notifications for Gmail

At work, I use Google Chrome mostly. When I access Gmail, it asks if I wish to enable desktop notifications, but oddly at home I don’t see it. That’s because I use Firefox. With so many tabs open, it’s definitely a good thing to have desktop notifications (something like Growl for Mac), especially since I use Google Chat on the Gmail page sometimes. I was hoping that Gmail detects a capable browser based on the availability of Javascript objects, instead of some stupid sites that detect the User Agent string, so that the functionality could at least be injected into the page using a Greasemonkey script or a Firefox plugin.

Continue reading "Firefox Desktop Notifications for Gmail"

Enable iOS 5 Multitasking Gestures on iPad 1

Now that iOS 5 has been released, it’s easy to enable multitasking gestures on the iPad 1, using the same trick as before for display mirroring. Edit the /System/Library/CoreServices/Springboard.app/K48AP.plist file and add a boolean key multitasking-gestures in the capabilities dict, and set its value to true. You can add both display mirroring and multitasking gestures to the iPad 1 using this method. That’s it! Alternatively you can use Cydia or redsn0w to do this for you.

Continue reading "Enable iOS 5 Multitasking Gestures on iPad 1"

My First Arduino

I finally bought myself an Arduino Uno this week. “Wait a minute… then what have you been using?” I hear you ask. Previously I had access to an Arduino Duemilanove, and used it to burn the Optiboot bootloader onto an ATmega168 that I had. The Duemilanove board used an FTDI chip which had additional pins brought out to an unsoldered header marked as X3. Following this guide by Kimio Kosaka, I downloaded the precompiled avrdude for Windows and used it to program the ATmega168 via the X3 header.

Continue reading "My First Arduino"

Python bindings for iTunesMobileDevice.dll

Oddly enough I can’t seem to find a Python wrapper for iTunesMobileDevice.dll. I did manage to find a C# equivalent called Manzana though, which is quite widely used. Anyhow, I bit the bullet and read through the ctypes documentation and wrote AMDevice.py which exposes some simple classes to handle connecting to an iPhone. I only implemented the minimal set of functions required to download and upload files to the iPhone, as I wrote this primarily for my iPhone SMS import script.

Continue reading "Python bindings for iTunesMobileDevice.dll"

Reducing power usage on the iCufflinks' ATtiny4

I came across this very nice article which documents steps taken to reduce the power usage on the ATtiny4 used in the iCufflinks. The process managed to shave off about 315 μA, which boosts battery life quite a bit: The overall effect this has on the product is that the 24 hour time between battery changes can be upped to 38 hours. That is a pretty good power savings for the day.

Continue reading "Reducing power usage on the iCufflinks' ATtiny4"

Stop iPhone Backup Encryption

Before the days when you could easily opt to use a “complex” passcode from the iPhone Settings, you had to manually use the iPhone Configuration Utility (iPCU). When I created a profile to use a complex passcode, I inadvertently forced my iPhone backups to be encrypted and now that the “Encrypt iPhone backup” checkbox is grayed out, I can’t stop encrypting my backups. But after I jailbroke my phone (because the baseband died), I had the option of mucking around with the system files to see if it could be undone.

Continue reading "Stop iPhone Backup Encryption"

SFF Server Build (Part 1): Short Cables

After 10 years, I decided to replace my 633 MHz home server with something more modern. The fans on the system were making a lot of noise, especially the Slot-‍1 CPU cooler fan, which I don’t think I can find a replacement for. Also, the motherboard was very choosy about the power supply, meaning I could not use the newer, more energy efficient supplies; the voltage monitors claim the voltage is out of the acceptable range and refuses to continue beyond the POST screen.

I chose the MicroATX form factor, and the most compact case is the Silverstone SG02F because it places the power supply on top of the board. Most other cases I’ve seen have a similar layout to an ATX tower, but with a height reduction.

The wires are long and unwieldy because they assume you are using a normal ATX case, in which case you need relatively long cables depending on how the case is laid out. However when building a SFF machine like this, it gets really untidy. I decided to reduce the length of the cables.

Here’s the before photo of the wiring - the worst offenders are the SATA cables, the case front panel wires, and the SATA power connector.

Wiring (before)

Continue reading "SFF Server Build (Part 1): Short Cables"

GNU patch and Windows UAC

If you’re looking for the GNU patch on Windows, you would probably have found the GnuWin32 project. If you try to run this program on Windows Vista or 7, you will be prompted with the UAC dialog, asking you to run the program with administrative rights. Windows Vista, when they introduced the User Access Control (UAC) feature, tried not to break existing programs by detecting which ones require administrative access. The usual suspects are installers that are probably named *setup.

Continue reading "GNU patch and Windows UAC"

Importing SMSes into the iPhone

Since my iPhone 3GS died, I have been using my dad’s Samsung Jet as a temporary replacement phone. I really can’t stand the resistive touch screen - tapping backspace will at times hit the T9 button when I’m composing an SMS. Also, I miss the display of SMSes as a conversation with both sent and received messages in a single place. I obsess over keeping chat history, so naturally I want to find a way to preserve these messages on the phone.

Continue reading "Importing SMSes into the iPhone"