sublime text2 SFTP package 설치
최근 yammer 그룹에서 사용하는 ide 툴 물어본 설문조사가 있었다.
eclipse와 vi를 쓰는 나에게 관심가는 sublime text2라는 에디터가 있어서.
사용해 봤다.
깔끔하고 보기 좋은데다가 우측에 map 이 있어서 가독성이 좋은것 같았다.
쓰다보니 SFTP를 활용한 remote 기능이 아쉬어 구글링 해본 결과 package를 추가하면 된다는 사실을 알 수 있었다.
바로 찾아봤다.
http://wbond.net/sublime_packages/package_control
package control하는 녀석을 다운 받아서 설치해줬다.
1. preferences -> browse packages 선택
2. sublime text 2 \ packages 폴더가 나오는데 여기서 상위 폴더로 이동
3. 상위 폴더로 이동후 installed packages 폴더로 이동
4. 다운 받은 package control.sublime-package 파일을 카피해서 붙여넣는다.
5. sublime을 재시작한다. 그러면 preference 메뉴에 이전에는 없던 package control 이라는 메뉴가 생성된것을 확인할 수 있다. 클릭해서 실행하자
6. package control 에서는 새로운 package를 추가하고, 삭제하는 등 다양한 명령을 수행할 수 있는데 sftp package를 설치하기 위해서는 install package를 선택한다.
그림처럼 타이핑 하거나, 마우스로 선택하면 된다.
7. SFTP package를 선택한다.
7. package 가 인스톨 되고 있다. 좌측 하단에서 installing 이라고 나온다.
8. 인스톨이 끝나면 package control message 가 나온다.
9. sfpt 메뉴가 추가된것을 확인할 수 있다.
위와 같이 sftp package를 설치하였는데 아직 좌측 side bar 에서 폴더 구조로 sftp remote를 활성화 시키는 방법은 모르겠다
좀 더 연구해봐야할듯.
일단 sftp 기능이 이클립스 remote보다 더 빠른느낌이다. 만족스러움!
애플 아이디 로그인이 안됨
지금 시각 오후 6시 12분.
애플 아이디로 로그인이 안된다.
회사에서 발급한 계정으로 로그인을 할려고 했는데;;
이런;; 로그아웃하고 난 뒤에 내 원래 계정으로 로그인할려고 했더니 이마저도 안된다..
어쩌란 말인가.
네이버 실시간 검색순위로도 파파팍 올라가고 있다.
아마도 와이파이 싸이클이 빙글빙글 도는걸 보니
애플 인증 서버가 맛이 간듯;;;
기다려야지 별 수 있나 ㅠㅡㅠ
웹 사이트의 접속 속도 측정과 개선
사용자가 접속하는 웹사이트의 속도를 확인하는 것은
쾌적한 웹 사이트 이용에 기본이 되는 요소임이 틀림없다.
이에 사이트 관리자는 웹사이트의 빠른 접속속도를 지원하기 위해서 다양한 시도를 하며
이를 하기 위해서는 정확한 속도가 측정이 되어야 한다.
http://www.w3.org/TR/navigation-timing/ 를 참고하면
javascript API performance 객체를 활용하면 정확한 측정이 가능하다
현재는 IE9, Chrome, FF에서만 지원한다.
performance.time 객체에 대한 내용은 다음과 같다.

이를 해석하자면.
전체 페이지가 로딩되는데 걸리는 시간은 loadEventEnd - navigationStart
네트워크가 지연이 일어나는 시간이 얼마인지 알고싶다면 : reponseEnd - fetchStart
이전에 한번 방문했던 페이지를 로딩하는데 걸리는 시간은 loadEventEnd - responseEnd
가 되겠다.
로딩이 끝난시점에 loadEventEnd 값이 입력되므로
간략하게 script로 짜본다면
</script>
가 될수 있다. 이렇게 하면 millisecond 단위로 시간이 나온다.
이를 서버에 전송하게 한다면 각 사용자별 로딩 타임을 기록할 수도 있을것 같다.
단, 아직 지원 브라우저에 제한이 있음을 기억하자.
모바일용은 아이폰만 해봤는데 안된다.. ;; 지원해줘 좀..
웹 사이트 스피드에 대한 개선 방안은
https://developers.google.com/pagespeed/
에서 테스팅 해보면 좋다.
참고 : http://www.w3.org/TR/navigation-timing/
http://www.html5rocks.com/en/tutorials/webperformance/basics/
http://nol2soft.com/2011/10/16/navigation-timing%EC%9C%BC%EB%A1%9C-%ED%8E%98%EC%9D%B4%EC%A7%80-%EB%A1%9C%EB%93%9C-%EC%86%8D%EB%8F%84-%EC%B8%A1%EC%A0%95%ED%95%98%EA%B8%B0/
HipHop PHP
2010년 공개된 HipHop PHP 는 페이스북에서 발표한것으로
php 로 작성된 시스템을 C++로 변환해주는 녀석이다.
PHP 코드를 C++코드로 변환하여 G++로 빌드.
PHP 소스를 실행하는데 필요한 전처리 과정을 제거하여 빠르게 수행할 수 있도록 하는 녀석이다.
호스팅과 같은 환경에서는 서버 자원을 활용할 수 없으므로 사용이 불가능 하겠지만.
대용량 시스템이나 API를 제공하는 시스템의 경우에는 유용하리라고 본다.
이론상으로 2배 빨라질 수 있다고 하는데 직접적인것은 테스팅 해봐야할듯하다.
참고로 PHP 로 인한 CPU, 메모리 사용량이 큰 시스템일 수록 더 효과가 클것으로 예상된다.
아직은 제약사항이 많지만, 계속 지켜볼만함.
참고
oranke님 블로그 : http://oranke.tistory.com/173
벤치마크에 대한 블로그 : http://www.formboss.net/blog/2010/03/hiphop-php-benchmark/
HipHopPHP : http://hiphopphp.org/category/benchmark/
sh 님 블로그 소개글 : http://hardworker.tistory.com/101
code storage 블로그 : http://code.p-ark.co.kr/167
[MYSQL] 프로시져 Procedure Exception 처리
MySQL 버전 : mysql-5.0.37 작성자 : 얼룩푸우(budget74@nate.com) MySQL에서 Procedure 예외 처리 방법에 관해 제가 사용하고 있는 방법입니다. IF ELSE END IF 구문으로 각 각의 예외를 처리하고 있으며 select 는 found_row(), insert 나 update 는 row_count() 를 통해서 쿼리가 제대로 처리되는 지 확인 하고 있습니다. 다만 주의할 것은 update 는 필드값이 동일하면 row_count() 가 0 입니다.
실 사용 예제 -----------------------------------------------------------------------------------------
DELIMITER $$ DROP PROCEDURE IF EXISTS `mysite`.`sp_sponsor`$$ CREATE PROCEDURE `sp_sponsor`( DELIMITER ;
출처 : http://blog.naver.com/budget74?Redirect=Log&logNo=90085966210 [출처] [MySQL] Procedure Exception 처리|작성자 얼룩푸우
IN i_nUserNo INT(10) UNSIGNED,
IN i_vcMenuCode VARCHAR(7),
IN i_nBoardNo BIGINT(20) UNSIGNED,
IN i_nKind TINYINT(1) UNSIGNED,
OUT o_nOut TINYINT(2)
)
BEGIN
DECLARE MadeByJongSeok char(1);
DECLARE v_nHitExpNo, v_nUserNo INT(10) UNSIGNED;
DECLARE v_nYearWeek INT(6) UNSIGNED;
SELECT DATE_FORMAT(CURRENT_DATE(), '%x%v') INTO v_nYearWeek;
SELECT nHitExpNo INTO v_nHitExpNo FROM tbl_hit_exception WHERE vcMenuCode=i_vcMenuCode;
IF FOUND_ROWS() = 0 THEN
IF i_nKind = 4 THEN
SELECT uid INTO v_nUserNo FROM tbl_member WHERE uid = i_nUserNo;
ELSE
IF SUBSTRING(i_vcMenuCode,1,4) = 'R_01' THEN
SELECT uid INTO v_nUserNo FROM tbl_review WHERE no=i_nBoardNo;
ELSE
SELECT uid INTO v_nUserNo FROM tbl_board WHERE no=i_nBoardNo;
END IF;
END IF;
IF v_nUserNo > 0 THEN
IF i_nKind = 4 THEN
INSERT INTO tbl_hit_spread
(nBoardNo, vcCode, nUserNo, nYearWeek, dtRegDate)
VALUES
(i_nBoardNo, i_vcMenuCode, i_nUserNo, v_nYearWeek, NOW());
ELSE
INSERT INTO tbl_hit_fileshare
(nBoardNo, vcCode, nUserNo, nYearWeek, dtRegDate)
VALUES
(i_nBoardNo, i_vcMenuCode, v_nUserNo, v_nYearWeek, NOW());
END IF;
IF ROW_COUNT() > 0 THEN
SET o_nOut = 1;
ELSE
SET o_nOut = 4;
END IF;
ELSE
SET o_nOut = 3;
END IF;
ELSE
SET o_nOut = 2;
END IF;
END$$
IE8 상에서 fullcalendar 구현시 content 영역의 visible문제
fullcalendar 를 사용해서 IE8 상에서 달력을 출력했다.
그런데 헤더 영역만 보이고, content 영역이 보이지가 않았다.
dom을 생성하지 않는것도 아니고, javascript 에러도 나지 않은상태에서
visible되지 않으니 답답할 노릇, 드래그해서 복사를 하면 갑자기 쌱 나타나는 content 영역에 대해서
도움을 받아 css 부분을 살펴본 결과
fc-content 영역에 대한 positon:relative 를 제거하자 잘 나온다..
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
추가 : IE8상에서 호환성 보기로 보았을때 보이는 현상인듯 하다.
좀더 명확한 원인 분석이 필요함.
기간 만료(휴면)된 모바일미(mobileme) 계정 icloud(아이클라우드) 연결(활성화) 시키기
2011.10월 13일(한국시간) 부로 IOS5의 사용이 가능해졌다.
새벽에는 잠이 많은 관계로 푸욱 숙면을 취하고(사실 빨리 업데이트 하고 싶었으나,,피곤한 관계로)
출근하여 점심먹고나서 셋팅에 들어갔다. 아이폰을 업데이트하는 과정이 조금 험난했으나.
그건 넘어가고.
내가 제일 궁금했던 점은 기존에
만료된,,(휴면된) 모바일미(mobileme) 계정을 사용하여 icloud를 활성화 시킬 수 있느냐 였다.
통합 appleid 정책이니 이런건 잘 모르겠고, 무튼 내가 어제 새벽무렵 삽질하면서 알게된 사실을
기록으로 남겨둔다.
준비물 : OSX.10.7.2 이상의 맥.
: 아이폰에서 기존에 만료된 계정의 XXXX@me.com 으로 icloud에 연결하려고 하니 뜬금없이
설정에서 팅겨버린다. 뭔가 버그가 있는듯 하지만, 새로 생성하기에는 기존에 선점해둔
XXXX@me.com 의 계정이 너무나 아까웠다. 시험판으로 사용하고 유료연장하지 않아 만료상태인 계정인데
어떻게든 쓰고 싶어서 별의별 궁리를 다 해보았다. 근데 안되는것이다!!
하지만 결국 활성화 했는데 그 방법은 바로 아이폰 말고 맥에서 하는것이다.
절차는 다음과 같다.
1. 맥의 시스템 환결설정

위와 같이 모바일미가 등록된 시스템 환결설정창을 보면
'귀하의 MobileMe 시험판이 만료되었습니다.' 라고 나온다.
여기서 iCloud로 이동을 클린해보자.
2. 웹 사이트에서 전환
http://me.com/move 로 들어가도 된다.
들어가면 기존 모바일미 계정으로 로그인하여 전환하면 icloud 사이트로 이동이 되는데
내경우에는 메일이나 다른건 활성화가 필요하다고만 메세지가 나오고 내 아이폰 찾기만 접속이 되었다.
아무튼 전환이 되긴 된 모양이라는 느낌을 가지고 다음을 진행했다.
3. 시스템 환경설정 - iCloud
10.7.2 버전의 맥이라면 시스템 환경설정에서 iCloud 메뉴를 확인할 수 있다.
여기서 바로 로그인 하지 말고, Apple ID 생성을 클릭하자, (새롭게 만들려고 하는게 아니다. 하지만 클릭)

4. MobileMe 계정 사용 클릭
사전에 MobileMe 계정이 등록되어 있었기 때문인지 모르겠으나,
새로운 계정을 생성하려고 하니, 자동으로 다음과 같은 메세지가 떴다.
당연히 MobileMe 계정 사용을 클릭한다.!!

5. 마지막
조금 기다리면 다음과 같이 iCloud 기능을 맛볼 수 있다. 끝났다!..

6. Iphone 에서 이제 설정 - iCloud에서 활성화가 끝난 모바일미 계정을 입력하면 iCloud가 문제 없이 설정된다. 이제 자유롭게 사용하면 됨! 유후~//
### 덧 . 혹시 위와 같은 상황에도 안된다면. appleid.apple.com 에 모바일미 계정으로 로그인하여 메인 이메일 주소, 또는 대체 이메일 주소를 수신가능한( 그러면서 다른 appleid와 겹치지 않는) 메일주소로 변경하여
해당 메일계정에 대해서 인증한번 받은후에 재시도 해보면 된다.
윈도우 상에서 프로세스를 죽이는 콘솔 명령어
특정 작업을 위해서 원격지의 넷북에 USB 인터페이스를 통해서
데이터를 수신하는 시스템을 구성해 놓았다.
그런데 이녀석이 잘 동작하다가 이유없이 자꾸 죽는다.
USB 드라이버도 내가 개발한것도 아니요, 데이타 수신 프로그램도 내가 짠게 아니니.
어찌어찌 원인 찾기가 힘들다.
결국 궁여지책으로 자동으로 하루에 한번씩 재부팅하도록 스크립트를 짰다.
그런데 이녀석이 종료중에 무한 대기에서 멈춰버리는게 아닌가.
원인을 살펴본결과 Teamviewer로 연결된 녀석이. 재부팅 시그널을 받아도..
teamviewer 서버와의 연결을 끊지 않아서 무한 대기 타는 것이였음
스크립트에 다음과 같이 추가함.
taskkill /f /im TeamViewer_Service.exe
taskkill 은 말그래도 윈도우 상에스 프로세스를 죽이는 방법이다. 우리가 흔히 컨트롤+알트+델 키를 눌러서
보이는 프로세스 명칭(실행파일의 이름들)을 직접 적어주면 된다.
내경우에는 다른 스크립트 와 연계하여 매일 새벽 스케줄러에서 자동 실행되게 구성하였다.
그 뒤로는 이상없음. 흠 좋아!
The User-Agent Switcher Extension
웹 개발을 하면서 브라우저의 agent를 변경해가면서 테스팅해야되는 경우가 있다.
내 경우에는 크롬을 많이 쓰는데
FF에서 존재하는 addon의 형태로 있는 확장 프로그램을 찾아서
기록으로 남겨둔다.
웹 앱스토에서 찾을수가 없어서 따로 저장해둔다.
http://mac.softpedia.com/dyn-postdownload.php?p=73223&t=4&i=1
[2011.11.16일 추가]
크롬이 14버전 이상인 경우에 기존 extension이 실행되지 않는다.
http://spoofer-extension.appspot.com/ 에서 새로운 버전을 확인할 수 있다.
만약 실행이 안된다면
1. 크롬 버전이 14 이상인지 확인하고
2. 실행시 옵션에 --enable-experimental-entension-apis 를 입력하고 실행해보자.
유용하게 잘 된다. (또는 about:flags 를 입력하여 옵션에서 enable 시키면 된다.)
3. 혹시나 읽을 수 없다고 나온다면, 다운로드 폴더를 c:\로 지정하고 다시 시도 해본다.
기본적으로 아이폰, 아이패드의 user-agent가 입력되어 있어 사용하기 편리하다.
[2012.02.24일 추가]
http://spoofer-extension.appspot.com/ 에서 최신버전을 확인할 수 있다.
about:version 을 주소창에 입력해서 자신의 크롬 버전을 확인한다.
만약 크롬이 16이하 라면 예전 버전을
크롬이 최신의 17이상이라면 최신버전을 설치하면 된다.
개발중인 버전을 확인해 볼 수도 있다.
크롬 웹스토어가 아닌 crx를 직접 설치하려면 c:\ 에 crx 파일 저장후에 크롬 브라우저에 드래그앤드롭하면 된다.
설치후에는 about:flags 에서 '실험실 확장 프로그램 API' 기능을 활성화 해주고 '저장 -> 크롬 재시작' 해주어야 한다.
2012.02.24일 현재 내가 쓰는 크롬은 17, 함께 많이 쓰는 크롬플러스(Coolnovo로 이름이 바뀌었다) 는 16이다.
따라서 크롬에는 spoofer 1.0.11 버전을 크롬플러스에는 spoofer.1.0.7 버전을 깔아줬다.











