How to Enable Permalinks in WordPress – Yahoo Hosting

February 18th, 2010 4 comments

Problem : WordPress Permalinks don’t work on Yahoo! hosting because they do not give their users access to the htaccess file – which means you cannot create the mod_rewrite rules needed for custom permlinks. Any other WordPress feature.. addon or plugin that you may need your .htaccess file for? Forget it – they do not give you access to it. Period.

Solution: Go to Permalink Settings > Select Custom Structure. And define the value as /index.php/%postname%/ Then your URL will look like http://yoursite.com/index.php/your-post-title.

Huh finally Permanlinks are enabled for my blog. Just incase if you dont know, Permalinks will help you on SEO. Yes Yahoo hosting sucks !


Share and Enjoy:
  • Digg
  • DZone
  • del.icio.us
  • Yahoo! Buzz
  • Facebook
  • Google Bookmarks
  • Reddit
  • Live
  • Twitter
Categories: General Tags: , , ,

How to make VOIP calls on iPhone using MagicJack Connection and Siphon

February 15th, 2010 56 comments

I have been using MagicJack to make calls to USA. Though its an excellent product, the hassle with MagicJack is we have to connect the MJ device to USB and the MJ device to the phone, along with this the annoying popup software.

So this weekend my project is to see if i can run the MagicJack on iPhone. I have iPhone 2g running 3.0.2 version of iPhone OS (Yeah i need to upgrade) and MagicJack currently running version 1.90.521.2.

As per my initial investigation, found the following things.

  • MagicJack works on SIP (Session Initiation Protocol).
  • Every MagicJack has its own username and password (hidden), this is different from your magicjack username and password.
  • MagicJack connects to a closely available proxy server.
  • Any iPhone app that supports SIP can be used to make calls with MagicJack Account. (Eg: Fring, Siphon)

So inorder to use MagicJack Data Connection and make calls on your iPhone the following steps are required.

  1. Retrieve the Username and Password from MagicJack
  2. Identiy your Proxy
  3. Install Siphon through Cydia
  4. Setup the Siphon

Retrieve the Username and Password from MagicJack

  1. Username will be in format EXXXXXXXXXX01. This is E and your phone number and 01, So your username will be  E<YourMJPhoneNumber>01.
  2. In order to extract hidden password from the MagicJack we can use a software provided by http://www.magicjackhacks.net/
  3. Download MagicJack Utilities from http://www.magicjackhacks.net/downloads/MagicJack_Utilitieswsip.zip
  4. Follow the Steps specified in “How to get the password via windows right now” from magicjackhacks.net

Identify your proxy

You can identify which proxy you are connected to using the following method:

Preparation

  1. Download pmdump from http://www.ntsecurity.nu/toolbox/pmdump/.
  2. Start MagicJack
  3. Identify MagicJack’s process ID (PID).
    • Open a DOS (command) window.
    • Execute pmdump -list
    • Find “magicjack.exe” in the output. Note the number associated with it.
  4. Make at least one call. (Ex. to the special echo-test number: 909-390-0003.).

Final steps

  1. Using the DOS (command) window and PID as described above, execute:
    pmdump {pid} mj_dump.txt
  2. Open mj_dump.txt using a text editor like textpad.
  3. Search for the string:
    s=ENSResip

That string occurs at the start of a line. And it occurs within repeating blocks of data, like a repeating pattern. In these blocks you will find lines starting with o= and c=. These lines contain the IP address of the SIP/proxy and RTP/vms servers respectively.

For example, if you connect to the Phoenix proxy, you should see:

o=- {nnnnnnnnnn} {nnnnnnnnnn} IN IP4 66.104.81.70
s=ENSResip
c=IN IP4 66.104.81.75

You can use nslookup to resolve both IP addresses to hostnames, revealing the regional SIP/proxy and RTP/vms servers you are presently using.

Install Siphon through Cydia

  1. Open Cydia
  2. Click on Search on the right bottom of the screen
  3. Type “Siphon” in the search text and select ‘Siphon’ from the results.
  4. Click install on the right top of the screen
  5. Click Confirm, Cydia will now install the application. Once completed it will ask to Restart the Springboard. Click “Restart SpringBoard” to restart the SpringBoard.
  6. You are done with the Siphon Installation.




Setting up Siphon

  1. Go to Settings > Siphon
  2. In Siphon Setting main screen, Enter the username, password and server.
    • Username: EXXXXXXXXXX01
    • Password: 20 char password
    • Server: talk4free.com
  3. Now go to Advanced Settings. Enter the  following settings.
    • Reg Timeout : 3600
    • Proxy Server : the proxy that we retrieved in the above step with 5070 port.
      Eg  proxy1.sanfrancisco.talk4free.com:5070
    • Auth. Username : EXXXXXXXXXX01
    • Enable NAT: OFF
  4. Now go to Network Settings,
    • Local Port : 5070
    • RTP port : 4000
  5. You are done with the Settings



Now open the siphon application, if all your settings are correct you should the see “Sip” button enabled in the Numpad and “Connected” text on top right of the screen.

Update: Many guys have asked if they can make calls on iPhone which is not jailbroken. Yes i have tried the MagicJack settings on iSip (formerly SipPhone on iPhone) application,  Yes i’m able to make calls successfully using iSip. You can download the iSipSimple from iTunesStore

Update (Mar 26, 2010) : magicjackhacks.com is moved to magicjackhacks.net; so i updated the links accordingly.

Share and Enjoy:
  • Digg
  • DZone
  • del.icio.us
  • Yahoo! Buzz
  • Facebook
  • Google Bookmarks
  • Reddit
  • Live
  • Twitter
Categories: iPhone Tags: , , , , ,

Eclipse ER Modelling(ERD) Plugin – ERMaster

January 30th, 2010 No comments

Last week i need to design a schema for a new project at work. And my client wants us to use all open source tools. Eclipse being our IDE i had spent some time finding good Eclipse plugin for ER Modelling.

After trying about 4 to 6 plugins and reading about there features, I found that ERMaster is best available plugin for the ER Modelling. Here are some of the nice features that ERMaster supports.

  • Supports for the main databases (Oracle, MySQL and PostGreSQL)
  • Ability to import existing database(Reverse Engineering)
  • Export to various formats (Java, Excel, PNG and HTML)
  • DDL generation
  • Physical and Logical View
  • Group Management and History Management

Installation steps can be found here

Sample ER

Share and Enjoy:
  • Digg
  • DZone
  • del.icio.us
  • Yahoo! Buzz
  • Facebook
  • Google Bookmarks
  • Reddit
  • Live
  • Twitter

Installing OpenLdap on Linux – CentOS

January 30th, 2010 No comments
  1. Install Open Ldap Servers via YUM
    yum install openldap-servers
  2. Edit the /etc/openldap/slapd.conf file to specify the LDAP domain and server
    1. To use the slapd LDAP server, modify its configuration file /etc/openldap/slapd.conf, to specify the correct domain and server. The suffix line names the domain for which the LDAP server provides information and should be changed from:suffix “dc=your-domain,dc=com”so that it reflects a fully qualified domain name. For example:
      suffix "dc=javachap,dc=com"
    2. The rootdn entry is the Distinguished Name (DN) for a user who is unrestricted by access controls or administrative limit parameters set for operations on the LDAP directory. The rootdn user can be thought of as the root user for the LDAP directory. In the configuration file, change the rootdn line from its default value as in the following :
      rootdn "cn=Manager,dc=javachap,dc=com"
    3. When populating an LDAP directory over a network, change the rootpw line — replacing the default value with an encrypted password string. To create an encrypted password string, type the following command:
      /usr/sbin/slappasswd

      When prompted, type and then re-type a password. The program prints the resulting encrypted password to the shell prompt. Next, copy the newly created encrypted password into the /etc/openldap/slapd.conf on one of the rootpw lines and remove the hash mark (#). When finished, the line should look similar to the following example:

      rootpw {SSHA}vv2y+i233234azrIv70xSSnNAJ4538bb2u
  3. Copy the file /etc/openldap/DB_CONFIG.example and put it into/var/lib/ldap as DB_CONFIG
    cp /etc/openldap/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
  4. Create users.ldif with the following content. This will create 2 users admin, javachap in Admin role.
    dn: dc=javachap,dc=com
    dc: javachap
    objectClass: domain
    dn: ou=People,dc=javachap,dc=com
    ou: People
    objectClass: organizationalUnit
    dn: ou=Groups,dc=javachap,dc=com
    ou: Groups
    objectClass: organizationalUnit
    
    # Engineering Department
    dn: ou=Engineering,ou=People,dc=javachap,dc=com
    ou: Engineering
    objectClass: organizationalUnit
    
    # Admin Group
    dn: cn=Admin,ou=Groups,dc=javachap,dc=com
    gidNumber: 502
    memberUid: admin
    memberUid: javachap
    cn: Admin
    objectClass: posixGroup
    
    # Admin User :
    dn: uid=javachap,ou=Engineering,ou=People,dc=javachap,dc=com
    sn: Java Chap
    userPassword: e235yeXB0f343444bE45Z0s0GmM=
    objectClass: shadowAccount
    objectClass: person
    uid: javachap
    cn: Java Chap
    
    # Admin User : admin
    dn: uid=admin,ou=Engineering,ou=People,dc=javachap,dc=com
    sn: Admin User
    userPassword: e2452eXB02222Zk9qYjhUZVBUGmc=
    objectClass: shadowAccount
    objectClass: person
    uid: admin
    cn: Administrator
    
  5. Add the users to ldap with the following command, you need to supply the root dn and password that was setup in step 2.3
    ldapadd -x -D "cn=Manager,dc=javachap,dc=com" -w password -f users.ldif
  6. Start ldap service with the command:
    /sbin/service ldap start
Share and Enjoy:
  • Digg
  • DZone
  • del.icio.us
  • Yahoo! Buzz
  • Facebook
  • Google Bookmarks
  • Reddit
  • Live
  • Twitter
Categories: Linux Tags: , , ,

Ldap User Management with Spring LDAP

December 25th, 2009 2 comments

Java Naming and Directory Interface (JDNI) is the API used for LDAP programming on the Java platform. JNDI makes far too much work of simple procedures, such as ensuring that resources have been properly opened and closed. In addition, most JNDI methods throw checked exceptions, which are time-consuming to handle.

Spring LDAP provides a sophisticated wrapper API on top of JNDI to make LDAP Programming easier. Here i will show you on how to write, update and delete entries on ldap server using Spring LDAP.

Download Spring Ldap from http://www.springsource.com/download/community

Spring Configuration

Create an LdapContextSource and an LdapTemplate object. Configure the ldapServer url, baseDn and optionally userDn, password if anonymous access is not allowed. Also inject the LdapTemplate into DAO.

<bean id="contextSource" class="org.springframework.ldap.core.support.LdapContextSource">
    <property name="url" value="ldap://localhost:389" />
    <property name="base" value="dc=javachap,dc=com" />
    <property name="userDn" value="cn=Manager,dc=javachap,dc=com" />
    <property name="password" value="mypassword" />
</bean>

<bean id="ldapTemplate">
    <constructor-arg ref="contextSource" />
</bean>

<bean id="userService">
    <property name="ldapTemplate" ref="ldapTemplate"/>
</bean>

Domain

Create a simple user domain interface and implementation which holds the basic information about the user. The information with in this user  object will be persisted to the Ldap.

package com.javachap.domain;

public interface User {

    String getUserName();

    void setUserName(String userName);

    String getFirstName();

    void setFirstName(String firstName);

    String getLastName();

    void setLastName(String lastName);

    String getEmail();

    void setEmail(String email);

    String getPassword();

    void setPassword(String password);

    String getDepartment();

    void setDepartment(String departement);

    String[] getGroups();

    void setGroups(String[] groups);
}
package com.javachap.domain.impl;

import com.javachap.domain.User;

public class UserImpl implements User {

    private static final long serialVersionUID = 7487133273442955818L;

    private String userName;
    private String firstName;
    private String lastName;
    private String email;
    private String password;
    private String department;
    private String groups[];

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getFirstName() {
        return firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getDepartment() {
        return department;
    }

    public void setDepartment(String department) {
        this.department = department;
    }

    public String[] getGroups() {
        return groups;
    }

    public void setGroups(String[] groups) {
        this.groups = groups;
    }

    public String toString() {
        StringBuffer buffer = new StringBuffer();
        buffer.append("UserImpl[");
        buffer.append("id = ").append(id);
        buffer.append(" userName = ").append(userName);
        buffer.append(" email = ").append(email);
        buffer.append(" firstName = ").append(firstName);
        buffer.append(" lastName = ").append(lastName);
        buffer.append(" password = ").append(password);
        buffer.append("]");
        return buffer.toString();
    }
}

User DAO

LdapTemplate is built on the same principles as the JdbcTemplate in Spring JDBC. It completely eliminates the need to worry about creating and closing DirContext and looping through NamingEnumeration. It also provides a more comprehensive unchecked exception hierarchy, built on Spring’s DataAccessException.

package com.javachap.service;

import java.util.List;

/**
 * UserService
 *
 * @author JavaChap
 */

public interface UserService {

    User getUser(final String email);

    User save(final User user);

    boolean authenticate(final String userName, final String password);

    List<User> getUsers(final String pattern);

    void delete(final User user);
}
package com.javachap.service.impl;

import java.io.UnsupportedEncodingException;

/**
 * UserService Implementation
 *
 * @author JavaChap
 */

public class UserServiceImpl implements UserService {

    private static final long serialVersionUID = 4889152297004460837L;

    public static final String BASE_DN = "dc=javachap,dc=com";

    private static class UserAttributesMapper implements AttributesMapper {

        public Object mapFromAttributes(Attributes attrs)
                throws NamingException {
            User user = (User) AppUtils.getBean("user");
            if (attrs.get("uid") != null) {
                user.setUserName((String) attrs.get("uid").get());
            }
            if (attrs.get("cn") != null) {
                user.setFirstName((String) attrs.get("cn").get());
            }
            if (attrs.get("sn") != null) {
                user.setLastName((String) attrs.get("sn").get());
            }
            if (attrs.get("mail") != null) {
                user.setEmail((String) attrs.get("mail").get());
            }
            return user;
        }
    }

    private LdapTemplate ldapTemplate;

    public void setLdapTemplate(final LdapTemplate ldapTemplate) {
        this.ldapTemplate = ldapTemplate;
    }

    public boolean authenticate(String userName, String password) {
        AndFilter filter = new AndFilter();
        filter.and(new EqualsFilter("objectclass", "person")).and(
                new EqualsFilter("uid", userName));
        return ldapTemplate.authenticate(DistinguishedName.EMPTY_PATH, filter
                .toString(), password);
    }

    public User getUser(final String userName) {
        AndFilter filter = new AndFilter();
        filter.and(new EqualsFilter("objectclass", "person")).and(
                new EqualsFilter("uid", userName));
        List<User> users = ldapTemplate.search(DistinguishedName.EMPTY_PATH,
                filter.encode(), new UserAttributesMapper());
        if (!users.isEmpty()) {
            return users.get(0);
        }
        return null;
    }

    public List<User> getUsers(final String pattern) {
        AndFilter filter = new AndFilter();
        filter.and(new EqualsFilter("objectclass", "person"));
        if (pattern != null) {
            filter.and(new LikeFilter("uid", pattern));
        }
        List<User> users = ldapTemplate.search(DistinguishedName.EMPTY_PATH,
                filter.encode(), new UserAttributesMapper());
        return users;
    }

    public User save(final User user) {
        Name dn = buildDn(user);
        ldapTemplate.bind(dn, null, buildAttributes(user));

        // Update Groups
        for (String group : user.getGroups()) {
            try {
                DistinguishedName groupDn = new DistinguishedName();
                groupDn.add("ou", "Groups");
                groupDn.add("cn", group);
                DirContextOperations context = ldapTemplate
                        .lookupContext(groupDn);
                context.addAttributeValue("memberUid", user.getUserName());
                ldapTemplate.modifyAttributes(context);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return user;
    }

    public User update(final User user) {
        Name dn = buildDn(user);
        ldapTemplate.rebind(dn, null, buildAttributes(user));
        return user;
    }

    public void delete(User user) {
        Name dn = buildDn(user);
        ldapTemplate.unbind(dn);
    }

    private Name buildDn(final User user) {
        DistinguishedName dn = new DistinguishedName();
        dn.add("ou", "People");
        if (user.getDepartment() != null) {
            dn.add("ou", user.getDepartment());
        }
        dn.add("uid", user.getUserName());
        return dn;
    }

    private Attributes buildAttributes(final User user) {
        Attributes attrs = new BasicAttributes();
        BasicAttribute ocattr = new BasicAttribute("objectclass");
        ocattr.add("person");
        ocattr.add("inetOrgPerson");
        attrs.put(ocattr);
        attrs.put("cn", user.getFirstName());
        attrs.put("sn", user.getLastName());
        attrs.put("userPassword", "{SHA}" + this.encrypt(user.getPassword()));
        attrs.put("mail", user.getEmail());

        return attrs;
    }

    private String encrypt(final String plaintext) {
        MessageDigest md = null;
        try {
            md = MessageDigest.getInstance("SHA");
        } catch (NoSuchAlgorithmException e) {
            throw new RuntimeException(e.getMessage());
        }
        try {
            md.update(plaintext.getBytes("UTF-8"));
        } catch (UnsupportedEncodingException e) {
            throw new RuntimeException(e.getMessage());
        }
        byte raw[] = md.digest();
        String hash = (new BASE64Encoder()).encode(raw);
        return hash;
    }
}

Test class

package com.javachap.service.impl;

import org.apache.log4j.BasicConfigurator;
import org.springframework.beans.factory.xml.XmlBeanDefinitionReader;
import org.springframework.context.support.GenericApplicationContext;
import org.springframework.core.io.ClassPathResource;

import com.javachap.domain.User;
import com.javachap.domain.impl.UserImpl;
import com.javachap.service.ServiceUtils;
import com.javachap.service.UserService;
import com.javachap.utils.AppUtils;

public class Test {

    public static void main(String args[]) {
        BasicConfigurator.configure();
        GenericApplicationContext appContext = new GenericApplicationContext();
        XmlBeanDefinitionReader xmlReader = new XmlBeanDefinitionReader(
                appContext);
        xmlReader.loadBeanDefinitions(new ClassPathResource(
                "applicationContext.xml"));
        appContext.refresh();
        AppUtils.setApplicationContext(appContext);

        UserService userService = ServiceUtils.getUserService();
        // User Authenticate
        boolean authenticated = userService.authenticate("user@javachap.com",
                "javachap");
        System.out.println("Authenticated: " + authenticated);

        // User Save
        User user = new UserImpl();
        user.setUserName("javachap2");
        user.setFirstName("java");
        user.setLastName("chap");
        user.setEmail("user2@javachap.com");
        user.setPassword("chapjava");
        user.setDepartment("Engineering");
        user.setGroups(new String[] { "Admin", "HudsonAdmin", "WikiAdmin" });
        userService.save(user);

        // User Get
        user = userService.getUser("javachap2");
        System.out.println("User:" + user);
    }
}

References

http://today.java.net/article/2006/04/14/ldaptemplate-ldap-programming-java-made-simple

Share and Enjoy:
  • Digg
  • DZone
  • del.icio.us
  • Yahoo! Buzz
  • Facebook
  • Google Bookmarks
  • Reddit
  • Live
  • Twitter
Categories: Java Tags: , ,

Installing MediaWiki on Linux – CentOS

December 24th, 2009 No comments

In this post we will learn how to setup a MediaWiki on CentOS. MediaWiki requires Apache web server, a database server (we’ll use MySQL), and PHP version 5.  I will explain step by step process of installing these required components.

  1. Install MySql server and mysql-php module
    yum install mysql-server mysql php-mysql
    /sbin/chkconfig --levels 235 mysqld on
    /sbin/service mysqld start
    
  2. Change ‘root’ user password for mysql; Create mysql wiki database and user
    mysql
    
    mysql> USE mysql;
    mysql> UPDATE user SET Password=PASSWORD('newpassword') WHERE user='root';
    mysql> FLUSH PRIVILEGES;
    mysql> CREATE DATABASE wiki;
    mysql> CREATE USER 'wikiuser'@'localhost' IDENTIFIED BY 'wikipassword'
    mysql> GRANT ALL ON wiki.* TO 'wikiuser'@'localhost';
    mysql> exit
    
  3. Download the mediawiki, http://download.wikimedia.org/mediawiki/1.15/mediawiki 1.15.1.tar.gz
    wget http://download.wikimedia.org/mediawiki/1.15/mediawiki-1.15.1.tar.gz
  4. Untar the mediawiki to /var/www/html and give write permissions for config folder (Assuming that /var/www/html is the DocumentRoot)
    tar -xvvf mediawiki-1.15.1.tar.gz
    mv mediawiki-1.15.1 /var/www/html/wiki
    
  5. Change the ownership of the wiki directory and grant write permissions to the config directory.
    chown -R apache:apache /var/www/html/wiki
    chmod a+w /var/www/html/wiki/config
    
  6. Restart the apache server.
    /sbin/service httpd restart
    Stopping httpd:                                            [  OK  ]
    Starting httpd:                                            [  OK  ]
    
  7. Go to http://localhost/wiki/config/index.php
    • Configure Wiki Admin username/password
    • Configure MySQL  database/username/password
    • Click Done
  8. Move the config/LocalSettings.php file to the parent directory
    mv /var/www/html/wiki/config/LocalSettings.php /var/www/html/wiki
    
  9. Access wiki http://localhost/wiki
Share and Enjoy:
  • Digg
  • DZone
  • del.icio.us
  • Yahoo! Buzz
  • Facebook
  • Google Bookmarks
  • Reddit
  • Live
  • Twitter
Categories: Linux Tags: ,

GreatAndhra RSS Feed

November 16th, 2009 4 comments

I do regularly read telugu news at http://www.greatandhra.com, But the issue is i have to go to the site to read the news. They don’t provide an RSS feed.

So i have used Yahoo Pipes and created an RSS feed for greatandhra.com. So if you want greatandhra RSS feed in your favorite RSS reader. Use the following RSS feed URLs.

All News:

http://feeds.feedburner.com/greatandhra-news

Only Movie News:

http://feeds.feedburner.com/greatandhra-movienews

Share and Enjoy:
  • Digg
  • DZone
  • del.icio.us
  • Yahoo! Buzz
  • Facebook
  • Google Bookmarks
  • Reddit
  • Live
  • Twitter
Categories: General Tags: ,

Indian Celebrities – Twitter Accounts

September 25th, 2009 2 comments

Update: I have created an List of Indian Movie Celebrities. So now you can follow all the celebrities in single shot, http://twitter.com/javachap/indian-movie-celebrities

Twitter is becoming famous in India now, And so the celebrities and famous personalities are tweeting now sharing there thoughts. Here is a list of indian celebrities who are tweeting. Verified accounts are the accounts that actually verified by Twitter confirming that they are orginal users

juniorbachchan
Abhishek Bachchan

iamsrk

Shah Rukh Khan

Actor_Siddharth

Siddharth

geneliad

Genelia D’souza
deepikatweeting
Deepika Padukone
Amritarao17
Amrita Rao
shahidkapoor

Shahid Kapoor

PritishNandy
Pritish Nandy
arrahman

A.R.Rahman

CelinaJaitly

Celina Jaitly

vivek_oberoi
Vivek Oberoi
konkonas

Konkona Sensharma

MaheshNBhatt
Mahesh Bhatt

Ayeshatakia

Ayesha Takia Azmi

anushkasharma01

Anushka Sharma

emraanhashmi

Emraan hashmi

priyankachopra

Priyanka Chopra

sonamakapoor

Sonam Kapoor

gulpanag

Gul Panag

DuttaLara

Lara
Dutta

shreyaghoshal

Shreya Ghoshal

MallikaLA

Mallika Sherawat

rgvzoomin

Ram Gopal Varma

udaychopra

Uday Chopra

shekharkapur

Shekhar Kapur

Riteishd

Riteish Deshmukh

R_Khanna

Rahul Khanna

1mrankhan

Imran Khan

akshaykumar

Akshay Kumar

kjohar25

Karan Johar

Lisaraniray

Lisa Rani Ray

nikhilchinapa

Nikhil Chinapa

AnupamPkher

Anupam Kher

khanff

Fardeen Khan

FarahKhanAli

Farah Khan

FarOutAkhtar

Farhan Akhtar

Share and Enjoy:
  • Digg
  • DZone
  • del.icio.us
  • Yahoo! Buzz
  • Facebook
  • Google Bookmarks
  • Reddit
  • Live
  • Twitter
Categories: General Tags:

iPhone – Illumine WinterBoard Theme

August 14th, 2009 1 comment

I’m Loving my new theme that i have just installed on my iPhone – Illumine WinterBoard Theme. Illumine is a simple and classy iPhone Winterboard theme. It adds a cool green orb for the unlock screen and themes most of the common Apps from both App Store and Cydia.

Illumine iPhone Winterboard Theme

Illumine iPhone Winterboard Theme

How to Install Illumine?

1. Your device must be jailbroken.
2. You must have Winterboard installed via Cydia.
3. You must have modmyi source (http://apt.modmyi.com) added to Cydia.
4. Search for Illumine in Cydia and install it.
5. Launch Winterboard and activate Illumine.

Share and Enjoy:
  • Digg
  • DZone
  • del.icio.us
  • Yahoo! Buzz
  • Facebook
  • Google Bookmarks
  • Reddit
  • Live
  • Twitter
Categories: iPhone Tags: ,

Vodafone India – GPRS for iPhone without Data Plan

July 1st, 2009 161 comments

Vodafone(India) will not allow to use the regular GPRS plan (Vodafone Live) on iPhone. We need to take special iPhone data plan which costs min of Rs 199. This is sort of insane, So I just took a crack at it and found a way to access the internet using the regular plan. I have an unlocked, jailbroken iPhone which is running 3.0 firmware. Please follow the below instructions.

Update: If you have the latest version of  iOS  (3.1.3 and 4.0), please check below.

Using OpenSSH, edit preferences.plist located in /private/var/preferences/SystemConfiguration.
Important: Make sure you take a backup of the original preferences.plist.

Around line number 89 (this is appox line number, contents of the file may change based on your phone settings) replace the <dict> with below <dict>

		<dict>
			<key>Interface</key>
			<dict>
				<key>DeviceName</key>
				<string>ip1</string>
				<key>Hardware</key>
				<string>com.apple.CommCenter</string>
				<key>Type</key>
				<string>com.apple.CommCenter</string>
				<key>UserDefinedName</key>
				<string>com.apple.CommCenter (ip1)</string>
			</dict>
			<key>Proxies</key>
			<dict>
				<key>HTTPEnable</key>
				<integer>1</integer>
				<key>HTTPPort</key>
				<integer>9401</integer>
				<key>HTTPProxy</key>
				<string>10.10.1.100</string>
			</dict>
			<key>UserDefinedName</key>
			<string>com.apple.CommCenter (ip1)</string>
			<key>com.apple.CommCenter</key>
			<dict>
				<key>AllowNetworkAccess</key>
				<integer>1</integer>
				<key>Available</key>
				<integer>1</integer>
				<key>Setup</key>
				<dict>
					<key>AllowNoDNS</key>
					<integer>1</integer>
					<key>apn</key>
					<string>portalnmms</string>
					<key>password</key>
					<string></string>
					<key>type-mask</key>
					<integer>1</integer>
					<key>username</key>
					<string></string>
				</dict>
				<key>Version</key>
				<integer>2</integer>
			</dict>
		</dict>

To activate Vodafone Live (GPRS) see Vodafone Website

Update: The below configuration is working on 3.1.2 as well, but the line numbers are little different.

Update (16 Mar 2010):

Many guys have commented that the changes that were made in preferences.plist are lost after restarting the iPhone (for versions 3.1.2 and 3.1.3). So today i decided to take a look at it. And what you guys said is absolutely right, i upgraded my iPhone OS to 3.1.3 and i see that the settings are lost after restarting the phone. And you guys don’t worry, i had found a way to fix this and this is much easier than my previous solution. Below are the step by step instructions.

  1. Download and Install iPhone Configuration Utility from http://support.apple.com/kb/DL926
  2. Open the application, Select Configuration Profiles on the left hand side menu and click New in the toolbar; Enter the name, identifier, organization and description; see the image below for more details
  3. Now go to Advanced option and set the apnname = portalnmms, proxy server  =10.10.1.100 and port = 9401
  4. Connect your iPhone to computer via USB cable and you should see your iPhone in the devices menu on Left hand side. Select your device
  5. Select Configuration Profiles tab and you should see the Vodafone Profile; Click on Install
  6. You will see a pop on your iPhone asking for permission to install the configuration, Click Install button in your iPhone
  7. And you are done with the configuration. You should be able to use internet on your iPhone now. If its not working just reboot your phone.

Hope this helps !! Please feel free to give your Feedback, Suggestions

Update(08 July 2010): Few guys confirmed that this is working on iOS 4 as well, i personally couldn’t test this at this point of time as i’m out of country. I will update this post as soon as i’m back in India. Thanks Sanjeev, Taran for testing it out on iOS 4. You might need to download the upgraded version of the configuration utility. You can download it from http://support.apple.com/kb/DL926.

Share and Enjoy:
  • Digg
  • DZone
  • del.icio.us
  • Yahoo! Buzz
  • Facebook
  • Google Bookmarks
  • Reddit
  • Live
  • Twitter
Categories: iPhone Tags: ,