Sunday, 27 April 2014

Android Animations - Tutorial

Android Property Animation API
This tutorial describes how to use Animations in Android. The tutorial is based on Eclipse 4.2, Java 1.6 and Android 4.2.

1. Android Animations

1.1. Overview

Android 3.0 introduced the Properties Animation API which allow to change object properties over a predefined time interval.
The API allows to define for arbitrary object properties a start and end value and apply a time-based change to this attribute. This API can be applied on any Java object not only on Views.

1.2. Animator and AnimatorListener

The superclass of the animation API is the Animator class. Typically the ObjectAnimator class is used to modify the attributes of an object.
You can also add an AnimatorListener class to your Animator class. This listener is called in the different phases of the animation. You can use this listener to perform actions before or after a certain animation, e.g. add or remove a View from a ViewGroup.

1.3. ViewPropertyAnimator

The ViewPropertyAnimator class introduced in Android 3.1 provides a simpler access to typical animations which are performed on Views.
The animate() method on a View will return the ViewPropertyAnimator object. This object allows to perform simultaneous animations. It has a fluent API and allows to set the duration of the animation.
The target of ViewPropertyAnimator is to provide a very simple API for typical animations.
The following code shows an example of the usage of this method.

// Using hardware layer
myView.animate().translationX(400).withLayer(); 

For performance optimization you can also let ViewPropertyAnimator use a hardware layout.

// Using hardware layer
myView.animate().translationX(400).withLayer(); 

You can also directly define a Runnable to be executed at the start and the end of the animation.

// StartAction
myView.animate().translationX(100).withStartAction(new Runnable(){
  public void run(){
    viewer.setTranslationX(100-myView.getWidth());
    // do something
  }
});

// EndAction
myView.animate().alpha(0).withStartAction(new Runnable(){
  public void run(){
    // Remove the view from the layout called parent
    parent.removeView(myView);
  }
}); 

The setInterpolator() allows to define an object of type TimeInterpolator which defines the change of the value over time. The standard is linear. The Android platform defines a few default ones as for example AccelerateDecelerateInterpolator where the rate of change starts and ends slowly but accelerates through the middle.
Via the setEvaluator method you can set an object of type TypeEvaluator which allow you to create animations on arbitrary property types, by providing custom evaluators for types that are not automatically understood and used by the animation system.

1.4. Layout animations

The LayoutTransition class allows to set animations on a layout container and a changes on the Views of this container will be animated.

package com.example.android.layoutanimation;

import android.animation.LayoutTransition;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;

public class MainActivity extends Activity {

  private ViewGroup viewGroup;

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    LayoutTransition l = new LayoutTransition();
    l.enableTransitionType(LayoutTransition.CHANGING);
    viewGroup = (ViewGroup) findViewById(R.id.container);
    viewGroup.setLayoutTransition(l);

  }

  public void onClick(View view) {
    viewGroup.addView(new Button(this));
  }

  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
  }
} 

1.5. Animations for Activity transition

Animations can be applied to Views but it is also possible to apply them on the transition between activities.
The ActivityOptions class allows to define default or customer animations.

public void onClick(View view) {
  Intent intent = new Intent(this, SecondActivity.class);
  ActivityOptions options = ActivityOptions.makeScaleUpAnimation(view, 0,
      0, view.getWidth(), view.getHeight());
  startActivity(intent, options.toBundle());
} 

2. Android Basics

The following description assumes that you have already basic knowledge in Android development.
Please check the Android development tutorial to learn the basics. Also see Android development tutorials for more information about Android development.

3. Tutorial: View Animation

This tutorial demonstrates the usage of the Properties Animation API.
Create a new Android project called com.vogella.android.animation.views with the activity called AnimationExampleActivity. The layout file should be called main.xml. Change this file to the following code.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <LinearLayout
        android:id="@+id/test"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <Button
            android:id="@+id/Button01"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:onClick="startAnimation"
            android:text="Rotate" />

        <Button
            android:id="@+id/Button04"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:onClick="startAnimation"
            android:text="Group" >
        </Button>

        <Button
            android:id="@+id/Button03"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:onClick="startAnimation"
            android:text="Fade" />

        <Button
            android:id="@+id/Button02"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:onClick="startAnimation"
            android:text="Animate" />

    </LinearLayout>

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:src="@drawable/icon" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/imageView1"
        android:layout_alignRight="@+id/imageView1"
        android:layout_marginBottom="30dp"
        android:text="Large Text"
        android:textAppearance="?android:attr/textAppearanceLarge" />

</RelativeLayout> 

Create the following menu resource.

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@+id/item1"
        android:showAsAction="ifRoom"
        android:title="Game">
    </item>

</menu> 

Change your activity to the following.

package com.vogella.android.animation.views;

import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Paint;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;

public class AnimationExampleActivity extends Activity {

  
/** Called when the activity is first created. */
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } public void startAnimation(View view) { float dest = 0; ImageView aniView = (ImageView) findViewById(R.id.imageView1); switch (view.getId()) { case R.id.Button01: dest = 360; if (aniView.getRotation() == 360) { System.out.println(aniView.getAlpha()); dest = 0; } ObjectAnimator animation1 = ObjectAnimator.ofFloat(aniView, "rotation", dest); animation1.setDuration(2000); animation1.start(); // Show how to load an animation from XML // Animation animation1 = AnimationUtils.loadAnimation(this, // R.anim.myanimation); // animation1.setAnimationListener(this); // animatedView1.startAnimation(animation1); break; case R.id.Button02: // shows how to define a animation via code // also use an Interpolator (BounceInterpolator) Paint paint = new Paint(); TextView aniTextView = (TextView) findViewById(R.id.textView1); float measureTextCenter = paint.measureText(aniTextView.getText() .toString()); dest = 0 - measureTextCenter; if (aniTextView.getX() < 0) { dest = 0; } ObjectAnimator animation2 = ObjectAnimator.ofFloat(aniTextView, "x", dest); animation2.setDuration(2000); animation2.start(); break; case R.id.Button03: // demonstrate fading and adding an AnimationListener dest = 1; if (aniView.getAlpha() > 0) { dest = 0; } ObjectAnimator animation3 = ObjectAnimator.ofFloat(aniView, "alpha", dest); animation3.setDuration(2000); animation3.start(); break; case R.id.Button04: ObjectAnimator fadeOut = ObjectAnimator.ofFloat(aniView, "alpha", 0f); fadeOut.setDuration(2000); ObjectAnimator mover = ObjectAnimator.ofFloat(aniView, "translationX", -500f, 0f); mover.setDuration(2000); ObjectAnimator fadeIn = ObjectAnimator.ofFloat(aniView, "alpha", 0f, 1f); fadeIn.setDuration(2000); AnimatorSet animatorSet = new AnimatorSet(); animatorSet.play(mover).with(fadeIn).after(fadeOut); animatorSet.start(); break; default: break; } } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.mymenu, menu); return super.onCreateOptionsMenu(menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { Intent intent = new Intent(this, HitActivity.class); startActivity(intent); return true; } }

Create a new activity called HitActivity.

package com.vogella.android.animation.views;

import java.util.Random;

import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class HitActivity extends Activity {
  private ObjectAnimator animation1;
  private ObjectAnimator animation2;
  private Button button;
  private Random randon;
  private int width;
  private int height;
  private AnimatorSet set;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.target);
    width = getWindowManager().getDefaultDisplay().getWidth();
    height = getWindowManager().getDefaultDisplay().getHeight();
    randon = new Random();

    set = createAnimation();
    set.start();
    set.addListener(new AnimatorListenerAdapter() {

      @Override
      public void onAnimationEnd(Animator animation) {
        int nextX = randon.nextInt(width);
        int nextY = randon.nextInt(height);
        animation1 = ObjectAnimator.ofFloat(button, "x", button.getX(),
            nextX);
        animation1.setDuration(1400);
        animation2 = ObjectAnimator.ofFloat(button, "y", button.getY(),
            nextY);
        animation2.setDuration(1400);
        set.playTogether(animation1, animation2);
        set.start();
      }
    });
  }

  public void onClick(View view) {
    String string = button.getText().toString();
    int hitTarget = Integer.valueOf(string) + 1;
    button.setText(String.valueOf(hitTarget));
  }

  private AnimatorSet createAnimation() {
    int nextX = randon.nextInt(width);
    int nextY = randon.nextInt(height);
    button = (Button) findViewById(R.id.button1);
    animation1 = ObjectAnimator.ofFloat(button, "x", nextX);
    animation1.setDuration(1400);
    animation2 = ObjectAnimator.ofFloat(button, "y", nextY);
    animation2.setDuration(1400);
    AnimatorSet set = new AnimatorSet();
    set.playTogether(animation1, animation2);
    return set;
  }
} 

If you run this example and press the different Buttons, the animation should start. Via the ActionBar you can navigate to your other activity.

4. Animations for Fragment transition

During a fragment transaction you can define animations which should be used based on the Property Animation API via the setCustomAnimations() method.
You can also use several standard animations provided by Android via the setTransition() method call. These are defined via the constants starting with FragmentTransaction.TRANSIT_FRAGMENT_*.
Both methods allow you to define an entry animation and an existing animation.

5. Property Animation API for older Android releases

Jake Wharton created a library which allow to use the Properties Animation API also in Android releases before Android 4.0.
You find more information on the project website: NineOldAndroids

[APP][4.1+]piBalance — track your data/sms/balance with USSD requests

Track your balance/limits/credits/data over USSD or SMS requests and show changes in nice widget. Full history/statistics supported in Pro version. Background requests supported after call, on schedule etc. If you use code like *100# for getting your balance, you can easily configure piBalance to use this code.

Click image for larger version

Name: 1.png
Views: 324
Size: 203.4 KB
ID: 2708749Click image for larger version

Name: 3.jpg
Views: 299
Size: 126.6 KB
ID: 2708750Click image for larger version

Name: 5.jpg
Views: 286
Size: 179.5 KB
ID: 2708752Click image for larger version

Name: 4.jpg
Views: 268
Size: 155.8 KB
ID: 2708753

And the following mobile operators supported out of the box:
Australia: Optus, Lebara
Belgium: Base (KPN Orange)
Bosnia and Herzegovina: BH Telecom
Bolivia: Tigo
Brasil: VIVO, TIM
China: China mobile, China Unicom
Costa Rica: Kolbi I.C.E., Movistar
Finland: DNA Finland
France: Free
Greece: Vodafone
India: Vodafone IN, TATA DOCOMO, Aircell, Reliance, CellOne
Indonesia: INDOSAT
Ireland: Vodafone IE
Kazakhstan: Tele2
Kyrgyzstan: Megacom, Beeline
Latvia: BITE
Malta: Vodafone
Nigeria: Nigeria Communications (MTN)
Namibia: MTC
New Zealand: Vodafone
Pakistan: Ufone (Pak Telecom Mobile)
Poland: Orange
Portugal: Optimus (Sonaecom)
Philippines: GLOBE
Romania: Orange (MobilRom)
Russia: MTS, Megafon, Tele2, Beeline, SCS, UTEL, Smarts, BaykalWestCom, Rostelecom
South Africa: Vodacom, Cell-C, 8.ta
Serbia: TElenor
Switzerland: Swisscom
Sri Lanka: Dialog
Tajikistan: MegaFon
Thailand: Dtac
Turkey: AVEA
Turkmenistan: CELL, MTS
UK: T-mobile, O2, Vodafone
Ukraine: Life, Kyivstar, MTS, Beeline, Utel
Uzbekistan: Beeline

Download APK version 3.788

Free version:
PRO version:
Attached Thumbnails
Click image for larger version

Name: promo_top_banner.jpg
Views: 1866
Size: 69.4 KB
ID: 2708765  
Attached Files
File Type: apk piBalance-free-3.788-release.apk - [Click for QR Code] (1.54 MB, 352 views)

[APP] µTask - Automate your settings



Hello everyone ! Here we go for a small story :

Nowadays, your device has bluetooth, wifi, adaptive brightness and a lot of other settings. I was tired to switch between screens to enable or disable them one by one.

That's why I created μTask which automate this process. µTask allow you to create a task for each app which will be applied when you launch the app.

There is a bunch of possibilities :

- Brightness Auto/Manual
- Media volume on/off
- Mobile data on/off
- Wifi on/off
- Bluetooth on/off

And if your device is rooted, you can enjoy more features (depending of your kernel) :

- CPU governor
- Maximum CPU frequency
- Minimum CPU frequency
- IO scheduler
- Read ahead buffer
- TCP congestion algorithm
- High audio performances on/off
- High wifi performances (wifi_pm) on/off

DOWNLOAD

For those who are unable to access the google play store, the apk is available in the download section


Please wait a while, µTask is being published on Google Play

PREVIEW





NOTE

If you have some ideas to impement, let me know on this thread and let's discuss on it ;)

- This app is currently under beta so bugs are expected !
- For those who needs help, use this post.
- My PM is not a technical support, I will not help you to root your device or unlock your bootloader !
- Thanks and feedbacks are apreciated !

XDA:DevDB Information
µTask, a App for the Android General

Project Ara Is Technology's Best Hope for a Maker Nation



Google is doing something brilliant with Project Ara. It is taking the mobile phone, something most of us can't live without, and attempting to disrupt an entire industry, while at the same time laying groundwork to convert as many people as it can into makers.
The "maker movement" has been chugging along now in the geek zeitgeist for a handful of years. It's largely dominated by hobbies that include 3D printing, arduino, soldering, sawing, and sewing. In places like New York, maker culture has, for better or worse, has been hipsterized to the point where it's starting to feel inaccessible to the rest of society. So despite what you may hear in your favorite Williamsburg watering hole, the maker movement is still very much a niche that continues to grow, albeit rather slowly.
Despite what the tech pundits say, technologies like 3D printing are still very much running on passion and not practicality. Until people can produce a piece of clothing instead of a desk ornament, most people won't be flocking to Best Buy for the latest 3D-printing wunderkind. However, phones are a completely different story. When you think about it, the idea of customizing your phone didn't really exist until the launch of the Moto X, which lets you pick the color, texture, and even wallpaper of your device via Moto Maker. Now, Google wants to take the concept of customization to an entirely new level with Project Ara, which in layman terms, is a functional LEGO phone. Admittedly, that's a crude description, because Ara is one of the coolest ideas I've seen in a long time. It has the potential to completely transform the mobile industry. That said, it's just as likely that Project Ara will fail, or at the least become another element of the maker niche.
Opinions
I'm guessing Google doesn't want that to happen, but it will be interesting to see where a modular phone fits into Google's long-term mobile strategy. My hope is that when next January comes and the first Ara phone is released, Google invests a lot of resources into making Ara accessible to everyone, including kids. To achieve that, Google finally needs to establish a brick-and-mortar strategy. If not a full-service retail store, then at least temporary pop-up stores that invite people of all ages to come in and sit around a table covered in Phonebloks. I can't think of a better way to redefine the mobile phone industry and teach product design than to involve the consumer in the actual construction of the device, which based on the evidence so far, will be as easy as snapping LEGO blocks into place.
Google has been doing some impressive stuff when it comes to phones lately. With the Nexus line getting well-deserved acclaim along with a friendly price, Google can continue scoring wins with initiatives like Project Ara while we keep waiting for Apple to wow us for the first time in a while (and that's coming from an iPhone user). However, the one thing Apple seems to be unbeatable at is marketing, or convincing you why you should pay more for its device. So to that end, I really hope Google pulls out all the stops for Ara if it truly believes it can impact the future of the mobile phone market. Come January, I'm really hoping I can go somewhere and start playing with my blocks, and then make a call or sent a tweet with them.

[MOD][SCRIPTs][TWEAKs]Fly-On Mod™V4.0 Beta6/Feel The Smoothness




Code:
/*
 * Your warranty is now void.
 * I am not responsible for bricked devices, dead SD cards,
 * thermonuclear war, or you getting fired because the alarm app failed. Please
 * before flashing it! YOU are choosing to make these modifications, and if
 * you point the finger at me for messing up your device, I will laugh at you.
 */
Introduction :

Hy guys,Fly-On Mod is a Mod that combines many script,binary and other tweaks in one package which is aimed to improve Android system's Smoothness,reduce GUI lags and of course some useful battery life improvements and tweaks!

Features and Improvements :


- Full memory management.
-Linux kernel tweaks and improvements for better performance and battery life.
- Entropy generator engine used to reduce lags.
- Zipalign apps in "/system" and apps in "/data" every 48 hours which result in less RAM usage.
- Sqlite optimizations and faster database access.
- CPU governors tweaks and improvements for better performance and battery life.
- Increased SD Card read-ahead cache to 2048 KB .
- Ad blocking.
- Build.prop tweaks and improvements.
- Cleans log files and tombstones at every boot.
- Many other tweaks for better performance and battery life!


Requirements :

- Android 2.3.x (Gingerbread) or higher.
- Kernel with init.d support.
- Root and newest busyBox version.
-Custom recovery(like CWM or TWRP).
- At least 4MB of free space in "/system".


How to install :
Before Flashing please do a nandroid backup to avoid any incompatibility issues.
1. Download the Fly-On Mod main pack and sqlite pack according to your phone's Android version.
2. Rebooting into recovery mod.
3. Install Signed_Fly-On_Mod_V4.0-Alphax.zip and sqlite_xversion.
4. Reboot and feel the smoothness!


In the package :


+/system/etc/init.d/ scripts :
-ram_manager: It's a complete memory manager
-92cleaner: Cleans log files and tombstones at every boot.
-09sdcardspeedfix: Set SDCard readahead speed to 2048 KB.
-darky_zipalign: Zipalign apps in "/system" every 24 hours.
-zipaligndata: Zipalign apps in "/data" every 24 hours.
-98fly_engine: Contains various tweaks and improvements. (3G/VM/sysctl/kernel/battery life tweaks etc.)
-sqlite_optimize: Optimizing database of apps every 24 hours.
-93kill_media_server: Kills media server when unused to save battery .
-94Governor_tweaks: Tweaks for CPU governors,It's aimed on better performance and battery backup.

+/system/xbin/ :
-sqlite3
-zipalign
-Openvpn

+/system/etc/rngd/ :
-entro
-entropy
-rngd

+/system/lib/
-libncurses.so .




Frequently asked questions:

Q: Can I use Fly-On MOD™ with my device?
A:Fly-On works on all Android devices(Samsung Galaxy,Sony Xperia,HTC,Google,LG and all other OEMs) with Root,busyBox and init.d support.

Q: Should I patch my services.jar?
A:If you are using Fly-On's RAM config in top of Android 2.3 you'll not need to patch them,but since Android 4.0 OOM values are hardcoded into the services.jar so you'll need to patch them to have 100% RAM management.

Q: How to patch services.jar
A:you can either patch them using supercharger V6 script before installing Fly-On Mod or use magic patching tool by zeppelinrox(thanks to him),Visit his thread.

Q: I'm coming from an old version should I uninstall my version before installing new one?
A:No,Just new version over old one, the installation package will do everything.

Q: I feel very comfortable with my current old version,why should I update to never version?
A:Even If you feel very comfortable with your old version you should update to get latest improvements and bugfixes.

Q: What is EXT4 tweak?
A:It's a tweak that disables EXT4 journalism which increases I/O speed.

Q: Can I use EXT4 tweak?
A:In order to use this one you'll need your phone's file system to be on EXT4.

Q: Can I use INT2EXT+ with Fly-On Mod?
A:Yes It's totally compatible.

Q: Can I use Fly-On MOD™ with any other MOD that uses init.d scripts,binaries and Tweaks?
A:No,you can't as they will conflict ,so choose one of the them.

Q: And when I install a newer Fly-On version should I re-install my RAM Configs/EXT4 tweak?
A:No need.

Q: What is the best kernel to use with Fly-On?
A:No one is the best,Use any custom kernel with init.d support.

Q: What is entropy generator engine?
A:It an engine used to reduce lags by keeping a section of the Android file system (/dev/random) full of random bits so that the system does not have to wait for the file system to generate them.

Q: So for better performance/battery Entropy generator must be on or off?
A:No,It just off by default to let users have their own choices.

Q: Can I use Supercharger V6 with Fly-On Mod?
A:Yes,but If you are using Fly-On RAM manager delete It first.(Keep Fly-On main package installed).

Q: But If I have an older version what to do to uninstall Fly-On?
A:Update your version to V4.0 A6 first then Flash the uninstaller.

Q: Do I need to mount /system or /data before flashing?
A:No need to do that as the installation package does everything.

Q: There are many sqlite zips,which one should I pick?
A: Depending on your phone's Android version,like if you are running Android 4.0.x Ice Cream Sandwich flash sqlite_ICS.




About Entropy Generator :

+To monitor available entropy type in terminal :


Code:
su
entro
+To turn entropy on type in terminal:
Code:
su
entropy_on

+To turn entropy off type in terminal:


Code:
su
entropy_off
To check if the files are correctly installed type in terminal:

Code:
su
Fly-On
+To uninstall the Mod,type in terminal:

Code:
su
uninstaller

Note also:


- Don't use any Task Killer with this Mod!
- Don't use Fly-On Mod with any other tweaking script as they will conflict!
- If you want to use Fly-On Mod in your ROM or your Mod ask for permissions first and give me credits!
- If you have any question ask me in the thread instead of PMs or I will not reply!
- Read well the thread before posting any newbie questions and do not ask for an already answered question!




File Type: zip Fly-On_EXT4_tweak.zip - [Click for QR Code] (127.3 KB, 9539 views)
File Type: zip Fly-On_remount-i9300.zip - [Click for QR Code] (127.4 KB, 1260 views)
File Type: zip Signed_Fly-On_Mod™_sqlite_GB.zip - [Click for QR Code] (297.0 KB, 5370 views)
File Type: zip Signed_Fly-On_Mod™_sqlite_ICS.zip - [Click for QR Code] (239.7 KB, 4340 views)
File Type: zip Signed_Fly-On_Mod™_sqlite_JB4.1.zip - [Click for QR Code] (237.5 KB, 6544 views)
File Type: zip Signed_Fly-On_Mod™_sqlite_JB4.2.zip - [Click for QR Code] (237.4 KB, 6112 views)
File Type: zip Signed_Fly-On_Mod™_sqlite_JB4.3.zip - [Click for QR Code] (236.8 KB, 4658 views)
File Type: zip Signed_Fly-On_Mod™_V4.0-Beta5.zip - [Click for QR Code] (1.09 MB, 3480 views)
File Type: zip Signed_Fly-On_Mod™_V4.0-RC1.zip - [Click for QR Code] (1.09 MB, 12581 views)
File Type: zip Signed_Fly-On_Mod™_V4.0-Beta6.zip - [Click for QR Code] (1.09 MB, 8555 views)
File Type: zip Signed_Fly-On_Mod™_sqlite_KK4.4.zip - [Click for QR Code] (236.7 KB, 3320 views)


Source - XDA

This is what would happen between Flipkart and Amazon in India

Flipkart was founded in 2007 by Sachin Bansal and Binny Bansal, both alumni of the Indian Institute of Technology Delhi. They had been working for Amazon.com previously. During its initial years, Flipkart focused only on books, and soon as it expanded, it started offering other products like electronic goods, Air Conditioners, Air coolers, stationery supplies and life style products and e-books.
 Recently, with the arrival of Amazon, the survival of Flipkart has become a major question for Flipkart. Among all the business equations, let us spare a moment to appreciate the fact that Ex-Amazon employees have set up a company which will challenge the 'parent' company's monopolistic attempt on Indian market. I do not know whether this fact appeals to you but I had always been a fan of David-Goliath stories.

So, let us look at 3 possible scenarios that I think might happen between Flipkart and Amazon:

1) Amazon buys Flipkart: (Probability: 40%) 

Jeff bezos laughing

This is the dream Flipkart founders / investors are hoping for day in and day out. The question then will be about what the price will be. If we look at history, it's similar to what Ramesh Chauhan of Parle soft drinks faced when Coke was trying to enter India. He sold off 4 brands: Thumsup, Gold sport, limca and one other for a price of 750 crores when a reasonable value was more likely 275 to 300 crores. It's rumored that Flipkart founders have already asked for 2 billion USD which Amazon thought was ridiculous and turned down. This is the kind of exits current investors are hoping for.  


3)Amazon crushes Flipkart: (Probability: 50%)


Amazon 3D Logo

Amazon brings in its own expertise, processes, patents, IP, brand and offers superior buying experience thereby wiping flipkart out of existence. The problem which flipkart has solved( Logistics) is a commodity and can easily be replicated. I am assuming that flipkart doesnt have any IPR or patent ( In fact the founders having worked with Amazon earlier might have exploited Amazon's IPR ). The customers quickly switch to Amazon. Finally, Flipkart is sold for a small amount to Amazon. It would be disastrous for founders and investors. People like Mahesh Murthy will dance on the floor saying, "Didnt I tell you so?"

4) Flipkart does a Lagaan*: (Probability: 10%) 

Flipkart founders sitting on chairs

Amazon is not able to find its feet in the country. Flipkart finds the battle tough. Its Bansals get the government to protect it. They bribe Momota di / Fernandez who go on rampage and either drive Amazon out of India or, just like the Naukri Versus Monster showdown, Flipkart becomes #1 and Amazon is comfortable playing the second fiddle.


But I think, Flipkart would have already been prepared for Amazon's entry, it was always on cards. Flipkart would now bank on its established customer base and logistics setup. Flipkart also have the advantage of better insights on local consumers but that would be tested against market intelligence gathered by the best systems in the world.
  

Recently, Flipkart started to lay off 250 employees by end of this month as a cost cutting measure to fight amazon Due the launch of amazon :

1. Flipkart has started to pay 10% as affiliate commision instead of 5%
2. Flipkart has dropped the prices of many mobiles as high as 10% to maintain market share
3. Flipkart has reduced the market-place-service fee for the resellers to match the amazon service fee.

It is expected that the above 3 steps will increase the Flipkart monthly burn rate by about 3 million dollars.
Overall, flipkart really has to watch its back if it really wants to stay in the market.
Its king Leonidas with his 300 set out to fight against the persian king xerxes. Lets just hope there is no Ephialtes.

These 8 Ways will surely annoy Punjabi's

Punjabis. What would we do without them? They’re boisterous, gaudy, cheerful and slightly vain. But one thing is for sure. Once you get to know them, they make really great friends and annoying your punjabi friend is surely one of the thing you would always want to do ; Here's How :

1) When they tell you they don't drink, gasp in horror and exclaim, "YOU DON'T? You're a Punjabi and you don't drink?"

2)"Let me guess your favorite artist. Honey Singh, right?"

(Earlier it used to be Daler Mehendi in Honey Singh's place).



3) Ask them how long have they lived in Canada. (Do not ask them if they have ever been there, just assume they have. Infuriates them even more)



4) Take them to a nice restaurant and order yellow dal instead of dal makhni or make them eat aalo pranthas without butter.


5) The one sentence that Infuriates me the most is,

"Oh,you're a Punjabi? So where's your turban?"

Breaking News, Being a Punjabi is not equal to Being a Sikh.
 



6) Ask one question :
What is the story behind sardar jokes of clock striking 12 ?



7) With my experience :
Just tell them, "yaar tune panjabiya di shaan mitti me mila di" (you have let down the pride of punjabis) :P


7) Call your typical Punjabi friend a JAAT instead of JATT.  

8) Tell them that you have never had "Rajma Chawal"

10 Things everyone should know about VIT University, Vellore

VIT University, commonly called Vellore Institute of Technology or VIT, is a private research university with primary focus on engineering and technology, located in Vellore, TN, India. Actually, the thing is before coming to VIT I did a lot searches on Google to know more about VIT, their hostels, life and everything else but nevertheless i didn't found anything worth reading about in which i could have deep insight about VIT.

In this post i am not going to tell the same thing that a scene from robot movie was shot in VIT, vellore campus. VIT is seriously a fun place to live in but here are the things that everyone should know about VIT.


1) VIT has a tie up with Dreamspark


This means that ALL the students have an user account with the Dreamspark webstore and they are entitled to download their share of Microsoft developer tools, servers, and platforms for free !

What this means :

All of us can save some 6-7k by not buying the latest windows OS, which we can simply download[original version] for free.
Unfortunately by the time i came to know about this, i had already bought my laptop.


2) Placements in VIT 

  
100% placements. Okay I know, all that IT recruitment and stuff you'd be pondering. But trust me, better than being un-employed. Besides,it's not that you don't get jobs in core-companies. VIT university also offers jobs to the professor's spouse, if He has passed away due to some reason. Job like associate warden, library secretary, etc. Isn't that amazing?

 3) Free Internet

 VIT offers free internet to all the students. you can access it in hostels, around the campus but most important thing is that it is limited to 3GB per month and i am comfortable with it but some of friends told me that Manipal univ. offers unlimited or 10 GB internet and if that's so i am quite disappointed or should I be?

4) The image that it carries around is not as bad as you think.

You'd find VIT students competing in almost every collegiate competitions-national and international and doing extraordinarily well like Team Kshatriya ( BAJA SAE India), Team Pravega (FSAE), Team Vimaanas (SAE Aero Design), to name a few.

Undergrads from VIT have admits from the finest colleges in the world including MIT, Imperial College London, Carnegie Mellon University, Delft University of Technology, Cornell University, Georgia Institute of Technology, Purdue University.
 
 

5) It always rains in Vellore during examtime especially during CAT

6)  So Many chinese students in VIT.


VIT University has the maximum no. Of tieups with Chinese universities. More than any other Indian university.

They tied-up with 10 Chinese universities, and voila you get Chinese people in your college. 

7) Crows , I say!!


Considering the no. of crows there are in our campus, and how viciously they swoop to snatch a puff from you i must warn you from the gang of crows here :P

8)  Companies come to VIT to offer internships or traning to students during summer or winter break

If i'm not wrong, Microsoft came last year and took some 10 people of 3rd year Btech for summer internship and of which some or all of them got a job offer in the end..

9) My favorite part is the huge like really huge diversity here.



There are people from the remotest corners of the country and a lot from other countries too so while you are staying here you don't realize how accommodating and tolerant you have become of people you thought you couldn't be with.Also,VIT is a collage of very different people.

 10) Sale of uncooked maggie is banned in VIT University. 

 Sorry, to all the students who are feeling hungry right now. i know your pain bro. 

Overall, I'm sure quite a number of people agree, at VIT you are made to run around a lot. You have to run for signatures from the whole organization tree, to organize an event/take a leave/organize a meeting/re-cat/going home/coming back late etc etc. 

They really liked their signatures on all those letters for some reason. If you think about it, it is like a mini-world, warming you up for all the things that are out there, in the real world. You develop a kind of resistance and patience to these sort of things.The current students wont see it like that, but later on when you move out, get a job and are in the real world, and probably face something similar, you would probably think,

 "Meh, been there, seen that".