레일즈 3.1에서 헬퍼를 이용한 액티브 레코드 라벨 번역하는 방법입니다.

레일즈 3.1에서 액티브 레코드 라벨 번역하기

ror-'레일즈 3.1에서 액티브 레코드 라벨 번역하기'

루비 온 레일즈 국제화(i18n) 가이드의 액티브 레코드 모델 번역 부분을 보면,
다음과 같은 방식으로 액티브 레코드 번역을 할 수 있다고 합니다.

en.yml

en:
  activerecord:
    models:
      user: Dude
    attributes:
      user:
        login: "Handle"
      # will translate User attribute "login" as "Handle"

User.humanattributename("login") 를 사용하면 Handle이 출력된다고 설명되어 있군요.

f.label :login 을 이용해 값을 출력하면?

Login

이라고 출력되네요.

그렇다면 label이 자동으로 번역되도록 하려면 어떻게 해야 할까요?

en.yml에 다음과 같이 추가해주면 아주 잘 동작합니다.

en:
   helpers:
    label:   
      user:
        name: "Handle"

label 헬퍼에 라벨값을 넣어 주는거에요.

이제 아래 코드를 레일즈 뷰에 입력해 보죠.

<% formfor @users do |f| %>
  <%= f.label :name %>
  <%= f.text
field :name %>
  <%= f.submit %>
<% end %>

Handle

이 출력됩니다.

레일즈 3.1에서 다국어 어플리케이션 개발 편하게 하세요.:D
by 月風



by


Tags : , , , ,

  • 재미있게 읽으셨나요?
    광고를 클릭해주시면,
    블로그 운영에 큰 도움이 됩니다!

windows 7 x64환경의 ruby 1.9.2에 mysql2 gem 설치하는 방법입니다.

windows 7환경의 ruby 1.9.2에 mysql2 gem 설치하기

ROR-'windows 7 x64환경의 ruby 1.9.2에 mysql2 gem 설치하기'

gem을 설치하는 방법은 간단합니다.

gem install mysql2

하지만 안타깝게도 저의 64비트 윈도우 환경에서는 mysql2 gem이 제대로 설치 되지 않는군요.

열심히 구글링 끝에 겨우 설치에 성공했습니다.

혹시 저와 같은 환경에서 머리카락을 뜯고 계신 분께는 이 글이 도움이 될 거에요.

Devkit 설치하기

  1. devkit을 내려 받습니다.
  2. devkit의 압축을 풉니다.
  3. cmd를 실행합니다.
  4. devkit 폴더로 갑니다.
  5. ruby dk.rb init를 실행합니다.
  6. 생성된 devkit의 config.yml 파일의 루비 경로를 수정해 줍니다.
  7. (선택사항) ruby dk.rb review 를 실행하여 경로가 올바른지 확인합니다.
  8. ruby dk.rb install을 실행합니다.

자 이제 ruby 1.9.2에서 mysql2 gem을 설치하기 위한 준비과정을 마쳤습니다.
본격적으로 설치를 해보죠.

mysql2 gem 설치 하기

  1. libmysql.dll 32비트를 내려받습니다.
  2. ruby192\bin 폴더에 내려받은 libmysql.dll을 복사합니다.
  3. mysql/lib 폴더에 내려받은 libmysql.dll를 복사합니다.(원본은 백업해 두세요.)
  4. subst X: "C:\mysql5.5.x" 로 mysql 폴더를 가상 드라이브로 설정해 줍니다.
  5. gem install mysql2 --platform=ruby -- --with-mysql-dir=X: --with-mysql-lib=X:\lib 로 gem을 설치합니다.
  6. subst X: /D 명령어로 가상 드라이버를 해제합니다.

드디어 길었던 windows 7 x64환경의 ruby 1.9.2에 mysql2 gem 설치하기 과정이 끝났습니다.

32비트 환경에서는 libmysql.dll파일을 내려받을 필요가 없어요.:D

참고 자료

Installing mysql2 gem on ruby 192

Development-Kit
by 月風



by


Tags : , , , , , ,

  • 재미있게 읽으셨나요?
    광고를 클릭해주시면,
    블로그 운영에 큰 도움이 됩니다!

Perl에서 Jquery를 이용해 email 중복을 검사하는 방법입니다.

Perl에서 Jquery를 이용해 email 중복 검사 하기

-'Perl에서  Jquery를 이용한 email 중복체크 하기'

저는 이번에 Perl을 처음 건드려 봅니다.
'펄 세계엔, 한줄의 코드로 컴퓨터를 주므르는 고수들이 살고 있다!'
한참 전에 이런 소리를 들어 봤던거 같군요.
그때 든 생각은.
'한줄? 아! 디버깅하기 힘들겠구나.' 였어요.
인간 친화적이라기보다 기계 친화적인 언어라고 생각했었죠.
펄로 만들어진 PHP는 친숙하지만 Perl이라면 왠지 거리감이 느껴지는 언어였어요.
그런데 Perl에서도 요즘 흔히 쓰는 Jquery를 이용한 Ajax 구현이 가능합니다.
덕분에 조금 가까워 졌네요.:D


duplicate_test.html
<html><head/><body>
<INPUT maxLength=12 name="email" id="email" size="20"><br/>

<div id="duplicateResult"></div>
<script type="text/javascript" src="/rfo/jquery.js"></script>

<script type="text/javascript" src="/rfo/duplicate.js"></script>
</body></html>


duplicate.js
$(document).ready(function(){
  $("#email").keyup(function() {
    var email = $('#email').attr('value'); // get email
        if (email) { // values are not empty   
      $.ajax({
        type: "GET",
        url: "/cgi-bin/duplicate.pl", // URL of the Perl script
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        data: "email=" + email,       
        // script call was not successful
        error: function(XMLHttpRequest, textStatus, errorThrown) {
          $('div#duplicateResult').text("responseText: " + XMLHttpRequest.responseText
            + ", textStatus: " + textStatus
            + ", errorThrown: " + errorThrown);
          $('div#duplicateResult').addClass("error");
        }, // error
        // script call was successful
        // data contains the JSON values returned by the Perl script
        success: function(data){
          if (data.vacancy) { // script returned error
            $('div#duplicateResult').html("<span style='color:blue;font-size:14px;font-weight:bold;'>" + data.vacancy+"</span>");
            $('div#duplicateResult').addClass("vacancy");
          } // if
          else { // login was successful
            $('div#duplicateResult').html("<span style='color:red;font-size:14px;font-weight:bold;'>" + data.occupied+"</span>");
            $('div#duplicateResult').addClass("occupied");
          } //else
        } // success
      }); // ajax
    } // if
    else {
      $('div#duplicateResult').text("아이디를 입력해 주세요.");
      $('div#duplicateResult').addClass("error");
    } // else
    $('div#duplicateResult').fadeIn();
    return false;
  });
});


duplicate.pl

!/usr/bin/perl

use CGI;
use DBI;
use strict;
use warnings;
use rfoconfig;


read the CGI params

my $cgi = CGI->new;
my $email = $cgi->param("email");


connect to the database

my $dbh = DBI->connect("DBI:mysql:testDB:localhost","user","password");


check the username and password in the database

my $statement = qq{SELECT COUNT(*) FROM user WHERE email=?};
my $sth = $dbh->prepare($statement)  or die $dbh->errstr;
$sth->execute($email)  or die $sth->errstr;
my ($duplicatekey) = $sth->fetchrowarray;

my $json = ($duplicate_key) ?
  qq{{"occupied" : " $email는 이미 있는 아이디 입니다."}} :
  qq{{"vacancy" : "$email을 사용하실 수 있습니다."}};


return JSON string


"DBI:mysql:testDB:localhost","user","password"
우선 위 코드에서 testDB:localhost , user, password는 테스트 환경에 맞게 설정해 주세요.

print $cgi->header(-type => "application/json", -charset => "utf-8");
print $json;
아래 파일은 Document root/ 에 넣으세요.

  • Jquery.js (http://jquery.com 에서 다운로드 받으세요.)
  • duplicate.js
  • duplicate_test.html

아래 파일은 Document root/cgi-bin 에 넣으세요.

  • duplicate.pl


 

참고자료
Very simple login using Perl, jQuery, Ajax, JSON and MySQL

by 月風



by


Tags : , , , ,

  • 재미있게 읽으셨나요?
    광고를 클릭해주시면,
    블로그 운영에 큰 도움이 됩니다!

WAMP서버에 Perl과 CGI를 연동하는 방법입니다.

WAMP서버에 Perl, CGI 연동하기

텍스트 메이트-'WAMP서버에 Perl, CGI 연동하기'

우선 Active Perl을 다운받아 설치합니다.

아파치 서버의 httpd.conf Directory안에 있는 Options
 Includes ExecCGI를 추가해 줍니다.

DirectoryIndexindex.cgi index.pl를 추가해 줍니다.

cgi-bin 경로가 Default가 아니라면, 알맞은 경로로 변경해 줍니다.

ScriptAlias /cgi-bin/ "/cgi-bin"
<Directory "/cgi-bin">

다음을 추가해 주면 httpd.conf 설정이 완료 됩니다.
AddHandler cgi-script .cgi
AddHandler cgi-script .pl

펄 개발을 할 때, 스크립트 파일인 /cgi-bin/filename.pl 파일의 가장 위에
#!c:/Perl/bin/perl.exe (펄 경로) 를 추가해줍니다.

만약 경로를 알맞게 써주었는데도 제대로 작동하지 않으면,
httpd.conf 파일에 ScriptInterpreterSource registry 를 한 줄 추가해 줍니다.

이제 MySQL 인터페이스를 설치할 차례입니다.

cmd를 실행하고, 펄이 설치된 폴더로 가세요.

c:\perl\bin\> ppm repo add uwinnipeg

위 명령어로 저장소를 추가해 줍니다.

c:\perl\bin\> ppm install DBD-mysql

마지막으로 DBD-mysql을 인스톨 하면 완료!

액티브펄 설치시에 폴더를 임의로 변경했다면,
DBD가 엉뚱한 폴더에 인스톨 될 수 있습니다.
저는 64비트 OS용을 깔았더니, c:\Perl64에 설치되더라고요.
하지만 인스톨된 DBD-mysql을 설치된 펄 폴더로 옮겨주면 이상 없이 잘 동작합니다.
펄 개발 환경을 구축하실 분이 계실지 모르겠지만,
혹시 계시다면 이 글이 도움이 되면 좋겠네요.:D

참고 자료

Setting Up Perl and CGI For Wamp Server WAMP(P)

by 月風



by


Tags : , , , , ,

  • 재미있게 읽으셨나요?
    광고를 클릭해주시면,
    블로그 운영에 큰 도움이 됩니다!

오랜 전통을 자랑하는 부쉬밀 아이리시 싱글 몰트 위스키.


병-'부쉬밀 아이리시 위스키'

아일랜드에 와서는 와인과 멀어졌습니다.
와인 가격이 한국과 비슷하기 때문이죠.
비싸요.
반면에 위스키는 상대적으로 저렴한 편입니다.
와인 두 병값이면 위스키를 한 병 살 수 있을 정도니까요.
얼마 전 장을 보다가,
400년이란 오랜 역사를 지닌 부쉬밀 위스키를 한 병 집어왔습니다.
진한 향과 부드럽고 깔끔한 맛이 매력적이네요.
끝의 여운이 남지 않는 게 좀 아쉽지만, 마음에 드는 녀석입니다.
게다가 얼마 전 집에 사둔 베일리스와 섞어 마시니,
만족도가 200% 올라가는군요!
비율은 부쉬밀 아이리쉬 위스키와 베일리스를 2:1로 섞었습니다.
칵테일 이름은 뭐라고 할까요.
베일에 쌓인 아이리시?!
어쨌든 맛있어요!
이곳 아일랜드의 술이 제 입맛에 참 잘 맞습니다.:D



by


Tags : , , , , , ,

  • 재미있게 읽으셨나요?
    광고를 클릭해주시면,
    블로그 운영에 큰 도움이 됩니다!

19세기 아일랜드의 감옥. 코크 시티 자올에 다녀왔습니다.

코크 시티 자올

며칠 전 밤이었습니다.
집으로 오는 길에 분위기 잡는 이 건물을 마주쳤죠.
'음 뭔가 비밀이 있을법한 곳이군.'
언제 한번 들러봐야겠다 생각했어요.
일기예보를 보니 날씨가 맑음이네요?
화창한 일요일.
거리도 부담 없으니, 가벼운 발걸음으로 코크 시티 자올을 향해 떠났습니다.
제가 사는 집에서 십 분 정도 걸으면, 코크 시티 자올이에요.
카메라와 입장료만 달랑 들고,
슬리퍼 신고 동네 슈퍼 가듯 코크의 유명 관광지로 향했죠.

입구-'코크 시티 자올'

각지고 차가운 색상의 돌 건물.
건물 입구부터 딱 감옥 같은 분위기가 저를 압박합니다.
입장료를 내고 감옥 내부를 구경합니다.
곳곳에 마네킹을 세워놓고 눕혀놓고 앉혀놓았습니다.
'이 수감자는 옷을 훔쳐서 갇혔음.'
'이 수감자는 빵을 훔쳐서 갇혔음.'
'이 수감자는 술주정뱅이라 갇혔음.'
'이 수감자는..'
"으헉!!!"
마네킹이 움직입니다.
"오우 쏘리."
다른 관광객이군요.
심장이 약한 사람은 조심해야겠어요.
움직이는 마네킹(?)이 있던 그 방은 죄수 체험을 할 수 있는 방입니다.

죄수체험-'코크 시티 자올'

죄수용 침대에 누워볼 수도 있고, 감방문을 잠글 수도 있죠.
문을 닫고 들어가 침대에 누웠습니다.
'그래도 창문은 달려 있구나.'
'끼이이익.'
"으헉! 쏘리."
감방문을 연 관광객이 저를 보곤 소스라치게 놀라며 외치더군요.
'마네킹이 움직여?!'
라고 생각했겠죠.^^;

탈출이 쉽지 않아-'코크 시티 자올'

감방에서 바라본 복도는 예전에 재미있게 했던 메탈기어 솔리드의 한 장면을 생각나게 합니다.
'들키지 않고 탈출할 수 있을까?'

멋진 나무-'코크 시티 자올'

밖으로 나오니 뒤뜰에 멋진 나무가 자태를 뽐냅니다.
19세기에도 그 자리에 우뚝 서 있었을듯한 나무.
뒷마당에선 죄수들이 운동 삼아 산책을 했다고 하더군요.
단 죄수들끼리 말을 하지 못하게 하는 규칙이 있었답니다.
수도승 같은 생활을 해야 했다고 하더라고요.
그래서 죄수들이 여럿 미쳤답니다.
코크 시티 자올.
나름의 이야기가 있는 흥미로운 관광지였어요.

코크 시티 자올 주소
CORK CITY GAOL,
Convent Avenue, Sunday's Well, Cork City, Ireland.

코크 시티 자올 홈페이지

by 月風



by


Tags : , , , , ,

  • 재미있게 읽으셨나요?
    광고를 클릭해주시면,
    블로그 운영에 큰 도움이 됩니다!

깔끔한 인터페이스와 충실한 기본기능의 무료 가계부 Personal Finances 무설치판을 쓰기 시작했습니다.

무료 가계부 프로그램. Personal Finances 무설치판

지출 내역-'무료 가계부 프로그램. Personal Finances 무설치판'
그동안 메모장에 여행경비를 적어 왔습니다.
큰 불편함은 없었지만, 좀 더 편리한 가계부를 쓰고 싶었어요.
Personal Finances는 시험 삼아 사용해본 무료 가계부 프로그램 중,
가장 맘에 드는 가계부입니다.
수입과 지출을 카테고리별로 관리!
가장 돈이 많이 들어가는 곳은 어디인지 한눈에 보여서 좋네요.
메뉴는 영문이지만, 카테고리나 내용엔 한글 적용이 가능해요.
각국의 통화가 사용하니, 여행 여행경비 적기에도 딱 맞습니다.

Personal Finances 가계부는 무료 버전과 프로 버전으로 나뉘어요.

지출 내역-'무료 가계부 프로그램. Personal Finances 무설치판'

프로 버전에는 도표와 달력 기능 등이 추가되었지만,
무료 버전만으로도 충분히 만족스러운 가계부입니다.
저는 윈도우 7 64비트 OS를 사용중이에요.
윈도우 7 64비트에선 잘 동작하지 않는 프로그램이 많습니다.
그런데 Personal Finances 가계부는 안정적으로 잘 동작하네요.:D

무료 가계부 프로그램 Personal Finances 무설치판 내려받기

by 月風



by


Tags : , , , , ,

  • 재미있게 읽으셨나요?
    광고를 클릭해주시면,
    블로그 운영에 큰 도움이 됩니다!

아파치 웹 서버 환경을 손수 구축하려면 여간 귀찮은 일이 아닙니다. 하지만 WAMP를 이용하면!

윈도우에서 아파치 웹서버 환경을 한방에 구축해주는 WAMP!


아파치 설치하고, 데이터베이스 설치하고,
PHP 같은 서버 스크립트 언어도 설치한 다음에 연동해 주어야 하죠.
어휴.
이런 불편함을 해결해 주는 WAMP.
덕분에 아주 간편하게 웹 서버 환경을 구축할 수 있어요.
윈도우뿐 아니라 다양한 플랫폼을 지원합니다.
(W) Windows WAMP
(L) Linux LAMP
(M) Macintosh MAMP

AMP는 무엇의 약자일까요?
(A) Apache server
(M) MySQL
(P) PHP

입니다.

저는 WAMP와 MAMP를 설치해 보았는데,
MAMP는 아주 단순한 기능만 들어가 있고,
WAMP는 유용한 기능들을 함께 담아 놨더라고요.
예를 들자면 이래요.
서버와 맞는 로컬 환경 구축을 하기 위해 MySQL 버전을 맞추려면 WAMP는 MySQL만 따로 받을 수 있지만,
MAMP는 일체형이라 통째로 갈아야 해요.
마치 하드웨어와 소프트웨어를 통째로 구매해야 하는 Apple사의 상품과 같죠.^^;
아래 링크에서 각 플랫폼에 맞는 서버를 내려받으실 수 있습니다.

윈도우용 웹서버 환경 WAMP 다운로드

리눅스용 웹서버 환경 LAMP 설치법

맥용 웹서버 환경 MAMP 다운로드

by 月風



by


Tags : , , , , ,

  • 재미있게 읽으셨나요?
    광고를 클릭해주시면,
    블로그 운영에 큰 도움이 됩니다!

리눅스에서 OS 브랜드와 버전 정보를 보려면 어떻게 해야 할까요?

리눅스 OS 정보 보기

리눅스 터미널-'리눅스 OS 브랜드 버전 정보 보기'

자기 컴퓨터에 설치한 리눅스가 아니고, GUI 환경도 아닌 낯선 터미널을 만났을 때.
까만 건 화면이요.
하얀 건 글씨입니다.
'도대체 이 OS의 정체가 뭘까?'
우선 뭔지 알아야 안면을 트고 친해질 수 있죠.

uname -a

를 입력하면 기본적인 정보를 줍니다.
'나는 인텔 칩셋용 64비트 리눅스다!'
라고요.
하지만 리눅스의 브랜드와 버젼정보는 알 수 없어요.

cat /etc/*version
혹은
cat /etc/*release

를 터미널에 입력해 봅니다.
레드햇, 데비안, 수세, 슬렉웨어, 젠투 등은 이 방법으로 리눅스 브랜드와 버전을 알 수 있어요.
/etc/gentoo-release /etc/debian_version처럼 말이죠.
이 방법으로도 정보를 알아낼 수 없다?

cat /etc/issue*
명령을 날립니다.

/etc/issue 나 /etc/isssue.net 에 리눅스 브랜드와 버전이 적혀 있기도 하거든요.
저는 이 파일에서 서버의 정보를 알아냈어요.
만약 아직도 리눅스가 정체불명이다?!

그렇다면.
/var/log/var/adm 폴더의 로그를 살펴보세요.
부트메시지엔 보통 버전이 들어가 있으니까요.
mail을 처음 설치하면 환영 메일을 보내주는 OS도 있으니, /root/mbox에서 우연히 정보를 만날지도 몰라요.
이상, 모르는 리눅스를 만났을 때 이름 물어보는 법이었습니다..:D
by 月風



by


Tags : , , , ,

  • 재미있게 읽으셨나요?
    광고를 클릭해주시면,
    블로그 운영에 큰 도움이 됩니다!

행복한 사회를 만들기 위해선 정의가 필요 하다고 합니다. 그렇다면 '정의란 무엇인가?' 마이클 센델은 그에 대한 이야기를 독자와 함께 풀어 갑니다.

정의란 무엇인가?

'Justice'
세 달 전.
오랜만에 만난 친구가 물었습니다.
"달리는 기차 앞에 다섯 명의 인부가 작업을 하고 있어."
"브레이크는 고장 났지. 그대로 달리면 다섯 명이 죽고. 잽싸게 다른 철로로 방향을 튼다면 한 명의 인부만 죽어."
"너라면 어떤 선택을 하겠어?"
이런 질문을 던져놓는 흥미로운 책이라며, 이 책을 소개해줬죠.
"정이란 무엇인가를 한번 읽어봐."
"정이 뭔가?"
"져스티스!"
그로부터 한참 후에야 이 책을 읽게 되었습니다.
'정의란 무엇인가?' 강의 동영상은 나꼼수가 나오기 전까지만 해도 아이튠스 다운로드 일위였다죠?
이 책을 읽으며 깊이 생각한 것이 두 가지가 있어요.
하나는 '책이 참 미국적이다.'
그리고 다른 하나는 "마이클 센델은 바닷가재를 정말 좋아하는구나."
였습니다.
책의 제목과는 관계없는 내용이죠.
이 책에서 말하려고 하는 정의.
공리주의라던가,
선택의 자유.
공동선의 추구에 대해 다양한 사례를 들어 이야기하지만,
기본 원칙만 지킨다면, 굳이 정의라는 게 필요할까 싶습니다.
저는 '정의'라는 개념이 필요한 건,
자기의 이익만 추구하는 사람들 때문이라고 봅니다.
옆의 나라가 좋아 보인다고 말도 안 되는 구실로 침략하는 것.
남의 통장에 들어갈 돈을 가로채서 내 통장의 잔액를 늘리는 것.
나는 희생할 생각이 없으니, 남에게 희생을 강요하는 것.
이런 일들이 요즘엔 뉴스거리도 아닐 정도로 번번이 일어나고 있습니다.
남에게 해가 되지 않는 선에서, 행복을 추구한다면.
그리고 그 행복을 다른 이들과 나눈다면.
그것으로 충분하지 않을까요?
그렇다면.
굳이 정의에 대해 이야기할 필요가 없을 테니까요.
by 月風



by


Tags : , , , ,

  • 재미있게 읽으셨나요?
    광고를 클릭해주시면,
    블로그 운영에 큰 도움이 됩니다!

코크 도심에서 가까운 발링커릭 공원에 다녀왔습니다.

발링커릭 공원


오랜만에 하늘에 태양이 고개를 내밀었습니다.
제가 아일랜드에 도착한 이후로 처음인 것 같군요.
집 나간 고양이를 다시 만났을 때처럼 반가와요.
이런 날 방구석에 처박혀 있긴 아쉽죠.
광합성을 하려고,
동네 친구와 근처의 발링커릭 공원에 다녀왔습니다.
1794년부터 1903년까지 화약 공장이 있던 곳인데요.
20세기에 코크 주에서 이곳을 사서 공원으로 만들었어요.

냇가-'발링커릭 공원'

물이 흐르고!

옛 화약 공장터-'발링커릭 공원'

녹음이 우거진 곳!
나뭇잎 사이로 내리쬐는 따뜻한 햇볕을 받으며 공원을 한 바퀴 돌았습니다.
날씨가 좋은 편이라 그런지 꽤 많은 사람이 산책을 나왔더군요.
다들 간만에 해를 봐서 그런지 표정이 밝습니다.

냇가에서-'발링커릭 공원'

저도 덩달아 기분이 좋아졌어요.:D
도심 가까이서 만날 수 있는 자연.
코크 발링커릭 공원이었습니다.
by 月風



by


Tags : , , , , ,

  • 재미있게 읽으셨나요?
    광고를 클릭해주시면,
    블로그 운영에 큰 도움이 됩니다!