윈도를 버리고 맥으로 바꾸면서 시너지에 문제가 좀 생겼는데,
클라이언트 (Freebsd)에서 마우스 휠 속도가 너무 빠르고
맥이 한글 입력모드일때 키 입력이 안되는 문제가 있었다.
키 입력 문제는 한글 입력기를 바꾸면 해결된다는데,
마우스 휠 문제가 더 괴로운 거라
소스를 받아서 날코딩으로 수정하고 나니 나쁘지 않게 해결.
2009년 12월 3일 목요일
2009년 11월 19일 목요일
synergy 클라이언트에서 키 반복 입력 안될 때
linux나 bsd 등 x11 사용하는 클라이언트일 때
참고. http://wiki.archlinux.org/index.php/Synergy
/usr/local/bin/xset r on
참고. http://wiki.archlinux.org/index.php/Synergy
2009년 9월 22일 화요일
maven 실행 시 자바 환경변수 설정.
set MAVEN_OPTS="-Dfile.encoding=utf-8"
jetty plugin 띄우는데 파라미터로 줘봐야...안 먹힘.
톰캣은 JAVA_OPTS
2009년 9월 17일 목요일
2009년 9월 15일 화요일
2009년 8월 24일 월요일
Synergy 로 3D 게임할 때 마우스 처리.
To play 3D games with Synergy:
Check the “use relative mouse moves” in the synergy server
configuration and bind a key to “lock cursor to screen”. When you are
on the client machine press the key to lock the cursor to the screen
and then your mouse will work for games there. Of course, you can’t get
your mouse off the screen without unlocking it (press hotkey again) but
it’s better than nothing.
The other option is to use different software which can be found at dual-boxing.com
라는 군요.
2009년 8월 20일 목요일
rails migration 작업을 script/console 에서 실행하기.
rake db:migrate를 할 수 없는 상황이라
script/console에서 대상 파일만 실행시키고 싶을 때
require 로 불러오기만 하면 됨...
script/console에서 대상 파일만 실행시키고 싶을 때
% script/console
>> require 'db/migrate/015_create_admin_delegate_auths.rb'
=> ["CreateAdminDelegateAuths"]
>> CreateAdminDelegateAuths.up
== CreateAdminDelegateAuths: migrating =======================================
-- create_table(:admin_delegate_auth)
-> 0.0941s
== CreateAdminDelegateAuths: migrated (0.0942s) ==============================
=> nil
>> require 'db/migrate/015_create_admin_delegate_auths.rb'
=> ["CreateAdminDelegateAuths"]
>> CreateAdminDelegateAuths.up
== CreateAdminDelegateAuths: migrating =======================================
-- create_table(:admin_delegate_auth)
-> 0.0941s
== CreateAdminDelegateAuths: migrated (0.0942s) ==============================
=> nil
require 로 불러오기만 하면 됨...
2009년 6월 29일 월요일
파일 만들어진 날짜 뽑기 (Linux)
필요했던 건 파일의 만들어진 날짜를 yyMMdd 포맷으로 가져오는 것.
음, 이정도면 awk 로 손 보면 뽑을 수 있을 듯. 헌데...
우왕ㅋ굳ㅋ. 한방에 해결.
GNU Util 이 더 좋은 듯. FreeBSD 에는 없는 옵션들이당.
$ touch a
$ stat a
File: `a'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 803h/2051d Inode: 1900549 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 500/xxx) Gid: ( 500/ xxx)
Access: 2009-06-29 13:22:03.000000000 +0900
Modify: 2009-06-29 13:22:03.000000000 +0900
Change: 2009-06-29 13:22:03.000000000 +0900
$ stat -c %y a
2009-06-29 13:22:03.000000000 +0900
$ stat a
File: `a'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 803h/2051d Inode: 1900549 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 500/xxx) Gid: ( 500/ xxx)
Access: 2009-06-29 13:22:03.000000000 +0900
Modify: 2009-06-29 13:22:03.000000000 +0900
Change: 2009-06-29 13:22:03.000000000 +0900
$ stat -c %y a
2009-06-29 13:22:03.000000000 +0900
음, 이정도면 awk 로 손 보면 뽑을 수 있을 듯. 헌데...
$ date -r a +%y%m%d
090629
090629
우왕ㅋ굳ㅋ. 한방에 해결.
GNU Util 이 더 좋은 듯. FreeBSD 에는 없는 옵션들이당.
2009년 3월 9일 월요일
2009년 2월 16일 월요일
그리스몽키 스크립트 - 키즈용.
키즈게시판 키보드로 눈팅용.
N: 다음, P:이전, L: 목록
A: 작은 익명, B: 큰 익명, C: 컴터게임
잠깐 업글..
E: 목록 맨 끝.
엔터: 목록의 첫 글 보기
글 번호 입력 후 엔터치면 해당 글 보기.
N: 다음, P:이전, L: 목록
A: 작은 익명, B: 큰 익명, C: 컴터게임
잠깐 업글..
E: 목록 맨 끝.
엔터: 목록의 첫 글 보기
글 번호 입력 후 엔터치면 해당 글 보기.
더보기
// ==UserScript==
// @name kids key
// @namespace kids
// @description kids key
// @include http://kidsb.net/cgi-bin/Boardlist?*
// ==/UserScript==
/**
*
* N: Next
* P: Prev
* L: List
* A: anony
* B: big anony
* C: computer game
*/
function go_to(target) {
all_a = document.getElementsByTagName("a");
for (var i = 0; i < all_a.length; i++) {
if (all_a[i].innerHTML == target) {
location.href = all_a[i].href;
return;
}
}
}
function go_to_first() {
if (location.href.indexOf("Boardname") > -1) {
all_a = document.getElementsByTagName("a");
for (var i = 0; i < all_a.length; i++) {
if (!isNaN(all_a[i].innerHTML)) {
location.href = all_a[i].href;
return;
}
}
}
}
function set_num(code) {
if (code >= 48 && code <= 57) {
document.getElementById("gm_buf").innerHTML += String.fromCharCode(code);
} else if (code >= 96 && code <= 105) {
document.getElementById("gm_buf").innerHTML += String.fromCharCode(code - 48);
}
}
document.addEventListener('keyup', function (evt) {
if (evt.keyCode == 78) { // N, n
go_to("다 음");
} else if (evt.keyCode == 80) { // P
go_to("이 전");
} else if (evt.keyCode == 76) { // L
go_to("글 목록");
} else if (evt.keyCode == 65 ) { // A
location.href = "http://kidsb.net/cgi-bin/Boardlist?Boardname=anonymous&Position=Last";
} else if (evt.keyCode == 66) { // B
location.href = "http://kidsb.net/cgi-bin/Boardlist?Boardname=AnonymousSerious&Position=Last";
} else if (evt.keyCode == 67) { // C
location.href = "http://kidsb.net/cgi-bin/Boardlist?Boardname=ComputerGamenia&Position=Last";
} else if (evt.keyCode == 69) { // E
go_to("맨 끝");
} else if (evt.keyCode == 13) { // enter
if (isNaN(document.getElementById("gm_buf").innerHTML)) {
go_to_first();
} else {
go_to(document.getElementById("gm_buf").innerHTML);
document.getElementById("gm_buf").innerHTML = "";
}
} else {
set_num(evt.keyCode);
}
}, true);
if (location.href.indexOf("Boardname") > -1) {
var gm_buf = document.createElement("div");
gm_buf.style.width = "100px";
gm_buf.style.height = "20px";
gm_buf.style.backgroundColor = "#000";
gm_buf.style.color = "#fff";
gm_buf.id = "gm_buf";
document.body.appendChild(gm_buf);
}
// @name kids key
// @namespace kids
// @description kids key
// @include http://kidsb.net/cgi-bin/Boardlist?*
// ==/UserScript==
/**
*
* N: Next
* P: Prev
* L: List
* A: anony
* B: big anony
* C: computer game
*/
function go_to(target) {
all_a = document.getElementsByTagName("a");
for (var i = 0; i < all_a.length; i++) {
if (all_a[i].innerHTML == target) {
location.href = all_a[i].href;
return;
}
}
}
function go_to_first() {
if (location.href.indexOf("Boardname") > -1) {
all_a = document.getElementsByTagName("a");
for (var i = 0; i < all_a.length; i++) {
if (!isNaN(all_a[i].innerHTML)) {
location.href = all_a[i].href;
return;
}
}
}
}
function set_num(code) {
if (code >= 48 && code <= 57) {
document.getElementById("gm_buf").innerHTML += String.fromCharCode(code);
} else if (code >= 96 && code <= 105) {
document.getElementById("gm_buf").innerHTML += String.fromCharCode(code - 48);
}
}
document.addEventListener('keyup', function (evt) {
if (evt.keyCode == 78) { // N, n
go_to("다 음");
} else if (evt.keyCode == 80) { // P
go_to("이 전");
} else if (evt.keyCode == 76) { // L
go_to("글 목록");
} else if (evt.keyCode == 65 ) { // A
location.href = "http://kidsb.net/cgi-bin/Boardlist?Boardname=anonymous&Position=Last";
} else if (evt.keyCode == 66) { // B
location.href = "http://kidsb.net/cgi-bin/Boardlist?Boardname=AnonymousSerious&Position=Last";
} else if (evt.keyCode == 67) { // C
location.href = "http://kidsb.net/cgi-bin/Boardlist?Boardname=ComputerGamenia&Position=Last";
} else if (evt.keyCode == 69) { // E
go_to("맨 끝");
} else if (evt.keyCode == 13) { // enter
if (isNaN(document.getElementById("gm_buf").innerHTML)) {
go_to_first();
} else {
go_to(document.getElementById("gm_buf").innerHTML);
document.getElementById("gm_buf").innerHTML = "";
}
} else {
set_num(evt.keyCode);
}
}, true);
if (location.href.indexOf("Boardname") > -1) {
var gm_buf = document.createElement("div");
gm_buf.style.width = "100px";
gm_buf.style.height = "20px";
gm_buf.style.backgroundColor = "#000";
gm_buf.style.color = "#fff";
gm_buf.id = "gm_buf";
document.body.appendChild(gm_buf);
}
라벨:
그리스몽키,
컴,
파이어폭스,
Javascript
그리스몽키 스크립트 - 디씨 떡밥 주의
디씨 와겔에 데헷이라는 낚시 거장이 있어서
그만 좀 낚일려고?
데헷이 쓴 글은 링크를 빨간색으로 바꿔준다.
그만 좀 낚일려고?
데헷이 쓴 글은 링크를 빨간색으로 바꿔준다.
더보기
// ==UserScript==
// @name 데헷
// @namespace dc
// @description 데헷 패스
// @include http://gall.dcinside.com/list.php?*id=wow_new*
// ==/UserScript==
allSpan = document.getElementsByTagName("span")
for (var i = 0; i < allSpan.length; i++) {
t_span = allSpan[i];
if (fishing(t_span.title)) {
//alert("데헷 발견!");
t_node = t_span.parentNode;
loop_max = 10;
for (var j = 0; j < loop_max; j++) {
if (t_node.tagName.toLowerCase() == "tr") {
all_a = t_node.getElementsByTagName("a");
for (var k = 0; k < all_a.length; k++) {
all_a[k].style.backgroundColor = "red";
}
break;
} else {
t_node = t_node.parentNode;
}
}
//break;
}
}
function fishing(str)
{
bait = ["데헷(qw3**)", "데헷"];
for (var i = 0; i < bait.length; i++) {
if (bait[i] == str) {
return true;
}
}
return false;
}
// @name 데헷
// @namespace dc
// @description 데헷 패스
// @include http://gall.dcinside.com/list.php?*id=wow_new*
// ==/UserScript==
allSpan = document.getElementsByTagName("span")
for (var i = 0; i < allSpan.length; i++) {
t_span = allSpan[i];
if (fishing(t_span.title)) {
//alert("데헷 발견!");
t_node = t_span.parentNode;
loop_max = 10;
for (var j = 0; j < loop_max; j++) {
if (t_node.tagName.toLowerCase() == "tr") {
all_a = t_node.getElementsByTagName("a");
for (var k = 0; k < all_a.length; k++) {
all_a[k].style.backgroundColor = "red";
}
break;
} else {
t_node = t_node.parentNode;
}
}
//break;
}
}
function fishing(str)
{
bait = ["데헷(qw3**)", "데헷"];
for (var i = 0; i < bait.length; i++) {
if (bait[i] == str) {
return true;
}
}
return false;
}
라벨:
그리스몽키,
컴,
파이어폭스,
Javascript
2009년 2월 13일 금요일
2009년 2월 11일 수요일
2009년 1월 22일 목요일
rails - passenger 파라미터
http://www.modrails.com/documentation/Users%20guide.html#PassengerUseGlobalQueue
PassengerUseGlobalQueue
레일즈 백엔드 프로세스 전체를 하나의 큐로 묶어서
효율적으로 처리해주겠다는데...
버전 얼마부터 추가되었는지, 현재 설치된 거에는 옵션이 지원안됨.
PassengerMaxPoolSize
백엔드 프로세스를 몇 개나 생성할거냐...기본값은 6
2기가 램을 가진 웹 전용 서버라면 30개를 추천.
가상머신이면 2개.
호스팅 받고 있는 서버가 셀러론에 1기가 램인데
6개 기본값 상태에서 허겁을 해서 3개로 낮춰놨는데 어떨지...
피드 구독하기:
글 (Atom)
synergy-1.3.1.zip
synergy-1.3.1.diff
