Monday, December 24, 2007

The way of testivus

Good test fails
The pupil went to the master programmer and said:
“All my tests pass all the time. Don’t I deserve a raise?”
The master slapped the pupil and replied:
“If all your tests pass, all the time, you need to write better tests.”
With a red cheek, the pupil went to HR to complain.
But that’s another story.

Enjoy the way of testivus in www.junitfactory.com . Write tests write tests tests tests...........

Wednesday, December 19, 2007

Interesting java compiler errors#1

public class Test2 {
public enum Dogs {collie, harrier, shepherd};
public static void main(String [] args) {
Dogs myDog = Dogs.shepherd;
switch (myDog) {
case Dogs.collie:
System.out.print("collie ");
default:
System.out.print("retriever ");
case harrier:
System.out.print("harrier ");
}
}
}
what is the error?
an enum switch case label must be the unqualified name of an enumeration constant

Friday, November 30, 2007

JSF-Spring Integration

If you follow this link you can easily your existing web application which uses JSF with spring.
But
when you run tomcat 6.0 you can take this output in console.

java.lang.IllegalStateException: No thread-bound request found: Are you
> referring to request attributes outside of an actual web request?
> If you are actually operating within a web request and still receive this
> message,your code is probably running outside of
> DispatcherServlet/DispatcherPortlet: In this case, use
> RequestContextListener or RequestContextFilter to expose the current
> request.

It is because of this:
http://www.jdocs.com/page/AjaxSourceCode?oid=62833

at line 102

You can fix it with modify your web.xml. Add this listener to your web.xml

org.springframework.web.context.request.RequestContextListener


As a result, your working web.xml should contain listeners below.
//listeners
com.sun.faces.config.ConfigureListener

org.springframework.web.context.ContextLoaderListener

org.springframework.web.context.request.RequestContextListener

de.mindmatters.faces.spring.context.ContextLoaderListener

//end of listeners



Thursday, October 18, 2007

Does Java pass by reference or pass by value?

Link

Java copies and passes the reference by value, not the object. Thus, method manipulation will alter the objects, since the references point to the original objects. But since the references are copies, swaps will fail. Unfortunately, after a method call, you are left with only the unswapped original references. For a swap to succeed outside of the method call, we need to swap the original references, not the copies.
-------------------------------------------------------------------------------------------------
int x = 5;
int y = 7;

int tmp = x;
x = y;
y = tmp,

If all your variables are local to one method, it doesn't matter whether
they are primitives or references, you can use their values any way you
like.
The problem, which you don't seem to have grasped, comes when these
variables are passed onto other methods.

In C you can do this:

void swap(int *x, int *y) {
int tmp = *x;
*x = *y;
*y = tmp;
}

In Java, you can't. Not with primitive types, anyway. But if you have
some sort of wrapper object, you can do this:

void swap(IntWrapper x, IntWrapper y) {
int tmp = x.getValue();
x.setValue(y.getValue());
y.setValue(tmp);
}

You can't do this with java.lang.Integer as it doesn't have methods to
change its value, but you can write your own wrapper class.

int wrapper(sth old)

Tuesday, July 31, 2007

how to install windows xp to sata disk notebook

1.Enter boot menu
2.Advanced-AHCI Configuration make it disabled
3.Install xp now!!

Tuesday, April 24, 2007

About codes

All codes are written and tested by me.

how to send image from mobile phone to servlet :Server Side

BufferedReader reader = request.getReader();
ByteArrayOutputStream bStrm = new ByteArrayOutputStream();
int width=160;
int height=120;
int [] pixels = new int[width*height];
int ch;
BufferedImage img=
new BufferedImage(width,height,BufferedImage.TYPE_INT_ARGB);

FileWriter fw1;
BufferedWriter bw1=null;
try{
File myfile = new File("C:\\picture.jpg");

fw1 = new FileWriter("C:\\imagedata.txt");
bw1 = new BufferedWriter(fw1);
for(int i =0;i LT 120;i++){
for(int j=0;j LT 160;j++){
reader.skip(1);
ch=reader.read();
while ((ch = reader.read()) != '?')
bStrm.write(ch);
String str = new String(bStrm.toByteArray());
pixels[i*160+j] = Integer.parseInt(str);
bw1.write(""+pixels[i*160+j]);
bStrm.reset();

}
bw1.newLine();
}
img.setRGB(0,0,160,120,pixels,0,160);
ImageIO.write(img,"jpg",myfile);
}catch(Exception e){

}
bw1.close();

how to send image from mobile phone to servlet :Mobile Side

public synchronized void run(){
HttpConnection c = null;
OutputStream os = null;
try{
c = (HttpConnection)Connector.open(url);
// Set the request method and headers
c.setRequestMethod(HttpConnection.POST);
c.setRequestProperty("User-Agent",
"Profile/MIDP-2.0 Configuration/CLDC-1.0");
c.setRequestProperty("Content-Language", "en-US");
os = c.openOutputStream();
Image myimage = Image.createImage(imageData,0,imageData.length);
int w = myimage.getWidth();
int h = myimage.getHeight();
DataOutputStream out = new DataOutputStream(os);
System.out.println("width:"+myimage.getWidth());
System.out.println("height:"+myimage.getHeight());
int [] rgbdata = new int[160*120];
System.out.println("length :"+rgbdata.length);
myimage.getRGB(rgbdata, 0, myimage.getWidth(), 0, 0, myimage.getWidth(), myimage.getHeight());

for(int i = 0 ;i LT h;i++){
for(int j=0;j LT w;j++){
out.writeUTF(rgbdata[i*w+j]+"?");
}
}
}
catch(Exception e){
}
}

Friday, April 06, 2007

Image Sending Test


Codes in the last 2 post is tested in netbeans Ide 5.5 and passed successfully.It can transfer 225kb bmp image that you see left successfully.

how to send image from servlet to mobile phone

Mobile side:

Do reverse what you did in server side
Create image with Image.createImage(....)
*GetImage :starting midlet
Here is the Java Code

/*
* HttpConnector2.java
*
* Created on February 20, 2007, 6:20 PM
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/

package hello;

/**
*
* @author sezer
*/
import java.io.*;
import javax.microedition.io.*;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;


public class HttpConnector2 extends Thread{

private String url="your url";
private String msg;
private GetImage midlet;



/** Creates a new instance of HttpConnector */
public HttpConnector2(GetImage midlet,String msg) {
this.midlet =midlet;
this.msg = msg;
}
public synchronized void run(){
HttpConnection c = null;
InputStream is = null;
OutputStream os = null;
try{
c = (HttpConnection)Connector.open(url);
// Set the request method and headers
c.setRequestMethod(HttpConnection.POST);
c.setRequestProperty("User-Agent",
"Profile/MIDP-2.0 Configuration/CLDC-1.0");
c.setRequestProperty("Content-Language", "en-US");
os = c.openOutputStream();
os.write(msg.getBytes());

is = c.openInputStream();

ByteArrayOutputStream bStrm = new ByteArrayOutputStream();

int ch;

while((ch=is.read())!='@')
bStrm.write(ch);
String widthstr = new String(bStrm.toByteArray());
System.out.println("Width:"+widthstr);

bStrm.reset();

int width = Integer.parseInt(widthstr);
System.out.println(width);

while((ch=is.read())!='n')
bStrm.write(ch);
String heightstr = new String(bStrm.toByteArray());
System.out.println("Height:"+heightstr);

bStrm.reset();

int height = Integer.parseInt(heightstr);
System.out.println(height);

int [] pixels = new int[width*height];

for(int i =0;i LT height;i++){
for(int j=0;j LT width;j++){
while ((ch = is.read()) != '?')
bStrm.write(ch);


String str = new String(bStrm.toByteArray());
pixels[i*width+j] = Integer.parseInt(str);
bStrm.reset();
}

}
System.out.println(pixels.length);

midlet.get_response(width,height,pixels);
os.close();
is.close();
c.close();
}
catch(IOException ioe){
ioe.printStackTrace();
}
}
}
LT is '<' as usual

how to send image from servlet to mobile phone

Server side
Read image
send width
send height
while(MorePixels){
Take a pixel from getRGB(x,y)
Put a split character
send it
}
here is the JAVA code:


/*
* BTServlet.java
*
* Created on February 12, 2007, 9:45 PM
*/

package servlet;

import java.io.*;
import java.net.*;
import java.awt.image.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.imageio.ImageIO;

/**
*
* @author sezer
* @version
*/
public class BTServlet extends HttpServlet {

/** Processes requests for both HTTP GET and POST methods.
* @param request servlet request
* @param response servlet response
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
BufferedReader reader = request.getReader();
String msg = reader.readLine();
response.setContentType("text/html;charset=UTF-8");

PrintWriter out = response.getWriter();

BufferedImage bufImg=null;
try{
File f = new File("C:\\picture.png");
bufImg = ImageIO.read(f);
}
catch(IOException e){
e.printStackTrace();
}


int w = bufImg.getWidth();
int h = bufImg.getHeight();


System.out.println("width:"+w);
System.out.println("height:"+h);




out.print(w+"@"+h+"n");


for(int i = 0 ;i LT h;i++){
for(int j=0;j LT w;j++){
out.print(bufImg.getRGB(j,i)+"?");
}

}

out.flush();
out.close();
}
}
LT : is '<'

Tuesday, March 06, 2007

my j2me camera program snapshots #3

my j2me camera program snapshots #2

my j2me camera program snapshots #1

Code:How to write an image in mmapi

How to write an image in mmapi?

I installed and executed this code in my old fashion nokia 6600.
String name;
int recId; // returned by addRecord but not used
TextField tmp = (TextField)get_saveForm().get(0);
name = tmp.getString();
int width = image.getWidth();
int height = image.getHeight();
byte [] rgbData = pngData;//
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream outputStream = new DataOutputStream(baos);
try{
imageStore = RecordStore.openRecordStore("myimages",true);//image store name
outputStream.writeUTF(name);
outputStream.writeInt(width);
outputStream.writeInt(height);
outputStream.writeInt(rgbData.length);
for(int i=0;i TO rgbData.length;i++)
outputStream.writeByte(rgbData[i]);//write byte and forget out of memory error!

outputStream.flush();
outputStream.close();
byte[] b = baos.toByteArray();
recId = imageStore.addRecord(b, 0, b.length);
// Alert alert = new Alert("ImageSaved" ,name +" Saved",null,AlertType.INFO);
// Display.getDisplay(midlet).setCurrent(alert,this);
Display.getDisplay(midlet).setCurrent(this);
// System.out.println("Image Saved");
}catch(IOException ioe){
Alert alert = new Alert("Image" ,name +"IOException",null,AlertType.ERROR);
Display.getDisplay(midlet).setCurrent(alert,this);
}
catch (Exception e) {
// Log the exception
Alert alert = new Alert("Image" ,name +" Not Saved",null,AlertType.ERROR);
Display.getDisplay(midlet).setCurrent(alert,this);
} finally {
try {
// Close the Record Store
if (imageStore != null) imageStore.closeRecordStore();
} catch (Exception ignore) {
// Ignore
Alert alert = new Alert("Exception" ,ignore.getMessage(),null,AlertType.ERROR);
Display.getDisplay(midlet).setCurrent(alert,this);
}
}

}

TO will be '<' i cant write because of HTML error of silly blogspot editor

getsnapshot(null) problem in nokia6600

In java spec it write that when you give imagetype null your mobile phone take snapshot in default imagetype, but forget it!!! when simply you copy paste code and store it via RMS and later try to retrieve it you ll get an exception!.Where did it come? In Netbeans IDE 5.5 you dont get an exception but when you decide to install and execute your .jar program it simply throw an exception even simply wrote a meaningful expression abou what exception is. Try - catch blocks doesnt really do not anything in my nokia66oo and you can't see anything about problem. You will get an exception which see Exception 0 (oh really??)If you have a problem like this i suggest you give up studying and simply give more attention to your girlfriend :)) When you get ready (your mind is free) look at your device specification then you will get the answer.If you don't get anything,write a better code and give up cursing

Monday, March 05, 2007

getSnapshot(java.lang.String imageType) in mmapi

getSnapshot(java.lang.String imageType) returns a byte array which is encoded with given imageType.If imageType is null then default image type will be used.

How to learn supported image types?

System.out.println(System.getProperty("video.snapshot.encodings"));

Getting a jpeg image

byte[] imageData = videoControl.getSnapshot("encoding=jpeg"); //160x120
byte[] imageData = videoControl.getSnapshot("encoding=jpeg width="200" height="150");

Getting a png image

byte[] imageData = videoControl.getSnapshot("encoding=png"); //160x120

image types

http://en.wikipedia.org/wiki/Png

A good comparison of snapshot speed of the Nokia 6600 in different image types



Sunday, March 04, 2007

Code example for RMS in j2me

An example code shows how to store and load png images

Wednesday, February 28, 2007

Code : how to record data in j2me

private RecordStore recordStore=null;
byte [] data=.....
try{
int id = recordStore.addRecord(data,0,data.length);

}catch(RecordStoreException rse){

}
where data will be recorded?

Example:
In Nokia6600, E:\System\Midlets\[1012...]\rms.db

E : Disk (Memory Card)
[1012...] : midlet number

You can explore your device with FExplorer and see that when u add a new record size of rms.db will increase.

Tuesday, February 27, 2007

Code : how to reach camera in j2me

import javax.microedition.media.*;
import javax.microedition.media.control.*;

player=Manager.createPlayer("capture://video");
player.realize();
videoControl=(VideoControl)(player.getControl("VideoControl"));

videoControl.initDisplayMode(VideoControl.USE_DIRECT_VIDEO,
canvas);

player.start();

byte[] image = videoControl.getSnapshot(null);