Elm Meetup in Summer に行ってきた

8/25(日)にElmのMeetupに行ってきました。 elm-jp.connpass.com

2019年にわざわざ学ばなくてもよい言語で一位になったElmですが、qiitaではちょくちょく ランキング内に記事が上がっていて、最近お気に入りの無職やめ太郎氏も記事にしていたり したのでちょっと興味がありました。

japan.zdnet.com

qiita.com

qiita.com

行ってみた感じでは、

  • 純粋関数型言語なので実行時エラーは起きない
  • react, vueなど、後々Elmの思想を吸収している。(最終的に全てがElmになる?)
  • 実案件では社内に1人はElm masterがいないとつらいかも
  • フォームのテストなどは書きやすい、とのこと

やめ太郎氏のqiita記事にもあったように、Elmを触ってみて関数型、静的型付けの恩恵を 理解した上でreactなりvueなりに戻ってみるだけでも意味はありそう。

Baseball Mapping Talks+ #2 に行ってきた

connpass.com

togetter.com

8/29(木) にBaseball Mapping Talks+の第二回に行ってきました。

野球を色々な切り口から楽しむための会で、前回に引き続き参加。 特に元西武・巨人の豊田清さんの対談があるのに引かれました。

「Player Developmentとデータ分析者の立ち位置」 森本崚太さん (@ryota_mrmt)

野球のデータ解析を行い、それを実際にプロ野球選手にフィードバックしているプロのデータアナリストの方のお話。 データを選手の能力開発にどう活用するか、どう伝えるか。

「現役プレイヤーだからできる発信の意義と影響力」 前沢力さん (@riki_maezawa)

軟式野球チームで活躍している前沢さんのお話。 アマチュア野球では、一部の強豪校を除き、トレーニング方法がアップデートされていない所が多い。その点を変えていくにはどうすればよいか? 現役選手の感覚を言語化して発信・共有することで他の選手の能力の向上に役立つ。

私立武田高校でのデータを使った効率的な練習方法。 https://news.yahoo.co.jp/byline/takagiyu/20190103-00109942/

【特別対談】豊田清さん

豊田さんは西武の絶対的守護神というイメージ。 実際優勝した2002年の成績はかなり圧倒的

「一流選手の感覚を伝えるという、“無茶”なチャレンジ」 中島大輔さん(@nakaji72)

選手の感覚をライターとしていかに伝えるか、の試行錯誤のお話。

「Mapping mapping mapping」 やきうのおじさん (@yakiunoojisan)

やきうのおじさん(おじさんではない)の話は前回同様野球以外にも通じる一般的な話 で、聞いていると自分の立ち位置を客観的・俯瞰的に見れるようになる感覚がある。

こんな感じのトークを2時間聞けて、大変面白かった。 野球を楽しむにしても色々な視点で見れると、楽しさが倍増する気がします。

Gunma.webに行ってきた

1年ぶりくらいに地元群馬のWeb勉強会Gunma.webに参加しました。 フリーテーマのLT大会で、どの発表も興味深いものばかりでした。

gunma-web.org

「可能な限りRDB脳のままCloud FireStoreを使ってみる」@TsukasaGR さん

speakerdeck.com

Firebaseが提供しているクラウドデータベースCloud FireStoreの話。 フロントから操作できるので別言語でバックエンドの記述をしなくてすむ。 その他サーバー管理不要でオートスケールまでしてくれ、リアルタイム同期も簡単に実装可能。 ただし複雑なリレーションなどは苦手なよう。 無料で始められるので、ちょっと触ってみたいと思いました。jsで完結するのがよいですね。

「インストール不要!ブラウザでARはじめました」 @nobnov さん

speakerdeck.com

AR/VRの市場がこれから伸びてくる。調査によればARの方が伸びる可能性が高いらしい。 jsでARを実装できるAR.jsとデモを見せてくれました。 ARも手軽に実装できるようになってきましたね。

「今さら聞けないAnsible」@kanayannet さん

speakerdeck.com

サーバーの構成管理ツールAnsibleと他のツールとの比較。AnsibleはYAMLで記述できるので他のツールに比べて学習コストが低い。clientはSSHで接続できる。 個人的にインフラ周りはあまり触る機会がないのですが、お試しは簡単にできそうなので実際に手を動かしてみたいと思います。

「Nuxt.jsから始めるPWA生活」@pori さん

speakerdeck.com

Nuxt.jsを使うと異世界チートが可能である、というお話。(たぶん) でもiOSでちょっと問題があるらしい。 Nuxt.jsはvue.js版のrailsみたいなイメージで、今どきのwebにはこれ必要だろ、という点が簡単に実装できそう。

JavaScriptを使わない」 @Childhooooo さん

speakerdeck.com

昨今のjsの流行とは逆に、jsを一切使わずにフロントのインタラクティブな処理が書ける。 こういう選択肢があるとは思わなかったので目から鱗でした。

「Array.reduce TIPS」@_shimizu さん

shimz.me

javascriptのArray.reduceの便利な使い方。rubyのreduceは結構使っているのですが、jsのreduceも非同期処理などで結構使えそう。

懇親会も出席したのですが、人見知りが炸裂してあまり喋れなかったのがちょっと残念でした。 次回はなにか発表できたらと思います。

柳生Classの野望

歴史の流れをUMLを使って書き出す、というのをtwitterで見てから面白いな、と思いつつVS CodeにPlantUML の機能拡張を入れたまま放置していたのだが、クラス図を使って家系図を書けるのでは、と思って柳生一族の家系図を書いてみた。

Yの文字がちょっとダサかったり、並びが左→右の順なので本来の家系図に沿うならば逆に書かないといけないけど、細かい点は抜きにして結構楽しく書けた。 githubで管理すれば随時拡張して、履歴も残せるので便利。

https://github.com/taka-yoko/yagyu_family_tree/blob/master/out/yagyu/yagyu.png

参考

qiita.com

ruby のプライベートメソッドにアクセスする方法

その名の通りprivateなmethodなので、レシーバーから呼び出せないが、sendを使えば呼ぶことができる。 他にもinstance_evalを使っても呼ぶことができる。

通常のコードでは当然使ってはいけないが、テストなどで重宝する。

class C
  private
  
  def private_method
    "private_method"
  end
end

puts C.new.send(:private_method) # => private_method
puts C.new.instance_eval{ private_method } # => private_method

stackoverflow.com

Rubyのメソッド数

Rubyのメソッド数を調べる方法について、以下のサイトでよくまとまっていたのでメモ。 Array含めすべてのクラスはClassクラスのインスタンスであることを踏まえて、methodsinstance_methodsを考えると 一貫性が見えてくる。

Rubyのメソッドを数えましょう♫ Rubyのメソッドをもう一度、数えましょう♫

Animate.css 機能一覧

Animate.css

CSSアニメーションのフレームワーク Animate.css の一通りの機能を試せるものを作った。 上記のトップページで同じことができるが、セレクトボックスから機能を選ぶのが面倒だったので ラジオボタンにした。

See the Pen move box(with animate.css) by tamoriinu (@yokoyama) on CodePen.