Skip to content

Circular reveal animation on Android

Hey folks, I was looking to make my app Ui/Ux more attractive and fascinated so I used circular revel effect when I was moving one screen to another screen.

1.Let create circular reveal f(n) using ViewAnimationUtils class.

// create the animator for this view (the start radius is zero)
Animator circularReveal = ViewAnimationUtils.createCircularReveal(rootLayout, x, y, 0, finalRadius);
circularReveal.setDuration(450);
circularReveal.setInterpolator(new AccelerateInterpolator());

2. Add the listener on animation class object and

circularReveal.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
if (!animation.isRunning())
getWindow().getDecorView().setBackgroundColor(getResources().getColor(R.color.home_bg_color));
super.onAnimationEnd(animation);
}

3. Override the on animation start f(n).

@Override
public void onAnimationStart(Animator animation) {
super.onAnimationStart(animation);
getWindow().getDecorView().setBackgroundColor(getResources().getColor(R.color.revealColor));
}
});
circularReveal.start();
} else {
finish();
}
}

For further knowledge about class and method check this link.
https://developer.android.com/reference/android/view/ViewAnimationUtils.html

Expand/Collapse Recyclerview with custom animation

Hey guys, I was playing with Recyclerview. In this view Recyceerview can expand to particular and can collapse to its original state. It was a fun task.! I hope you are familiar with RecyclerView.

Now we will step into RecylerView adapter which is holding your item, and you can start coding inside ViewHolder of a card,

  1. Lets first create slide up and slide down xml files.
//slide up xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:fillAfter="true" >

    <scale
        android:duration="1000"
        android:fromXScale="1.0"
        android:fromYScale="1.0"
        android:interpolator="@android:anim/linear_interpolator"
        android:toXScale="1.0"
        android:toYScale="0.0" />

</set>

//slide down.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:fillAfter="true">

    <scale
        android:duration="500"
        android:fromXScale="1.0"
        android:fromYScale="0.0"
        android:interpolator="@android:anim/linear_interpolator"
        android:toXScale="1.0"
        android:toYScale="1.0" />
</set>

2. Let design the layout part.

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/rl_item_order"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="?android:attr/selectableItemBackground">

    <com.dev.gonatuur.views.GoNatuurMontserratSemiBoldTextView
        android:id="@+id/tv_order"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:gravity="center_vertical"
        android:paddingBottom="8dp"
        android:paddingLeft="10dp"
        android:paddingTop="8dp"
        android:text="@string/purchase_order"
        android:textColor="@color/colorBlack"
        android:textSize="@dimen/font_medium" />

    <com.dev.gonatuur.views.GoNatuurMontserratRegularTextViewNew
        android:id="@+id/tv_orderId"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginRight="10dp"
        android:layout_toLeftOf="@+id/toggle"
        android:layout_toRightOf="@+id/tv_order"
        android:gravity="center_vertical"
        android:paddingBottom="12dp"
        android:paddingLeft="2dp"
        android:paddingRight="0dp"
        android:paddingTop="12dp"
        android:text=""
        android:textColor="@color/colorBlack"
        android:textSize="@dimen/font_medium" />

    <com.dev.gonatuur.views.GoNatuurMontserratRegularTextViewNew
        android:id="@+id/tv_orderDate"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/tv_order"
        android:paddingBottom="20dp"
        android:paddingLeft="10dp"
        android:text=""
        android:textColor="@color/colorBlack"
        android:textSize="@dimen/font_normal" />

    <LinearLayout
        android:id="@+id/ll_expandView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/tv_orderDate"
        android:background="@color/colorLightPink"
        android:orientation="vertical"
        android:padding="10dp"
        android:visibility="gone"
        tools:visibility="visible">

        <LinearLayout
            android:id="@+id/ll_upper_layout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:weightSum="2"
            android:baselineAligned="false">

            <LinearLayout
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1.3"
                android:orientation="vertical">

                <com.dev.gonatuur.views.GoNatuurMontserratSemiBoldTextView
                    android:id="@+id/tv_ship_heading"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:paddingBottom="5dp"
                    android:paddingTop="10dp"
                    android:text="@string/label_ship_to"
                    android:textColor="@color/colorBlack"
                    android:textSize="@dimen/font_medium" />

                <com.dev.gonatuur.views.GoNatuurTextView_Montserrat_Light
                    android:id="@+id/tv_ship_data"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:ellipsize="end"
                    android:maxLines="2"
                    android:paddingBottom="5dp"
                    android:text=""
                    android:textColor="@color/colorBlack"
                    android:textSize="@dimen/font_normal" />

            </LinearLayout>

            <LinearLayout
                android:id="@+id/ll_lower_layout"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="0.7"
                android:orientation="vertical">

                <com.dev.gonatuur.views.GoNatuurMontserratSemiBoldTextView
                    android:id="@+id/tv_price_heading"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:paddingBottom="5dp"
                    android:paddingTop="10dp"
                    android:text="@string/label_status"
                    android:textColor="@color/colorBlack"
                    android:textSize="@dimen/font_medium" />

                <com.dev.gonatuur.views.GoNatuurTextView_Montserrat_Light
                    android:id="@+id/tv_status_data"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:paddingBottom="5dp"
                    android:text=""
                    android:textColor="@color/colorBlack"
                    android:textSize="@dimen/font_normal" />

            </LinearLayout>

        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:weightSum="2"
            android:baselineAligned="false">

            <LinearLayout
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1.3"
                android:orientation="vertical">

                <com.dev.gonatuur.views.GoNatuurMontserratSemiBoldTextView
                    android:id="@+id/tv_billing_heading"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:paddingBottom="5dp"
                    android:paddingTop="10dp"
                    android:text="@string/label_bill_to"
                    android:textColor="@color/colorBlack"
                    android:textSize="@dimen/font_medium" />

                <com.dev.gonatuur.views.GoNatuurTextView_Montserrat_Light
                    android:id="@+id/tv_billing_value"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:ellipsize="end"
                    android:maxLines="2"
                    android:paddingBottom="5dp"
                    android:text=""
                    android:textColor="@color/colorBlack"
                    android:textSize="@dimen/font_normal" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="0.7"
                android:orientation="vertical">

                <com.dev.gonatuur.views.GoNatuurMontserratSemiBoldTextView
                    android:id="@+id/tv_status_heading"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:ellipsize="end"
                    android:lines="1"
                    android:paddingBottom="5dp"
                    android:paddingTop="10dp"
                    android:text="@string/label_price"
                    android:textColor="@color/colorBlack"
                    android:textSize="@dimen/font_medium" />

                <com.dev.gonatuur.views.GoNatuurTextView_Montserrat_Light
                    android:id="@+id/tv_priceValue"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:ellipsize="end"
                    android:maxLines="1"
                    android:paddingBottom="5dp"
                    android:text=""
                    android:textColor="@color/colorBlack"
                    android:textSize="@dimen/font_normal" />
            </LinearLayout>
        </LinearLayout>

        <com.dev.gonatuur.views.GoNatuurMontserratRegularTextViewNew
            android:id="@+id/tv_view_more"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/bg_drawable_selector_more"
            android:paddingBottom="5dp"
            android:paddingLeft="7dp"
            android:paddingRight="7dp"
            android:paddingTop="5dp"
            android:text="@string/view_more"
            android:textAllCaps="true"
            android:textColor="@color/white"
            android:textSize="@dimen/font_small" />
    </LinearLayout>

    <ImageView
        android:id="@+id/toggle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/tv_orderId"
        android:layout_alignEnd="@+id/view2"
        android:layout_marginRight="10dp"
        android:contentDescription="@null"
        android:src="@drawable/ic_arrow" />

    <View
        android:id="@+id/view2"
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:layout_below="@+id/tv_orderDate"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:background="@color/colorGray" />
</RelativeLayout>

3. Let initialling animation in Adapter class.

final Animation animationUp;
animationUp = AnimationUtils.loadAnimation(context, R.anim.slide_up);
holder.getExpand().setVisibility(View.GONE);
holder.getExpand().startAnimation(animationUp);
RotateAnimation ra = new RotateAnimation(90, 0);
ra.setFillAfter(true);
ra.setDuration(500);//set duration for delay.
holder.getToggle().startAnimation(ra);

Hope this code snippet will be helpful if you wanna try something like this in your Recyclerview.

10+ amazing android app ideas

Some app ideas which are not developed yet. If you are about to start something new then checkout our hot list :

App Ideas

1. Wanted App

Everybody wants to be alerted about the criminals around. In this app, users will be able to see the wanted criminals in their area and whenever they they come close to one. In fact it will hold a database of criminal activities updated by users & professionals. Moreover, they’ll be able to quickly press alert button which would immediately inform the police and show them the location through GPS.

2. Voice-Voice Translation

Talking to another person, speaking foreign language that we don’t know, is impossible. Voice-Voice translation will instantly translate the verbal communication of two people and enable them to interact properly.

3. Selfie Competition

Selfie craze is all over the people everywhere and with selfie competition, one would compete against friends and win certain points to unlock new features that’ll enhance their selfies.

4. Door-to-door

Help You will bring help at the door for every need of the user. By this app, one will be able to call for the desired help like, electrician, plumber, mechanic etc whenever needed.

5. Find this

There should be an app where you can take a picture of what someone is wearing, then it will find where it’s from and you can order it in a click!

6. Motivate me

An app that lets you send and receive positive messages with strangers when you feel disconnected.

7. Show me

An app that lets you know if you’ve been blocked by a person, or if they’re ignoring your texts and calls.

8.   how many time use your phone

9.   medicine delivery

10. An app that works as a weather radar for local rainfall

11. An intelligent reminder app that learns your habits

12. An app that suggests what kind of dinner you can make with the ingredients that you have in the kitchen

You can pick any one of above and create a app world is waiting.  I will post more ideas or also you can share your suggestions with us so that we can list your idea here.

Feeding Server Timing API from ASP.NET Core

There is a number of Web APIs which allow measuring performance of web applications:

The youngest member of the family is Server Timing API which allows communicating the server performance metrics to the client. The API is not widely supported yet, but the Chrome Devtools is able to interpret the information send from the server and expose it as part of request timing information. Let’s see how this feature can be utilized from ASP.NET Core.

Basics of Server Timing API

The Server Timing definition of metric can be represented by following structure.

public struct ServerTimingMetric
{
    private string _serverTimingMetric;

    public string Name { get; }

    public decimal? Value { get; }

    public string Description { get; }

    public ServerTimingMetric(string name, decimal? value, string description)
    {
        if (String.IsNullOrEmpty(name))
            throw new ArgumentNullException(nameof(name));

        Name = name;
        Value = value;
        Description = description;

        _serverTimingMetric = null;
    }

    public override string ToString()
    {
        if (_serverTimingMetric == null)
        {
            _serverTimingMetric = Name;

            if (Value.HasValue)
                _serverTimingMetric = _serverTimingMetric + "=" + Value.Value.ToString(CultureInfo.InvariantCulture);

            if (!String.IsNullOrEmpty(Description))
                _serverTimingMetric = _serverTimingMetric + ";\"" + Description + "\"";
        }

        return _serverTimingMetric;
    }
}

The only required property is name, which means that metric can be used for indication that something has happened without any related duration information.

The metrics are delivered to the client through Server-Timing response header. The header may occur multiple times in the response, which means that multiple metrics can be delivered through multiple headers or as single comma-separated list (or combination of both). A class representing the header value could look like below.

public class ServerTimingHeaderValue
{
    public ICollection<ServerTimingMetric> Metrics { get; }

    public ServerTimingHeaderValue()
    {
        Metrics = new List<ServerTimingMetric>();
    }

    public override string ToString()
    {
        return String.Join(",", Metrics);
    }
}

Knowing how to construct the header we can try to feed the Chrome Devtools with some information. First we can write an extension method which will simplify adding header to the response.

public static class HttpResponseHeadersExtensions
{
    public static void SetServerTiming(this HttpResponse response, params ServerTimingMetric[] metrics)
    {
        ServerTimingHeaderValue serverTiming = new ServerTimingHeaderValue();

        foreach (ServerTimingMetric metric in metrics)
        {
            serverTiming.Metrics.Add(metric);
        }

        response.Headers.Append("Server-Timing", serverTiming.ToString());
    }
}

Now we can create an empty web application and use the extension method for setting some metrics.

public class Startup
{
    ...

    public void Configure(IApplicationBuilder app)
    {
        ...

        app.Run(async (context) =>
        {
            context.Response.SetServerTiming(
                new ServerTimingMetric("cache", 300, "Cache"),
                new ServerTimingMetric("sql", 900, "Sql Server"),
                new ServerTimingMetric("fs", 600, "FileSystem"),
                new ServerTimingMetric("cpu", 1230, "Total CPU")
            );

            await context.Response.WriteAsync("-- Demo.AspNetCore.ServerTiming --");
        });
    }
}

After hitting F5 and navigating to the demo application in Chrome the metrics should be visible in the Chrome Devtools.

Making it more usable

The above demo shows that Server Timing API works, but from developer perspective we would want an easy way for providing metrics from different places in the application. In case of ASP.NET Core it usually means middleware and service.

The service can be quite simple, it just needs to expose the collection of metrics

public interface IServerTiming
{
    ICollection<ServerTimingMetric> Metrics { get; }
}

internal class ServerTiming : IServerTiming
{
    public ICollection<ServerTimingMetric> Metrics { get; }

    public ServerTiming()
    {
        Metrics = new List<ServerTimingMetric>();
    }
}

The important part is that metrics needs to be collected per request. This can be achieved by properly scoping the service at registration.

public static class ServerTimingServiceCollectionExtensions
{
    public static IServiceCollection AddServerTiming(this IServiceCollection services)
    {
        services.AddScoped<IServerTiming, ServerTiming>();

        return services;
    }
}

The missing part is the middleware which will set the Server-Timing header with the metrics gathered by the service. The tricky part is that the header value should be set as late as possible (so there is a chance for other components in pipeline to provide metrics). Setting the header value before invoking next step in pipeline would be usually to early while trying to do so after that might result in error as headers could have already been sent to client. The solution to this challenge is HttpResponse.OnStarting method which allows adding a delegate which will be invoked just before sending the response headers.

public class ServerTimingMiddleware
{
    private readonly RequestDelegate _next;

    private static Task _completedTask = Task.FromResult<object>(null);

    public ServerTimingMiddleware(RequestDelegate next)
    {
        _next = next ?? throw new ArgumentNullException(nameof(next));
    }

    public Task Invoke(HttpContext context)
    {
        HandleServerTiming(context);

        return _next(context);
    }

    private void HandleServerTiming(HttpContext context)
    {
        context.Response.OnStarting(() => {
            IServerTiming serverTiming = context.RequestServices.GetRequiredService<IServerTiming>();

            if (serverTiming.Metrics.Count > 0)
            {
                context.Response.SetServerTiming(serverTiming.Metrics.ToArray());
            }

            return _completedTask;
        });
    }
}

Below is the same demo as previously but based on middleware and service. The result is exactly the same, but now the service is accessible through DI which allows for easy gathering of metrics.

public class Startup
{
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddServerTiming();
    }

    public void Configure(IApplicationBuilder app)
    {
        ...

        app.UseServerTiming()
            .Run(async (context) =>
            {
                IServerTiming serverTiming = context.RequestServices
                    .GetRequiredService<IServerTiming>();

                serverTiming.Metrics.Add(new ServerTimingMetric("cache", 300, "Cache"));
                serverTiming.Metrics.Add(new ServerTimingMetric("sql", 900, "Sql Server"));
                serverTiming.Metrics.Add(new ServerTimingMetric("fs", 600, "FileSystem"));
                serverTiming.Metrics.Add(new ServerTimingMetric("cpu", 1230, "Total CPU"));

                await context.Response.WriteAsync("-- Demo.AspNetCore.ServerTiming --");
            });
    }
}

It is important to remember that it is the server who is in full control of which metrics are communicated to the client and when, which may mean that the middle ware (or metrics gathering) should be used conditionally.

PC/Internet Tricks

101 Amazing PC / Internet Tricks no one told you before

 

You Can Search Google Timer In Google For A Timer With Alarm

google-timer

Search This In Google For Direct Mp3 Links

intitle:index.of?mp3 Your song name here

google-search-mp3

Use Your Chrome Browser As Notepad Quickly.

new1

Just copy the text below to the address Bar.

data:text/html, <html contenteditable>

Note: You can also bookmark this to use it anytime.

 

View Hidden Password  In Browser

newfbook

 

peep-url-google-cam

Visit To See How Google View You  Http://Google.Com/Ads/Preferences

Read: 50 more Google search Tricks

Rename Subtitle File Same As Movie Name And VLC Will Load Subtitle Automatically Every Time You Open Movie

rename-vlc

Rename the subtitle file same as movie name (Kept in same folder) and you do not need to load subtitle everytime you play the movie.

In Your PC Just Create A Folder With The Name Given Below And Access Everything

GodMode.{ED7BA470-8E54-465E-825C-99712043E01C}

godmode

 

To Undo An Undo Just Press CTRL+Y

 

Do You Know You Can Play Mp3, Movie Directly On Chrome Browser, Just Drag Files In Chrome Window

esds

Check A Website Is Safe To Visit Or Not By Changing Red Letter By Website Domain Name

http://www.google.com/safebrowsing/diagnostic?site=suspiciouswebsite.com

.safe-browsingpng

When Signing On Not So Useful Website , Use Disposable Temporary Email Services To Avoid Spam

 

AppInventor– Learn Or Develop Android Apps/Games With Very Little Or No Programming Knowledge For Free –MIT App Inventor.

 

Delete Your Account Permanently From Famous Websites

delete-account

Check If Your Email Is A Part Of The Famous Hacking Leaks

Have-I-Been-leaked

Note: See 100 More Useful Websites Like this

Convert YouTube Videos To Gif By Adding Gif Before Yotube In Url

gifyoutube

 

Avoid Accidental Closing Of Tab At Chrome, Pin Them

pin-tab

 

Closed A Tab Accidentally , Undo With Ctrl + Shift + T To Get It Back.

 

Forget Where You Parked , Just Try This ..

Paste Image URL Directly To Open It And Edit In Paint

edit-from-paint

 

To Access Your Address Bar Directly: Press F6 Or Ctrl + L

 

Do You Know Google Translate Can Be Your Free Proxy

free-proxy-google

JoinHoney.Com Automatically Apply Coupon Codes For You To Save While Shopping Online

join-honey-save-online

 

Getting Redirected To Country Specific Google Search Page. Try Http://Google.Com/Ncr To Avoid This

Google-no-redirect

Visit Https://Www.Google.Com/Sky/ To Explore Space

Hack And Start Using  Airport Wi-Fi By Adding “?.Jpg” At The End Of Any URL

bypass-wifi

Delete One Word At One Time By CTRL+ Backspace

one-word-atone-time-delete

When Shopping Online Esp. Airline , Hotel Tickets, Use Incognito Mode On Your Browser, Because The Prices Will Tend To Increase As You Visit The Page Repeatedly

 

Send SMS Online (USA Only)

  • Alltel: XXXXXXXXXX@message.alltel.com
  • Amp’d Mobile: XXXXXXXXXX@vtext.com
  • AT&T: XXXXXXXXXX@txt.att.net
  • AT&T: XXXXXXXXXX@mms.att.net (pictures, text may work)
  • Boost Mobile: XXXXXXXXXX@myboostmobile.com
  • Cingular: XXXXXXXXXX@mobile.mycingular.com
  • Cricket: XXXXXXXXXX@mms.mycricket.com
  • Einstein PCS: XXXXXXXXXX@einsteinmms.com
  • Nextel: XXXXXXXXXX@messaging.nextel.com
  • Sprint: XXXXXXXXXX@messaging.sprintpcs.com
  • SunCom: XXXXXXXXXX@tms.suncom.com
  • T-mobile: XXXXXXXXXX@tmomail.net
  • VoiceStream: XXXXXXXXXX@voicestream.net
  • US Cellular: XXXXXXXXXX@email.uscc.net (text)
  • US Cellular: XXXXXXXXXX@mms.uscc.net (pictures)
  • Verizon: XXXXXXXXXX@vtext.com (text)
  • Verizon: XXXXXXXXXX@vzwpix.com (pictures)
  • Virgin: XXXXXXXXXX@vmobl.com

 

If You Want To Avoid Someone On Your Phone But Do Not Want To Reveal That You Have Switched Off Your Phone, Remove The Battery, Instead Of Switching It Off. Switching Off Phone Will Notify Mobile Switching Centre And Callers Will Receive The Switched Off Notification.

 

Lost Your Android Phone? You Can Ring Your Phone Even If It Is In Silent Mode, Erase Data, Or Lock Your Smartphone Remotely Using Android Device Manager.

 

Just Search Find My Phone In Google To Locate Your Phone Instantly

 

While Travelling Open Http://En.Wikipedia.Org/Wiki/Special:Nearby In Your Phone To Read Articles Based On Your Location

 

You Can Create A Book With Cool Index Page And Contents From A Wikipedia Article

create-book

Bored ! Go To Google Images And Search Atari Breakout

atari-breakout

Bored Again Search The Words Below In Google

  • do a barrel roll
  • tilt
  • Google in 1998
  • zerg rush
  • Pacman
  • blink html

 

Shake The Yotube By Searching Do The Harlem Shake On Youtube

 

Use You Calculator For EMI Calculation And Many More Stuff

calculate-emi

Just Do Shift + Esc TO Start Chrome’s Inbuilt Task Manager

task-manager-chrome

To Close A Tab Just Do A Middle Click On It.

 

 Open Task Manager  In Windows Directly Press Ctrl + Shift + Esc

 

Just Shake The Current Active Window By Mouse To Minimize Everything Else

 

To Capture Exact Steps , Windows Has A Free Screen Recorder For You, Search Psr In Your Computer

 

To Share Your Wi-Fi Access With Your Friends Coming To Your House : Generate A QR Code With The Access Details. Print It And Stick It On The Wall.

qrcode-wifi

YouTube Hotkeys

  • To pause a video: Press K.
  • To skip 10 seconds back and forward: Press J and L respectively.

 

When Visiting Any Video On Youtube Replace Youtube With Following Things Given In Video Url To See The Magic

  1.  Just Replace “youtube” with “listentoyoutube” in the URL and paste it in your address bar to download the audio of the video.
    Just Replace “youtube” with “ssyoutube” in the URL and paste it in your address bar  to download the video in any quality available.
  2. Just Replace “youtube” with “nsfwyoutube” and paste it in your address bar  to bypass age restriction.
  3. Just Replace “youtube” with “youtubeskip” in the URL  and paste it in your address bar and you won’t see ads.
  4. Just Replace “youtube” with “listenonrepeat” in the URL  and paste it in your address bar to repeat the video automatically .
  5. Just Replace “youtube” with “gifyoutube” in the URL  and paste it in your address bar to convert video into gif format .

 

Feeling Alone , Visit Coffitivity.Com For  Morning Murmur

Exceeding expectation award

I started my professional life as a software engineer in Ranosys Technologies Pte. Ltd. I attended first quarterly meeting and I saw company giving award to peoples on bases of their hard work and efforts.  I’m surprise that once again prize competition. Actually I haven’t many award, I am always sitting with crowd and clapping for others.

So when I saw this again, I was little bit nerves/sacred because can I compete these persons and prove myself best.       (more…)

Android: Overdraw, Why Should We Care?

Recently I am looking for new stuff for you and i found really interesting fact of our android app. Which is very interesting, Have you look it your android app, why it is slow or and crashes happens some time, all those dispute things happen because we are doesn’t carrying about overdraw and CPU using in over app.

Overdraw is a fact of screen color filling cycle, each screen divide into pixels so when we giving color to over screen the android color filler start coloring to screen but it doesn’t remove previous color, you why because we haven’t defined that remove last color and refill it. We are just giving only filling command by which it will only fill the color over the entire color which is wrong. So that when our android app start it will taking time because overdraw is present in our app. Also it will consume 0.78% of our battery . (more…)

Android basic app

Today I’ll tell you how to start with Android. For the readers who are familiar with basics of Java, it will be easier for them as code is written for Android apps requires Java programming. (more…)