오픈소스 라이선스 가이드

ㅋ 이것마저 어렵군..
GPL
CPL
Apache License
MIT License 도 있고.. ㅋㅋ

어떤놈은 코드공개,
어떤놈은 공개안하고 돈받고 팔아도 되고...

그러나 일단 배포를 안하면 코드공개와는 상관없다는...

오픈소스SW 라이선스 .pdf

컴퓨터 프로그램 보호 위원회가 2007년도에 발표한 오픈소스 SW 라이선스 가이드


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

Posted by gwlee

2009/07/16 20:19 2009/07/16 20:19
Response
0 Trackbacks , 0 Comments
RSS :
http://thegreatgoodplace.com/tt/study/rss/response/171

Trackback URL : http://thegreatgoodplace.com/tt/study/trackback/171

Leave a comment

Hash Table

출처: 까먹었음.. ^^;;;

 Hash Table

해쉬 테이블은 key와 value 쌍을 저장하는 자료구조로서 DB의 기초가 되는 매우 중요한 자료구조이다. 해쉬 테이블의 개략적인 구조는 아래 그림과 같다. (구글에서 찾은 그림)



보다시피 세로로는 버킷(bucket)이라는 공간들이 배열 형태로 존재하고, 이 bucket에는 링크드 리스트가 주렁 주렁 달려있다. 해쉬 테이블의 가장 큰 장점은 검색이 매우 빠르다는 것이다. 해쉬 테이블에 자료의 삽입 및 검색은 다음 그림을 보자. 간단한 전화번호부 자료구조이다. (위키피디아에서 찾은 그림)
 
예를 들어, "John Smith"라는 key로 "+1-555-1234"라는 전화 번호를 저장하고 싶다. 먼저 해쉬 테이블은 주어진 key 값을 해쉬 함수 (hash function)을 통해 특정한 값으로 변환을 한다. 위 그림에서는 873이 되겠다. 그러면 바로 배열에 접근하듯이 873번 버킷에 접근을 한다. 만약 해쉬 값이 1000이 넘는다면 % modulo 연산자로 나머지 값을 취해 이 데이터가 위치할 버킷의 인덱스를 찾는다. 이 버킷에 이제 데이터를 싱글 링크드 리스트 형태로 저장을 하면 된다. 왜냐면, 위의 그림과 같이 "Sandra Dee"라는 key의 해쉬 값도 873으로 "John Smith"와 충돌(collision)이 일어나게 된다. 따라서 이런 충돌을 피하기 위해 같은 해쉬 값을 가지는 데이터는 리스트로 저장을 한다.

검색과 삭제의 방법도 같다. 주어진 키의 해쉬 값을 계산 한 뒤, 원하는 버킷으로 찾아가서, 버킷에 달려있는 데이터 노드와 비교를 하여 (선형 탐색) 원하는 데이터를 찾는 것이다.

따라서 검색에 필요한 시간 중 버킷까지 찾아가는 시간은 해쉬 테이블의 크기가 얼마가 되었든 동일하다. 그러나 만약 해쉬 테이블에 너무 많은 데이터가 있어 충돌이 많이 일어난 경우, 즉, 버킷에 긴 리스트가 달려있는 경우에는, 탐색하는데 시간이 소요되게 된다.

이론적인 해쉬 테이블의 검색 속도는 O(1+n/m)으로 표현한다. 여기서 m은 slot의 개수, n은 원소의 개수로 n/m은 흔히 load factor로 표현이 된다. 그러나 리스트는 평균적으로 그렇게 길지 않으므로 흔히 탐색은 상수시간 O(1)이 걸린다고 말한다. (정말로 최악의 경우에 모든 키의 해쉬 값이 하나로만 나온다면 검색 속도는 리스트와 같아진다.)

추가 및 삭제도 모두 상수시간 O(1)이 걸린다. 그림과 같이 주어진 이름으로 전화번호를 찾아야하는 사전과 같은 구조에서는 해쉬 테이블이 가장 좋다.

그러나 하나 주의해야할 것은, 해쉬 테이블에 저장된 데이터는 순서를 예측할 수 없다. 그림에서 해쉬 테이블에 저장된 모든 데이터를 출력한다고 할 때, 이는 정렬되지 않은 값이다. 왜냐면 주어진 키의 해쉬 값에 따라 정렬이 되는데 이는 일반적으로 예측할 수 없기 때문이다. 따라서 위의 그림에서 사람 이름으로 정렬해서 출력하고 싶다면, 어쩔 수 없이 모든 데이터를 한번 정려를 해야한다.

 

Time complexity

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

Posted by gwlee

2009/03/26 20:19 2009/03/26 20:19
, ,
Response
0 Trackbacks , 0 Comments
RSS :
http://thegreatgoodplace.com/tt/study/rss/response/103

Trackback URL : http://thegreatgoodplace.com/tt/study/trackback/103

Leave a comment

clustal -> hmmer -> distmat

KOBIC Cluster 사용하여 돌리는 스크립트

#!/bin/bash
H=`pwd`
echo $BASH_ARGV

[ -d /data/soongsil/$BASH_ARGV ] && rm -rf /data/soongsil/$BASH_ARGV
[ -d /data/soongsil/clust_$BASH_ARGV ] && rm -rf /data/soongsil/clust_$BASH_ARGV
mkdir -p /data/soongsil/clust_$BASH_ARGV
cp /home/soongsil/jobcdd/$BASH_ARGV /data/soongsil/clust_$BASH_ARGV/$BASH_ARGV
cp /home/soongsil/clustalw2 /data/soongsil/clust_$BASH_ARGV/

-만약 $BASH_ARGV에 해당하는 폴더가 있는 경우 삭제하고 다시 만들고, 수행에 필요한 파일들을 /home/soongsil/jobcdd에서 복사해오는 부분

cd /data/soongsil/clust_$BASH_ARGV/
tar xf $BASH_ARGV

for M in `ls /data/soongsil/clust_$BASH_ARGV/*.seq`;do ./clustalw2 -INFILE=$M -ALIGN -TYPE=PROTEIN -OUTFILE=${M%.*}.aln -OUTPUT=CLUSTAL -MATRIX=GONNET; done > temp.txt


clustalw2수행하는 부분

for M in `ls /data/soongsil/clust_$BASH_ARGV/*.aln`;do /home/soongsil/hmmer/src/hmmbuild --informat CLUSTAL ${M%.*}.hmm $M; done > temp.txt

for M in `ls /data/soongsil/clust_$BASH_ARGV/*.hmm`;do /home/soongsil/hmmer/src/hmmcalibrate $M; done > temp.txt

for M in `ls /data/soongsil/clust_$BASH_ARGV/*.hmm`;do /home/soongsil/hmmer/src/hmmalign --informat FASTA --outformat MSF -o  ${M%.*}.msf $M  ${M%.*}.seq; done > temp.txt


hmmer 수행하는 부분

for M in `ls /data/soongsil/clust_$BASH_ARGV/*.msf`;do /home/soongsil/EMBOSS-6.0.1/emboss/distmat -protmethod 0 -outfile ${M%.*}.Unco.dist ;done > temp.txt

for M in `ls /data/soongsil/clust_$BASH_ARGV/*.msf`;do /home/soongsil/EMBOSS-6.0.1/emboss/distmat -protmethod 1 -outfile ${M%.*}.Jukes.dist ;done > temp.txt

for M in `ls /data/soongsil/clust_$BASH_ARGV/*.msf`;do /home/soongsil/EMBOSS-6.0.1/emboss/distmat -protmethod 2 -outfile ${M%.*}.Kimura.dist ;done > temp.txt


EMBOSS중 distmat 수행하는 부분

cd /data/soongsil/clust_$BASH_ARGV/
tar cf ${BASH_ARGV%.*}.clust.tar *.aln *.dist *.msf
gzip ${BASH_ARGV%.*}.clust.tar
cp -f ${BASH_ARGV%.*}.clust.tar.gz $H
rm -rf /data/soongsil/clust_$BASH_ARGV

결과 파일들을 묶고 원래 홈 폴더로 복사하고, 나머지 파일들은 삭제

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

Posted by gwlee

2009/02/14 03:53 2009/02/14 03:53
, , ,
Response
0 Trackbacks , 0 Comments
RSS :
http://thegreatgoodplace.com/tt/study/rss/response/73

Trackback URL : http://thegreatgoodplace.com/tt/study/trackback/73

Leave a comment

ASCI Code



아스키 코드표

출처 : http://www.jasko.co.kr/lesson/ascii.html

10진수

16진수

8진수

2진수

ASCII

10진수

16진수

8진수

2진수

ASCII

0

0×00

000

0000000

NULL

64

0×40

100

1000000

@

1

0×01

001

0000001

SOH

65

0×41

101

1000001

A

2

0×02

002

0000010

STX

66

0×42

102

1000010

B

3

0×03

003

0000011

ETX

67

0×43

103

1000011

C

4

0×04

004

0000100

EOT

68

0×44

104

1000100

D

5

0×05

005

0000101

ENQ

69

0×45

105

1000101

E

6

0×06

006

0000110

ACK

70

0×46

106

1000110

F

7

0×07

007

0000111

BEL

71

0×47

107

1000111

G

8

0×08

010

0001000

BS

72

0×48

110

1001000

H

9

0×09

011

0001001

HT

73

0×49

111

1001001

I

10

0×0A

012

0001010

LF

74

0×4A

112

1001010

J

11

0×0B

013

0001011

VT

75

0×4B

113

1001011

K

12

0×0C

014

0001100

FF

76

0×4C

114

1001100

L

13

0×0D

015

0001101

CR

77

0×4D

115

1001101

M

14

0×0E

016

0001110

SO

78

0×4E

116

1001110

N

15

0×0F

017

0001111

SI

79

0×4F

117

1001111

O

16

0×10

020

0010000

DLE

80

0×50

120

1010000

P

17

0×11

021

0010001

DC1

81

0×51

121

1010001

Q

18

0×12

022

0010010

SC2

82

0×52

122

1010010

R

19

0×13

023

0010011

SC3

83

0×53

123

1010011

S

20

0×14

024

0010100

SC4

84

0×54

124

1010100

T

21

0×15

025

0010101

NAK

85

0×55

125

1010101

U

22

0×16

026

0010110

SYN

86

0×56

126

1010110

V

23

0×17

027

0010111

ETB

87

0×57

127

1010111

W

24

0×18

030

0011000

CAN

88

0×58

130

1011000

X

25

0×19

031

0011001

EM

89

0×59

131

1011001

Y

26

0×1A

032

0011010

SUB

90

0×5A

132

1011010

Z

27

0×1B

033

0011011

ESC

91

0×5B

133

1011011

[

28

0×1C

034

0011100

FS

92

0×5C

134

1011100

\

29

0×1D

035

0011101

GS

93

0×5D

135

1011101

]

30

0×1E

036

0011110

RS

94

0×5E

136

1011110

^

31

0×1F

037

0011111

US

95

0×5F

137

1011111

_

32

0×20

040

0100000

SP

96

0×60

140

1100000

.

33

0×21

041

0100001

!

97

0×61

141

1100001

a

34

0×22

042

0100010

"

98

0×62

142

1100010

b

35

0×23

043

0100011

#

99

0×63

143

1100011

c

36

0×24

044

0100100

$

100

0×64

144

1100100

d

37

0×25

045

0100101

%

101

0×65

145

1100101

e

38

0×26

046

0100110

&

102

0×66

146

1100110

f

39

0×27

047

0100111

'

103

0×67

147

1100111

g

40

0×28

050

0101000

(

104

0×68

150

1101000

h

41

0×29

051

0101001

)

105

0×69

151

1101001

i

42

0×2A

052

0101010

*

106

0×6A

152

1101010

j

43

0×2B

053

0101011

+

107

0×6B

153

1101011

k

44

0×2C

054

0101100

'

108

0×6C

154

1101100

l

45

0×2D

055

0101101

-

109

0×6D

155

1101101

m

46

0×2E

056

0101110

.

110

0×6E

156

1101110

n

47

0×2F

057

0101111

/

111

0×6F

157

1101111

o

48

0×30

060

0110000

0

112

0×70

160

1110000

p

49

0×31

061

0110001

1

113

0×71

161

1110001

q

50

0×32

062

0110010

2

114

0×72

162

1110010

r

51

0×33

063

0110011

3

115

0×73

163

1110011

s

52

0×34

064

0110100

4

116

0×74

164

1110100

t

53

0×35

065

0110101

5

117

0×75

165

1110101

u

54

0×36

066

0110110

6

118

0×76

166

1110110

v

55

0×37

067

0110111

7

119

0×77

167

1110111

w

56

0×38

070

0111000

8

120

0×78

170

1111000

x

57

0×39

071

0111001

9

121

0×79

171

1111001

y

58

0×3A

072

0111010

:

122

0×7A

172

1111010

z

59

0×3B

073

0111011

;

123

0×7B

173

1111011

{

60

0×3C

074

0111100

<

124

0×7C

174

1111100

|

61

0×3D

075

0111101

=

125

0×7D

175

1111101

}

62

0×3E

076

0111110

>

126

0×7E

176

1111110

~

63

0×3F

077

0111111

?

127

0×7F

177

1111111

DEL



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

Posted by gwlee

2008/08/25 02:23 2008/08/25 02:23
Response
0 Trackbacks , 0 Comments
RSS :
http://thegreatgoodplace.com/tt/study/rss/response/35

Trackback URL : http://thegreatgoodplace.com/tt/study/trackback/35

Leave a comment

HTML5?


참.. 세상은
빠르게 변모하고 있는듯..

HTML5를 살펴보자

HTML5라....;;;

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

Posted by gwlee

2008/08/25 01:46 2008/08/25 01:46
Response
0 Trackbacks , 0 Comments
RSS :
http://thegreatgoodplace.com/tt/study/rss/response/23

Trackback URL : http://thegreatgoodplace.com/tt/study/trackback/23

Leave a comment

블로그 이미지

gwLee's Study story

- gwlee



Site Stats

Total hits:
49841
Today:
62
Yesterday:
92