Archive for the ‘Application Development’ Category

What is Full Stack Development ?

Sunday, March 29th, 2020

A software developer usually works on more than one platform or technologies in the organization he is working on. But those platforms or technologies usually fall under two categories.

The Front End and the Back End. Or Client Side and Server Side.

Front End Development
The front end is everything to do with what the user sees, including design of web pages, user interfaces and the entire user experience. Designing and maintaining the user experience is an important part of any software product, and it’s generally referred to as Front End Development.
Front End Technologies are HTML, CSS, Vue.JS, EmberJS, etc.

Back End Development
The back end, or the “server-side”, is basically how the software product works, updates, and changes. This refers to everything the user can’t see in their interface, like databases and servers.
Developing and maintaining the databases, servers and of course the actual business logic of the application is known as back end development.
Back End Technologies are much more varied. We have PHP, .NET, Java, Python, NodeJS and many more. It usually comes down to developer preference as all these tools are quite versatile.

In an application like Google Maps the Front End would be the actual application on your Android or iOS phone. The ability to scroll, pan across the loaded area of the maps, the option to search for locations and type in your destination are all to do with the front end. But once you’ve typed in your destination, the back end takes over. The data from the GPS module on your phone and your typed in destination are sent to Google’s servers. The back end receives this data. It determines your current location from the longitude and latitude values from your GPS. It determines the shortest route to your preferred destination. It also calculates all alternative routes and sends it back to your mobile phone. Then the front end takes the responsibility of displaying the optimal route along with alternatives in an easy to understand at a glance format.

Full Stack Development

Full stack developers have the ability to design complete web application and websites. They work on both the front end and the back end of their product of application. It naturally follows that they are well versed in technologies of both categories.

A technology stack is the set of technologies used to build an application. A technology stack usually comprises of a Server Platform, a Front End framework, a Back End language and a Database.

Here are the most popular Full Stacks used:
MEAN Stack: MongoDB, Express, AngularJS and Node.js.
MERN Stack: MongoDB, Express, ReactJS and Node.js
Django Stack: Django, python and MySQL as Database.
Rails or Ruby on Rails: Uses Ruby, PHP and MySQL.
LAMP Stack: Linux, Apache, MySQL and PHP.

[Tutorial] Mouse Macro Maker using jnativehook

Saturday, March 24th, 2018

Clicking can be a mundane task. Especially when you have to do it repeatedly without much thinking. I’m sure a lot of you have felt this. Many applications exist which offer mouse macro capabilities, but what’s the fun in that ?
Lets make our own program which will simplify clicking chores.

Naturally, jnativehook and java.awt.Robot are all we need. Java’s Robot class can effectively move and click your mouse without human intervention and jnativehook allows you to listen to system wide mouse and keyboard calls.

Graphical User Interface :
A simplistic GUI built using Eclipse’s Window Builder plugin should serve us well.

A button to start/stop recording the macro, one to load and one to save the macro are all we need. An integer spinner to set the delay between playback clicks is an added functionality.

Structure of the Application :
To keep the end code as simple as possible we only use two Java classes here. A Recorder class will be our main class. It implements jnativehook to record mouse clicks and save it in an easily readable text format. A Player class will read the saved macro and execute it using Java’s Robot Class.

 

The project can be found at https://github.com/Vetox/MouseMacroMaker

[Tutorial] Insaniquarium Deluxe Rapid Clicker

Wednesday, November 29th, 2017

Insaniquarium Deluxe is a 2D arcade game released by Flying Bear Entertainment and PopCap Games in 2004. It received huge critical acclaim and positive reviews across the board. It was one of the defining games which rocketed PopCap games to fame before Plants vs Zombies. The player uses the mouse to feed fishes, collect coins and fight aliens. The game revolves around mashing your left mouse button for hours on end until you beat the level. And then you repeat the same process for the next level. This seems like something which can easily be helped.

jnativehook, a java library which acts as a global mouse and keyboard listener could easily reduce the number of clicks we need.

jnativehook allows us to detect keyboard key presses and java’s Robot class allows us to easily simulate mouse clicks. That’s all we need to make Insaniquarium less insane.

Lets code an application which will issue a mouse click at the position of the cursor whenever it detects a specific key being pressed, lets say “S”. If we hold down “S” our program should keep issuing left mouse clicks at the cursor. This rate of clicking will invariably be much faster than physically possible. Thereby making feeding fishes, collecting coins and fighting aliens much easier on us.
We’ll also add the “P” key as a way to exit the program.

Pre requisite :
Include jnativehook in the build path.

GUI :
The GUI is built using the Window Builder plugin for eclipse.

Once a keyboard hook is added, all thats left to do is to override the nativeKeyPressed method:

public void nativeKeyPressed(NativeKeyEvent e) {
if (NativeKeyEvent.getKeyText(e.getKeyCode()).equals("S")) {
try {
Robot r = new Robot();

for (int t = 0; t < 1; t++) {
r.mousePress(InputEvent.BUTTON1_MASK);
r.mouseRelease(InputEvent.BUTTON1_MASK);
}

} catch (Exception e1) {
System.out.println(e1.toString());
}
}

if (NativeKeyEvent.getKeyText(e.getKeyCode()).equals(“P”)) {
try {
GlobalScreen.unregisterNativeHook();
System.exit(1);
} catch (Exception ex) {

}
}
}

When the “S” key is pressed down, it rapidly issues mouse click commands at the position of the cursor. Making it much easier to collect coins and feed fishes in Insaniquarium.

Source Code :
https://github.com/Vetox/RapidClicker