Configure HTML/JavaScript

Sunday, September 24, 2017

Deciding how to approach a negative emotions


We all know that in our life almost every day we see or face many things which are negative to us and we dont like them or its entirely against what we want.

In this situation what shoud be your aproach

Imotions

Its human nature whenever something happens which is entirely against what we want, anger, revenge, rage kind of feelings come to our mind. It's natural as we born with these qualities. I said it quality as these are god given weapons to protect us from external herp like the skin is protecting from many things which can harm body inner parts.

But when these emotions are acting against us who is going to protect us? Are these emotions acting the way it should be? When these emotions act against us, it ultimately pushes towards destruction, death. It's usual that when you suffer depression caused by something not happening what you want, your anger causes blood pressure, being in an unhealthy system will kill you soon and you will totally be pushed to a life where no enjoyment but only negative thoughts.

Approach to Emotion

We should take the positive approach how much big the negative hit we got in life. We should convert that negative energy to positive and use it in favour of us and should not allow that negative energy to harm us rather help us to improve us.

Acting to a social media post


Many times we see some social media post when is entirely again what we wanted to listen. Taking an example, Durga Puja festival is a known famous national and international festival and its rich culture of Bengalis. Now the government is putting some restriction on them because some other festival is coming in the same day! 

Rather than keep commenting negative posts on it and starting a fight with everybody you should keep posting positive thoughts about the festival, its advantages in developing nations, how it is contributing towards society, development and how to protect this years old festival.

When you post or fight against the negative post, somehow you are also promoting the negative post which even does not deserve and you dont even like it. And you ware westing your valuable key energy on that. I would say you should put all your energy to promot and post positive posts about the event like Durga puja rhater finght against bunch of people trying to oppose that got just shake of their personal gain. Its always matters all people when it comes to compair personal/individual gain and humanity gain.





Tuesday, September 12, 2017

Forcing user to add license comment in Code file and preventing users to use specific words in project code

There are many use cases and projects where we want to place license in all the file as comment at the top of the file or bottom file. If one of the file missed or wrong license text is placed, it might be a problem for legal team or any legal action will dependent on this.

In this situation is really good idea to to check before you commit your code to repository that license text is there in all files. Yap! you got it, we need to place a pre-commit hook in our repository so that any file does not have that, we will not allow them to push code to repository.


pre-commit hook 

There is a great module available in npm which does all in perfect way we want. Only thing is we have to tell him what we need to do.

So the idea is to place a pre-commit hook and assign some node script before code can be commited to the repository. so install pre-commit in your project as dependencies

npm install --save-dev pre-commit

https://www.npmjs.com/package/pre-commit


Hooking the script in pre-commit

Finding license test in all files


Now it time to fine license test in all the file. The below node script will happly do that for us and will let us know which file does not have the license text

(function () {
  var fs = require('fs');
  var glob = require('glob-fs')();
  var path = require('path');
  var result = 0;
  var exclude = ['LICENSE',
    path.join('e2e', 'util', 'db-ca', 'rds-combined-ca-bundle.pem'),
    path.join('src', 'favicon.ico')];
  var files = [];
  files = glob.readdirSync('**');
  files.map((file) => {
    try {
      if (!fs.lstatSync(file).isDirectory() && file.indexOf('.json') === -1 
           && exclude.indexOf(file) === -1) {
        var data = fs.readFileSync(file, 'utf8');

        if (data.indexOf('Copyright 2017 candifood contributors') === -1) {
          console.log('Please add License text in coment in the file ' + file);
          result = 1;
        }
      }
    } catch (e) {
      console.log('Error:', e.stack);
    }
  });
  process.exit(result);
})();




Now this script can be executed by node to find the license text in all file. 
Now its time to hook it in the pre-commit.

Hooking the script in pre-commit

To hook the script in pre commit we need to create a script in package.json and tell
the pre-commit to use that before pre-commit.
{
  "name": "project-name",
  "version": 1.0.0",
  "license": "Apache 2.0",
  "scripts": {
    "license-check": "node license-check",
  },
  "private": true,
  "dependencies": {
  },
  "devDependencies": {
    "pre-commit": "1.2.2",
  },
  "pre-commit": [
    "license-check"
  ]
}

Thats all! When we commit the code the pre-commit will call the node script 
and it will stop if any file there is no license test.


Check if company confidential information is placed in code

Now its time to check if any specific company information is there in the code in same pre hook.
So we will add another hook in the pre-commit and to check that.
So the new package.json will be
{
  "name": "project-name",
  "version": 1.0.0",
  "license": "Apache 2.0",
  "scripts": {
    "license-check": "node license-check",
    "license-check": "node prevent-secret",
}, "private": true, "dependencies": { }, "devDependencies": { "pre-commit": "1.2.2", }, "pre-commit": [ "license-check",
    "prevent-secret"
] }

Prevent secret code

Now the below wcript will be executed after license check in pre-commit and will tell us
if any keyword is confidential word is used in our code which may cause problem when the code will go to outside.
(function () {
  var fs = require('fs');
  var glob = require('glob-fs')();
  var path = require('path');
  var result = 0;
  var exclude = [
    'LICENSE',
    path.join('e2e', 'config', 'conf.e2e.json'),
    path.join('src', 'favicon.ico')
  ];
  var files = [];
  files = glob.readdirSync('**');

  var patternString = [
    // 'i am oeky',    // 'famous',    'secret',
    'moana'  ];

  files.map((file) => {
    try {
      if (!fs.lstatSync(file).isDirectory() && exclude.indexOf(file) === -1) {
        fs.readFileSync(file).toString().split(/\r?\n/).forEach(function(line){
          patternString.map((pattern) => {
            if (line.indexOf(pattern) !== -1) {
              console.log('' + file + ': `' + pattern + '` in line [' + line +']');
              // result = 1;            }
          });
        });
      }
    } catch (e) {
      console.log('Error:', e.stack);
    }
  });
  process.exit(result);

})();

So we all set! And its really batter then put a search query  manually and find all these words. Here we will do all them even before our code to go to repository.

if this did not solve your problem, put comment your case and I will try to resolve that.

Thursday, March 9, 2017

Upgrading from angular 2 to angular 4 (now in 4.0.0-rc.2)



Angular 4.0.0-rc.2 released:


The new version if angular will be 4.0.0 and google is already in the path to make it happen. The main reason to upgrade is angular router is ahead of normal angular which now in 2.4.9 version and the router is in 3.x.x version. To make a single version, the new angular 4 is coming

Of course, this will not be the only change in the new version!

Typescript:
Now the typescript 2.1.5 is minimum requirement for the angular 4.0.0 on wards

What might be the new changes


most probably these will be the new changes


 - Ahead of Compilation will be measure changes and it will be the default.
 - Angular cli is moved to @angular/cli and its now in rc.1 version
 - The angular cli default build will reduce the file size drastically less
 - changed most of the types from classes to interfaces


How to generate angular 4.x.x-rc.x project with cli:

You just need to pass --ng4 to tell cli to generate an angular 4 project.

the command will be  ng new appName --ng5 -style=scss

Let me know if nay question!!

Thursday, April 14, 2016

How to add request body to http Delete method


Http Methods methods:


While consuming web services, many tume we need to call http put, delete, get, post methods. While calling http het and post methods are regularly used and you need minimal configuration, put, delete, etc methods some time confuse developer.

Problem with Http Delete methods:


In case of http delete methods, we cannot send request body if your are using http client. it does not allow to do as there is no methods avaialble.

You will face this problem in case you are developing an application where you web service end point need some data in the delete methods and in clent there are no ways to do that.

Soloutions:


The solution is to extend the http post method and change the method to DELETE while sending data. One of the easiest way I would suggest is as below.

Extend the HttpPost method and change the method to DELETE as below and then create the object of HttpPost rather HttpDelete.


Monday, April 11, 2016

How to remove java 1.8 from class path and set java 1.7 in windows 10



Windows 10 degrading from java 1.8 to java 1.7


I have been developing a project which is on google app engine and java sdk 1.7. When I upgraded to windows 10 from my windows 7 machine, the by default java verion was jre 1.8 and when ever I have bed executing any task, the version miss matching was happening.

JDK:

 jdk and jre are 2 different thing. The jdk is responsible to compile your java code using javac compailer and generate .class file which contains java byte code which is executed in jvm(java virtual machine)

JRE:

jre is something which execute the class file and guve you the result. any operating system gives you jre not jdk as jre executes most of the internal java codes


How to chge default windows 10 jre version from java 1.8 to 1.7



In windw 10, the C:\Windows\System32 (c:\Windows\SysWOW64 folder if you have x64 system [Win 7 64 bits]) folder contains java.exe, javaw.exe and javaws.exe which is dafault java execution and any call path you will set for the java will not over ride it as these are highest priority in windows.To set you default path to java jre 1.7 you need to delete them. may be you can take a backup in case you want to come back to jre 1.8.then what ever class path jre and jdk is available, it will point to you java version in your machine.


Sunday, August 3, 2014

Making Http call from core java - different ways

There are many ways we make http calls to web server in many situation. We application server always receives requests in many forms and send back response in many forms.

Now a days there are a lots of framework, library available to kame http call easy to the web server like Spring, Struts, Ajax, etc.

 But if the requirement is simple and need just a simple and light weight http call to the server, you will not like to use these heavy library which comes will many extra functionality which you dont need. In this case the best way is to use the inbuild hava http functionality to get response data from the web server.

below are few example which will help you to understand batter

Using HttpConnect

conn = (HttpURLConnection) new URL(url).openConnection();
conn.setRequestMethod(method);
conn.setRequestProperty("X-DocuSign-Authentication", httpAuthHeader);
conn.setRequestProperty("Accept", "application/json");
if (method.equalsIgnoreCase("POST")) {
  conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
  conn.setRequestProperty("Content-Length", Integer.toString(body.length()));
            conn.setDoOutput(true);
}


status = conn.getResponseCode(); // triggers the request
if (status != 200) { //// 200 = OK 
    errorParse(conn, status);
    return;
}

InputStream is = conn.getInputStream();

Another way is using HttpPost
  try {
   // 1. create HttpClient
   HttpClient httpclient = new DefaultHttpClient();

   // 2. make POST request to the given URL
   HttpPost httpPost = new HttpPost(authUrl);

   String json = "";

   // 3. build jsonObject
   JSONObject jsonObject = new JSONObject();
   jsonObject.accumulate("phone", "phone");

   // 4. convert JSONObject to JSON to String
   json = jsonObject.toString();

   // 5. set json to StringEntity
   StringEntity se = new StringEntity(json);

   // 6. set httpPost Entity
   httpPost.setEntity(se);

   // 7. Set some headers to inform server about the type of the
   // content
   httpPost.addHeader("Accept", "application/json");
   httpPost.addHeader("Content-Type", "application/x-www-form-urlencoded");

   // 8. Execute
   HttpResponse httpResponse = httpclient.execute(httpPost);

   // 9. receive response as inputStream
   inputStream = httpResponse.getEntity().getContent();
   String response = getResponseBody(inputStream);
   
   System.out.println(response);

  } catch (ClientProtocolException e) {
   System.out.println("ClientProtocolException : " + e.getLocalizedMessage());
  } catch (IOException e) {
   System.out.println("IOException:" + e.getLocalizedMessage());
  } catch (Exception e) {
   System.out.println("Exception:" + e.getLocalizedMessage());
  }

Thursday, January 9, 2014

Updating column 1 or column 2 with value of same column value or different column value of same table

Some time we need to change values of columns of same row of a table.

update  table_name set column1 = column2

you can also put some arithmetic calculation and update table as well. the above query will take the value of column2 and will store it in the column1 of the same row of same table.

Friday, October 25, 2013

UNIX Command file lists order by file size

below command will list all files in a folder order by file size.

ls -l | sort +4rn |awk '{print $9, $5}'

Saturday, March 30, 2013

json serialization

What is JSON

Json stands for JavaScript Object Notification. it represents data in object format so that javascript and understand it easily and manipulate it easily

it looks like as below:
[{"id":"83","text":"sales crescent"},{"id":"88","text":"sales grey bar"}]
 its just a simple array of two json object

keep in mind that, if you will find [] symbol it means it's a array of object. that means one or more then one json object may be there inside the space

like bellow
var mathTen = 
[{
"name": "Aniruddha Das",
"email": "someemailaddress@gmail.com
"valuepaids": [{"id":"83","text":"sales crescent"},{"id":"88","text":"sales grey bar"}]
}]

you can also iterate this object by using jQuery.each() ot any normal javascript loop.

here variable mathTen contain a array of json. again inside mathTen there valuepaids node which contains a array of json object.

there are ways to manipulate these json object hierarchy inside in side javascript code (i am not mentioning here as we can do that , i think so :) )

Where we need json serialization:

We need json serialization where we want to pass json from one place to another. like from one environment to another. like while sending json data from java/php/asp.net codes to javascript code thorugh ajax call.

Or sending json data as parameter from a dynamically created javascript function

But in some situations we need to create dynamic html codes and pass as json as as parameters if we are creating dynamic javascript functions in that like below
var yuyu = [{"id":"83","text":"sales crescent"},{"id":"88","text":"sales grey bar"}];
indObj=[{"id":"83","text":"sales crescent"}];


$("#divAllIndividuals")
            .append("+indObj[0].id+"','"+JSON.stringify(yuyu)+"','"+JSON.stringify(indObj)+"','"+indObj[0].text+"') title=\"Delete Entry\">\"");

there json variable (yuyu and indObj) will no more will be json in the called function if you will not serialize these function here. here the serialize concept come


what is json serialization:

Json serialization is nothing but it convert json object to string so that you can easily send that string from one environment to another or you can pass that string as parameter from a dynamically created javascript function.

Use of json serialization:

to serialize a json object we can use JSON.stringify() as we did in the above created dynamically created javascript function. this function will convert json object to string.

Again we have to deserialize the json object string in the called function  (if we are calling in as parameter in dynamic javascript function) or if we are receiving it from other language like java/php/asp.net.

to deserilize json object string we need to call JSON.parse(); it will again convert josn object string to json object so that we can use json nodes in your program.

var indObj = $.parseJSON(jsonpassedvariablehere);


that it. now you can send json data from anywhere in your program and can use that anywhere in your program by serialize and deserialize the objects

Thanks 

Friday, February 15, 2013

What is the difference between visibility:hidden and display:none


visibility:hidden and display:none are not synonims.

display:none means that the the tag in question will not appear on the page at all (although you can still interact with it through the dom). There will be no space allocated for it between the other tags. 


Visibility:hidden means that unlike display:none, the tag is not visible, but space is allocated for it on the page. so for example

Monday, January 28, 2013

JSON: creating json in java and rendering javascript (JAVA string to JSON in javascript)

java string to json in javascript:


This is a common problem while we are transferring data from one technology to other technology. Specially encoding and decoding are concern while different format of data is required in different environment.

In my current piece of work i was required to create a JSON string in java and pass it to view (jsp) page where with the help of JavaScript (jQuery) data render need to perform.

common problem face

  • How to create a json data string in core java classes.
  • how to transfer json data from java to jsp 
  • How to convert normal java string to json object in javascript.  

Java does not understand json so for creating json in java various library are available. I picked simplest way like, I created a java string as like as json data and pass that string to the javascript. In the javascript end i converted that java string in to javascript string (by adding a null string like;var newval =  ""+strVariable). then with the help of jQuery.parseJSON() i converted it to the json object and renders. Below is the code which will describe in the details.

Ajax call from JSP:



       $(document).ready(function () {
        $.ajax({
        method:"GET",
        url: "user-struts action.action",
        //data: "variableifany="+$("#variableifany").val(),
        success: function(dataUser) {
//converting java string to javascript sting
//by adding null string ("") to the returned java string
        var yuyu = $.parseJSON(""+dataUser);
//simple testing of json object by calling jquery each function
$.each(yuyu, function(key, val) {
alert(val["id"]+"-"+val["text"]);
});
         
                     $("#divtoplace").select2({
                    multiple: true,
                       query: function (query){
                         var data = {results: []};
                         $.each(yuyu, function(){
                             if(query.term.length == 0 || this.text.toUpperCase().indexOf(query.term.toUpperCase()) >= 0 ){
                                 data.results.push({id: this.id, text: this.text });
                             }
                         });
                         query.callback(data);
                     }
                    });
         
        },
   error: function(XMLHttpRequest, textStatus, errorThrown){
       alert("errorThrown="+errorThrown+
        '----zipcodesuccessError=' + textStatus+"----response text = "+XMLHttpRequest.responseText);
   }
        });


JAVA class code: 

String userJson = "[";
                map= new userList().users();
for (Map.Entry entry : map.entrySet()) {
userJson += "{ \"id\": \""+entry.getKey()+"\", \"text\": \""+entry.getValue()+"\" },";
}
userJson = userJson.substring(0, userJson.length()-1)+"]";
System.out.println("jsodata="+userJson);
inputStream=new StringBufferInputStream(userJson);
return SUCCESS;



Important points to remember:

  • while creating json string in java do remember to match the json format like 
  • do remember to convert from java string to javascript string
  • now parse the javascript string to json object.
  • now your json object is ready to user.

Thanks

Monday, December 3, 2012

Setting java, java_home path for all users in unix

Setting java, java_home path for all users in unix

 
first check if there is a path set in /etc/profile file...
other wise you can set
 
Set JAVA_HOME / PATH for all user:


You need to setup global config in /etc/profile OR /etc/bash.bashrc file for all users:
# vi /etc/profile
Next setup PATH / JAVA_PATH variables as follows:
export PATH=$PATH:/usr/java/jdk1.5.0_07/bin
export PATH=$PATH:/usr/java/jdk1.5.0_07/bin

Save and close the file. Once again you need to type the following command to activate the path settings immediately:
# source /etc/profile

Agile Scrum Sprint

In product development, a scrum sprint is a set period of time during which specific work has to be completed and made ready for review.

Each sprint begins with a planning meeting. During the meeting, the product owner (the person requesting the work) and the development team agree upon exactly what work will be accomplished during the sprint. The development team has the final say when it comes to determining how much work can realistically be accomplished during the sprint, and the product owner has the final say on what criteria needs to be met for the work to be approved and accepted.

The duration of a sprint is determined by the scrum master or development team owner, the team's facilitator. Once the team reaches a consensus for how many days a sprint should last, all future sprints should be the same. Traditionally, a sprint lasts 30 days.

After a sprint begins, the product owner must step back and let the team do their work. During the sprint, the team holds daily stand up meeting to discuss progress and brainstorm solutions to challenges. The project owner may attend these meetings as an observer but is not allowed to participate unless it is to answer questions. The project owner may not make requests for changes during a sprint and only the scrum master has the power to interrupt or stop the sprint.


At the end of the sprint, the team presents its completed work to the project owner and the project owner uses the criteria established at the sprint planning meeting to either accept or reject the work.

Sunday, December 2, 2012

Difference Between cursor and ref cursor


Difference Between cursor and ref cursor:


Ref cursor are variable of type cursor. Once you will declare a Ref cursore you can place any cursor in that ref cousor. In short words you can say ref cursors are holder of of any type of cursor.

if you will see the below code rc is a ref cursor and c is a cursor. rc is opened with different sql queries later but c (normal cursor) which is fixed.

other differences are there also.

> ref cursors can sent to the client. in word of java you can say ref cursors are result sets you can pass to other sub programs
>you cannot declare ref cursor out side procedure.
> A ref cursor can be passed to subroutine to subroutine but normal cursors cannot passed.


Important difference is that 

Static sql (not using a ref cursor) is much more efficient then using ref cursors and that use of ref cursors should be limited to 

-  when returning result sets to clients

 - when there is NO other efficient/effective means of achieving the goal






Declare
   type rc is ref cursor;
   
   cursor c is select * from dual;

   l_cursor rc;
begin
   if ( to_char(sysdate,'dd') = 30 ) then
     open l_cursor for 'select * from emp';
   elsif ( to_char(sysdate,'dd') = 29 ) then
     open l_cursor for select * from dept;
   else
     open l_cursor for select * from dual;
   end if;
   open c;
end;
/
 
 

Monday, November 26, 2012

^M: not found error in unix

^M: not found error in unix

 I was executing a shell script file through the nohup command. while executing the file i got the ^M: not found error in unix command prompt.

Then i started searching why i am getting this error. after making several googling, i got to know that this is due to i created this shell script file in windows (eclipse) OS. 

Normally when we create any file in windows and move/upload it to unix it append ^M in every line in the unix platform. it causes the error. now you need to remove these ^M character from the  shell script to work it properly. You can do that i several ways

1. opening the script file VI editor and manually removing these extra charactors
2. using dos2unix command
3.....


Wednesday, November 7, 2012

Date and Time matching in Where clause in Oracle



Date and Time matching in Where clause in Oracle:

It is trick when you want to match date or  date and time in where clause of you oracle sql query.
some time the original field may will be in date, time or some other field. and when you will put date type data with different format in where clause of you sql query it will mismatch and will not provide you the result you want.

You can avoid this kind of problem by using the to_date(date, format) in you where clause and the original field name as usual.

Below is an example:

select *
from table_name
where assoc_id = '6492349324'
and begin_date = TO_DATE('01-APR-2012', 'DD-MON-YYYY')  --what ever will be the data type of begin_date
and end_date = TO_DATE('01-JUL-2012', 'DD-MON-YYYY')    --the query will only match the date out of it


In the above query any date type data can be matched.



Tuesday, October 23, 2012

Passing Objects as parameters in PHP


Objects are Passed by reference by default:

By default the php objects are passed by reference below example will make it more clear. that is why when we copy object it property's are pointing to the same reference

class {
    public 
$foo 1;

$a = new A;$b $a;     // $a and $b are copies of the same identifier
             // ($a) = ($b) = 
$b->foo 2;
echo 
$a->foo."\n";  //this will output 2 as the reference is copied
                    //$a and $b is point to the same location

$c = new A;$d = &$c;    // $c and $d are references
             // ($c,$d) = 
$d->foo 2;
echo 
$c->foo."\n";

$e = new A;

function 
foo($obj) {
    
// ($obj) = ($e) = 
    
$obj->foo 2;
}
foo($e);
echo 
$e->foo."\n";
?>

the output of the above sample example will
2
2
2



/*
 * Created on Oct 24, 2012
 *
 * To change the template for this generated file go to
 * Window - Preferences - PHPeclipse - PHP - Code Templates
 */

 class ClassTesting {
 
  private $foo;
 
  function __construct($foo){
  $this->foo = $foo;
  }
 
  private function ent($foo){
  $this->foo = $foo;
  }
 
  public function ret($obj){
  $obj->foo = 'this';
  var_dump($obj->foo);
  }
 }

 $x = new ClassTesting("man");
 $a = new ClassTesting("dog");
 $x->ret($a);

?>

Monday, October 8, 2012

Log file location in Linux

Linux log file location:


you can find various logs related to the linux in the following folder

/var/log/

Under this there are many files contains different types of logs of the system. like syslog contains system related logs

it looks like below:


  • /var/log/message: General message and system related stuff
  • /var/log/auth.log: Authenication logs
  • /var/log/kern.log: Kernel logs
  • /var/log/cron.log: Crond logs (cron job)
  • /var/log/maillog: Mail server logs
  • /var/log/qmail/ : Qmail log directory (more files inside this directory)
  • /var/log/httpd/: Apache access and error logs directory
  • /var/log/lighttpd: Lighttpd access and error logs directory
  • /var/log/boot.log : System boot log
  • /var/log/mysqld.log: MySQL database server log file
  • /var/log/secure: Authentication log
  • /var/log/utmp or /var/log/wtmp : Login records file
  • /var/log/yum.log: Yum log files

Monday, October 1, 2012

Checkbox Value in java or php

Getting Checkbox Value in backend in java or php:


While sending checkbox value from front end HTML to java or php few thinks we need to take care.

1. unchacked checkbox value will not available in the backend(java/php)
2. unchecked checkboxattribute will not available in the java end. if there is a checkbox named 'chck1' and its not checked in the html end. it will not available in the java end. when you will write request.hetAttribute("check1"); it will through an error as these will not a attribute in the request array.


please add anything if i am missing.




Tuesday, September 25, 2012

Java String class, Constructs and methods

Java String Class:

Constructs
Java string class have many constructs to handle java strings. this constructs takes different parameters to handle java string in different manners.

String s = new String(); //string empty constructs

char chars[] = { 'a', 'b', 'c' };
String s = new String(chars);
System.out.println(s.length());  //out put will abc

Methods:

it also provides many methods to handle strings. one of the simplest method is length method. it will return the length of the string.

String s = new String(chars);
System.out.println(s.length());

Other methods are their to handle string. please refer complete reference java for the complete details.

StringBuffer class:

it provides many methods to handle advanced string. like you can append string at a special position. you can insert string, etc



// Demonstrate append().
class appendDemo {
public static void main(String args[]) {
String s;
int a = 42;
StringBuffer sb = new StringBuffer(40);
s = sb.append("a = ").append(a).append("!").toString();
System.out.println(s);
}
}
The output of this example is shown here:
a = 42!