アルパカログ

プログラミングとマネジメントがメインです。時々エモいのも書きます。

ポケモン剣盾のバトルシミュレーターを書いた

ポケットモンスターソード&シールドを発売以来ずっと遊んでいて、対人戦(シングルバトル)でいろいろ試したいなーと思ったので、2月3月の可処分時間のほとんどを開発に突っ込んで作った。権利まわりが怖いのでデータやソースコードは公開していない。

f:id:otoyo0122:20200328184024g:plain:w420
シミュレーターの画面

開発に使ったのはPython 3.7で標準ライブラリのみ。行数は全部で5,000いかない程度。

以下、苦労したところなど。

続きを読む

Customer Support Tech Meetupを開催しました

3月25日(水)に、技術を駆使してカスタマーサポートの課題解決事例を紹介する「Customer Support Tech Meetup #1」を開催しました。

mixi.connpass.com

オンライン開催にもかかわらず、当日はYouTubeの視聴者数が70人を超え、多くの人のCS課題への関心の高さが感じられました。

この記事では、発表資料や開催時のツイート、付録資料、ブログをまとめました。

続きを読む

RubyとPythonで仮引数のデフォルト値がオブジェクトのとき挙動が違う

仮引数のデフォルト値は、Rubyではメソッドが呼ばれたときに作られ、Pythonではメソッドが定義されたときに作られているように見える。

業務ではRubyを書いていて、プライベートでPythonを書いていてハマったのでメモ。最後の hoge2.foo に注目してみてください。

Ruby

[1] pry(main)> class Hoge
[1] pry(main)*   attr_accessor :foo
[1] pry(main)*   
[1] pry(main)*   def initialize(foo: [])
[1] pry(main)*     self.foo = foo
[1] pry(main)*   end  
[1] pry(main)* end  
[2] pry(main)> 
[3] pry(main)> hoge1 = Hoge.new
[4] pry(main)> hoge2 = Hoge.new
[7] pry(main)> 
[8] pry(main)> hoge1.foo.push(1)
=> [1]
[9] pry(main)> hoge1.foo
=> [1]
[10] pry(main)> hoge2.foo
=> []

Python

>>> class Hoge:
...     def __init__(self, foo=[]):
...             self.foo = foo
... 
>>> hoge1 = Hoge()
>>> hoge2 = Hoge()
>>> 
>>> hoge1.foo.append(1)
>>> hoge1.foo
[1]
>>> hoge2.foo
[1]

カスタマーサポートの課題をCREが技術で解決する「Customer Support Tech Meetup」開催!

ミクシィCREがこの1年間、カスタマーサポートの課題にどう向き合い、技術的にアプローチしてきたかを一気にお話しします!

mixi.connpass.com

発表概要にもある通り、「CS向け管理ツールのこれから」「AIによる自動分類システム」「人に寄り添ったナレッジ蓄積・共有ツール開発」という3つの大きなプロジェクトについて、それぞれの開発者がお話しします。

そしてさらに、今回AIシステム開発で技術支援をいただいた株式会社カラクリ様から、スペシャルゲストが登壇します。

オンライン開催ですので、お時間の合う方はぜひご覧になってください。Youtubeで再放送を見ることもできますが、質疑応答はオンラインだけです!

私もオープニングとクロージングだけ登場します。それでは、当日お会いしましょう。

Rails6エンジンでアセットパイプラインを使う

Ruby on Rails 6 のエンジンでアセットパイプラインを使う設定方法をメモしておきます。

エンジンは以前は Mountable Engine と呼ばれていたと記憶していますが、今では単に「エンジン」と呼ぶようです。

エンジンについては下記チュートリアルを参照してください。

Rails エンジン入門 - Railsガイド

続きを読む

自分の強みを認識する。ストレングスファインダーで。

自分が自分で思っている強みと、客観的な強みは意外と違うものです。

強みというのはもうクセや習慣のようになっていて、本人にとっては当たり前すぎるからなんですね。

自分の強みを知るのになにやらストレングスファインダーが役立つということを聞き、早速受けてみたのでその結果を見ながら考察したいと思います。

ストレングスファインダーとはその名の通り、自分の強みを見つけてくれる適性テストで、Web上で簡単に受けることができます(有料)。

続きを読む

Rails6エンジンでFactoryBotを使う

Rails6のエンジンでFactoryBotを使うための設定をメモしておきます。

エンジンについては下記チュートリアルを参照してください。以下、エンジン名はチュートリアルで登場する Blorgh を使って説明します。

Rails エンジン入門 - Railsガイド

続きを読む