What is Instawiki 

A single SMS application that you need to get answer for all your burning questions, may it be a simple calculation, a statistic data, people & history, weather, music, movies, and the list goes on. Yeah we basically designed an Answering Machine SMS App which will exactly find out the answer for your questions. We used service to find out the answer for the queries you ask.

How to use this Service

Type @instawiki your_query and send it to 92433 42000 / 92665 92665 .
Ex: @instawiki Abdul Kalam.
Above request will fetch you details about Mr.Abdul Kalam, the Great Scientist of India.




View on Sourceforge


View on Txtweb


Your feedback on Instawiki (hopefully constructive) is always welcome.


Developer of this application is not responsible for any wrong or illegal use of this software.

JAutoclicker is a Software for automating the mouse clicks at the positions defined by you. At most you can configure 3 coordinates to automate.



  • Detects the coordinates of the screen.
  • Automates the mouse button actions(right click,left click,middle click,double right click,double left click).
  • Configure at most 3 screen coordinates to auto click.
  • Option to set the delay between the clicks.
  • Option to configure the number of times to click in a particular screen coordinate.
  • Option to Pause and resume the clicks at any point of time.
  • Option to Hide the application in system tray and to issue commands from system tray icon.
  • Saves the last used settings while starting up the application even after the exit of the application.
  • A rich user Interface.
  • Option to integrate external library like Jintellitype to configure hot keys.


FOR USERS: -> Download the Executable jar and double click to start.
FOR DEVELOPERS: -> If you want to add hot key to this app. just uncomment the lines in and add Jintellitype jars and dll.







View on GitHub


Your feedback on JAutoclicker (hopefully constructive) is always welcome.



Developer of this application is not responsible for any wrong or illegal use of this software.

Since most of the testing scenarios data are in the form of table, a Data Driven testing approach can be employed for carrying out unit testing using TestNg/Junit. For Example, Consider the example of testing a simple integer division method. 

   1:      Class Divide{
   2:        public static int divide(int a, int b) {
   3:          if (b == 0) {
   4:              throw new ArithmeticException();
   5:          } else
   6:              return a / b;
   7:      }
   8:  }

For testing this simple method itself properly, we need to test the following scenarios.

Test Case Objective

Input number 1

Input number 2

Expected Result

Zero/Zero 0 0 ArithmeticException
Zero/positive 0 2 0
Zero/negative 0 -2 0
Positive/zero 5 0 ArithmeticException
Negative/zero -2 0 ArithmeticException
Positive/positive 5 2 2
Positive/negative 5 -2 -2
Negative/positive -5 2 -2
Negative/negative -5 -2 2
No/same number 5 5 1

To test the above scenarios we have to call the same method with different arguments (something like below) or need to have different method for testing each scenario.

   1:  public class TestDivide {
   3:      @Test
   4:      public void testDivide() throws Exception {
   5:          // Zero/Zero 0 0 ArithmeticException
   6:          testDivideByZero(0, 0);
   7:          // Zero/positive 0 2 0
   8:          assertEquals(0, Divide.divide(0, 2));
   9:          // Zero/negative 0 -2 0
  10:          assertEquals(0, Divide.divide(0, -2));
  11:          // Positive/zero 5 0 ArithmeticException
  12:          testDivideByZero(5, 0);
  13:          // Negative/zero -2 0 ArithmeticException
  14:          testDivideByZero(-2, 0);
  15:          // Positive/positive 5 2 2
  16:          assertEquals(2, Divide.divide(5, 2));
  17:          // Positive/negative 5 -2 -2
  18:          assertEquals(-2, Divide.divide(5, -2));
  19:          // Negative/positive -5 2 -2
  20:          assertEquals(-2, Divide.divide(-5, 2));
  21:          // Negative/negative -5 -2 2
  22:          assertEquals(2, Divide.divide(-5, -2));
  23:          // No/same number 5 5 1
  24:          assertEquals(1, Divide.divide(5, 5));
  25:      }
  27:      private void testDivideByZero(int a, int b) throws Exception {
  28:          try {
  29:              Divide.divide(a, b);
  30:              fail("My method didn't throw when I expected it to");
  31:          } catch (ArithmeticException e) {
  32:          } catch (Exception e) {
  33:              fail("My method throws different Exception when I expect ArithmeticException");
  34:          }
  35:      }
  36:  }
The above approach makes the Test class cumbersome and difficult for other developers to understand the test scenarios. To avoid this, We can load the test data from an Excel/CSV/WIKI and validate the output instead of running the same TestNg/Junit test method with different inputs. And also this helps in the Documentation of the test cases that we have already identified and tested.

Proposed Method :

   1:  @RunWith(Parameterized.class)
   2:  public class DataDrivenTestsWithSpreadsheetTest { 
   4:      private int a;
   5:      private int b;
   6:      private int aDivideB;
   8:      @Parameters
   9:      public static Collection<Object[]> spreadsheetData() throws IOException {
  10:          InputStream spreadsheet = new FileInputStream("src/test/resources/aDivideB.xls");
  11:          return new SpreadsheetData(spreadsheet).getData();
  12:      }
  14:      public DataDrivenTestsWithSpreadsheetTest(int a, int b, int aDivideB) {
  15:          super();
  16:          this.a = a;
  17:          this.b = b;
  18:          this.aDivideB = aDivideB;
  19:      }
  21:      private void testDivideByZero(int a, int b) throws Exception {
  22:          try {
  23:              Divide.divide(a, b);
  24:              fail("My method didn't throw when I expected it to");
  25:          } catch (ArithmeticException e) {
  26:          } catch (Exception e) {
  27:              fail("My method throws different Exception when I expect ArithmeticException");
  28:          }
  29:      }
  31:      @Test
  32:      public void shouldCalculateADivideB() {
  33:        if(b==0){
  34:            testDivideByZero(a, b);
  35:        }
  36:        else
  37:            assertEquals(aDivideB, Divide.divide(a, b));
  38:      }
  39:  }

  1.  Adding new Test scenarios is easy as it requires just adding a new row in the excel/csv/wiki.
  2. Helps in the documentation of the test cases that we have identified and tested.

To make this work, the following condition has to be satisfied.

1. Your external Non –Drupal PHP website should also be in the same domain or subdomain as your Drupal website. For Example if your Drupal website is hosted at then the Non Drupal website which want to use drupal login to act as a single sign on option should be hosted at some address like or

2. You should have access to the Database where your Drupal site is pointing to. At least you should have access to User and Sessions Table of Drupal’s DB.

If you satisfy the above two conditions you should be good to go.

   1:  if(isset($_COOKIE[SESS67bbc1042a258ec17b55d8d15be4f563]) &&
   2:   isset($_COOKIE['DRUPAL_UID']))
   3:  {
   5:      $sessionsql="select sid from sessions where sid='"
   6:  .mysql_real_escape_string($_COOKIE['SESS67bbc1042a258ec17b55d8d15be4f563']) ."'
   7:   and uid='".mysql_real_escape_string($_COOKIE['DRUPAL_UID'])."'";
   8:      $db_connect = mysql_connect($db_host, $db_username, $db_password);
   9:      mysql_select_db($db_name, $db_connect) || die(mysql_error());
  10:      $result                    = mysql_query($sessionsql) or die(mysql_error());
  11:      $found    = mysql_num_rows($result);
  12:      if ($found) 
  13:      {
  14:          //$sql="SELECT * FROM employment_v where uid=".$_COOKIE['DRUPAL_UID'];
  15:          //Logic to use drupal’s user registration info in your site may go here.
  16:      }
  17:  }

 In the above code snippet, you can see an extremely long cookie name ($_COOKIE[SESS67bbc1042a258ec17b55d8d15be4f563]). This is the name of the cookie where the drupal’s session would be stored. Each drupal site has a unique session name associate with it. The value of the session id can be got from this. In my case SESS67bbc1042a258ec17b55d8d15be4f563 is the drupal’s session name for my site. If you want to find the drupal cookie session name of your website you can use tools like firecookie or inspect the cookie stored in your browser.

The logic of the code snippet is whenever a user has been logged in to druapl site, Drupal would store minimum two cookies in browser. One is session value which I have mentioned earlier and the other is drupal id (a unique id to identify the drupal user). And also it makes an entry in the session table with the session id and the drupal id. The entry is deleted when the user is logged out. Hence querying this table with the session id and the drupal user id would tell us whether the user is authenticated or not.
Have the above logic to authenticate the user in a separate PHP file and include the PHP file in the pages that can be viewed only by authenticated user.

I hope that this would have helped. If you feel that this can be done more efficiently, kindly let me know through your comments. Thanks.

1. Firebug: A Firefox plugin that allows inspect, edit and monitor CSS, HTML, JavaScript and Net requests in any web page.

2. FireCookie : An extension for Firebug that makes possible to view and manage cookies in your browser.

3. FireShot : An Add-on to Firefox that creates screenshots of web pages entirely. The captures can be quickly annotated.

4. Page Speed :  An open-source project started at Google to help developers optimize their web pages by applying web performance best practices. If you are a Performance-minded developers and evangelists then this is a must have tool.

5. YSlow :  An Add-on for Firefox that Analyses web pages and suggests ways to improve their performance based on a set of rules for high performance web pages.

6. Selenium IDE : An integrated development environment for Selenium scripts that is implemented as a Firefox extension, and allows you to record, edit, and debug tests.

7. Page Ruler : A lightweight ruler to measure web page elements.

8. MeasurIT : Draw a ruler across any webpage to check the width, height, or alignment of page elements in pixels.

9. FireFTP : A powerful FPT client in one tab, your work in another. Sometimes the simplest solutions can be profoundly useful. (Note: Does not as yet support SFTP).

10. FireSSH : A free, cross-platform SSH terminal client for Mozilla Firefox. Written entirely in Javascript!

11. ColorZilla : This extension allows you to pick colors from the web, paste the hex code into other programs, zoom in on pages, measure distances and utilize a built-in pallet browser. A must-have for any web designer.

12. IE Tab : Embedding Internet Explorer in tabs of Mozilla/Firefox

13. Web Developer : The Web Developer extension adds various web developer tools to a browser.

14. HTML Validator: Displays the number of found errors of the site you are viewing. It adds HTML validation inside Firefox and Mozilla.

if you feel that some other tool can also be added to this list then kindly comment below. i will update it.