Index . 블로그창고 . Any comments?

Palm: 기본달력으로 플로팅 이벤트 만들기

개발자가 할애한 시간과 노력에 대한 당신의 작은 기부가 더 나은 팜 소프트웨어를 만드는데 큰 힘이 될 것입니다. 감사합니다.

이미 기한이 지난 이벤트를 완료할 때까지 계속 오늘날짜로 옮길 경우 이런 이벤트를 플로팅 이벤트(floating event)라고 한다. 그런데 Palm의 기본달력에는 이 기능이 빠져 있어서 필요한 경우 상용소프트웨어를 사용해야 한다. 플로팅 이벤트만 있으면 되는데 굳이 상용소프트웨어를 구입하자니 낭비인 것 같다. 그래서 Event Floater를 만들었다.

event_floater/about.png event_floater/main.png 설명할 것도 별로 없을 정도로 간단한 유틸리티이다. 설치하면 Prefs에 Event Floater가 보일 것이다. 들어가면 활성화(Enable), 리셋시 자동활성화(Auto enable after reset) 이외에 두가지 옵션이 보인다. "Trigger at"에 지정한 시각에 매일 이벤트를 오늘날짜로 옮겨온다. 모든 이벤트를 옮기는 것이 아니고 "Format"에서 지정한 문자열로 "시작"하는 이벤트만 옮긴다. 이벤트를 완료했을 경우 단순히 이 문자열을 제거하는 것만으로 일반적인 이벤트로 만들 수 있다. 날짜변경을 분명히 할 필요가 있으므로 지정한 시각 이후 60초 뒤에 작동한다. 그 이후 매 24시간마다 자동실행된다. 만약 사용자가 달력을 사용하고 있다면 혹시나 있을지 모를 메모리 충돌을 피하기 위해 달력사용을 마칠 때까지 대기한다.

옛 버전의 Date Book과 새로운 버전인 Calendar 모두에서 작동한다.

Event Floater는 프리웨어이다. 이 소프트웨어 사용으로 발생하는 어떠한 손실에 대해서도 개발자는 책임지지 않는다. 업데이트는 Event Floater 홈페이지에서 계속된다.

tag: ,
Thu Feb 1 12:13:59 2007

참 부지런하십니다. 이 기능은 꼭 있었으면 하는 것이었는데, 잘 쓰겠습니다. --JJ

Fri Feb 2 07:54:05 2007

어제 저녁에 테스트하기 위해 *로 시작하는 Untimed event를 하나 만들어놓고 잤는데, 아침에 일어나서 확인해보니 옮겨져 있지 않더군요. 물론 두 옵션에 모두 체크했습니다. 시각은 그냥 00:00으로 고치지 않았구요. TX를 사용하고 있는데, 저만 안되는 건가요? --JJ

Fri Feb 2 12:10:41 2007

간단히 테스트를 좀 해봤습니다. 테스트할 당시 시각이 12:45경이었습니다. Event Floater의 시각을 13:00으로 고치고 바로 Calendar로 가보니 어제 만들어놓은 Untimed event가 오늘로 옮겨져 있더군요. 왜 00:00에 옮기지 않았는지 궁금해서 다시 그 event의 날짜를 어제로 바꾸고나서 calendar에 어제 날짜에 다시 가 있는것을 확인한 후, Pref로 가서 이번엔 12:00으로 바꾸어 놓고 calendar로 가보니 옮겨져 있지 않았더군요. 즉, 현재 시각보다 이른 시각으로 바꾸면 작동하지 않고 (사실 이미 지난 시각이므로 이 때에 작동해야 하겠지만, trigger가 안되는것 같습니다), 현재보다 늦은 시각으로 고치면 바로 어제의 event를 오늘로 옮겨오더군요. 지금보다 훨씬 늦은 20:00로 해도 옮겨지는군요. 다른 어플과의 문제인지 안된다는 사람은 저밖에 없는것 같은데, 아직 문제를 찾지 못하겠습니다. 혹시 제 TX에서 안되는 문제가 무엇인지 clue가 없을까요? 참, 여담입니다만, KPUG에 링크되어 있는 WikiZ를 이용한 GTD 구현의 글 서두에 적으신 글이 참 동감이 가더군요. 저도 수없이 많은 시간을 좋은 어플 찾아 삼만리 하느라 낭비해왔다는 반성을 하게 됩니다. 좋은 글, 좋은 프로그램 다시 감사드립니다. 좋은 주말 되십시요. --JJ

Fri Feb 2 12:15:01 2007

왜 그럴까요? -.-;; 테스트를 위해 오래 기다리실 것 없이 시각을 현재시각+2분 정도로 해 놓으시면 3분 후에 작동하니 금방 확인이 가능합니다. TX simulator에서 되는 걸 확인하고 올렸는데 이상하군요. :( -- Huidae Cho

Fri Feb 2 12:24:11 2007

앗! 답글이 올라왔군요. Trigger 시각에 대한 오해가 있으신 듯 합니다. 그 시각에 작동을 해서 어제의 글들을 오늘로 옮겨 오는 것입니다. 그러니 현재시각보다 이전의 시각으로 맞추어 놓으면 내일 그 시각이 되어서야 최초 작동을 하겠지요. 즉, 현재 12:45인데 12:00으로 맟춰놓으면 오늘의 12:00는 이미 지나갔으므로 작동하지 않고 내일 12:00에서야 작동하게 됩니다. "바로" 옮겨 온다고 하셨는데 지정한 시각이 되지도 않았는데 작동한다는 말씀이신지요? 그러면 안 되는데 말입니다. -.-;; 혹시 첫번째 글의 00:00를 테스트하실 때 자정이 넘은 시각에 활성화시키신 것이 아닐까요? -- Huidae Cho

Fri Feb 2 12:42:00 2007

아마도 위 테스트에서 '바로' 작동한것은 Pref를 빠져나올 때 trigger가 되는게 아닌가 싶은데요. 알고리즘을 귀뜸해주실 수 있을까요? 예를 들어 제 짐작으로는, 설정시각에 모든 event db에서 특정문자열로 시작되는 event를 찾아서 현재시각에 해당되는 날짜가 아니면, 모두 오늘 날짜로 변경시키는 것 같은데 말이죠. 알쏭달쏭하네요. 아무튼 다시 00:00으로 고쳐놓고, 오늘 밤에 또 한번 지켜봐야겠습니다. --JJ

Fri Feb 2 13:34:38 2007

저도 TX simulator를 가지고 있던게 생각나서 시험해 보았는데, 제 TX와 같은 결과였습니다. 즉, 5분쯤 뒤로 시각설정부터 먼저 해 놓은 뒤, Calendar로 가서 어제 날짜에 *로 시작하는 untimed event를 하나 만들고 기다렸습니다. 충분한 시간이 지난 뒤에 우선 application으로 갔다가 calendar로 가 보았지만, 옮겨지지 않았더군요. 일하다 자꾸 생각이 나서 이렇게 저렇게 테스트 해보고 있지만 이유가 짐작이 가질 않는군요. 흐음... --JJ

Fri Feb 2 13:34:48 2007

TX Simulator에서 "바로" 옮겨 오는 것 확인했습니다. -- Huidae Cho

Fri Feb 2 14:28:19 2007

혹시 말이죠, 그 60초 뒤에 처리하도록 하는 부분에서 시간 계산이 잘못되는 건 아닌가 하는 생각이 드는데요. Z22에서는 잘 되나요? 그렇다면 TX가 시스템 호출을 달리 처리하는것일까요? 어휴~ 궁금해라... 제가 위에 한것처럼 우선 시각부터 고쳐놓고 이벤트를 어제날짜로 설정해 놓은 경우에도 조금 뒤 그 설정시각+60초후 잘 되나요??? 왜 제것만 말썽일까요... --JJ

Fri Feb 2 15:58:53 2007

Z22도 마찬가지네요. 시간계산은 잘못된 곳이 없고 아마도 "최초"로 실행할 때만 제때 작동하고 그 이후 설정부터는 이전의 알람설정이 있고 아직 실행되지 않았을 경우 자체적으로 그걸 먼저 해결해 버리고 새로운 알람을 설정하는 것 같습니다. 그렇다면 새로운 알람설정 이전에 제가 직접 지워야겠군요. -- Huidae Cho

Fri Feb 2 16:01:29 2007

근데 이건 큰 문제가 될 것이 없는 것 같고 왜 00:00 때에 옮겨지지 않았을까가 더 궁금하군요. "바로" 옮겨버리는 버그 때문에 시각을 앞으로 5분 정도 후로 맞춰 놓은 "다음" 달력에 어제 날짜로 "*" 일정을 만들고 5분 남짓 기다렸다가 어떻게 되나 테스트해 볼 수 있겠습니다. -- Huidae Cho

Fri Feb 2 18:14:26 2007

0.0.1b에서 버그 잡았습니다. 테스트 부탁드립니다. -- Huidae Cho

Fri Feb 2 20:28:34 2007

잡으셨군요. 테스트 결과 잘 됩니다. 자정이라고 달라질건 없겠죠? "바로" 버그도 없고, 지정한 시각에 정상적으로 옮겨집니다. 뭐가 문제였는지 알려주실 수 있을까요? 그냥 궁금해서요. 수정 감사드립니다. 좋은 밤 되십시요. -JJ

Fri Feb 2 20:55:54 2007

Preferences를 저장하는 공간을 절약하기 위해 시와 분을 UInt16으로 안 하고 UInt8로 했는데 초로 단위환산을 하면서 더 큰 정수로 캐스팅을 안 했더니 UInt8로 계산이 되어서 +가 안 되고 -가 되고 있었습니다. 제 실수죠. -.-;; 이렇게 과거로 설정이 된 알람은 알람매니져가 지금 "바로" 처리를 하기 때문에 "바로" 버그가 있었지요. 그렇게 "바로" 실행을 해버린 후 다시 하루 뒤에 알람이 설정되기 때문에 실제 지정한 시각이 최초실행 시점이 아니고 "바로"가 최초실행이고 "바로"+하루가 두번째 실행이 됩니다. 예를 들어 17:00에 00:00으로 설정하고 빠져나오면서 17:00에 바로 실행이 된 다음 다음날 17:00에 실행이 되겠지요. 그러니 정작 00:00에는 아무일이 없습니다. 둘 다 결국은 같은 문제였지요. 주말 잘 보내세요. :) -- Huidae Cho

Fri Feb 2 21:47:03 2007

자세한 설명 감사드립니다. 하루의 궁금증이 해결되어 기쁩니다. 이 어플이 어쩌면 WikiZ보다 더 많은 사람들이 필요할것 같습니다. Brighthand와 1src, freewarepalm등에 소개하시죠. 감사합니다. --JJ

Fri Feb 2 21:52:48 2007

http://freewarepalm.com에는 갈 때마다 광고창이 자꾸 떠서 이번엔 http://freeware-palm.com에만 올렸습니다. freeware-palm에서는 freewarepalm에 올라오면 바로 따라서 올리던데 freewarepalm은 그렇지 않군요. 알아서 퍼지겠지하고 그냥 있습니다. 오늘 밤에 꼭 확인해 보세요. 0.0.1b부터는 무조건 60초를 더하지 않고 00:00으로 지정했을 때만 60초를 더합니다. 알람이 늦으면 늦었지 이르게 울리지는 않는 것 같지만 혹시 몰라서요. -- Huidae Cho

Sat Feb 3 07:34:49 2007

오늘 아침에 확인해보니 또 옮겨지지 않았더군요. 시각을 설정하는 시점이 여전히 영향을 주는게 아닌가 싶습니다. 그 시점과는 독립적이어야 할 것 같은데 말이죠. 좀 더 테스트해 보고 다시 자세히 올리겠습니다. --JJ

Sat Feb 3 14:16:10 2007

지정된 시각과 설정하는 시각과는 무관합니다. 기준은 항상 오늘의 00:00이며 여기에 지정된 시각을 더하고 있지요. 지정된 시각이 설정하고 있는 시각보다 이를 때는 내일 지정된 시각이 최초작동(오늘 00:00+24:00+지정된 시각)이고 그렇지 않으면 오늘의 지정된 시각이 최초작동(오늘 00:00+지정된 시각)입니다. TX simulator에서 자정에 맞춰놓고 테스트해 본 결과 잘 작동합니다. 혹시 달력을 열어 두신 건 아닌지요? 히스토리 같은 것은 없습니다. 항상 새로 지정한 시각으로 덮어 써집니다. 뭔가 다른 이유가 있을 것 같군요. 그렇다면 00:00 이외에는 잘 작동을 하는지 확인해 보세요. -- Huidae Cho

Sat Feb 3 17:04:11 2007

오늘 밤에 00:10으로 맞추어놓고 한번 더 지켜보죠. :) --JJ

Sat Feb 3 23:38:56 2007

아무래도 알람설정하는 함수를 바꿔야겠습니다. 프로그램 자체를 호출하는 AlmSetAlarm과 함수를 OS에서 직접 호출하는 AlmSetProcAlarm이 있는데 후자의 경우 사용하기가 상당히 까다롭네요. 여기에 NVFS같이 캐시를 사용하는 기종에서는 더 복잡하고요. 그런데 전자의 경우 화면을 무조건 켜게 되어 있어서 썩 좋은 대안은 아니지요. 그래도 안 되거나 오류가 나는 것보다는 낫겠다는 생각에 AlmSetAlarm을 써야겠습니다. 아니면 특정 이벤트에 반응하게 하는 방법도 있겠지요. 조금 더 고민해 보다가 오늘중으로 새로운 버전을 올리겠습니다. -- Huidae Cho

Sun Feb 4 07:06:36 2007

0.0.1c에서 방법을 바꿨습니다. 테스트 부탁드립니다. -- Huidae Cho

Sun Feb 4 08:45:12 2007

저도 simulator에서 시험해보니 잘되더군요. 그래서 똑같이 설정해놓고 어제 밤에 다시 자정 넘은시각까지 기다렸다가 확인해보니 잘 되었습니다. 그저께 밤에도 똑같이 했었는데, 왜 안됐었는지 모르겠습니다. 두 경우 모두 일부러 db 열려있지 않도록 기본 Applications 상태에 두었었습니다. 어쨌든 0.0.1c 버젼이 좀더 안정되게 작동하는지 시험해보겠습니다. --JJ

Sun Feb 4 09:09:08 2007

이제 Calendar를 띄우거나 닫는경우에 옮겨오는군요. 이 방식이 더 좋다고 생각합니다. 그런데 한가지, 미래시점에도 하나 만들어보니 이것도 오늘로 옮겨오더군요. 미래에 floating event를 만들 경우가 있을지에 대해서는 잘 모르겠습니다만, 0.0.1b에서는 미래의 floating event는 옮겨오지 않고 과거의 것들만 옮겨왔었는데, 맞나요? 어쨌든 c버젼이 확실한 작동을 해주는것 같습니다. 감사합니다. 좋은 주일 되세요. --JJ

Sun Feb 4 19:53:56 2007

아 제가 잘못 본것이군요. 제가 똑같은 이름으로 어제와 내일의 이벤트를 하나씩 만들어놓고는 그게 내일의 이벤트로 보았었나봅니다. 지금 다시 확인해보니 잘 작동됩니다. 감사합니다. --JJ

Tue Feb 6 12:00:44 2007

정말 좋은 프로그램 만들어주셔서 감사합니다.

Wed Feb 7 18:07:13 2007

제가 찾던 프로그램이군요... 굳이 무거운 DateBK를 사용하지 않고도 플로팅 이벤트를 만들수 있어서 좋습니다. 감사합니다. 고맙게 사용하겠습니다^^

Fri Feb 9 09:10:30 2007

오늘 아침에 우연히 dbscan을 돌려보았는데, floating event에서 다음과 같은 에러가 발생하더군요. "This Record is in the wrong Position by time. Rec=5257. Date 2/9/07. Descript=~Weekly Memo" 그래서 TX simulator에도 하나 만들어서 테스트해보니 이상이 없었습니다. 뭐가 문제일까요? --JJ

Fri Feb 9 13:16:01 2007

Calendar에서는 자료가 제대로 보이나요? dbScan이 무슨 기준으로 시간에 따른 자료인덱스를 계산하는지 모르겠습니다. 만약 그 위치가 정말 잘못 되었다면 Calendar에서는 아예 보이지도 않아야 합니다. 제날짜에 자료가 위치해 있을 때만 Calendar에서 자료가 보이지요. -- Huidae Cho

Fri Feb 9 13:24:59 2007

원인을 찾았습니다. 수정하겠습니다. -- Huidae Cho

Fri Feb 9 14:30:24 2007

0.0.1d에서 수정했습니다. 간과하고 있던 것을 알려주셨네요. 감사합니다. -- Huidae Cho

Fri Feb 9 15:21:58 2007

금방 찾으셔서 수정해 주셨군요. 감사합니다. --JJ

Tue Feb 20 11:59:01 2007

아침부터 삽질이네. :-(

블로그창고 . 댓글문법

All the works in this site except software and copyrighted materials by others (e.g., 문학) are licensed under a Creative Commons License. 소프트웨어 및 문학과 같이 다른 이에게 저작권이 있는 작품을 제외하고 모두 크리에이티브 커먼즈 라이센스를 따른다.
Mon Mar 25 01:05:31 2024 . XHTML . CSS (lightbox.css is not part of Uniqki. ;-) . Powered by Uniqki!
refresh . edit . loginout . index