출처 : http://tmwalker.tistory.com/26


1. config 폴더 -> environment.rb 파일에 $KCODE = 'u'를 추가해준다.
RAILS_GEM_VERSION = '1.2.6' unless defined? RAILS_GEM_VERSION
require File.join(File.dirname(__FILE__), 'boot')
Rails::Initializer.run do |config|
end
$KCODE = 'u'
< environment.rb 파일 끝 부분에 $KCODE = 'u' 추가 >


2. config 폴더 -> database.yml 파일의 각 부분에 encoding=utf8를 추가해준다.
development:
  ....
  encoding: utf8

test:
 ...
 encoding: utf8

production:
  ...
  encoding: utf8
< database.yml 파일에 encoding=utf8 추가 >

3. 뷰 파일 생성시 utf-8 형식으로 만들어준다.
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 푸헐스
네이버에서 지도 API를 사용하기 위해서는 80번 포트를 사용한다고 한다. 그런데 나는 Ruby on rails를 사용하면서 WEBrick 서버로 포트 3002번을 사용하였다. 그런데 네이버의 오픈API 튜토리얼대로 지도를 띄워도 지도가 나타나지 않는 문제가 있었다. 문제는 포트번호!!

해결 방법은?
그래서 네이버 지도API 키를 등록할 때 디렉토리에 3002번 포트를 집어넣어 주었다.

지도API 키 등록할 때
< 네이버 지도API 키 입력할 때 디렉토리 입력 방법 >


이렇게 하여 오픈 API 튜토리얼에 있는 지도 띄워보기 예제를 붙여넣기 해보았더니 지도가 잘 띄워졌다.
사용자 삽입 이미지
< 디렉토리 수정후 지도가 잘 나타나는 모습 >

일단 글씨가 깨지는 건 무시하고 API 키 등록할 때 디렉토리를 localhost:3002로 해주었더니 튜토리얼대로 지도가 잘 띄워지는 모습이다. 이렇게 하면 오늘도 문제 해결!! ^^
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 푸헐스
오랜만에 LA Dodgers 홈페이지에 들어갔더니 누가 다저스의 5선발이어야 하느냐 라는 주제로 투표를 진행하고 있습니다. 현재 박찬호가 1등이네요. ㅎㅎ

사용자 삽입 이미지

시즌 초반에 괄시당하던 분위기에서 이제는 팬들도 돌아온 박찬호에게 표를 던져주고 있는 것 같습니다. 아무래도 영건인 클래이튼 커쇼보다는 노려한 박찬호가 5선발로써 제격이겠지요. 다저스 구단내 관계자는 현재 박찬호의 구위가 타팀의 2, 3선발 정도의 구위라는데요.

다저스가 시즌 중반까지 서부지구 상위권을 유지한다면 경험이 부족한 커쇼보다는 박찬호를 선발카드로 사용하지 않을까 생각해 보는데요. 제이슨 슈미트가 복귀하지 말고 그냥 여기서 은퇴나 했으면 하는 생각도 있네요. ㅎㅎ
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 푸헐스

Scale Up VS Scale Out

기 타 2008/03/25 17:17
다음 커뮤니케이션과 구글의 서버 관리 방법(?)인 Scale Out 과 네이버의 Scale Up 방식이 무엇인가 궁금해서 찾아보았다. 두 방식이 일장일단이 있다고 하는데 궁금해서 자료를 찾아보니..


Scale Up versus Scale Out Posted: Jul 20, 2006 8:48 PM
Reply to this message Reply
Summary
In his weblog on java.net, Malcolm Davis discusses scalability, and the advantages and disadvantages of scaling up by adding more memory, CPUs, etc., to one box versus scaling out by adding more less expensive boxes.
Advertisement
In Scale Up vs. Scale Out, Malcolm Davis suggests that scaling up is an appropriate strategy for the database tier, and that scaling out is more appropriate for the application tier. Davis says that a common mistake he sees in IT shops is using a scaling up strategy in the application tier:

I cannot count the number of discussions I have had with system administrators about hardware configuration for application. Many IT shops treat the application problem much like the database problem. Instead of an array of rack mounted blade servers that are inexpensive and easy to add or replace, administrators purchase big boxes.

The administrator's argument about the big boxes:

  • Bigger bang for the buck
  • Easier to admin on box than multiple boxes
  • Easier to make a single purchase instead of multiple small purchases
  • LN squared hardware failure, the more boxes the more likely to fail.

The reality:

  • As seen from the BEA study, less bang for the buck for application scalability,
  • More difficult to admin because of the conflicting needs of all the independent process. Huge impacts occur due to inadvertent changes to root or patches to sub-systems or OS.
  • Costly mis-sizing of hardware that cost the organization. It cost more to add hardware to a big-box, then to slide in another blade server.
  • Software, rather then hardware, is generally the root cause of problems in production

How do you decide whether to scale up or out?


Ari Zilka

Posts: 7
Nickname: ikarzali
Registered: Jul, 2006

Re: Scale Up versus Scale Out Posted: Jul 25, 2006 1:19 AM
Reply to this message Reply
I think the analysis skips one big issue. Scale up does not require a rewrite until an application bottleneck stops the app from scaling. Scale out would typically require JMS, Hibernate, or some sort of shared state architecture.

Ignoring the coding complexity, all the operational conclusions line up with my experience helping to run a large Internet eCommerce site.

Sort of why we formed Terracotta to cluster underneath apps so that scale out can be done while avoiding the rewrite.

Without JVM-level clustering, the debate of scale-out vs. scale-up is a toss up, except in the "totally stateless application" case where scale-out is ideal. With JVM-level clustering, there are apps that still shouldn't be scaled out but at least it can be attempted w/o a rewrite.


http://www.terracottatech.com/
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 푸헐스
사용자 삽입 이미지


사용자 삽입 이미지

위와 같이 의존성 문제가 발생할 경우에 해결 방법은

1. 터미널 창을 띄우고 fc-cache 명령을 쳐서 에러가 나는 폴더를 찾는다.
2. sudo touch /var/lib/defoma/fontconfig.d/Y /에러나는 폴더 를 사용해서 하나씩 없애준다.
3. sudo apt-get -f install 을 살포시 눌러준다.

크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 푸헐스


열심히 해야겠다.
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 푸헐스

DataPortability - Connect, Control, Share, Remix from Smashcut Media on Vimeo.
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 푸헐스

ODF와 OOXML의 경쟁

기 타 2008/01/24 21:13
오늘은 잘 알려진 문서 포맷인 ODF(OpenDocument Format) OOXML(Office Open XML)에 대해 말해보고자 한다. 물론 대부분의 정보는 오픈소스 개발 방법론이란 수업을 통해 들은 것이지만..

일단 공개 표준의 이점이란 애플리케이션과 파일 포맷이 분리되므로 인해 사용자가 파일 포맷에 상관없이 애플리케이션을 선택할 수 있게 된다. 그러므로 인해 오피스 프로그램 개발 회사간에 경쟁과 촉진이 일어나므로 결과적으로는 소비자에게 유리하게 된다. 이러한 공개 표준의 예로써, 정통부에서 제정한 24핀 표준 휴대폰 충전기 케이블을 예로 들 수 있다. 정통부에서 표준으로 제정하기 이전에는 휴대폰 기종마다 충전기 케이블 단자의 형태가 모두 제각각이었으므로 핸드폰을 충전하기 위해서는 자기 핸드폰의 기종과 맞는 케이블을 찾아 나서야 했었다. 하지만 충전기 케이블이 24핀으로 통일되면서 더 이상 자기 핸드폰 기종에 맞는 충전기 케이블을 찾아나설 필요가 없어졌다.

현재 ODF와 OOXML의 경쟁이 이러한 표준을 지정하기 위한 전쟁이라면 이해하기 쉬울 것이다. ODF는 오픈소스 소프트웨어인 Open Office.org의 파일 포맷을 기반으로 한 XML 기반의 오피스 공개표준으로 꾸준한 표준화 단계를 거쳐 OASIS와 ISO 표준으로 인정받았다. 이에 MS의 대응으로 OOXML이 있다. OOXML이란 MS Office 2007의 독점 파일 포맷을 말한다. 이는 기존 문서의 수용과 자사의 애플리케이션 간의 연동에 초점을 맞추고 있다. ODF가 세계 표준으로 인정받으면서 OOXML 또한 이에 대응하기 위하여 ISO의 FastTrack이라는 절차를 거친바 있으나 국가별 찬반 투표에 의해 실패한바 있다. 우리나라에서도 OOXML 찬반 투표를 펼친 적이 있다. 그 당시 나 또한 서명을 했었는데 그 때는 이게 무엇인지도 모르고 주변 지인의 부탁으로 서명을 한적이 있었다. 허나 지금은 잘했다는 판단이다. 이러한 싸움은 상용 소프트웨어와 오픈 소스 진영과의 싸움이라고 해도 크게 틀리지 않을 것이다.

이러한 독점 파일 포맷에 대하여 한국 선 마이크로 시스템즈의 김정규님께서는 '이제는 더 이상 독점 파일 포맷을 갖고 경쟁하는 시대는 지났다. 파일 포맷을 표준화하여 소프트웨어의 질을 갖고 경쟁할 때이다. 이러한 호환되지 않는 독점 포맷 형식으로 인해 소비자가 피해를 본다. 자의든 타의든 소프트웨어를 구매하는 것은 소비자이기 때문이다.'라고 말씀하셨다.

한편 1월 24일자 기사에서 국내 SW 개발업체에서 MS의 Open XML을 지원하기로 하였다 하여 눈길을 끌고 있다.

한국마이크로소프트는 가온아이, 우암정보통신, ECO 등 국내 소프트웨어 업체들이 마이크로소프트의 오피스 문서 표준안인 오픈 XML을 각 사의 소프트웨어에 적용할 계획이라고 밝혔다.

한글과컴퓨터가 아래아한글 차기버전에서 오픈XML을 지원하는 데 이어 가온아이, 우암정보통신, ECO의 지원으로 오픈XML은 커뮤니케이션 그룹웨어, 화상회의, 전자도서관 등의 분야로 보급될 것으로 예상된다.
 
한국마이크로소프트의 최기영 상무는 “폭넓게 마이크로소프트의 오피스 제품을 사용하고 있는 환경에서, 오픈XML은 국내 응용 소프트웨어 회사들의 개발 시간과 비용을 절감하고 제품에 대한 기술도 국제적으로 인증 받기 용이해 그 채택율이 높아지고 있다”라고 전했다.
< ZDNet Korea 발췌 >

무엇보다 아래아한글 차기버전에서 Open XML을 지원하기로 한 것이 눈에 띈다. ODF와 OOXML의 전쟁이 점입가경이다. 향후 이를 지켜보는 것도 재미있을 듯 하다.


크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 푸헐스
사용자 삽입 이미지

아주 철학적인 오후


  새 해가 되면서 제일 먼저 읽었던 책은 바로 '아주 철학적인 오후'라는 책이다. 다 읽은지 벌써 1주가 훌쩍 넘어가는데 이제서야 감상문을 쓰고 있다. 암튼 철학적이라니, 제목을 보고 느낀 점은 매우 심오한 내용을 다루고 있을 것만 같은 그런 책이었다. 이 책도 역시 누나가 집 근처 서점에서 사온 책이다. (그나저나 우리 누나가 웬 일로 이렇게 책을 자주 사오는 걸까? 책을 잘 읽지 않는 사람인데.. 아이러니한 일이다.)

  거두절미하고 얘기를 시작해 보자면 이솝우화와 같이 저자가 동화를 통해 독자들에게 깨달음(?)을 주고자 하는 것 같았다. 사람들이 평소에 잘 깨닫지 못하는 것들을 이야기로서 말해주고 있는 것이다. 자기 계발서라고나 할까??

  가장 기억에 남는 건 책의 첫 장을 걷음과 동시에 나오는 '나무 이야기'이다. 한 나무를 너무나 사랑하는 정원사 부부가 있다. 그들은 나무가 반드시 곧게 자라야만 한다고 생각을 한다. 나무는 그들의 사랑을 받으며 무럭무럭 자라나지만 정원사 부부는 나무가 자라고 싶은대로 자라는 것을 바라지 않는다. 옆으로 퍼져 자라면 더 이상 퍼지지 못하도록 가지를 쳐버리고, 비뚫어지게 자라면 또 가지를 잘라 곧게 자라도록 한다. 나무가 너무 위로만 자라서도 안 된다. 나무는 그들이 자기를 사랑하는 걸 알고 있지만 이내 곧 지쳐버린다. 마음껏 자랄 수 없기 때문이다. 나무는 모든 것을 포기하고 천천히 곧게 자라기 시작한다. 정원사 부부는 그제서야 나무를 바라보며 흐뭇한 미소를 짓고 있다.

  상대방을 사랑한다면 그 자체로써 사랑해줘야 한다. 자기가 바라는 대로만 자라게 할 수는 없는 법이란 것이다. 사랑은 곧 구속이 되어버릴 수 있는데 나도 이런걸 많이 느껴왔던 터라 동감이 많이 되었다. 죄송한 말씀이지만 특히 우리네 아버지, 어머니들에게서 이런 걸 많이 느낀다고 할까? 비단 우리 부모님말고 내 친구들 부모님들도 비슷한 경우를 많이 보았다. 자식들이 어느정도 나이가 차면 그들의 의견을 경청하고 존중해줘야 한다. 하지만 부모님들은 사랑이랑 억압된 올가미로 자식들을 옭아매려 한다. 또한 자식들이 무엇을 원하는지 생각해 보지도 않는 채, 무조건 공부만 시키는 우리 대한민국 부모님들. 자식들이 무언가 특출난 개성을 보이면 그 싹을 잘라버리곤 한다. 그렇게만 한다면 자식들의 인생은 무엇이란 말인가? 무엇을 위해 태어나서 무엇을 위해 살아가야 한단 말이지?

  내 자식들만은 꼭 자신들이 하고 싶어하는 일을 시키고 싶다. 남들 눈치보며 자식을 키우고 싶은 생각은 전혀 없단 말이다. 부모의 역할은 자식들이 할 수 있는 일을 찾도록 도와주고, 부단히 응원해주는 게 아닐까란 생각을 해본다. 자신들이 생각하는 올바른 길을 가도록 구속하는게 부모의 역할은 아닐 것이다. 나무 이야기를 보면서 느낀 점이란 바로 그러한 것들이었다.

  감상문을 이렇게 쓰고는 있지만 생각이 정리가 되지 않아 스파게티 코드처럼 무척이나 내용이 꼬여있는 느낌이다. 암튼 언젠간 조금더 글을 잘 쓸수 있는 날이 올테지. 하하하하..


크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 푸헐스
Mash up 경진대회를 위해서 루비를 사용하기로 하였다. 개발환경을 구축하는 과정에서 Ruby on rails를 사용하게 되어 우분투에서 Eclipse의 Radrails 플러그인을 연동하는 방법을 작성해 보고자 한다.

먼저 Ruby를 설치해 보자. 다음의 홈페이지에 가면 루비 설치방법과 라이브러리, 루비 소개 등 여러가지 정보가 나와 있다.

루비를 설치하기 위해서 일단 터미널을 띄우고 다음과 같이 입력한다. <표 1>을 그대로 복사해서 붙여넣자.

sudo apt-get install ruby irb rdoc rubygems
< 표 1. Ruby 설치 명령어 >

이제 Rails 프레임워크를 설치할 때이다. 이 곳의 링크를 타고 가서 설치방법을 따라하면 쉽게 설치할 수 있다.

 sudo apt-get install rails
sudo gem install rails --include-dependencies

< 표 2. Rails 설치 명령어 >

이제 Eclipse에 Radrails 플러그인을 설치하는 과정만 남았다. 다음의 홈페이지에 가면 Radrails 플러그인 설치에 관해 나와있다. Eclipse를 실행하고 메뉴바의 Help -> Software Updates -> Find and Install -> Search for new features to install을 누르자. Radrails 플러그인을 설치하기 위해서 Aptana, Mylyn을 설치해야 한다. New Remote Site를 눌러 Name과 URL을 입력하자.

Name : Aptana
URL : http://update.aptana.com/update/3.2/


Name : Mylyn
URL : http://download.eclipse.org/tools/mylyn/update-archive/2.0.0/e3.2
< 표 3. Aptana와 Mylyn 플러그인 >


사용자 삽입 이미지

< 그림 1. Aptana와 Mylyn 설치를 위해 설정한 모습 >


플러그인의 설치를 마치고 Eclipse를 재실행하면 메뉴바의  Help ->  Aptana  Start  Page  메뉴가 추가된 것을 볼 수 있다. Aptana Start Page 메뉴를 클릭해 보자.

사용자 삽입 이미지

< 그림 2. Eclipse의 Aptana Start Page >


이제 <그림 2>에서 Ruby on Rails의 install 버튼을 클릭하자. <그림 3>과 같이 설치 대화상자가 뜨고 Radrails를 설치해 주면 끝난 것이다.

사용자 삽입 이미지

< 그림 3. Aptana RadRails 설정 모습 >


덤으로 소스코드 관리를 위해서 Eclipse와 SubVersion을 연동하기 위해 Subclipse 플러그인을 설치하는 과정이다.

sudo apt-get install subversion
< 표 4. Subversion 설치 명령어 >

Eclipse를 실행하고 메뉴바의 Help -> Software Updates -> Find and Install -> Search for new features to install을 누르자.

Name : Subclipse
URL : http://subclipse.tigris.org/update
< 표 5. Subclipse 플러그인 >

사용자 삽입 이미지

< 그림 4. Eclipse의 Subclipse 설정 모습 >


이렇게 하면 Radrails와 Subclipse 설치가 끝났다.

이제 Ruby와 Rails의 Path를 설정해줘야 한다. Eclipse를 띄우고, Window -> Preferences를 클릭하면 대화상자가 뜬다. 기본 설정 대화상자에서 Ruby 왼쪽에 화살표를 누르면 installed interpreters가 보일 것이다. 여기를 클릭해서 루비의 인터프리터를 설정해줘야 한다. 오른쪽 상단에 Add 버튼을 누르고 아래의 <그림 5>를 참고하여 path를 설정해주자.

사용자 삽입 이미지

< 그림 5. Ruby Path 설정화면 >


확인 버튼을 누르면 ruby path가 설정된 모습을 볼 수 있다. 다음으로 Rails의 왼쪽 삼각형을 클릭하고, Configuration을 클릭하면 Rails와 Rake Path를 설정하는 화면이 나온다. 다음의 <그림 6>을 참고하여 path를 설정해주자.

사용자 삽입 이미지

< 그림 6. Rails와 Rake Path 설정화면 >


이렇게 해주면 모든 설정이 완료된다. 이제 Rails 프로젝트를 생성하여 원하는 작업을 시작하면 된다.


크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 푸헐스