After buying a prepaid AT&T sim card to be used with my iPhone (mainly for data) while i’m in the US, I realized that AT&T blocks the data connectivity unless you have an iPhone plan on your AT&T account. But I found that when placing the same SIM on Android phone, the network data/internet connectivity works.
After reading about it quite a lot, I realized that many users are facing the same issue.. well.. I think I’ve found a full working solution for it!
What apparently is happening is that by default the iPhone pulls from AT&T an iPhone specific APN that blocks you if you don’t have a real iPhone plan on your account. To override this settings you can use Apple Configuration Utility to change the APN manually. You do NOT need to jailbreak your iPhone.
This is what you need to do to make the data/internet connectivity work on your iPhone with AT&T prepaid sim card. Please note that if you follow these steps I can’t take responsibility for any negative influence it might have while using it.
1. Place your AT&T SIM in your iphone
2. Make sure it finds the network and that you have a data package! The unlimited plan does not apply…
3. Download and install iPhone Configuration Utility from Apple (free) for your PC/MAC
4. Plug your iPhone to your PC/Mac
5. Create a new configuration profile on the iPhone Configuration Utility
6. Go to “advance” and create a new APN by giving it any name you want and any identifier you wish. Type the following in the relevant fields:
User Name: firstname.lastname@example.org
Proxy wireless.cingular.com port: 80
7. Save the profile and then select your iphone name under “devices”
8. Click on “install” button near the configuration profile name you just created (check your iPhone screen, you might be asked to tap on ‘Install’ there as well)
9. Turn on and off the Airplane mode (or restart your iPhone)
That’s it! now it should be able to access the web using the network data connectivity, same as the Android or any other device can do with the same SIM card..
When you’ll want to go back to your old SIM, just place it in and go to your settings on your iPhone and uninstall the profilfe. Or you can use the configuration utility to remove, what ever works better for you.
UPDATE (OCT. 5th 2011): You can now get a micro sim in the ATT store instead of the regular sized card, so you dont have to cut it if you’r using an iPhone4. They did not ask me to pay more for it. In addition, you should note that the GoPhone Unlimited plan with the unlimited data does not apply to smartphones including the iPhone (in regards to 3G Data). So you have to purchase a separate data plan (e.g. 500MB for 25$) to make the internet work for you.
UPDATE (DEC. 28th 2011): Several of you have asked about the iPhone 4S, some have already commented that this approach still works with the new iPhone and iOS 5.0.1, and now I confirmed it myself to be working OK.
It’s been a while since I wrote about how my Nokia is better than iPhone, and tough I think not much have changed (well.. maybe a little :)), I can’t argue against iPhone success.
This is why I decided to try (as many others) and gain some profits from iPhone/iPod touch apps. In order to that I had to start learning some new skills: using MAC OS and its “unique” concepts, developing in objective c (new language and syntax) and using a new IDE (xCode). Not a trivial task as I believed..
So today I wanted to share with you a great starting point for the later two skills I pointed out. Stanford university has a course called CS193P which teaches how to build an iPhone application. This course is available online including the lectures videos, slides and assignments.
The course and its assignments are built in a very constructive way from the language basics to a full featured application communicating with Twitter.
After covering most of the course and its assignments, I can try and conclude that not only it is an enjoying course, I also managed to gain a solid understanding about iPhone development. Moreover, they cover some really important best practices that I believe are hard to find if you just surf the web for iPhone code snippets.
So even if you past the point of understanding the objective c syntax and how to build a basic application, I really recommend going over the lecture slides, making sure you don’t miss some important practices.
For several months I’m playing with thoughts I have regarding how to integrate my blog with a website that I want to build for myself. Though there is not much content yet to publish, I wanted to have a platform that will allow me to easily publish my future ideas, projects and blog in one centralized place.
After exploring several options, I decided to use WordPress, and today I installed the platform on my hosting service. It took me less than an hour to set it up together with my old posts!
The installation process is an ease. You simply upload a compressed file to the hosting server, unpack it, create and configure a database, and from that point on all you have to do is to open the install page and follow the web based wizard.
Beside blogs management, the platform also allows to add pages, media and more easily and intuitively. It has a built-in blog import mechanism, so it was a matter of seconds to move my old posts at blogger to my new site.
Now I still need to fine tune some areas, but overall I’m really satisfied with the midterm results. I guess that the real test for it will come quite soon when I’ll be ready to publish the new content.
By then, I’ll be hoping that you enjoy the new look & feel :)
When I started researching on interacting with Google calendar API, I came across a cool feature offered by this API, and that is the event gadgets.
Although the calendar UI is quite fixed and developers can’t do much to extend it, Google did leave the door open for some extensions using this feature.
Event gadgets are like any other event on the user’s calendar, but how it looks is mostly up to the developer. It will appear as an icon on that event day, and when clicking on it, it will open an iframe which will show any given URL. The size of this iframe is also configurable.
To set it up using the .NET API library, simply create an event object and set the WebContentLink properties:
WebContentLink conetentLink = new WebContentLink();
conetentLink.Title = “Buy tickets”;
conetentLink.Type = “text/html”;
conetentLink.Url = “http://myserver/tickets.aspx?show=hair”;
conetentLink.Icon = “http://myserver/money-icon.jpg”;
conetentLink.Width = 200;
conetentLink.Height = 100;
The contect can be either images, HTML pages, or igoogle gadgets.
In Birthdays Synchronizer, I used this feature to create the birthday reminders on the users’ calendar. When the event is created, the friend name and picture URL are saved as part of the parameters on the gadget link, allowing my hosted page to show this information nicely to the user:
Well.. maybe it does require a little more work on the UI :)
For some time I am working on enhancing my Birthdays Synchronizer application. The last modification I made is to support Google calendar. But before releasing it I decided to upgrade the application look & feel to something more appealing.. :)
Since I’m quite experienced with the .NET framework, I decided to give it a shot and implement the change with WPF.
When I just started the development, I found that the MCV pattern is not working so well with WPF. This is mainly because the view layer of WPF, based on XAMLs, has enormous capabilities (the bindings in particular) which make it hard to follow the traditional controller-viewer separation.
Here comes the part where MVVM pattern comes in hand. MVVM stands for Model, View and View Model. The model is the data object we are working on. For example, a birthday object, consisting from the person name and birthday date. The View Model is the layer responsible for the business logic and the operations that supports the view. For example, saving the birthdays to Outlook or getting from Outlook the available calendar folders. The view is the actual UI. It relays on the View Model while the View Model itself is not relay on any view. This point is important to follow and understand. It means that the View uses the View Model for its operations, but the View Model must not know that it works with any specific view.
If you are just getting started with WPF development, I really recommend using the WPF MVVM toolkit. It adds a solution template to visual studio which allows you to create WPF projects following the MVVM pattern. The projects it creates have built-in solution folders for each MVVM layer and some classes to get you started. It also comes with a great document describing the MVVM patters in details and in a simplified language.
Good luck :)
After going through a rough semester, I finally have time to get back to the things I like..!
In this post I would like to talk about source controls.
During my last semester, I had to develop several projects together with my group. I searched for a way that we could work efficiently, just like in my real job where we develop in teams. Therefore I looked for a free source control solution. I wanted it to be simple to install, integrated into VS 2008 and most important – free.
After some trials and errors, I found almost all the things wanted from a source control hosting in xp-dev.com. This site offers free on-line subversion hosting (SVN) that supports all the features needed from a standard source control (versioning, multiple users, branching, etc) and it comes with 500MB storage waiting just for your usage. Since it is on-line, there is no need to deploy any server of your own.
The second thing that I needed is to integrate it into Visual Studio, so it will be simple and intuitive for the developers in my group. So I got a recommendation to use the AnkhSVN plug-in.. They really had done a good job with it! This open source plug-in installs easily and allows you to do almost everything from your IDE (once you connect it to your account with xp-dev): check-in, check-out, diff, branching, merging and much more. It really reminds the Visual Studio team systems except that there is no option to manage tasks.
Using these solutions allowed us to make our work in a group fast and very efficient – no more sending the code over mail, looking manually for the last changes and searching for older versions by looking in our Gmail accounts. During our intensive work on our project these free solutions did not fail us even once.
So if you ever need a free solution like that, even for your own projects – you should try it out.
It was all started after I forgot a few of my closest friends birthdays… I was frustrated that I could not keep track on those dates. facebook birthday reminders were not enough for me since I did not had the will nor the time to look for “today’s birthdays” each time I’m on facebook.
So then I thought, why not having a small application that will sync my friends’ birthday to my Outlook? Then I could keep track on those important dates and also sync it up with my phone!
Yesterday it was the time I decided to take this initiative forward, and developed my first facebook application! Feel free to check it out..
In the coming posts I will elaborate more on the development process and some tricks I learned making this application happen.
Stay tuned :)