가끔 유튜브에서 비디오/오디오를 듣다가 맘에드는건 북마킹을 해두곤 했는데, 그래도 가끔은 퍼가고 싶을때가 있다.
오픈소스 사이트를 뒤적거리며 요긴한걸 둘러보던중에 발견한 놈이 바로 그럴때 쓰기 좋겠다.
Go http://www.4kdownload.com/

012345

다운로드: http://www.4kdownload.com/download

Video Downloader YouTube to MP3
Mac OS X 10.5 or later
 Microsoft Windows

(흠. 티스토리 파일업로드는 10MB 제한이 걸려있군. 별수없이 분할압축) 
Posted by Jason Ryu
,
좋아하지 않아도 익숙해져버리면 다른 것으로 바꾸기가 참 어렵다.
네이버 초기 화면에 나오는 "뉴스" 내용들을 보면 눈에 거슬리는것이 많아 웬만하면 안본다.
그런데, 지난 수년동안 (아무생각없이) 사용해왔던 검색엔진으로서 네이버는 너무 익숙해져버려서 다른 검색엔진의 결과화면으로는 뭔가가 부족한 느낌을 지울수가 없다.  무슨 차이가 있는지 아무리 생각해봐도 스스로에게 납득이 안가지만, 스치듯 떠오르는 것 하나는 '네이버 지식인 결과'와 같이 "다른 사람들의 생각"을 볼 수 있는 그런 부분이 아닐까하는.........

아뭏든 일차검색은 네이버로하고, (늘 부족했기에) 곧이어서 "구글링"을 사용하게 된다.

사파리 설치시 기본값으로는 '구글, 야후, 빙'만 있어서 굳이 애써 별도의 프로그램을 설치해서 세팅해줘야 네이버추가가 된다.
필요한 프로그램은 "GLIMS". http://www.machangout.com/


설치후에 사파리 재구동하니 Glims란 아이콘이 보인다.


 Search Engines List에서, 네이버를 추가한다.
쿼리URL은  http://search.naver.com/search.naver?where=nexearch&query=#query#
이건 어케아느냐? 네이버 메인페이지에서 검색창에 '검색'이라고 입력한후 검색을 실행해보면 된다.

 사용자가 입력한 글자가 주소창에 보인다. 그게 쿼리주소정보. 검색이라는 글자대신 '#query#'이라고 사용하도록 한다.


Posted by Jason Ryu
,
테터툴즈나 XE에서 사용하든 소스코드 하일라이터를 티스토리에서 사용하려고, 웹검색을 해보니 역시나 해결책이 있다는 내용!! :-)

먼저, 해당 스크립트 소스를 제공하는 사이트(http://alexgorbatchev.com/SyntaxHighlighter/)에서 파일을 다운로드 받는다.


사용법은 로 가서 확인한다. 그걸 보고 따라해봤더니, ^^ 잘된다.

적용했던 절차를 간략히 적어보면,...
압축파일을 풀어, 생성된 디렉토리들 중에서 scripts와 styles에 들어있는 파일들을 모두 티스토리에 업로드한다.

자신의 (티스토리) 블로그에 접속한 후, <관리자(admin)>메뉴로 들어가면 HTML/CSS 편집하는 화면에서 왼쪽 그림과 같은 화면을 찾을 수 있다.

여기에 파일을 올린다.

막상 올리게되면 '파일목록'에서는
images/shBrushSql.js와 같은 형태로 보여지게 된다. 즉, 디렉토리가 무조건 images로 된다는 것이다.

어쨋든 업로드되는게 다행이다. 안그럼 적용못할테니까.

브러시파일(shBrush로 시작하는 스크립트파일)은 자신이 필요하다고 생각하는 것만 올린다.

그 다음에는 skin.html 내에서 다음 라인을 찾는다.
<link rel="stylesheet" media="screen" type="text/css" href="./style.css" />

그리고, 그 다음줄에 아래 내용을 넣는다. 브러시 스크립트파일은 필요에 따라 가감한다. 
 
<script type="text/javascript" src="./images/shCore.js"></script>
  
<script type="text/javascript" src="./images/shBrushCpp.js"></script>
<script type="text/javascript" src="./images/shBrushCSharp.js"></script>
<script type="text/javascript" src="./images/shBrushPerl.js"></script>
<script type="text/javascript" src="./images/shBrushPython.js"></script>
<script type="text/javascript" src="./images/shBrushJava.js"></script>
<script type="text/javascript" src="./images/shBrushNasm8086.js"></script>
  
<link rel="stylesheet" type="text/css" href="./images/shCoreDefault.css">
 
<script type="text/javascript">
//<![CDATA[
    SyntaxHighlighter.config.bloggerMode = true;
    SyntaxHighlighter.all();
//]]>
</script>

마지막으로, 포스팅 글을 작성할때, HTML모드로 전환해서
<PRE class="brush:java"> 
코드
</PRE>

를 이용하면 된다.
 
Posted by Jason Ryu
,


1. 텔넷 프로토콜
텔넷은 인터넷상의 다른 컴퓨터로 로그인을 할 수 있게 하는 프로토콜이다.  텔넷에서 클라이언트는 입력 디바이스(키보드)와 출력 디바이스(모니터)를 가지며, 텔넷 서버 프로그램을 띄우고 있는 원격 호스트에 로그인 한다.  이때 원격 호스트의 입력과 출력은 클라이언트의 입력과 출력으로 대치된다. 텔넷 프로토콜의 기본목표는 텔넷 데몬과 텔넷 클라이언트를 통한 원격 로그인이지만 많은 다른 용도로 사용될 수도 있다.

원격로그인은 모니터와 키보드는 그대로인대 컴퓨터 본체만 원격지에 있는 것으로 대치된다는 말이다.  이렇게 될 경우 원격지의 컴퓨터는 키보드와 모니터의 상태 즉 터미널의 상태를 직접적으로 제어할 수가 없다.  즉 터미널의 크기라든지, 어떤 문자를 보내면 어떤 문자가 찍히는 지를 알 수가 없다. 때문에 원격지의 컴퓨터가 클라이언트의 터미널을 제어하기 위한 약속이 필요하다.  그것이 바로 텔넷 프로토콜이다.  텔넷 프로토콜은 RFC854에 정의되어 있다.


 2. NVT
텔넷 프로토콜의 가장 기본적인 것은 Network Virtual Terminal(NVT)라는 제어 문자 집합이다.  NVT는 기본적인 터미널 제어 문자들을 정의해 놓았기 때문에 텔넷 클라이언트는 이 문자들을 적절히 해석해서 터미널을 세팅할 수 있어야 한다.  NVT는 다음과 같은 것들을 정의해 놓았다.
  Line Feed   LF   10 
  Carriage Return    CR    13 
  Bell   BEL    7 
  Backspace   BS    8 
  Horizontal Tab   HT    9 
  Vertical Tab   VT    11 
  Form Feed   FF    12 

NVT는 모두 우리가 알고있는 ascii 문자셋이다.  실제 프로그래밍시 문제가 되는것은 LF와 CR의 처리이다.  서버 프로그램마다 LF와 CR의 처리 방법이 다르기 때문이다.  또한 한글을 처리할 수 있도록 8bit를 사용한다면 보통 LF의 처리가 제대로 안된다.  여기서 제작할 텔넷 클라이언트는 정확한 스펙에 다르기 보다는 융통성있게 사용될 수 있도록 경험에 의거해 이러한 것을 다루었다.


3. 텔넷 명령어
텔넷 프로토콜은 서버와 클라이언트 서로를 제어하기 위하여 많은 명령어를 사용한다.  이러한 명령어는 IAC(interpret as command)문자 다음에 보내진다.  IAC는 아스키 코드 255번이다.
이름 ASCII 의미
SE 240  End of sub-negotiation  parameters
NOP 241  No Operation
DM 242  Data Mark. 데이터 스트림내의 SYNCH 이벤트 위치를 나타낸다.  반드시 TCP Urgent Notification과 함께 한다.
BRK 243  Break. "break" 혹은 "attention" 키가 눌러졌음을 나타내는 명령어.
IP 244  NVT가 연결된 프로세스를 Suspend, Interrupt, 혹은 Abort하는 명령어.
AO 245  Abort Output. 현재 프로세스가 수행을 종료하게 하지만, 사용자에게 출력을 전송하지는 않는다.
AYT 246  Are You There. AYT가 수신된 가시적인 증거들을 NVT로 되돌려보낸다.
EC 247  Erase Character. 수신자는 데이터 스트림에서 가장 최근의 삭제되지 않은 문자를 삭제해야 한다.
EL 248  Erase Line. 데이터 스트림에서 이전의 CRLF를 포함하지 않는 문자들을 삭제한다.
GA 249  Go Ahead. 특정상황에서 상대편에게 전송가능함을 알려주는데 사용하는 명령어.
SB 250  SuB-negotiation. 서브옵션을 받으라는 명령어.
WILL 251  해당 옵션을 사용하겠다는 것을 알려주는 명령어.
WONT 252  해당 옵션을 사용하지 않겠다는 것을 알려주는 명령어.
DO 253  해당 옵션을 사용하라고 상대편에게 요청하는 명령어.
DONT 254  해당 옵션을 사용하지말라고 상대편에게 요청하는 명령어.
IAC 255  Interpret As Command

표에서 보듯이 수많은 텔넷 명령어가 있지만 실제적으로 모두 다 사용되고 있는것은 아니다.  옵션을 받으라는 WILL, WONT, DO, DONT 와 서브옵션을 받으라는 SB, 서브옵션의 끝을 말하는 SE, 그리고 이전의 단방향 터미널과 호환성을 지니기 위해 쓰이는 GA가 주로 쓰이는 명령어이다. 


4. 텔넷 옵션
텔넷의 거의 모든것은 주로 옵션을 통해 설정된다.  이 옵션들은 언제든지 재설정될 수 있으며, 서버나 클라이언트 어느 쪽에서도 설정할 수 있다.  옵션의 정확한 스펙은 각각의 rfc를 참고하여야 한다.
ASCII 이름 RFC번호
1 echo 857
3 suppress go ahead 858
5 status 859
6 timing mark 860
24 terminal type 1091
31 window size 1073
32 terminal speed 1079
33 remote flow control 1372
34 linemode 1184
36 environment variables 1408
 <  중요한 옵션들의 rfc 번호 >

옵션은 클라이언트나 서버 어느 한쪽에서 요구를 하여, 다른 한쪽에서 그것에 응답하는 형태로 설정된다.  옵션을 요구할 때는
IAC + <요구의 형태(텔넷 명령어)> + <옵션>
의 차례로 코드를 보내며, 응답 또한 같은 방식이다.

요구의 형태는 다음의 4가지가 있다.
기호 ASCII 요구형태
WILL 251 옵션을 사용하겠다.
DO 252 (상대에게) 옵션을 사용하라
WONT 253 옵션을 사용하지 않겠다.
DONT 254 (상대방에게) 옵션을 사용하지 마라.
WILL이나 WONT는 옵션을 요구하는 쪽이 그 옵션을 사용 또는 사용하지 않겠다는 뜻이며, DO나 DONT는 상대방측에 옵션을 사용 또는 사용하지 말라고 요구하는 것이다.  한쪽에서 요구를 하면 상대방은 응답을 해야 한다.

요구와 응답의 조합은 다음의 경우만이 가능하다.
요구 응답 응답의 의미
WILL DO 옵션 사용을 허락한다.
WILL DONT 옵션 사용을 허락하지 않는다.
DO WILL 옵션을 사용하겠다.
DO WONT 옵션을 사용할 수 없다.
WONT DONT 옵션을 사용하지 않겠다.
DONT WONT 옵션을 사용하지 마라.

SB 명령어는 서브 옵션을 필요로 할때 사용된다.  터미널 타입이나, 터미널의 크기 등을 보내고 받을 때에는 하나 이상의 옵션 파라미터가 필요하므로 이러한 서브옵션을 사용한다.

텔넷 클라이언트로 텔넷의 옵션 협상 과정을 살펴보자.  아래 화면은 일반 텔넷을 사용하여 유닉스 시스템에 로그인 할때 텔넷이 주고 받는 옵션들이다.
$ telnet
telnet> toggle options
Will show option processing.
telnet> open localhost
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
SENT DO SUPPRESS GO AHEAD
SENT WILL TERMINAL TYPE
SENT WILL NAWS
SENT WILL TSPEED
SENT WILL LFLOW
SENT WILL LINEMODE
SENT WILL OLD-ENVIRON
SENT DO STATUS
SENT WILL XDISPLOC
RCVD DO TERMINAL TYPE
RCVD DO TSPEED
RCVD DO XDISPLOC
RCVD DO NEW-ENVIRON
SENT WONT NEW-ENVIRON
RCVD WILL SUPPRESS GO AHEAD
RCVD DO NAWS
SENT IAC SB NAWS 0 80 (80) 0 25 (25)
RCVD DO LFLOW
RCVD DONT LINEMODE
RCVD DONT OLD-ENVIRON
RCVD WILL STATUS
RCVD IAC SB TERMINAL-SPEED SEND
SENT IAC SB TERMINAL-SPEED IS 9600,9600
RCVD IAC SB X-DISPLAY-LOCATION SEND
SENT IAC SB X-DISPLAY-LOCATION IS "monac:0.0"
RCVD IAC SB TERMINAL-TYPE SEND
SENT IAC SB TERMINAL-TYPE IS "XTERM"
RCVD DO ECHO
SENT WONT ECHO
RCVD WILL ECHO
SENT DO ECHO
Debian GNU/Linux 1.3 monac.hackers.org
monac login: Connection closed by foreign host.

프로토콜설명서(한글판) - 다운로드!!


Posted by Jason Ryu
,
맥북  iTunes에서도 실시간 가사를 볼 수 있었구나. 진즉에 검색해볼껄...(지금이 진즉인가)
이젠 가사를 보면서 감상도 하고, SNS기능도 있다...
다운로드 Download
http://www.appleforum.com/application/55873-국내-음악-가사를-찾아주는-가사수작을-소개합니다.html 


설치후 사용하다가 프로그램을 그냥 복사해서 다른곳으로 옮기면 더이상 동작을 하지 않는다.(왜인지는 모르겠지만)
그럴경우 맥용 AppCleaner같은것을 이용해서 프로그램을 삭제한후에 새로 압축풀어서 사용하면 된다.

위의 파일들을 직접 삭제해도 된다.

아무래도 첫 구동시 생성되는 환경파일과 연관이 있을듯...


 
Posted by Jason Ryu
,