読者です 読者をやめる 読者になる 読者になる

「ゼロから作る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…

ActiveRecord の with_options に関する注意書き

with_options (Object) - APIdock にて、ActiveRecord の with_options について注意書きが書かれていたのでメモ。 和訳はちょっと雑です。 with_options はネストすることができ、receiver に引き継がれます。 メモ: ネスト階層は継承したデフォルトオプシ…

/etc/shadow の password field

/etc/shadow の password field に出現する "!" や "*" についてのメモ。 MAN USERMOD(8) OPTIONS The options which apply to the usermod command are: -L, --lock Lock a user's password. This puts a '!' in front of the encrypted password, effectiv…

deploy:assets:backup_manifest が失敗する

Rails を 4.2.0 から 4.2.4 にアップグレードしようと capistrano でデプロイしたらエラーが発生した。 INFO [e43c382f] Running /usr/bin/env cp /home/myapp/myapp/releases/20150916085015/public/assets/manifest* /home/myapp/myapp/releases/201509160…

thorでサブコマンドを指定しない方法

thorは CLI を作成するのによく使われる gem (らしい)ですが、サブコマンドを指定せずに実行する方法が Github Wiki や 公式サイト に見当たらず、小一時間悩んだのでメモっておく。 例えば こんなことがやりたい。 $ bin/cli.rb -l ja world こんにちは w…

Rails で発生した Error を NewRelicに通知する

Rails アプリでは newrelic_rpm を Gemfile に書いておけば、よしなにエラーを NewRelic のダッシュボードに通知してくれます。 が、 rescue_from Exception, with: :render_500 def render_500(e = nil) logger.error e render file: 'public/500', status:…

XMLにおいて アンパサンド(&)はエスケープが必要

xml

基本的すぎる話かもしれないが... sitemap_generator で XML を生成していて気付いた。 サイトマップ ファイルは UTF-8 エンコードで作成する必要があります (ファイルを保存すると、通常は UTF-8 エンコードで保存されます)。 他の XML ファイルと同じよう…

sitemap_generator + whenever + S3 で サイトマップを配信する

Rails - sitemap_generator + whenever + S3 で サイトマップを配信する - Qiitaqiita.com

ActiveRecordのestablish_connectionを読む

ActiveRecord における DB との接続確立方法をきちんと理解できてなかったので、pry-byebug を使いながらコードを読み解いてみる。 Railsのversion は 4.2.0 という前提で。 establish_connection [Ruby] 例えば、ActiveRecord の connection_pool を止める …

ブロードキャストなICMP Echo Requestを無視する

OSはUbuntu 14.04。 結論から書くと、 echo "net.ipv4.icmp_echo_ignore_broadcasts=1" > /etc/sysctl.d/60-icmp-echo.conf service procps start でOK(のはず)。 設定前 $ ping 192.168.33.255 PING 192.168.33.255 (192.168.33.255): 56 data bytes 64 b…

White Paper : いまさら聞けない、SSL サーバ証明書とルート証明書の関係 - Symantec

分かりやすくまとまってるので、ふと忘れてしまった時に。 https://www.jp.websecurity.symantec.com/welcome/pdf/wp_sslandroot-certificate.pdf ついでに CSR についてもメモっておく。 CSRとは、お客様が生成し、認証局に提出する署名リクエスト(Certifi…

Ubuntuにおけるinitと起動方法

sysvinit, upstart, systemd, update-rc.d, insserv の関係性・歴史的背景がよくわからなくていろいろ調べたので、メモしておく。 基礎知識 sysvinit とは? sysvinitはSystemV initの略で,UNIX SystemV(システムファイブ)と呼ばれるAT&T社謹製の古典的な…

Active Record のvalidation と error message 対応表

とりあえず memo。 対応表 Rails Internationalization (I18n) API — Ruby on Rails Guides

Mac + VirtualBox + Vagrant で MySQLのレプリケーション環境構築

MySQLのレプリケーションを手軽に試す環境が欲しいなぁと思い、Vagrant を使って複数のGuest OSを立ち上げてみることにした。 Environments Host OS: 10.10.3(Yosemite) VirtualBox: 4.3.26 Vagrant: 1.7.2 Guest マスター・スレーブ 1台ずつで。 OS: Ubuntu…

railsのルーティングエラーを捕捉する

特に何も設定せずとも routes.rb にマッチしなかったリクエストは rails がエラーにしてくれますが、ログに書き出す等の特別な処理を差し込みたい時にはルーティングエラーを捕捉する必要があります。 少々苦戦したので、忘れないようにメモしておきます。 …

memo: Railsで、とあるRSSを生成した際のbuilder

「:」付き要素を生成したり、キャッシュを使ったり、アレコレ調べて苦労したので、自分用メモとして残しておく。 # feed.rss.builder xml.instruct! xml.rss version: "2.0", "xmlns:dc" => "http://purl.org/dc/elements/1.1/" do xml.channel do xml.title…

utf8_unicode_ci から utf8_general_ci に一括ALTERする

だいぶ前ですが、Rails の config/database.yml で collation を指定し忘れて、全てのテーブルが utf8_unicode_ci になってしまいアタマを抱えるという事件がありました。 なぜこれで困るのかについては、 Rails - ActiveRecordでデフォルトの照合順序を変更…

loadイベントについて調べてみた

理解が十分でなかったので、loadイベントについてきちんと調べてみた。 DOMContentLoaded と load の違い まずはここから。 The DOMContentLoaded event is fired when the document has been completely loaded and parsed, without waiting for stylesheet…

Railsのautoload_paths

autoload_paths について、きちんと調べてみました。 とは言うものの、Autoloading and Reloading Constants — Ruby on Rails Guides にほぼ知りたいことは書かれていたので、重要なポイントを抜粋しておきます。訳は適当です。 autoload_paths の デフォル…

Railsというかactive_supportのhtml_safe仕様

memo。 Active Support Core Extensions — Ruby on Rails Guides

APIを一覧から探せるサービス・記事

個人用memoですが。。 Mashape - Free API Management Platform & Marketplace ProgrammableWeb 国内向けだとちょっと古いけど... 日本の全エンジニアに捧ぐ!現在公開されているAPI一覧【2013年版】 | Find Job ! Startup

Rails 悲観ロック

Memo. ActiveRecord::Locking::Pessimistic

daemontools + start_server + unicornでhot deploy

「Server::Starterに対応するとはどういうことか」の補足 : sonots:blog daemontools + start_server + unicorn でのハマりどころと対策がまとまってて、とても助かった。 sonot++

submit_tag

memo. submit_tag(value = "Save changes", options = {}) confirm と disable_with は 3.2.3 までは options に定義していたが、3.2.5からは data属性に定義が必要になった模様。。 submit_tag (ActionView::Helpers::FormTagHelper) - APIdock

Bundler.setupとrequire

Bundlerの仕組みを十分に理解しているとは言い難かったので、深堀りしてみたい。 Bundler.setup http://bundler.io/bundler_setup.html Configure the load path so all dependencies in your Gemfile can be required まず最初にやるべきは依存関係にある全…

Programmable Web

api

ProgrammableWeb こんなサイトがあるのか。便利。

Rails4で廃止になった findメソッド群

オレオレメモ。 正式には Dynamic finder methods と呼ぶらしい。 Rails3 から Rails4 にアップグレードすると NoMethodError: undefined method `find_or_initialize_by_*****' というエラーが出ることがある。 こういう時は Ruby on Rails 4.0 Release Not…

Rubyにおけるライブラリロード

Ruby のライブラリロード周辺を理解してなかったので、調査&実験メモです。*1 環境 OSX Mavericks rbenv 0.4.0 + ruby 2.1.2 ロードパス を調べる $: でも $LOAD_PATHでも同じ。 $ ruby -e 'puts $:' /usr/local/Cellar/rbenv-gem-rehash/1.0.0 /Users/kota…

MySQL autocommit

MySQL の autocommit / start transaction についてちょっと調べる機会があったので、メモ。 以下、 MySQL :: MySQL 5.1 リファレンスマニュアル :: 12.4.1 START TRANSACTION、COMMIT、そして ROLLBACK 構文 より引用。 AUTOCOMMIT デフォルトにより、MySQL…