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

京都のIT系学生コミュニティCAMPHOR-に入ったよ

プログラミングって周りにプログラミングできる人がいる方がいいんですよ、って話。

 

自分は生物専攻でシミュレーションを使うからプログラミングをやっているだけなので、周りにプログラミングできる人がほとんどいないんですよ。で、プログラミングについて話したり、一緒にものづくりできる人がいないかなぁとコミュニティを探し始めたのが今年の1月。

 

関西にはコミュニティが幾つかあったんですけど、自分がコミュニティ選びで気にしたのは以下の点。

1. 対面で会える(ネットでしか繋がっていないコミュニティがあった)

2. スキルがあまり問われない(できる人しか集まっていないと行きづらい)

 

以上の条件をCAMPHOR-は満たしていて、なおかつ良いと思ったのは人によって扱う言語が違っていて多様性があったところ。個人的に言語は場面によって使い分けたいので、違う言語やりたくなった時に質問しやすい。あと、入る時にスキルを問わない割に、CAMPHOR-は集まっている人のレベルが本当に高い。

 

プログラミングは自習することと分からないことはまず検索することが前提だとは思うけど、今の自分じゃ解けそうもないこと、検索するとっかかりが分からないことに関しては素直に質問した方が効率はいいはず。近くに聞ける人がいると問題もサクサク解決して開発に対するストレスも軽減される。これがネットだけの繋がりだと、質問して答えが返ってくるラグと検索で答えが見つかる時間は多分同じかそれ以上で、コミュニティに所属するメリットはあんまりない気がする。

 

現状通い始めて3か月以上経ってみて、プログラミングに関して一人で悩む時間も減ったし、たくさんの人から情報をもらえて開発意欲が高まっています。せっかくメンバーになったので、今後はCAMPHOR-の人たちと何か一緒に作りたい。どこかのコミュニティに属すると、継続的にみんなでものづくりがしやすいのも良いところだと思います。皆さんも、近くにコミュニティがあったら一度見学に行ってみるといいかもしれません。

 

藤原竜也主演のドラマ原作、湊かなえ「リバース」を読んだ

本屋で見つけて何気なく買ってみた湊かなえの「リバース」。最近ドラマ化されているようで藤原竜也戸田恵梨香が表紙に載っています。

 

湊かなえは「告白」と「夜行観覧車」しか読んだことがなくて、「リバース」も結末が後味悪いのかなと読む前は予想していました。読んでみたらそうでもなかったんですけど。

 

とりあえず主人公の深瀬和久という人物の台詞・挙動が全部藤原竜也で想像できてしまいました。藤原竜也のキャスティングは正解だと思います。やっぱあの人挙動不審で気弱な役がハマるんですかね。

 

物語としては全体のうち3/4くらい来たところで山場が2つあって、最後の5ページくらいでこれまでの話を伏線としてまとめられた印象でした。ストーリーの立て方は前も感じてたけどやっぱり上手い。昔は単純な勧善懲悪や恋愛をテーマにした小説の方をよく読んでましたけど、ストーリーの練られ具合はミステリの方がよく考えられている気がして、最近はミステリ面白くて好きです。あと、「リバース」は最後主人公が一連の物事に対して結論を出すんですけど、その結論に対して個人的には「そうじゃないんじゃないか」と思うところもあって。結末に対してどう思うか誰かと意見を交わしたいです。読後に何か、しこりみたいなものが残って誰かと後で話せるところはミステリの楽しみではないでしょうか。

 

現在ドラマは2話ぐらいまで放送されているようなので、今週から見てみょうかな。小説を読んだ限り藤原竜也が絶叫するシーンがあまりなさそうなので、それは残念。ドラマオリジナルに期待。

 

Freakoutのエンジニアから聞いた話で共感したこと

 ネットの広告って自分の興味に関連した広告が頻出するようになってますよね。その仕組みは機械学習だと思うんですけど、機械学習ってネット広告では実際どういう風に使われているのか分からない。そんなとき、こんなイベントがあったので参加してみました。

camphor.connpass.com

 

 イベントでは、フリークアウトが製作し売り出しているDSPとは何か、と機械学習をどう使っているのか、の2点についてお聞きしました。

 

 DSP(Demand Side Platform)とは、広告を出したい人が効率よく広告を打ち出せるサービスです。そもそも広告は、広告を出したい人が、広告の枠を持っている人から枠を買って表示されています。広告をたくさん出したければ、それだけ取引数は増えます。けれど、膨大な数の取引をいちいち自力でやっていたら時間とコストがかかる。この取引を自動化するシステムがDSPです。

 

 もう少し取引について詳しく言うと、広告枠は広告を出したい人の中で競りにかけられます。広告を出したい人からすれば、できるだけ安い値段で競りに勝ちたいわけです。入札価格は、広告のクリック率に比例します。つまり、クリック率を正確に予測できれば、適正な値段で競りに勝つことができます。このクリック率の予測に機械学習が使われています。

 

 技術系の話も面白かったのですが、自分が一番共感したのはプログラムの設計・改善において指標を数値として表示させることです。数値化できていないとプログラムの改善しようがないと聞いて、プログラムにしても自分の専攻の生物実験にしても、指標を定量化する必要性は共通で、次何をすればいいのか決める上で重要だと感じました。

 

 機械学習は今IT系企業の説明会に行けば必ず聞く言葉で、自分もちょっと勉強しようかな、と思いました。また機械学習関連で記事を書くかもしれません。それでは、短いですが今日はこんな感じで。

DLA (Diffusion Limited Aggregation)をProcessingで作ってみた

この前生物系の会議に参加して、DLA(Diffusion Limited Aggregation)が面白そうだったのでプログラム組んでみました。

 

そもそもDLA(Diffusion Limited Aggregation)とは、パターン形成モデルの1つです。日本語では拡散律速凝集と呼ばれています。ルールは、ランダムウォークしている拡散粒子が種粒子と接触すると、その粒子も種粒子となり移動をやめて位置を固定されるというもの。図にすると、こんな感じ。

f:id:skstmrty:20170331212200p:plain

ランダムウォークと衝突判定さえ設定できれば実装できるのでやってみました。

Processingのソースコードはこんな感じ。動かすとどんなパターンができるのでしょうか?

DLAprogram

もう少し説明を後で書き足そうと思います。パターンができるのがちょっと遅いので改善したい・・・ソースコードに指摘があれば教えてください!

 

Twitterのbotをpython3で作ってみた

参考にしたページはこちら。

www.utali.io

途中手こずったところを書いておきます。

 

1つ目の問題は、SMS認証で電話番号がなかなか有効化されませんでした。電話番号1つにつき1個のアカウントしかSMS認証できないのかと予想しましたが、Twitter公式サイトによると、1つの電話番号で10個のアカウントのSMS認証が可能だそうです。これを信じて、諦めずに何回もコードを送信すると、10回くらいで有効化されました。

 

文言を表示させる.pyファイルを実行して、JSONデータは帰って来なかったけれど、ツィートをつぶやくことに成功しました。

 

 ここからcronを使ってスクリプトの定期実行に挑戦。参考にしたのはこちら。

qiita.com

www.server-memo.net

viはコマンド「esc + i」でINSERT、「esc + ZZ」でsave&exitです。

 

cronの設定を書くところまでは順調だったのですが、ここで2つ目の問題が・・・。設定した時刻にツィートされるか確認したところ、「No module named twitter」とエラーが返ってきました。調べたところ、以下のような処理をしないといけないみたいです。

 

sekai.hateblo.jp

もう少し分かりやすく書いてあるのがこちら。

http://d.hatena.ne.jp/noazoh/20091103

f:id:skstmrty:20170326155149p:plain

 

これで定期的にツィートがされるようになりました。ただ、同じツィートを数十分間隔で送信するのはエラーが返ってくるので、ツィートの内容を毎回違ったものにするなどの工夫が必要です。

エラーログの内容 - キャラボット設定の参考になればいいなログ

 

とりあえず、日付を入れてツィートするようにしたら問題は解決します。

 

あと、cronの操作に大分手こずりました。cron内でpythonのpathを通してやる必要があります。詳しくは以下のサイトを参考にしました。

qiita.com

 

晴れてbotが完成しました!今回作ったbotはこちら。

f:id:skstmrty:20170326193958p:plain

 

色々試したせいで文章の統一ができていないし、まだまだ改善の余地ありですが、完成したので良かったです。これからもう少し面白いbotにしていきたいです。

 

ここまで読んでいただきありがとうございました!