CYGWIN 백엔드 추가한 dPuTTY입니다.

학교를 졸업하고 나니 변변한 리눅스 서버 하나 없어서 PuTTY와는 인연을 끊고 살았습니다;;

그런데 가끔 대용량 텍스트파일처리나 간단한 스크립트 만들때 요긴하게 cygwin을 사용했습니다만 기본으로 제공하는 명령행 프롬프트나 rxvt는 너무 빈약한 인터페이스로 인해 좌절중이었던 찰라에..혹시 이런 백엔드는 없을까 검색해보니;; 역시나 있었습니다(이런 변태오야지들;;)
그리고 업무 특성상 serial 백엔드도 필요했는데 이전에는 메인스트림에 serial백엔드가 반영이 안되어있었는데 요즘은 반영이 되어 있어서 다행히 머지 시간이 줄어들었;;

이 프로그램의 기본인 dPuTTYdaybreaker님이 iPuTTY프로젝트의 온더스팟등 한글 패치 + PuTTY Tray + 한/영폰트 분리등의 기능이 있는 포크버전입니다.

저는 단지 cygwin백엔드를 추출해다가 머지했을 뿐이고~ 모든 노력은 dPuTTY프로젝트의 데이브뤡님이나 iPuTTY프로젝트의 아키님, 특히나 cygwin백엔드를 만든 이름 모를 medgar123님 덕분입니다.;;

시간만 있다면 UI프론트엔드를 완전히 갈아엎고 싶은데..;; 머지하는 시간 30분도 아침에 30분 일찍 일어나서 회사와서 했다는;;
너무 바빠효;;

cthelper.exe와 putty.exe를 같은 폴더에 넣어두시면 알아서 cygwin백엔드가 먹습니다.

소스코드는 별거 없는데(정말 머지가 다라;;);; 올릴 장소가 마련되면 diff만 뜨던지 아니면 걍 통 압축하던지 해서 올리겠습니다;;

PuTTY.zip

dPuTTY의 문제로 UTF-8터미널이 아니면 한글 입력이 불가능합니다;;
cygwin을 utf-8로 돌리도록 하는 패치를 해야합니다..;; 아래의 패치를 cygwin/bin에 덮어주시면 해결;;
한글 설정은 뭐 알아서들 잘 하시리라;;

cygwin-utf8.zip

PS. 하악..여보 사랑해~(결국은 크리스마스 염장;;)

by rapzzard | 2008/12/24 11:27 | 개발 :: 삽질 | 트랙백 | 덧글(4)

제1회 한국 첨비 개발자 모임에 다녀왔습니다..

오늘 분당까지 갔다왔는데..참 멀더군요..-_-;;
왕복시간이면 거짓말 쬐끔 보태면 부산에 내려갈 시간정도는 되는 듯합니다;;
결국 회의후에 절대다수(?)의 지지로 거의 신촌이 주 활동 무대가 될 듯합니다..(누구맘대로?)

처음 했던 우려와는 달리 일단 피보텍에서 이번 모임에서 이윤 창출이나 제약사항(개발과제나 일정)이 없다고 하셔서 다행입니다..
이점에 있어서는 피보텍이 이윤을 추구하는 기업으로써 힘든 결정을 한 것같습니다..
회사는 엄청 크고..4층을 다 쓰던;; 연구소장님과 다희씨가 신경을 많이 써주셔서 즐거웠습니다..

다만 아쉬운 점이 있다면, 시료가 1개도 확보가 안된 상태라 오늘 보지 못했다는 것과 시료 수급이 원활하지 않을 것같다는겁니다..
아마 이 문제는 다희씨가 해결을 해주실 걸로 믿습니다..아멘!

저는 이벤트 넣고 매일 매일 뭘만들지를 고민하며;; 첨비 커뮤니티와 openyours를 계속 순회했었는데;;
어째튼 그것 때문에 거의 저만 오덕후삘을 확확 풍겨서..모임의 장이 되버리는 불상사가;;(원래 아겔옹으로 확정된 상태였는데 흙흙..)
음..jachin옹은 이점때문에 조용히 계셨다고 실토하셨습니다..(고로 jachin옹도 오덕후!)
제가 정치적(?)으로 잘 하질 못 하기때문에 아마 뭔가 혼선이 많을 것으로 사료됩니다..(자자..불만 있으신 분은 jachin옹을 추천부탁..;;)

제가 오덕후 삘을 풀풀 풍기는 바람에 모임 분위기가 흐트러진건 아닌지..내심 걱정하고 있습니다..-ㅅ-);; ( 저 오덕후 절대 아닙니다!! )

집으로 돌아오면서 jachin옹과 얘기를 했는데 usb호스트가 안된다고 들어서 디버깅을 어떻게 할지 막막합니다..;;
시리얼 하나로는 디버깅할 수가 없어서;; 그렇다고 시리얼을 2개 제공할 것 같지는 않은데 말입니다;;

뭐 jachin옹이 자신있게 에뮬레이터를 만들어주시리라 믿고 있습니다..역시 아멘!

제가 찾아보기로는 softgun을 어느정도 디바이스 스펙정도만 비슷하게 만들고 tslib나 몇개의 라이브러리로 추상화해놓은다면 가능은 할 것같은데..(일단 기본 칩셋이 동일한 녀석이라..)

피보텍에 개발 인원이 있으면 이걸 좀 해킹하면 첨비 개발자들이 첨비없이 개발할 수 있어서 더 좋을 것같은데..제가 하드웨어쪽을 이런식으로 에뮬레이션을 하거나 데이터시트를 보고 구현해본적이 없어서 저는 조금 버겁지 말입니다;;

일단 openyours커뮤니티 활성화의 일환으로 시작된 만큼 모든 기술자료나 활동을 openyours에서 할 생각입니다..
다만, 이 글처럼 제 블로그에 올리면 확인할 수 있는 planet시스템(참고)을 붙여주시면 좋을텐데 말이죠..
그리고 구글구룹(참고)이나 구글코드처럼 소스저장소(제공하던군요..다만 웹인터페이스는 미제공입니다..)나 토론시스템 혹은 위키등을 부가로 제공해주시면 정말 좋겠는데..어렵겠죠?;;
일단 기본 활동은 openyours에서 하고 코드관리는 구글코드에서 하는게 아마 제일 적당하지 않을까 생각합니다..

한국 첨비안 홧팅!
기념 촬영을 했는데 아쉽게도 아직 입수를 못해서..-ㅅ- 입수되는대로 올리겠습니닷..-ㅅ-)/

일단 정리하자면, 즐거웠다..재밋게 놀 수 있을 것같다..입니다..=3


by rapzzard | 2007/07/21 18:25 | 개발 :: 첨비 | 트랙백 | 덧글(6)

wxpython이랑 pygame이랑 합쳐지질 않는다..;ㅁ;

한 12시즈음인가 부터 오늘어제부터 만들려고 했던 녀석을 만들다가 난관에 봉착했다;;
사실 wxpython을 대충 깔짝만 되고 해보질 않아서 이 넘이 속을 썩일 줄 알았는데..왠걸? pygame이 속을 썩이네?;;
만들려고 하는 것은 특정언어와 인코딩을 고르고 텍스트를 입력하면 해당 글이 찍혀 나오는 프로그램
예를 들어, Korean(콤보박스), cp949(콤보박스), "bec8b3e7c7cfbcbcbfe4" 라고 입력하면, "안녕하세요"라고 찍히는 녀석..-_-
예전에는 코드표를 참고하거나 python idle를 띄워서 작성했는데 그냥 별도로 프로그램을 만들어두면 좋을 것같기도 하고;;
파이썬에서 표준으로 지원하는 모든 인코딩을 지원하려고 다 짰는데..(그래서 pygame에 code2000폰트를 씀)
여기를 참고해서 작성했는데 wxpython이랑 pygame창이 별도로 뜨는 것..!!
그래서 사불인가 해서 저 페이지에 있는 모든 예제를 돌려봐도 창이 마찬가지로 별도로 뜬다;;
3시간 동안 삽질한게 물거품..;;

혹시나 wxpython과 pygame을 연동하는 방법을 아시는 분은 좀 알려주세용..;ㅁ;

by rapzzard | 2007/07/21 03:15 | 개발 :: 삽질 | 트랙백 | 덧글(4)

파이썬에서 지원하는 표준 인코딩 목록 추출하기

이번 주말에 장난 삼아 만들 프로그램이 있다..
파이썬에서 지원하는 인코딩 목록을 얻어올 필요가 있었는데..
여자의 마음 빼고는 모르는 게 없으신 퍼키님이 한가지 해법을 알려주셨다..

>>> from encodings import aliases
>>> set(aliases.aliases.values())

여기에서 실제 유니코드 코덱이 아닌 녀석은 차집합을 이용해서 해결하면 된다..

>>> set(aliases.aliases.values()) - set(['bz2_codec', 'rot_13', 'hex_codec', 'uu_codec', 'quopri_codec', 'base64_codec', 'mbcs', 'zlib_codec'])

결과는 아래와 같다..

set(['cp862', 'gb18030', 'ascii', 'iso2022_jp_2004', 'cp1026', 'iso8859_9', 'cp1252', 'cp1140', 'mac_latin2', 'gbk', 'euc_jp', 'shift_jis_2004', 'mac_cyrillic', 'cp932', 'iso2022_jp', 'mac_roman', 'cp424', 'utf_16', 'iso8859_4', 'iso8859_15', 'iso8859_14', 'tis_620', 'iso8859_16', 'iso8859_11', 'iso8859_10', 'ptcp154', 'euc_jisx0213', 'cp500', 'utf_16_be', 'cp1258', 'cp869', 'iso8859_3', 'mac_greek', 'cp860', 'cp855', 'cp950', 'cp863', 'cp864', 'cp865', 'cp866', 'hz', 'utf_8', 'big5hkscs', 'shift_jisx0213', 'mac_iceland', 'johab', 'utf_7', 'cp861', 'mac_turkish', 'cp1255', 'cp1254', 'cp1257', 'hp_roman8', 'cp1251', 'cp1250', 'cp1253', 'euc_jis_2004', 'cp437', 'cp949', 'iso2022_jp_ext', 'euc_kr', 'iso2022_jp_3', 'iso2022_jp_2', 'iso2022_jp_1', 'iso8859_6', 'tactis', 'latin_1', 'gb2312', 'cp1256', 'big5', 'koi8_r', 'cp850', 'shift_jis', 'cp852', 'cp037', 'iso8859_8', 'cp857', 'iso8859_13', 'iso8859_5', 'iso2022_kr', 'iso8859_7', 'cp775', 'utf_16_le', 'iso8859_2'])

>>> len(_)
84

rot_13과 mbcs만 아니면 아래의 코드로도 가져올 수 있었을텐데 아쉽;;

>>> filter(lambda x: not x.endswith('_codec'), set(aliases.aliases.values()))


단, 퍼키옹 말씀을 인용하자면,

<퍼키☆> 요렇게 하면 정상적인 방법(?)을 쓰는 코덱의 목록은 얻을 수 있어요
<퍼키☆> 코덱 룩업 훅을 쓰는 경우는 검출 불가..

라지만 어차피 내게 의미있는 정보가 아니므로 패쓰~

그런데 생각해보니 내가 요구하는 UI에서는 Language |ㅁ| Encoding |ㅁ| Text 라 이 코드를 쓸 수는 없을 것 같다;;(여기서 |ㅁ|는 콤보박스)

encodings모듈을 한번 읽어볼 필요가 있을 것 같다.. 별 내용이 없었다;;

by rapzzard | 2007/07/20 17:45 | 개발 :: 회사 | 트랙백 | 덧글(1)

IPP를 이용하여 YUV420이미지를 RGB565로 변경하기


회사에서 필요에 의해 YUV420->RGB565로 변경하는 함수를 작성할 필요가 있었다..
IPP라는 녀석을 이용했기 때문에 아무것도 생각할 필요 없다..
다만 YUV420은 U와 V데이터를 1/2 사이즈만큼 다운 샘플링하기 때문에 주의해야 한다..




  • Y'= 0.299*R' + 0.587*G' + 0.114*B'

  • U'= -0.147*R' - 0.289*G' + 0.436*B' = 0.492*(B'- Y')

  • V'= 0.615*R' - 0.515*G' - 0.100*B' = 0.877*(R'- Y')

  • R' = Y' + 1.140*V'

  • G' = Y' - 0.394*U' - 0.581*V'

  • B' = Y' + 2.032*U'






void YUV420toRGB565(unsigned char *rgb565, unsigned char *y, unsigned char *u, unsigned char *v, size_t width, size_t height)
{
    IppStatus ipp_status;
    Ipp8u *yuv[3] = { y, u, v };
    int steps[3] = { width, width/2, width/2 }; // UV는 1/2로 다운 샘플링 됨
    IppiSize size = { x, y };

    ipp_status = ippiYUV420ToRGB565_8u16u_P3C3R(srcs, steps, rgb565, 2*x, size);
    
    if ( ipp_status != 0 ) {
       fprintf(stderr, "[%s] IPP Error: %d\n", __func__, ipp_status);
    }
}


IPP에 관한 글을 자세히 쓰고 싶지만 첨비만으로도 엄청나게 공부할 것이 많아서..일단 우선순위를 미루겠다..-ㅅ-)

근데 생각해보면 IPP가 리눅스용 말곤 상용 아니었나?;;

by rapzzard | 2007/07/19 22:53 | 개발 :: 회사 | 트랙백 | 덧글(0)

첨비 개발자가 되었습니다..

 소형 WIFI 개인 단말기(하지만 포터블하지 않은)인 첨비의 오픈 소스 개발자로 뽑혔습니다..
 제가 뽑힌 걸 볼 때 아무래도 응모한 사람들 모두를 뽑지 않았을까 하는 음모론이 들기는 합니다만;;
 
 이 소형 장치는 항상 제가 꿈꿔오던 해킹박스와 유사한데 현재 기본적으로 플래시로만 위젯을 만들 수 있습니다..
 저는 GTK on DirectFB, PyGTK, D-Bus를 가지고 아래의 구성 요소들을 만드는게 목표입니다..
 
  • gDesklet과 유사한 위젯 프레임워크
  • Growl과 유사한 알림 프레임워크


 타켓을 언제 줄지 모르겠지만..얼른 받아봤으면 하네용..'ㅁ';;
 또한 타켓을 받기 이전까지는 위에서 언급한 라이브러리나 툴킷들에 대한 글을 쏟아낼(?) 생각입니다..

 여덟명이 다 각각의 프로젝트를 해야하는 건지 아니면 오픈유얼스쪽에서 정해주는 건지 잘 모르겠습니다만..
 설마 '이 그룹은 이거해주세요, 저 그룹은 저거해주세요' 라고 하진 않겠죠?

by rapzzard | 2007/07/19 11:58 | 개발 :: 첨비 | 트랙백(1) | 덧글(3)

◀ 이전 페이지 다음 페이지 ▶