2011년 7월 28일 목요일

Blogger에 +1 버튼 추가하기 howto

이론 없이 블라인드 카피하려는 분들을 위한 문서입니다.
작동을 보장하는 것은 블로거 기본 테마 사용자 분들에 한합니다.

1. 디자인에 삽입할 소스코드를 얻습니다.


에 가서 버튼 사이즈, 언어 등을 선택합니다. 그럼 하단에 소스코드가 그에 맞춰서 생성됩니다.


소스코드는 두 부분으로 나누어집니다. 하나는 어딘가 적당히-_-삽입하면 되는 부분이고, 다른 하나는 버튼을 붙이려는 장소에 맞춰서 삽입해 주어야 하는 부분입니다.


1. 적당히 삽입하면 되는 부분

이하의 코드를 적당히 삽입하면 됩니다.

========
<!-- 아래 태그를 헤더나 </body> 태그 앞에 붙여 넣습니다. -->
<script type="text/javascript" src="https://apis.google.com/js/plusone.js">
{lang: 'ko'}
</script>
========

여기서 적당한 부분으로는 헤더나 바로 앞을 말합니다. 이 글에서는 </body>앞을 택하겠습니다.

블로거 대쉬보드에서

디자인 -> html편집 -> "가젯코드 펼쳐서 보여주기 체크" -> 최하단의 </body>태그 직전에 위의 코드 삽입



2. 버튼을 나타낼 부분에 코드 삽입하기.

여기서는 적당하게 하면 안 됩니다. 위에서 부주의하게 "가젯코드 펼쳐서 보여주기 체크를 하지 않으셨다면, 1로 돌아가서 처음부터 다시 하셔야 합니다.

찾아야 하는 구절은
===========
<data:post.body/>
===========
입니다.

이 바로 아래에
===========
<!-- 아래 태그를 +1 버튼을 렌더링하고자 하는 위치에 붙여 넣습니다. -->
<g:plusone expr:href="data:post.url"></g:plusone>
===========
를 넣읍시다.

그리고 "스킨 저장" 버튼을 눌러 저장하고 나면 이 블로그처럼 포스팅 아래에 +1 버튼이 나타납니다.


문서에 대한 피드백은 답글로 남겨주세요.

2011년 7월 25일 월요일

jqGrid, loadonce 옵션 때문에 망한 경험담

loadonce 옵션을 false로 줄 때

auto-increment int인 PK를 가지는 테이블일 때, loadonce:false 상태에서 새로운 row를 등록하면 PK를 제대로 잡지 못한 상태가 된다.


새로운 row 등록 -> 서버쪽에서 PK 생성 -> loadonce:true라서 서버사이드에서 피드백 오지 않음 -> 클라이언트에서는 새로운 데이터에 지맘대로 PK 설정.


이 상태에서 새로 등록된 데이터를 수정하면 지맘대로 설정한 PK값을 가지고 있는 기존 row를 오염시킨다.





loadonce:true로 줄 때

jqGrid에 채우는 데이터가 DB에서 JOIN을 많이 사용한 쿼리문을 통해서 만들어졌을 경우 검색이 제대로 돌아가게 만들기가 만만치 않다.




이 둘 사이에 끼어서 고생 좀 한 적이 있음.

2011년 7월 20일 수요일

Fedora 15에서 PostgreSQL, phpPgAdmin 설치 및 설정

아주 초심자용 문서는 아니다. 기본적인 페도라 관리가 가능하고 SQL에 대해서 어느 정도의 이해가 있어야 한다.

yum으로 설치해야 하는 패키지 목록 : postgresql, postgresql-libs, postgresql-server

1. 설정
최초 설정의 문제는 다음과 같다.
  1. 사용자 : postgres라는 수퍼유저만 존재.
  2. 인증방식 : 시스템 아이디와 postgresql에서의 role이 동일한지 확인하는 방식으로 인증
  3. phpPgAdmin 설정 : 안 되어 있음.
  4. postgresql 서버 구동 되어있지 않음.

다시 말해서, yum 설치 직후 postgresql에는 postgres라는 사용자만 등록되어 있으며, 이 사용자로 postgresql에 접속하기 위해서는 (psql이라는 명령어를 사용한다.) 시스템에도 postgres로 로긴되어 있어야 한다. 또한 접속하기 위한 서버가 실행되지도 않았다.

각각을 해결하는 방법은 다음과 같다.

1. 계정(role)이 postgres뿐.

su
<암호입력>
su postgres

이제 postgres계정으로 시스템에 로긴한 상태가 될 것이다. 이 상태에서

createuser <새 유저 아이디(role)> -P

-P는 유저등록과 함께 패스워드를 설정하겠다는 옵션이다.
superuser인지, DB생성을 허용할지, Role생성을 허용할지 등을 묻는다.


여기까지 성공했으면 이제 psql에는 사용자(role)가 두 명이다. postgres와 방금전에 생성한 아이디까지 두 명의 사용자가 된다. 만약에 위에서 createuser로 생성한 postgresql role과 같은 아이디가 시스템에도 있다면, 시스템에서 그 아이디로 로긴되어 있는 동안 psql로 접속할 수 있다.


2. 로긴 방식이 시스템 id == postgresql role

phpPgAdmin은 id/password를 통하여 postgresql에 접근하려고 한다. 그런데 기본 설정은 시스템id와 일치하는 postgresql role이 존재하는지 확인하여 이 아이디로 로긴시키는 것이다. 이것을 수정해주기 위해서는 /var/lib/pgsql/data/pg_hba.conf 라는 파일을 수정하면 된다.

local all all ident sameuser에서 ident sameuser를 md5로 바꿔주면 된다.


3. /etc/phpPgAdmin/config.inc.php-dist를 /etc/phpPgAdmin/config.inc.php로 복사.


4. 루트 권한으로 (sudo, su -c 등은 개인 취향) service postgresql initdb, service postgresql restart 등.