프로젝트 홈피 주소입니다.

잠시 회사 홈피를 살펴보니, 재미있는 회사인듯...
모든 프로젝트들이 Open Source네요.

주로 컴파일 관련된 툴들을 만들고 있네요.
관심 있으신 분들은 PROJECTS 탭을 쭉 살펴보면 될듯 합니다.

제가 오늘 관심있는 부분은 CLI 입니다.
현재 진행하는 프로젝트에서 CLI를 넣어야 하는데,
시간은 없고 해서 잠깐 Open-Source를 찾아보았는데 운좋게 딱 걸렸네요. ^___^

다운받아 잠깐 테스트 해본 결과로는 정말 신기하게 제 구미에 딱 맞습니다.
ㅠ.ㅠ 감격! ㅋㅋ - 이런일 쉽지 않아요~~~!

C++ 비슷한 자체 언어로 CLI 옵션들을 정의하면 C++ Code로 된 자유 자재로 쓸 수 있는
클래스 소스들이 척 하고 나옵니다.

대략
 
사용자 삽입 이미지












이렇게 정의하면...

약간의 수고만으로...
사용자 삽입 이미지

이렇게 쓸 수 있는 CLI C++ 코드가 생성됩니다.

튜터리얼 5분 정도 살펴보고 간단히 실제 해보는 것 만으로 어떻게 사용해야 할지
그림이 그려집니다. 정말 심플하고 깔끔한것 같습니다.

사용자 삽입 이미지

코드 내부를 잠깐 살펴보니 자료형 및 알고리즘으로 stl(standard template library)을
사용하고 생성되는 클래스 자체도 Template 형태로 되어 있어 호환성등 여러가지로
뛰어난것 같습니다.

게다가 라이센스도 MIT 라이센스입니다.
(잠깐 찾아본 결과로는 라이센스 및 저작권을 주요 부분에 표시하는 것만으로 모든 행위에 어떤 제약도 없는듯 합니다.)

^      ^
 ####   쿄쿄 좋아라~~!..

mips 기반의 임베디드 장비에서 돌아가야 하는데,
다행히 C++ cross-compiler에서 가볍게 컴파일 되고, 올려서 실행해 보니 잘도네요.

야호~ 횡재다!.
 

크리에이티브 커먼즈 라이센스
Creative Commons License
2011/01/11 22:30 2011/01/11 22:30
Window XP 32bits 개발 환경에서 컴파일한 .NET 응용 프로그램을 64bits Vista 가 설치된 컴퓨터에서 실행하니 프로그램이 설치된 디렉토리에 해당 DLL이 존재하지만 해당 DLL을 찾을 수 없어 프로그램이 종료되는 문제가 발생하였다. (파일이나 어셈블리 중 하나를 로드할 수 없습니다.)
 
사용자 삽입 이미지

프로그램 구조는 .NET 3.5 에서 돌아가는 WPF 기반의 응용 프로그램에 통신 모듈은 C++/CLI DLL 라이브러리를 사용하는 프로그램 이었다.
이 C++/CLI DLL 라이브러리는 또한 Native로 된 C++ DLL 라이브러리를 사용하고 있었다.

보통 32bits OS에서 위 에러는 해당 CLISocketLib.dll에서 C++ Runtime Library를 사용하는데 해당 버전의 Runtime 라이브러리가 설치되지 않았을 경우 발생했다. 따라서, Runitme Library만 설치해주면 해결되었던 문제 인데, 이번에는 x64용 과 x86용 Runtime Library를 설치하였음에도 불구하고 계속 위 문제가 발생하였다.

결론은 메인 응용 프로그램인 WPF 응용 프로그램은 64bits 모드에서 동작하는데 반해, C++/CLI DLL은 32bits 모드에서 동작하도록 컴파일 되었기 때문이었다.

따라서 결국 최선의 해결책으로 WPF 응용 프로그램이 32bits 호환 모드에서 동작하도록 강제하여 컴파일 하여 배포함으로서 문제를 해결하였다. 

보다 자세한 내용은 아래 링크의 위키페이지에 정리해 두었다.

64bits(x64) Windows OS 에 32bits(x86) 응용 프로그램 배포하기
크리에이티브 커먼즈 라이센스
Creative Commons License
2010/01/12 21:49 2010/01/12 21:49

Eclipse 및 Visual Studio의 Intellisense에 익숙해지면 vim의 강력하고 멋진 기능에도 불구하고,
코드 작성시 무척이나 불편한 것이 사실입니다.

이런 불편을 해소하고자 제가 사용하는 방법을 소개합니다.
Case 1 : NFS(cygwin) + Visual Studio
Case 2 :  NFS(cygwin) + Eclipse + CDT + cygwin build(gdb)
   (Eclipse, CDT 및 cygwin 설치 자세한 방법은 구글링을 통해 찾아보셔야 할듯...)

Case 1의 경우 C, C++의 표준 라이브러리 및 C99의 특별한 keyword  및 문법을 사용하지 않는다면, 별다른 설정 없이도 마음껏 Intellisense의 신속하고 정확함을 느낄 수 있습니다.

Case 2의 경우 Visual Studio 2008 C/C++에서 지원하지 않는 새로운 C99 표준 문법이라든지, Embedded 시스템 개발을 위한 별도의 SDK를 사용하는 경우 해당 SDK를 윈도우에 설치하여 컴파일은 직접 못하더라도 Eclipse의 include 참조 path를 지정해주면 역시 무한한 Intellisense의 자유를 만끽한 수 있습니다.

Case1, 2 모두 NFS를 이용, Putty 같은 리모트 콘솔로 쉘을 띄워 둔다면 바로 수정한 소스는 컴파일하여 결과를 확인할 수 있습니다.

현재 저는 Case 1, 2를 상황에 맞게 적용하여 사용하고 있습니다.
아~~! 치명적인 중독이네요! Intellisense (Eclipse에서 정확한 명칭은 Content Asist 인것 같습니다.)

찾아보니 윈도우용 vim인 gVim의 Intellisense Plug-In이 있군요 : http://iam-hs.com/95 , http://insenvim.sourceforge.net/

C99 : 참고 자료
http://doc.kldp.org/wiki.php/KLDPConf/20031011
http://doc.kldp.org/wiki.php/KLDPConf/20040118

크리에이티브 커먼즈 라이센스
Creative Commons License
2010/01/06 02:34 2010/01/06 02:34
Tags: , ,
Trac Project 생성시 log를 file type으로 trac.log에 기록하도록 기본 지정되도록 수정하고 trac-admin으로 프로젝트를 생성하니 에러가 발생하였다.

Trac 프로젝트 페이지에서 이와 관련된 Ticket(http://trac.edgewall.org/ticket/2498)을 발견하였고 최종적으로 v 0.10.4에 적용된 Changeset(http://trac.edgewall.org/changeset/3277)도 확인하였다.

그러나 변경된 것도 위와 같은 조건에서 여전히 같은 에러를 야기시켰다.
원인은 새로 프로젝트를 생성하는 경우 기본 구조가 되는 디렉토리들을 생성하기 전에 log 파일이 존제하는지 확인하는 과정에서 발생하였다. 그래서 문제가 발생하지 않도록 소스를 수정하였다. 그리고 자료를 남기기 위해 오랜만에 diff를 활용 pacth 파일도 만들어 보았다.

사용자 삽입 이미지
크리에이티브 커먼즈 라이센스
Creative Commons License
2008/01/01 04:50 2008/01/01 04:50
Tags:
Google Code Pretty 프로젝트의 prettify.js 파일을 분석하다. 뇌가 폭발해 버렸다.

변태 자바스크립트 소스파일 - 필요없는 공백(개행포함)문자가 제거된 엽기적 한줄짜리 소스
어떤 놈이 이딴걸 생각해 냈는지... 참...
 
http://mygony.com/archives/886
 (BTCode)
http://www.phpclasses.org/browse/package/3158.html (PHP Javascript Compressor Class)
http://www.crockford.com/javascript/jsmin.html (The JavaScript Minifier)
MemTronic's FREEWARE HTML/JavaScript Cruncher-Compressor v1.0k
http://hometown.aol.de/_ht_a/memtronic/MemTronic_CruncherCompressor.html
http://javascriptcompressor.com/ (javascript compressor)

등등

Ajax 때문에 수많은 javascript 파일을 어떻게 압축해야 할지가 성능 이슈가 되고 있다고 한다. 그래서 수 많은 Compressor 들이 등장하고 있다.

Javascript Compress and Minify Skill - 1

압축을 풀어주는 것은 없나? 긴 함수이름을 짧은문자로 변형해 버리니 원본 복원은 안되더라더 적어도 띄워 쓰기 및 줄바꿈 정도만 어떻게라도

ㅠ.ㅠ 이거 소스 분석 최악이다. 정말 울고 싶당!
크리에이티브 커먼즈 라이센스
Creative Commons License
2007/12/28 02:14 2007/12/28 02:14