Sunday 9 April 2023

Hemant Kurmi - 2021 - Some Amazing Facts About Memory: Petabyte, Exabyte, and Zettabyte

Some Amazing Facts About Memory: Petabyte, Exabyte, and Zettabyte

As technology advances, our ability to store and process data has grown exponentially. From kilobytes to gigabytes and terabytes, we have witnessed a massive increase in storage capacities. In this blog post, we will explore some amazing facts about the larger units of digital storage: petabytes, exabytes, and zettabytes.

Petabyte: A Massive Data Repository

A petabyte (PB) is an incredible amount of digital storage, equal to 1,000 terabytes (TB) or 1,000,000 gigabytes (GB). To put this in perspective, consider the following:

  • If you were to store text documents in petabyte-sized storage, you could store around 500 billion pages of text.
  • A petabyte can hold approximately 333,333 hours of high-definition video or over 13,000 years of standard-quality music.
  • It is estimated that all the written works of humanity, in every language, would amount to around 50 petabytes.

Exabyte: A Mind-Boggling Amount of Data

An exabyte (EB) is equal to 1,000 petabytes or 1,000,000 terabytes. The scale of an exabyte is genuinely mind-boggling. Some interesting facts about exabytes include:

  • In 2019, it was estimated that the global internet traffic per month was around 150 exabytes.
  • If you were to fill a stack of 1-terabyte hard drives, the stack would be about 67,108 miles (107,954 km) high to store an exabyte of data. That's more than a quarter of the way to the Moon!
  • It would take over 36,000 years to download an exabyte of data with a 100 Mbps internet connection.

Zettabyte: A Glimpse Into the Future of Data Storage

A zettabyte (ZB) is equal to 1,000 exabytes, or 1,000,000 petabytes. The sheer size of a zettabyte is difficult to comprehend, but here are some amazing facts to help illustrate the magnitude:

  • As of 2021, the entire World Wide Web was estimated to contain around 2.5 zettabytes of data.
  • By 2025, it is projected that the global data sphere will reach 175 zettabytes. This would mean that if every person on Earth were given a 128 GB smartphone, the total amount of data stored on those smartphones would be less than 1 zettabyte.
  • If you were to store a zettabyte of data on DVDs, the stack of DVDs would be about 4,982,525 miles (8,017,877 km) high, which is more than 10 times the distance between Earth and the Moon.

Conclusion

The exponential growth of data storage capacities, as demonstrated by petabytes, exabytes, and zettabytes, is a testament to the rapid advancements in technology. These mind-boggling storage units offer us a glimpse into the future of data storage and processing. As we continue to generate, analyze, and share more data, it's crucial to develop innovative solutions and

Friday 5 August 2022

Hemant Kurmi - Diffrence Between Abstract class Interface

Difference Between
Sno
Abstract class
Interface
1 1) Abstract class can have abstract and non-abstract methods. Interface can have only abstract methods.
2 2) Abstract class doesn't support multiple inheritance. Interface supports multiple inheritance.
3 3) Abstract class can have final, non-final, static and non-static variables. Interface has only static and final variables.
4 4) Abstract class can have static methods, main method and constructor. Interface can't have static methods, main method or constructor.
5 5) Abstract class can provide the implementation of interface. Interface can't provide the implementation of abstract class.
6 6) The abstract keyword is used to declare abstract class. The interface keyword is used to declare interface.

#kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi #hemant #kurmi #hemant #kurmi
#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi
The meaning of word Abstraction is the quality of dealing with ideas rather than events. Like if you want to call a number , you will pick your cell and will dial a number ,
you want be worried about how it will connect to servers and will connect to other persons cell or what network it is going to use ect.

like wise in OOPs Abstraction is a process of hiding the implementation details from the user,
only the functionality will be provided to the user. Means user will have the information on what the object does instead of how it does it.

In Java Abstraction is achieved using Abstract classes, and Interfaces.Possibly one source of confusion between Abstraction and an abstract class was that in the early days of OO,
inheritance was more heavily used to achieve code reuse (e.g. with associated abstract base classes).
Nowadays, composition is generally favoured over inheritance, and there are more tools available to achieve abstraction, such as through Interfaces, events / delegates / functions, traits / mixins etc

It is used for Supporting cross platform by changing the implementation per platform.

Possibly one source of confusion between Abstraction and an abstract class was that in the early days of OO,
inheritance was more heavily used to achieve code reuse (e.g. with associated abstract base classes).
Nowadays, composition is generally favoured over inheritance, and there are more tools available to achieve abstraction, such as through Interfaces, events / delegates / functions, traits / mixins etc

#hemant #kurmi #hemant #kurmi #hemant #kurmi
#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi

Saturday 5 January 2019

[ Hemant Kurmi ] Robot Room Cleaner - JAVA

Given a robot cleaner in a room modeled as a grid.
Each cell in the grid can be empty or blocked.
The robot cleaner with 4 given APIs can move forward, turn left or turn right. Each turn it made is 90 degrees.
When it tries to move into a blocked cell, its bumper sensor detects the obstacle and it stays on the current cell.
Design an algorithm to clean the entire room using only the 4 given APIs shown below.
interface Robot {
  // returns true if next cell is open and robot moves into the cell.
  // returns false if next cell is obstacle and robot stays on the current cell.
  boolean move();

  // Robot will stay on the same cell after calling turnLeft/turnRight.
  // Each turn will be 90 degrees.
  void turnLeft();
  void turnRight();

  // Clean the current cell.
  void clean();
}
Example:
Input:
room = [
  [1,1,1,1,1,0,1,1],
  [1,1,1,1,1,0,1,1],
  [1,0,1,1,1,1,1,1],
  [0,0,0,1,0,0,0,0],
  [1,1,1,1,1,1,1,1]
],
row = 1,
col = 3

Explanation:
All grids in the room are marked by either 0 or 1.
0 means the cell is blocked, while 1 means the cell is accessible.
The robot initially starts at the position of row=1, col=3.
From the top left corner, its position is one row below and three columns right.
Notes:
  1. The input is only given to initialize the room and the robot's position internally. You must solve this problem "blindfolded". In other words, you must control the robot using only the mentioned 4 APIs, without knowing the room layout and the initial robot's position.
  2. The robot's initial position will always be in an accessible cell.
  3. The initial direction of the robot will be facing up.
  4. All accessible cells are connected, which means the all cells marked as 1 will be accessible by the robot.
  5. Assume all four edges of the grid are all surrounded by wall.

We use a backtrack recursive method to solve this problem. Maintaining a hash set to contain the position that we have visited. Clean it up and add it into the set. Then for the four directions, move forward and continue backtrack, after that, return to original position and maintain original direction. then turn to another direction.

--------------------- 


We don't know the x,y co-ordinate. But we have to mark if we have reached a position before to avoid processing same state again and again (as we mark in standard DFS).
So, lets say current position is 0,0.
Then for every up move: x--
For every down move: x++
For every right move: y++
For every left move: y--
Most tricky part is:
when our recursive call will go back to last state, x,y,dir will be as before but robot's position is updated already. So, we have to move back the robot to earlier position with earlier direction!
class Solution {
    private Set<String> hasVisited;
    //private int direction; //0=UP, 1=RIGHT, 2=DOWN, 3=LEFT
    public void cleanRoom(Robot robot) {
        hasVisited = new HashSet<>();
        //assume current co-ordinate as (0,0)
        int x = 0;
        int y = 0;
        hasVisited.add(getCoOrdinate(x, y));
        //direction = 0;
        cleanRoomRecursively(robot, x, y, 0);
    }
    
    private void cleanRoomRecursively(Robot robot, int x, int y ,int direction){
        //System.out.println("x: " + x + " y: " + y + " d: "+ direction);
        robot.clean();
        //4 moves
        //go to same direction
        //System.out.println("straingt");
        goNextBlock(robot, direction, x, y);
        //go to 90
        //System.out.println("right");
        robot.turnRight();
        direction = (direction + 1) % 4;
        goNextBlock(robot, direction, x, y);
        
        //go to 180
        //System.out.println("back");
        robot.turnRight();
        direction = (direction + 1) % 4;
        goNextBlock(robot, direction, x, y);
        
        //go to 270
        //System.out.println("left");
        robot.turnRight();
        direction = (direction + 1) % 4;
        goNextBlock(robot, direction, x, y);
        
        //now it will go to the callee, which will have x, y and direction using which this 
        //function was called. But the robot has moved 270 degree and 1 block forward
        //So, put it back 1 block and face to the correct direction turn two time left or right in last it will turn 180
        robot.turnLeft();
        robot.move();
        robot.turnRight();
        robot.turnRight();
        //System.out.println("returning");
    }
    
    private void goNextBlock(Robot robot, int direction, int x, int y){
            switch (direction){
                case 0: x--;
                    break;
                case 1: y++;
                    break;
                case 2: x++;
                    break;
                case 3: y--;
                    break;
            };
            if(!hasVisited.contains(getCoOrdinate(x, y))){
                hasVisited.add(getCoOrdinate(x, y));
                if(robot.move()){
                    cleanRoomRecursively(robot, x, y, direction);        
                }
                
            }
        }
    
    private String getCoOrdinate(int x, int y){
        String coOrdinate = x + "," + y;
        //System.out.println(coOrdinate);
        return coOrdinate;
    }
}

Other solution
  1. To track the cells the robot has cleaned, start a index pair (i, j) from (0, 0). When go up, i-1; go down, i+1; go left, j-1; go right: j+1.
  2. Also use DIR to record the current direction of the robot
    public void cleanRoom(Robot robot) {
        // A number can be added to each visited cell
        // use string to identify the class
        Set<String> set = new HashSet<>();
        int cur_dir = 0;   // 0: up, 90: right, 180: down, 270: left
        backtrack(robot, set, 0, 0, 0);
    }

    public void backtrack(Robot robot, Set<String> set, int i, 
       int j, int cur_dir) {
     String tmp = i + "->" + j;
     if(set.contains(tmp)) {
            return;
        }
        
     robot.clean();
     set.add(tmp);

     for(int n = 0; n < 4; n++) {
        // the robot can to four directions, we use right turn
      if(robot.move()) {
       // can go directly. Find the (x, y) for the next cell based on current direction
       int x = i, y = j;
       switch(cur_dir) {
        case 0:
         // go up, reduce i
         x = i-1;
         break;
        case 90:
         // go right
         y = j+1;
         break;
        case 180:
         // go down
         x = i+1;
         break;
        case 270:
         // go left
         y = j-1;
         break;
        default:
         break;
       }

       backtrack(robot, set, x, y, cur_dir);
                       // go back to the starting position
   robot.turnLeft();
       robot.turnLeft();
       robot.move();
       robot.turnRight();
       robot.turnRight();

      } 
      // turn to next direction
      robot.turnRight();
      cur_dir += 90;
      cur_dir %= 360;
     }

    }




#hemant #kurmi 
#hemant #kurmi #hemant #kurmi
#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant#hemant #kurmi #hemant #kurmi #hemant #kurmi
#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi

Saturday 12 September 2015

[Hemant Kurmi] - Encapsulation in Practical.

Encapsulation is one of the four fundamental OOP concepts. It is a technique used to protect a program's internal characteristics and behavior by creating private fields within a class and providing access to them through public methods. When a field is declared private, it cannot be accessed by anyone outside the class, effectively hiding the fields within the class. Encapsulation thus protects the code and data from unauthorized access by creating a protective wrapper around them.

Encapsulation can be described as a protective barrier that prevents code and data from being randomly accessed by other code defined outside the class. The main benefit of encapsulation is the ability to modify implemented code without breaking the code of others who use it. This feature provides maintainability, flexibility, and extensibility to the code.

For example, consider a data class with two fields: name and remark:

public class Result {
   private String name;
   private String remark;

   public String getName() {
      return name;
   }
   public void setName(String newName) {
      name = newName;
   }
   public String getRemark() {
      return remark;
   }

   public void setRemark(int remarkPoints) {
      if (remarkPoints >= 5) {
         remark = "good";
      }

      if (remarkPoints < 5) {
         remark = "poor";
      }
   }

}

In the example above, we set remarks according to remark points. However, if we need to add another remark ("very good") for students who get 10 points, we don't need to ask the user of the code to change it; instead, we can modify the setter: 

public void setRemark(int remarkPoints) { if (remarkPoints == 10) { remark = "very good"; } if (remarkPoints >= 5 && remarkPoints < 10) { remark = "good"; } if (remarkPoints < 5) { remark = "poor"; } }

Another example is a class Phone with a field weight. If it is not encapsulated, someone could modify it to have a negative weight. It's better to encapsulate the field using a private variable and provide a setter method where you can add logic for no negative and not over 100 grams.

Think of a real-life example of a car, which is a well-defined composite object with numerous subsystems like transmission, music system, air cooler, or heater system, and others based on the car's price. Each system has its protective layer, so the transmission system does not interfere with the music system or air cooler system. However, there is some integration, such as the transmission charging the battery, which helps to play music. Still, no one can directly modify the behavior of another system. This is how encapsulation hides the complexity of a program.

Benefits of Encapsulation:

  1. The fields of a class can be made read-only or write-only.
  2. A class can have total control over what is stored in its fields.
  3. The main benefit of encapsulation is the ability to modify implemented code without breaking the code of others who use it. Users of a class do not know how the class stores its data. A class can change the data type of a field, and users of the class do not need to change any of their code.










#hemant #kurmi #hemant #kurmi #hemant #kurmi
#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant 

Monday 7 April 2014

[Hemant Kurmi] - Deploy war on web-logic server by web-logic console

In this post we will see how to deploy a war on weblogic by using weblogic console.

1)First start the admin server of your weblogic server  for this browse to the path of domain of your weblogic server .it will be some what like

D:\Oracle\Middleware\user_projects\domains

here you will get all the domains created
so in

D:\Oracle\Middleware\user_projects\domains\Domain_name\bin

you will get  startWebLogic.cmd or startWebLogic.sh
depending on your OS Just run it and you will see a cmd console

2)Now If your weblogic server is started succssfully it will display running in console




3) After starting weblogic server succssfully . Open the weblogic console from the below linkhttp://localhost:7001/console





where localhost is the machine address on which weblogic server is running.And 7001 is the port on which weblogic admin server is running.
4)Now it will ask for username or password just enter your domain username and password
and it will redirect to a screen.




5) Now click on deployment on the left side pannel and you will se a screen asking to browse
the war file.



6)Just browse to the war file want to deploy on weblogic server.





7) Now click next and it will ask to chose the server on which you want to deploy the war from
here you can select Admin server or any other managed server(If you chose other managed server
then you have to start it seprately from nodemanager or manully)





8) Now click next and select radio button which says copy the war on every target to uplaod
war on weblogic server



9) Now if deployment is completed then it will display that sataus of deployment as Active.

#hemant #kurmi #hemant #kurmi #hemant #kurmi
#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi

Sunday 2 March 2014

Some Advanced Ant Tasks (ANT Part-5)

In our last posts we have seen 

Sleep: If you want some gap between two tasks or want some pause then  this task is used to sleep the build process for a while. We can use milliseconds,seconds and hours also in aatribute. 

<sleep milliseconds="10"/> 

 Sql: To execute some query or after finishing a task you want to update some column in any table or want to fire any type of query then this task is used to execute SQL commands using Java JDBC connectivity. 
<sql 
 driver="jdbc driver name" 
 url="jdbc url" 
 userid="ui" 
 password="pass" 
 > 
insert 
insert into aots_users values (1, "aots1"); 
</sql> 

FTP: After creating any patch or folder you want to copy it on nay FTP to allow others to access it from another location then this task is used to ftp files to a ftp server 
 <ftp server="ftp.tcs.org" 
 remotedir="incoming" 
 userid="hemant12345" 
 password="hk@123" 
 depends="yes"> 
 <fileset dir="d:mypatch/currentpatch"/> 
 </ftp>

Sound: If you are running a build or any other task and do not want to sit and watch screen but you want to raise an alarm after finishing the task then you can use this task is to create sound during the build process for specific tasks. 
 <sound> 
 <success source="alert.wav"/> 
</sound>



Attrib: This task is used to set the properties of a file 
 <attrib file="username.properties" readonly="true" hidden="true"/> 

Sync:  To synchronize two folders we can use this task. This file will overwrite the data and also it will remove the files from the todir folder. 
<sync todir="Server"> 
 <fileset dir="local"/> 
</sync> 

LoadProperties: This task is used to load the contents of the properties file as ant properties.Means you do not need to rewrite the property file for ant in separately. 
The properties should be as key=value format 

 <loadproperties srcFile="file.properties"/>







#hemant #kurmi 
#hemant #kurmi #hemant #kurmi
#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant#hemant #kurmi #hemant #kurmi #hemant #kurmi
#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi#hemant #kurmi


What is the maximum ram for 32 bits and 64 bits computer?


Some Amazing fact about memory (petabyte,exabyte,zettabyte) And How much data exists on the Web?

Hemant Kurmi - 2021 - Some Amazing Facts About Memory: Petabyte, Exabyte, and Zettabyte

Some Amazing Facts About Memory: Petabyte, Exabyte, and Zettabyte As technology advances, our ability to store and process data has grown ...