다음과 같이 설정하면 된다.

:set expandtab

 

추가로 Tab 간격이 너무 넓어 공백 4개로 변경하고 싶을때는 다음과 같이 한다.

:set tabstop=4

:set shiftwidth=4

:set expandtab

 

또는, 간단하게 한문장으로...

:set tabstop=4 shiftwidth=4 expandtab

 

http://vim.wikia.com/wiki/Converting_tabs_to_spaces 참고

http://cronolog.org 참고

cronolog 를 이용하면 로그를 저장할 때 날짜, 시간으로 파일을 자동으로 쉽게 나눌 수 있게 해준다. 개인적으로는 Apache에서 로그 기록할 때 많이 사용하고 있고 예를 들어 다음과 같이 쓴다.

 

TransferLog "|/usr/sbin/cronolog /web/logs/%Y/%m/%d/access.log"

ErrorLog "|/usr/sbin/cronolog /web/logs/%Y/%m/%d/errors.log"

CustomLog "|/usr/sbin/cronolog /web/logs/%Y/%m/%d/custom.log" common

 

위 설정된 로그는 다음과 같이 별도 구분된 폴더에 저장된다.

추가로 여기서 common은 Common Log Format을 사용함을 의미한다.

 

/web/logs/2002/12/31/access.log

/web/logs/2002/12/31/errors.log

 

하지만 폴더가 구분되면 관리가 어려워져서 개인적으로는

/errors.log_%Y%m%d" 과 같이 파일이름만 구분하고 같은 폴더에 저장하는 형식을 선호한다.

Hosts 파일이 수정되면 브라우저를 재 시작 시켰어야 했는데 여간 불편한 일이 아니다. 하지만 아래 플러그인 들을 이용하면 바로 적용이 가능하다. (IE는 모르겠다. 아는 분 있으면 코멘트 해주면 좋겠다.)

 

Chrome 플러그인 (DNS Flusher for Chrome)

https://chrome.google.com/webstore/detail/dns-flusher-for-chrome/fegcjmebpcoihkfdjilmnemfkgjbneol?utm_source=chrome-ntp-icon

 

Firefox 플러그인 DNS Cache

https://addons.mozilla.org/ko/firefox/addon/dns-cache/?src=userprofile

메모의 기술(사카토 켄지 지음/고은진 옮김)

난 메모를 체계적으로 잘 못하는데 이 요약 본을 보고 메모에도 기술이 필요하다고 느낀다.

 

http://cfs12.blog.daum.net/attach/26/blog/2008/08/31/18/33/48ba655f9cb74&filename=%EB%A9%94%EB%AA%A8%EC%9D%98+%EA%B8%B0%EC%88%A0+%5B%EC%82%AC%EC%B9%B4%ED%86%A0+%EC%BC%84%EC%A7%80%5D.pdf

대량 Insert시에는 LOAD DATA 를 이용하자.

http://dev.mysql.com/doc/refman/5.5/en/load-data.html

 

예제는 다음과 같다. 추가로 local 키워드를 사용하면 원격지의 로컬파일에서 바로 등록할 수도 있다.

 

LOAD DATA INFILE 'c:\myFile.txt'

INTO TABLE `tbl_myTable`

(@var1, @var2)

SET

obj_id = @var1,

obj_geo = GeomFromText(@var2);

http://johnmacfarlane.net/pandoc/

 

Pandoc 은 MarkDown, reStructuredText, textile, HTML, DocBook, LaTeX, docx 등등 수많은 문서들을 서로 변환할 수 있게 해주는 유틸리티이다. Pandoc과 Pelican(http://docs.getpelican.com) 그리고 Python의 Django 프레임웍을 사용하면 간단하면서도 많은 포맷을 지원하는 문서 사이트를 쉽게 만들 수 있을 것 같다.

 

Pandoc의 Online DEMO는 아래 URL에서 확인할 수 있다.

http://johnmacfarlane.net/pandoc/try/

Lighttpd 설치

sudo apt-get -y install lighttpd

 

FastCGI 모듈 활성화

sudo lighttpd-enable-mod fastcgi

sudo /etc/init.d/lighttpd restart

 

PHP 설치

sudo apt-get -y install php5-cgi

 

MySQL 설치

sudo apt-get -y install php5-mysql mysql-server

"파이썬은 자바 플랫폼에서 실행할 수 있도록 확장되었으며, JVM만 있으면 어디서든 실행할 수 있다는 점이다. 또한 여러 플랫폼을 지원하는 C와 .NET을 위한 파이썬도 있다. 그러니까, 파이썬은 거의 모든 곳에서 실행할 수 있다. 이 책에서는, 파이썬의 우아함과 강력함, 편의성을 갖춘 한편 JVM 상에서 실행할 수 있는 Jython에 초점을 맞추도록 하겠다."

 

http://jythonbook_ko.readthedocs.org/en/latest/LangSyntax.html

 

즉, JVM 상에서 동작하는 python이다. 또한 Jython을 찾아보면서 .net 환경을 위한 IronPython도 있다는 것을 알게 되었다. (http://ironpython.net/ 참고) 꽤 흥미롭다. 발표된 지 2년쯤 된 것 같다. 내가 그 동안 최신 정보에 둔해 알지 못했던 것 같다. 아무튼 이를 이용하면 모든 대부분의 플랫폼에서 우아한 python의 코드를 작성할 수 있게 되고 보다 높은 생산성을 가져다 줄 것이라 기대된다.

http://code.google.com/p/wkhtmltopdf/

 

MAC, Windows, Linux 모두 지원하고, shell 명령으로 변환이 가능하다는 장점이 있다.
웹 페이지 내용을 자동으로 내려 받고 PDF로 변환하는 등의 스크립트 만들 때 유용할 듯하다.

나중에 필요할 때 구매해도 괜찮을 것 같다.

http://themeforest.net/

저장소 생성

# svnadmin create /data/reponame

 

저장소 백업

# svnadmin dump /data/reponame > ~/reponame.dump

 

저장소 복원

# svnadmin load /data/reponame < ~/reponame.dump

 

계정 인증 설정

/data/reponame/conf/passwd 파일 수정

 

[users]

id = password

 

익명 액세스 거부 설정

/data/reponame/conf/svnserve.conf

 

anon-access = none

password-db = passwd

 

http://martinfowler.com/articles/nosql-intro.pdf

 

NoSQL의 정의

http://martinfowler.com/bliki/NosqlDefinition.html

먼저 코드를 간단하게 구현하기 위해 jQuery를 injection한다.

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>

 

그후 다음과 같은 코드로 간단히 도메인 등록 여부를 확인할 수 있다. (간단한 예제를 보여주기 위해 코드상에 문제가 있긴 하지만 무시했다.)

 

$.ajax({

url: 'http://www.whoisxmlapi.com/whoisserver/WhoisService',

dataType: 'jsonp',

data: {

domainName: 'yourdomain.com',

outputFormat: 'json'

},

success: function(data) {

    if(!data.WhoisRecord) {

        alert("도메인 형식 오류");

    }else if(data.WhoisRecord.dataError &&

        data.WhoisRecord.dataError == "MISSING_WHOIS_DATA") {

        alert("등록안됨");

    }else {

        alert("등록됨");

    }

}

});

http://www.featureblend.com/javascript-flash-detection-library.html

위 라이브러리를 이용하면 현재 브라우저에 플래시가 설치되어 있는지를 쉽게 확인할 수 있다. 지원하는 Property와 Method는 다음과 같다.

 

Properties:

FlashDetect.installed: true

FlashDetect.raw: Shockwave Flash 11.5 r31

FlashDetect.major: 11

FlashDetect.minor: 5

FlashDetect.revision: 31

FlashDetect.revisionStr: r31

FlashDetect.JS_RELEASE: 1.0.4

 

Method(s):

FlashDetect.versionAtLeast(9): true

FlashDetect.versionAtLeast(9, 0): true

FlashDetect.versionAtLeast(9, 0, 124): true

FlashDetect.majorAtLeast(9): true

FlashDetect.minorAtLeast(0): true

FlashDetect.revisionAtLeast(124): false

 

 

예제코드는 다음과 같다.

 

<script type="text/javascript">

if(!FlashDetect.installed){

    alert("Flash is required to enjoy this site.");     

}else{

    alert("Flash is insalled on your Web browser.");

}

</script>    

미국 당국이 사이버 범죄를 예방하기 위해 컴퓨터 프로그래밍 언어인 자바 소프트웨어를 사용하지 말라는 권고를 내놨다. (단 7 버전에 한함)

http://news.donga.com/Inter/3/02/20130114/52303829/1

mysql에서는 사용자, 디비, 접속ip별로 권한이 따로 관리되므로 설정 작업이 필요하다. 매번 할때마다 까먹어서 적어둔다. ㅎㅎ

   

CREATE USER `USER`@`HOST` IDENTIFIED BY PASSWORD;

GRANT ALL PRIVILEGES on `DBNAME`.* to `USER`@`HOST` identified by PASSWORD;

GRANT EXECUTE ON PROCEDURE `DBNAME` TO `USER`@`HOST`;

.md 확장자란?

 

sourceforge나 기타 오픈 소스 프로젝트 사이트에서 파일을 받아보면 README.md처럼 md의 확장자 파일을 본적이 있는데 무슨 의미인지 몰랐었다. 오늘 궁금해서 찾아봤는데 md 확장자는 Markdown을 의미한다는 것을 알게되었다. Markdown은 인터넷 작성자에게 text와 HTML사이의 변환을 해주는 툴이다. Markdown으로 작성하면 읽고 쓰기 쉽게 해줄 뿐만 아니라 XHTML이나 HTML로 변환도 가능하게 해준다. 추가로 Markdown 툴은 Movable Type(MT)의 plugin, Blosxom, BBEdit에도 포함되어 있는 듯 하다.

 

아래 링크를 참고해서 자세한 설명을 보자. Perl로 만들어진 변환 스크립트도 받을 수 있다.

http://daringfireball.net/projects/markdown/

 

아래는 CORDOVA의 README.md 파일 예제이다. 확인해보자.

 

APACHE CORDOVA

===================

 

What is it?

-------------------

Apache Cordova is a web platform that exposes native mobile device apis and

data to JavaScript. Previously known as PhoneGap, the name changed

happened when PhoneGap was donated to the Apache foundation.

 

Currently Apache Cordova is a top level project at The

Apache Software Foundation (ASF).

 

Why?

-------------------

Mobile development is a mess. Building applications for each

device--iPhone, Android, Windows Mobile and more--requires different

frameworks and languages. One day, the big players in mobile may decide

to work together and unify third-party app development processes. Until

then, Cordova will use standards-based web technologies to bridge web

applications and mobile devices. Plus, because Cordova apps are

standards compliant, they're future-proofed to work with browsers as

they evolve. Cordova is an open source implementation of open

standards. That means developers and companies can use Cordova for

mobile applications that are free, commercial, open source, or any

combination of these.

 

Get started

-------------------

[Docs](http://docs.cordova.io/guide_getting-started_index.md.html)

 

Community

-------------------

- [Website](http://cordova.io)

- [Twitter](http://twitter.com/apachecordova)

- [Wiki](http://wiki.cordova.io)

- [Mailing List](http://cordova.io/#mailing-list)

- [Issue Tracker](https://issues.apache.org/jira/browse/CB)

 

How to build from src

-------------------

To build for a particular platform, please change directories to the

platform that you wish to build for and read the README file.

Node.js가 이슈가 되었던 때가 벌써 몇 년이 지났는데 아직도 계속 주목 받고 있는듯하다. 물론 그 동안 버전 업데이트도 많이 되었다. Node.js는 경량화된 웹 서버로 높은 가용성JavaScript 언어(Chrome V8엔진)을 사용하여 쉬운 개발을 자랑하는 듯하다. Apache나 다른 일반적인 아키텍처의 웹 서버와는 달리 이벤트 드리븐 방식이므로 필요할 때 필요한 자원을 요청하기 때문인 것 같다.


보다 자세한 내용은 아래 링크와 Node.js 홈페이지(http://nodejs.org/) 에서도 확인할 수 있다.
http://www.ibm.com/developerworks/kr/library/os-nodejs/


다음은 웹 서버를 만들기 위한 코드이다. 엄청 간단하다.

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');


+ Recent posts