RubyではじめるgRPC

gRPCについては以前から興味があっていくつか記事を斜め読みしてましたが、結局自分で動かしてみないと分からないため、Rubyで動かしてみようと思います。 gRPCとは? Googleの内部で使われていたRPCで、メッセージのシリアライズ方式としてProtocol Buffer…

Mac OSにPrestoをインストールして試してみる

BigQuery、Athenaに続いてこんどはPrestoを触ってみたので、記録を残しておきます。 Prestoとは? tug.red インストールと設定 2.1. Deploying Presto — Presto 0.185 Documentation には tar ball と書かれていますが、brewでインストールが可能です。java …

Amazon Athenaについて

なんとなく触ってみたレベルなので、特徴やユースケースをかんたんに整理しておきたい。 特徴は? Amazon S3のデータを標準SQLで分析できる サーバーのセットアップ・管理は不要 スキーマ定義は必要だが、事前のデータロードは不要 SQLのエンジンは presto …

BigQueryの何がすごいのか?

既に語り尽くされてそうな話ではありますが、自分なりにまとめないとアタマに入らないのでドキュメントの整理も兼ねて、ポイントをまとめてみます。 BigQueryとは何か? Google Cloud Platformでは、"BigQuery is Google's fully managed, petabyte scale, lo…

RailsのログをfluentdでBigQuery、あるいはS3に取り込む

GCP BigQueryやAWS Athenaを実際に触る機会が欲しかったので、RailsのログをfluentdでBigQueryやS3に取り込んでみます。 とりあえず触ることが目的で、実用できるかはとりあえず脇においておきます。 なお、fluentd(td-agent)はOS Xに0.14.21 をインストー…

Mac OS Xにtd-agentをインストールする

基本的にはドキュメントに従い、dmgからインストールすればOKです。 docs.fluentd.org いくつか自分で調べたことがあったので、FAQ的にメモに残しておきます。 起動はどうやればいい? ドキュメントは launchctl を使っていますが、もしマニュアルで起動する…

DMARCについて調べた

必要に迫られていろいろ調べたので、メモしておく。 DMARCって何? DMARC, which stands for “Domain-based Message Authentication, Reporting & Conformance”, is an email authentication, policy, and reporting protocol. It builds on the widely depl…

EmbulkとBigQueryと

遅ればせながら触ってみたので、自分用にメモを残しておきたいと思います。 Embulk よく使うコマンド embulk guess seed.yml -o config.yml embulk preview config.yml embulk run config.yml bundle環境を利用する場合は -b オプションをつける。 embulk gu…

「ゼロから作るDeep Learning」のその先へ... TensorFlowを使いこなす

「ゼロから作るDeep Learing」を読了しました。 ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装作者: 斎藤康毅出版社/メーカー: オライリージャパン発売日: 2016/09/24メディア: 単行本(ソフトカバー)この商品を含むブログ (11件…

Pandas Cheatsheet

数ヶ月ぶりにpandasを使うと基本すら忘れていることが多いので、チートシートを残しておきます。 なお、pandas (0.18.1) です。 データの読み込み csvから読み込む。 先頭行のヘッダは自動で読み込んでくれます。 import pandas as pd df_train = pd.read_cs…

capistrano3でshared_pathにディレクトリを作成する

いつも忘れるので、メモっておく。 namespace :tmp_dir do task :create do on roles(:all) do within shared_path do unless test "[ -e tmp/subdir]" execute :mkdir, "-p", "tmp/subdir" end end end end end after "deploy:check", "tmp_dir:create"

Rails Good Parts

Railsにまつわる便利機能・デザインパターンはたくさんありすぎて、正直覚えきれないので、 個人的に役立ったものまとめていこうと思います。 ActiveModel validation バリデーションを特定のコンテキストでのみ実行する方法。 ActiveModel::Validations cla…

PackerのAnsible RemoteでSSH ForwardAgentする

PackerのAnsible Remote ProvisionerでAMIをビルドしていますが、 SSH ForwardAgentできずにだいぶハマったので、備忘のためにメモしておきます。 やりたいこと githubのプライベートリポジトリをansibleでcloneしたい。 公開鍵認証する必要あるが、private …

Multithreaded Programming - Operating System Concepts Chapter 4

ちょっとしたメモ。 Operating System Concepts の Chapter 4 の冒頭に A thread is a basic unit of CPU utilization; it comprises a thread ID, a program counter, a register set, and a stack. It shares with other threads belonging to the same pr…

Action Mailerでfromフィールドに差出人名を表示したい

よく見かけるAction Mailer のサンプルはこんな感じだと思います。 mail from: 'noreply@example.com', to: 'foobar@example.com', subject: 'Hi' このケースでは差出人は noreply@example.com となるんですが、時にサービス名などを設定したくなることもあ…

bundler環境で動いてるunicornでgem が更新されない話

TL;DR Unicornをpreload_app=falseで運用してる場合は、 before_exec do |server| ENV["BUNDLE_GEMFILE"] = File.join(project_home, "Gemfile") end の設定をした上で、SIGUSR2 を使いましょう。 capistrano3-unicornを利用しているなら、下記の通りです。 …

REST API

REST APIをつくるときのリファレンスをまとめておく場所(の予定) W3C Status Code HTTP/1.1: Status Code Definitions jsonapi JSON API — Index Blogs Best Practices for Designing a Pragmatic RESTful API | Vinay Sahni

クリックジャッキングとX-Frame-Options

クリックジャッキングとX-Frame-Optionsについて調べたことをまとめます。 クリックジャッキング クリックジャッキング攻撃とは、ユーザを視覚的にだまして正常に見えるウェブページ上のコンテンツをクリックさせ、別のウェブページのコンテンツをクリックさ…

ES6 + React + Redux + webpack な環境構築

ES6 + React + Redux + webpack なフロントエンド環境を構築するためのメモ。 packages.json npm install --save react react-dom react-redux npm install --save-dev babel-loader babel-core babel-preset-es2015 babel-preset-react npm install --save-…

meta要素に関する仕様

そういや真面目にmeta要素の仕様を読んだことなかったので、調べてみました。 meta 要素 お馴染みこんなやつです。 <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" name="viewport"> <meta name="csrf-param" content="authenticity_token"> 4.2 Document metadata — HTML5 に定義が書かれています。適当に訳すと... The meta element represent…</meta></meta>

MacでMecabをpython3から利用する方法

2016年5月時点で最もカンタンと思われる方法。 python3 はインストール済みという前提で。 インストール brew install mecab brew install mecab-ipadic pip install mecab-python3 >>> import MeCab >>> m = MeCab.Tagger("-Ochasen") >>> print(m.parse("…

ファイルの拡張子を一括置換する

例えば application.css.scss -> application.scss という一括置換をしたい場合には find . -type f -print0 | perl -pe 's/\.css\.scss//g' | xargs -0 -I% git mv %.css.scss %.scss とすれば ok。 参照: find/xargsを使ったファイル・ディレクトリ名の一…

Mac OS X でのpyenvによるpython環境構築 - Tensorflow 編

kotaroito.hatenablog.com というのを以前書いたのですが、Tensorflow を始めるにあたっては anaconda を使ったほうが何かと便利なので、メモを残しておきます。 1. pyenv と pyenv-virtualenv のインストール brew install pyenv brew install pyenv-virtua…

unicornのlog rotationでハマったが、実は test コマンドの exit コード起因だったという話

unicorn の log を cron で毎日ローテートする設定を書いたところ、下記エラーメールが届いて「なぜだろう」と数時間唸ってました。ようやく解決に至ったので、メモしておきます。 メール 件名: Cron <root@***> test -x /usr/sbin/anacron || ( cd / && run-parts --</root@***>…

irisデータをロジスティック回帰とSVMで分類してみた

Coursera の Machine Learning の演習は、コスト関数とその最小化を自前で実装することになるのでなかなか大変だけど、python の sklearn を使うと交差検定含め、ものすごくカンタンに書ける。 import numpy as np import sklearn.datasets as datasets from…

nginx try_filesディレクティブ

nginx の try_files ディレクティブについての備忘録。 Syntax Syntax: try_files file ... uri; try_files file ... =code; Default: — Context: server, location Module ngx_http_core_module 書かれていることを箇条書きでまとめると... 指定された順序…

sshできるdockerコンテナをつくるために最低限必要なこと

3ヶ月ぶりにDockerを触ったのですが、全てを忘れていて愕然としたので最低限必要なことをメモしておきます。 ホストOSは Mac OS X です。 Getting Started Get Started with Docker for Mac OS X に立ち戻るのが基本です。 以下、Docker Toolbox をインスト…

Mac OS X でのpyenvによるpython環境構築

pythonで機会学習入門するために Mac OS X に環境構築したので、メモを残しておきます。 1. pyenv と pyenv-virtualenv のインストール brew install pyenv brew install pyenv-virtualenv 2.bashrcの設定 # pyenv [[ -s "$HOME/.pyenv" ]] && export PYENV_…

InnoDBのロックに関する記事まとめ

InnoDBのロック機構どうなってたっけ?? と思ったら、読み返したい記事たち。 14.2.6 InnoDB のレコード、ギャップ、およびネクストキーロック https://dev.mysql.com/doc/refman/5.6/ja/innodb-record-level-locks.html MySQL InnoDBのネクストキーロック …

opensslコマンドで証明書を確認する

ssl

自分用メモです。 OpenSSL の s_client コマンドを使うと、SSL/TLS クライアントとして リモートホストに接続できます。 The s_client command implements a generic SSL/TLS client which connects to a remote host using SSL/TLS. It is a very useful di…