Abhijeet Muneshwar
BAN USERBrowser extensions Developer for Google Chrome, Mozilla Firefox, Opera and Safari
CURRICULUM VITAE
Muneshwar Abhijeet Ashok Current Address:
M. Tech. (Computer Science & Engineering) Madhav Nilayam PG,
Mobile No.: +91-7411288162 Room No.7, near ITPL,
Email ID: openingknots@gmail.com Whitefield, Bangalore,
My Website Karnataka-560066, India.
Career Objective:
My objective is to work with a progressive & innovative organization that gives me support to update & increase my knowledge and skills according to the new trends, wherein I can practically implement my all skills and knowledge and achieve success. I want to be a part of active team which will work efficiently for self growth & as a result for company’s growth.
Academic Details:
Name of Examination
Name of Board/Institute
Year of passing
Percentage
M. Tech. (CSE)
N. I. T. K., Surathkal.
June, 2013
6.56(CGPA)
B.E. (CSE)
PICT, Pune University
May, 2010
59.445 %
H.S.C. (Science)
Maharashtra Board
June, 2006
87.33 %
S.S.C.
Maharashtra Board
June, 2004
81.46 %
Fields of Interests:
Internet browser add-ons development, Web Development, Web Designing, Data Structure, Computer Networks, Operating System, Virus Development.
Technical Skills:
Programming languages:
Skill Level
Language
Advance
C, HTML, HTML5 , PHP, CSS, CSS3, ASP, JavaScript, XML
Intermediate
C++, Java, Servlet, JQuery, Bootstrap, JSP, VBScript, JSON, SQL, PL/SQL, SAP-ABAP, UNIX/Linux Shell programming, Network Simulator 2
Beginner
LISP, MPI
Operating Systems: Windows (Server 2003, 2008, XP, Vista, 7, 8), Linux (Ubuntu, Kubuntu, Ubuntu Server, Fedora, Mandriva, Open Suse, Red Hat), UNIX (AIX, Solaris).
Database: MySQL, Oracle 9i, Oracle 10g, MS-Access, DB2.
Web Servers: Apache, Apache Tomcat, IIS.
Other Softwares: Eclipse, Netbeans, Network Simulator 2, Macromedia Dreamweaver, Microsoft Expression web 2, Visual Basic 6, Visual Studio (2008, 2012), Turbo C, Visual C++, Rational Rose, Microsoft Office 2003/2007/2010, 2013.
My contribution to the Internet Browsers:
I have developed and published many add-ons for Google Chrome, Mozilla Firefox & Opera browsers. The development of more add-ons is in progress. I have used HTML 5, CSS 3, jQuery, JavaScript, PHP, XML and JSON for add-ons development. The links to my all add-ons can be found at extensions. Below is their description.
1. Title: “Remove Google Redirects” - Add-on for Google Chrome & Opera browser
Description: Google adds redirection to all shared links to learn what links you click. This extension removes Google's redirection from all products of Google to protect your privacy & to prevent click tracking. The advantage is, shared links will load faster as they are no longer passed to Google for redirection.
2. Title: “Remove Facebook Redirections” - Add-on for Google Chrome browser
Description: Facebook adds redirection to all shared links to learn what links you click. This extension removes Facebook's redirection to protect your privacy & to prevent click tracking. The advantage is, shared links will load faster as they are no longer passed to Facebook for redirection.
3. Title: “Night Mode” - Add-on for Opera browser
Description: This extension applies the Night Mode by making text color as gray and background color as black. It is useful for reading long time at night.
4. Title: “HTTP-Header” - Add-on for Mozilla Firefox & Opera browser
Description: I have developed an add-on for Mozilla Firefox & Opera browser which will show the HTTP headers of any URL.
5. Title: “Port Scanner” - Add-on for Google Chrome, Mozilla Firefox & Opera browser
Description: Port Scanner determines lively services on the host using TCP port interrogations. Port Scanner will check which TCP ports are listening. You can test these ports to see if they are running. It is recommended that any services which are not necessary be disabled.
6. Title: “HTML Color Coder” - Add-on for Google Chrome, Mozilla Firefox & Opera browser
Description: This is simple extension which gives you the HTML color code for any selected color.
7. Title: “Whois Lookup” - Add-on for Google Chrome, Mozilla Firefox & Opera browser
Description: This extension finds out information about domain names including the name servers associated with the domain, the domain Administrative and registrar, Billing and Technical contacts with email and postal addresses.
8. Title: “Dress-up Webpage” - Add-on for Opera browser
Description: This extension allows you to apply different background colors, text colors, font types and font size for any webpage. This extension is the next step of my previous extension 'Night Mode'.
9. Title: “Theme-up Webpage” - Add-on for Opera browser
Description: This extension allows you to apply different background colors, text colors, font types and font size for any webpage. This extension is the next step of my old extensions 'Night Mode' and 'Dress-up Webpage'.
10. Title: “Date Difference & Age calculator” - Add-on for Google Chrome, Mozilla Firefox & Opera browser
Description: It calculates date difference & age. The calculation preciseness is up-to seconds.
Academic Projects:
M. Tech. Course Projects:
1. Title: Redirection Optimization for Safe and Fast Browsing.
Description: This project aims to ensure internet browsing safe and fast. The safety is ensured in internet browsing by removing redirect virus. The browsing speed is increased by removing redirection.
Technology: HTML, JavaScript, XML
2. Title: Improving Data Transmission in Web Applications via the Translation between XML and JSON.
Description: JSON i.e. JavaScript Object Notation is a lightweight data exchange format. JSON is easy to parse and generate for machines as compare to XML. The application provides the recursive method for the correct translation between these two data objects.
Technology: HTML, JavaScript, Java
3. Title: Improving SSL by Modifying its Authentication Function
Description: SLL uses RSA for authentication function. It takes long time for encryption & decryption for the key size of 2048. I have reduced this time to almost 25% by using “Gaussian Integers”.
Technology: Java
4. Title: Parallel Execution of Bucket Sort Algorithm Using Message Passing Interface
Description: I implemented a parallel version of the bucket sort algorithm using message passing interface. The aim was to evaluate and compare the performance of parallel and sequential execution time.
Technology: C, MPI
5. Title: Implementation of Thin Client for CSE department of NITK
Description: I have implemented Thin Client technology for CSE Department of NITK. Thin Client architecture reduces power consumption, increased security, low cost hardware, centralized support, more secure.
Technology: PuTTY
Platform: Windows, Linux
6. Title: A Novel Algorithm for Load Balancing in Distributed Systems.
Description: I proposed an algorithm for load balancing in the parallel and distributed systems. The experimental results show that my algorithm performs efficiently and suffices the specific requirements of real-time systems.
Technology: Java
7. Title: Implementation of Various Network Protocols Using NS2
Technology: Network Simulator 2
Description: I implemented TCP, UDP, HTTP, DCCP protocols using NS2.
B. E. Course Projects:
8. Title: Developing computer Viruses & Antiviruses:
Description: I have developed virus & antivirus programs in C and assembly language.
Technology: C, Assembly language.
9. Title: India Housing
Description: This is the software for booking various types residencies. This includes browsing the residential properties, viewing their details, booking them & canceling the booking.
Technology: Visual Basic, Oracle 9i.
10. Title: Mobile Zone
Description: This website was developed for browsing mobile phones of different companies with different price ranges. It was also having facility of purchasing mobiles & canceling the order.
Technology: HTML, ASP, JavaScript, VBScript, Oracle 10g.
11. Title: Tivoli Identity manager
Description: This project was sponsored by Persistent Systems. We had developed web based ITIM which is used to select the test cases & execute them in group. Its advantage over previous tool is this tool has GUI & we can execute the test cases a group.
Technology: Servlet, HTML, JavaScript, XML
Company Projects:
StreamNet India Pvt. Ltd.:
I have started working at StreamNet as Web Developer from 22nd July, 2013.
Persistent Systems:
I have work experience of 1 year from June 2010 to July 2011 as a Software Engineer in Persistent Systems, Pune. I was working in “IBM” Business Unit. I have worked in 2 IBM projects.
1. Title: IBM - Low Latency Messaging
Technologies: C++, JAVA, C#, XML, Shell Programming
Operating Systems: Windows, Linux, UNIX.
Description: This project was a part of “IBM Web Sphere Front Office”. IBM_LLM was used to reduce the latency between message transfers.
2. Title: IBM – ITM SAP Monitoring
Technologies: C++, SAP-ABAP
Operating Systems: Windows, Linux, UNIX.
Description: We have used IBM Tivoli Monitoring tool to monitor the SAP-ABAP. We have written functions in SAP-ABAP which will fetch data from SAP systems & will display the information on Tivoli Enterprise Portal of IBM Tivoli Monitor.
Co-Curricular Activities:
1. Seminars delivered during Academics
a. Blue-Ray Disk
b. Developing Computer Virus & Antivirus
c. HTML 5
Achievements:
1. 3rd prize in mini project competition for “Developing Virus & Antivirus”.
2. Worldwide 20,000+ downloads of my ‘Night Mode’ add-on for Opera browser.
3. Worldwide 30,000+ users of my ‘Remove Google Redirects’ add-on for Chrome.
4. My add-ons (extensions) are hosted by top software websites like www.cnet.com, www.softpedia.com and www.softepic.com.
Achievements in extracurricular activities:
1. I have won 2 gold medals in international level competition in Karate.
2. I have passed Elementary Exam with B grade.
3. I have got a prize for best painting in my school.
Hobbies:
Drawing, Metal Embossing
Strength:
Smart working, high capacity to do huge task, ability to focus on project, positive attitude, good team worker, honest, helpful, dedication to work, adjust with changes, punctual.
Personal Details:
Name
Muneshwar Abhijeet Ashok
Institute
National Institute of Technology Karnataka, Surathkal – 575025
Permanent Address
Sphurti Vihar, B-Wing, Flat No. 4, Survey No. 16, Ambegaon Pathar, Pune. Maharashtra. 411046
Date of Birth
27th September, 1988
Gender
Male
Category
SC
Nationality
Indian
Languages known
English, Hindi, Marathi, Urdu, Sanskrit(beginner)
Marital Status
Single
Declaration:
I hereby declare that all the statements made in this resume are true, complete and correct to the best of my knowledge and belief.
Place:
Date:
(Muneshwar Abhijeet Ashok)
- 0of 0 votes
AnswersABC Inc is a private company focused on oil and exploration. Its net income has been fluctuating since inception. It plans to raise funding for new explorations. The financiers are seeking out if the company had successful runs. If so, which was the most successful one historically. A successful run being a set of consecutive years in which adding the net income year over year results in a value greater than zero. The most successful run would be the one with maximum value. How would you find the most successful run for ABC Inc?
- Abhijeet Muneshwar in India
The input would be an array with the net income for all years till date since inception. Output should be a pair of years <Y1 Y2> which represent the most successful run. For simplicity let Y1 and Y2 be array indices. If there wasn't a successful run return -1.
Sample Input1: 3 2 -6 2 1
Output1: 0 1
Sample Input2: -2 -3 -1 0 -6
Output2: -1
Make suitable assumptions and submit your code (programming language of your choice), with relevant comments and test cases.| Report Duplicate | Flag | PURGE
Amazon Software Engineer / Developer Algorithm
From leetcode.com/2010/03/first-on-site-technical-interview.html
Here is a more elegant solution. The trick is to re-use the populated nextRight pointers. As mentioned earlier, we just need one more step for it to work. Before we passed the leftChild and rightChild to the recursion function itself, we connect the rightChild’s nextRight to the current node’s nextRight’s leftChild. In order for this to work, the current node’s nextRight pointer must be populated, which is true in this case. Why? Try to draw a series of diagram how the recursion deepens, you will immediately see that it is doing DFS (Depth first search).
void connect(Node* p) {
if (!p) return;
if (p->leftChild)
p->leftChild->nextRight = p->rightChild;
if (p->rightChild)
p->rightChild->nextRight = (p->nextRight) ?
p->nextRight->leftChild :
NULL;
connect(p->leftChild);
connect(p->rightChild);
}
From geeksforgeeks(dot)org(slash)find-a-pair-with-given-sum-in-bst
/* In a balanced binary search tree isPairPresent two element which sums to
a given value time O(n) space O(logn) */
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 100
// A BST node
struct node
{
int val;
struct node *left, *right;
};
// Stack type
struct Stack
{
int size;
int top;
struct node* *array;
};
// A utility function to create a stack of given size
struct Stack* createStack(int size)
{
struct Stack* stack =
(struct Stack*) malloc(sizeof(struct Stack));
stack->size = size;
stack->top = -1;
stack->array =
(struct node**) malloc(stack->size * sizeof(struct node*));
return stack;
}
// BASIC OPERATIONS OF STACK
int isFull(struct Stack* stack)
{ return stack->top - 1 == stack->size; }
int isEmpty(struct Stack* stack)
{ return stack->top == -1; }
void push(struct Stack* stack, struct node* node)
{
if (isFull(stack))
return;
stack->array[++stack->top] = node;
}
struct node* pop(struct Stack* stack)
{
if (isEmpty(stack))
return NULL;
return stack->array[stack->top--];
}
// Returns true if a pair with target sum exists in BST, otherwise false
bool isPairPresent(struct node *root, int target)
{
// Create two stacks. s1 is used for normal inorder traversal
// and s2 is used for reverse inorder traversal
struct Stack* s1 = createStack(MAX_SIZE);
struct Stack* s2 = createStack(MAX_SIZE);
// Note the sizes of stacks is MAX_SIZE, we can find the tree size and
// fix stack size as O(Logn) for balanced trees like AVL and Red Black
// tree. We have used MAX_SIZE to keep the code simple
// done1, val1 and curr1 are used for normal inorder traversal using s1
// done2, val2 and curr2 are used for reverse inorder traversal using s2
bool done1 = false, done2 = false;
int val1 = 0, val2 = 0;
struct node *curr1 = root, *curr2 = root;
// The loop will break when we either find a pair or one of the two
// traversals is complete
while (1)
{
// Find next node in normal Inorder traversal. See following post
while (done1 == false)
{
if (curr1 != NULL)
{
push(s1, curr1);
curr1 = curr1->left;
}
else
{
if (isEmpty(s1))
done1 = 1;
else
{
curr1 = pop(s1);
val1 = curr1->val;
curr1 = curr1->right;
done1 = 1;
}
}
}
// Find next node in REVERSE Inorder traversal. The only
// difference between above and below loop is, in below loop
// right subtree is traversed before left subtree
while (done2 == false)
{
if (curr2 != NULL)
{
push(s2, curr2);
curr2 = curr2->right;
}
else
{
if (isEmpty(s2))
done2 = 1;
else
{
curr2 = pop(s2);
val2 = curr2->val;
curr2 = curr2->left;
done2 = 1;
}
}
}
// If we find a pair, then print the pair and return. The first
// condition makes sure that two same values are not added
if ((val1 != val2) && (val1 + val2) == target)
{
printf("\n Pair Found: %d + %d = %d\n", val1, val2, target);
return true;
}
// If sum of current values is smaller, then move to next node in
// normal inorder traversal
else if ((val1 + val2) < target)
done1 = false;
// If sum of current values is greater, then move to next node in
// reverse inorder traversal
else if ((val1 + val2) > target)
done2 = false;
// If any of the inorder traversals is over, then there is no pair
// so return false
if (val1 >= val2)
return false;
}
}
// A utility function to create BST node
struct node * NewNode(int val)
{
struct node *tmp = (struct node *)malloc(sizeof(struct node));
tmp->val = val;
tmp->right = tmp->left =NULL;
return tmp;
}
// Driver program to test above functions
int main()
{
/*
15
/ \
10 20
/ \ / \
8 12 16 25 */
struct node *root = NewNode(15);
root->left = NewNode(10);
root->right = NewNode(20);
root->left->left = NewNode(8);
root->left->right = NewNode(12);
root->right->left = NewNode(16);
root->right->right = NewNode(25);
int target = 28;
if (isPairPresent(root, target) == false)
printf("\n No such values are found\n");
getchar();
return 0;
}
#include<stdio.h>
void intput(int *a, int n)
{
int i;
for(i=0; i<n; i++)
scanf("%d", &a[i]);
}
void print(int *a, int n)
{
int i;
printf("\nThe elements in the array are:\n");
for(i=0; i<n; i++)
printf("%d\t", a[i]);
}
int search(int *a, int lb, int ub, int data)
{
int mid;
if(lb>ub)
return 0;
mid = (lb+ub)/2;
if(a[mid] == data)
return mid;
else if(a[lb]<=a[mid])
{
if( (a[lb]<=data) && (data<a[mid]) )
search(a, lb, mid-1, data);
else
search(a, mid+1, ub, data);
}
else
{
if( (a[mid]<data) && (data<=a[ub]) )
search(a, mid+1, ub, data);
else
search(a, lb, mid-1, data);
}
}
int main()
{
int n, s, indx, *arr;
printf("Enter the size of array. ");
scanf("%d", &n);
arr = (int*)malloc(n*sizeof(int));
intput(arr, n);
print(arr, n);
printf("\nEnter the element to search. ");
scanf("%d", &s);
indx = search(arr, 0, n, s);// Time Complexity = O(log n)
if(indx)
printf("\nThe element is found at location: %d.", indx);
else
printf("\nThe element is not found.");
return 0;
}
void cyclic_rotate(int *a, int *b, int *c, int *d)
{
int temp;
temp = *a;
*a = *b;
*b = *c;
*c = *d;
*d = temp;
}
void rotate(int a[][SIZE])
{
int i, j;
for(i=0; i<(SIZE/2); i++)
{
for(j=0; j<(SIZE+1)/2; j++)
{
cyclic_rotate(&a[i][j], &a[SIZE-1-j][i], &a[SIZE-1-i][SIZE-1-j], &a[j][SIZE-1-i]);
}
}
}
Then we need to choose 3 less negative numbers:
i.e. -1, -2, -3
I think so.
- Abhijeet Muneshwar November 28, 2013My answer to above question
#include <iostream>
#include <string.h>
#include <stdlib.h>
using namespace std;
int main()
{
int i=0;
int j=0;
int sum=0;
int n = 0;
int a[100] = {0, 0};
int currSum=0;
int maxSum=0;
int outputArray[10];
int outputArraySize = 0;
char str[100];
char *array[10];
char c;
cin.getline(str,100);
array[i] = strtok(str," ");
while(array[i]!=NULL)
{
array[++i] = strtok(NULL," ");
}
n = i;
for(i=0; i< n; i++)
{
a[i] = atoi(array[i]);
}
for(i=0; i<n; i++)
{
sum += a[i];
}
if(sum<1)
{
return -1;
}
for(i=0, j=0; i<n; i++)
{
currSum+=a[i];
if(currSum<0)
{
currSum=0;
continue;
}
if(currSum>maxSum)
{
maxSum = currSum;
outputArray[j++] = i;
}
}
outputArraySize = j;
for(i=0; i<outputArraySize; i++)
{
cout<<outputArray[i] << " ";
}
}
RepRebecaMoore, Consultant at AMD
I am working as an art teacher with “Glory High School,” and develop interests for art and creative expression in ...
Refer
- Abhijeet Muneshwar January 19, 20141) geeksforgeeks.org/dynamic-programming-set-27-max-sum-rectangle-in-a-2d-matrix/
2) geeksforgeeks.org/maximum-size-sub-matrix-with-all-1s-in-a-binary-matrix/