한국 임베디드 리눅스 프로젝트 (이하 KELP)에서 세미나를 개최한다고 합니다.


http://kelp.or.kr/korweblog/pages.php?page=03/10/27/3640332

당일 낮에 할 일이 없을듯 보이니... 저는 놀러갈 듯 하군요. ^^;; 밤에는 여행가기로 했고... -ㅅ-
다행히도 세미나가 집 앞(이라기에는 좀 멀지만... ^^;; ) 이니 츄리닝입고 가도 될듯하군요 ㅎㅎ

저작자 표시 비영리 변경 금지
크리에이티브 커먼즈 라이선스
Creative Commons License

설정

트랙백

댓글

 펄을 배우면서 가장 놀라웠던 라이브러리는 GetOpt 라는 라이브러리인데


 이렇게 해주는 것만으로도 커맨드 라인에서 -o -D -I 같은 옵션을 간편하게 조작하는게 가능하기 때문에 말그래도 clp 환경에서의 프로그램 작성을 굉장히 편하게 했다. 당연히 자바에도 비슷한 라이브러리가 있겠지 하는 심정으로 찾아본 것이 이 JSAP이라는 녀석이다. - 솔직히 perl 만큼 간편하지는 않다 -_-;;;

http://www.martiansoftware.com/jsap/


나름 심플하다면 심플하지만... :-)
ps. Java로 만들어진 SMTP 서버를 찾아야 jmail 을 수정할 수 있는데... -_-
저작자 표시
크리에이티브 커먼즈 라이선스
Creative Commons License

설정

트랙백

댓글

 플렉스를 작성하다 보면 이게 웹 프로그래밍인지, 어플리케이션 프로그래밍인지 참 애매한 경계를 느끼게 되는 것 같습니다. 그중에 가장 대표적인 녀석은 초기화 시점이 아닐지 생각해봅니다.

 원래 웹 프로그래밍이라는게 사실 초기화 시점에 대해서 그리 신경써야할 내용은 서버에서 세팅을 할때의 문제이지 프로그래밍 환경이 구축된 다음에 그런 문제를 신경써야하는 경우는 거의 없었는데... 이 녀석 플렉스는 다르군요. 


 위의 예는 제가 임의로 만든 커스텀 모듈을 메모리상에 로드를 시킨후의 메모리 상태입니다. 실제로 부모는 생성이 되어있지만, 아마도 만들어진 오브젝트가 실제로 플렉스 플레이어상에서 보여지기 전에는 객체 생성이 안돼는 모양입니다. 명시적으로 선언한 변수의 경우에는 이미 생성이 되지만, 프레임워크에서 제공하는 컨트롤들이요. (뭔가 강제로 생성되게 할 수 있는 방법이 있을 것 같은데...)

 플렉스로 만들어진 좀 규모가 큰 프로그램을 어디서 못구할지... 원래 이런 언어는 그래도 10만라인은 넘어가는 프로그램을 좀 봐야지 감이 잡히는데... -_-;;

어쨋든 위의 문제는 결국 아래 처럼 임시로 해결을 했습니다.


 이렇게 임시로 해결을 하면 순간적으로 윈도우가 떳다가 사라지기 때문에 화면에 그 못습이 잠깐이지만 보이죠. -_-;; 어떻게 초기화를 할 방법이 없나 했는데, 프레임워크를 따라들어가도 IPopUpManager 의 실제 구현물이 보이지가 않더군요. (FLEX 런타임에 코드가 들어가 있는건지... MFC처럼 -_-)
크리에이티브 커먼즈 라이선스
Creative Commons License

설정

트랙백

댓글

KLDP Mr.DUST 님께서 올리신 자료를 스크랩합니다.

http://kldp.org/node/102947



vi 단축키 참 많지만 실제로 쓰기는 쉽지 않죠. 상당히 잘 정리해놓으셨더라구요.
크리에이티브 커먼즈 라이선스
Creative Commons License

설정

트랙백

댓글

 업무개선안을 하면서 iBatis 라는 SqlMapper 프레임워크를 사용하는데, 이 녀석이 생각보다 다루기가 까다롭더군요. (아마도 제가 다룬지 얼마 안돼서 그렇겠지만...) 어제는 하루 종일 아래와 같은 형태의 쿼리를 어떻게 하면 구성할 수 있을까? 라는 고민을 계속하면서 삽질의 삽질을 계속했습니다.

 iterate 를 이용하면 된다는 것은 이미 manual 을 통해서 봤지만, 이게 다중 파라메터 Query 를 구성할 경우에는 자바 소스에서 어떤식으로 파라메터를 넘겨야하는지를 모르겠더군요.
SELECT
   *
FROM
   ADM.DBCFG
WHERE
   DBNAME = ?
   AND INPUT_DATE IN ( ? , ?, ?, ? )

 아주 단순한 쿼리이지만... -_-; 예제의 어떤 곳에도 파라메터 2개를 넘기는 방식으로 짜놓은게 없었기 때문에 막상 처리하려니 어떻게 넘겨야하나 라는 고민을 했습니다.

 결론은 정말 간단하더군요. -_-;; 

SQL.xml
 <select id="dbm.selectDBCfgByDBNameAndInputDate" parameterClass="java.util.HashMap" resultMap="retmapDBCfgVo">
SELECT
 *
FROM
 ADM.DBCFG
WHERE
 DBNAME = #dbname#
 <iterate property="input_date" prepend ="AND INPUT_DATE IN " open="(" close=")" conjunction="," >
  #input_date[]#
 </iterate>
 </select>

Java.java
 public List<DBCfgVo> getDBCfgList(String dbname, List<String> date) {
  SqlMapClient sqlMapper = SqlMapperMgr.getSqlMapClient(MAPPERTYPE.DBMDB);
  List<DBCfgVo> list = null;
  
  Map<String, Object> map = new HashMap<String, Object>();
  map.put("dbname", dbname);
  map.put("input_date", date);
  
  try {
   list = (List<DBCfgVo>)sqlMapper.queryForList("dbm.selectDBCfgByDBNameAndInputDate",map);
  } catch (SQLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  
  return list;
 }
 이야기의 핵심은 결국 Object 타입으로 HashMap 을 구성해서 던지면 iBatis 가 자동으로 이걸 판단해서 넣는다는 것입니다. 단, 여기에는 전제조건이 반드시 List 타입 변수는 property 라는 xml 어트리뷰트로 명시해야하죠. (저걸 안하니까 에러가... -_-;;)
크리에이티브 커먼즈 라이선스
Creative Commons License

설정

트랙백

댓글

링크) http://jexcelapi.sourceforge.net/
자바로 엑셀 파일을 읽고, 생성하기 위한 라이브러리.



크리에이티브 커먼즈 라이선스
Creative Commons License

설정

트랙백

댓글

출처) http://www.ibm.com/developerworks/kr/library/l-10sysadtips/


크리에이티브 커먼즈 라이선스
Creative Commons License

설정

트랙백

댓글

자바로 엑셀 문서를 다루는 방법에 대한 전반적인 조사와 예시를 문서로 정리합니다.

1. 존재하는 라이브러리
1) JXL
장점 : 대용량 데이터를 입력 속도가 빠름
단점 : 데이터를 엑셀 문서의 형태로 작성시 정상적인 엑셀 문서의 형태를 가지지 않음.

2) POI
장점 : 대용량 데이터의 입력 속도가 느림
단점 : 데이터를 엑셀 문서의 형태로 작성시 정상적인 엑셀 문서의 형태를 가진다. (현업들의 편집이 쉬움)

※ 보통은 데이터의 입력에는 JXL을 엑셀형태의 output 작성에는 POI를 사용한다고 함


크리에이티브 커먼즈 라이선스
Creative Commons License

설정

트랙백

댓글

 간만에 리눅스를 설치하면서 느끼는데 정말로 호환성이나 접근성이 굉장히 좋아졌다고 생각됀다. 이제 Wine 만 깔아주면 우리나라 사람들이 그리도 좋아하는 블리자드의 어지간한 게임들은 대부분 구동이 가능할 것 같다.


 더군다나 윈도우 DiretX 환경에서 게임을 할때보다 조금더 쾌적하게 느껴진다. (좀더 빠르다고 해야하나?) 물론 오픈GL을 사용하는 것으로 바꿔야지만 게임이 실행돼기 때문에 그림자 효과같은 것들이 빠졌기 때문이라고도 예상됀다.

 어쨋건 버철머신으로 윈도우 띄우고 파일받으면서 와우 2개돌리고 동영상 보면서 게임하는데도 할만하다는 건 분명히 쾌적하다고 생각할만 한 것 같다.

 단지 문제가 있는데 wine의 문제인지 한글 입력이 안됀다. -_-;; 해결이 안돼려나. 찾아보니 됀다고 하는 사람도 있고 안됀다는 사람도 있고 천차만별인지라 어떻게 해야할지 모르겠다.

 혹시라고 리눅스에서 와우를 해보고 싶은 분이 있다면 그냥 아래의 과정을 따라해보길 바란다. 

 1. 기본적으로 wine 이 설치돼어야한다. 가능하면 우분투 배포판에서 하길 권장한다.
    만약 우분투라면 aptitude install wine 로 간단히 설치가 가능할 것이다.

 2. 한글 입력 문제를 해결하기 위해서 아래의 파일을 ~/.wine/c_drive/windows/system32 에 복사하고 
    regedit reg_imekr.reg 를 실행한다.





 3. wine 이 제공하는 레지스트리 에디터를 열고 아래의 파일을 임포트한다.

 4. 와우가 존재하는 폴더로 이동해서 wtf/config.wtf 의 최하단에 아래의 문구를 넣는다.
     SET gxApi "opengl"

 5. 와우가 존재하는 폴더에서
     wine Wow.exe -opengl

주의사항은 와우에서 사용하는 단축키가 Gnome 에서 예약된 키인 경우 단축키가 씹히니 주의하시길...;; 많이 테스트 해본후에 레이드로;;
크리에이티브 커먼즈 라이선스
Creative Commons License

설정

트랙백

댓글

대학교 4학년 때 임베디드 수업을 이용해서 VMWare상에서 Bridged Networking 이 돼는 것을 보면서 굉장히 신기해 한적이 있다. 이걸 쓰는 이유는 상황에 따라서 다르겠지만... 뭐 어쨋든 리눅스 상에서 이것을 하는 방법이 필요했기에 자료 찾아보고 한번 설정해봄.


설정은 우분투를 이용했지만, 데비안에서도 그대로 적용 가능할 것이라고 생각함.
(https://help.ubuntu.com/community/VirtualBox 에서 자료 참고)

Networking

To start, NAT is by far the easiest way to get your guests connected to the interweb, but you may want to use the guests as servers. For this you need Host Networking.

Install Necessary Software

You will need to install bridge-utils and uml-utilities so that you can make a tap device and add it to a bridge.

sudo apt-get install bridge-utils uml-utilities

8.04 Hardy

To configure bridging, you basically go through three steps on the host machine. First you need to create a bridge. Next you create virtual interface(s). Then you add a real interface and virtual interface(s) to the bridge. Because of the scripts available on the distribution which take care of all the details, all of this sums up to two steps:

  • declare bridge and real network interface you add to it
  • declare virtual interfaces

Create a permanent bridge by editing /etc/network/interfaces

On the host machine:

$ sudo gedit /etc/network/interfaces
auto eth0
iface eth0 inet manual

auto br0
iface br0 inet dhcp
bridge_ports eth0

# The loopback network interface
auto lo
iface lo inet loopback

"br0" is an arbitrary name. To take the modifications into account, restart the network:

$sudo /etc/init.d/networking restart

From now on, your system will always set up the bridge on boot. Note that this could slow down the boot time a little bit, because of the bridge coming up.

Declare virtual interfaces which will be used by VirtualBox by editing /etc/vbox/interfaces

On the host machine:

$ sudo gedit /etc/vbox/interfaces
# Each line should be of the format :
# <interface name> <user name> [<bridge>]
vbox0 <your user name> br0
vbox1 <your user name> br0
...

"vbox#" is an arbitrary name. You may declare here as many virtual interfaces as you wish, and add it to a bridge.

Later when you will configure the network of your virtual machine you will use the virtual adapter name "vbox#" for host networking. For example if you use the VirtualBox Qt graphical interface, enter "vbox#" in the "Interface Name" field, when choosing "Host interface".

To take the modifications into account, restart the VirtualBox host networking script:

$sudo /etc/init.d/virtualbox-ose restart

The virtual interfaces are now created and added to the bridge.

That's it! Now the different scripts will take care of cleanly create/configure/remove bridges and virtual interfaces when you boot and shut your system down.

Configure networking in VirtualBox

Once you have everything ready, you can start the VirtualBox management interface on the host machine, configure the network of your virtual machine, and by selecting "host networking", enter the name of one of the virtual adapter you have configured. Start your virtual machine, it gets a network card presented, that you can set up as you wish (static IP address, DHCP) using the network configuration tools inside the virtual machine.


대충 위와 같은 과정을 밟아가면 호스트 리눅스에서 게스트 리눅스로 직접 ip를 통해서 접근이 가능해진다.
크리에이티브 커먼즈 라이선스
Creative Commons License

설정

트랙백

댓글

1 2 3 4 5 ... 7