no_picture

IO (Maybe a)というタイトルでモナド変換子について学んだことを話した - #LT駆動

LT駆動27に参加しました。 「IO (Maybe a)」という話をした。 自分なりにモナド変換子について整理した。 一度文章にしてからスライドにした。 そっちはざっくりQiitaにアップしておいた。 IO (Maybe String)を触ってみる - Qiita サンプルコード 個人的には先入観で誤解していた部分が整理できたので、満足している。 特になにか図にしてみるという行為は面白いとおもっている。 勉強会で発表するという行為はとても勉強になる。(自戒) LT駆動開発は毎月開催されているので、みなさまの参加を楽しみにしています。

no_picture

bluemixで遊ぶならメモリの使用料が少ない言語つかいたいよね、という話をした - #LT駆動 24

LT駆動開発 24に参加しました。 bluemixはメモリ使用量で、課金されるので、メモリ消費の少ない言語が有利なんじゃないかと思いて、さまざまな言語で使用メモリを確認をした話をした。 全部はみていないがbluemixで提供されているものでは、Goが良さそうである。 GoならGAE/Goもあるし、Goは幅広くつかえますね。 個人的には、haskellやrustが気になるところである。リッチだし、特にRustはローカルで動作させてみたところ使用メモリがすくなかった。デプロイするにはbinary-buildpackを使うのが楽そうだけど動かすところまでやってない。 普通にbuildpackをつかってやるとbuild時間がなかなかつらそうです。(heroku-buildpack-rustは見事に失敗してまった) メモリ使用量のところを抜粋しときます。 go7MB swift14MB python40MB php57MB nodejs74MB ruby75MB .net152MB java177MB

no_picture

モナドがくれたものという話をした - #LT駆動

LT駆動開発18 - 秋(not 安芸)の宮島で「モナドがくれたもの」というタイトルでLTしてきました。雑なLTです。 モナドの利点を問われたので、似ているパティーン(パターン)が除去できるんだぜ。みじかくかけるんだぜ。 「裏で毎回同じことやってくれてるんすよ。これはコンピュータの得意なことだよな。だけど、その内容はモナドの種類によって違うんだぜ」 的な話をしておきました。 動作確認につかったコードはここに投げておきます。

no_picture

Scalaをはじめる α & β - #LT駆動 15

LT駆動開発15に参加してきました。 最近、Scalaを触っているので、仕事していると放置しがちな基本的な使い方を調べたりしています。 今回はα世界線とβ世界線の二本でお送りいたします。 αはsbtを使わずにJARを使う方法を調べました βはAppトレイトについて調べました なんのJARを使うのか非常に悩んだのですがScalazにしておきました。 Scalazを選ぶまでは早かったのですが、Scalazをつかった良いサンプルがつくれずに苦戦しました。 Appトレイトのほうは、Scala関西 Summit 2015のLTに応募しようかと一瞬思ったのですが、まだ2ヶ月あるので止めておきました。 まあ、一番苦戦したのは scala HogeZ -cp ‘*.jar:.’ とかいて、動かなかったことである。 まとめ1 JARを使うときは classpath を指定すればよい。 sbt使うと楽チン。 まとめ2 object Hoge { //コード def hoge() = //コード } みたいなのはJavaでいうと class Hoge { static { // コード } public staic void hoge() { /* コード */ } } みたいな感じになるらしい。 https://github.com/scala/scala/blob/540b18fb68a0210b187e595622c31f20b2c6f581/src/compiler/scala/tools/nsc/transform/Constructors.scala#L474 こういった特殊なものがあるならもっとしりたい 参考文献 はじめての関数型プログラミング教室 // Speaker Deck sbtで、プロジェクト内のライブラリ依存関係を調べる - CLOVER App - Scala Standard Library 2.11.6 DelayedInit - Scala

no_picture

モナド則だけ見つめていたい - LT駆動開発14

LT駆動開発14に参加した。 ゼノブレイドクロス発売記念でモナドの話をしといた。 Stateモナドを簡約して、Stateモナドを説明しようとおもったけどうまくいかなくてボツになりました。 Haskell - Stateモナドを手で簡約してみたりしていた - Qiita そんなわけでHaskell/圏論 - Wikibooksを元ネタにモナド則を辿ってみました。 a -> M bって型の関数を並べるにはfmapしてjoinしてを間にはさむことがポイントな気がしたことがあったのでその話です。 a -> M bな関数を組み合わせると M b -> M (M c) になって M (M c) -> M (M (M d)) とどんどんMが増えていってしまうのですが、モナドであればM dにできるわけです。 a -> M bってなんなんだって話になってきますがM a -> M bでも良いけど、a -> M b のほうがあつかいやすいよね。だってMは外せないんだから外れているものが受け取れたら便利じゃないですか。 結果的に残ったものは 何度も同じことをしないといけない部分を隠すことができます。 その内容を自由に取り替えできちゃうのがモナドの魅力なのだと思う。 そしてMに関する操作は裏でひそかに行われて、命令書を構築したり、失敗していたら何もしなかったり、可能性すべてを記録したり、単に設定した値をおけるだけだったり、するだけだと思われます。 関連 Haskell - Stateモナドを手で簡約してみたりしていた - Qiita

no_picture

「プログラマのためのGulp入門」というLTをするはずだった

LT駆動開発11で「プログラマのためのGulp入門」というLTをするはずだったんだけど、 思っていたより発表者がいたためお蔵入りしました。 次回に回してもよかったんだけど、正直まとまっていないし、そもそもLTに収まらないのが明らかだったので、今回はさっさとスライドを公開することにした。 そして内容をいそいそと現在Qiitaに書き下しております。 プログラマのためのGulp入門 - Qiita 今回、用意したLTがDockerとGulpって僕はいったいどこへ向かっているのかさっぱりわからない。

no_picture

LT駆動開発11で「 dockerをどこかで使う」という話をした

LT駆動開発11でライトニングトークをしました。 LT駆動開発11はオープンセミナー2015@広島の懇親会内で行われました。 そういえば、「タイトルがつまらないと」言われましたが、Dockerなんていますごく盛り上がってるのにキャッチーなタイトルつけたら死んでしまいます。 まさかり怖い。 Dockerいろいろつかってますが、すごく楽しいです。 Dockerつかってやりたいことも結構あります。 Docker自体はまだ使わないだろうとおもってたんですが、ちょっとDocker使いたくなってどっぷり使っています。 「Railsのアプリを開発するのにRubyをインストールする必要がなかったり、production環境でRailsアプリを動かすのにRubyやnodejsをインストールする必要がなかったり」 その辺すごく良いとおもったので、そのあたりを強調した話をしました。 CI環境で使えないミドルウェアがあっても安心っすね。Werckerがあるけど。 僕自身そんなに頭は良くないので、シンプルに考えることができるようになるプロダクトは好きです。 そのひとつはDockerでしょう。「Gitのコミットしてブランチが切っていれば良い」みたいな安心感があります。 そういえば、このスライドの内容は遊びでつくってるサービスでもやってるのでご自由に閲覧ください。 Github Parkmap-h/parkmap そういえば、時間があまらなかったので、もう一個スライドがあまってるのでどう消化するか悩み中です。(どうでもいい)

no_picture

LT駆動開発08でHiroshima.rbをふりかえった

LT駆動開発08で活動が不定期になるHiroshima.rbについてふりかえった。 Hiroshima.rbがリアルでのイベントを中止するらしいので、Hiroshima.rbについてふりかえることにした。 結局、Hiroshima.rbなんて毎日楽しく生きられるようにするためにはじめたものらしい。 そもそも、広島Ruby勉強会からRubyっていうテーマを外しただけのものがLT駆動開発で、Hiroshima.rbの活動がなくなる。 それもどうなのかって思ったので、月に二回集まる時間をつくっただけである。 集まるだけのイベントはすごい広島があるのであり、負担になってるなら休止するだけなのである。 あと、およそ5年間の思い出を何か話したはずだが記憶にない。 まあ、なにかRubyのイベントときどきしたらいい。 私がしてもよいし、誰か別の人でもよい。 それでは、また、あした。 読む必要ないネタの解説 ネタに解説はいらない。 「生きているよりマシさ」ここ最近よく聞いている曲で、タイトルほどネガティブじゃなくて、「生きているほうがマシさ」なんじゃないかと勘違いするという話をした。実にどうでもいい。 この曲が好きな人たぶんこのフレーズが好きな人が多いでないかと思う。 君と居られたのが嬉しい 間違いだったけど嬉しい 会えないのはちょっと寂しい 誰かの君になってもいい嬉しい 解釈の仕方は自由だけど、人によっては、「君」をどんな人に当て入めても合うんじゃないだろうかなぁ。 もう絶対会えない人がいて、その人にすごく感謝していたら、自分がしてもらったことを誰かにしたい。 そんな風に感じている。 間違いだと思うのは、だいたいその人の主観による勘違いなのだけど、自覚しているのもやっぱり好きである。 何が言いたいかと言うと、「嬉しいとおもったことは連鎖したら良いな」と思う。 Hiroshima.rbに感謝している人がいるのであれば、似たようなことをする人が出てくるんじゃないかと思う。 関係はないが、「死んでいる方がマシさ」とは歌うが、「死んだ方がマシさ」なんて一言も言ってない。 そんな曖昧さに「生きたい」と思うかどうかは人それぞれなのであるような気がしているが、なんか、「だけど、生きようかな」って次の句を繋ぎたくなるのである。 まあ、目立たないように生きたいのは正直な気持ちである。(ておくれ)

no_picture

LT駆動開発08でWerckerのBOXの作り方の流れを軽く説明した

LT駆動開発08でWerckerのBOXの作り方を本当に軽く説明した。 本当は図を用意したかった。 何が話したかったかというとWerckerはboxなりstepなり自分でつくれるけど、それはGitHubなどに公開してWerckerでCIするとWerckerづ使えるようになるという循環している話がしたかった。 一言で言うと、CIで使うためにCIをする。 BOXをつくっていて容量制限にひっかかったの懐しい思い出です。 BOXやSTEPを作ること自体はシンプルなものでいいので一度やってみると面白いと思います。

no_picture

オープンソースカンファレンス2014広島 - LT駆動開発 ベストセッションズ 凪のライトニングトーク

オープンソースカンファレンス2014広島のLT駆動開発 ベストセッションズ – 凪のライトニングトークの中でライトニングトークをしてきました。 今回はLT駆動開発の説明を担当させていただきました。 LT駆動開発の説明もしましたが、LT駆動開発の中でよくあることを紹介しました。 以下補足 LT駆動の説明をする人を毎回変えるようにしているのは、参加主旨をみんなに考えて欲しいからです。 我馬は広島のラーメン屋です。博多ラーメンを提供しています。 その他のLTについても随時公開される予定です。 詳しくはこちら また、来月のLT駆動開発の申し込みはこちらになります。 テーマは「おれたちのLT駆動はまだはじまったばかりだ」ということでLT駆動2期のスタートです。 関連 すごいHirohsimaの本について、OSC2014とWTM71で紹介した

no_picture

LT駆動開発で hubot をつかったオフィスに誰がいるかわかるコマンドを作成した話をした

LT駆動開発07 でLTしてきた。 今回は hubot をつかってオフィスに誰がいるのかわかるようにした。 どうしてそんなことをしようとするのか、そして簡単に仕組みを紹介しました。 みんなが積極的に関わろうとするにはどうするのか。 おもしろかったり便利だと思うことをやること。 興味をもってもらうことだ。 オフィスには人がいたりいなかったりで、「誰かいたらいこうかなー」とか思うこともあるので完全に俺得である。 スライド内のデモ動画はこちらにあります。 結構みんなつかっていて、コンボも流行っている。 そのコマンドは突然のおるんかとかですね。 デモにいれておけばよかった。 仕組みはMACアドレスをつかっていて、みんなノートPCなのでなかなかうまくいっている。 最初はデーモンをつくろうかと思っていたけど、なくても解決できそうなのでこうなった。 おまけで、他につくったコマンドを紹介しとく。 アリア社長とアリシアさんの画像はこちらから拝借しております。 ありがとうございます。 非常に癒される。 おまけ LT駆動では予備のスライドを用意しておくことが大事らしい。

no_picture

LT駆動開発で UIDynamics を利用した万華鏡アプリを紹介した

A8D:2 というイベントが2014年8月3日に行なわれます。明日じゃねーか。 そんなことはさておいて、Augment8というグループがあります。 このグループは年に1回、普段作っているものをみんなに体験してもらう場をつくろうというイベントがあるらしく、Augment8 Day を省略して A8D というイベントをしているそうです。 デジタルなガジェットを一般の人に体験していただくイベントだ。 そのイベントに参加することになったので、このために作成したアプリを告知を兼ねてLT駆動開発06で紹介をしました。 というわけでまずスライド。 つづいて、スライド内で利用している動画。 万華鏡のサンプル1 万華鏡のサンプル2 UIDynamicsのサンプル iOS7 からUIKitで物理エンジンが搭載されていて気軽に使えるようになったらしい。 まだ試してなかったのだけど、普通の人にも楽しめそうなものとして万華鏡をつくってみた。 iOSのCoreMotionを使いiOS端末を操作して画面に映る万華鏡が変化するという寸法です。 普段、iOSアプリをつくってるわけではないのでそんなに凝ったことはしていません。 万華鏡といえば三角なのですが四角のものもあるそうで、手抜きで四角の万華鏡になっています。 Apple Swift で作成しているためアプリとして申請するのもできないし、体験できるようにソースコードを公開しておきますね。まだ勉強中でソースコードが汚いですね、わかります。 Augment8/kaleidoscope · GitHub サブディスプレイに対応しているので、プロジェクタに写したり Apple TV で画面に写したりできます。 当日は丸いものにプロジェクトションマップもどきをしたりする予定です。 操作用のiOS端末のために拡張パーツを用意しています。デザイン担当のあきさんが作成しています。これを装着すると…つづきは当日のA8D:2にて体験してください。 デジタルならではなところは動的に反射している数が増えたり、中身が変化したり、マスクが変化したりと用意してみました。 それなりに面白くなったでしょうか。 魅せるためのスキル不足なため、本当に楽しめるものになったのかよくわからないので、みんなの反応が気になります。 今回のLT駆動における初挑戦は「動画をつかってみる」でした。 スライドを公開する際に動画は別のところにアップロードしないといけないのがすこしつらい。 Swiftのコードを書いていて思ったことは、 ブロック構文がなかなか書きなれない 変数宣言で型から書きそうになる なぜか[を入力してしまう なるべつ let で済ませたい病 selector 補完効かない。つらい。(文字列で渡すから当たり前) ヘッダファイルいらないヒャッハー CGFloat が絡む数値計算なんかよくわからない(すぐ型エラーに阻まれる) などなどでしょうか。(咄嗟に思いついたものだけ書いた) UIDynamics で ビヘイビアのインスタンスを節約しようとするとランタイムエラーではまったりしたのも良い思い出です。アニメータごとにインスタンスをつくりましょう。 Viewを触れるようにしてみたけど、移動したViewは元の位置にもどるという残念な結果にもなりました。 最後になりますが、調整するのにBAUHAUSの上原さんやファナフェクトの方々にアドバイスをちょろっともらったりしました。さんきゅーです。

no_picture

LT駆動開発で とある我馬の非公式というLTをした

LT駆動開発06 でライトニングトークをした。 我馬というラーメン屋のウェブサイトが更新情報のフィード配信してないので、勝手に応援しているという話をしました。 とある我馬の非公式(ファンサイト) 折角なのでフィードの存在を知らない人もいるかもしれないので、簡単に説明しつつ、どうやってフィードをつくったのか説明しました。 とりあえず、季節のラーメンはアツいので広島には3ヶ月に一度程度いらっしゃると良いと思います。 関連 とある我馬の非公式(ファンサイト) 我馬 eiel/gaba · GitHub eiel/gaba.eiel.info · GitHub

no_picture

通知環境としてidobataを試した話をLT駆動開発04でした

今月もLT駆動開発04でライトニングトークしてきました。 結構今回雑…。喋りもグダってた。見直しとか、リハっぽいこともしてないから…。 CircleCIの通知をしたいなーってことで idobata のクライアント使えばできそうなので、 hubot をつかって idobata に情報を送信してみたよ!という話をしました。 なんか開発で BOT を使うの良さってのがやっとわかってきたので、その話もちらっとした気がします。しかし、中身がないな…。 気になってるのは CircleCI の Web Hook から飛んでくるJSONの情報が整理されてなくて調べるのがめんどくさいなーって思ってたりします。なんかライブラリはないのだろうか。 関連 hubot で起動しているウェブサーバを経由して idobata へ投稿してみる

no_picture

LT駆動開発03で「S3にスライドを保存することにした」という発表者をしてきた。

LT駆動開発03 でLTをしてきました。 最近、本当にSSDの容量不足が深刻で仮想マシンなんて作った日にはさっさと用事を済ませて消さないとやばい状態が続いています。 そんなわけで、滅多に使うことのないけど、残しておいたら役に立ちそうなファイルはS3に保存してみることにしました。 それだけだとつまらないので、ついでに一般公開しました。 index.html を作るのに手動で作るのはめんどくさいので、 S3のバケットに保存しているオブジェクトの一覧をAPI経由で取得して、この情報を元に index.html を作成して、アップロードして、静的サイトとして公開しています。 一覧の取得 index.html の作成 index.html のアップロード を自動化しています。 実際のページとソースコードはこちらに。 http://keynotes.eiel.info/ GitHub - eiel/keynotes-eiel S3を使った静的サイトの運用もちょっと試してみたかったので良い機会でした。まだ、調査が必要そうですけども。 自動化はしていない部分であるスライドのアップロードには s3cmd を利用しています。 後半はHaskellの話です。 HaskellのAWSのAPIを叩くには aws ライブラリを使用しました。他にも aws-sdk というライブラリもあるようですが、対応しているサービスが違っているようでした。 元々 Ruby を使ってつくってたのですが、なんとなく理由もなく Haskell でやりたくなってHaskellでやってみましたが、意外と簡単にできました。 Haskell 良いですね。 あとレコード型が実に使いこなせてないことに気づいたので勉強してこようと思いました。 まだ、 keynotes.eiel.info に特化しているのでそのうち汎用性を上げたいと思います。 スライドですが、azusa テンプレートをかなり参考にさせていただきました。 というか、色は少し自分好みに変えただけですね。 赤はもうちょっと明るい色を使うほうがいいなって思う反省点がありました。 そんなわけで、今日はこの辺で。 関連リンク LT駆動開発という勉強会をはじめるよ - そんなこと覚えてない