'Tip'에 해당하는 글 36건

vimrc filetype

Tip/Linux 2013. 6. 21. 00:20

vim 편집기를 사용할 때,
html 파일안에 php 코드를 넣는 경우,
php 에 대한 하이라이팅이 정상적으로 나오지 않는 경우가 발생합니다.
php 스크립트릿 <? ?> 과 태그 < > 주석 /* */ 등이 겹치면서 엉망이 되지요.

 

php 파일안에 html 태그의 하이라이팅 -> 정상
html 파일안에 php 코드의 하이라이팅 -> 비정상

 

그러므로 html 파일의 확장자를 php 로 바꿔도 되지만 이 방법은 ㅎㄷㄷ;
vim 편집기로 html 파일을 열 경우 하이라이팅 형식을 php 로 지정하는 것이 가능합니다.

 

$ vi ~/.vimrc
augroup filetype
    autocmd BufNewFile,BufRead /*.html set syntax=php
augroup END

 

syntax 를 filetype 으로 바꿔도 가능합니다.


WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

트랙백  0 , 댓글  0개가 달렸습니다.
secret

OCIEnvNlsCreate() failed

Tip/PHP 2013. 4. 24. 22:59

php 에서 오라클 연결시 오류 발생 (apache2.2.22 / php5.3.14)

 

oci_connect() function.oci-connect: OCIEnvNlsCreate() failed. There is something wrong with your system - please check that ORACLE_HOME and LD_LIBRARY_PATH are set and point to the right directories in /home/oops4u/www/db.php on line 3

 

ORACLE_HOME 이랑 LD_LIBRARY_PATH 가 설정이 안됐나; 오디에??
언젠가 아무 설정 없이도 잘 됐던거 같은데 ㅜㅜ
음... 페이지 권한 때문인가? oracle:oinstall 로 바꿔보고 /etc/group 도 바꿔보고 했더니.
되네? ㅋㅋㅋㅋㅋㅋㅋㅋ 조금지나 새로고침(F5) 했더니 다시 안되네? 되다? 안되다?
머 이런게 다 있노;; 되려면 확실하게 되고 말려면 말 것이지.

 

 

하지만 역시 정답은 저 에러 메시지 안에 있었음. apache 환경 변수 추가.

 

# vi /usr/local/httpd/bin/envvars

 

ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1; export ORACLE_HOME
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib; export LD_LIBRARY_PATH

 


WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

트랙백  0 , 댓글  0개가 달렸습니다.
secret

IE 조건부 주석

Tip/Javascript 2013. 4. 10. 23:47

조건부 주석은 HTML 소스중 인터넷 익스플로러(ie)에서 해석되는 조건문 입니다.
구 버전의 ie에서 제대로 작동하지 않는 문제를 해결할 수 있습니다.
하지만 ie10 의 표준 모드에서 조건부 주석은 지원되지 않고, JScript 조건부 주석은 지원됩니다.

 

<!--[if condition]>
HTML
<![endif]-->

 

위와 같은 구문으로 조건부 주석을 사용할 수 있으며, 조건(condition)을 만족할 경우 HTML을 렌더링하게 됩니다.
조건부 주석을 지원하지 않는 브라우저에서는 위 구문을 일반 주석문으로만 해석합니다.

 

condition에 사용되는 기호는 다음과 같습니다.
!(아니다), lt(작다), lte(작거나 같다), gt(크다), gte(크거나 같다), ()(우선처리), &(그리고), |(또는)

 

 

condition 예) 

 [if !ie]  ie 가 아니라면
 [if lt ie 8]  ie 8 이전버전 이라면
 [if lte ie 8]  ie 8 이거나 이전버전 이라면
 [if gt ie 8]  ie 8 이후버전 이라면
 [if gte ie 8]  ie 8 이거나 이후버전 이라면
 [If !(ie 8)]  ie 8 이 아니라면
 [if (gt ie 6)&(lt ie 9)]  ie 6 이후버전 이고 ie 9 이전버전 이라면
 [if (ie 6)|(ie 8)]  ie 6 이거나 ie 8 이라면

 

이 조건부 주석을 주석 처리하는 브라우저에 대하여 마크업을 넣으려면 다음과 같이 할 수 있습니다.

 

<!--[if !ie]>-->
<link href="non-ie.css" rel="stylesheet">
<!--<![endif]-->

 

위와 같이 조건부 주석 라인을 주석처리 시키면 ie가 아닌 브라우저에 대한 css 를 적용할 수 있습니다.

 

만약 ie도 아니고 ie 9 이전 버전인 브라우저에 대하여 아래와 같이할 수 있습니다.

 

<!--[if gt ie 9]><!-->
<link href="non-ie9.css" rel="stylesheet">
<!--<![endif]-->

 

첫째줄 마지막을 ie가 아닌 타브라우저를 위해 <!--> 이 아닌 --> 로 입력한다면,
ie 9 이전 버전들은 <!--[if gt ie 9]> 구문이 끝나는 즉시 렌더링이 시작되므로 --> 부분이 브라우저에 표시될 것입니다.
이 부분을 주석시키기 위하여 --> 부분을 <!--> 로 변경한 것 입니다.

 

 

 

JScript 조건부 주석

 

JScript 안에서 사용할 수 있는 조건부 주석입니다.
ie 브라우저의 JScript engine 버전을 알 수 있는 방법입니다.
타 브라우저에 대한 처리도 가능합니다.

 

<script>
/*@cc_on
    @if (@_jscript_version >= 5)
        document.write("JScript Version 5.0 or better.<BR>");
    @else @*/
        document.write("You need a more recent script engine.<BR>");
    /*@end @*/
</script>

 

Jscript 안에서 /* */ 는 주석입니다.
@cc_on 은 조건부 주석의 시작을 나타냅니다.
@if, @elif, @else, @end 등의 조건문을 이용할 수 있습니다.
@_jscript_version 은 브라우저에 내장된 JScript engine 버전, @_win32는 32비트인지를 나타냅니다.

 

우리는 ie를 위하여 참 많은 노력이 필요합니다...

WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

트랙백  0 , 댓글  2개가 달렸습니다.
  1. <!--[if gt ie 9]><!-->

    <!--<![endif]-->

    위 소스의 의미를 모르겠습니다. 위 설명이 너무 어렵게 되어 있어요.ㅋ
    • ... 위 소스의 의미를 모르신다면 나머지 소스들도 모르시겠네요ㅜ
      그 두 줄이 조건부 주석의 전부라 공식이라 생각하시고 외우셔야겠네요.
      <!-- --> 는 주석처리, if 구문, []는 조건... 더이상의 쉬운 설명은 제가 부족해서ㅎ

      5분만 시간내셔서 처음부터 한번더 읽어보시는게 좋을 듯!
secret

현재 경로의 모든 파일을 나열하는 ls 명령.
여기서 -d 옵션을 사용하면 현재 경로의 디렉토리인 . 만 표기됩니다.

 

현재 경로의 모든 디렉토리를 뽑아 내는 것은 ls -d * 일 줄 알았는데,
ls -d *ls * 과 같은 결과를... 정답은,

 

$ ls -d */


WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

트랙백  0 , 댓글  0개가 달렸습니다.
secret

Google Maps API

Tip/Javascript 2013. 1. 6. 02:30

웹사이트 내에 '오시는길' 등의 특정 위치를 나타낼 때 보기 쉽게 이미지로 잘 표현할 수도 있지만,
특정 지도 서비스 업체의 API 를 이용하는 것도 좋은 방법입니다.

 

구글맵 API 를 이용하여 웹사이트에 위치를 표현하는 방법입니다.
'구글맵 API' - https://developers.google.com/maps/?hl=ko 를 검색해 들어가면
JavaScript, Flash, 3D, Static 기반의 다양한 API를 볼 수 있습니다.

 

Maps JavaScript API(V3) 를 사용해 봤습니다.
Guide 를 활용하여 본인이 원하는 기능들을 구현하면 되겠습니다.

 

 

1. 기본 환경 세팅
- 기본적인 폼 구성입니다.

 

// HTML5 로 선언해야 합니다.
<!DOCTYPE html>
<html>
<head>

// Google map API를 호출합니다.
// 사용자 위치 확인 사용 여부를 sensor 값으로 true, false 중 입력합니다.
<script type="text/javascript" src="https://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
function initialize() {
    // 지도 사용 스크립트
}
</script>
</head>

// onload 등의 이벤트로 initialize 함수를 페이지 로딩시 호출합니다.
<body onload="initialize()">

// 지도 영역을 생성합니다.
<div id="map_canvas" style="width:600px; height:400px;"></div>

</body>
</html>

 

 

2. 지도 사용 스크립트 작성
- 지도가 불려질 함수를 작성합니다.

 

function initialize() {

    // 지도 중앙에 표시될 위치의 좌표를 입력. (위도, 경도)
    var centerLating = new google.maps.LatLng(-34.397, 150.644);

    // 줌 설정. 최대 축소값(1), 최대 확대값(18)
    // 중앙에 위치할 좌표 설정.
    // Maptype : ROADMAP 은 입반적인 2D 지도입니다. (위성:SATELLITE, HYBRID, 지형:TERRAIN 등이 있습니다.)
    var myOptions = {
        zoom: 8,
        center: centerLating,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };

    // map_canvas 에 지도를 출력합니다.
    var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
}

 

 

3. 특정 지역 좌표값 검색
- 위의 스크립트를 작성하고 나면 임의의 좌표를 입력해서 지도가 출력되는 걸 확인할 수 있습니다.
- 이제 웹페이지에 표시할 지역의 좌표값(위도,경도)을 검색하여 2번 스크립트의 LatLng 함수에 입력합니다.
- 주소를 입력해서 위도, 경도를 반환하는 GeoCoding 이라는 서비스를 구축하여 경도, 위도를 알아내는 것보다,
포털에서 '위도 경도 검색' 으로 이미 구축된 GeoCoding 등의 서비스를 이용하여 경도, 위도를 알아내는게 편하네요.

국기원의 위도, 경도는 37.50191265817288, 127.03029334545135 입니다.
LatLng 메소드에 국기원의 좌표를 입력하면 다음과 같은 지도가 출력됩니다.

 

 

 

4. 마커 표시
- 찾는 위치가 국기원이라는 표시를 위해 마커와 텍스트를 입력합니다.
- 강남역과 역삼역 사이에 있다는 것을 인식시키기 위해 지도 중앙 좌표를 살짝 조절해 줍니다.

 

function initialize() {

    // centerLatlng : 지도 중앙
    // buildingLatlng : 국기원 좌표(마커)
    var buildingLatlng = new google.maps.LatLng(37.50191265817288, 127.03029334545135);
    var centerLatlng   = new google.maps.LatLng(37.500372053558664, 127.03187584877014);

    var myOptions = {
        zoom: 8,
        center: centerLating,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };

    var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

    // marker 와 title 표시
    var marker = new google.maps.Marker({
        position: buildingLatlng,
        map: map,
        title:"국기원"
    });
}

 

 

5. 완성 소스

 

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="https://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
function initialize() {
    var buildingLatlng = new google.maps.LatLng(37.50191265817288, 127.03029334545135);
    var centerLatlng   = new google.maps.LatLng(37.500372053558664, 127.03187584877014);
    var myOptions = {
        zoom: 16,
        center: centerLatlng,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
    var marker = new google.maps.Marker({
        position: buildingLatlng,
        map: map,
        title:"국기원"
    });
}
</script>
</head>
<body>
<body onload="initialize()">
<div id="map_canvas" style="width: 600px; height: 400px; border:1px solid #ddd""></div>
</body>
</html>

 

 

 

이 외에도,
동서남북의 위치를 각도로 바꿀 수 있음,
마커, 혹은 아이콘을 여러개 놓을 수 있음,
여러 형태(원,사각형,폴리곤...)의 영역 지정 가능,
교통정보, 자전거 경로 등의 레이어 추가 가능,
경로 설정 등 구글맵 서비스와 거의 동일한 기능들을 모두 이용할 수 있습니다.


WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

트랙백  0 , 댓글  1개가 달렸습니다.
  1. 간혹 한국 지도가 회색으로 보여질 때가 있음.
    구글에서 뭔짓을 중간중간 하는거 같음...
    시간이 지나면 다시 잘 나옴.
secret