file io performance
Buffer로 받고, Buffer 사이즈가 한번에 정확하게 정해져 있다면 유리하다.
try {
FileInputStream fis = new FileInputStream(fileName);
int len = (int) (new File(fileName).length());
byte buf[] = new byte[len];
fis.read(buf);
fis.close();
int cnt = 0;
for (int i = 0; i < len; i++) {
if (buf[i] == '\n')
cnt++;
}
} catch (IOException e) {
System.err.println(e);
}
by 앙탈늑대 | 2012/01/21 11:45 | java | 트랙백 | 덧글(0)
android 개발 환경
--android sdk 설치
http://developer.android.com/sdk/index.html

JDK의 설치와 마찬가지로 위의 링크를 타고 자신의 운영체제에 맞춰서 다운을 받는다.
필자는 Windows의 zip형식 파일을 받았다.
이번엔 zip형식이니만큼 자신이 편한 위치에 압축을 풀어놓는다.

--개발 하고 싶은 API 를 선택해서 SDK manager에서 선택 후 설치

--환경변수 셋팅
export ANDROID_HOME=/opt/android-sdk-linux


--Android  플러그인 설치
https
://dl-ssl.google.com/android/eclipse/


--maven setting
<pluginGroups>
  <pluginGroup>com.jayway.maven.plugins.android.generation2</pluginGroup>
</pluginGroups>




--pom.xml 예제
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.wakaleo.training.android.qotd</groupId>
  <artifactId>QuoteOfTheDay</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>apk</packaging>
  <name>QuoteOfTheDay</name>
  <dependencies>
    <dependency>
      <groupId>com.google.android</groupId>
      <artifactId>android</artifactId>
      <version>2.2.1</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>com.google.android</groupId>
      <artifactId>android-test</artifactId>
      <version>2.2.1</version>
      <scope>provided</scope>
    </dependency>

    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.8.2</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.hamcrest</groupId>
      <artifactId>hamcrest-all</artifactId>
      <version>1.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.mockito</groupId>
      <artifactId>mockito-all</artifactId>
      <version>1.8.5</version>
      <scope>test</scope>
    </dependency>

  </dependencies>
  <build>
    <sourceDirectory>src</sourceDirectory>
    <testSourceDirectory>test</testSourceDirectory>
    <plugins>
      <plugin>
        <groupId>com.jayway.maven.plugins.android.generation2</groupId>
        <artifactId>maven-android-plugin</artifactId>
        <version>2.6.0</version>
        <configuration>
          <sdk>
            <platform>8</platform>
          </sdk>
          <emulator>
            <avd>em22</avd>
          </emulator>
          <deleteConflictingFiles>true</deleteConflictingFiles>
          <undeployBeforeDeploy>true</undeployBeforeDeploy>
        </configuration>
        <extensions>true</extensions>
      </plugin>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>2.3.2</version>
      </plugin>
    </plugins>
  </build>
</project>
by 앙탈늑대 | 2012/01/14 22:46 | java | 트랙백 | 덧글(0)
aes key값 셋팅

Unsupported keysize or algorithm parameters

or

Illegal key size or default parameters

 

 

AES 암호화 중 키 값의 크기는 16Byte 이기 때문에

24, 32 Byte을 사용할 경우에 발생

 

해결]

 

jce_policy  패치를  해당 버전에 맞게 해주면 된다.

local_policy.jar  와 US_export_policy.jar 를

Java \ jre \ lib \ security  밑의 기존파일을 교체

 

 

 

다운로드 :

v6 : http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html

   - java cryptography extension (jce) unlimited strength jurisdiction policy files 6

 

v5 : http://www.oracle.com/technetwork/java/javase/downloads/index-jdk5-jsp-142662.html

    -  Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 5.0

 

v4 : http://java.sun.com/products/archive/jce/1.4.2/index.html

by 앙탈늑대 | 2012/01/05 16:18 | java | 트랙백 | 덧글(0)
object crc 구하기
// Object는 Serializable 해야 함

public static long getCRC32Value(Object obj) {
Checksum crc = new CRC32();

try {

ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutput out = new ObjectOutputStream(bos);
out.writeObject(obj);
byte[] messageVOBytes = bos.toByteArray();
ByteArrayInputStream bis = new ByteArrayInputStream(messageVOBytes);
// //////////////////////////////////////////////////////////////////////////////
BufferedInputStream in = new BufferedInputStream(bis);
byte buffer[] = new byte[32768];
int length = 0;

while ((length = in.read(buffer)) >= 0)
crc.update(buffer, 0, length);

in.close();
// //////////////////////////////////////////////////////////////////////////////
} catch (IOException e) {
System.err.println(e);
System.exit(2);
}
return crc.getValue();
}
by 앙탈늑대 | 2012/01/03 15:58 | java | 트랙백 | 덧글(0)
apache el option
Add -Dorg.apache.el.parser.SKIP_IDENTIFIER_CHECK=true to the VM arguments as shown below. (Or you can change catalina.properties under CATALINA_HOME/conf directory and add "org.apache.el.parser.SKIP_IDENTIFIER_CHECK=true" at the end of this file.)
by 앙탈늑대 | 2011/12/24 21:24 | 넋두리 | 트랙백 | 덧글(0)
scjp 1.5 dump
dump 자료들 근데 뭐 똑같이 나온는게 50프로 좀 넘는다고 하니 뭐....ㅋscjp1.5.zip
by 앙탈늑대 | 2009/01/28 21:49 | java | 트랙백 | 덧글(0)
화면 UI 네트워크 구성 대안1

<HTML xmlns:v="urn:schemas-micorsoft-com:vml">

<?IMPORT namespace="v" implementation="#default#VML" ?> 

<style>
 .lengthVertexInfo {
  position: absolute;
  background-color: white;
  border : 1px solid #BFBFBF;
  font-size: 11px;
  color: #333333;
  padding: 2px;
 }

 .lengthInfo{
  position: absolute;
  background-color: white;
  border : 2px solid red;
  font-size: 11px;
  color: #333333;
  padding: 2px;
  width:120px;
 }

 .lengthInfo dt {
  color: #808080;
  display:inline;
  width:40px;
 }
 .lengthInfo dd {
  color: #333333;
  display:inline;
  width:70px;
  margin:0;
 }

 .ph_3_2 {
  letter-spacing : 1em;
 }
</style>

<BODY style="margin:10px; padding:10px">
 
 <div style="width:600px; height:600px; position:relative; border: 1px solid silver;">

  <v:polyline style="position:absolute;" points="10px,10px 100px,100px 200px,100px, 300px,0px" strokeweight="2" strokeColor="red">
   <v:stroke opacity="50%"/>
   <v:fill on="false"/>
  </v:polyline>

  <v:oval strokecolor="red" strokeweight="2" style="position:absolute; left:5px; top:5px; width:10px; height:10px">
   <v:stroke opacity="50%"/>
  </v:oval>
  <v:oval strokecolor="red" strokeweight="2" style="position:absolute; left:95px; top:95px; width:10px; height:10px">
   <v:stroke opacity="50%"/>
  </v:oval>
  <v:oval strokecolor="red" strokeweight="2" style="position:absolute; left:195px; top:95px; width:10px; height:10px">
   <v:stroke opacity="50%"/>
  </v:oval>
  <v:oval strokecolor="red" strokeweight="2" style="position:absolute; left:295px; top:-5px; width:10px; height:10px">
   <v:stroke opacity="50%"/>
  </v:oval>

  <span class="lengthVertexInfo" style="left:10px; top:10px;">시작</span>
  <span class="lengthVertexInfo" style="left:100px; top:100px;">100m</span>
  <span class="lengthVertexInfo" style="left:200px; top:100px;">200m</span>

  <dl class="lengthInfo" style="left:300px; top:0px;">
   <dt>총거리</dt><dd>7.80km</dd>
   <dt class="ph_3_2">도보</dt><dd>약 2시간 57분</dd>
   <dt>자전거</dt><dd>약 29분</dd>
  </dl>

 </div>
</BODY>
</HTML>

 

by 앙탈늑대 | 2008/12/05 09:30 | Etc | 트랙백 | 덧글(0)
cvs 계정 추가...

set cvsroot=:sspi:ip:경로

cvs passwd -r 계정명 -a 알리어스계정명

-r 은 real
-a 는 alias

한계정으로 여러사용자 설정 가능하다.

이모양의 여러 사용자 계정은 조속히 바뀌어야 할 듯....ㅡ.ㅡ;;
by 앙탈늑대 | 2008/12/02 16:29 | Tip | 트랙백 | 덧글(0)
java memory 관리.....
개발하다 보면 종종 heap space memory부족과, permsize memory 에러를 만나게 된다.

perm memory 영역은 특정 객체를 런타임시 만났을때, 클래스의 사본이 상위 was나, jvm에서 선언되지 않을경우 사본을 새로 생성하여, perm memory에 올리게 된다.
이렇게 많은 객체를 사용하게 될때 , perm momory 부족이 일어난다.

heap space는 객체의 instance가 저장되는 공간이다.
많은 객체 선언시 발생할 수 있게 된다.

eclipse에서는 eclipse.ini설정을 조절하여 메모리를 조금은 늘릴 수 있다.

-showsplash org.eclipse.platform --launcher.XXMaxPermSize 256M -vmargs -Dosgi.requiredJavaVersion=1.5 -Xms40m -Xmx1024m   

앞에부분이 perm사이즈고 뒤의 부분이 heap사이즈이다.

Tip.이클립스 실행시 eclipse.ini의 설정값에 구분자를 제대로 인식하지 못해서,
실행되지 않을경우가 있다. 구분자를 지우고, 스페이스 값 같은걸로 대체하면 실행될 경우가 있다.
by 앙탈늑대 | 2008/12/01 15:47 | java | 트랙백 | 덧글(0)
누리꾼 대부분이 인터넷익스플로러(IE)만 쓰는 곳을 인터넷 강국이라 할 수 있나?”


마이크로소프트(MS) IE에 종속된 우리나라 웹 환경에 대해 웹표준을 수용할 것을 촉구하는 목소리가 쏟아지고 있다. 이런 가운데 노르웨이 웹브라우저 업체 오페라 CEO가 "MS 액티브X를 고수하면 한국은 웹표준에서 밀릴 수 밖에 없다"고 다시 한번 경고했다.


◇사진설명 : 욘 폰 테츠너 오페라 CEO
24일 방한한 오페라 소프트웨어의 욘 폰 테츠너 CEO는 "한국 기업들과 액티브X 의존도를 줄일 수 있는 방안을 종종 논의하고 있지만 구체적인 해결 방안을 찾기가 힘들 정도"라며 안타까움을 강하게 토로했다. 그에 따르면 인터넷익스플로러(IE) 이외에 액티브X를 지원하지 않는 브라우저 점유율이 5% 미만인 한국 시장이 평소 연구 대상이라고 한다.

지난 6월 방한한 미셀 베이커 모질라재단 회장도 테츠너 CEO와 비슷한 지적을 했다. 베이커 회장은 한국이 지금의 문제를 개선하지 못하면 앞으로 인터넷 세계에서 입지가 크게 약화될 것이라며 거듭 개선을 촉구했다.

■ 액티브X 고수하면 웹표준서 밀린다
그렇다면 왜 이들은 한국에 ‘탈 액티브X’를 요구하는 것일까. 물론, IE에 맞서 자기네 브라우저 입지를 강화하기 위함도 있지만 더 중요한 이유가 있다. 액티브X중심주의로는 ‘웹표준’이라는 세계 기류에 동참할 수 없기 때문이다.

현재 세계 인터넷 업계는 월드와이드웹 컨소시엄(W3C)이라는 단체를 만들어 웹표준 전략을 짜고 있다. 오페라와 모질라는 물론, MS도 여기에 적극 참여하고 있는 상황.


◇사진설명 : 미셀 베이커 모질라재단 회장
이들이 말하는 웹표준이란 어떤 웹페이지라도 다양한 브라우저로 제약 없이 사용할 수 있는 인터넷 세계를 말한다. 액티브X 없이는 인터넷 사용에 제약이 있는 한국 금융 사이트들과는 반대 개념이라 할 수 있다.

문제는 W3C가 웹표준을 만들면서 전 세계 사용자들의 의견을 반영하는데, 한국이 여기 끼지 못하고 있다는 것이다. 누리꾼 대부분이 IE만 사용하니 다양한 의견이 전달될 리가 없다.

베이커 회장은 “한국에서는 나올 수 있는 의견 범위에 한계가 분명 있다”며 “모질라가 파이어폭스를 만들 때만 해도 한국 사용자의 의견은 거의 들려오지 않았다”고 지적했다.

이렇게 완성된 웹표준은 분명 한국과는 거리가 있게 마련이다. 세계 누리꾼들은 표준을 따르지 않는 한국 사이트에 대한 접속을 꺼릴 공산도 크다. 한국 인터넷은 말 그대로 ‘외딴 섬’이 되는 것이다.

게다가 믿고 있던 MS가 웹표준에 동참하면서 액티브X 기능을 줄여가는 것도 큰 문제다. 당장 IE8에서 MS가 액티브X를 줄이겠다고 하자 국내 금융권은 난리가 났다. 테스트 결과 주요 사이트 화면이 깨지거나 액티브X를 통한 파일 다운로드가 불가능했기 때문이다.

결국 금융감독원은 지난 8월 MS와 접촉해 IE8과의 조율작업을 마무리하고 한숨 돌리는 중이다. 이에 대해 누리꾼들은 ‘IE 한국 특별판’이 생겼다는 자조 섞인 목소리를 내고 있다.

베이커 회장은 “한국에서 누리꾼들만큼은 액티브X에서 벗어나기 원하는 것을 잘 알고 있다”며 "이를 위해 국가와 기업들의 결단이 필요하다”고 말했다.

■ 모바일서는 액티브X 안통해
이같은 문제는 ‘모바일웹’서도 이어지고 있다. 모바일에서는 이제까지 나온 어떤 브라우저나 운영체제(OS)에서도 액티브X를 지원하지 않는다. MS ‘윈도 모바일’도 마찬가지다. 곧, 은행권처럼 액티브X가 필요한 주요 사이트는 모바일로 이용할 수 없다는 얘기다. 나름 인터넷 강국이라는 한국에서 모바일웹에 대한 관심이 적은 이유도 이와 무관치 않다.

인프라웨어 김경남 전무는 “한국이 액티브X 문제를 조속히 해결하지 않으면 모바일웹 기류에서 한국은 변방으로 물러날 것”이라고 경고했다.

테츠너 오페라소프트웨어 CEO도 “앞으로 인터넷의 주 무대는 데스크탑에서 모바일로 옮겨 올 것이 분명하지만 한국은 준비를 못하고 있다”며 “좋은 모바일 기기를 만드는 것 이상으로 웹표준에 대한 대책이 중요함을 인식해야 한다”고 강조했다.

다행히도 다음커뮤니케이션과 NHN, 그리고 SK텔레콤·KTF·LG텔레콤 등이 공동으로 액티브X 없이 금융거래를 가능케 하는 ‘모바일 OK’란 기술을 만드는 긍정적인 움직임도 일고 있다.

김경남 전무는 “모바일웹은 액티브X가 필요 없도록 처음부터 강력한 조치를 취해야 한다”며 “국내 인터넷 업계가 이 문제 해결을 위해 계속 힘을 모아갈 것이다”고 전했다.


--->>> ActiveX를 대체해주는 서비스업도 꽤 괜찮지 않을까?
by 앙탈늑대 | 2008/11/25 17:16 | IT뉴스 | 트랙백 | 덧글(0)
< 이전페이지 다음페이지 >
rss

skin by 이글루스