계산기에 대해서 살짝 열중하고 있는 와중에 나를 홀딱 반하게 한 계산기가 TI-89 이다.
정확히 말하면 계산기 껍데기를 쓴 휴대용 컴퓨터이다. 제공하는 기능만 따지면 휴대폰보다 더 쓸고있는 물건(?)이라고 생각한다. 그래서, TI-89의 기능을 다 공부한 다음에 다음 타겟은 같은 회사에서 나온voyage 200. 이것은 키보드가 달려있는 TI-89라고 생각해도 된다. 헌데 외양이 계산기답지 않아서 천대받고 있는 천덕꾸러기.
이것을 휴대폰에서 돌릴 수 있게하는 emulator중에서 제일 좋은 것이 Graph 89-free라고 생각한다. Free version의 경우, TI-89만 돌릴 수 있다.
그런데, 이것을 작성하신 분은 Dritan Hashorva라는 인도(?) 사람으로 추정되는 개발자.이고, 개발을 2013년 10월에 멈추고 source license를 GPLv2로 변경하고, code를 bitbucket에 올렸다. 그리고, 더 이상 update가 없다.
그걸 받아다가 android studio 4.1.2에서 build되게 하고, galayx S20까지 설치 test까지 해서 수정한 code를 내 개인 github에 올렸다. android studio 4.1.2로 migration은 자동으로 되었고, 여기에 살짝 warning 정도를 제거한 것이 전부.
내가 build한 binary는 여기에 첨부한다. (google play에는 Dritan이 올린 것이 있으므로)
물리적인 부분은 말짱한데, 최근 들어서 화면이 깨지기 시작한다. LCD 화면이 깨진 것인가 싶어서 외부 모니터를 달아보니 모니터에서 깨져 보인다. CPU내 graphics에서 내보내는 data가 깨지는 것이다. DRAM이 깨진 것인지 (DDR3), 아니면 CPU가 맛이 가는 것인지 처음 보는 현상에 조금 당황스럽다.
기기가 오래되었으니 그려러니 하긴 하지만, 물리적인 부분이 맘에 들었는데, 조금 아쉽다.
2. 고장나 있는(버그 있는) 기기 - UC-600e
방통대 시험보려고 구매한 공학용 계산기. 가볍고 싸서 샀는데, 뒤늦게 버그가 있다는 것을 알았다.
그렇다고 환불할 것도 아니고, 그냥 조심해서 써야 한다. 현재 알려져 있는 버그는 다음과 같다.
x^2 - x + 1 = 7을 solver로 풀 경우, X 값이 -2만 나오는 버그.
이 방정식의 해는 -2, 3 인데, 이 계산기는 방정식의 해를 Newtown-Rhapson Method로 푼다. 따라서, X의 초기값에 따라서 방정식의 해가 다르게 나온다. 문제는 다른 방정식(x^2 - x + 1 = 3)은 초기값을 적당히 주면 두 해(-1, 2)가 전부 나오는데, 위 식만은 x = 3으로 초기값을 주는 경우를 제외한 나머지 경우는 전부 -2를 답으로 보여준다.
다행인 점: UC-600e의 원본격에 해당되는 카시오 계산기에서 나오는 버그들을 뒤져서 실행해보니 해당 버그는 없다.
불안한 점: 공학용 계산기의 정확성을 검증하는 표준적인 방법이 없다.
더 나아가서, 어떻게 계산기의 결과를 믿을 수 있을까? 사람이 검증할 수 있는 결과는 비교할 수 있다고 쳐도 너무 숫자가 크거나 복잡해서 실질적으로 검증이 안되는 결과는? 결국 메이커를 신뢰할 수 밖에 없다는 것인데, 잘 알려진 브랜드의 제품이나 많이 쓰이는 기기라면 사용자가 보고하겠지만, UC-600e처럼 중국산 제품을 그대로 수입해오거나 사용자의 피드백을 기대할 수 없는 제품은 불안하게 써야 한다. 이것이 보이지 않는 비용 지출이 되어 버렸다. 과연 중요한 시험에 이 기기를 들고 갈 수 있을까?
간신히 익혔던 사용법을 잊어먹을까봐 설명서를 보다가 휴대전화기에 있는 계산기를 공학용 계산기 app으로 바꾸면 손에 익을까. 생각해서 검색해서 몇개 후보를 추렸다. 이전에 언급 써봤던 Wabbitemu 는 Ti-84 plus 공학계산기 app인데, 입력반응이 너무 늦어서 쓸게 못되고, 다른 많은 app들이 있는데 광고, 인앱구매.가 거슬려서 특별히 좋다는 느낌이 아니면 제외했다.
Casio fx-991ES Plus를 기반으로 확장한 형태이다. 장점은 fx-991ES Plus 설명서를 보고 그대로 써도 되고, 반응도 나쁘지 않다. 몇몇 계산 기능은 더 좋다. 게다가 원래 계산기에 없는 Graphing 기능까지 있어서 몇몇 블로그에서 추천받기도 했다. 내가 가지고 있는 유니원 UC-600E 사용법도 호환이 되어서 나쁘지 않다. 광고는 확장 기능 사용시 화면 위에 살짝 나오는 수준이라서 참을만하다. 허나 단점은 확장기능에 대한 설명이 app내 도움말이나 유투브의 무뚝뚝한 동영상 하나.라는 점이다. 그리고, fx-991ES plus와 기능이 동일하지 않아서 공학용 계산기를 손에 익히자.라는 부가적인 목적에 맞지 않는 것같다.
이건 Ti-89 공학용 계산기 emulator인데, Wabbitemu와 달리 반응성이 좋다. 유료구매하면 Ti-84 plus도 지원한다고 한다. 실제 공학용 계산기를 그대로 구현했다는 점. 그로 인해서 사용법이나 관련 정보가 풍부하다(?)는 점. (Ti-89 for dummies도 있다!) 그래서, 공학용 계산기를 익히는데 상당한 도움이 될 것같다. 가장 큰 단점은 Ti-84 plus, Ti-89가 오래된 계산기(cpu가 무려 8bit Z-80이다.)인데다가 아직도 비싸다!(거의 17만원정도). 거기서 약간 보태면 같은 회사에서 나온 최신 공학용 계산기인 NSpire II CAS를 살 수 있다. (이건 22만원, 그리고, android emul app이 아직 없는 것같다.)
어쨌든 내 선택은 Ti-89. 왜냐면
첫째, Ti-89 계산기를 배울 수 있는 자료가 너무 많다. (Ti-89 for dummies로 시작하려고 한다.)
그전에 Bixby Studio를 7.8.1-r19x.13460로 upgrade하면 이전에 있는 예제 code에서 warning이 나온다. 나오는 위치는 capsule.bxb로 아래와 같은 경고이다.
Line 8:3DEPRECATED: `runtime-flags` is deprecated, move to `runtime-version`
[This deprecation will prevent new submissions in 20A] [deprecation 6797]View Deprecation Guide
그러면 capsule.bxb에 있는 runtime-flags { ... } 부분을 지우고 아래 code로 대체하면 그 경고는 사라진다.
마지막으로, Bixby가 이 일련의 과정을 어떻게 처리하는지 제가 이해한 바는 다음과 같습니다.
단말에서 say "foo"라고 하면
1. Bixby는 이 말을 say + parameter:foo로 분해해서
2. resources/en-US/training에 있는 NL Model에 넣는다.
3. NL Model에서 say + parameter pattern을 찾으면 출력이 text:world이다.
4. 출력이 text:world인 action인 doHelloWorld.model.bxb를 찾고,
5. action-endpoint(doHelloWorld)에서 helloWorld.js를 얻은 다음
6. helloWorld(parameter:foo)를 호출하여 return값으로 text:"foo, bar"를 얻는다.
7. 출력은 en-US/dialogs/helloVoice.dialog.bxb내 dialog(Result)에서 처리하는데,
8. text:"foo, bar"이면 "foo, bar"라고 소리를 낸다.
지난 시험때 쓰던 아내가 쓰던 Sharp EL-509L이 오래되어서 그런지, 배터리를 갈아도 화면이 희미해지기를 반복하니 불안불안해서 버렸다.
이리저리 뒤져보면 입문용 공학용 계산기로 CASIO FX-570ES PLUS 또는 비슷한 것을 추천하던데, 가격이 25,000원정도에 구매할 수있다. 시험 몇번 보고 말건데...라는 생각에 좀 더 싼 것을 찾다보니 선택은 두가지.
하나는 다이소에서 사는 5,000원짜리... 이건 소개글을 봐도 비추천이더라. 1회용으로 생각하라고 하던군.
또 다른 하나는 UC-600E이다. 이것도 뒤져보니 카시오 계산기의 카피라고 하던데, 어쨌든 국가 자격시험에 가지고 들어갈 수 있는 계산기 목록에 당당히 들어가는 것이면 뭐 못 쓸정도는 아니라는거겠지.
받아서 살짝 사용해보니 뭐 가격(12,700원 - 배송비 포함)만큼의 제품이다. 적어도 휴대폰에 설치한 TI-84 emulator를 쓰다가 버튼 잘 못 눌러서 고통받을 일은 없다(그걸로 계산하다가 화딱지 나서 힘들었다. 결국 화면이 큰 tablet에 설치해서 터치 오류를 줄였슴.)는 것에 안도하고 매뉴얼을 살펴보았다. 이전에 검색해서 찾아둔 카시오 FX-115ES plus 설명서와 비교해보니... 좀 수상쩍다. 417개 함수 지원한다고 하는데, 매뉴얼은 403개 함수를 지원하는 FX-115ES 매뉴얼과 비슷하다. 느낌상 115ES와 115ES plus 사이 물건(?)쯤 되는 것같다. 드는 생각은 그냥 함수가 몇개인지 정확히 알아보지 않고 그냥 베낀 것같다. RANDOM INTEGER를 '랜덤 인테거'라고 번역할 것을 보면.