Categories
Airtel Apple iPhone

The iPhone 3G[S] GPRS on Airtel India

I picked up my factory unlocked iPhone 3G[S] on a trip to Malaysia in September. To my pleasant surprise, Internet tethering, and MMS were already active and working quite well in Malaysia.

Upon arriving in India and popping my Airtel SIM into the phone, the phone worked fine but no data was working. Since the 3G[S] isn’t officially supported on Airtel or any Indian carrier, I could not set the EDGE network settings. Apple removed the ability to change network settings in a previous firmware upgrade. If you jailbreak your phone, I believe there is a way to re-enable the EDGE settings easily. However, if you’re not jailbreaking your iPhone, it’s a little more complicated. I tried to download and install a profile for Airtel that’s usually used for enabling tethering and MMS but that didn’t work.

I then deleted the profile from the phone and rebooted it. Upon reboot, it was working perfectly. I also had to make sure that 3G was turned off. I can’t be sure what finally made it work but I have a feeling it was turning 3G off in the Network settings. Try that first and if you still have trouble, then try using the profile.

Related Posts:

Categories
Airtel Apple Delhi India iPhone Vodafone

Will India Leapfrog the Apple iPhone 3G[S]?

I am writing (most of) this post on my iPhone 3G[S] using Airtel in New Delhi. The 3G[S] is not available in India yet and there is no information publicly available about a pending release or pricing.

I suspect, that Apple is terribly disappointed with iPhone 3G sales through its Indian partners, Airtel and Vodafone. On the flipside, Apple provides no support for the iPhones they sell in India. The only support available is through the carriers, who, from experience and from what others have said, can’t even properly activate an iPhone. Apple really can’t blame them.

In India, why has Apple abandoned their philosophy of controlling every aspect of their customers’ experience with their products? The 3G sells through official channels for anywhere between Rs. 30k and Rs. 35k. It’s not cheap by any standard. Blackberry, on the other hand is selling all their models in India like hotcakes. A few people I have met who bought iPhones through official channels in India have exhibited an incredible amount of frustration at the device and the (lack of) support behind it. One person said it took Vodafone almost a month to get data working on his iPhone and they had no answer for his dropped calls. Not exactly another notch in Apple’s customer service utility belt.

Those in India who bought the phone through unofficial or grey market channels have paid a premium for the device. They face extreme frustration when dealing with the carriers and they knew they would get no support from Apple (unless they were lied to by the vendor and told that they would get support from Apple – yes, vendors in India do lie). For the moment, Apple has lost the Indian high-end mobile phone market to Blackberry and Nokia. Until the carriers offer better service, true unlimited data plans, and better speeds, only gadget freaks like me and those trying to be seen with the sexiest phone on the market will be paying the massive premiums for an iPhone in India. Currently, an unlocked (not sure if it’s factory or hacktivated) iPhone 3G[S] sells for anything between Rs. 45,000 (USD 980) and Rs. 55,000 (USD 1,200) in places like Khan Market in New Delhi.

My bet is that India will see an iPhone 3G[S] sometime in the late Spring at which point, Apple will be getting ready to roll out the next version of the iPhone just a few months later in the US and other countries. Come on Apple, haven’t you figured out that Indians will gladly pay a premium for great hardware. It’s the software they will never pay for.

Related Posts:

Categories
Apple Database iMac MacBook MySQL OS X

MySQL 64bit, Perl 32bit and OS X Leopard

This is a little tip on how to get Perl(32bit) working with a 64bit version of MySQL on OS X Leopard.

I was working on a small project today that required MySQL 5.067 and I opted to do it in Perl 5.10. You may remember a post that I put up in August describing how to compile MySQL 64 bit for OS X Leopard. Well, since then I also compiled and installed Perl 5.10 (not replacing Apple’s system install of Perl). I wanted to take advantage of some of the Perl 6 features that have been backported to Perl 5.10 (the first Perl release in two years).

Back to today’s project, I decided to use the awesome Class::DBI Perl module to do my little project. I wrote all my code and began to run it in the perl debugger and realized that I need to install the DBD::mysql module. During the installation process for DBD::mysql, the Perl module is compiled using the mysql libraries and header files. Compilation wasn’t a problem. It’s when we got to the ‘make test’ step that all hell broke loose.

To cut a very long story short, I kept getting the error below:


# Failed test 'use DBD::mysql;'
# at t/00base.t line 21.
# Tried to use 'DBD::mysql'.
# Error: Can't find 'boot_DBD__mysql' symbol in /Users/pankaj/.cpanplus/5.10.0/build/DBD-mysql-4.010/blib/arch/auto/DBD/mysql/mysql.bundle

I dug around a bit and decided to run the installation manually. The problem here has to do with compiler flags that were used for mysql. MySQL was compiled as a 64 bit Leopard binary. However, Perl 5.10 was compiled as a 32bit binary because many Perl modules don’t support 64 bit out of the box.

To solve the problem, I had to recompile the mysql client libraries:


--($:~/src/mysql-5.0.67)-- export ARCHFLAGS="-arch i386"
--($:~/src/mysql-5.0.67)-- CC=gcc CFLAGS="-O3 -fno-omit-frame-pointer" CXX=gcc CXXFLAGS="-O3 -fno-omit-frame-pointer -felide-constructors \
-fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql.32 --without-server --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --enable-shared
--($:~/src/mysql-5.0.67)-- make
--($:~/src/mysql-5.0.67)-- make test
--($:~/src/mysql-5.0.67)-- sudo make install

Once the mysql client libs were done compiling and installed into /usr/local/mysql.32, I changed my PATH to ensure that the newly compiled mysql libraries and binaries were picked up before anything else.


export PATH=/usr/local/mysql.32/bin:${PATH}

Once that was done, I went back to my DBD::mysql source directory and built it using the following commands:


--($:~/src/DBD-mysql-4.010)-- perl Makefile.PL --libs="-L/usr/local/mysql.32/lib/mysql -lmysqlclient -lz -lm" --cflags="-I/usr/local/mysql.32/include/mysql"
--($:~/src/DBD-mysql-4.010)-- make
--($:~/src/DBD-mysql-4.010)-- make test
--($:~/src/DBD-mysql-4.010)-- sudo make install

This time, make test ran beautifully with a few minor exceptions because I didn’t actually give it a mysql db to connect to.

The mysql 32bit client can easily connect to the 64 bit server. Perl, Class:DBI are now very happy and the application is running as planned.
[ad#post]

Related Posts:

Categories
Apple MySQL Open Source OS X

Running MySQL on OS X Leopard

I’ve recently gotten back into some development and needed to run MySQL on my Leopard computers. The easy way out was downloading and running MAMP (a great pre-built package of Apache and MySQL). Unfortunately, I hated starting the Apache and MySQL daemons manually.

I created OS X launchctl scripts to start Apache and MySQL but I hated the fact that I was maintaining two installations of Apache (the one that comes with OS X and the MAMP one). I wanted one simple installation of everything that would start automatically. Also, occasionally, weird things would happen with permissions and I’d have to shut everything down and restart again.

It’s been some time since I compiled my own software so I was looking forward to compiling MySQL from scratch. The first thing I found was this great post on Hivelogic about compiling MySQL. I’m not going to regurgitate what’s in the post but I’m going to highlight the configure flags for Leopard. Most times, when compiling applications, getting all the flags right is the only way to ensure your specific OS and architecture are properly supported in the compilation process and it’s the only way to squeeze out the best performance.


CC=gcc CFLAGS="-O3 -fno-omit-frame-pointer" CXX=gcc \
CXXFLAGS="-O3 -fno-omit-frame-pointer -felide-constructors \
-fno-exceptions -fno-rtti" \
./configure --prefix=/usr/local/mysql \
--with-extra-charsets=complex --enable-thread-safe-client \
--enable-local-infile --enable-shared

Make sure you change your root (data base administrator password) by running:

/usr/local/mysql/bin/mysqladmin -u root password 'new-password'
/usr/local/mysql/bin/mysqladmin -u root -h localhost password 'new-password'

Don’t forget to secure your server as indicated on HiveLogic.

My plist file for automatically launching MySQL under MAMP is here. Feel free to compare it to the post at HiveLogic or change it to suit your needs. If you have any suggestions on how to improve it, please let me know.

Related Posts:

Categories
Airtel Apple Delhi India iPhone Jailbreak

iPhone 2.0 Apps on Airtel India

Here are some screenshots of apps I have downloaded from the Apple App store. All the apps are running on a 1st generation 8gb iPhone that was recently upgraded to the 2.0 firmware. My carrier is Airtel in New Delhi and this post is being made with the WordPress app for the iPhone.

photo

photo

photo

photo

photo

photo

photo

Related Posts:

  • No Related Posts