#70文字でSmalltalkを伝える方法
昨年のSmalltalk Advent Calendar 2014に引き続き今年もSmalltalk Advent Calendarをつくってみました。今年こそはまじめに記事を書けたらいいなと思っております。
初日はSmalltalkについて説明をしようと思います。ただあまり長い説明は読む方も大変と思いますので短く伝える方法を考えてみます。
##何を使って伝えるか考える
今回はPharo Smalltalk( http://pharo.org/ )を用います。
##伝える方法を考える
以下の方法がよさそうです。
- メール
- Twitter (140文字)
- SMS (70文字)
短文を目指したいので70文字のSMSを採用します(日本のキャリアの場合70文字を超えたSMSを送信すると文字数超過のため送信ができないことがあるようです).
##Smalltalkについての説明文を考える
12/1が残りわずかですのでWikipediaのSmalltalkの序文を引用してみます(https://ja.wikipedia.org/wiki/Smalltalk)。
Smalltalk(スモールトーク)は、Simula のオブジェクト(およびクラス)、LISPの徹底した動的性、LOGO のタートル操作や描画機能に、アラン・ケイの「メッセージング」というアイデアを組み合わせて作られたクラスベースの純粋オブジェクト指向プログラミング言語、および、それによって記述構築された統合化プログラミング環境の呼称。
↑だと169文字でこのままではTwitterでさえ投稿できません。
削ります
Smalltalkとはクラスベースの純粋オブジェクト指向言語および統合化プログラミング環境の呼称
48文字です。短くなりました。SMSで送信できそうです。
#SMSの送信を方法を考える
Twilio( https://www.twilio.com/ )を使います。
##SmalltalkでSMSを送信する方法を考える
せっかくの短い文なのでプログラムも短く送信したいところです。
twilio-smalltalk( https://github.com/newapplesho/twilio-smalltalk )というパッケージを利用します。
twilio-smalltalkをPharo Smalltalkにインストール
Workspaceに以下のコードをペーストして実行します。
Metacello new
baseline: 'Twilio';
repository: 'github://newapplesho/twilio-smalltalk:v0.2/pharo-repository';
load.
以上です。
twilio-smalltalkのセットアップ
Twilioを利用する前にTwilio( http://twilio.kddi-web.com )からアカウント登録をしてください。
SMSを使うにはアメリカ(+1)の電話番号を取得する必要があります。詳しくはTwilioの公式サイトでご確認ください。
アカウント登録後、以下のものをメモしておきます。
- Twilioで取得したアメリカの電話番号
- Account Sid
- Auth Token
メモしたAccount Sidと Auth TokenをSmalltakに設定します。
以下のコードをWorkspaceにペーストします。
TwilioSettings default accountSid: 'ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'.
TwilioSettings default authToken: 'yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy'.
Smalltalkを短く伝える
SMSの送信するコード
client := TwilioRestClient new.
"sendTo: の引数は送信先の電話番号"
"from: の引数はTwilioで取得したアメリカの電話番号"
client sendTo: '+818011112222' from: '+10000000000' message: 'Smalltalkとはクラスベースの純粋オブジェクト指向言語および統合化プログラミング環境の呼称'.
SMSの受信確認
これでSmalltalkについて伝えることができました。
まとめ
短く文かつ短いプログラムでSmalltalkについて伝えることをできた。でも**「Smalltalkとは何か」についてはしっかり伝わっていない気がします・・・**。それについては以下の文献を見てもらったほうが良い気がしますのでこの記事はここまでとします。
- 自由自在 Squeakプログラミング PDF版 http://swikis.ddo.jp/squeak/13
- Pharo by Example http://www.pharobyexample.org/