Monday 16 November 2015

Determination

Determination
to finish well

Whilst some people spend their time day dreaming, others are determined to be successful and finish well. The question for you is, how determined are youcomplete whatever you're doing?

The difference between lazy and determined people is that the latter take pleasure in completing tasks and persevere to achieve whatever their goals are. They persevere when things are not working out and persist in a course of action in spite of obstacles. They work hard to reach their targets and tackle obstacles as they arise. They finish what they start and value their goals, unlike the former, who couldn't care less when the task gets done. Therefore, keep yourself focused on the task in hand and don't be side tracked.

There are many records of people in the Bible who were very determined to complete tasks given to them by God. St. Paul is one of those and he writes:

"So I run straight toward the goal in order to win the prize, which is God's call through Christ Jesus to the life above…. Keep on imitating me Philippians 3:14-17. Our Lord Jesus was also determined to finish the tasks that were assigned to him by his father. "Now it came to pass, when the time had come for Him to be received up, that He steadfastly set His face to go to Jerusalem, and sent messengers before His face. And as they went, they entered a village of the Samaritans, to prepare for Him. But they did not receive Him, because His face was set for the journey to Jerusalem."  Luke 9:51-54. When Lord Jesus completed his work, "After the Lord Jesus had spoken to them, he was taken up into heaven and he sat at the right hand of God." Mark 16:19 

At the start of this post you were asked a question, how determined are you to finish your tasks? I hope this article has helped you to make-up your mind. 

Waiting for Exams Results






Waiting for Exams Results

How important are your exam results? Do you feel excited or nervous and fearful as the big day comes close? Did you know behind every major success, there normally is a series of hardships and even failures? Do you know what were Albert Einstein’s school results?
The reason for above questions is that many students in India and Pakistan are waiting for their exam results, whilst in Europe, exams are still in progress. Generally waiting for and getting exam results can cause lots of worries and tension, it can also be an upsetting time for those who fall short of expectations.
It may seem the whole of your future depends on what results you get but it’s important to remember that exam results are just the start of your future career and there are lots of options still available if you don’t get grades you wanted. First of all try not to panic – even if you haven’t got the results you needed. You could alter your plan for future by apply for a different course or qualification, re-sit your exams or look at new career ideas. It’s easier to re-train for a different career whilst you’re still young. Therefore don’t panic, it’s not the end of the world.
So, if you have had your results but haven’t got what you needed for your chosen career, ask yourself few simple questions, e.g.:
  • What other alternative careers should I be looking at?
  • Am I academically gifted for my chosen field?
  • Should I be looking for another training course?
Such questions are important and are the only way you can be sure you’re going to make the right choice. You can also get advice from your career advisor.
One of the reasons why we are so fearful of results is the fear of failure. This is also true for our spiritual condition; we are not sure if we will pass the test when we stand before God who is the judge of all. The basic concept of sin is failure –failure to live up to a standard, failure to be able to hit the bull’s eye, failure to stay on the right path. 

Sunday 8 November 2015

Easy ways to develop Android app

Learn How to Develop Android Application

Introduction
These days the demand of smart phone is being increased and we have different types of client e.g. Touch Phone, tables, Note etc. The demands of the applications for these smart clients are constantly increasing and we have several operating systems for these smart clients e.g. Android, IOS and Windows etc. This article will provide a guideline to .net developer or beginners to develop Android Application.

Development Environment 
This Article is not focusing on how to install/Configure development environment, you can find different development environment on internet. In this article, I will use “eclipse mobile juno” development environment.

Create New Project 
For creating new project click on the File -> New -> Project.


It opens the new wizard window where you can select application template and set the name of the project and package name.


On the click on Next Button, it moves to the next step. Here provide the “Application Name”, “Project Name” and “Package Name”. “Package Name” is a same as “Name Space” in .Net and it must be unique. The project name is only used by Eclipse and it must be unique in the workspace.


You also need to select “Minimum Required SDK” from dropdown. It is the lowest version of Android that your application will support. Then select “Target SDK” which is the Highest API that the application is known to work with. Then select the installed SDK for “Compile With” option to compile your code for selected targeted SDK.

In the next steps of the wizard, you need to select icons, some other information and on the last step provide the name of your activity and it's Navigation Type.


I will provide the detail of activity and layout later, for now you can say it is window’s form as desktop application or as a Web page in web application. Provide the name of Activity and Layout. Leave Navigation type “None” for now. Press finish button. Eclipse will automatically generate start up activity for you.


Within the Eclipse, you can see your project in the “Package Explorer” pane of the left-hand side of the screen. The “HelloWorld” application contains several auto generated folders and file. Let’s discuss it one by one.

/Src: It contains the all java source files those are associated to the project. For example the MainActivity.java file generated by Eclipse is stored in this directory under the package name “com.MyFirst.helloworld” you specified in the wizard. You can add more packages for your application e.g. com.MyFirst.Fragments, CommonClasses etc.
/gen: It contains the java source files and other code files generated by Eclipse. We will use R.java file code later in our project. This file is generated to link your resource files for use in your java files in /src folder.

Andriod Directories (/Android 4.2 and /Android Dependencies): The Android 4.2 directory is generated against your selected Android SDK and Dependencies folder the support file is generated for the backward compatibility with previous versions of Android SDK.
/assests: By default this is empty folder, but you can put your raw assets in it and these files include in your projects as-is. For Example it is good location for textures and game data.
/bin: It is the output directory for build. You can find the final .apk file and other compiled resources in this folder.
/libs: It contains the private libraries (jar) those you might want to use in your application.
/res: It contains all the resources files those are associated to your application. All the graphical element, string and layout of application exists one of the sub folder of the res. We will add some resource later in this project. The auto generated layout file “activity_main.xml” by Eclipse exists in layout sub folder.
Project.properties: This file is generated by android project wizard and it is used for Eclipse settings. It is very rare to change this file directly. Instead Right click on the project in Eclipse and click on properties and make any change which is required for your application.
Run Your Application in Emulator 
First you need to configure emulator for testing your application. To configure your emulator click on window -> Android Virtual Device Manager



It will open pop up where you can create new Virtual device, Edit exist and start any virtual device. After create your new virtual device close this window. Now right click on the application in “Package Explorer” pane on the left-hand side of the screen and click on Run As -> Android Application. It will compile your application and execute it in the emulator.


After a few minutes the emulator will be started and you will be able to see your HelloWorld application in it.


On the screen you can see Status Bar, Action Bar and Navigation Bar. You have nothing to do with the Status Bar and Navigation Bar, it is being managed by System. The Action bar contains the logo and title of your application and you can also open menu by click Menu button (three vertical dots) on it. Layout Area where we place all UI controls.

Design Layout
As it is mentioned earlier Eclipse generates by default one layout. In emulator the application is showing only “Hello World!” text in the middle of the screen. Open the layout from /res/layout/activity_main.xml and you can see the layout in designer in the middle area Eclipse. You can change view from graphic or xml as per your wish. Eclipse provides you both option in the bottom of the layout “Graphical Layout” or “activity_main.xml”.


In the designer you can see all available controls for UI design in different tabs e.g. Text Fields, Layouts etc. I will create a UI given below in image for understanding the basic component of Android application. Let’s start playing with the layout.


This layout is designed using Linear Layout. LinearLayout is a view group that aligns children in single direction, Horizontal or Vertical. The attribute android:orientation is used to set the direction. E.g. android:orientation="vertical". Eclipse provides a Property Pan on the right-hand side of the screen to set the properties from designer. TextView control is a readonly text. You can only view it and cannot edit it. EditText control is use for getting input from the user. Button is a standard button control and on the click event we perform action accordingly.

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
  <TextView
      android:layout_width="fill_parent"
      android:layout_height="30dp"
      android:background="@drawable/header_bg_royal"
      android:paddingLeft="8dp"
      android:paddingTop="6dp"
      android:text="@string/intent_title"
      android:textColor="@color/white_color"
      android:textStyle="bold" />
  <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="10dp"
    android:layout_marginBottom="10dp">
    
    <Button
        android:id="@+id/btn_phone_call"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/phone_call_title" />
    <Button
        android:id="@+id/btn_map_application"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/map_title" />
  </LinearLayout>
  <TextView
      android:layout_width="fill_parent"
      android:layout_height="30dp"
      android:background="@drawable/header_bg_royal"
      android:paddingLeft="8dp"
      android:paddingTop="6dp"
      android:text="@string/activity_title"
      android:textColor="@color/white_color"
      android:textStyle="bold" />
  <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:layout_marginBottom="10dp">
    
    <Button
        android:id="@+id/btn_open_activity"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/open_activity_title" />
    
  </LinearLayout>
  .
  .
  .
</LinearLayout>
One thing you must notice in this UI, I haven’t registered any event for the buttons here in layout. We can do here using onClick attribute, but it is not a good way to do here. Now it is time to understand the some properties/attributes of different UI elements.

Properties
layout_width & layout_height: These properties are used for setting the width and height of the element. The possible values are “fill_parent”, “match_parent”, “wrap_content” and any number (e.g. 100dp). The fill_parent and match_parent are same. fill_parent is renamed to match_parent in API level 8 and higher, which means that the view want to as big as parent (minus padding). wrap_content means set the width or height according to the content or child.

android:background="@drawable/header_bg_royal": This property is similar to the other programming languages to set background of the element. The interesting point here is to set the background from the resources of the android application. The header_bg_royal is the image which I pasted in the res/drawable-hdpi. You can see complete path in the image below.


In layout xml file we can access resources using @ sign at the start of resource name. @drawable means get the resource from the drawable folder. You can see more than one drawable folders e.g. drawable-hdpi, drawable-ldpi etc. The reason for multiple folders is we have large verity of client machine some is using tables, Note, mobiles etc. The screen size and resolution varies client to client. You can create your icons, image for different resolution and put it into the appropriate folder. Android OS will automatically pick best suitable image for displaying. @drawable/header_bg_royal means get header_bg_royal image/resource from drawable.

android:text="@string/intent_title": I hope you have understood what purpose of @ sign is and what does string means after it and what intent_title is. Before explaining it again, let me explain why I need to put all my strings in the resource files. If I hard code the text of any control in xml file, the Eclipse gives warning to move it into the resource file. You can see warning in the image given below, when I set the button text property is “Button”, Eclipse is giving warning message to move it into the string resource file.


The question is why it should be string resource. Although you can hardcode it, but it is not a good programming practice. Suppose you have 10 occurrence of text in different activities or layout. For changing that text you need to go into each activity/layout and change there. If you put that text in the string resources then the change require only one place. You can also create your application multilingual using these resource files.

@string/intent_title means get the value of intent_title from the string resource.

android:textColor="@color/white_color": For setting the fore color of the text, get color value from resource file. In next section you will get to know how can we add value in resource file.

android:id="@+id/btn_phone_call": If you want to access any control in code, assign it an id. The + sign with @ means if the resource exist then use it otherwise create it. @+id/btn_phone_call mean use the btn_phone_call in id resource and if it does exists then create it.

Resource File

Eclipse provides you a provision to add resources using designer. You can also use xml view to add resources. You can add different type of resources e.g. string, color, array etc. I will not go in the detail of resources in this article. You can read more about it in different tutorials.

Activity
It is a most important concept of Android development. An activity represents the screen in an application. You can use it in different ways as floating window or embedded inside of another activity etc. The class must be inherited from Activity class for your activity. extends keyword is used for inheritance in java.

 public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
 }
onCreate method is used to initialize your activity. We usually call setContentView() method to define the layout for the activity and also get UI controls using findViewByid() that are required to interact programmatically.

super.onCreate() means call the onCreate method of base class. Super is used to access the base class in java. The layout that is associated with this activity is in activity_main.xml. You can get the id of that resource using R.layout.activity_main. R is the auto generated class that maintains the resources and we use it to access to resources in code. setContentView(R.layout.activity_main) sets the layout for activity.

onCreateOptionsMenu() method is used to handle the menu for that activity. I will explain it later.  

Access Control/View in Activity
After setting the content view of the activity, you can get control using findViewById(viewId) method. It takes the view/control id as a parameter and returns the view that is found. View is the base class for widgets, which are used to create interactive UI components (buttons, text fields, etc.). We need to cast the view into the original widgets.
Button btnPhoneCall = (Button)findViewById(R.id.btn_phone_call);

EditText txtName = (EditText)findViewById(R.id.txt_name);
In above sample code findViewById(R.id.btn_phone_call) finds the button having id passed as parameter and finds the by id. Now after finding we can use these Views/Controls in our code. Now we need to register a click event of the button and on click we will open phone call view of android.

 btnPhoneCall.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
  
         onPhoneCallClick();
    }
 });
There are three ways to implement listeners in java and they have their own advantages and disadvantages. These three ways are

Inline implementation 
Using the implements keyword
By using variables
You can study about these different ways on the internet. In the above example I register listener for button using Inline implementation. Call setOnClickListener() method of button and pass OnClickListener as an parameter. In OnClickListener handler override the onClick event. When user will click on button, it will call onClick event. You can write your code inside onClick.

Intent
Intent is the asynchronous message which allows android components to request functionality from the other component of the Android System. It represents an app’s ‘Intent to do something’. We can use intents for different tasks e.g. making call, open map, open activity etc. But most often they are used to start another activity.

How to Start another Activity 

Till here, you have learnt about activity, layout resources and intent. Create another activity name “LifeCycleActivity” and create its layout “activity_life_cycle.xml” in layout folder. It is better to use Eclipse to add activity in your application that automatically generates layout for that activity and automatically put necessary information of activity in “AndroidManifest.xml” file. Otherwise you need to do it manually. Right click on your application in “Package Explorer” pane in left-hand side and click on New > Other. It will open a popup window where you need to select “Android Activity” and after completing the wizard, it will create a Activity and default layout for you.


Create object of Intent class and pass it to the startActivity() method. Intent class has different type of constructor, for starting activity pass context and activity class to the object. Activity class is the subclass of context, so pass this as a first parameter and the pass the class as to which the system should deliver the intent. Then pass this intent to the startActivity() method and your second activity will be started.

 Intent intent = new Intent(this, LifeCycleActivity.class);
 startActivity(intent);
There are some other methods for starting activity. You can study about them too.

startActivityForResult(intent, requestCode) 
startActivityFromChild(child, intent, requestCode) 
startActivityFromFragment(fragment, intent, requestCode)
Open Phone Dialer 

Launching the Phone dialer is also quite easy in Android you can send message to Android OS to run specific application using intent 

 Uri uri = Uri.parse("tel:03361122334");
 Intent intent = new Intent(Intent.ACTION_VIEW,uri);
 startActivity(intent);    
When you create asynchronous message (intents) from the Uri, tells the system to open activity that can handle the Uri scheme. In above example the Uri start from tel: loads an activity from the phone dialer application with the number loaded.

Pass data to another Activity 

You can easily pass data with your asynchronous message (intent) as we passed to the phone dialer activity. But we passed to phone dialer activity using Uri. You can also put string, integer or other values in intent and you can also put your custom class object. Use intent.putExtra() method to put extra information in your intent. This method has many overloaded method, use appropriate method for your data.

Student std = getStudent();

Intent intent = new Intent(this, DetailActivity.class);
intent.putExtra("student", (Serializable)std);
startActivity(intent);
The activity “DetailActivity” that is receiving the intent exposes the method for retrieving the extra information. The getIntent() method returns the intent and then you can get extra information using getExtras() method. This method returns the bundle and from the bundle you can get your desired information using get methods as per your information type. In this example I am calling “(Student)bundle.getSerializable("student");” because my information was serialize able object and then I am casting it back to my concrete class object.

Bundle bundle = this.getIntent().getExtras();
Student std = (Student)bundle.getSerializable("student");
String name = std.getName();
Lifecycle of the Activity
For proper understanding of the activities, it is necessary to understand the life cycle of the activity. Activities are managed in the system as an activity stack. When new activity started it is placed on the top of the stack and becomes the running activity. The previous activities always remain below it in the stack and will not come to the front until the new activity exists. Following is the list of method which calls on each state of the activity.

@Override
 protected void onCreate(Bundle savedInstanceState) {
 }
 @Override
 protected void onStart() {
 }
 @Override
 protected void onRestart() {
 }
 @Override
 protected void onResume() {
 }
 @Override
 protected void onPause() {
 }
 @Override
 protected void onStop() {
 }
 @Override
 protected void onDestroy() {
 }    
onCreate() method called when activity is first created. onStart() called when activity is visible to user and onResume() called when application starts interaction with the user. At this point your activity comes at the top of activity stack.

onPause() method called when system is about to start resuming of previous activity. It is typically used to save the unsaved data to persist it, stop animation or other work that can consume CPU.

onStop() method called when the activity is no longer visible to the user, because another activity has been resumed and is covering this one.

onRestart() called after your activity has been stopped. It called prior to being started again.

onDestroy() called before your activity is destroyed.

Create Menu

For creating menu, open the res/menu/activity_main.xml file and add your menu items in it. Set id and title for each menu item and then you can handle this menu item by id in activity class.

 <menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
        android:id="@+id/menu_settings"
        android:showAsAction="never"
        android:title="@string/menu_settings"/>
      <item
        android:id="@+id/menu_other"
        android:showAsAction="never"
        android:title="@string/menu_other"/>
      <item
        android:id="@+id/menu_exit"
        android:showAsAction="never"
        android:title="@string/menu_exit"/>
 </menu>
For handling on click method of the menu item override theonOptionsItemSelected(MenuItem item) method in your activity. This method fires whenever user click/select any menu item. For handling different actions for each element get the id of the selected menu item using getItemId() method and perform action for each menu item.

 @Override
 public boolean onOptionsItemSelected(MenuItem item) {
    boolean handled = false;
int id = item.getItemId();
switch(id)
{
case R.id.menu_settings:
{
Toast.makeText(this, "Clicked on setting menu item.", Toast.LENGTH_SHORT).show();
handled = true;
break;
}
case R.id.menu_other:
{
onOpenActivity();
handled = true;
break;
}
case R.id.menu_exit:
{
finish();
handled = true;
break;
}
default:
{
handled =  super.onOptionsItemSelected(item);
}
}
return handled;
 }
Each activity can has its own menu. You can put different menu items for each activity and handle it differently. Some activity cannot have any menu. For this don’t override onCreateOptionsMenu method in your activity. In this method we inflate menu items to menuInflater.

Wednesday 23 September 2015

Create a bootable USB driver


Create Bootable USB Drives to Install (Almost) Any OS

With the advent of ultra portable laptops, optical drives are becoming a thing of the past. Although not having optical drives allows manufacturers to make lighter devices, it causes problems to users when they want to fresh install operating systems, as most of them are still available in the form of CDs, DVDs and downloadable ISOs. For users of these devices, the only option then remains is to use a flash drive to install the operating system of their choice.

Not surprisingly, there are also a few of us who prefer installing operating systems from flash drives for its faster speeds. There are also a few of us who prefer to keep live operating systems on our flash drives to access computers without having an OS by simply plugging in our devices.
Bootable USB drives from ISO

With such a lot of users needing to create bootable USB flash drives, it appears imperative that OS manufacturers provide an inbuilt way to create them with each DVD and CD they provide. However, that is not the case with all operating system manufacturers.

In fact, most of the users are left hunting for third party applications that can create a bootable USB drive for their specific operating system. To add to a user's misery, the OS manufacturers that do provide an application for this make them OS specific (like the Windows 7 USB/DVD tool) and do not support ISOs and DVDs of other OSs. Some of them fail to work even if the original ISO/DVD is slightly modified (slipstreamed etc.).

Use Rufus to create bootable USB media

If you too are one such user looking for a solution, you can stop looking and try Rufus, an open source tool to create a bootable USB drive from any bootable ISO.

Rufus is small in size (nearly 615 KB) and claims to be faster at creating bootable USB drives than most applications of its type. Rufus is also portable which means that you need not install this software to use it. Just double click on the executable file and the application will start working. Rufus also allows you to add fixes to use your bootable flash drives on older computers having BIOSs which do not support booting from them.

Strangely however, Rufus can only create bootable flash drives from ISOs meaning you need to have an ISO image of the CD or DVD of the OS of your choice.

I do not think this should be too much of a problem considering how easy it is to create ISOs from DVDs and CDs.

How to use Rufus?

1) When you start Rufus, the first option that you will see is Device:. It contains all your connected USB drives. If you plug in a USB drive after starting Rufus, the drive you have connected will shortly be available here.

2) You will not need to modify the Partition Scheme and target system type, as the default choice is suitable for making the USB drive work on both UEFI and legacy BIOS computers.

Create Bootable USB drives
Rufus in Windows 8

3) Change the file system from FAT32 to NTFS from the dropdown menu. This is the file system with which your USB drive will be formatted with. Do note that older computers will not boot from a flash drive formatted as NTFS. Do not modify the cluster size. Enter the name you want for your USB device in the Volume label box.

4) Check the Create a bootable disk using checkbox if it is not already checked. In the dropdown menu next to it, select ISO image. Click on the button right to it to locate your ISO image.

Do note that Rufus will format your USB drive deleting everything on it before making it bootable. So, make sure that it does not contain any important data.

5) Click on Start to format your USB drive and extract all files of the ISO to it.

To install the OS, restart your computer and select your USB device as the primary boot option in the BIOS boot menu.

Compatibility
Rufus works on all the latest versions of Windows and can be used to extract the following ISOs to a bootable USB drive:-

Arch Linux, Archbang, BartPE/pebuilder, CentOS, Damn Small Linux, Fedora, FreeDOS, Gentoo, GParted, gNewSense, Hiren's Boot CD, noppix, KolibriOS, Kubuntu , Linux Mint, OpenSUSE , ReactOS, rEFInd, Slackware, Tails, Trinity Rescue Kit, Ubuntu, Ultimate Boot CD, Windows XP (SP2, SP3), Windows Server 2003 R2, Windows Vista, Windows 7, Windows 8, Windows 8.1, Windows 10 and many more.

Computer Tricks



    Computers have simplified our life to a great extent. Things that were impossible earlier can now be completed instantly thanks to computers. However, this does not mean that a PC is all work and no play.

    Here are some of the best tricks you can try out on your Windows based computer.


    Have fun with Notepad
    If you think that Notepad is just a basic text editor, then, you will be amazed by its capabilities. You can use Notepad to create everything from personalized logs to harmless viruses that are incredibly annoying. Go see this post to know just how useful Notepad is.

    Command Prompt too has some tricks up its sleeves
    If you think that the Command prompt is a boring old program that no one uses, you are making a huge mistake. It can be used for everything from watching ASCII Star Wars to making folders that you cannot delete. See this post to know about all the cool stuff you can do with the Windows Command Prompt.

    Use Keyboard Shortcuts to get work done in no time
    If you are tired of having to alternate between your mouse and keyboard to operate your Windows computer, you would love to know these really useful keyboard shortcuts which greatly increase your speed and efficiency. See this post for details.

    Make your computer speak what you type
    You can use your PC's built in features and some VBScript magic to create a simple program that will make your computer speak whatever you input to it. Enter the right words and you could imitate a real conversation. Head over to this post to talk with your PC.

    Make your computer greet you every time you start Windows
    A simple modification in the previous trick will make your computer welcome you in its own mechanical voice every time you log onto Windows. This is achieved by placing the VBS script responsible for making your computer talk in the Start up folder. Read this post to have a computer said welcome.

    Find your computer's gender
    Want to know if your PC is a male or a female? Simple. Try the previous trick to know if your computer is a 'he' or a 'she'. On a serious note, this depends upon the voice you have selected in Microsoft Text to Speech options.

    Lock Folders with password
    If you have important personal files that you do not want other people to see, you can hide them in a password protected folder to prevent unwanted users from seeing them. Go see this post to hide your personal files effectively.

    Change your Processor's name

    If you are bored of your old processor and want a new one with a staggering name, you will definitely want to see this trick which allows you to change its name to something extraordinary to make your PC special.

    Make a Keyboard Disco
    You can use some VBScript coding to create a live disco on your keyboard by making the LED lights flash alternately. See this post to know how your keyboard can turn into a disco.

    Recover permanently deleted files in Windows
    If you have ever deleted a file in Windows that you did not want to and now want to recover it, you would definitely want to know about some free tools to recover your deleted files easily.

    Use your Keyboard as Mouse.
    You know you can use your mouse as keyboard using the On-screen keyboard utility. What if I tell you that it is also possible to do the reverse? Just read this post to see how.

    Disable USB ports to prevent others from taking your data
    Ever wanted to disable your USB ports to prevent others from using their flash drives on your PC? This post explains how to do just that with a simple registry trick. Do note that disabling USB ports will also disable your USB connected peripheral devices.