サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
今年の「かわいい」
takanamito.hateblo.jp
Speeeで働いている時に作ったgemのリポジトリを退職後に譲り受け、さらにitamae-pluginsのメンテナの方々にowner権限をお譲りしました。 けっこう珍しい話だと思うので経緯を残しておきます。 github.com きっかけはDocker移行 退職者に対するOSSの権限問題 メンテナ探し まとめ きっかけはDocker移行 itamae-plugin-recipe-datadogはdatadog agentをインストールするitamae用のレシピgemです。 自分がSpeeeで働いてた時にAWS EC2でRailsアプリケーションを運用していたので、EC2上でdatadog agentを動かすために作りました。 (自分が初めてリリースしたgemだったので感動した記憶があります) 2016年のリリースから時は経って、数回gemのアップデートをしましたが Docker時代の到来と
たまたま読んだヤクルト高津監督の本に書いてあった若手の育成論がおもしろくて他の監督経験者の本も読んでみることに。 すると意外にも自分の職場でも役に立ちそうな組織論・育成論が書かれていたので、何人かの本を読み比べてまとめてみました。 読む本はなるべく最近の情報が書かれているものがよかったので、5~10年以内に選手・監督経験がある人の著書を選びました。 ヤクルトスワローズ 高津監督「二軍監督の仕事〜育てるためなら負けてもいい〜」 よかったところ 広島カープ 緒方監督「赤の継承」 よかったところ 読売ジャイアンツ 阿部2軍監督「阿部慎之助の野球道」 よかったところ DeNAベイスターズ ラミレス監督「CAHNGE!」 よかったところ 中日ドラゴンズ 落合監督「決断=実行」 よかったところ まとめ ヤクルトスワローズ 高津監督「二軍監督の仕事〜育てるためなら負けてもいい〜」 二軍監督の仕事 育てる
この記事は ZOZOテクノロジーズ #1 Advent Calendar 2019 21日目の記事です。 昨日の記事は @awsmgsさんによる「Classic ASPによるRESTful APIのルーティング実装例」でした。 この記事では、会社の開発合宿でつくったgem teyu に届いたPullRequestで使われていた高速化手法の紹介と、なぜ速くなるのか?の考察をします。 techblog.zozo.com 届いたPullRequest 高速化その1 each → while 高速化その2 define_method → class_eval 最後に 届いたPullRequest sonots さんから2件の高速化PullRequestが届きました。 Improve performance and readability #2 Fastest version #3 前者では eac
この記事は ZOZOテクノロジーズその2 Advent Calendar 2018 - Qiita 13日目の記事です。 今回はActiveModel::Serializers(AMS)の便利メソッドを紹介します。 github.com AMSを使ってjsonシリアライズ実装をしていたのですが、以下のような非ActiveRecordオブジェクトのシリアライズで 動的にSerializerを切り替えたい場面で困った事がありました。 困った事例 ワールドトリガーを例にサンプルコードを書きます。 人物とトリガーを表すクラスが存在し、人物オブジェクトをAMSをつかってシリアライズする実装を考えてみます。 クラス定義 # 人物は1つだけトリガーを持つことができるとする class Person < ActiveModelSerializers::Model attributes :name, :tr
この記事は ZOZOテクノロジーズ Advent Calendar 2018 - Qiita 10日目の記事です。 2年ほどラズパイ上でHomebridgeの運用をしていましたが、新型NatureRemoの発売に伴い構成を見直すことにしました。 takanamito.hateblo.jp 新型NatureRemoはIRKitと違い、温度・湿度・照度が取れるのでお部屋モニタリングが捗ります。 つくったもの 今回作ったものはこちら github.com 以前の記事ではRaspberry Pi上で直接Homebridgeサーバーを立ち上げていましたが、今回の構成ではRaspberry Pi上でDockerを動かしています。 Homebridge on Docker Raspberry Pi上でDockerを動かそうと思い調べてみると、すでに同じことを考えている人がリポジトリを公開していました。
日次でDB内のとあるテーブルのデータ全件をBigQueryに同期するバッチがあって RDS for MySQLからデータをselectしていたが、先日Aurora MySQL(5.6.10)に移行した直後から急にバッチがこけはじめた。 原因調査 バッチは使用しているMySQLクライアントの設定値(3600秒)に従ってタイムアウトし落ちていた。 バッチの実行時間帯のCloud Watchメトリクスを確認してみると AuroraのCPU使用率が30分間ほど平常値から外れて高くなっていた。 しかしバッチを実行しているEC2のネットワークインプットメトリックは特に変動がなく、Auroraからselectした結果を受け取れてなさそうなことも同時にわかった。 DBへの接続がタイムアウトするまでに1時間かかっているのに、selectによるCPU負荷が30分程度しか上昇していないので クエリが何らかの理由
先日OpenAPIのスキーマからRubyのクラスを自動生成するgemを作りました。 OpenAPIのschema定義からRubyのクラスを生成するgem「openapi2ruby」をつくりました - Start Today Technologies TECH BLOG このgemを作って自動生成しようとしたのがActiveModel::Serializer(AMS)のシリアライザで 他にも自動生成できるものがないか調べていたときに、ちょっと前に話題になったNetflixのgemを見つけたので使ってみることに。 github.com なんでも serialization time is at least 25 times faster than Active Model Serializers on up to current benchmark of 1000 records. らしい。速
普段お仕事でRailsアプリケーションを作ってて、今はチーム内共通のMySQLサーバーをみんなが参照している。 これをDocker化してうまくみんなにイメージを配布したかった。 前職ではMySQLにデータが投入済みのDockerイメージを作成して、コマンド一発でデータが入った状態のMySQLコンテナが立ち上がるようになっていたので、そのやり方を元同僚に聞いて再現してみることにした。 構成 docker-composeを使って 公式のMySQLコンテナ volume用コンテナ の2つを立ち上げて利用する。 流れ まずはデータ入りDockerイメージ作成 公式MySQLイメージからコンテナを立ち上げてdumpデータ投入 データ入りのファイルをホストに/var/lib/mysql以下をコピー 新規でホストからコンテナに↑の手順でコピーしてきたデータをCOPYするDockerfileを作成 doc
この記事を書いたあたりから、よりDDDについて知りたくなって追加で読み始めた本 takanamito.hateblo.jp 現場で役立つシステム設計の原則 ~変更を楽で安全にするオブジェクト指向の実践技法 作者: 増田亨出版社/メーカー: 技術評論社発売日: 2017/07/05メディア: 単行本(ソフトカバー)この商品を含むブログ (1件) を見る 業務におけるプログラミングでオブジェクト指向を実践するにはどうすればよいかを、ここまで具体的に書いてくれてる本は初めてだったので読んでよかった。 1章からいきなりドメインオブジェクトの軽い説明と例示 3章ではドメインロジックをドメインオブジェクトに抽出していく説明 4章ではさらにその手前の、業務フローからドメインオブジェクトを見つけていく手法と、ドメインオブジェクトの育て方 少し飛んで8章ではドメインオブジェクトとAPIレスポンスをどう対応さ
普段RailsでWebアプリを作っていて、いつクラスを作るべきか、どんなインターフェイスを作るべきか、そもそもよい設計やコードとは何なのかよくわからなくなっていた。 同僚に相談したらこの本を勧められて2017年に1回途中まで、年明けにもう1回全部通して読み直したのでいったんまとめる。 オブジェクト指向設計実践ガイド ~Rubyでわかる 進化しつづける柔軟なアプリケーションの育て方 作者: Sandi Metz,?山泰基出版社/メーカー: 技術評論社発売日: 2016/09/02メディア: 大型本この商品を含むブログ (1件) を見る この本を読んでなおいろんな機能が詰まりまくったServiceクラスを作るPullRequestを出した自分に 丁寧にapp/models以下に単一責任の原則に基づいたプレーンなクラスを作って、ドメインモデルを表現するコードレビューをしてくれた同僚がいた。 ちょ
ベッドでだらだらしていると、だんだんウトウトしてくる。 あーもうこのまま意識飛んで寝そう。っていう時に、電気とテレビを消すために わざわざテーブルに置いてあるリモコンを取りに行きたくない。 「Hey Siri 電気つけて!」で電気をつけたり消したり 続編としてエアコンの温度調整を自動化するところまでやりました。 takanamito.hateblo.jp システム構成 iPhone7 Siri HomeKit Raspberry Pi homebridge homebridge-irkit IRKit (API付き学習リモコン) 家電製品 照明 テレビ エアコン この中でも今回の要はhomebridge homebridge github.com github.com homebridge-irkitをラズパイで動かします。 このサーバーはHomeKit互換なため、設定ファイルにjsonで
前回の記事で、手元にWindowsがなくてもAWS環境にWindowsマシンを用意し リモートデスクトップを利用してAstroneerをプレイする方法を紹介しました。 takanamito.hateblo.jp しかし、記事の最後にも書いてあるように ドラッグが効かなかったりと、通常プレイにも支障が出てしまう状態でした。 今回はそれをクリアし快適にプレイすることができたので、その方法を書こうと思います。 きっかけ 前回の記事を投稿したところ知人からTwitterで 「Steam Home Streaming」なるものの存在を教えてもらいました。 Steam ホームストリーミング LAN内にあるマシンでリモートプレイできる仕組みのようです。 今回はこれを利用してプレイしたいので Mac - WindowsをVPNで接続してSteam Home Streamingが使える環境をつくります。 ち
「Astroneer」がやりたかった。 ただ、うちには動作条件を満たすWindowsマシンがなくて困った。 ゲームはそんなに長く続かないタチなので100時間もやらないはず。 そのためにわざわざ何万も払ってWindowsマシンを買いたくもないし、大掃除でせっかく空けた家のスペースも使いたくない。 諦めきれずに同僚にslackでAstroneerやりたいと話していたら 「AWSでWindows使えばいいじゃん」と言われた。 その発想はなかった。 調べてみると、海外に同じ事をしている人がいた。 Run your own high-end cloud gaming service on EC2 Revised and much faster, run your own high-end cloud gaming service on EC2! 意を決して作業を始めると、1時間くらいでAstrone
この記事は、「Speee Advent Calendar 2016」の5日目です。 4日目は、id:nisshieeより、「Turbolinks再考」です。 今日は、Terraformの構成について再度考えたいと思います。 先日書いたブログで、hashcorpが公開しているTerraformのbest-practiseについて読み解きました。 takanamito.hateblo.jp ブコメでもいくつかあった「つらそう」という意見 つらさにも種類があるとは思うのですが 僕が実際にベストプラクティスを読んでいて思ったのは モジュールが2階層構造になっており、抽象化されたモジュールを読み解くのがしんどい モジュール単位で変数定義が必要なため、3回変数宣言をしなければならないのがめんどくさい という2点。 ただこれも、多くのリソースを抽象化して管理したり、ファイルの肥大化を防ぐ意味では有用であ
もうすぐ社会人になって丸3年。 いい機会なのでここまでやってきたことの棚卸しをしてみる。 1年目 同期より2ヶ月ほど早く入社し、いきなり新規サービスの立ち上げに参加させてもらった。 僕は2年目の先輩エンジニアの下について、ユーザーのコンテンツ投稿画面のフロントエンドを中心に開発をしていた。 このときAngularJSみたいなフレームワークの導入もできたのに「JSの勉強も兼ねてjQueryだけでやってみよっか」と大きなフレームワークなしで設計/実装にチャレンジさせてもらえたことにとても感謝している。 JSのオブジェクトや関数について理解を深めるきっかけになった。 この時期にJavaScriptパターンを読みまくっていた。 JavaScriptパターン ―優れたアプリケーションのための作法 作者: Stoyan Stefanov,豊福剛出版社/メーカー: オライリージャパン発売日: 2011/
最近、自分のチームでTerraformを使ってAWSのオーケストレーションをやろうという話になった。 サーバー台数も10~20台程度、今まではAWSコンソールをポチポチしてインスタンスを用意していたが サービス規模の拡大に伴って、手動オペレーションによるミスを防いだり、インフラ説明コストなどを省くこと、インフラ整理の意味合いで導入している最中。 Terraformに触るのは初めてだったので、ドキュメントを読みつつ基本的な機能について勉強しつつ どのようなファイル構成で管理をするのがいいのか、経験者の同僚にアドバイスをもらいにいったところ Hashcorpが公開しているベストプラクティスのリポジトリを教えてくれた。 github.com ところがこの構成、けっこう複雑で初心者がいきなり読み始めるのは辛かったので 復習も兼ねてベストプラクティスを読み解いていく。 理解するために必要な要素 AW
phpでブラウザにエラーを表示させずに、ファイルにエラーログを出力しようと思って php.iniを display_errors = Off log_errors = On error_log = /var/log/php_error.logって書いたけど 全然エラーログが出力されなくて困った。 結論 ログを出力するファイルを作成しておく apacheの実行ユーザーが書き込めるように権限を変更する $ chown -R apache /var/log/php_error.log apacheの実行ユーザーは httpd.conf見たらわかる。 参考記事 php.ini で設定しても出力されないエラーログをちゃんと出すポイント! – oki2a24 error_logの出力先を設定する【PHP】【apache2】【debian】 - DRYな備忘録 結局この本読むのが良かった パーフェクトP
京都→東京への引越し 春から東京に引越すために 新居の契約 引越し業者の手配 を済ませました。 これ知ってたらもうちょい捗ったのに っていう情報をシェアさせていただきます。 新居の契約 会社が六本木にあるので、徒歩で通える範囲で探しました。 事前にFacebookでどの時期に探せばいいかわからんと投稿したところ 多数の友人から、年内に探すべきだと言われる。 新生活シーズンに合わせて年明け以降は、大家さん側が強気にでるため交渉しにくいとのこと。 12月中に上京し、部屋を探すことに。 以下、交渉ポイントをリストで。 決める気満々で来店すると損する 当たり前ですが、別の店でも探してるふりしないと足元みられる。今回やらかした。 物件訪問した時にとりあえずケチつける あんま気に入った物件ないフリして帰ろうとする これで掘り出し物出てきたりするみたい 金額交渉するなら家賃ではなく初期費用 ランニングコ
JavaScriptパターン ―優れたアプリケーションのための作法 作者: Stoyan Stefanov,豊福剛出版社/メーカー: オライリージャパン発売日: 2011/02/16メディア: 大型本購入: 22人 クリック: 907回この商品を含むブログ (70件) を見る とりあえず動くjsは書けていろいろできる人向けの本な感じ。 こう書くといいよ。っていうパターンを教えてくれる。 以下、印象に残っているところ。 jsのどういうところに気をつけるべきか グローバル変数簡単にできるのでバグの元 jsにクラスは存在しない DOMのアクセスと更新はコストかかる グローバル変数簡単にできるのでバグの元 この問題自体は知ってたけど、対策として"varつける"くらいしか知らなかった。 防ぎ方としては 関数内にスコープができることを利用する 名前空間つくって、その中で使う この2つを組み合わせるとい
tmux内でペインを左右分割してvimを使っている時 左右のペインを飛び越えてコピペしたくてもできなかった。 すごく不便なので調べてたらクリップボードにヤンクするやり方があるということがわかった。 調査 Mac + Terminal + tmux + vim でクリップボードを快適に使う - TOKOROM BLOG tmux内のvimでclipboardにunnamedが含まれるとヤンク・コピーができない - Qiita [キータ] vimのヤンクをクリップボードにしたかった — vivivi.ch 手順 .vimrcに追記 set clipboard+=unnamed set clipboard+=autoselect reattach-to-user-namespaceをインストールする brew install reattach-to-user-namespace .tmux.co
最近Kindle買ったはいいけど、オライリーのPDFそのままぶち込んでも文字小さすぎて読めなくて萎えてた。 Kindle Paperwhite 3G 出版社/メーカー: Amazon.co.jp発売日: 2012/11/19メディア: エレクトロニクス購入: 82人 クリック: 6,777回この商品を含むブログ (100件) を見る んでいろいろ試した結果。 結論からいうと ダウンロードしたPDFをプレビュー.appでトリミングする Kindleに送って、コントラスト最大で読む ってのが一番手っ取り早かった。 以下、詳細な手順です。 プレビュー.appでPDFを開きツールから「長方形で選択」を選ぶ 良い感じに選択する コツは上と左右はギリギリに。下は少し余裕を持たせることです。意外と下はみ出します。 左のサムネイルゾーンにカーソルを置いて、⌘+aで全選択 この時、全ページに点線が入るので、
はじめまして。id:takanamitoです。 8/10~8/24までの約2週間、精神と時の部屋で有名なはてなサマーインターンに参加してきました。 周りのスペックが高すぎる中、一人だけプログラミング歴1年弱 しかもWeb歴ほぼなし。という低スペックでなぜかインターンに通ってしまったので ヤムチャ視点でのインターンレポートを書きます。 ■もくじ 箇条書きで知るはてなインターン 何ひとつわからなくても、なんとかなる へこむ→うれしい→へこむ→うれしい 今からやれば間に合う ■箇条書きで知るはてなインターン みんなidで呼び合う 変な人がたくさんいる 毎日出る昼ごはんがマジで美味い フリードリンク&フリーお菓子 観光でハチに刺される 16歳の高校2年生がインターンに来る 社長のid:jkondoと食事に行って、いろんなことを聞ける きれいな女の人がいっぱい (id:pika_shiの記事 精神と
このページを最初にブックマークしてみませんか?
『takanamitoのブログ』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く