弥生株式会社(Misocaチーム)を退職しました
本日を最終出社日として、弥生株式会社を退職します。途中で買収・合併が挟まり社籍が変わりましたが、株式会社Misocaに入社してからでいうと5年半ほど勤めたことになります。
株式会社Misocaに入社してから5年半、多様な仕事を経験させてもらい、入社時からすると技術の幅も仕事の仕方も大きく変わったと思います。どんなことをしてきて、なぜ今辞めるのかということを、自分の中で区切りにする意味も込めて記事にしておきます。
Continue reading本日を最終出社日として、弥生株式会社を退職します。途中で買収・合併が挟まり社籍が変わりましたが、株式会社Misocaに入社してからでいうと5年半ほど勤めたことになります。
株式会社Misocaに入社してから5年半、多様な仕事を経験させてもらい、入社時からすると技術の幅も仕事の仕方も大きく変わったと思います。どんなことをしてきて、なぜ今辞めるのかということを、自分の中で区切りにする意味も込めて記事にしておきます。
Continue reading2020/10/3 に行われたKaigi on Rails STAY HOME Editionで、パフォーマンスチューニングの話をしてきました。
Railsがテーマのカンファレンスということで実践的な内容が多く、どのセッションも非常に興味深く聞かせていただきました。
完全オンラインのイベントでしたが、YouTube LiveのコメントやSpatialChatでの懇親会などもあり、オフラインでの体験に近い感覚で参加できたのも面白かったです。
アーカイブは後日セッションごとに分けて投稿されるそうなので、そちらも楽しみに待ちたいと思います。
さて、今回は発表の補足として、Twitterでツッコまれていた部分について書いていこうかなと思います。
Continue reading2020年の目標 の振り返り、1月版です。
立てた目標のそれぞれについて、ヨシ(✅)・微妙(🤔)・ダメ(🙈)に分けて振り返っていきたいと思います。
目標と状況は以下のとおり。
半分は進捗ダメです……(反省)
それぞれ個別に振り返っていきましょう。
Continue readingあけましておめでとうございます。
2019年の振り返り に続き、2020年の目標を綴っていきたいと思います。
今年の目標はこんな感じになりました。
以下、ひとつずつ「なぜその目標を立てたか」「具体的に何をするか」を書いていきたいと思います。
Continue readingプロデューサーさん、年末ですよ、年末!
というわけで2019年も残すところ3日。年納めに、今年あったことを振り返っておきたいと思います。
カンファレンス・勉強会「🗣 登壇 (>= 20min)」「🛎 LT参加」「👂 聴講」
その他イベント「🎤 ライブ」「🖋 同人誌即売会(サークル参加)」
みたいな感じでアイコンを付けてます
イベント多くない???
見ての通り勉強会の登壇やLTが多く、合間にアイマスライブに行ったり技術書典にサークル参加したりなど、なんだかやたらとアクティブな一年でした……
今振り返ってみても、11/3-11/10の間に富山・松江・愛知のイベントを巡ってるのは頭おかしいですね。
以下、カテゴリごとに振り返っていきたいと思います。
Continue readingこの記事はアイドルマスター Advent Calendar 2019の21日目の記事です。思いっきり締め切りをぶっちしました……
それもこれも、シャニマス2ndのチケットをくれないイープラスってやつの陰謀なんです……
— 黒曜@デレ7thナゴド両日現地 (@kokuyouwind) December 21, 2019
嘘です、普通に間に合いませんでした。
突然ですが、みなさんライブに行くと「この曲の感想を知りたい」みたいな気持ちになりませんか?
例えば、プロデューサー感謝祭で突如特殊イントロから始まった「NEO THEORY FANTASY」とか……
例えば、演出なしでたった一人、センターステージでほたるちゃんが歌い上げた「谷の底で咲く花は」とか……
ライブの中でも、特にその曲についての感想を知りたい! 語り合いたい! 「よかった……」「それな……」って共感したい! ってなると思うんですよ。というかなった。
とはいえ、こういった感想をピンポイントで探すのは結構困難です。
ライブが終わるとTwitterでは「自分のエモ」をみんなが好き好きに語りだしますし、ツイートに曲名をしっかり入れているとは限りません。また時間が立つとTwitterでは探せなくなってしまいます。
一方、いわゆるライブレポ記事は公演ごとになっており、そのなかから特定の曲の感想を探してまわるというのは大変ですし、「わかる、それな!」したいという軽い気持ちがどんどん失われていきます。
そもそも、ライブの感想は「頭から順」に思い出すより、セトリを眺めて「この曲はここがよかった」「あ、この曲はエモの塊だった」みたいに順不同で考えることが多い気がしますよね。
ということは、「セトリを見ながら感想を曲ごとにつける」サービスがあれば、公演通したレポートも書きやすいし、曲ごとの感想を横串で見ることもできるのでは?
と思って試しに作ってみたのがshiny-liveというアプリです。

先に謝っておくと、とりあえず作ってみましたが穴が多いのであんまり実用的ではないです。 あと、データを入れるのが大変だったのでシャニマスのライブしか入ってません。
というわけで、今回はこのアプリの話をします。
Continue readingこの記事はMisoca+弥生 Advent Calendar 2019の1日目です。
もう12月ですよ、12月!
記事の内容とはなんの関係もありませんが、デレステにM@GICが実装されましたね。

アニメを思い起こさせる最高のMVでした……
Ruby 2.7で、ついにパターンマッチが導入されますね。
今はRuby 2.7.0-preview3で試すことができます。正式にリリースされるのは、おそらく例年通り12月25日でしょうか。
パターンマッチ機能の使い方をざっくり書くと、case ... in ...のような形でパターンマッチを行える機能です。
case { key: :value}
in { key: x }
p x # => :value
end
詳しい話はRubyKaigiでの発表スライドのほか、メドピアさんの「Ruby2.7の(実験的)新機能「パターンマッチ」で遊ぶ」がよくまとまっておりわかりやすいです。
ところで、F#ではアクティブパターンという機能を使うことができます。
これは、パターンへの分解を、マッチ対象とは別に定義できるものです。
let (|Even|Odd|) input = if input % 2 = 0 then Even else Odd
let TestNumber input =
match input with
| Even -> printfn "%d is even" input
| Odd -> printfn "%d is odd" input
TestNumber 11 (* 11 is odd *)
TestNumber 32 (* 32 is even *)
上記のように、マッチ対象となる数値とは独立してEvenとOddというパターンを定義することができます。
さらに、パターンへの分解方法を変えることも可能です。
let (|RGB|) (col : System.Drawing.Color) =
( col.R, col.G, col.B )
let (|HSB|) (col : System.Drawing.Color) =
( col.GetHue(), col.GetSaturation(), col.GetBrightness() )
let printRGB (col: System.Drawing.Color) =
match col with
| RGB(r, g, b) -> printfn " Red: %d Green: %d Blue: %d" r g b
let printHSB (col: System.Drawing.Color) =
match col with
| HSB(h, s, b) -> printfn " Hue: %f Saturation: %f Brightness: %f" h s b
上記のように、Color型に対してRGB値で取り出したりHSB値で取り出したりすることができます。
Rubyのパターンマッチでは、パターンへの分解はマッチ対象のdeconstructやdeconstruct_keysを使うため、分解方法を切り替えるにはRefinementを使うのが現実的な落とし所です。
一般的な回答としてはRefinements使ってくださいですかね。その場合RGBかHSVかの使い分けはRefinementsのスコープが最小範囲になりますが。
— k_tsj (@k_tsj) November 19, 2019
deconstructなどをパターン側ではなくマッチ対象側に持たせた理由は、辻本さんがn月刊ラムダノート Vol.1, No.3に書かれていました。設計判断の話や他言語との比較もいろいろ言及されていて興味深かったです。
……が、それでもF#っぽい書き方をしたい! と思ったのでそれっぽい実装を考えてみよう、というのが今回のテーマです。
ちなみに「闇の力」とタイトルに入っていますが、実装してみたらTracePointとかISeqとかを使わない形に落ち着いたので若干釣りタイトルになっています。
Continue reading