サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
都知事選
masutaka.net
この記事は feedforce Advent Calendar 2017 の 19 日目の記事です。 18 日目はなべはるさんの『ITベンチャー企業の人事が使っている SaaS 10選! 』でした。なべはるさんは一日に食べるアイスと同じくらい SaaS を活用していてすごいと思います! 昨年 [2016-12-14-1] に引き続き、今年も生活に関する記事です。ダイエッ トは皆さん興味があると思うので、とても有用な情報かと思います。 実際試して、結果的に全部失敗しています。この記事をアンチパターンと して試せば、成功するのではないでしょうか?(えぇ..) 1. ヘルシア緑茶を 3 ヶ月間飲み続ける# 川崎の平間に住んでいた頃なので、2004 年秋頃だと思います。 経緯は忘れましたが、ヘルシア緑茶を毎日 1 本、3 ヶ月間飲み続けまし た。毎日バラで買うのは大変なので、近所の酒屋での箱買いで
全体を Allow したあとに、制限したいパスに対して Deny を追加すれば 可能。 例えば以下の場合。 https://s3-ap-northeast-1.amazonaws.com/masutaka-hoge/aaa/ * → インターネットに全公開 https://s3-ap-northeast-1.amazonaws.com/masutaka-hoge/bbb/ * → IP アドレス AAA.BBB.CCC.DDD からのアクセスのみ許可 このようなポリシーになる。 { "Id": "Policy1234567890", "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt0123456789", "Action": [ "s3:GetObject" ], "Effect": "Allow", "Resource": "a
1 年前に買って積んでいたのは勿体なかったですが、最近ようやく golang と向き合うようになったので、致し方なしか。 対応バージョンは 1.6 で最新の 1.9 より古いですが、golang は後方互 換性は保たれているので、あまり問題ないかと。 型や構文、よく使われるパッケージの説明など、網羅的に書いてあります。 ネット上の情報をつまむくらいなら、この本で学んだほうが良いと思いま すよ…。> 過去の自分 一番良かったところ# 私は元々組み込みエンジニアで、clang に馴染みがあります。そういう意 味では、golang は馴染みやすくはあるのですが、ポインタまわりがどう もしっくり来ませんでした。 この本を読んで、その辺りを理解できて大変良かったです。 ・(*p)[i] の省略が p[i] であるなど、ポインタ記法を省略できる ・参照型(スライス、マップ、チャネル)はポインタを取り扱
一ヶ月ほど前に社内のインフラ共有会でタイトルの話をしました。記録の ために記事を書いておきます。 Gist に置いてある ので、コードは git clone で取得可能です。 $ git clone https://gist.github.com/c0a4234a5264c89655c40adcf7c27cb2.git Ruby# 例えば Ruby で 30 個の処理をするコードがあったとします。こんな素朴 なコードです。それぞれ 3 秒かかる処理が 30 あるので、とても遅いです。 Thread を使って 5 並列にしました。明らかに速くなりました。 ついでにそれぞれの結果(というほどのものではありませんが)を results に代入し、最後にまとめて表示しました。 results は共有リソースになるので、Thread::Mutex#synchronize でロッ クをかけて安全に書き
v3.0.0 から出力フォーマットをカスタマイズ出来るようになりました。 @ryz310 に大感謝です! リリースノートは以下をどうぞ。 https://github.com/masutaka/github-nippou/releases/tag/v3.0.0 新しいサブコマンド init を実行すると、デフォルト設定 から新しい Gist を作り、その後はその設定が参照されます。 参考までに私の設定はこちら です。subject を h3 から h4 に変えている のと、GitHub ユーザ名をリンクにしています。 副作用として v2 と同じフォーマットでは出力できなくなりました。 ご不便をおかけしたらすみません。 他の機能としては以下になります。 ・新しいサブコマンド open-settings 前述の Gist URL をデフォルトブラウザで開きます。設定していなければ、 デフォルト
emacs-helm/helm@6193cc4 によって、helm-elscreen.el が https://github.com/emacs-helm/helm-elscreen に切り出されていました。 Elscreen のタブをまとめて閉じるのに重宝しており、若干不便な毎日を 送っていたので、この度エイヤッと Melpa パッケージを作りました。 作成記録# 初め、https://github.com/melpa/melpa に PR を作ろうとしたら、 PULL_REQUEST_TEMPLATE.md に Checklist がありました。 これを満たすために、helm-elscreen に PR 作成。 https://github.com/emacs-helm/helm-elscreen/pull/1 無事マージされたので、Melpa にパッケージ追加の PR 作成。 htt
先月からなぜか Kubernetes の素振りをしています。 職場の若者が先日発売された『WEB+DB PRESS Vol.99』の牧さんの記事、 「実践Kubernetes」をオススメしていたので、流れで実際に動かしてみま した。 この記事は先週の『Kubernetes Meetup Tokyo #5』[2017-06-29-1] でも オススメされていました。 第4章で実際に GKE を使うことになるのですが、記事に書いてあるコマ ンドや設定はそのままでは動かず、大変難儀しました。誰かの役に立つか もしれないので、人知れずメモしておきます。 注意点# 私は Kubernetes(以下 k8s)を使い始めたばかりです。 今回の件が、記事で使われているバージョン(1.6.1)と、現在 GKE で使 えるバージョン(1.6.6)の違いによるものなのか、本当に記事が間違っ ているのか分かってい
Kubernetes Meetup Tokyo #5 - connpass 今回はこれに尽きました。GKE ちょっと触っただけでの参加は時期尚早だった。 Kubernetes は GKE のやつ使えばいいんでしょと思っていたけど、自前運用の話しか出てこなかった(白目 #k8sjp — マスタカ (@masutaka) June 27, 2017 ありがたいことに、全体の動画が公開されています。 [WIP] 運用しているサービスをKubernetes化するかどうか考える# by @r_takaishi GMO ペパボの minne のお話。高石さんお久しぶりです。 Private Cloud の OpenStack 上に VM インスタンスが 100 台稼働中 1 回のデプロイに 25 分、1 台のスケールに 10 分。遅い コンテナ化したアプリを Kubernetes 上に載せてみた(検証
先日、増田の記事を読みました。 Docker盲信してる皆様へ └ dockerやめてどうしたか? systemd-nspawn を全く知らない自分に腹が立ったので、使ってみました。 ホスト OS を Arch Linux にして試す# 何も知識がないので、ググってヒットしたこちらから開始。 [Arch Linux] systemd-nspawnで軽量コンテナを建てよう! - Qiita ホストの Arch Linux は Vagrant で用意しました。Arch Linux は初めて 使ったし、名前も知らなかったというレベルです。 $ vagrant init terrywang/archlinux あとは記事のとおりに さまざまなディストリのコンテナを試していきました。 Arch Linux → 一番簡単だったが、インターネットに繋げられず Debian → debootstrap が
このブログは GitHub で管理しており、master に commit が追加される と、CircleCI が capistrano を使ってデプロイします。 [2017-04-13-1] でテストを CircleCI 2.0 で動かしたので、デプロイも 試してみました。 最終的な circle.yml とデプロイスクリプトはこちらになりました。 基本的に “add_ssh_keys” と “deploy” step 以外は [2017-04-13-1] と 同じです。ハマりそうなところだけ記載していきます。 ハマりそうなところ# Deployments - CircleCI のとおり、“deploy” step があればデプロイ出来ます。 ただ capistrano で GitHub の private repository をデプロイする場合、 最低 2 つは SSH Key が必
先日の [2017-04-13-1] で気になったので調べてみました。 初めに結論から。 circleci コマンド(シェルスクリプト。macOS 等で実行可能) └ docker run circleci/picard └ /usr/bin/circleci (https://github.com/circleci/build-agent ) ・circleci コマンドは build-agent というコマンドを Dockerize した シェルスクリプト。 ・build-agent は golang 製のツールで、/usr/bin/circleci としてコン テナ内に存在する。おそらく private repository https://github.com/circleci/build-agent で開発されている。 ・Docker Image は https://hub.do
先日素振りがてら、個人の小さな Rails リポジトリを Dockerize しました。 https://github.com/masutaka/github-organization-watcher/pull/45 現在クローズドβの CircleCI 2.0 は Docker 前提らしいので、これも素 振りがてら移行してみました。 https://github.com/masutaka/github-organization-watcher/pull/48 CircleCI 2.0 はここから申請すれば、すぐ使えるようです。 https://circleci.com/beta-access/#request-access 移行前の印象# (1) 1.0 では宜しくやってくれたけど、2.0 は circle.yml に全部書く必 要があるみたい。面倒そう。 (2) とは言え、Docker
ローカルに nginx や mysql が起動していたり、gem install のためだけ に cmake や icu4c を brew install するのは嫌になったので、三連休で 出来るだけ Dockerize しました。仕事の素振りも兼ねています。 nginx# このブログの記事を書く時のプレビューや、雑多な html ファイルの表示 に使っています。 今まで $ brew install nginx して、nginx.conf も別途管理していまし たが、以下のような雑な docker-compose.yml で、雑にマウントするだけ で良くなりました。 version: '3' services: nginx: image: nginx:alpine ports: - 8080:80 volumes: - /Users/masutaka/Sites:/usr/share/n
http://jawsdays2017.jaws-ug.jp AWS 歴 3 年にして初参加。AWS Summit 派だから…(震え 主にサーバレスやコンテナまわりを聞いてた。 以下、スライドを見て思い出したことなどのメモ。登壇者の方の敬称は略 でございます。 新訳 とあるアーキテクトのクラウドデザインパターン目録 登壇者: 山﨑奈緒美 登壇者: 神希嘉 登壇者: 金平晃尚 サーバレスやマイクロサービスの基本的でためになるお話。オンプレから クラウドに移行するモチベーションは理解できるけど、サーバレスはどん ななんでしょうかね?まだ解釈できていない。コンテナ化は分かるんだけど。 ひとりでも怖くない!コミュニティの広げ方 登壇者: 小深田あゆみ 懇親会でなんとか1人2人に話しかけることは出来るけど、そのまま話し 込んでしまうんだよなあ。切り上げ時が分からない。 サーバーレスでシステムを開発す
先日、ついに DynamoDB に TTL が実装されました。 新機能 – TTL(Time to Live)機能を利用したDynamoDBアイテムの管理について|Amazon Web Services ブログ 仕事では Rails4 のセッションストアに ElastiCache for Redis を使っ ているのですが、[2016-10-24-1] に書いたとおり、スケールが辛いです。 作業自体もそうですし、ElastiCache for Redis はスケールアップのみで スケールアウトが出来ません。CPU パワーじゃなくてストレージが欲しい のじゃ…。 DynamoDB はインスタンスの管理が不要なため、もし移行出来たらとって もうれしいです。お値段も ElastiCache よりずっと安そうです。 https://aws.amazon.com/jp/dynamodb/pricin
任意のコミットを無視して git blame してくれるやつ。いわゆるメガコ ミットを無視した blame をしたいときに使える。 なぜかセットアップにひどくハマったのでメモ。 セットアップ方法# git clone してくる $ git clone https://github.com/google/proto-quic.git 以下のように、パスの通ったディレクトリに git-hyper-blame という 名前のシンボリックリンクを作る。git のサブコマンド hyper-blame が 利用可能になる $ ln -s ~/src/github.com/google/proto-quic/depot_tools/git_hyper_blame.py ~/bin/git-hyper-blame ※ Python は macOS Sierra 付属の /usr/bin/python (P
IDO 時代も含めると 1998 年 10 月 から au 一筋で使ってきましたが、先程格安 MVNO の IIJmio に乗り換えました。 やっぱり料金が高すぎですからね…。こんなに長期間使っているのに、まったく減らないってどういうことなの。 移行後の月額料金はご覧のとおり、めっちゃ安くなりました。 移行前: 5,128 円(税込) 移行後: 1,728 円(税込) ※ 移行前は iPhone の分割代金を除外しています。含めると 7,823 円です。 ※ 通話はほとんどせず、データ通信も毎月 3GB 未満です。 やってみたら案外簡単で、全部自宅で済ませることが出来ました。 以下、今回のまとめです。 1. SIM ロック解除# au の iPhone6s は、購入後 180 日経てば SIM フリーにできるそうです。 私は去年の 5 月に解除しました。au ショップに行かずとも、自宅で
第18回elasticsearch勉強会|Meetup 前々回 [2016-06-28-1] に続いて、2 回目の参加です。今回は先週社内勉 強会で発表したばかりだったので、熱量高めでした。いや、むしろ燃え尽 きていたかも…。 自分のブログに Elasticsearch + Vue.js で検索機能を付けたという発表をした|feedforce Engineers’ blog ※ このブログ右上の検索ボックスのお話です What’s new Elastic Stack 5.2# Elastic 社の Jun Ohtani さん Elasticsearch 5.1 ~ Cancel long-running “Search” task by the task management API Elasticsearch 5.2 ~ Index and search numeric and data
最近 Vue.js で、ようやくリアクティブプラグラミングに入門できました。 会社で毎週金曜日に開催されている、インフラ共有会(!)で Vue.js と jQuery の違いを紹介しました。メモがてら、貼り付けておきます。 順番的には Vue.js で書いたものを jQuery で書き起こしました。 jQuery + Ajax# JS が HTML を生成したり、HTML の DOM 構造を知る必要があり、変更 に弱い HTML コードを見ても、ol タグの中身が空っぽで、これから何が入るの か不明。JS も読む必要がある Vue.js + Ajax# JS はほぼ関数定義に特化している。HTML の DOM 構造も知らなくて良い HTML コードを読めば、どんなレンダリングがされるか想像がつく。v- から始まる、データ&モデルバインディング等があるが、無視して読むこ とも可能
このサイトは 10 ヶ月ほど前の [2016-03-15-1] に http2 対応したタイ ミングで SSL 証明書を取得しました。 当時すでに Let’s Encrypt が使われ始めていましたが、Chef の構成管理 が面倒そうなのと、1 年に 1 回の更新なら手間でもないだろうというこ とで、StartSSL で SSL 証明書を取得しました(自身初の経験)。 今回はサブドメインを 1 つ追加するために、StartSSL の管理画面から SSL 証明書を作成し差し替えたのですが、どうもうまくいかない。Chrome だと NET::ERR_CERT_REVOKED というエラーになってしまう。 macOS の curl だと Invalid certificate chain になるけど、Linux の curl は問題なかったり、macOS も Firefox ではエラーにならなか
※ 弊社 feedforce で毎週行っている、インフラ共有会を元にした記事で す。AWS で Rails を使っている方を想定していますが、数人規模のチー ムを意識した内容になっています。 こちらの記事で yaml_vault を知ったので、実際に試してみました。 yaml_vault+KMSでRailsアプリのconfig/secrets.ymlを暗号化してgitにコミットして管理する - Qiita 環境変数つらい# SaaS の API Key などの秘匿情報をコードに埋め込まないために、Rails で dotenv を使っている方も多いかと思います。 しかし、README.md にあるように 作者の @bkeepers さんは production での利用は奨励していません。 dotenv was originally created to load configuration
8月に発表を知り、日本での発売を心待ちにして2ヶ月。10/19(水)にようやく日本で予約が始まりました。 ついにキター!!! Inoreader で Twitter を監視していた甲斐があった! / “ASUS ジャパン、QXGA 解像度ハイレゾ対応 9.7インチタブレット「ZenPad 3S 10 (Z500M)」発表、価格39…” https://t.co/9oCZF1VpF1 — マスタカ (@masutaka) October 19, 2016 速攻で予約し、同じ週の 10/22(土)にゲット出来ました。 ZenPad 3S 10 (Z500M) シルバー タブレットは親に iPad を買った時に一瞬所持したことはありますが、自分用を持つのは今回が初めてです。いやあ、タブレットいいですね(完全に時代から取り残されている人)。 さて、こんな理由から最近タブレットへの物欲が高まっていま
個人と仕事のサーバはどちらも Knife-Solo で構成管理しています。 Chef がバージョンアップしたら、私はなるべく knife solo prepare し ていますが、このコマンドは単純実行すると、サーバの台数に比例して時 間がかかります。 Knife-Zero でそれを解決できるのかなと思い、Getting Started してみ ました。 結論# 代替にはならない。knife zero bootstrap も knife solo prepare と同 様、Chef をインストールするのは同じ。 Home(ja) · Knife-Zero まずKnife-ZeroはKnife-Solo の乗り換え先ではありません。 仰る通りでした。 勘違い# knife-solo は公式とは別に matschaffer がメンテナンスしているから、捨てる必要ないと思っていたんですが、私勘違
先週 AWS ElastiCache for Redis を cache.m3.medium から cache.m4.large にスケールアップしました。今後のためにメモを残して おきます。 背景# cache.m3.medium を Multi-AZ + Replica 1 台構成で運用していた。主な 用途は Rails4 の Session Store サーバとして。 BytesUsedForCache が cache.m3.medium のメモリ 2.78 GiB を超え、 Evictions が発生し始めたため、cache.m4.large にスケールアップした。 タイムライン# メンテナンスウィンドウをセットした AM 3:00 になるとすぐに、当該ク ラスターの Status が modifying になった。 AM 3:07 に Rails から接続できなくなり、Prima
弊社の @tjinjin が作った mackerel-plugin-aws-billing は導入は簡単 だし、AWS 料金の推移が気軽に見られるので、Fastly 版を作ってみました。 Fastly は少し前から会社で使い始めています。なかなか便利で、CDN な のに一瞬でキャッシュを消せるのもさることながら、料金含めた全てのメ トリクスがリアルタイムで見られるのがすごいですね。今のところ、超安 定稼働しています。 さて、今回作った mackerel-plugin-fastly-billing は Fastly の Billing API を叩いて、その月の現在の料金を取ってくるシンプルな plugin です。curl 的には例えば以下になります。 $ curl -s -H "Fastly-Key: <Fastly API Key>" \ https://api.fastly.com/b
compare_linker | RubyGems.org | your community gem host 仕事やプライベートで、毎週自動 bundle update していますが、Gem に よっては GitHub の compare Link を作れませんでした。 人間が手動でリンクを作ってコメントするのが無駄な作業で、なんだか申 し訳なかったので修正してみました。これで GitHub に Git のタグがな い Gem 以外は救えるようになったはず。 出力フォーマットもシンプルになっています。 circle.yml とかで circleci-bundle-update-pr をインストール していれ ば、自動的に v1.3.0 の compare_linker が使われます。 @kyanny さんが作った頃のフォーマット v1.30 のフォーマット 変更内容はリリースノート に書
必要に迫られて Ruby のスクリプトを作ったら、汎用化できたので Gem にしてみました。 gist_updater | RubyGems.org | your community gem host 何ができるか?# このような YAML ファイルを用意し、gist_updater コマンドを実行する と、ローカルの .emacs.d/init.el によって https://gist.github.com/masutaka/8177244 がアップデートされます。 - - 8177244 - .emacs.d/init.el Gist は差分がなくても、更新するとリビジョンが増えてしまいますが、 gist_updater は差分がなければアップデートしません。 複数の Gist をアップデート対象にすることも出来ますし、1つの Gist の複数ファイルにも対応しています。YAML なの
[2015-02-11-1] で Go を学んだ私ですが、その後あまり使っていなかったので、情報をアップデートできて良かったです。 特に第1章の開発環境のあたり。goimports の import 自動挿入は良いですね。早速 go get して init.el に以下を設定しました(go-mode.el は導入済み)。 第6章のテストも即戦力になりそうです。 以下は読んでメモった箇所を中心にしたまとめです。 全体を通して感じたこと# Go の文法が多少分かる方向けの本だと思います。P.19 にも書いてある「A Tour of Go 」などをやった後に読むと効果的だと思います。 ただ、世間でオススメされている「A Tour of Go」ですが、私はチュートリアルとしては難しいと思います。半分くらいから Go よりアルゴリズムのチュートリアルっぽくなってくるので。 個人的には [2015-0
本当に良い本でした。読んで良かった。初心者を中心に中級者にも刺さる 本だと思います。輪読などして、チームで読むとオブジェクト指向設計の そもそもの話をしなくて良さそうです。 難しい話が易しく説明されており「あ、そうだったのか」と思うことが度々 でした。ボリュームも全9章とコンパクトで、1日1章読むのに丁度よかっ たです。 読んでメモった箇所を中心にまとめていきます。 第2章 単一責任のクラスを設計する# インスタンス変数へのアクセス方法を誤解していました。 P46 変数はそれらを定義しているクラスからでさえも隠蔽しましょう 今まで他のクラスから隠蔽する時は、直接 @hoge などにアクセスしてい ましたが、中からも attr_reader などで隠蔽する必要があるそうです。 「データではなく、振る舞いに依存する」ためだそうです。 メモ化などでこうした手法は使っていたけど、単純な参照も隠蔽す
次のページ
このページを最初にブックマークしてみませんか?
『マスタカの ChangeLog メモ』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く