読者です 読者をやめる 読者になる 読者になる

バスの一番後ろに初めて座ったんだけど

椅子が自由に倒せていいね。

 

結局倒してないんだけど。

 

高校時代の「小論文」について

ただの思い出なのだけれど、ふと思い出したので書く。

受験対策の時期、もしくはそれ以前でも高校時代にはたくさん小論文を書かされた。もちろん、入試対策。大学によっては、二次試験で小論文を持ってくるところがあったから。僕はこの小論文の練習が、割と好きだった。

文章を書くことが特に好きだったわけではない。読書感想文なんかは大の苦手。でも、この、自分の意見を誰にも邪魔されずに組み立て、練り、そして表現するという時間が好きだったのかもしれない。

ところで、この「小論文」というものは推奨される書き方、構成、手順みたいなものがある程度かっちりと決まっており、最初の段落で「私は筆者の〜という主張に賛成/反対です」と立場を明確にしておくことが(大抵)良しとされていた。

僕は必ず「反対」と書いた。

ひどい時は、設問を読み切る前から。

なんでかって、その方が簡単だったし、そもそも「賛成」の時の書き方がよくわからなかった。賛成しちゃったら、「あなたと意見は一緒です」の一文で終わっちゃうじゃないか! とか考えてた。割と今でも思ってるけど。

とにかく、必ず僕は反対の立場として小論文を書いた。僕は「基本普通、ただハマるとすごく良い」というタイプだったようで、大抵人並みかそれ以上に添削されて戻ってくるけど、たまーにほぼ添削なしの高得点という採点結果をもらった。

そんな感じで日々楽しく小論文を書いていたのだが、ある日、どうしても小論文が書けない、ということがあった。

設問は文書を読んであなたの考えを書け、というお決まりのタイプ。書けない理由は単純だった。「反論が思い浮かばない」

どうしても自分で納得のいく反論が思い浮かばなかった。何度文章を読んでも穴が見つからなかった。

書けなくて、終了時間を過ぎても書けなくて、職員室に移動してその隅で居残った。

でも書けない。その時の設問の文章というのは、鷲田清一さん著のものだった。鷲田清一さんというのは哲学者の方で、論理的なんだけれども、情緒的で詩のように非常に緻密に編まれた文章を書く人だ(と当時は思っていた)。

僕は鷲田さんの本を何冊か読んでいた。そして、彼の文章が好きだった。その小論文の設問も同じだった。その文章を読んだ時があるわけではなかったのだけれど、非常にその文章に納得してしまっていた。その文章に共感されているような感じだった。

だから僕は、とうとうつぎはぎだらけで、悲惨な小論文しか書き上げることができなかった。先生に提出し終えた時には開始から3時間が経っていた。先生がその場で読み始めるので、僕は耐え切れずにそそくさとカバンを持ち、帰るしかなかった。

「Bot合宿」資料を公開します

7/23に学内で「Bot合宿」を開催しました。

「合宿」と名が付いていますが、勉強会に近いです。

ただし、普通の勉強会と違って、今回は講師が前に立つことはありませんでした。

代わりに、教材として事前に「ドットインストールのような動画」を用意しておきました。

なぜ動画にしたか?

それは、「進みの速い人が、遅い人に合わせる(もしくはその逆)」という状況を作りたくなかったからです。

今回は初心者向けのハンズオンであり、理解度にも差が出ると予想したため、このような形式にしてみました。

なのでもくもくとそれぞれで進めることになります。

質問があれば答えます。

早く終わった人は自由に作りたいものを作ってもらい、最後に成果発表をします。

RDBを使って「歌詞Bot」作っていた人がいてすごかった。

使用した動画を公開します

github.com

今回参加できなかった方や、Bot作ってみたいけど何から始めていいかわからない...という方にも有用じゃないかということで、一般に公開いたします。

HerokuやLINEの設定から説明しているので、高度すぎてわからない! ということはないと思います。

動画は以下の12個です。

  • GO言語でHello, worldと環境変数の設定
  • Herokuでアプリケーションを作成する
  • FIXIEを設定しよう&LINE APIのCallback URLを設定する
  • 自分のLINEアカウントの鍵情報をHerokuの環境変数に設定する
  • LINEからのリクエストを受け取ってみる
  • 受け取った文字列を表示してみる
  • 返信してみる
  • リファクタリングをする1
  • クイズを出題してみる
  • クイズを増やす
  • ユーザーごとにStateを分ける
  • リファクタリングをする2

最後まで進めると「クイズボット」が作成できます。

動く状態を保ちながら、少しずつ書き足していく、という方式を意識しています。動かしながら実装をすることで「進んでる!」という実感を持つことができ、モチベーションの維持に繋がります。

反省点

動画は全体的に好評だったのですが、Go言語自体やHeroku Toolbeltの環境設定の動画を撮っている暇がなく、結果的に省くことになってしまいました。

なので、そこは個々で調べてもらって設定してもらうという形をとりました。

また、勉強会開始時点で動画が半分程度しか完成しておらず、進みの速い参加者には迷惑をかけました。

徹夜で作り続けたので、動画が最後になるにつれて声に覇気がなくなっていますw

最後に

動画中のPCの操作は私(伊藤)、声と動画編集は山本くんがやってくれたのですが、駄目出しばっかりしてすみませんでした。

最後まで高いクオリティで動画を作成してくれました。山本くんがいなければ今回の合宿はもっと違うものになっていたでしょう。

勉強会中に僕らが動画作成に追われていたため、一人で参加者の対応をしてくれたのが黒金くんでした。

彼は技術的にも素晴らしいリア充なので、安心して参加者を任せられました(すみませんでした)

最後に、参加してくださったみなさん、本当にありがとうございました。

一緒にこれからも頑張っていきましょう。

この資料がどなたかの役に立てば幸いです。

7Botやってみた

会社で席についたら目の前に7Botというものがあったので、なんとなく触ってみました。

http://7bot.cc/

一言で言うとアームです。腕です。手もつけられるみたいですね。

わりとまとまったドキュメントがなくてちょっと苦労したので残しておきますね。

以下の操作はUnofficialなものらしいので責任は負えません。本来は「公式SDKが出るまで開発は待ってね!」ということらしいです。(ドキュメントがない原因その1)

自分の環境はUbuntu 15.10でした。SketchではなくArduinoでやりました。

Arduinoのインストール

僕はArduino触るの初めてでした。aptでやったらバージョン古すぎて何も出来なかったので公式サイトからダウンロードしてきましょう。OpenJDKだとうまく行かないという話もあるのでOracleが安全なんじゃないかな。

Arduino - Home

Linuxユーザーはsudo addgroup [user] dialoutして一度ログアウト/ログイン。

ボード用パッケージのインストール

"ツール" -> "ボード" -> "ボードマネージャ"と選択して、"Arduino SAM Board"というものをインストール。7Botに組み込まれているArduino DueがAtmel SAM3X8E ARM Cortex-M3というCPUを使っているためにそれ用のパッケージが必要みたい。詳しくはわかんない。

7Bot用のライブラリ/スケッチをインストール

github.com

github.com

二つをダウンロード。前者はZipでダウンロードしたらそのまま"スケッチ" -> "ライブラリをインクルード" -> ".ZIP形式のライブラリをインストール..."でファイルを選択すればOK。

後者は一度解凍して、中のArm7BotというフォルダだけをArm7Bot.zipというファイル名で圧縮してから同様にインストール。ファイル名が中のフォルダ名と違うとインストールに失敗するので注意。もしそれでも失敗するようならExampleとSrcというフォルダ名を全部小文字に変えるとうまく行くという夢を昨日見た。

サンプル実行

さて開発の準備は整いました。"ファイル" -> "スケッチの例" -> "Arm7Bot"からサンプルファイルを開くことが出来ます。

いくつか眺めればだいたいの書き方はつかめると思います。こちらもUnofficialなドキュメントしかなく、またこれから変更される可能性もあるので、ガッツリ書くなら関数でラップして使ったほうが良いかもしれませんね。

参考:

7Bot: a $350 Robotic Arm that can See, Think and Learn! by 7Bot — Kickstarter

Heroku上のGoアプリでCaboChaが使いたくて試行錯誤したお話

お話というかわかったこと羅列。 いつもはこういうことEvernoteに書くんだけど今日はなんとなくブログに書いてみる。 他人のためではない。

  • 検索するとheroku-buildpack-multi使っているエントリが多いが最近のHerokuは標準で複数のbuildpackに対応しているので使わなくて大丈夫。
  • heroku-buildpack-linuxbrewでやってみた
    • libconvがないとダメみたい、dupes/gperf, dupes/libconvと.cellarに書いてインストールしようとするももともとHomebrewがMac用のものの為に、Mac標準のヘッダーファイルを参照しようとしてno such fileエラーが出る。
    • brew editしてもビルドごとに消えるので意味なし。
    • dupes/dcmtkというのがあったので試す。--with-libconvというオプションがあったので指定しようとしたが、.cellarに$$ dupes/dcmtk --with-libconv $$と書くとdcmtkと--with-libconvという二つのパッケージをインストールしようとしてエラーを吐くのでゴミ。しにたい。
  • Dockerはaptも使えずあまりメリットがなさそうなので使いたくない
  • 結局以下のサイトにあるforkを借りて成功。

masawada.hatenablog.jp

GCEに移りたい。もしくはさくら。

YUIのうたが聴けない

まあYUIに限らないんだけど。

理由はわからないのだけれど、最近音楽を聞くとひどく感傷的になるようになってしまった。

メタリカでも、西野カナでも、YUIでも、サカナクションでもSchumannでも同じ。

感傷的になりすぎると、仕事や勉強ができなくなる。寝れなくなる。外に出る気が失せる。

ベッドから出れなくなる等の症状を発症し、人生に支障が出てしまう。

そういうわけで、うかつに音楽を聴けない。

ハッカソンはこのままではいけない

「もうハッカソンには出なくていいかな」

ハッカソンに何度か参加して、いろんな人とチームを組むうちに、こんなことを言う人とたくさん出会った。聞くと初参加で、勇気を出して参加したけれども、自分がチームに貢献できなかった、場違いだった、と言う。僕はそういう言葉を聞くたびに、本当に申し訳ない気持ちになる。ああ、また、一人のこれからのハッカソンでの可能性をいくらか奪ってしまった。ごめんなさい。そんな風に心の中で誰にともなく謝りながら、「そうですか〜?」と相槌を打つか、良くても「でも、楽しいですよ」とさりげなく勧めることくらいしかできない。「次こそこの人にとってハッカソンは楽しいものになる」という自信もないからだ。

最近ハッカソンでの詐欺まがいの事件がネットで話題になってるけど、その中のコメントで「ハッカソンはデザイナーとエンジニアのためのものだ」と言う趣旨の発言があった。 (URLは見つけられなかった)

その通りだ。ハッカソンはものづくりを志す人のためにあるべき。だからこそ、ものづくりを志すならどんなレベルの人でも楽しめるイベントであって欲しいと思う。もっと言うなら、上級者と初心者が交流できる場であって欲しいし、それぞれの方向に尖ったエキスパートが力を合わせて今までになかったものを作り出す場所でもあって欲しいと思う。

理想論だと言われるかもしれないけれど、少なくとも一部の上級者しか楽しめないイベントにしてしまってはいけないのではないだろうか。

いろいろな種類のエンジニアやデザイナーやクリエイターが集まって、それぞれの持つものを出しきって一つの作品を作るのがハッカソンの醍醐味であるし、基本的にオープンであり、その後の展開にもつなげやすいのがいいハッカソンの条件だ。また、アイディアを創出する上で重要な問題意識や客観的な視点も初心者の方が優れていることも多いし、何より、ハッカソンを経て最も成長し自信をつけるのは初心者であるはずだ。

言うまでもなく、初心者をハッカソンから追放してはいけない。

「追放なんかしていない。やる気がない奴らが勝手に参加しなくなるだけじゃないか」と思う人もいるだろう。でも僕はそれを違うと思う。今の仕組みでは、技術力がない人々が参加しづらいのは容易に想像できる。つまりそこに救済措置を用意すべきなのは運営なのだ。何かしらの仕組みを用意すべきだと僕は思う。

どんな仕組みかって? それが分かれば簡単なことなんだけど...。

僕はハッカソンが大好きで、エンジニアの素晴らしい文化だと思う。だけど、まだまだ未成熟だ。

もっと多くの人でハッカソンのあり方を考え、議論しなければならないと思う。今のままではいけない。