일본 smalltalk 사용자모임 홈페이지

http://www.smalltalk-users.jp/Home/gao-zhi

뭔가 이것저것을 찾다보니.. 걸리네요…

PBE(Pharo By Example)의 일본어 버전이 올라와있습니다.
(이런거 있는줄 알았으면 SBE 영문버전 굳이 번역진행 안하는건데…-.-)

cincom smalltalk Japan에서 매달있는 세미나식의 간단한 워크샵을
후원하는거같습니다.
(아 좀 부럽네요 이거)

매달 세미나를 작게나마 진행하는게 꽤나 괜찮은 방법이 아닌가 생각됩니다.

ps. 번역기로 보다보니 핫카손..이라는게 나오던데.. 뭔가했더니 해커톤(Hackathon)..
역시 일본어로 표현된 외래어는 어려운거같습니다..(쿨럭)

F-script

http://www.fscript.org

꽤나 재미있는 프로젝트같습니다.

일단 smalltalk의 문법으로 cocoa Framework (Foundation Framework)을 다룰 수 있다는것도 좋지만
사실 별도로 compile을 하지 않고 Framework을 테스트하며 진행할 수 있는거같아서
그게 더 매력적인게 아닐까 합니다.
(아직 안써봤으니 모르곘습니다만…하.하.하)

일본쪽에서 만든 홈페이지도 있습니다.

http://hid2718.github.com/FScript/Welcome.html

사실 이 일본어 홈페이지가 중요한게…..
현시점의 mac os X 는 제대로 F-script를 사용할 수 없는데
관련된 patch법을 정리해놨더군요.
꽤나 괜찮은 방법이 아닌가! 싶어서
내용정리겸 올려봅니다.

SBE끝나면 한번 F-script도 해보고싶네요 정말로 😀

SBE 6.5장 디버그 예제에 대한 Pharo 2.0에서의 해결법

이전글에 이어서 이제는 해결방법을 찾아보도록 하겠습니다.
(그런데 사실 스샷까지 찍고나니 그냥 ‘.’ 넣어도 될건데 괜히 삽질했다는 생각이 이제 드네요..-.-)

1. 일단 처음 이상한 부분을 확인한건 디버그에서부터였습니다. SBE의 예제 에서 나오는 메세지를 보면 다른곳에서 에러가 나온거거든요.

detect가 아닌 dot 에서 에러발생
detect가 아닌 dot 에서 에러발생

이야.. 웃기더라구요 이거….
저 스샷의 붉은 부분을 보시면 아시겠지만 FileDirectory의 dot 이라는 method를 불러야하는데…
FileDirectory 라는 class가 없다는겁니다.
이에 대한 자세한 내용은 이글 을 참고해주시면 되겠습니다.

여튼 그럼 대안이 없나 찾아봐야겠죠. 잘 보니 일단 저 dot 이라는게 뭐인지부터 좀 찾아봐야할거같았습니다.

2. Pharo 1.4를 따로 설치해서 해당되는 Class와 method가 있는지 찾아봤습니다.

pharo 1.4  에서의 FileDirectory>>dot method
pharo 1.4 에서의 FileDirectory>>dot method

뭘 하는지 자세히 보니까 extensionDelimiter를 asString으로 반환하는군요.
그럼 extensionDelimiter를 Pharo 2.0에서 찾으면 뭔가 방법이 보일거같았습니다.

3. Pharo 2.0의 Finder에서 extensionDelimiter를 쓰는걸 찾으면 아래와같은 결과를 볼 수 있습니다.

Pharo 2.0에서 extensionDelimiter를 사용하는곳의 검색결과
Pharo 2.0에서 extensionDelimiter를 사용하는곳의 검색결과

오호라.. 잘걸렸어요? 3개 클래스정도 되네요.
이중에서 Path라는 클래스의 extensionDelimiter를 사용하는걸로 하겠습니다.
하지만 정작 제가 원하는 동작이 되는지는 모르는거죠. 그래서 간단한 테스트를 진행하기로 했습니다.

4. workspace상에서 간단한 코드를 만들어 Path>>extensionDelimiter가 원하는 동작을 하는지 확인해보도록 하죠.

Path>>extensionDelimiter method의 테스트
Path>>extensionDelimiter method의 테스트

오호… Print it을 해보니까 ‘.’ 라는 결과가 나오는걸 workspace에서 확인할 수 있었습니다.
보자보자.. smalltalk에서 ‘(single quote)로 묶인건 String이라는 의미죠. 그럼 원하는 dot(쩜)이 제대로 얻어졌다는 얘기가 됩니다.

5. 이제 테스트된 결과를 실제 suffix method에 적용을 시켜볼까요.

변경된 코드를 suffix method에 적용한 결과
변경된 코드를 suffix method에 적용한 결과

이야.. 이제 원하는 결과가 나왔군요.
이전에 FileDirectory 클래스를 찾지못해 발생된 에러가 더이상 발생하지 않으며
원래 SBE문서에서 의도했던대로 detect:ifNone: 에 의해 발생되게 됩니다.

이제 원래 문서대로 학습을 진행해도 될거같습니다 😀