Create TOC

2006년 11월 27일

Vista 개발 관련 링크들

vista 관련 자료 저장용

Complete list of Windows Vista API changes

New_Windows_Vista_APIs.zip

  • http://devreadiness.org/files/5/white_papers/entry137.aspx
  • http://devreadiness.org/files/137/download.aspx

Microsoft Windows Vista Compatibility Document

ISV_Windows_Vista_Compatibility_cookbook.zip

  • http://devreadiness.org/files/5/white_papers/entry10.aspx

Vista compatibility investigation guide

  • http://devreadiness.org/files/5/white_papers/entry125.aspx

Windows Vista UAC Development Requirements

  • http://devreadiness.org/files/5/white_papers/entry158.aspx

Application testing guidelines for Windows Vista

  • http://devreadiness.org/files/5/presentations/entry131.aspx

Windows Vista Backup and Application Compatibility

  • http://devreadiness.org/files/5/white_papers/entry157.aspx

Links

  • http://blogs.msdn.com/vistacompatteam/default.aspx

2006년 11월 21일

Python/list 합치는 여러가지 방법

코드

#!/usr/bin/python
# -*- coding: utf-8 -*-

SRCLIST = range(1, 10)

# map을 이용하는 방법
print map(None, SRCLIST[:-1], SRCLIST[1:])

# built-in zip() 을 사용하는 방법
print zip(SRCLIST, SRCLIST[1:])

# itertools를 사용하는 방법
from itertools import izip, islice
print [(x, y) for x, y in izip(SRCLIST, islice(SRCLIST, 1, None))]

# generator를 사용하는 방법
def intervals(it):
    it = iter(it)
    st = it.next()
    for en in it:
        yield (st, en)
        st = en

print [interval for interval in intervals(SRCLIST)]

결과

[(1, 2), (2, 3), (3, 4), (4, 5), (5, 6), (6, 7), (7, 8), (8, 9)]
[(1, 2), (2, 3), (3, 4), (4, 5), (5, 6), (6, 7), (7, 8), (8, 9)]
[(1, 2), (2, 3), (3, 4), (4, 5), (5, 6), (6, 7), (7, 8), (8, 9)]
[(1, 2), (2, 3), (3, 4), (4, 5), (5, 6), (6, 7), (7, 8), (8, 9)]

2006년 11월 17일

graffiti2를 graffiti1로 변경

Palm T5의 graffiti2를 graffiti1로 변경하고 KOSPI 에서 인식 엔진을 system으로 변경하니 예전 Palm에서 사용하던 속도 그대로 나온다.

graffiti2를 graffiti1으로 변경하는 방법은 http://www.palminfocenter.com/view_story.asp?ID=5830 에 나와있다.

2006년 11월 16일

cygwin

설정 내용

~/.inputrc

set meta-flag on
set convert-meta off
set output-meta on
set completion-ignore-case on
set horizontal-scroll-mode on
set show-all-if-ambiguous on

~/.bashrc

alias ls='ls --show-control-chars -F --color=tty'
export PS1='\u@\h\w\$ '

rxvt 사용

아래와 같은 batch file을 작성한다.

@echo off

C:
chdir \cygwin\bin

set CYGWIN=tty

rxvt -tn xterm -rv -fn fixedsys -e /bin/bash --login -i

MingW로 build

link 옵션에 아래 내용 추가

--target=i686-pc-mingw32 -mno-cygwin

gcc 3.4.4 버그

cygwin/gcc 3.4.4 에서는 -mno-cygwin 옵션을 주면 링크 에러가 난다. 해결책은 아래 링크에 있다

http://www.hotsolder.com/labels/cygwin.html

만일을 위해 일부를 발췌해 놓는다.

1) In /usr/lib/gcc there is a directory for i686-pc-mingw32/3.4.4. In that directory, the Cygwin installer put ordinary .lnk files linking back to /usr/lib/gcc/i686-pc-cygwin/3.4.4. None of these work, so the first step is to make hard or symbolic links to the correct files. For example, cc1.exe.lnk needs to be fixed (from the i686-pc-mingw32/3.4.4 directory):
ln ../i686-pc-cygwin/cc1.exe cc1.exe
Fix all the links in this way. Now gcc will run with -mno-cygwin, but it still won't link. 2) The problem is, gcc is a driver and the specs file is broken. In the same directory, edit the file named specs. The trick here is we need to change the references to crt2.o to refer to a specific path (/usr/lib/mingw/crt2.0). We also need to add -L/usr/lib/mingw to several places. Here's a diff between the standard specs file and mine (significant additions in red):
$ diff specs ../../i686-pc-cygwin/3.4.4/specs
51c51
<   %{pg:-lgmon}   %{!mno-cygwin:-lcygwin}   %{mno-cygwin:%{mthreads:-lmingwthrd -L/usr/lib/mingw} -lmingw32}   %{mwindows:-lgdi32 -lcomdlg32}   -luser32 -lkernel32 -ladvapi32 -lshell32
---
>   %{pg:-lgmon}   %{!mno-cygwin:-lcygwin}   %{mno-cygwin:%{mthreads:-lmingwthrd} -lmingw32}   %{mwindows:-lgdi32 -lcomdlg32}   -luser32 -lkernel32 -ladvapi32 -lshell32
54c54
< %{mno-cygwin: %{mthreads:-lmingwthrd} -lmingw32} -lgcc           %{mno-cygwin:-lmoldname -lmingwex -lmsvcrt -L/usr/lib/mingw}
---
> %{mno-cygwin: %{mthreads:-lmingwthrd} -lmingw32} -lgcc           %{mno-cygwin:-lmoldname -lmingwex -lmsvcrt}
57c57
<   %{shared|mdll: %{mno-cygwin:dllcrt2%O%s}}  %{!shared: %{!mdll: %{!mno-cygwin:crt0%O%s} %{mno-cygwin:/usr/lib/mingw/crt2%O%s} %{mno-cygwin:-L/usr/lib/mingw}  %{pg:gcrt0%O%s}}}
---
>   %{shared|mdll: %{mno-cygwin:dllcrt2%O%s}}  %{!shared: %{!mdll: %{!mno-cygwin:crt0%O%s} %{mno-cygwin:crt2%O%s}  %{pg:gcrt0%O%s}}}

Running a native win32 application from cygwin/bash

http://hermitte.free.fr/cygwin/#Win32

2006년 11월 15일

공인인증서를 이용해서 openssh키 생성하기

공인 인증서를 이용해서 openssh 에서 사용 가능한 rsa 키를 생성하는 방법을 설명한다.

테스트 시스템은 Debian 이다.

  1. 인증서를 "내보내기" 기능을 이용해 저장한다. 저장하면 확장자가 .p12인 파일이 생긴다. 여기서는 mykey.p12 로 내보내었다고 가정한다.
  2. openssl을 이용해서 인증서를 변환한다.
    $ openssl pkcs12 -out id_rsa -in mykey.p12
    Enter Import Password : 인증서 내보내기 할 때 사용한 비밀번호
    MAC verified OK
    Enter PEM pass phrase: 키에 설정할 비밀번호
    Verifying - Enter PEM pass phrase: 위 비밀번호 반복
    
  3. 생성된 id_rsa~/.ssh 폴더로 이동한다.
    $ mv id_rsa ~/.ssh/
    
  4. 아래와 같은 명령어를 입력해서 permission을 변경한다.
    $ chmod 0600 ~/.ssh/id_rsa
    
  5. 이제 접속하고 싶은 서버의 ~/.ssh/authorized_keys2에 공개키를 등록하면 된다. 공개키는 아래와 같은 명령으로 얻을 수 있다.
    $ ssh-keygen -y -f ~/.ssh/id_rsa
    
  6. 이제부터 ssh를 이용해 접속하면 생성된 id_rsa 를 이용해 접속하게 된다.

2006년 11월 2일

Python/type 검사

isinstance(obj, typename)

예제

l = range(1, 20)
if isinstance(l, list):
    print 'list'
else:
    print 'not list'