얼마전에 지인을 통해서 알게된 인터넷 게임이 있다. 그렇다고 인터넷으로 노는 건 아니고 현실의 장소에 가서 보물을 찾는 게임이다. 인터넷 웹사이트에서는 보물의 위치(위도,경도로 표시된다.), 찾기위한 힌트등이 있다. 그리고 찾았다고 가져가는 게 아니라 서명하고 다시 원래위치에 놓아야 한다. -그래야 다른 사람이 또 찾아올 수 있겠죠?- GPS 기계가 있어야 원활하게 게임을 할 수 있지만 시내에는 이정표가 많으니까 지도들고 찾아가도 괜찮을 것 같다. 어차피 GPS 자체의 오류도 있고. 최상의 환경은 GPS+인터넷이 가능한 휴대용기기(아마도 GPS기능있는 핸드폰)이다. 지오캐싱 소프트를 깔아서 위치대로 찾아갈 수 있고 자신의 위치에서 바로 검색도 된다.
 그래서 저번주에 집근처에 캐시(지오캐싱에서 숨겨진 아이템을 캐시라고 부른다.)를 찾아갔는데, 결과는 못찾았다. 게다가 홈리스 할아버지들이 주변에 있어서 찾기도 뻘쭘하고. 못찾았다고 지오캐시 홈페이지에 결과를 올렸는데 다른 한국인 지오캐싱 유저가 메일을 보냈다. 캐시가 분실된 일은 거의 없는데 원래 난이도가 높은 아이템이라고. 그리고 2009년 5월 31일에 시간이 되면 지오캐싱 소개 이벤트를 하니까 찾아오라고 하는데 나는 아마도 못갈 것 같다. 관심있는 분들은 가보는 것도 괜찮을 듯하다. 이분은 수백개 이상의 캐시를 찾아낸 거의 달인급 유저이다.

http://www.geocaching.com/seek/cache_details.aspx?guid=97a2215d-7b68-4ead-af69-e9a7464742a7

사용자 삽입 이미지

이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by dududu
m4650 + 아센 760으로 네비게이션기능을 사용하고 있다. 무료 소프트웨어 쓸만한게 있나 찾아보니 구글맵을 다운받아서 사용할 수 있는 Terracrosser라는 프로그램이 있었다. 그런데 기본제공맵이 월드맵이라서 자세한 맵은 알아서 다운받아야 한다. 위치랑 해상도 지정해서 대충 다운받으면 된다. 잘 모르겠으면 설명서 읽어보라. 이건 아래의 블로그에서 찾아서 사용해도 된다. 프로그램을 공식 싸이트에서 최신버전을 다운받는 것이 좋다.
Terracrosser의 특이한 점은 자체적으로 gps의 com포트를 설정하지 않는다. 시스템설정의 외부GPS의 하드웨어 탭을 직접 설정해줘야 한다.
한국 싸이트에서 부족한 설명중 하나는 방향키 가운데를 길게 누르면 스크롤모드와 네비게이션 모드를 전환한다는 설명이 없다는 것이다.


http://playppc.co.kr/46 - 한국의 블로그싸이트 설명이 약간 부족하고 소프트웨어도 구형

http://terracrosser.com/
 - 공식 싸이트

more..


이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by dududu
이전의 글에서 설명한 것처럼 자바는 현대적인 다른 프로그래밍 언어와 같은 멀티라인 스트링 리터럴 기능이 없다.

http://blog.efftinge.de/2008/10/multi-line-string-literals-in-java.html

그런데 어떤 외국인이 멀티라인 스트링을 구현했다. 코드는 간단하니까 관심있으면 읽어보시길...
평가를 하자면 근성은 칭찬할만 하지만 구리다. 자바6부터 스크립트 언어 기능이 강화됐다 했던가?
jvm을 쓰기 위해서 굳이 자바를 사용할 필요가 없을 듯하다. python+C 언어 조합처럼 스크립트언어+자바 언어를 쓰는 것이 좋을 것 같다. 예를 들어 네트워크 프로그래밍을 할 때 대부분의 코드를 파이썬으로 작성하고 I/O에 관련된 부분만 C언어로 작성하면 성능을 크게 떨어뜨리지 않으면서 생산성을 향상시킬 수 있다. jvm에서도 대부분의 코딩을 자신에게 편리한 스크립트언어로 하고 필요할 때만 자바를 쓰면 되지 않을까?

이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by dududu
제가 가장 좋아하는 텍스트에디터중에 하나는 윈도우즈의 기본 프로그램인 notepad입니다. 실행속도가 빠르고 인코딩을 달리하여 파일을 저장할 수 있고 화면구성도 깔끔해서 이죠. 하지만 notepad에는 몇가지 단점이 있습니다. 이러한 단점을 보완할 수 있는 것이 AkelPad입니다. 원래 노트패드를 대체하는 것을 목표로 하기 때문에 설치옵션중에 windows/system32/notepad.exe로 파일을 설치하는 옵션이 있습니다. (언인스톨하면 복구 가능합니다.) 이제 Akelpad가 노트패드를 대체할 만큼 좋은 이유 몇가지를 나열해 보겠습니다.

1. 실행 속도가 노트패드와 거의 비슷할 만큼 빠르다.
클릭버튼을 떼자마자 바로 실행됩니다. 상용에디터인 emeditor가 이정도로 빠르죠. 현재는 무료 에디터인 notepad++을 주로 쓰긴하지만 이렇게 빠르지는 않습니다.

2. 파일 로딩 속도가 더 빠르다.
1메가 정도되는 텍스트 파일을 로딩해보니 Akelpad는 바로 로딩되는 반면 notepad는 0.5초정도 딜레이가 있었습니다. 결국 파일용량이 조금만 커도 akelpad가 더 빠르다는 거겠죠.

3. 탭과 shit+탭으로 들여쓰기 조정가능.
이건 노트패드에는 없는 기능이지만 프로그래밍할때 반드시 필요한 기능이죠. 노트패드를 제외한 윈도우용 텍스트에디터는 대부분 지원하는 기능이고요.

4. 자동 줄바꿈 모드에서 행번호로 이동가능.
노트패드는 텍스트 파일의 줄번호와 에디터상의 줄번호가 달라지면 이동이 안되죠. akelpad는 당연히도 잘 됩니다. 그리고 노트패드는 자동줄바꿈 모드에 버그가 있어서 자동줄바꿈 상태로 에디팅을 하다보면 화면과 실제 데이터가 따로 놀게됩니다. akelpad는 그런 현상이 없기를 바랍니다.

5. 다양한 코드페이지로 파일 로드/세이브 가능
노트패드는 ANSI와 유니코드로만 읽고 저장할 수 있지만 akelpad는 유니코드및 다양한 mbcs인코딩을 지원합니다. 또한 유니코드에서 bom을 포함할 것인지를 지정할 수 있는 것이 유용해 보입니다.

6. HexSel 플러그인
텍스트의 코드에 문제가 있어서 코드를 봐야할 때 Ultraedit의 Hex editor기능이나 emeditor의 코드보기 기능을 많이 사용하는데요. 제가 써본 것중 이게 가장 편하네요. 플러그인 실행하고 코드를 보기를 원하는 텍스트를 선택하면 플러그인 화면에 코드가 나옵니다.

7. WSH(windows shell script) 지원(이건 사실 부록이긴하지만)
 wsh를 지원하기 때문에 필요한 기능이 있다면 스크립트 프로그래밍으로 간단히 구현이 가능합니다. wsh는 구글에서 검색하면 마이크로소프트에서 관련 문서및 프로그램을 다운받을 수 있습니다. 문서가 한글로 되있어서 읽기 쉽습니다. 이미 설치된 스크립트중에 텍스트계산기가 편해보입니다. "(23+44)*10"과 같이 텍스트를 에디터상에 쓰고 calculator.js플러그인을 실행하면 670이라고 결과를 보여줍니다.

하지만....
노트패드를 대체하는 에디터이기 때문에 전문적인 에디터 기능이 빠져 있습니다. 별도의 플러그인으로 지원되는 지는 몰라도 기본적으로는 다음과 같은 기능이 없습니다.

1. 정규식으로 찾기/바꾸기
2. 파일에서 찾기 - 여러 파일에 찾기
3. 매크로

이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by dududu
우선 아래의 링크에서 나온 것처럼

http://luto.tistory.com/83

#sudo rmmod  psmouse
#sudo modprobe psmouse rate=100 proto=imps

위 명령어를 실행하면 휠이 작동한다.
하지만 리부팅하면 원래대로 휠이 작동하지 않는다. 리부팅안하고 계속 쓸거라면 상관없겠지만 난 개발용으로 쓸거라서 안된다.

http://ubuntuforums.org/archive/index.php/t-840596.html

위 링크를 보면 /etc/modprobe.d/psmouse를 root 권한으로 만들고 파일내용을

options: psmouse rate=50 proto=imps
라고 만들라고 하지만 그렇게 하면 에러가 난다. 콜론을 없애고 아래와 같이 쓰면 된다.
options psmouse rate=100 proto=imps

p.s.
/etc/X11/xorg.conf 파일을 고치는 방법은 전혀 효과가 없었다. 나중에 마우스 관련된 코드를 전부 주석처리해도 잘 작동한다.
/etc/modprobe.d/options 파일을 수정하는 방법도 전혀 효과없음.

p.s.2
결국 VMplayer를 설치하니까 화면도 넓게 쓸 수 있고 사운드, 휠등도 아무 문제가 없더라. ㅎ
아래의 링크를 보면 무료 가상머신에 우분투를 돌리는 방법이 써있다.
http://johnbokma.com/mexit/2005/11/07/vmware-player-ubuntu-installation.html

이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by dududu
삼성의 pda폰 m4650을 며칠전에 사서 마이크로소프트에서 파워토이를 다운받았다.
찾기 힘드네... remotedisplay를 쓰면 에뮬레이터 쓰는 것처럼 pc에서 pda를 조작할 수 있게된다.
그외에도 여러가지 도구들이 있다.

http://www.microsoft.com/downloads/details.aspx?familyid=74473fd6-1dcc-47aa-ab28-6a2b006edfe9&displaylang=en
이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by dududu
1. 스카이프(skype)
 스카이프는 프로그램이라기 보다는 서비스이지만 프로그램이 상당히 좋다. 너무나 가볍고 반응이 빠르다. nateon과 비교해보면 시작시간이 비교가 안된다. 지저분한 팝업도 안뜨고. 우리나라의 소프트웨어 문제는 이통사의 독점적인 지위때문이다. 거지같이 만들어도 수백만명의 사용자가 보장이 되니까.
스카이프의 문자서비스는 120원에 160바이트로 좀 비싸다. 전화도 1분단위로 과금하기 때문에 통화를 길게 해야 싸게 쓰는 효과가 난다. (coarse granularity) 시내 전화로 사용할 때 좋다.
전체 회원검색이 가능하기 때문에 가끔씩 스팸성 메세지가 날아올 때가 있다.
옥션에서 다운받았다. 회원가입은 옥션과는 별도니까 회원정보 유출사전과는 관련이 없을 듯 싶다.

2. 구글 토크(google talk)
이것도 가볍고 빠르다. gmail상에서도 쓸 수 있지만 프로그램을 설치하면 응답을 받기 좋다. gmail알림 기능이 있기 때문에 gmail notifier를 자동으로 언인스톨해준다. gmail 사용자에게 강추. 그러고 보니 근래에 메신저를 두개나 깔았구나. msn, nateon까지 총 4개의 메신저를 사용 중.

3. 송버드(songbird)
미디어 플레이어계의 파이어폭스라고 불린다. 윈앰프 개발자들이 개발하고 있는 오픈소스 mp3 플레이어다. firefox, sqlite등의 모듈을 사용한다. 이미 iTunes, 알송등을 깔아놨지만 궁금해서 깔아 봤다. 알송은 가사기능이 있어서 좋지만 UI가 윈앰프 스타일이라서 불편하다. 이건 개인적인 취향이고.
송버드의 스타일은 iTunes 비슷하고 메뉴들은 파이어폭스 비슷하다. extension같은 것도 있고. flock 브라우저같은 프로그램인가 보다. 뭔가 기능이 많은 것 같은데 심심할 때 찾아봐야 겠다.


이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by dududu
대부분의 언어들은 여러줄의 문자열 리터럴을 간단히 쓰기 위한 문법이 있다. 이게 뭐냐면 문자열 리터럴은 보통 "문자로 둘러 싸여서 한줄에 쓰게 된다.

"This is string"


위와 같이 말이다. 그런데 한 문자열이 한줄이 아니라 여러줄을 가지게 되면 어떻게 될까?

"This is 1st line.\nThis is 2nd line"


위와 같이 쓰면 된다. 그런데 이렇게 계속 쓰게 되면 2~3줄 정도는 괜찮지만 텍스트 분량이 많은 경우에는 상당히 보기 힘들게 된다. 프로그래밍 텍스트 에디터는 대부분 자동 줄바꿈을 사용하지 않기 때문에 더욱 그렇다.

"Q: 애초에 이렇게 쓸 수는 없나요?
A: SQL에서는 된답니다."

그래서 대부분의 프로그래밍 언어는 스트링 리터럴에 여러줄을 쓸 수 있는 특별한 문법을 지원한다.

그래서 자바도 당연히 있을 것이라고 생각했고 내가 몰라서 못쓰는 것 뿐이라고 생각했다. 하지만 자바에는 그런게 없다. 자바에서 그런 문법이 추가된다면 어떻게 될지에 대해서 토론하는 글타래가 있다.

http://www.jroller.com/scolebourne/entry/java_7_multi_line_string

또한 다른 언어에서는 이 문법이 어떻게 구현되는 지 내가 아는 프로그래밍 언어에 대해서 대충 정리해 보았다.


C, C++
char* aString = "This is 1st line.\n"
    "This is 2nd line.";

Python, Scala, Groovy

aString = """This is 1st line.
This is 2nd line."""
"문자만 사용되므로 개인적으로 가장 좋아하는 스타일이다.



Perl

$aString = <<END;
This is 1st line.
This is 2nd line.
END
이것을 heredoc 스타일이라고 하는데 다른 스크립트 언어에서도 많이 쓰인다.



C#

string aString = @"This is 1st line.
This is 2nd line.";
@하나만 추가하면 되므로 나쁘지 않다.



Java
String = "This is first line\n"
    + "This is second line";
아까 말했듯이 그런거 없다. 그냥 + 로 붙여라.
이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by dududu
mysql 4.1 부터 서브쿼리가 지원되고 5.0부터 stored function이나 stored procedure가 지원된다.
하지만 서브쿼리안에는 limit를 사용할 수 없다. stored function, procedure에는 트랜잭션이 들어갈 수 없기 때문에 create table같은 암묵적인 트랜잭션을 사용하는 쿼리를 사용할 수 없다. 따라서 임시 테이블도 만들 수 없다. 이런 저런 제약 때문에 일반적인 프로그래밍을 mysql로 대체하는 것은 무리가 있는 것 같다.
이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by dududu

mysql과 url

2008/03/26 20:01
mysql 에서 url을 입력할 때 varchar를 사용하면 안된다.
그 이유는 varchar는 길이제한이 255이기 때문이다. 얼라 url도 255인데? 라고 생각할 수도 있지만 url중에 ascii문자가 아닌 것은 %숫자 같은 형식으로 바뀌기 때문에 url의 길이는 255글자가 넘어간다. 블로그 중에는 제목을 url로 만드는 경우가 많기 때문에 255자가 넘어가는 경우가 가끔씩 생긴다.

그러면 어떻게 해요?
url은 text필드로 입력하고 검색이나 unique index등을 사용하기 위한 별도의 필드를 만든다. 그 필드를 varchar로 설정하고 password() 함수를 사용한다. md5는 충돌이 날 수 있으니 피하라고 한다. 최신 password함수는 41자의 출력을 내니까 왠만하면 충돌이 안나겠지? 4.1버전 이전의 password함수가 md5인 것 같은데 확실히 확인은 안해봤다.

그런데 대부분의 DBMS가 캐릭터형이 255자 제한이 있지 않나? 구글 같은 검색엔진을 만드려면 전용 DB가 있어야 할 것 같다.
이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by dududu
◀ PREV : [1] : [2] : [3] : [4] : [5] : ... [6] : NEXT ▶

BLOG main image
두두두가 IT 기술에 대한 글을 포스트 하는 공간입니다. by dududu

공지사항

카테고리

분류 전체보기 (59)
Total : 40,218
Today : 4 Yesterday : 12