msgbartop
Of Linux, Programming, and Singaporean Ramblings
msgbarbottom

15 Jun 10 My Nexus One Can Finally Send MMS!

After much tribulation, I finally got my phone to send MMS. It’s running on the M1 network.

I had called the helpdesk and searched the forum to no avail until a user named “trinityb4″ in the Google forum suggested a novel approach – resetting to default. After a reboot, voila!

So basically, the settings for M1 MMS are:

Name: M1 MMS
APN: miworld
Proxy: 172.016.14.10
Port: 8081
Username: 65 and your phone number
Password:user123
Server: http://mmsgw:8002
MMSC: http://mmsgw:8002
MMS proxy: 172.16.14.10
MMS port: 8080
MCC: 525
MNC: 03
Authentication type: PAP
APN type: mms

On that note, here is a link to the three telcos’ Internet APN settings on Lester Chan’s blog. For posterity’s sake, here are the settings (copied from the link):

Starhub

name: Starhub Internet
APN: shwapint
username: (blank)
password: (blank)

M1

name: M1 Internet
APN: sunsurf
username: 65
password: user123

SingTel

name: SingTel Internet
APN: internet
username: 65IDEAS (or blank)
password: IDEAS (or blank)

Tags: ,

22 Mar 10 jQuery Plugin for Tabs (Tabber Plugin)

I developed a custom plug-in for jQuery that creates a tab widget which can contain practically anything it. It’s a small, lightweight plugin weighing in at 1.3kB uncompressed. You can download the Javascript here and the CSS here.

Here is a demo of it at work.

(more…)

11 Mar 10 Starhub Tweeting & M1 Messing

It’s nice to have Starhub respond to a Twit when you post an issue related to its broadband connectivity. Although the problem is likely to have been resolved by the time I got the direct message (DM), it’s nice to know that they are listening.

Compare this experience with what I had with M1. Just a couple of days ago, I received my phone bill from M1 with over a hundred dollars charge to mostly my data charges. This is the second time I’ve got such an amount from M1 when previously my bills were around $30. You see, just two months ago, I activated a 1GB BlackBerry plan with M1.

The first month I got the bill, I figured, “Hey, it could be that the first month I choke up extraordinary charges becase I had more to transfer.” But when the second bill came, I guessed something was wrong. So I called the helpline. The first person I got through told me that I was using the wrong APN so that’s why the data charges were not counted as part of the BlackBerry data package. Fine, so I was then transferred to the technical helpdesk who then told me that third party applications cannot and will not count towards the BlackBerry data. I was flabbergasted! When I got the plan, no M1 personnel told me that third party applications on a bloody BlackBerry cannot use the BlackBerry data plan. Furthermore, information given by the customer service officer and the helpdesk person were completely different!

Right. So I switched from the BlackBerry plan to a normal data plan. I figured that since I don’t have much use for push mail and BlackBerry Maps (I use Google Maps), might as well change. To their credit, M1 did not charge me for the early termination of my BlackBerry plan which was meant to run for at least three months.

After the plan has been switched, my BlackBerry became bricked. Why? According to their helpdesk, it seems that the service books that were installed in the BlackBerry causes it not to be able to communicate with the normal APN to transfer data. Now, I know this is no fault of M1, but shouldn’t the customer support officer advise me on this? The only reason I can think of is that the person didn’t even know this. I only got to know this when I got through to their technical helpdesk.

The only recourse that I had, aside from throwing down another few hundred bucks for another smartphone, is to restore the BlackBerry to the factory settings. I was hoping this will clear the service books and let my phone use the normal data plan again.

Fortunately, it worked. For now. I’ll wait until the next bill comes and see what happens. This has been a bad experience for me with M1 and BlackBerry phones. I don’t think I’ll ever get another BlackBerry again. EVER.

11 Mar 10 CSS Best Practices

As mentioned before in earlier posts, I’m involved in a Web application development project. Recently I had to do some testing on the Web application (although it’s barely beta ready, but that’s a different story). During the testing process, I’ve got to see for myself the implications of not incorporating scalability designs early on into the code.

This post will take a simplistic approach to look at why load times can be improved by consolidating CSS files. At the same time, I will also take a look at naming CSS selectors as the approach to consolidating CSS. By taking a consistent approach to naming CSS selectors and organising the selectors in a structured manner in CSS files, we can minimise the number of CSS files.

(more…)

Tags:

01 Mar 10 How to Access the International Version of Google

The search engine that is. If you are observant, you’ll notice that whenever you go to www.google.com, you’ll be redirected to your local version (unless you’re in the US, I think). For example, in Singapore when you type google.com in the address bar, it turns into google.com.sg

What if you want to stay in the international page? Besides spoofing the the IP address (which is beyond most people’s realm of knowledge, and needlessly complicated), simply append “/ncr” at the end of the URL i.e. http://google.com/ncr

What does “ncr” stand for? No Country Redirect.

28 Feb 10 Alpha, Beta, … What’s Next?

This question has always been on my mind. The best answer I’ve found so far and is reasonably credible can be found at http://answers.yahoo.com/question/index?qid=20080912142314AAZdlh9

Basically it follows the Greek alphabet:

Alpha
Beta
Gamma
Delta
Epsilon
Zeta
Eta
Theta
Iota
Kappa
Lambda
Mu
Nu
Xi
Omicron
Pi
Rho
Sigma
Tau
Upsilon
Phi
Chi
Psi
Omega

24 Jan 10 Accidentally Locking Up Screen

Anyone who uses GNU Screen frequently will one day press Ctl-A s (lower-case s) whether purposefully or accidentally. It would seem that there is no way to unlock the screen. Actually, the solution is to press Ctl-A q (lower-case q). You will then be prompted to enter the user’s password to resume using Screen.

Tags:

16 Dec 09 Why I don’t join Facebook

Reading this post (http://www.networkworld.com/news/2009/121409-bank-antifraud-measures.html) confirms my decision not to join Facebook a correct one. Hell, if some corporate entity knows about your daughter-in-law, you should be scared!

03 Dec 09 Google Apps Provisioning API Version 2 – Adding an Owner to a Group

Another aspect of the Google Apps Provisioning API that I’ve discovered has to do with adding an owner to a group.

In my last post I talked about paging the results retrieved from the list of groups. Here it has to do with adding an owner to a group.

So I’ve gotten my implementation done. How’d I know I got it right? Well, considering that I’ve got the implementation for adding/removing/retrieving members done and working correctly, my implementation for owner is more than likely to be correct as well.

So after I’ve gotten the code done up, I tried it but to no avail. The owner wasn’t added to the group. After a few moments of pondering, I began to wonder if it was my code that was wrong, and then it struck me – the function only works on added members! So I added a member then called the function on the member, and it worked!

Conversely, removing an owner from a group does not remove the user from the group. It removes the status of owner from the user in the group i.e. an owner of the group becomes a member of the group.

The documentation on the API did not mention anything about it at all. I’m just glad I didn’t waste 3 hours trying to debug my code. Phew!

02 Dec 09 Google Apps Provisioning API Version 2

Google Apps Provisioning API is a set of API that allows other programs to access stored on Google’s servers. This is done via the Atom Publishing Protocol and HTTP requests (what the industry terms general as a RESTful interface).

The set of data that Google exposes via the Provisioning API include the user accounts and groups and other related data.

Google has improved its groups mechanism not too long ago. With this came improvements to other Google properties such as Google Docs where sharing documents with groups is possible. Previously, this was not available because the original concept of a group in Google Apps is nothing more than an email list where emailing to the “group” allowed users in the “group” to receive the email as well. But this was all that version 1 of “groups” (technically known as an email list) could do.

(more…)