WolframAlpha APIを叩いてみる

以前書いた、記事をさらに掘り下げます。
matatsuna.hatenablog.com

WolframAlphaって知ってますか?

https://upload.wikimedia.org/wikipedia/en/thumb/2/2b/WolframAlpha-logo.svg/1280px-WolframAlpha-logo.svg.png
www.wolframalpha.com
wikiには以下のように書いてあります。

Wolfram Alpha(WolframAlphaともWolfram|Alphaとも表記される)はウルフラム・リサーチが開発した質問応答システム。事実についての質問に対して、構造化されたデータを使って計算し、直接答えを返すオンラインサービスである。(wiki)

わからない....

簡単に言うと、どんな計算でも計算してくれる最強のサービスです。
mathematicaを知ってる方も多いと思いますが、それを使って成り立ってます(開発者が一緒)。
よく微分積分や行列などの計算の確認に使ってます。

そんな最強の電卓をslackのbotに返答させたら超最強だ!と思って実装しました。

APIキーを取得する

Wolfram|Alpha: For Developers--API, Customizable Widgetsへ行って、Get startedをクリックし、Sign upから必要な情報を入れてアカウントを作る。
My Appsのタブに行き、右側のGet an AppIDをクリック
f:id:matatsuna:20160928174946p:plain
名前と目的を入れて Get AppID
f:id:matatsuna:20160928175140p:plain
そうすると[6桁の英数字-10桁の英数字]のAPPIDが作られます。

アクセスしてみる

サンプルクエリ通りに、アクセス!
http://products.wolframalpha.com/api/documentation.html#4

http://api.wolframalpha.com/v2/query?input=pi&appid=XXXX

ところが、APIキーを取得してすぐだと、badリクエストになる恐れがあります。その場合は、時間をおいてください。5時間ぐらい開ければ動きました。

クエリの細かいのはドキュメントみてください。

slack botpythonで書いていて、正規表現で全角はドコモのAPIに投げて、半角を今回投げる対象としました。

([ -~。-゚]+)

この正規表現を使いました。
[正規表現] 半角文字のみ取得 と 全角文字のみ取得 - 続くかな・・・

あとは、srcを上から順にとって、リンクをレスポンスとして返しました。
slackは自動で写真を展開してくれるのでいい具合になりました。
f:id:matatsuna:20160929001317p:plain
ただ、時間がたつとリンクが切れて表示されなくなってしまうのが少し、残念です。
f:id:matatsuna:20160929001322p:plain

最後に

getしてxmlを展開するだけで使えるので使い道はたくさんあるかなと思いました。
しかも、調べてみると、計算だけじゃなくて、物理や化学、統計、辞書などの超高機能なので使いたいです。
次はwidgetやってみたいな~

ちょっと便利なslack bot作った

ゼミの夏休みの宿題としてpythonでちょっと変わったslack botを作りました。
大きな機能として3つあります。

雑談対話機能

f:id:matatsuna:20160920122954p:plain
ドコモのAPIの雑談会話機能を実装しました。
リプライを送るとそれに反応してくれます。
dev.smt.docomo.ne.jp

プログラミング実行環境支援機能

例えば以下のようなサイトに書いてあるサンプルを実行して、確認するのにイチイチ新しいファイルを作るのがめんどくさいので、ソースコードを貼り付けだけでslack botがURLを返してくれるようにしました。
PHPでフォームからデータを受け取る方法(GETとPOST) | TechAcademyマガジン

対応言語

  • html

f:id:matatsuna:20160924231326p:plain

f:id:matatsuna:20160924231340p:plain
htmlとphpはファイルをサーバーにおくだけでできました。

  • processing

f:id:matatsuna:20160924231457p:plain
processingjsにコードを挿入して実装しました。

f:id:matatsuna:20160924231409p:plain
f:id:matatsuna:20160924231414p:plain
このことについては後日記事を別に書きます。

超高性能計算システム

f:id:matatsuna:20160924232257p:plain
wolframalphaのapiをたたいて、計算結果を画像で返信させています。
slackが画像を展開してくれるのできれいにできました。
詳しいapiのたたき方は後日記事にします。
www.wolframalpha.com

この3つの機能をゼミ合宿で、プログラミング実行環境支援機能とHSPの部分をABPro2016で発表しました。
abpro.jp

大自然豊かな栃木県のさくら那須モータースクールに2週間の合宿免許しに行ってきた

8月31日から9月14日まで栃木県のさくら那須モータースクールに運転免許を取得しに行ってきました。
オートマチックでとったので2週間まるまるかかりました。

免許の取り方

2週間何をするのか制度の大まかなことは知ってたほうがいいですね。戸惑いました。
www.shikakun.net

申し込み

5月に行くことは決まってて、6月半ばに本腰でネットを調べたのですが、すでに場所によっては埋まってたりしてました。
あと、ネットだと見にくかったり、調べにくいので、ファミマにおいてある雑誌「WAO!!」に頼りました。雑誌で、大まかな場所とプランを決めて、ネットのフォームからまだ、空いてるかどうかの問い合わせをすると調べてくれて、電話で返答が帰ってきました。
希望の場所はすでに埋まってたのですが、空いてる場所として、さくら那須モータースクールを勧めらたのでそこにしました。
結構ギリギリだったと思います。早めに予約を入れることをお勧めします。申し込みサイトによっては早期割引や団体割引があるので調べたほうがいいかもしれないです。
www.mentoro.jp

出発

東京方面から行く場合、東京駅から宇都宮駅まで新幹線で行くのが普通ですが、大宮まで行ってから乗りました。宇都宮につくと、大きなバックを持った同じような年代の人たちが微妙な距離を保ちながら待ってました。迎えのバスが来て、いざ、さくら那須モータースクールに行きました。宇都宮から40分ぐらいかかりました。

さくら那須モータースクールのいいとこわるいとこ

いいとこ
  • 教習車がマツダアクセラで新車(本当に良かった)
  • 寮と教習所が同じ敷地内(暇な空き時間は寮に帰って作業してた)
  • まわりに何もないから歩行者も比較的少なくて運転しやすい(たまに高齢者の自転車とかあってヒヤッとするけど、基本田んぼだらけ)
  • 教習所の待合室も寮の部屋の中もWiFi完備(しかも5GHz!)
  • 自転車で15分のところにスーパー(2L数本買って、みんなで割り勘した)
  • 焼き餃子、揚げ餃子、蒸し餃子、期間中にめっちゃ餃子食べた(食堂の運営が有名な宇都宮餃子専門チェーン店の宇都宮餃子館 | 餃子の通販、お取り寄せ、店舗情報)
  • ご飯がおいしかった(朝から味噌汁、毎食サラダが食える幸せ、毎食の食べ放題部分が充実してた)
  • お楽しみ特典がしゃぶしゃぶと餃子食べ放題(幸せだった)
  • 近くの日本三大美肌の湯の一つである喜連川温泉に無料で行ける(時間が合わなくて1回しか行けなかったけど最高だった)
わるいとこ
  • 栃木弁がわからない時は本当にわからない(教習で困ることはなかった)
  • 寮の玄関が喫煙所(通るたびに死にそうだった)
  • まわりに商業施設はない(ネットさえあれば呼吸できるから大丈夫だったけどね)

教習所を選ぶ点で

あまり公の情報ではない可能性があるのですが、日程的に遅れることなく、第一段階で仮免を取得し、第二段階を最短で卒業できる人は68%だそうです。
卒業するときに周りを見てみると大体、そんなもんでした。
それと、見ても気にしない人もいるかもしれないですが、各都道府県の警察が教習所を卒業した人の事故率というのを発表してます。
あくまでも、教習所の教え方が悪いっていうことはないと思いますが、参考にしてみては~
栃木県警察 TOCHIGI POLICE

最後に

二週間で、同期の男子とは仲良くなれたし、いろんな方面から集まって来てるので楽しい合宿になりました。久しぶりの寮生活が緩くて楽しくて、こんな中高時代がよかったなぁ~っても思いました。
合宿大変とか聞いたりするのですが、自分の時間もたくさんあるので楽しく卒業できました。おかげで、ゼミと発表会の進捗も驚くほど出たし。毎週通いでとるよりかはコンパクトで良かったです。教習所も正解だった。
さてあとは一年以内に住民票のあるところで筆記の学科試験を受けるだけです!