http://blog.1day1.org/429
에서 x11vnc 로 설정하는 부분이 있다.
아래부분처럼 설정하면, shift key 가 안 먹힐것이다.
 server_args = -inetd -o /var/log/x11vnc.log -display :0 -auth /var/lib/gdm/:0.Xauth -many -bg -noxdamage -rfbauth /etc/x11vnc.passwd
 
다음처럼 바꿔주면 된다.
 server_args = -inetd -o /var/log/x11vnc.log -display :0 -auth /var/lib/gdm/:0.Xauth -xkb -repeat -many -bg -noxdamage -rfbauth /etc/x11vnc.passwd

-xkb 옵션을 넣으면 shift key 가 먹힐 것이다. 그리고, -repeat 옵션도 추가되었는데.
키보드의 키를 누르고 있으면 반복입력되는데, 기본옵션이 -norepeat 라서  반복입력이 되지 않는다.
반복입력이 필요하면 -repeat 옵션을 넣어준다.


설정후 이런 메시지가 /var/log/x11vnc.log 쪽에 남으면서 안되는 경우가 있다.

vnc 를 띄울 적절한 X display 를 찾지 못했다. 접속할 권한? 대략 그런의미.(정확한 이해를 아직 ...)
윈도우매니저 별로 차이가 있다.  gdm , kdm , ubuntu 11.04 부터인가 바뀐 unity 도 좀 다르다. 
 
-auth /var/lib/gdm/:0.Xauth 부분이 안되는 경우이다.

ps wwwwaux | grep auth
로 넣어야 하는 값을 찾을 수 있다. 
또는 x11vnc -findauth 로 찾아본다.

 
반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,
우분투 11.04 를 사용하는데, grub 메뉴를 숨기는게 잘 안된다.

부팅시 grub 메뉴를 숨길때

예전 grub 에서는 /boot/grub/menu.lst 에서
hiddenmenu
를 넣어주면 되었었다.

그런데, grub2 에서는 설정이 좀 복잡하게(체계적으로?) 바뀌었다.

사용자가 만질 부분은  /etc/default/grub 에서 만져준다.
그리고, update-grub 명령으로   /boot/grub/grub.cfg 파일을 생성해준다.

/etc/default/grub 에서 
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
이렇게 해주면 되었던것 같은데, 잘 안될때가 있다.
 
버그인가?
https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/444495
http://ubuntuforums.org/showthread.php?t=1287602

공식(?) 환경변수가 아닌 별도로 만들어서 처리해주었다.
GRUB_FORCE_HIDDEN=true
export GRUB_FORCE_HIDDEN
를 /etc/default/grub 에 추가한다.

저 변수를 처리해주는 곳은
/etc/grub.d/30_os-prober 를 수정해준다.
if [ "x${found_other_os}" = "x" ] ; then
를 다음처럼 바꿔줬다.
if [ "x${found_other_os}" = "x" ] || [ "x${GRUB_FORCE_HIDDEN}" = "xtrue" ] ; then

일단 동작은 하는 듯 한데, 좀더 손을 봐야 겠다.


반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,
웹개발자라면 필수로 알아야 하는 javascript.
jquery 등의 프레임웍이 있어서 참 편해졌다.

가끔 필요한 소스를 보려고 할때 minified 된 소스들이 있다.
http://jsbeautifier.org/
에서 decoding? unminified 할 수 있다.

소스는 참고만 하자.

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,
fsockopen 을 쓰는 API 의 라이브러리를 사용하다가 이런 메세지를 만나게 되었다.

Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of fsockopen(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in ....

php.ini 의 allow_call_time_pass_reference  부분을 고치느냐.
API 라이브러리를 고치느냐.

10초 고민하다가, fsockopen 에서 value 를 받는 방식으로 바꿨다.
(fsockopen 에서 reference 로 받아야 하는 이유가 있나?)

 
반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,
요즘 jquery 가 대세인듯 하다. js 프레임웍의 편리함을 한번 맛보면 벗어날 수 없다.

우선 결론을 말하면 "IE 야! 제발 쫌" 버그라고 말해야 겠다.
다양하게 확인을 하지는 않았지만, IE9 는 제대로 동작을 하는 듯 하다.
IE8 포함 이전버전에서는 오동작을 한다.
jquery 새버전에서는 될지도 모르겠다. jquery 테스트 버전은 1.4.2 이다.

보통 이런식으로 처리한다.
<input type=text name='phone' onchange='check_phone_number();'>
  
jquery 에서 이런식으로 처리할 수 있다. html 과 js 코드를 분리하기 위해 자주 사용하게 된다.
$(document).ready(function(){
  $('input[name=phone]').change(function(){
     check_phone_number();
  });
}); 

그런데, 저렇게 처리하면 IE 에서 이상하게 동작한다는 것을 느낄 것이다.
text 입력창에 값을 입력하고 out focus 되면 onchange 이벤트가 발생해야 하는데, 발생하지 않는다.
input 태그에 직접 onchange 를 쓴경우 정상적으로 발생하는데, jquery 의 ready 를 사용하면 안된다.
한번 focus 되고 나서, 다시 해볼때는 정상적으로 된다.

오! IE 야 제발.

이를 해결하기 위해 일부러 focus 이벤트를 발생해 주어야 한다.

다음처럼 추가해준다.(ready 안에)
if( $.browser.msie ) {
  $('input:text').click(function(){
    this.blur();
    this.focus();
  });
}

IE 브라우저인 경우 click 시 blur , focus 이벤트를 발생시켜준다.
그러면 바로 change 이벤트가 같이 발생하여 정상적으로 보인다.

더 좋은 방법이 있는지 모르겠지만, 이와 같이 해결했다.

 
반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,