달력

122013  이전 다음

텍스트 브라우저 lynx

2013. 12. 30. 01:39

http://www.vordweb.co.uk/standards/download_lynx.htm 에서 zip파일 다운로드 받아서 C:\lynx_w32 폴더에 압축 풀린 형태로 만든 후 lynx.bat 를 실행하면 됩니다.


G를 누르고 http://cnn.com/ 에 들어간 모습니다.


텍스트 브라우저의 전설입니다.


Posted by kenu허광남
TAG Lynx

댓글을 달아 주세요

윈도우 사용자를 위한 hwp 뷰어는 한컴에서 공식적으로 배포하지 않습니다.

대신 2014 체험판을 다운받기 위해서 한컴에 서포터즈로 가입해야 하고, ... 한컴의 고육지책으로 보입니다.


부처님의 자비로우심 덕분에 아직은 예전 버전의 viewer를 다운로드 받을 수 있는 곳이 있습니다.

윈도우의 복사하는 중(스님), 종료하는 중(스님), 이동하는 중(스님), 다운로드 하는 중(스님) 등 여러 스님께서 중생을 구제해주시는 듯합니다. 아미타불



Posted by kenu허광남

댓글을 달아 주세요

time server

2013. 12. 28. 12:44

#time sync

0 2 * * * /usr/sbin/ntpdate -s time.bora.net


Posted by kenu허광남
TAG Time

댓글을 달아 주세요

node.js는 브라우저에서 동작하지 않기 때문에 디버깅을 돌리기 위해서는 도구가 필요합니다. 이클립스에 node.js 플러그인을 깔아서 하는 방법이 있고, node-inspector 도구를 이용하는 방법 두 가지가 있습니다. node-inspector는 크롬브라우저를 독립적으로 띄워서 크롬 인스펙터처럼 디버깅 할 수 있게 합니다.


설치

npm install -g node-inspector


node-inspector 명령이 위와 같이 설치되면 node.js 로 만들어진 프로그램을 디버그 가능한 모드로 실행합니다. 다음과 같이 node.js를 두 가지 디버그 모드로 실행할 수 있습니다. 5858 포트를 엽니다.



디버그 모드 실행

node --debug ex.js

실행 처음에 브레이크포인트 적용된 모드로 실행
node --debug-brk ex.js

다른 명령창에서 node-inspector 를 실행합니다.

node-inspector 

크롬브라우저가 따로 뜹니다.

http://localhost:8080/debug?port=5858 주소를 이용합니다.



브레이크포인트를 잡으면 실행시 디버그가 가능합니다. 변수의 메모리를 확인할 수 있고, Console탭을 통해서 this 등의 키워드가 가르키는 내용도 확인이 가능합니다. 실행된 변수 위에 마우스를 올리면 내용을 풍선도움말로 띄워서 보여줍니다.


만약 디버그모드로 떠 있는 node.js 가 없다면 다음과 같은 메시지를 보게 됩니다.



전체적인 구조는 다음과 같습니다.



관련 링크: 

node.js debug: 

http://nodejs.org/api/debugger.html


node-inspector 

https://github.com/node-inspector/node-inspector#node-inspector




Posted by kenu허광남

댓글을 달아 주세요

이클립스 컬러 테마

java 2013. 12. 27. 12:38

http://eclipsecolorthemes.org/


딱 마음에 들지는 않지만 분위기 전환용으로는 괜찮습니다.

Color Theme 플러그인과 EPF(Eclipse Preference File)로 변경가능합니다.

EPF로 다운로드 받은 경우 File > Import 를 통해서 General > Preferences를 통해서 가져올 수 있습니다.


플러그인을 통해서 변경하면 편합니다.

http://eclipse-color-theme.github.com/update 주소를 Help > Install New Software... 메뉴를 통해서 추가하면 됩니다.


컬러 테마가 설치되면 Preferences에서 color 검색으로 쉽게 볼 수 있습니다. 다양한 세팅이 있습니다. Aptana, Notepad++, Sublime Text 2 등 유명한 편집기 테마가 목록에 있습니다.


이점이 아쉬운데, 이크립스 전체는 아니고, 편집기 영역만 변경됩니다. Ctrl+M으로 전체화면으로 키워서 편집하면 괜찮습니다.


문제는 파일 비교할 때인데, 참 난감할 수 있습니다.


가끔 분위기 전환용으로 추천합니다.


Posted by kenu허광남

댓글을 달아 주세요

이클립스 코드 네비게이션 단축키

* 새로 만들기 Ctrl+N
* Quick Access Ctrl+3
* 코드 자동완성 Ctrl+Space
* import 정리 Ctrl+Shift+O
* 빨리 수정 Ctrl+1
* 한 줄 삭제 Ctrl+D
* 코드 정렬 Ctrl+Shift+F

* 선언한 곳으로 F3 또는 Ctrl+클릭
* 이전 위치로 Alt+←
* 파일 아웃라인 Ctrl+O
* 상속 구조 Ctrl+T
* 선택 문자 찾기 Ctrl+K
* 행번호로 이동 Ctrl+L
* 파일명으로 찾기 Ctrl+Shift+R
* 프로젝트 텍스트 검색 Ctrl+H

* 실행 Ctrl+F11
* 단축키 목록 Ctrl+Shift+L
* 단축키 설정 Ctrl+Shift+L 두 번




Posted by kenu허광남

댓글을 달아 주세요

아프리카 방송 시작한지 100시간이 지났습니다.

http://afreeca.com/kenuheo


1,000시간 넘기는 때가 오겠죠.


Posted by kenu허광남

댓글을 달아 주세요

외부의 오픈API가 callback을 지원하지 않으면 JSONP방식을 사용할 수 없습니다.

이런 경우 로컬의 도메인으로 세탁해주는 기능이 필요하고, 이 방식을 Proxy라고 얘기합니다.


간단한 샘플코드입니다.


package net.okjsp.ajax;


import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.net.MalformedURLException;

import java.net.URL;

import java.net.URLConnection;


public class Proxy {

public static void main(String[] args) throws Exception {

String sb = Proxy.getSource("http://okjsp.tistory.com/rss");

System.out.println(sb);

}


public static String getSource(String string) throws MalformedURLException,

IOException {

URL url = new URL(string);

URLConnection yc = url.openConnection();

BufferedReader in = new BufferedReader(new InputStreamReader(

yc.getInputStream()));

String inputLine;

StringBuilder sb = new StringBuilder();

while ((inputLine = in.readLine()) != null) {

sb.append(inputLine).append("\n");

}

in.close();

return sb.toString();

}


}


proxy.jsp 입니다.

<%@page import="net.okjsp.ajax.Proxy"

%><%@ page contentType="text/plain; charset=utf-8"

    pageEncoding="UTF-8"

%><% 

String url = request.getQueryString();

%><%= Proxy.getSource(url) %>


이것을 호출하는 javascript입니다.

<!DOCTYPE html>

<html>

<head>

<title>AjaxProxy</title>

<script src="http://code.jquery.com/jquery-1.10.2.min.js"></script>

<script type="text/javascript">

$(function() {

$.ajax({

/* url : "http://www.marinetraffic.com/map/getjson/sw_x:125.62/sw_y:36.52/ne_x:128.02/ne_y:37.14/zoom:10/fleet:/station:0/id:null", 

*/

url : "proxy.jsp?http://www.marinetraffic.com/map/getjson/?",

dataType : "json",

data : {

sw_x : 125.62,

sw_y : 36.52,

ne_x : 128.02,

ne_y : 37.14,

zoom : 10,

station : 0,

id : 'null'

},

success : function(vessel) {

$.each(vessel, function(key, value) {

$("#result").append(value + '\n');

})

},

error : function(xhr, status, error) {

$("#result").append(error);

            }

});

});

</script>

</head>

<body>

<pre id="result"></pre>

</body>

</html>


간단한 이클립스 프로젝트 첨부합니다.

ajaxproxy.zip


Posted by kenu허광남

댓글을 달아 주세요

adobe가 macromedia를 인수한 뒤에 웹 생태계에 많은 영향을 주고 있습니다. 

요즘 페북에서 많이 언급되는 개발용 에디터가 Brackets입니다.


매우 가볍습니다. 용량은 34메가. 참고로 이클립스 웹 개발용(JavaEE 패키지)은 247메가입니다. 1/7 사이즈입니다.

http://brackets.io


홈페이지에서 얘기하는 Code the Web은 웹 개발용 편집기라는 의미가 담겨 있습니다.


brackets의 소스는 github에서 오픈소스로 개발되고 있습니다. adobe 에서 관리하는 프로젝트입니다. https://github.com/adobe/brackets


File > Live Preview (단축키 Ctrl+Alt+P)를 통해서 HTML/CSS/JS의 라이브 편집이 가능합니다. 


파일을 저장하지 않아도 크롬브라우저에서 바로 확인이 가능합니다. 


자바스크립트 파일 편집할 때는 JSLint가 바로 적용됩니다. 저장할 때마다 JS의 코드를 검사해서 알려줍니다.


JSLint에서 보이는 에러를 줄이기만 해도 코드가 예뻐집니다.


윈도우, 맥, 리눅스에서 모두 사용 가능하기 때문에 sublime text와 경쟁이 될 것 같습니다. 오픈소스로 만들어지는 것이기 때문에 발전속도가 꽤 빠를 것으로 예상됩니다.


Posted by kenu허광남

댓글을 달아 주세요

Simple Ajax 예제

JavaScript 2013. 12. 18. 23:01

자바스크립트로 외부에서 데이터를 가져와서 표현하는 방법이 있습니다. http://dna.daum.net 에서 제공하는 오픈API를 이용해서 알아보겠습니다.

http://apis.daum.net/search/web?q=json&apikey=DAUM_SEARCH_DEMO_APIKEY&output=json&callback=callbackfn

위 주소는 다음에서 제공하는 apis.daum.net 웹 검색용 오픈API주소입니다. Querystring을 보면 다음과 같은 파라미터들이 전달됩니다.

q: 검색어

apikey: 다음에서 제공받은 apikey

output: 응답결과 데이터 형태 json 또는 xml

callback: JSONP를 위해 필요한 callback 함수 이름

* JSONP(다른 도메인 간의 데이터를 전달하기 위한 방법 http://en.wikipedia.org/wiki/JSONP) 


브라우저에서 호출하면 결과는 callbackfn({json format data}) 형태로 보입니다.


크롬 브라우저에서 ctrl+shift+J 를 눌러서 Console을 엽니다.

우선 callbackfn 함수입니다.

function callbackfn(res) { console.log(res); }


그리고 엘리먼트 하나를 만들어서 script 태그를 만들고 src에 위 주소를 붙입니다.

var element = document.createElement('script');

element.src = "http://apis.daum.net/search/web?q=json&apikey=DAUM_SEARCH_DEMO_APIKEY&output=json&callback=callbackfn";


head 태그는 배열로 리턴되기 때문에 첫 번째 요소에 script 엘리먼트를 붙입니다. 

document.getElementsByTagName("head")[0].appendChild(element);


위 오픈API 주소가 호출되면서 자동으로 callbackfn() 함수가 실행되는 것을 볼 수 있습니다.



Posted by kenu허광남

댓글을 달아 주세요