2018년 10월 27일 토요일

43번 오극관(43 power pentode) 싱글 앰프 프로젝트 - [8] 프리앰프 바꾸기

나무판 위에 서툴게 만든 43 오극관 싱글 엔디드 앰프를 매일 흐뭇하게 바라보면서 어떻게 섀시를 만들지 고민을 하던 중 프리앰프가 망가지고 말았다. 재생 중에 갑자가 전원이 들락날락거리기 시작한 것이다. '퍽' 소리와 함께 파일럿 LED도 꺼지고 아무런 소리가 나지 않는다. 잠시 살아나는 것 같다가 또 꺼지고를 반복하였다. 처음에는 전원 커넥터쪽의 접촉 불량이라고 생각했지만 납땜을 새로 해고 아무리 만져 보아도 소용이 없었다. 전원을 넣고 무슨 일이 벌어지는지 기다리는데 갑자기 연기가 나면서 대용량 저항이 타고 말았다. 문제점을 진단하고 고칠 능력이 없으니 이제 이 앰프는 12AU7 진공관 한 알을 남기고 잡동사니 상자에 들어가는 신세가 되었다.

43 오극관은 전력증폭회로를 담당한다. 이 앞에서 신호(오디오 신호이므로 교류)를 적당한 수준으로 흔들어 줄 '드라이버'가 필요한 것이다. 드라이브단은 소스 기기에서 출력되는 전압을 흔들어 주는 것이라서 큰 전력을 소비하지는 않는다. 명색이 진공관 앰프이니 드라이브단도 진공관을 쓰는 것이 자연스럽다. 그러나 43 오극관의 히터(25 V) 및 B+ 전원(95~160 V)은 요즘 보통 사용하는 다른 진공관과 같이 쓰기에는 적합하지가 않다. 그래서 나는 진공관-MOSFET 하이브리드 헤드폰 앰프 겸 프리앰프를 사용했던 것이다.

제이앨범의 매니저께서는 요즘 43번 오극관을 이용한 앰프 회로의 설계를 거의 마쳐가고 있다. 초단에는 오극관인 6KT6을 사용한다. 계산 결과에 의하면 드라이브단에서는 36~40 V 정도의 범위를 흔들어야 한다. 반도체 프리앰프로는 이는 도달하기 어려운 값이다. 왜냐하면 전원전압이 결국 프리앰프의 출력 범위를 결정하기 때문이다(물론 게인도 중요하다).

이에 나는 수년 전에 만들었던 op amp 기반의 CMoy 헤드폰 앰프(위키피디아)를 개량하기로 하였다. 이것은 헤드폰 앰프 스테이션(하스)의 신정섭 님(sijosae)이 상세한 제작법을 소개하여 국내에 널리 알려진 것이다(제작 정보). 놀랍게도 이 글은 2002년 작성된 글이고 2006년 이후 신정섭 님은 하스 커뮤니티의 자작방에 글을 올리지 않고 있다. 근황이 무척 궁금하지만 나는 하스의 회원이 아니니 물어볼 수가 없다. 그의 작품은 외국에서도 많이 알려져 있다. 궁금하다면 Sijosae's DIY Gallery를 방문해 보자.

헤드폰 앰프는 프리앰프로 써도 별 문제가 없는 것으로 안다(그 역은 항상 성립하지는 않는다). 그렇다면 별도의 목적을 갖고 있는 프리앰프가 진공관 싱글 앰프의 초단에 쓰여도 되는가? 진공관 전력증폭회로가 필요오하는 전압의 폭보다 훨씬 낮은 것은 사실이다. 그러나 침실에서 그다지 크지 않은 음량으로 듣는 것이 목적이라서 문제는 없을 것으로 생각한다.

초단, 드라이브단, 위상반전단...

여기에서 잠시 진공관 앰프의 회로 구성에 대해서 잠깐 논하기로 한다. 위상반전단(inverter)은 푸시-풀 앰프에서 필요한 것이니 제외하기로 한다. 

사진 출처: Lenard Audio Institute
위의 그림을 보면 출력관을 구동(drive)할 전압을 만들기 위해 pre-amp와 driver의 두 단계(stage)를 거친다. 이것은 흔히 이야기하는 초단과 드라이브단을 각각 일컫는 것으로 보인다. 그러나 우리나라에서는 pre-amp라고 하면 특정한 목적이 있는 별도의 장비(즉 power amplifier 혹은 integrated amplifier와 구별되는)로 인식되는 것 같다. 소출력 앰프라면 진공관 한 알을 가지고서 프리앰프과 드라이버의 두 stage를 전부 담당하도록 설계하는 것이 보통이다. 초단, 위상반전단, 드라이브단 및 출력단의 의미를 서병익오디오 기술칼럼에서 확인해 볼 수 있다(링크).

헤드폰 앰프의 개조

내가 신정섭 님의 제작 정보를 따라서 만든 헤드폰 앰프는 게인이 약 1.3 정도에 불과하다. 그래서 저항을 각 채널에서 하나씩 바꾸어서 11배(20.8 dB)로 만들었다. 이렇게 하면 43 오극관 전력증폭회로에 잠시 물려서 사용했던 프리앰프의 그것과 거의 비슷하다. 사용된 op amp는 LF353(datasheet)이다. 


원래 op amp는 직류 양전원이 필요하다. CMoy 헤드폰 앰프에서는 9 V 전지 두 개를 직렬로 연결하여 +9/0/-9 V를 얻는 것이 기본이고, 신정섭 님의 버전에서는 9 V 전지 하나에 캐패시터와 저항을 연결하여 이를 반분하여 +4.5/0/-4.5 V를 만든다. 나는 갖고 있는 SMPS 어댑터를 사용하기로 했다. 9 V, 24 V 및 32 V의 것을 전부 연결해 보았다. 부품의 내압에는 문제가 없다. LF353 데이터시트에 의하면 최대 공급 전압 범위는 ±18 V이니 안전하다. 물론 게인을 더 올리지 않으면 출력 전압이 여기에 접근하지 못할 것이다.

TDA7297 '반찬통 앰프'가 희생되었다.
소리를 들어 보았다. 음량 수준은 바로 수일 전까지 사용하던 진공관-MOSFET 하이브리드 프리앰프와 비슷하다. 고급 op amp라고 할 수는 없지만 잡음 수준도 양호하다.

반찬통 안의 남은 공간이 넉넉하다.

여분으로 보유한 op amp (TL072와 NE5532). 회로 기판에 지금은 LF353이 꽂혀 있는 것은 아마도 이들 중에서 잡음이 제일 적어서 선택된 것 같다.
만약 내가 인내심이 충분했더라면 AliExpress 혹은 eBay에서 몇 달러에 판매하는 NE5532 preamplifier board를 구입하여 사용했을지도 모른다. 그러나 가장 최근에 주문한 물건이 한 달이 훨씬 넘도록 배송이 되고 있지를 않아서 당분간은 해외 구매를 자제하려고 한다.

2018년 10월 26일 금요일

awk와 sed를 사용하여 muti-fasta 파일의 서열 ID를 일괄적으로 바꾸기

수십 개의 대장균 유래 MiSeq 데이터를 Unicycler(GitHub 링크)로 조립하였다. 실행 결과물은 전부 샘플별 디렉토리에 나뉘어 저장된 상태이다. 디렉토리 이름은 전부 다르지만, 그 내용물의 파일 이름은 전부 같다. 예를 들자면 최종 조립 결과 파일의 이름은 모두 assembly.fasta이다. 이를 한데 모아서 저장하자면 파일 이름에 샘플의 이름이 들어가도록 바꾸어야만 한다.

이 작업은 파일의 내용을 직접 건드리는 것이 아니라서 비교적 쉽다.

1
2
3
4
5
$ mkdir final
$ find . -name assembly.fasta | while read f
> do
> cp $f `echo $f | awk -F/ '{sub(/assembly/, ""); print "final/"$2"_plasmid"$3}'`
> done

이상의 명령을 실행하면 ./123/assembly.fasta 파일은 ./final/123_plasmid.fasta로 바뀐다. 세 번째 줄을 참고하면 awk의 sub() 함수를 사용하여 assembly라는 문자열을 제거하고, 파일 경로로부터 샘플의 이름(원래는 디렉토리 이름이었음)을 추출하는 것이 핵심이다.

다음으로는 각 fasta 파일로 들어가서 서열 ID를 바꾸는 방법을 알아보자.

1
2
3
4
5
6
7
$ ls *fasta
1039_plasmid.fasta  1536_plasmid.fasta ... 
$ ls *.fasta | while read f
> do 
> h=${f%%_*}
> sed -i "s/>/>s${h}p/" $f
> done

현 디렉토리에 존재하는 .fasta 파일의 이름을 변수 f에 넣은 다음 밑줄('_')부터 끝까지를 제거하는 명령(다섯 번째 줄)을 먼저 눈여겨 보자. Shell에서 문자열을 조작하는 매우 유용한 방법이니 잘 기억해 두어야 한다. %%, %, ##, #에 따라서 삭제의 범위와 위치 기준이 달라지고, 치환도 가능하다. 상세한 사항은 Advances Bash-scripting Guide: Manipulating Variables를 참조하자. 다음에는 서열 ID를 sed 명령으로 치환한다. sed의 -i 옵션은 파일을 직접 고치는 것을 뜻한다. 따라서 실수를 하면 곤란하다. 그러나 -i.bak라고 입력하면 원본파일.bak이라는 백업본이 남는다.  흥미롭게도 -i와 SUFFIX 문자열 사이에는 공백이 없어야 한다. Shell variable을 sed의 치환 명령어 내에서 그대로 쓸 수 있다는 것이 매우 편리하다. 단, 명령어를 겹 따옴표로 둘러싸야 한다. 이상을 실행하면 서열의 ID는 다음과 같이 바뀐다.

(변경 전) >1 length=25428 depth=1.01x
(변경 후) >s1039p1 length=25428 depth=1.01x

awk를 사용하면 똑같은 일을 좀 더 복잡하게(?)할 수 있다. Shell variable을 awk 명령어 내에서 쓰려면 -v 옵션을 이용해야 하고, 서열 ID가 있는 라인과 서열만 포함한 라인을 모두 출력하려면 next 명령을 써야 한다. 그러나 printf() 함수를 이용하여 좀 더 세련된 결과를 얻을 수 있다. 다음의 사례에서 세번째 awk 명령어에 주목해 보자. awk의 sub( ) 함수 용법을 먼저 이해해야 하고, next의 의미는 곧 이어서 설명하겠다.


1
2
3
4
$ ls *fasta | while read f
> do
> awk -v s="${f%%_*}" '$1~/^>/{sub (/>/, ""); printf ">s%d-p%d %s %s\n", s, $1, $2, $3; next}{print}' ${f} > ./edit/${f}; done
> done

세 번째 줄의 awk 명령어 구조가 좀 난해하다. 이를 이해하려면 다음의 두 명령어가 무엇이 다른지를 알아야 한다.

  1. awk '조건{명령어A}{명령어B}' 파일
  2. awk '조건{명령어A; next}{명령어B}' 파일
작업 중이 라인이 조건에 맞으면 {명령어A} 블록을 실행하고, 맞지 않으면 {명령어B} 블록을 실행하는 것이 아니다! 첫 번째 명령어는 조건에 맞으면 A를 실행하고, 같은 라인에 대해서 그대로 B를 수행함을 뜻한다. B를 수행함에 있어서는 앞에서 선언한 조건과는 상관이 없다. 따라서 조건에 맞는 줄에 대해서 A를 실행하고, 다음 줄로 넘어가려면 그 블록 안에서 next 명령을 선언해야 한다. 이렇게 해야 조건에 맞지 않는 줄에 한하여 명령어 B 블록이 수행된다. 이렇게 표현하는 것이 마음에 들지 않으면 if ~ else ~ 구문을 써야 한다.

아무 fasta 파일에 대해서 다음의 명령을 실행시켜 보라. NR은 현재 작업 중인 라인의 번호를 의미한다. 그 다음에는 next를 제거한 뒤 다시 똑같은 명령을 실행해 보라. 어떤 차이가 있는지를 쉽게 이해할 수 있을 것이다.

$ awk '$1~/^>/{print NR, ": header"; next}{print NR, ": seq"}' test.fasta

오늘 소개한 방법이 최선이 아닐 수도 있다. 다음 웹페이지에서 소개하는 짤막한 awk 코드에도 공부할 것이 많이 숨어 있다.

one liner to split a multifasta into separate single file


1
2
3
4
print 'hello world!'cat hg18.fa | awk '{
        if (substr($0, 1, 1)==">") {filename=(substr($0,2) ".fa")}
        print $0 > filename
}'


2018년 10월 24일 수요일

블로그 포스트에 코드 조각 삽입하기

코드 조각(code snippet)을 블로그 포스트에 예쁘게 삽입하려면 정성을 기울여야 한다. 한때 Syntax Highlighter를 써 보려고 노력했지만 블로그의 템플릿을 수정하는 것도 까다로웠고 실제 적용한 뒤에 페이지를 로드해 보면 제대로 불러오는데 시간이 많이 걸린다는 느낌이 들었다.

좀 더 간편한 방법은 없을까? Stack Overflow에서 그 해답을 찾았다.

Formatting code snippets for blogging on Blogger

첫번째는 hilite.me 웹사이트를 이용하는 것이다. 웹사이트 주소도 아주 외우기 쉽다. '하이라이트 미' 아니겠는가? 여기를 방문하여 소스코드 창에 원하는 코드 조각을 입력하고 언어의 종류와 스타일을 결정한 뒤 나오는 HTML 코드를 복사하여 블로그 편집창에 넣으면 된다. 이렇게 말이다. 편집모드는 HTML로 놓는 것이 좋다.


#!/usr/bin/perl

while (<>) {
    chomp;
    my @data = split /\t/, $_;
    print "$data[0]: $data[3]\n";
}

이러한 용도의 웹사이트는 몇 군데가 더 있다.
또 다른 사용자는 다음의 css 스크립트를 복사하여 쓰는 것을 제안하였다. 중간의 블록에 코드를 삽입한 다음 이를 그대로 블로그 편집창에 넣으라는 것이다. syntax highlighting 기능은 없지만 소스 코드를 그대로 보이는 데에는 유용하다. 매우 단순한 방법이다.

 <pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; 
                color: #000000; background-color: #eee;
                font-size: 12px; border: 1px dashed #999999;
                line-height: 14px; padding: 5px; 
                overflow: auto; width: 100%">
       <code style="color:#000000;word-wrap:normal;">

            <<<<<<<YOUR CODE HERE>>>>>>>

       </code>
 </pre>

이를 한 번 적용해 보았다.

#!/usr/bin/perl

while (<>) {
    chomp;
    my @data = split /\t/, $_;
    print "$data[0]: $data[3]\n";
}       

블로그 문서 내에서 '<'과 '>'을 제대로 표시되게 하는 것은 여전히 어렵다. 몇 번씩 '미리보기'로 확인을 해야 하니까 말이다. 오늘 찾은 방법은 잘 기억해 두었다가 활용하도록 하자.

2018년 10월 23일 화요일

Protein sequence clustering과 dN/dS 분석

새로운 과제를 시작하면서 단백질 서열 클러스터링이라는 매우 고전적인 일을 하게 되었다. 단백질 패밀리의 분석, pan-genome 계산, ortholog 추출, dN/dS 분석, 데이터셋의 크기 축소 등 단백질 클러스터링은 매우 여러 분야에 쓰인다. 자료를 조사하면서 지난 2월에 작성했던 글인 Usearch 맛보기도 업데이트하였다. 오늘 작성하는 글은 "How to cluster protein sequences: tools, tips and commands"을 많이 참고하였다.

단백질 서열 클러스터링 기법은 크게 다음의 두 가지로 나눌 수 있다.
  • Sequence-based clustering: CD-HIT, UCLUST, USEARCH...
  • Graph-based clustering: LAST, legacy BLAST, BLAST+...
  • Network clustering: MCL
Graph-based clustering에서는 모든 단백질 서열 사이의 1:1 similarity 정보를 얻어내는 것이 필요하다. BLAST 계열의 프로그램을 사용하는 경우 결과물을 파싱하여 Reciprocal Best BLAST hit(RBB, RBH, or biodirectional best hit BBH)을 추출하여 활용하면 되는 것이다. RBB는 두 genome 사이에서 ortholog candidate를 산출하는 데에도 널리 이용된다.

RBH으로부터 ortholog를 정확하기 추출하기 위한 BLAST option을 제안한 논문이 2008년에 발표된바 있다(PMID: 18042555). 이를 기반으로 하여 다음의 BLASTP 옵션이 제안되었다. 논문에서는 첫번째 조건만을 제안하였다. 이렇게 함으로써 ortholog의 수는 가장 많게, 그러나 error는 최소화할 수 있었다고 한다.
  • -F "m S" -s T (combination of soft filtering and Smith-Waterman final alignment)
  • E value: 10-5 또는 10-6 이하
BLAST 프로그램은 database search와 alignment의 두 단계로 이루어지는데, soft filtering이란 첫번째 단계에서만 low-complexity sequence를 마스킹하는 것을 의미한다(-F "m S"). 기본 조건은 -F T -s F이다. -F "m S"라는 옵션이 있다는 것은 blastall의 모든 옵션이 수록된 페이지(링크; 혹은 명령행에서 blastall이라고만 치면 나오는 텍스트)에서 찾아보기 어렵다.

이상의 옵션은 legacy BLAST에 대한 것이다. 그러면 요즘 권장되는 BLAST+에서는 무엇이라고 옵션을 제공해야 하는가? NCBI의 매뉴얼 페이지(링크)를 참조해 보면 -soft_masking T -use_sw_tback (-evalue 10-5)일 것으로 추청된다. 

다음의 북 챕터에서는 BLAST+를 이용하여 상동유전자 정보를 찾고, 이로부터 dN/dS 분석일 실시하는 방법을 친절하게 설명하였다. 사용된 Perl script(BLAST+ 결과물에서 RBB를 추출하는 스크립트 포함)는 제1저자인 Daniel Jeffares의 웹사이트에서 입수 가능하다고 해 놓았다.

A Beginners Guide to Estimating the Non-synonymous to Synonymous Rate Ratio of all Protein-Coding Genes in a Genome. Methods Mol Biol. 2015;1201:65-90. doi: 10.1007/978-1-4939-1438-8_4. PMID.

그러나 지금 이 사이트를 방문해보면 figshare에 Perl 스크립트 일부만이 남아있다. 그러나 Daniel은 이를 기반으로 하여 VESPA라는 파이프라인을 개발하여 2017년 PeerJ Comput. Sci.에 발표하였다(VESPA: Very large-scale Evolutionary and Selective Pressure Analyses. 저널 GitHub 매뉴얼). VESPA를 공부하려면 단순히 RBB를 찾으려는 목적이 아니라 더 큰 안목을 가지고 착수해야 할 것이다.

InParanoid를 사용해서 두 단백질 세트 사이에서 ortholog를 찾을 수도 있다. 그런데 Why InParanoid sucks라는 글(2014년도)을 보니 이제는 이 프로그램을 떠나야 하는 것이 아닐까하는 생각도 들기 시작하였다. 알고리즘적으로 특별히 문제가 되는 것은 아니지만 말이다. 어쩌면 blast_rbh.py 스크립트가 바로 내가 찾던 것이 아닌지 모르겠다. 이를 다운로드하여 실행해 보았다. duplicate가 있다는 경고는 나오지만 결과 파일에서 이들이 어느 것인지를 보여주지는 않는다. 상동유전자를 찾는 프로그램으로서 GET_HOMOLOGUES도 유용한 프로그램으로 여겨진다.


$ ls
A.faa  B.faa
$ python ~/script/blast_rbh.py -o example.tab -t blastp -a prot A.faa B.faa 

Done, 10 RBH found
Warning: Sequences with tied best hits found, you may have duplicates/clusters
$ ls
A.faa  B.faa  example.tab
$ head -n 1 example.tab 
#A_id B_id A_length B_length A_qcovhsp B_qcovhsp length pident bitscore

BLAST+ 분석 결과물에서 best hit(RBB는 아님)을 추출한 뒤 mcl로 클러스터링하는 명령행을 정리하여 보았다. 이는 서두에서 언급한 참고문헌에서 발췌한 것이다.

$ makeblastdb -in DB.fasta -dbtype prot -out DB
$ blastp -query example.fasta -db DB -outfmt '6 std qlen slen' -out output_tmp.list -evalue 1.03e-05
$ awk '{if($1!~/^#/ && $3>=50) print $1"\t"$2"\t"($3/100)}' output_tmp.list > hits.list
$ sort -nrk 3 hits.list | sort -k 1,2 -u > best_hit.list
$ mcl hits.list -I 1.8 --abc -o clusters.txt
$ awk '{if(NF>=2) print}' clusters.txt > clusters_after_threshold.txt

맨 아래의 awk 명령어는 singleton을 제거하기 위함이다.

마지막으로 대용량의 pan-genome 분석을 위한 새로운 프로그램을 하나 소개해 본다. 늘 Roary만 편식을 심하게 했었는데 이제는 다른 것에도 눈을 돌려볼 때이다.



2018년 10월 21일 일요일

독서 기록 - [디스럽션] 외 세 권

대출 기간이 임박하여 책 표지 사진을 찍은 뒤 곧바로 반납을 해 버려서 간단한 서지정보만 남긴다.


디스럽션

  • "사물인터넷 비즈니스의 모든 것"
  • 저자: 강시철
커넥슈머, 프라이버시 스왑...

모든 교육은 세뇌다

  • "4차 산업혁명 시대의 경쟁력, 몰입의 힘"
  • 호리에 다카후미 저|박흥규 감수|하진수 역
도서관에는 아직도 '4차 산업혁명 관련 도서' 서가가 따로 마련되어 있다. 과연 이 유행어가 내년까지 갈지 두고 보아야 되겠다.

다시 읽는 한국 현대사

  • "정치의 새로운 실천을 기대하며"
  • 양우진 저
근대사의 전 과정을 부정의 역사로 보는 진보 진영의 시각에 대한 보수주의자의 비판. 시각을 넓혀보자는 차원에서 고른 책이다.

열한 계단

  • "나를 흔들어 깨운 불편한 지식들"
  • 채사장 저(책 소개)
이 책을 읽기 전까지는 채사장(팟캐스트 지대넓얕 진행자, 블로그)을 전혀 몰랐다. 지대넓얕이란 '지적 대화를 위한 넓고 얕은 지식'을 뜻한다. 알쓸신잡보다 먼저 만들어진 낱말인가? 인문학 = 교양이 아니다. 인문학은 그 자체로서 의미가 있는 것이지 치장을 위하여 '소비'되는 것이 아닌데.. 물론 저자의 노력을 폄훼하고자 함은 아니다. 

한자 丁에는 '고무래'라는 뜻이 전혀 없다

丁 넷째 천간 정, 장정 정

단 두 획으로 이루어진 매우 간단한 모양의 한자이다. 장정이란 한 사람의 일꾼 몫을 하는 어른 남자를 뜻한다. 군대에 갈 연령, 즉 징집 연령에 달한 남자를 뜻하는 것이기도 하다.

이 한자는 한국 또는 중국인의 성씨에도 쓰인다. 우리 집안의 성이 바로 이 한자를 쓴다. 인구 비율로 훨씬 많은 鄭(나라 정, 나라 이름 정)과 구별하기 위해 흔히 丁자를 ‘고무래 정’이라고 부르기도 한다. 고무래는 곡식 낱알 등을 긁어모으는 농기구의 일종으로 이 글자와 모양이 똑같다.

그러나 이 글자 자체에 고무래라는 뜻(訓)은 전혀 없다는 것이 나의 상식이었다. 과거에 분명히 한자사전에서 이러한 설명을 보았었다. 심지어 어떤 사람이 丁자를 ‘갈고리 정’이라고 부르는 바람에 아연실색을 한 적이 있었다. 남의 성씨를 마치 공포영화에 나올 법한 흉칙한 물건으로 칭하다니!

며칠 전에 컴퓨터를 만지작거리면서 호기심에 丁자의 의미를 검색해 보았다. 그런데 놀랍게도 ‘고무래’라는 뜻이 있는 것으로 나타나지 않는가?

먼저 네이버 한자사전. ‘고무래’라는 뜻이 맨 위에 있다.

네이버 한자사전 캡처

다음 사전. 여기에는 정확하게 풀이하였다. ‘※ 흔히 「고무래 정」이라 칭하는 것은 글자 모양에 따른 속칭임.’이라는 추가 설명이 달려 있다.

다음 사전 캡처

나무위키. 여기도 고무래를 맨 위 뜻으로 올려 놓았다.

나무위키 캡처

이외에도 한자 학습 사이트에서 丁자가 ‘고무래’를 뜻한다고 기록한 경우가 많다. 이는 잘못된 정보이다. 마치 ‘입 구(口)’자를 네모를 닮았다 하여 ‘네모 구’라 부르다가 인터넷 사전에 ‘네모’라는 뜻으로 등재하는 것과 다르지 않다.

정말 내가 알고 있는 丁의 뜻이 맞는지 확인하기 위해 직접 도서관에서 민중서림 한자대사전(전면개정·증보판)을 찾아보았다.

한자대사전 사진

그 어디에도 ‘고무래’라는 뜻은 없다. 글자의 본래 모양은 ‘못’이지 ‘고무래’가 아니다. 게다가 ‘고무래정으로 훈함은 잘못’이라고 명기되어 있다. 홍윤표 교수 또한 이 한자에 ‘고무래’ 해석이 사용된 적이 없음을 분명히 하였다(‘사나이’의 어원).

사실에 기반하지 않은 엉터리 지식이 인터넷에서 떠돌며 진짜 지식으로 둔갑하는 것이다. ‘인터넷에서 보았다’는 것은 그 지식의 정확함을 입증하지 못한다.

2018년 10월 18일 목요일

구글플러스 검색법

블로그로 작성한 글은 별도의 검색창이 있으니 찾는데 그렇게 큰 수고가 들지 않는다. 하지만 구글플러스에 내가 쓴 글을 찾는 방법을 아직도 잘 모르고 있었다. 연주회가 끝나고 기타연주자 박규희 씨와 찍은 사진을 구글플러스에서 찾느라 애를 먹은 적이 있었다.

구글을 로그아웃한 뒤 구글 검색창에 숫자로 된 내 아이디를 넣으면 내가 쓴 공개글이 다 보인다고 한다. 이외에도 몇가지 유용한 팁이 다음에 소개되어 있다.

https://plus.google.com/+googlekorea/posts/XND1ENoA3Mc

Whizz Xanadu 님이 쓴 글이다.

그런데 구글플러스 숫자 계정을 어떻게 확인해야 할까? 구글플러스 -> 프로필을 클릭하면 주소창 맨 끝에 숫자 계정이 잠깐 나왔다가 순식간에 '+영문이름'으로 바뀐다. 너무나 당연하고 간단하지만, 평소에는 일부러 찾아보지를 않으니 알 수가 없다.

또 검색을...

이렇게 짧은 글을 구글플러스가 아니라 블로그에 남기는 것은 나중에 쉽게 검색을 하기 위함이다. 아, 부끄럽다.