기본 콘텐츠로 건너뛰기

12월, 2013의 게시물 표시

[파이썬] 파이썬 여러 버전 설치하기; virtualenv 사용하기.

source:  http://bhfsteve.blogspot.kr/2012/05/run-multiple-python-versions-on-your.html 파이썬  여러 버전 사용하기 파이썬 2.7은 기본적으로 설치되어 있다고 가정 steve@ubuntu64 ~ $  sudo add-apt-repository ppa:fkrull/deadsnakes steve@ubuntu64 ~ $  sudo apt-get update steve@ubuntu64 ~ $  sudo apt-get install python2.4 python2.5 python2.6 이제 2.4 2.5 2.6 2.7이 모두 설치된 상태가 된다. 이 상태에서 python이라고 치면 여전히 2.7이 켜진다. 왜냐하면 python은 심볼릭링크이며 python2.7을 가리키기 때문.  steve@ubuntu64 ~ $  python Python  2.7.3  (default, Apr 20 2012, 22:39:59)  [GCC 4.6.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> steve@ubuntu64 ~ $  ls -l /usr/bin/python* lrwxrwxrwx 1 root root       9 Apr 17 13:20 /usr/bin/python -> python2.7 lrwxrwxrwx 1 root root       9 Apr 17 13:20 /usr/bin/python2 -> python2.7 -rwxr-xr-x 1 root root 1216520 May 21 12:13 /usr/bin/python2.4 -rwxr-xr-x 1 root root 1403624 May  ...

[sql] full outer join vs cross join

source:  http://social.msdn.microsoft.com/Forums/sqlserver/en-US/2412fe92-7ea6-4de2-9599-c0075f246e23/cross-join-vs-full-outer-join?forum=transactsql Full outer join returns all matching rows from A and B and all Rows from A that are not in B and all rows from B that are not in A. example: A 1 2 3 B 2 3 4 select * from A full join B on A.id = B.ID Output A  B 1 NULL 2  2 3  3 NULL 4 In a cross join you will get 9 rows combined with each other: select * from A cross join B A B 1 4 2 4 3 4 1 2 2 2 3 2 1 3 2 3 3 3 Note:   However, if a WHERE clause is added, the cross join behaves as an inner join. For example, the following Transact-SQL queries produce the same result set. (source:  http://studentboxoffice.in/Articles.aspx?id=46 )

[python] iterator vs generator

-----------------------------------iterator--------------------------------- for i in range(5):     print i, 가 내부적으로 하는 일은 다음과 비슷. tmplist = [0,1,2,3,4] if not '__iter__' in dir(tmplist):     raise TypeError tmpiter = iter(tmplist) #또는, tmpiter = tmplist.__iter__() whlie(True):     print tmpiter.next() 즉, 대상이 되는 iterable한 객체를 받아, next()가 없어 StopIteration 예외가 처리되며 끝나게 된다. -----------------------------------generator--------------------------------- generator object라 만드는 대상이란 바로 데이터 그 자체다..(python.org의 정의에 따르면 " Generator s are a simple and powerful tool for creating iterators. "라고 설명된다. 그런데 여기서 말하는 iterator는 iterable object에 가까울 뿐, iter([1,2,3])했을 때 나오는 listiterator와 동일한 의미로서의 iterator는 아니다.) 다시말해, iterator에는 두가지 종류가 있어 , 하나는 메모리에 모두 올라와 있는 데이터에 접근을 하는 가장 일반적인 형태이고, 다른 하나(generator와 연관)는 데이터를 생성하면서 순회접근 하는 형태이다.  자세한 내용은 아래에서 다시 설명한다. generator란? generator object(즉 iterator)를 generate(생성)하는 함수 generator object란? 데이터를 generate(생성)하는...

[리눅스 > 에디터 > VIM] vim의 모든 것

source:  http://vim.wikia.com/wiki/Converting_tabs_to_spaces --커맨드상에서 파일의 탭을 4개의 공백으로 바꾸고 저장하는 명령어 $ vim -c "set expandtab | set tabstop=4 | retab | wq" filename.txt --vim으로 서브 디렉토리 파일들 한꺼번에 버퍼로 불러 읽어들이기 테크닉. $ vim $(find . -name README | sort) --vim으로 서브 디렉토리 파일들들 한번에 하나씩 불러 읽어들임(하나 끄면 다음 파일이 새로운 vi로 열림) $ find -name somefile.txt -exec vim {} \; --한꺼번에 열린 파일목록 1 %a "./checkin.pl" line 1 2 # "./grabakamailogs.pl" line 1 3 "./grabwmlogs.pl" line 0 etc. 3번 버퍼의 파일을 현재창에 열기, e.g. :3b 2번 버터의 파일을 새창에 열기, e.g. : 2sb 왼쪽에 있는 %는 현재의 파일을 의미하며 #는 alternate file을 의미함 ( <cntl>-shift-6 를 통해 두 파일을 왔다갔다 할 수 있음) --QUESTION: 파이프라인으로 하는 방법은 없나? (예를 들어) $ echo "cscope.*" | xargs -i{} vim {} 빔: 경고: 터미널로 부터 입력받을 수 없습니다. -- 현재 창에서 커서의 파일 열기 명령모드 gf (go to the file) -- 이전 창으로 돌아가기 명령모드 C-o(점프시 이전 커서 위치로 돌아가기)를 이용해 같은 효과를 낼 수 있음 -- 이후 창으로 돌아가기 명령모드 C-i 또는 Tab키(점프 히스토리가 있을 경우 이...

[Terminal HotKey] Emacs key bindings.(set -o emacs)

source: myself Useful Keyboard shortcuts in Vim Find next: Shift+3(which is #) Find previous:  Shift+8(which is *) source:  http://en.wikipedia.org/wiki/Bash_%28Unix_shell%29 Keyboard shortcuts [ edit ] The following shortcuts work when using default ( Emacs ) key bindings.  Vi-bindings  can be enabled by running  set -o vi . [23] Note: For shortcuts involving  ⎇  Alt , you may be able to use  ⎋  Esc  instead. Note: Sometimes, you must use  ⎋  Esc  instead of  ⎇  Alt , because the  ⎇  Alt  shortcut conflicts with another shortcut. For example, in  Trisquel 5.0  (a distribution of Linux), pressing  ⎇  Alt + f  will not move the cursor forward one word, but will activate "File" in the menu of the terminal window. See also:  Readline Tab  ↹  :  Autocompletes  from the cursor position. ^  Ctrl + a  : Moves the cursor t...