アルパカログ

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

『まんがでわかる 7つの習慣』を読んだ

『7つの習慣』という本の存在は、おそらくほとんどの方が知っていることでしょう。 いろいろな人が薦めているので、「私も読まないと...」と思いつつも、560ページというページ数の多さからこれまで手が出せずにいました。 個人的に、300ページを超えると読…

Rail Europeでフランクフルト空港発の鉄道チケットを購入する方法

ドイツで開催される世界三大ゲームショウのひとつ、Gamescomに参加するためフランクフルト空港発の列車チケットをRail Europeで予約したのですが、予約するにあたっていくつかわかりにくいポイントがあったので備忘録を兼ねてメモしておきます。

EctoでIDリストを指定して取得するときのメモ

久しぶりに書くといつも忘れるのでメモ。 ActiveRecord users = User.find(user_ids) users = User.where(id: user_ids).all ActiveRecordでは上記のようにidsをそのまま渡すところ、Ectoだと次のように書く。 Ecto users = User |> where([user], user.id i…

【Rails5】link_toにdataとclassを同時に指定する

link_to ヘルパーはRuby on Railsの数ある便利なヘルパーのうちのひとつです。 link_to ヘルパーを使うとリンク先の指定がシンプルになるだけではありません。 POSTやDELETEなどのHTTPメソッドが指定でき、さらに data オプションを指定するだけで confirm …

【Rails5】カスタムバリデーションのエラーメッセージをi18nに対応する

Ruby on Rails 5 で、カスタムバリデーションを追加したときに、エラーメッセージ(errors.full_messages)の翻訳で少々ハマったのでまとめておきます。

【初心者向け】図解でわかるGitのブランチとコミット

最近エンジニアでない人にGitを教える機会があって、Gitの仕組みを省略して必要最低限のコマンドだけ教えたものの、やっぱり全体像を理解しないと扱うのは難しそうだなぁと感じたので、コミットとブランチについて図解して説明していきたいと思います。

クラロワで学ぶ 新人エンジニアが手戻りのないPRを作る方法

PRがなかなかレビューしてもらえないしマージされない、なんなら設計に対する指摘が入って作り直し...なんてことありませんか?こういうところに気を付けると良いんじゃないでしょうかというのを、そういえば明文化していなかったのを思い出したので、今日は…

話せば伝わるという誤解 ミスの指摘と生存本能

話しても伝わらない。そんなコミュニケーション不和はいたるところで起こっている。3組に1組は離婚すると言われているこのご時世、偶然同じ会社で偶然同じチームになっただけのチームメンバーとどうして上手くやれるだろう。エンジニアチームをマネジメント…

EC2へのSSHをIAMユーザーに限定する

小規模開発において、EC2にSSHできるユーザーをIAMユーザーに限定したい(≒IAMで擬似的に管理したい)というニーズはよくあると思います。開発者やサーバー台数が少ないケースでLDAPは管理コストがかかるし、LDAPの導入に時間を使うなら開発に使いたい<という…

Gunicornで先に重い読み込みを済ませておくpreload_appオプション

PythonのWebサーバーGunicornにはワーカーのためにプロセスをフォークする前に、重いファイルをプリロードしておけるオプションがあります。 例えば機械学習のモデルや辞書といったような重いファイルをロードして使うようなアプリケーションでは、ワーカー…

ジャングルの島 西表島ひとり旅

西表島は亜熱帯気候で、面積の9割がジャングルに覆われている。日本国内でこれだけの規模のジャングルはあまりない。自然豊かな西表島での体験を写真と共に紹介していく。

カスタマーサポートとCREのこれから

令和になり、CREという役割はときどき耳にするようになってきました。私がミクシィでCREを立ち上げてから1年半が経っています。以前からカスタマーサポートエンジニアとしてCSに携わってきた私が、ミクシィCREのこれからについて思うことを振り返りとともに…

1on1ミーティングで考えるコミュニケーション設計

先日、1on1ミーティングが大手企業でも導入され始めたというニュースが報道されました。私のチームでは「上司と部下」にとらわれない1on1を実施していて、うまく機能しています。どういう目的で実施しているかを説明します。

Quoraで質問すると自分の興味に気付けるかも

Quoraというサービスをご存知でしょうか?「名前は聞いたことある」という人も多いんじゃないかなと思います。 Quoraは一言で言うと、真面目で大人な回答がもらえる質問SNSです。特集記事もあるので気になる人は読んでみてください。 japanese.engadget.com …

時系列データベースInfluxDBの紹介とデータの間引きについて

最近InfluxDBを使う機会に恵まれたので「InfluxDBとは何か」を軽く紹介しつつ、使ってみて良かった点をお話ししようと思う。なお、他の時系列データベースとの比較は行なっていないので注意されたい。

エンジニアにとってマネジメントが「よくわからない」理由

マネジメントというと、どんなイメージをお持ちだろうか?「何をしているのかよくわからない」と聞こえてきそうだ。キャリアとしてマネジメントを検討するにあたり参考になる書籍を紹介し、マネジメントに興味を持てるかもしれないきっかけを提供したい。

【読書メモ】キミのINDEXは効いているか? / 失敗から学ぶRDBの正しい歩き方

「失敗から学ぶRDBの正しい歩き方」はRDBMSを使う上でのアンチパターン集で、RDBMSを扱う初級から中級の全てのソフトウェアエンジニアに読んでもらいたい一冊だ。 本当に大事なエッセンスだけが詰まったこの本は、読みやすく一切無駄がないので、実際に手に…

MacBook Proをお掃除して計算リソースにする

MacBook Proの液晶が割れたときにすることメモ

意識が低い人のための生存戦略

新しい年度が始まり、SNS上では「○○にチャレンジします!」といった意気込みがよく見られるようになりました。4月の風物詩ですね。「やります!」と宣言した人のうち、何割が実際に「やった」人になるのでしょうか。私は「やります!」よりも「やった」と言…

【AngularJS】権限によって表示/非表示を切り替える認可っぽいことをする

AngularJSで権限によって表示したり非表示にしたりといった認可っぽいことをする方法を説明します。 「認可っぽいこと」と言っているのは、データは取得できてしまうものの、非表示にすることでそれらしく見せているためです。ですのでこの方法は、厳密にユ…

第5世代iPad mini買った!

第5世代iPad miniが届きました! 手の大きい人が片手で持つにはちょうどいいサイズです!

マネージャーを逆評価で殴り続けると死ぬ

フィードバックに悩むすべてのマネージャーに向けて。

【読書メモ】入門監視 / 知っておこう!監視のアンチパターン

監視とは、あるシステムやそのシステムのコンポーネントの振る舞いや出力を観察しチェックし続ける行為である。 「入門監視」は、監視の世界を基礎からわかりやすく説明してくれます。 これまでオンコール担当すらしたことがないくらい、監視に関わりが…

【Python3】範囲を限定してインスタンス/クラスメソッドをmockする

Pythonのテストでメソッドをmockするとき、インスタンスメソッドはよくMagicMockを使ってmockしますが、クラスメソッドの場合はmockするとテストケースが終わっても影響が残り続けてしまいます。 これはクラスとインスタンスのライフサイクルの違いによるも…

【AngularFire2】テストでsnapshotChangesをスタブする

Angular.js + Firestoreという構成ではAngularFire2を使うケースが多いと思います。 AngularFire2ではFirestoreからデータ(コレクション)を取得するとき、valueChanges()とsnapshotChanges()の2つの方法があります。 3. Collections in AngularFirestore こ…

AIプロジェクト失敗...ITmedia NEWSにインタビューが掲載されました

会社で取り組んでいるAIプロジェクトの失敗について書いたことは以前お知らせしましたが、これをきっかけにITmedia NEWSさんに取材いただくという幸運に恵まれました。 何でもかんでもすぐ「AIだ!」と声高に叫ばれる昨今、ちょっと胡散臭さを感じている方も…

全然わからない。俺たちは雰囲気でマネージャーをやっている。

エンジニアリングマネージャーの価値とは?全然わからない。俺たちは雰囲気でマネージャーをやっている。

【読書メモ】ファクトフルネスは世界は悪化しているという悲観を打ち消してくれる

『ファクトフルネス 10の思い込みを乗り越え、データを基に世界を正しく見る習慣』を読んだので読書メモです。本は400ページを超えるボリュームなので、私なりに重要だと思った部分をまとめてみました。 ファクトフルネスでは、私たちが本能的に陥ってしまい…

GoでサイボウズガルーンのREST APIクライアントを書いた話

以前、ガルーンの予定をSlackからインタラクティブにリスケできるBotを作った話をしました。 このBotを作ったとき、実はガルーンのREST APIのGo向けクライアントがなかったので自作しているのですが、今日はその自作したガルーンREST APIクライアントの話を…

「カスタマーサポートAIの失敗と教訓」というブログを書きました

会社のブログの方に、2018年春からずっと取り組んできた機械学習プロジェクトの失敗について書きました。 失敗事例ってあまり世の中に出ることないので、よかったら読んでみてください。 medium.com