Friday, July 29, 2011

Google Maps Update to Version 5.8


Google has introduced better integration across Maps, Latitude and Places on Android devices with version 5.8.
Google has released version 5.8 of Google Maps for Android based mobile devices. The update adds a number of new features, including making it easier for users to upload photos from their phones and tag establishments.
The changes are actually less focused on the map functionality and more on the application’s integration with Google Places and Latitude. For all the recent discussion of Google’s entrance into the social networking space (again) with Plus and its upcoming battles with Facebook and Twitter, it’s worth noting that these changes take more direct aim at services such as foursquare and Yelp (and Facebook check-ins).
google maps image upload androidPerhaps the most important change, in that sense, is being able to upload photos for a Place directly from your phone. Very rarely do restaurant goers take the time to upload their photos from a dining experience when they get home. Now they can build far richer content into Places with a few clicks on their phone. These photos can be viewed or removed using your Picasa account.
Also, Places now allows “descriptive terms” from your phone, certainly capturing more real-time reactions of an establishment’s qualities. These terms (“Great meatball sub”, “Rowdy bar”, etc.) then bubble to the top of the profile for each place upon search. Behind the scenes, these descriptive terms certainly aid establishments in choosing appropriate search terms to bid on.
Another useful feature is being able to add a new establishment “on the go” in Latitude. If you enjoy letting your friends know your location and where you’re hanging out, there is nothing more frustrating than searching for the establishment to no avail. The “Add place” functionality takes care of that issue. This feature has not (yet) been integrated to have the newly created establishment show up on Places or Google Maps. This is likely to prevent people from creating fake or unauthorized accounts where they could then trash a place they don’t like.

Wednesday, July 27, 2011

Integrating Google Talk on your Eclipse :)

Hi There,
I might be last person to find out this but thought worth sharing how you can integrate your favorite Gtalk or any other chat client to your workspace on Eclipse . :)

So all my developer friends this one is for you.

All you need is
1. Eclipse (You already probably must be working on it)
2. Plugin

  • In Eclipse, choose Help -> Install New Software...

  • Click on the Add button on the right.

  • Type in a Name in the textbox. For example, type: ECF 3.5.1.

  • Paste the following URL into the Location field. 

    http://download.eclipse.org/rt/ecf/3.5.1/site.p2

  • Click OK.

  • Select the Eclipse Communication Framework (ECF) check box. NOTE: This check box will result in including 5 sub-items. If you deselect the 'Group Items by Category' check box in the lower part of the install manager dialog, several more options for ECF components will be made visible and available to install.
    1. ECF Filetransfer Patch for Eclipse
    2. ECF Target Components for Eclipse
    3. ECF Remote Services Target Components
    4. Source for ECF Filetransfer Patch for Eclipse
    5. Source for ECF Target Components

  • Click on Next.

  • Follow through the remaining dialogs to complete the installation.


  • After you have completed your plugin installation:

    • Click on File -> New -> Other -> Connecion -> XMPPS (For Google talk)
    • Fill in your username and password (<user-name>@gmail.com)
    • Connect.
    You might need to see your contacts and messages after this.

    • Go to Window -> Show View -> Other -> Communication -> Contacts
    • Double click on contact to start chatting :)
    Lemme know if you get stuck...

    PS: Your company should not have blocked GTalk 

    Monday, July 25, 2011

    And they say that Apple never Copies :D


    ios_5
    There's no question that the mass amount of new features Apple will introduce with iOS 5 are impressive. Question is, are they original?
    Yesterday Apple revealed a massive 200 new features that would hit iOS devices come fall. Among them are innovative and simple tweaks that will make using iPhones, iPads, and iPod Touches easier and more fun. Some of them are even original – and some of them take…let’s call it inspiration…from Apple competitors. For a brand that often takes shots at other mobile manufacturers out there, it certainly seems like the company admires their work. Imitation is the purest form of flattery, right? Here are some of the improvements in iOS 5 Apple is being especially heralded for that we thought looked a little familiar.

    iMessages

    There’s no denying that iMessages is Apple’s version of BlackBerry Messenger. BBM is one of the most well-loved features BlackBerry has to offer, and gives its users a private messaging app that keeps chatting exclusive between other BlackBerry users. Beyond just feeling privileged enough to be granted access, BBM offers security by keeping your messages between other BlackBerries only. Of course, this was more of an advantage when the brand was the handset of choice for the corporate world, but Apple has been edging in on that status. Now iMessages does…exactly the same thing. Both allow unlimited characters, both show you when recipients have viewed and are responding to your messages, and both allow various types of content.

    Swipe for notifications

    android notification barApple’s nemesis, Android, got there first when it comes to this notification display system. Apple’s gotten a lot of flak for its previous notifications, which interrupted other use and gave you no choice but to view them right away (often rolling in one after another, in a endless stream of things you had to be caught up on) or ignore them, never to be seen again. Now, taking a page out of Android’s book, you can swipe from the top of your screen downward to see your recent notifications. The Android Notification Bar set the stage for Apple’s Notification Center – and was a feature available in the very first Android phone ever.

    Twitter integration

    Now this one deviates from straight up copying its competitors. As we all now know, Apple has deeply integrated Twitter into its handsets with iOS 5. Nearly every single thing you do via an iOS device now can be shared on Twitter with one touch. While Android doesn’t have this specific tool built-in, its smartphones have Intents. This means that apps that want to include a share button allow users to customize what the share options will be: Twitter, Facebook, Gmail, etc. We know, Apple didn’t directly take this from Android, but it’s a similar idea and one that’s been on Android smartphones for awhile.

    The split keyboard

    Score one more for Android. Apple users are thrilled they can finally customize their touchscreen keyboard to their liking – an option Android users have already been able to enjoy. It was a new feature that Apple focused on too much yesterday, but one that iOS users (especially those of the iPad persuasion) are excited about. If should also be mentioned we’ll be seeing this in Windows 8.

    joe belfioreCamera function on lock screen

    This roundup wouldn’t be complete without Apple being influenced by Windows Phone 7. Yesterday we were reminded how popular the camera function of the iPhone is: It’s one of the top cameras on Flickr. While it’s always been an incredibly easy app to use, Apple has made it easier by giving users immediate access to it even when the screen is locked. A Camera app icon now appears next “Unlock” and users merely have to click the volume-up button to capture an image. Nifty, right? Windows Phone 7 thinks so too! Head of Windows Phone 7 product definition and design Joe Belfiore even commented on the similar features, which include a host of new photo tools: “Feeling flattered today. Lots of great WP ideas headed to iOS. (Camera button/above lock, auto-upload of pics…)”. He also informed one excited iOS user that WP7 handsets have a dedicated camera button that actually wakes up your sleeping phone and takes you directly to the camera. He cheerfully adds the handset has “Been shipping for eight months!”. Do we detect a hint of sarcasm?

    Friday, July 8, 2011

    Allow untrusted certificate for Https Connection Android

    Many a times we need to connect to our Test servers over Https Connection. well its not easy to do that as android do not handles those certificates for you.. Hence your application needs to have a hack for overcoming this .... Here is the code to do so.... All you need to do is ... Create a class and call the function before any of your Https Connection.

    import java.security.KeyManagementException;
    import java.security.NoSuchAlgorithmException;
    import java.security.SecureRandom;
    import java.security.cert.CertificateException;
    import java.security.cert.X509Certificate;

    import javax.net.ssl.HostnameVerifier;
    import javax.net.ssl.HttpsURLConnection;
    import javax.net.ssl.SSLContext;
    import javax.net.ssl.SSLSession;
    import javax.net.ssl.TrustManager;
    import javax.net.ssl.X509TrustManager;

    /**
     * Class will be working as helper to allow fake certificates (i.e Untrusted certificates).

     * @author Abhinava Srivastava
     *
     */

    /*
     Copyright [2011] [Abhinava Srivastava]

     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
     */

    public class TrustManagerManipulator implements X509TrustManager {

    private static TrustManager[] trustManagers;
    private static final X509Certificate[] acceptedIssuers = new X509Certificate[] {};


    public boolean isClientTrusted(X509Certificate[] chain) {
    return true;
    }

    public boolean isServerTrusted(X509Certificate[] chain) {
    return true;
    }


    public static void allowAllSSL() {
    HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() {
    public boolean verify(String hostname, SSLSession session) {
    return true;
    }
    });
    SSLContext context = null;
    if (trustManagers == null) {
    trustManagers = new TrustManager[] { new TrustManagerManipulator() };
    }
    try {
    context = SSLContext.getInstance("TLS");
    context.init(null, trustManagers, new SecureRandom());
    } catch (NoSuchAlgorithmException e) {
    e.printStackTrace();
    } catch (KeyManagementException e) {
    e.printStackTrace();
    }
    HttpsURLConnection.setDefaultSSLSocketFactory(context
    .getSocketFactory());
    }

    public void checkClientTrusted(X509Certificate[] chain, String authType)
    throws CertificateException {
    }

    public void checkServerTrusted(X509Certificate[] chain, String authType)
    throws CertificateException {
    }

    public X509Certificate[] getAcceptedIssuers() {
    return acceptedIssuers;
    }
    }


    Now whenever you want to call HttpsUrlConnection just call TrustManagerManipulator.allowAllSSL(); before it see the example below.

    public InputStream getInputStream() throws ClientProtocolException,
    IOException {

    // Need to add this function before https connection. Thats easy.. isint it?
    TrustManagerManipulator.allowAllSSL();
    HttpsURLConnection connection = (HttpsURLConnection) (new URL("https://192.168.0.1:2314/myHttpsSite"))
    .openConnection();
    connection.connect();
    return connection.getInputStream();
    }


    Hope it helps :)