2011년 10월 10일 월요일

[유아교육] 자음과 모음을 맞추어 글자를 완성시키는 한글 맞추기

이름 : 한글 맞추기(Hangul Puzzle)



가격 : 무료
언어 : 영어,한국어
지원버전 : Android 1.6 이상
스토어 : 안드로이드 마켓



1. 개요


한글 맞추기는 모음과 자음을 맞추어 글자를 완성시키는 퍼즐 형태의 유아용 한글 교육 어플 입니다.
글자 완성시 해당글자를 포함한 단어의 이미지가 나타나며 발음도 들려줍니다.

모음과 자음을 분리하여 학습하면서 자연스레 글쓰기를 할 수 있게 도와주며 재미적인 요소를 가미시켜 집중력 향상과 맞추는 과정을 통하여 우뇌의 발달, 낱말을 익히면서 좌뇌의 발달을 향상 시킬 수 있습니다.

2. 주요기능

3. 상세화면




http://market.android.com/details?id=com.jnc.puzzle.hangul


2011년 8월 1일 월요일

직소퍼즐하는 연필

이름 : 직소퍼즐하는 연필 (JigsawPuzzle)



가격 : 무료
언어 : 영어,한국어
지원버전 : Android 1.6 이상
스토어 : 안드로이드 마켓


1. 개요

직접 찍은 사진으로 즐기는 직소퍼즐 입니다.

갤러리에서 퍼즐 이미지를 선택 할 수 있으며 바로 사진을 찍어서 퍼즐 목록에 추가 할 수 있습니다.
퍼즐 조각 갯수를 9조각, 16조각, 25조각 중에서 선택 할 수 있고 퍼즐 조각도 2가지 모양 중 선택할 수 있습니다.
퍼즐 맞추기를 완료하면 소요된 시간 기준으로 로컬 랭킹을 제공하며 기록이 갱신되면 월드랭킹에 자동으로 등록됩니다.

2. 주요기능

3. 상세화면





 



http://market.android.com/details?id=com.jnc.puzzle.jigsaw


2011년 5월 31일 화요일

같은 카드 찾기

이름 : 같은카드찾기 (CardPencil)

가격 : 무료
언어 : 영어,한국어
지원버전 : Android 1.6 이상
스토어 : 안드로이드 마켓



 
 
 
 
 
 
1. 개요


아이들의 두뇌발달 및 기억력 향상에 도움이 되는 같은 카드 찾기 퍼즐 입니다.

전체 카드가 먼저 보여진 후 사라지면 카드를 기억하여 같은 모양의 카드를 선택하여 카드를 지웁니다.
모든 카드가 지워지면 영어 단어카드가 보여짐으로써 단어 학습에도 도움이 되도록 하였습니다.


2. 주요기능

- 선택된 난이도에 따라 카드의 개수가 다르게 표시됨
- 모든 카드가 보여진 후 사라짐
- 카드를 기억하여 같은 카드를 선택함
- 모든 카드가 지워진 후 영어 단어 카드 학습 기능


3. 상세화면







http://market.android.com/details?id=com.jnc.puzzle.card


2011년 5월 25일 수요일

한글을 보고 듣고 따라쓰며 단어를 익히는 어플

이름 : 단어쓰는 연필 (WordPencil)


가격 : 무료
언어 : 영어,한국어
지원버전 : Android 1.6 이상
스토어 : 안드로이드 마켓



 





1. 개요

아이들이 보고, 듣고, 쓰면서 글자를 쉽게 익힐 수 있는 연필 시리즈의 v2 단어 쓰는 연필 입니다.

글자가 써지는 화면이 먼저 보여지며 아이들이 글자를 흉내내서 쓰고 단어가 완성되면 발음이 들리며 잘 썼을 경우에 칭찬 도장이 찍힙니다.

2. 주요기능

- 9개의 카테고리별 단어 제공
- 글자가 서서히 써지는 모습이 보여짐
- 화면을 터치하여 글자를 쓰는 기능
- 글자가 써지는 순서에 맞게 숫자가 보여지는 힌트 기능
- 순서에 맞게 글자가 써지면 나타나는 칭찬 도장
- 단어가 완성된 후 발음이 들림
- 발음을 직접 녹음하거나 삭제하는 기능
 
 
 3. 상세화면






http://market.android.com/details?id=com.jnc.wordpencil


2011년 5월 16일 월요일

아이들의 두뇌발달 및 집중력 향상에 도움이 되는 조각 퍼즐 맞추기

이름 : 퍼즐하는 연필 (PiecePencil)

가격 : 무료
언어 : 영어,한국어
지원버전 : Android 1.6 이상
스토어 : 안드로이드 마켓

1. 개요

아이들의 두뇌발달 및 집중력 향상에 도움이 되는 조각 퍼즐 맞추기 입니다.
9개의 그림 조각을 원래의 위치에 맞추는 간단한 퍼즐 게임으로 그림이
완성되면 해당이미지의 영어철자가 화면에 보여지고 발음을 들려줌으로써
자연스럽게 영어 단어에 친숙해 질 수 있도록 개발하였습니다.









2. 주요기능













 
 
 
 

















  http://market.android.com/details?id=com.jnc.puzzle.piece

2011년 3월 24일 목요일

아이들을 위한 글자 공부 안드로이드 어플

드디어 저의 첫 어플을 마켓에 등록하였습니다.
많은 관심 부탁드립니다.

이름 : 연필 (Pencil)
가격 : 무료
언어 : 영어,한국어
지원버전 : 1.6 이상, 800 x 480 WVGA
스토어 : 안드로이드 마켓












http://market.android.com/details?id=com.jnc.pencil

Pencil - an android app for kids

Kids like to write letters on the phone using their finger.
They are also enjoy listening their voice from machine.
The kids learning letters can study and enjoy at the same time.

[feature]

select letter : alphabet(capital) / alphabet(small) / numbers / korean
writing : watching the order of letters writing first.
               writing by finger(color and size can be changed by user)
               listening native pronunciation, recording user's
               Praise stamp will come out after writing
watching : watching the order of letters, listening pronunciation
               changing the playing speed(fast/normal/slow)
playing : searching for the pronunciation listening
               setting order ( sequential / random )


2011년 3월 10일 목요일

Android ACCELEROMETER sensor sample

public class ShakeActivity extends Activity implements SensorEventListener {

private static final int SHAKE_THRESHOLD = 800;
private long lastTime;
private float speed;
private float lastX;
private float lastY;
private float lastZ;
private float x, y, z;

private SensorManager sensorManager;
private Sensor accelerormeterSensor;

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
accelerormeterSensor = sensorManager
.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);

}


@Override
public void onStart() {
super.onStart();

if (accelerormeterSensor != null)
sensorManager.registerListener(this, accelerormeterSensor,
SensorManager.SENSOR_DELAY_GAME);
}


@Override
public void onStop() {
super.onStop();

if (sensorManager != null)
sensorManager.unregisterListener(this);
}


@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}


@Override
public void onSensorChanged(SensorEvent event) {
if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
long currentTime = System.currentTimeMillis();
long gabOfTime = (currentTime - lastTime);

if (gabOfTime > 100) {
lastTime = currentTime;


x = event.values[SensorManager.DATA_X];
y = event.values[SensorManager.DATA_Y];
z = event.values[SensorManager.DATA_Z];


speed = Math.abs(x + y + z - lastX - lastY - lastZ) / gabOfTime * 10000;

if (speed > SHAKE_THRESHOLD) {
Log.d("TAG","##################### shaked #####################");

}
lastX = event.values[SensorManager.DATA_X];
lastY = event.values[SensorManager.DATA_Y];
lastZ = event.values[SensorManager.DATA_Z];
}
}
}

}

Android Screen Capture

View root = view.getRootView();
root.setDrawingCacheEnabled(true);
bm = root.getDrawingCache();

File path = new File("/sdcard/samplecapture");

FileOutputStream out = new FileOutputStream("/sdcard/screen.jpg");
bm.compress(Bitmap.CompressFormat.JPEG, 100, out);

Android animation sample

public class AnimationTest extends Activity {
/** Called when the activity is first created. */

private AnimationDrawable aniDraw;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.main);

BitmapDrawable ani1 = (BitmapDrawable)getResources().getDrawable(R.drawable.ani1);
BitmapDrawable ani2 = (BitmapDrawable)getResources().getDrawable(R.drawable.ani2);
BitmapDrawable ani3 = (BitmapDrawable)getResources().getDrawable(R.drawable.ani3);
BitmapDrawable ani4 = (BitmapDrawable)getResources().getDrawable(R.drawable.ani4);
BitmapDrawable ani5 = (BitmapDrawable)getResources().getDrawable(R.drawable.ani5);

aniDraw = new AnimationDrawable();
aniDraw.addFrame(ani1,100);
aniDraw.addFrame(ani2,100);
aniDraw.addFrame(ani3,100);
aniDraw.addFrame(ani4,100);
aniDraw.addFrame(ani5,100);

ImageView imgView = (ImageView)findViewById(R.id.imgView);

imgView.setBackgroundDrawable(aniDraw);
aniDraw.setOneShot(false);

Button btn = (Button)findViewById(R.id.btn);

btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
aniDraw.start();
}

});



}
}

oceanarium

Home Apk Search

try {
PackageManager mPm = context.getPackageManager();
Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_HOME);
rList = mPm.queryIntentActivities( mainIntent, 0 );
} catch ( Exception e ) {
Log.e(LOG_TAG, "getHomeApp() Error", e);
}

for (int i=0; i
ResolveInfo ri = rList.get(i);

Log.v(LOG_TAG ,"[" +cName.getClassName() + "] = [" + ri.activityInfo.name+"]" );

if ( cName.getClassName().equals(ri.activityInfo.name) ) return true;

}

java tiff dpi setting

import java.awt.image.*;
import java.io.*;
import java.util.*;
import javax.imageio.*;
import javax.imageio.metadata.*;
import javax.imageio.stream.*;
import org.w3c.dom.*;
import com.sun.media.imageio.plugins.tiff.BaselineTIFFTagSet;
import com.sun.media.imageio.plugins.tiff.TIFFDirectory;
import com.sun.media.imageio.plugins.tiff.TIFFField;
import com.sun.media.imageio.plugins.tiff.TIFFTag;

/**
* Example class showing two ways to write DPI values to a TIFF image.
*/
public class TIFFWriteDPI {
private static String METADATA_NAME =
"com_sun_media_imageio_plugins_tiff_image_1.0";

private static int DPI_X = 42;
private static int DPI_Y = 24;

public static void main(String[] args) throws Throwable {
// Create sample image.
RenderedImage image = new BufferedImage(256, 256,
BufferedImage.TYPE_3BYTE_BGR);

// Get TIFF writer.
Iterator writers = ImageIO.getImageWritersByFormatName("TIFF");
if(writers == null || !writers.hasNext())
throw new IllegalStateException("No TIFF writers!");
ImageWriter writer = (ImageWriter)writers.next();

// Get the default image metadata.
ImageTypeSpecifier imageType =
ImageTypeSpecifier.createFromRenderedImage(image);
IIOMetadata imageMetadata =
writer.getDefaultImageMetadata(imageType, null);

// Set DPI.
String fileName;
String methodology;
if(args.length == 0 || args[0].equalsIgnoreCase("DOM")) {
fileName = "dpi_dom.tif";
setDPIViaDOM(imageMetadata);
methodology = "DOM";
} else {
fileName = "dpi_api.tif";
imageMetadata = setDPIViaAPI(imageMetadata);
methodology = "API";
}

System.out.println("\nWriting "+fileName+
" using "+methodology+" methodology\n");

// Write image.
writer.setOutput(new FileImageOutputStream(new File(fileName)));
writer.write(new IIOImage(image, null, imageMetadata));
}

/**
* Set DPI using DOM nodes.
*/
private static void setDPIViaDOM(IIOMetadata imageMetadata)
throws IIOInvalidTreeException {
// Get the DOM tree.
IIOMetadataNode root =
(IIOMetadataNode)imageMetadata.getAsTree(METADATA_NAME);

// Get the IFD.
IIOMetadataNode ifd =
(IIOMetadataNode)root.getElementsByTagName("TIFFIFD").item(0);

// Get {X,Y}Resolution tags.
BaselineTIFFTagSet base = BaselineTIFFTagSet.getInstance();
TIFFTag tagXRes = base.getTag(BaselineTIFFTagSet.TAG_X_RESOLUTION);
TIFFTag tagYRes = base.getTag(BaselineTIFFTagSet.TAG_Y_RESOLUTION);

// Create {X,Y}Resolution nodes.
IIOMetadataNode nodeXRes = createRationalNode(tagXRes.getName(),
tagXRes.getNumber(),
DPI_X, 1);
IIOMetadataNode nodeYRes = createRationalNode(tagYRes.getName(),
tagYRes.getNumber(),
DPI_Y, 1);

// Append {X,Y}Resolution nodes to IFD node.
ifd.appendChild(nodeXRes);
ifd.appendChild(nodeYRes);

// Set metadata from tree.
imageMetadata.setFromTree(METADATA_NAME, root);
}

/**
* Creates a node of TIFF data type RATIONAL.
*/
private static IIOMetadataNode createRationalNode(String tagName,
int tagNumber,
int numerator,
int denominator) {
// Create the field node with tag name and number.
IIOMetadataNode field = new IIOMetadataNode("TIFFField");
field.setAttribute("name", tagName);
field.setAttribute("number", "" + tagNumber);

// Create the RATIONAL node.
IIOMetadataNode rational = new IIOMetadataNode("TIFFRational");
rational.setAttribute("value", numerator+"/"+denominator);

// Create the RATIONAL node and append RATIONAL node.
IIOMetadataNode rationals = new IIOMetadataNode("TIFFRationals");
rationals.appendChild(rational);

// Append RATIONALS node to field node.
field.appendChild(rationals);

return field;
}

/**
* Set DPI using API.
*/
private static IIOMetadata setDPIViaAPI(IIOMetadata imageMetadata)
throws IIOInvalidTreeException {
// Derive the TIFFDirectory from the metadata.
TIFFDirectory dir = TIFFDirectory.createFromMetadata(imageMetadata);

// Get {X,Y}Resolution tags.
BaselineTIFFTagSet base = BaselineTIFFTagSet.getInstance();
TIFFTag tagXRes = base.getTag(BaselineTIFFTagSet.TAG_X_RESOLUTION);
TIFFTag tagYRes = base.getTag(BaselineTIFFTagSet.TAG_Y_RESOLUTION);

// Create {X,Y}Resolution fields.
TIFFField fieldXRes = new TIFFField(tagXRes, TIFFTag.TIFF_RATIONAL,
1, new long[][] {{DPI_X, 1}});
TIFFField fieldYRes = new TIFFField(tagYRes, TIFFTag.TIFF_RATIONAL,
1, new long[][] {{DPI_Y, 1}});

// Append {X,Y}Resolution fields to directory.
dir.addTIFFField(fieldXRes);
dir.addTIFFField(fieldYRes);

// Convert to metadata object and return.
return dir.getAsMetadata();
}
}

Tiff G4 conversion

BufferedImage outputImage = new BufferedImage(ire.getWidth(null), ire.getHeight(null), BufferedImage.TYPE_BYTE_BINARY);
outputImage.createGraphics().drawImage(ire, 0, 0, null);

TIFFEncodeParam param = new TIFFEncodeParam();
param.setCompression(TIFFEncodeParam.COMPRESSION_GROUP4);

FileOutputStream stream = new FileOutputStream(new File(path));

TIFFImageEncoder encoder = (TIFFImageEncoder) TIFFCodec.createImageEncoder("tiff", stream, param);
encoder.encode(outputImage);




//=====================================
ImageOutputStream out = ImageIO.createImageOutputStream(new File("c:\\temp\\ggg.tif"));

ImageWriter writer = ImageIO.getImageWritersByFormatName("tiff").next();

ImageWriteParam param2 = writer.getDefaultWriteParam();
param2.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
param2.setCompressionType("CCITT T.4");

writer.setOutput(out);
writer.write(null,new IIOImage(ImageIO.read(new File(path)),null,null), param2);

writer.dispose();
out.close();
//=====================================

jpeg2000 conversion

< %@ page language="java" contentType="image/jpeg" pageEncoding="UTF-8"%>

< %@page import!="java.awt.Image"%>
< %@page import!="java.awt.image.BufferedImage"%>
< %@page import!="java.io.File"%>

< %@page import!="javax.imageio.ImageIO"%>
< %@page import!="java.applet!.Applet!"%>
< %@page import!="java.awt.Button"%>
< %@page import!="java.awt.Graphics"%>
< %@page import!="java.awt.Image"%>
< %@page import!="java.awt.Rectangle"%>
< %@page import!="java.awt.TextArea"%>
< %@page import!="java.awt.event.ActionEvent"%>
< %@page import!="java.awt.event.ActionListener"%>
< %@page import!="java.awt.image.BufferedImage"%>
< %@page import!="java.awt.image.RenderedImage"%>
< %@page import!="java.io.DataInputStream"%>
< %@page import!="java.io.DataOutputStream"%>
< %@page import!="java.io.File"%>
< %@page import!="java.io.FileOutputStream"%>
< %@page import!="java.io.IOException"%>
< %@page import!="java.net.Socket"%>
< %@page import!="java.net.URL"%>

< %@page import!="javax.imageio.ImageIO"%>
< %@page import!="javax.imageio.ImageReader"%>
< %@page import!="javax.imageio.stream.ImageInputStream"%>
< %@page import!="javax.media.jai.JAI"%>
< %@page import!="javax.media.jai.ParameterBlockJAI"%>
< %@page import!="javax.media.jai.PlanarImage"%>

< %@page import!="com.sun.media.imageio.plugins.jpeg2000.J2KImageReadParam"%>

< % String jp2Path = "C:\\Temp\\temp\\154511004210f.jp2"; String jpgPath = "C:\\Temp\\temp\\154511004210f.jpg"; BufferedImage bi = null; try { bi = decode(jp2Path, jpgPath, "JPEG"); } catch (Exception e) { bi = ImageIO.read(new File("C:\\Temp\\noimage.jpg")); } response.setContentType("image/jpeg"); ImageIO.write(bi, "JPEG", response.getOutputStream()); %>

< %! public static BufferedImage decode(String source, String target, String encode) throws IOException { ImageInputStream in = ImageIO.createImageInputStream(new File(source)); ImageReader reader = ImageIO.getImageReaders(in).next(); reader.setInput(in); boolean workaround = true; J2KImageReadParam param = new J2KImageReadParam(); if (workaround) param.setResolution(5); // param.setSourceRegion(new Rectangle(0,0,reader.getWidth(0),reader.getHeight(0))); System.out.println("*******************************************************1"); BufferedImage image = reader.read(0, param); System.out.println("*******************************************************2"); FileOutputStream stream = new FileOutputStream(target); System.out.println("*******************************************************3"); JAI.create("encode", image, stream, encode, null); stream.flush(); stream.close(); return image; } public static void resize(String src, String target, int width, int height) throws IOException { BufferedImage biSrc = javax.imageio.ImageIO.read(new File(src)); if ( width < 1 && height < 1 ) { width = biSrc.getWidth(); height = biSrc.getHeight(); } else if ( width < 1 ) { width = (int)( (height / (float)biSrc.getHeight()) * biSrc.getWidth()); } else if ( height < 1 ) { height = (int)( (width / (float)biSrc.getWidth()) * biSrc.getHeight()) ; } Image targetImage = biSrc.getScaledInstance(width, height, Image.SCALE_SMOOTH); BufferedImage biTarget = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); biTarget.createGraphics().drawImage(targetImage, 0, 0, null); FileOutputStream fos = new FileOutputStream(target); ImageIO.write(biTarget, "JPEG", fos); fos.close(); } %>

java trayicon

import java.awt.AWTException;
import java.awt.Image;
import java.awt.MenuItem;
import java.awt.PopupMenu;
import java.awt.SystemTray;
import java.awt.Toolkit;
import java.awt.TrayIcon;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;


public class TrayTest
{

private TrayIcon trayIcon;

public TrayTest()
{

if (SystemTray.isSupported()) {

Image image = Toolkit.getDefaultToolkit().getImage("c:/temp/0.jpg");

PopupMenu popup = new PopupMenu();
MenuItem defaultItem = new MenuItem("Exit");
defaultItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
popup.add(defaultItem);

trayIcon = new TrayIcon(image, "notepad", popup);
trayIcon.setImageAutoSize(true);
trayIcon.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
Runtime.getRuntime().exec("notepad.exe");
} catch (IOException e1) {
trayIcon.displayMessage("Action Event",
"notepad is not found !",
TrayIcon.MessageType.INFO);
}
}
});

try {
SystemTray.getSystemTray().add(trayIcon);
} catch (AWTException e1) {
e1.printStackTrace();
}


} else {
System.err.println("System tray is currently not supported.");
}
}

public static void main(String[] args) throws Exception
{
new TrayTest();
}

}

applet tag

< applet! codebase = "../WEB-INF/classes/" code="ch.sample.worker.AppTest.class" archive="AppTest.jar" width=800 height="600">

signed applet

"C:\Program Files\Java\jdk1.6.0_13\bin\jar" cvf AppTest.jar ch/sample/worker/AppTest.class ch/sample/worker/ViewerClient.class

"C:\Program Files\Java\jdk1.6.0_13\bin\keytool" -keystore C:\temp\.keystore -genkey -dname "cn=test,ou=test o=test, c=KR" -alias TestSign -keypass 123456 -storepass 123456

"C:\Program Files\Java\jdk1.6.0_13\bin\jarsigner" -keystore C:\temp\.keystore -storepass 123456 -keypass 123456 AppTest.jar TestSign

java image resize

public static BufferedImage resizeImage(BufferedImage image, int width, int height) {


float w = new Float(width) ;
float h = new Float(height) ;

if ( w <= 0 && h <= 0 ) {
w = image.getWidth();
h = image.getHeight();
} else if ( w <= 0 ) {
w = image.getWidth() * ( h / image.getHeight() );
} else if ( h <= 0 ) {
h = image.getHeight() * ( w / image.getWidth() );
}

int wi = (int) w;
int he = (int) h;

BufferedImage resizedImage = new BufferedImage(wi,he,BufferedImage.TYPE_INT_RGB);

resizedImage.getGraphics().drawImage(
image.getScaledInstance(wi,he,Image.SCALE_AREA_AVERAGING),
0,0,wi,he,null
);

return resizedImage;

}

Html page to image file

import java.awt.Color;
import java.awt.Container;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Insets;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.net.URL;

import javax.imageio.ImageIO;
import javax.swing.JEditorPane;
import javax.swing.SwingUtilities;
import javax.swing.text.Document;
import javax.swing.text.html.HTMLDocument;
import javax.swing.text.html.HTMLEditorKit;

import com.lowagie.text.FontFactory;
import com.lowagie.text.pdf.BaseFont;

public abstract class WebImage
{
static class Kit extends HTMLEditorKit
{
public Document createDefaultDocument() {
HTMLDocument doc = (HTMLDocument) super.createDefaultDocument();
doc.setTokenThreshold(Integer.MAX_VALUE);
doc.setAsynchronousLoadPriority(-1);

return doc;
}
}

public static BufferedImage create(String src, int width, int height) {

BufferedImage image = null;
JEditorPane pane = new JEditorPane();
Kit kit = new Kit();
pane.setEditorKit(kit);
pane.setEditable(false);
pane.setMargin(new Insets(0,20,0,20));
pane.setContentType("text/html; charset=UTF-8");
//pane.setFont(new Font("serif",Font.BOLD,20));

try {

System.out.println("-------------"+pane.getFont().getFamily());
System.out.println("-------------"+pane.getFont().getFontName());

pane.setPage(new URL(src));

System.out.println("-----------------------");
System.out.println(pane.getText());
System.out.println("-----------------------");

image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics g = image.createGraphics();
Container c = new Container();
SwingUtilities.paintComponent(g, pane, c, 0, 0, width, height);
g.dispose();
} catch (Exception e) {
System.out.println(e);
}

return image;
}

public static void main ( String [] args ) {


// TODO Auto-generated method stub
//Call the Web page and convert to Image
BufferedImage ire;
String url="file:///C:\\temp\\test.html";
String path="c:\\temp\\tmp.jpg";
ire = WebImage.create(url, 800, 800);
//You can convert the BufferedImage to
//any format that you wish, jpg I thought was the best format
try{
ImageIO.write(ire, "PNG", new File(path));
System.out.println("complete");
}catch(IOException e){
e.printStackTrace();
}catch(NullPointerException e){
e.printStackTrace();
}catch(IllegalArgumentException e){
e.printStackTrace();
}
}



}

log4j.properties sample

log4j.rootLogger = DEBUG, stdout



log4j.logger.ViewerServer=DEBUG, viewer
log4j.logger.ImageServer=DEBUG, image
log4j.logger.ScanServer=DEBUG, scan
log4j.logger.EaiServer=DEBUG, eai



log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%m%n



log4j.appender.dailyfile.Threshold = DEBUG
log4j.appender.dailyfile = org.apache.log4j.DailyRollingFileAppender
log4j.appender.dailyfile.File = log/demon.log
log4j.appender.dailyfile.layout = org.apache.log4j.PatternLayout
log4j.appender.dailyfile.layout.ConversionPattern=%5p ({%t} %F[%M]:%L) [%d] - %m%n



log4j.appender.viewer.Threshold = DEBUG
log4j.appender.viewer = org.apache.log4j.DailyRollingFileAppender
log4j.appender.viewer.File = log/demon1.log
log4j.appender.viewer.layout = org.apache.log4j.PatternLayout
log4j.appender.viewer.layout.ConversionPattern=%5p ({%t} %F[%M]:%L) [%d] - %m%n



log4j.appender.image.Threshold = DEBUG
log4j.appender.image = org.apache.log4j.DailyRollingFileAppender
log4j.appender.image.File = log/demon2.log
log4j.appender.image.layout = org.apache.log4j.PatternLayout
log4j.appender.image.layout.ConversionPattern=%5p ({%t} %F[%M]:%L) [%d] - %m%n



log4j.appender.scan.Threshold = DEBUG
log4j.appender.scan = org.apache.log4j.DailyRollingFileAppender
log4j.appender.scan.File = log/demon3.log
log4j.appender.scan.layout = org.apache.log4j.PatternLayout
log4j.appender.scan.layout.ConversionPattern=%5p ({%t} %F[%M]:%L) [%d] - %m%n



log4j.appender.eai.Threshold = DEBUG
log4j.appender.eai = org.apache.log4j.DailyRollingFileAppender
log4j.appender.eai.File = log/demon4.log
log4j.appender.eai.layout = org.apache.log4j.PatternLayout
log4j.appender.eai.layout.ConversionPattern=%5p ({%t} %F[%M]:%L) [%d] - %m%n

shell script for deleting logfile

1. create shell script

#!/bin/ksh
find /logs/log -type f -ctime +2 | xargs -i rm -f {} >/dev/null 2>&1


2. regist crontab

59 23 * * * /var/spool/cron/log_backup.sh >/dev/null 2>&1

Runtime.getRuntime

String [] _cmd1 = { "/bin/sh","-c","pax -r -s ',^,"+destDir+",' -f " + tarFileName };

//String [] _cmd1 = { "cmd","/c","pax -r -s ',^,"+destDir+",' -f " + tarFileName };

String cmd1 = execCommand ( _cmd1 );



public String execCommand(String [] cmd) throws IOException , InterruptedException {

Process p = Runtime.getRuntime().exec(cmd);
p.waitFor();

if (p.exitValue() != 0) {
BufferedReader err = new BufferedReader (new InputStreamReader(p.getErrorStream()));
while (err.ready())
log.info("ERR" + err.readLine());
err.close();
} else {
BufferedReader out = new BufferedReader(new InputStreamReader(p.getInputStream()));
while (out.ready())
log.info("OK" + out.readLine());
out.close();
}

p.destroy();


return "";
}

changing directory when decompressing tar file

pax -r -s ',^dir to delete,dir to decompress,' -f filename.tar

java Regular Expression

java.util.regex.Pattern p = java.util.regex.Pattern.compile("[ ]+$");
java.util.regex.Matcher m = p.matcher(s);
String r = m.replaceAll("");

Oracle unlock

SELECT A.SID,A.SERIAL# , SUBSTR(C.OBJECT_NAME,1,50)
FROM V$SESSION A, V$LOCK B, DBA_OBJECTS C
WHERE A.SID = B.SID
AND B.ID1 = C.OBJECT_ID
AND B.TYPE='TM';



ALTER SYSTEM KILL SESSION '109,18768'

java scheduler

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import java.util.Properties;
import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.TimeUnit;

import org.apache.log4j.Logger;

public class BatchScheduler {

public ScheduledThreadPoolExecutor sch ;

public BatchScheduler() {
super();
sch = new ScheduledThreadPoolExecutor(2);
}

public void start() throws FileNotFoundException, IOException {

SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd", new Locale("KOREAN", "KOREA"));
String jobDate = formatter.format(new Date());

// from 0 second , interval 10 second
sch.scheduleAtFixedRate(new SendImage(jobDate), 0, 10, TimeUnit.SECONDS);
sch.scheduleAtFixedRate(new DeleteImage(jobDate), 0, 10, TimeUnit.SECONDS);

}

public void stop() {
sch.shutdown();
}

public static void main(String[] args) {
BatchScheduler t = new BatchScheduler();
try {
t.start();
} catch ( Exception e ) {
e.printStackTrace();
}
}

}