Location Services in iOS 5 causing instability on IPad 1

I recently upgraded my iPad 1 and iPhone 4 to the latest version of Apple’s mobile operating system, iOS 5. I saw no problems with performance or stability on the iPhone, but my iPad was a wreck.  Safari regularly took 5 to 10 seconds to start and would crash often. Similar problems occurred in the Mail app. Typing text was slow and unresponsive.

A quick search of the web revealed many similar complaints. A couple days ago I found an article on the PC Magazine site indicating that a bug in the location services in iOS 5 leads to significantly decreased battery life. I disabled the Setting Time Zone feature in Location Services as suggested and saw an immediate improvement. Safari starts faster and is more stable, and typing is responsive.

Clearly there are some quirks with iOS 5 that need to be resolved. An additional bug that I found at work is that HTTP Live Streaming over and HTTPS connection no longer works (worked fine on iOS 4).

Posted in Computing, Mac | Leave a comment

Running FMS Flight Simulator on Windows 7

Remote-control helicopters and planes are quite popular these days.  I’ve been considering buying one, but am worried about the risk of destroying the plane just hours (or minutes) after the inaugural flight.

A friend told me about a software program that his 9 year-old son used to learn to fly a remote-control plane before switching to the real thing.  There are a couple software packages available that interface with a realistic-looking remote-control over the computer’s USB port.  It’s then possible to learn to use the controls with a flight simulator on a plane that is similar, if not identical, to the plane you intend to fly.

The most popular software package for R/C training is called Flying Model Simulator.  It’s completely free and allows for customized planes, landscapes, and controls.  I am looking at using the E-Sky 4-channel controller and figured it would make sense to verify that the FMS software functions on my Windows 7 system prior to purchasing the controller.

So, it turns out that installing FMS on Windows 7 isn’t as easy as I expected.  Here are the steps I had to take:

  1. Download the FMS software version 2.0 Alpha 8.5 (or newer if available)
  2. Run the FMS installer and use the default values.
  3. Run the FMS program, and observe an error dialog about “EComPort in module FMS.exe at 0008AFEC”
  4. Exit FMS
  5. Add a COM port to the computer.  Your options are:
    1. Connect a USB-to-serial-port adapter which will install the necessary drivers and configure a COM port (this is what I did with a Keyspan adapter).
    2. Create a COM port manually
  6. Run FMS again
  7. Observe a different error dialog reporting “D3DRM.dll is not loaded”
  8. Exit FMS
  9. Download the DLL from Plantraco and place the DLL file in the installation directory of FMS.
  10. Run FMS again
  11. Victory!

Hopefully this will prove helpful to others looking to run FMS on Windows 7.  I’ll be sure to add more information once I’ve used the E-Sky controller!

Posted in RC | Leave a comment

Unbelievable Board Game

This afternoon I stumbled upon a photo of a board game named Charge Large from Hasbro.  Reading the game description is like a play-by-play account of how the global economy collapsed:

Enjoy Great Credit, Without the Crunch!

In today’s economy, getting and keeping good credit isn’t easy. But now you can take the crunch out of credit with CHARGE LARGE, the game that makes buying, building and even borrowing pay of big!

Travel around the board using cash and your gold credit card to scoop up prime properties. Buy strategically, borrow wisely, and pay back quickly to earn a platinum card. (It also helps to hit the lottery and collect rent!) If you’re the first to have cash, a zero credit balance, and the coveted black credit card, you’ve beaten the credit card blues, and won the game!

Interestingly, this game is touted as a family-friendly board-game suitable for playing with children.  What a twisted mentality: everyone begins owing money and winning involves reaching a zero credit balance.  This is a game where everyone loses.

Posted in Uncategorized | 1 Comment

Apple Airplay

I began using Apple Airplay with my Apple iOS devices (iPhone, iPad, iPod Touch) and an old Apple Airport Express connected to my home stereo receiver. It’s pretty awesome. Airplay allows Apple devices to automatically discover Airplay-enabled devices, like AppleTV and the Airport Express, using Zeroconf broadcasts over the LAN.  The devices can then stream audio and video content to the Airplay devices by simply selecting the Airplay device as a speaker.  This is the first compelling example I’ve seen of a mobile device used as a media server and controller. I’ve become more interested in getting an AppleTV since experiencing how easy it is to use Airplay.

Posted in Computing, Mac | Tagged , | Leave a comment

Installing Fedora Core 15 on an Intel Mac Mini

Last night I tried to install Fedora Core 15 on my old Intel Core 2 Duo Mac Mini. I had downloaded the Fedora installation DVD and burned it to disc. I then powered on the Mini, inserted the disc, and held down the ‘C’ key to boot off the optical drive. The next thing I saw was the following error message displayed:

-----
     1.

     2.
  Select type of CD-ROM:
-----

The keyboard was completely unresponsive and I gave up on the installation for the time being.

I searched the Web and came up with a bug filed on the Redhat site regarding the Fedora DVD media not supporting bootup from machines that use Unified Extensible Firmware Interface (UEFI).  I then found this shortcoming documented on the Fedora installation documentation (duh).  The documentation suggests using a USB flash drive to boot up and then a DVD installation media for the actual installation.  I’ll try installing the Fedora Live image on a flash drive and then performing the installation from the full DVD.

 

Update – (9/14/2011)

I was unsuccessful installing the 64-bit release of Fedora 15 on my Intel Mac Mini.  However, I was successful at installing the 32-bit release.  The the 64-bit image did not boot from the installation DVD on my machine, most likely due to the UEFI issue mentioned earlier.  In the end, I chose to install Mac OS X Lion, which is probably a better use of expensive Apple hardware :)

Posted in Computing, Mac | Tagged , | 1 Comment

First post from my iPhone

I just discovered the WordPress app for iOS devices. It’s very intuitive and should make mobile posting much more convenient. I hope this inspires me to post more frequently. The cacophony of Facebook is at times overwhelming.

Posted in Computing | Tagged , | Leave a comment

Building Multicat on Mac OS X

I had to make some minor modifications to the Multicat source package in order to compile on Mac OS X.  Mutlicat uses the Linux realtime clock API by default; however, these APIs are not available in Mac OS X.   Therefore, it’s necessary to disable the use of the Linux realtime clock APIs by editing one of the C header files and the Makefile.  Of course, you’ll need the XCode development package installed.  Here are the steps I took to compile on OS X 10.6:

  1. Expand the mutlicat source archive:       tar -xf multicat-1.0.tar.bz2
  2. Change directory to the multicat source directory:    cd multicat-1.0
  3. Edit the file util.h
  4. Comment or remove the following line (line 24 in my build):   #define HAVE_CLOCK_NANOSLEEP
  5. Save util.h
  6. Edit the file Makefile
  7. Comment or remove the following line (line 5 in my build):    LDLIBS += -lrt
  8. Save Makefile
  9. Run ‘make’:    make
  10. To install globally, run:   make install

Ah, success:

Scott-Kidders-MacBook-Pro:~ scottkidder$ multicat
Usage: multicat [-i <RT priority>] [-t <ttl>] [-p <PCR PID>] [-s <chunks>] [-n <chunks>] [-d <time>] [-a] [-S <SSRC IP>] [-u] [-U] [-m <payload size>] <input item> <output item>
    item format: <file path | device path | FIFO path | network host>
    host format: [<connect addr>[:<connect port>]][@[<bind addr][:<bind port>]]
    -p: overwrite or create RTP timestamps using PCR PID (MPEG-2/TS)
    -s: skip the first N chunks of payload
    -n: exit after playing N chunks of payload
    -d: exit after definite time (in 27 MHz units)
    -a: append to existing destination file (risky)
    -S: overwrite or create RTP SSRC
    -u: source has no RTP header
    -U: destination has no RTP header
    -m: size of the payload chunk, excluding optional RTP header (default 1316)
Posted in Computing | Tagged , | 2 Comments

Multicat Utility from Video Lan

I recently encountered the following problem at work: Digital Video Broadcasting (DVB) service information (program title, air-dates, etc) is transmitted over a network using multicast UDP, and the route between the service information source and my system includes a network tunnel.  The UDP fragments are reassembled upon entering the tunnel and disassembled on the way out of the tunnel.  The buffering of the packets for reassembly leads to the UDP packets being received by my application in a slightly different order than they would have had the tunnel not been present.  My suspicion is that the tunnel was causing problems, and I needed to prove it.

It wasn’t possible to attach a transport-stream analyzer to the machine where my application runs.  So, I needed to capture the multicast traffic and analyze it on my laptop.  I had difficulty finding a tool that could capture multicast UDP traffic, but I eventually came across the multicat utility from Video Lan, makers of the awesome VLC media player.

Multicat fit my needs perfectly.  It can record multicast or unicast streams to a file, or even rebroadcast them in real-time.  In my case, I recorded the multicast stream and then replayed it to be analyzed with dvbsnoop.  Multicat is very light-weight, so I was able to compile it in a few seconds without any external dependencies.  Another good write-up on multicat is available here.

 

Posted in Computing, Uncategorized | Tagged , , | Leave a comment

Verizon iPhone Tracking Table

Yesterday I ran the iPhone Tracker application against my Verizon iPhone and was surprised that there wasn’t any location information in the CellLocation table that was referenced by the application.  I entertained the possibility that the Verizon CDMA version of the iPhone was not as devious as the GSM model available on AT&T.  I was wrong.

After reading a post that suggested the CDMA iPhones do collect location data, I examined the SQLite database stored on the iPhone and found a table called CdmaCellLocation.  This table contains all of the location information gleaned from CDMA cellular networks.

I’ve updated the OS X 10.5 port of iPhone Tracker to include data from the CdmaCellLocation table.  Check my earlier post for links to the source and binary packages.

The following image shows the tracker image for my cellular location data.  Surprise, I live & work in the San Francisco Bay Area.

Posted in Computing, Mac | Leave a comment

iPhoneTracker Ported to Mac OS X 10.5

There was a lot of publicity earlier this week regarding the discovery that the iPhone maintains a non-encrypted record of the device’s location.  The location database file is kept on the phone and in backups made through iTunes.  It is disconcerting that the existence of this location database file was not published by Apple, and that the file is not protected.  An application called iPhone Tracker was created to demonstrate the magnitude of the data collected by presenting the location data on an interactive map.

Curiosity got the better of me, so I decided to run the iPhone Tracker application against my own Verizon iPhone.  I discovered that the application was built for Mac OS X 10.6 only, but I use 10.5 at home.  So, I launched XCode and began tweaking the project configuration to compile on 10.5.  One hour later and it’s working great.

One thing that caught my attention is that there is no data in the CellLocation table that is part of the location database.  There is plenty of data in the WifiLocation table.  The iPhone Tracker does not use the WifiLocation table by default because, as the source code comments suggest, it is dodgy.

So, why does the Verizon iPhone not store location data from cellular networks?  Is it because the Verizon iPhone uses CDMA instead of GSM?  Or did Verizon request that Apple not store cellular location data?  Who knows, but I find it a bit reassuring to know that my whereabouts on the cellular networks are not recorded.

 

Update – April 23, 2011@14:30 PDT

The Verizon CDMA iPhone does collect location data.  It is stored in a separate table called CdmaCellLocation.   All builds will include location data from GSM and CDMA networks, if available.

Update – April 25, 2011@20:00 PDT

I updated the XCode project to support x86 and PPC architectures.  The binary builds have been updated, too.

Here are links to the Mac OS X 10.5 source project and different builds for the Cell- and WiFi-based configurations:

Posted in Computing, Mac | Tagged , , , , , | 8 Comments