kaminariを使って外部APIのページネーションをする

外部のAPIから取得したデータをkaminariを使ってページングするときのメモです。 結論 kaminariのpaginate_arrayメソッドに、以下のように配列とtotal_countを指定することでできる。 @posts = Kaminari.paginate_array(配列, total_count: 総数) .page(現在…

jQueryで複数のフォームに文字数カウンターを表示する

文字数カウンターを複数フォームに表示するためのjQueryです。 コード HTMLは以下のようにします。 .input-field以下に文字数を表示する.input-field__countをつくり、データ属性(data-count)に最大文字数を設定します。 <div class="input-field"> <input type="text"> <div class="input-field__count" data-count="45"></div> </div> jQueryは以下のようにします。 …

RailsでRSSフィードを作成する:builder

Railsでbuilderを使ってRSSフィードを追加するためのメモです。 要件 Gemを追加しない ルーティングを指定できる 動的に更新できる 最終的には、http://example.com/feed/でRSSフィードを提供することが目的です。 今回は、上記の要件を満たすためにbuilder…

Rails5でコントローラー別に実行するJavaScriptを分ける

Railsでコントローラー毎に実行するJavaScriptを分けたいときの対応方法です。 対応方法としては、 コントローラー毎にファイルを作り読み込む ファイルは1つにしてコントローラー毎に実行するJavascriptを分ける という方法があるかと思います。 1の方法で…

日付や時間を数値として計算する方法

給与計算や時間あたりのコスト計算などで、日付や時間などの型のものを数値として計算したいという場合の対処法です。 日付計算の時のよくあるミス。 HOUR()やMINUTE()といった関数を使って計算するというパターン。これ自体は問題ないと言えばないのですが…

Scrapyをインストールしてバックグラウンドでスクレイピングするまで

1. Python2.7とpipのインストール まずはPythonをソースからインストールします。 $ yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel $ cd /usr/local/src $ wget https://www.python.org/ftp/python…

SassをMac(El Capitan)にインストールした時のエラー回避

「もうそろそろCSSをどうにかしたい…」と重い腰をあげSassを導入しようとした時に遭遇したエラーの内容と対処法をメモしておきます。 El CapitanのSassインストールエラー gemをアップデートしておきます $ sudo gem update --system sassをインストール。 $…

投稿時間と現在時間の差を表示する2つの方法

「◯分前の投稿」といった表示をWordPressでしたい時のメモです。 方法1.組み込み関数を使って表示する echo human_time_diff( get_the_time("U"), current_time('timestamp') ) . __(' ago'); ほとんどのケースはこれで大丈夫です。 この場合、日本語だと…

初心者でもできるイラストレーターを使った自作アイコンフォントの作り方

Web

高速化のためにアイコンフォントを導入しようと思い、自作アイコンフォントを作ったのでその作業メモです。 必要なものは、イラストレーターだけです。 アイコンフォントのメリットとCSSスプライト&SVGとの比較 作業の前にアイコンフォントについてのざっく…

TreeTaggerをインストールしてPython2.7で英語の形態素解析をしてみた

英語の形態素解析をするにあたり、TreeTaggerをいれてみました。 NLTK、Stanford NLPというのもあるそうなのですが、なんとなくTreeTaggerを選んでみました。 TreeTaggerをインストール /usr/local/srcにインストールする場合の例です。 公式サイトから必要…

rsyncでpermission denied (publickey) となった時の対処法

rsyncでローカル環境とリモートサーバーのディレクトリを同期したい! ということありますよね。そう思い、rsyncを使ってみたらつまずいた時の対処法です。 エラーの内容と原因 ローカル環境の現在のディレクトリと、リモートサーバーの/home/wwwを同期しよ…

Transient APIがW3TCでAPCを有効にすると動作しない件

Transient APIを使ってキャッシュをしようしても正常に動作しない。 環境と事象 環境: PHP 5.4.45 APC 3.1.15dev WordPress 4.3.1 W3 Total Cache 0.9.4.1 具体的な事象としては、 set_transient()をするとtrue get_transient()で保存したキャッシュを取得…

Crondの(CRON) bad commandエラーの対処法

cronを設定したはずなのに、動かない時の対処方法です。ログを確認する前にcronの状態とファイルパーミッションを確認します。 $ service crond status crondがrunning状態であることを確認。 $ ls -la また実行ファイル(シェルスクリプト)のパーミッショ…

Webhook+PHPを利用したGitデプロイ自動化

BitbucketのWebhook+PHPスクリプトによる外部サービスを使わない簡単なデプロイ自動化をしてみます。 今回の環境は以下のような感じ。nginxですが、ApacheでもSSHキーの部分を変更すれば対応できるかと思います。 ▼環境 Bitbucket CentOS 6 nginx php-fpm …

MySQLが「Fatal error: cannot allocate memory for the buffer pool」となり起動しない問題

開発環境のWordPressがいきなり「データベース接続確立エラー」となり、mysqlが起動しなくなってしまった時の対処法です。 原因:buffer poolのメモリ割当が少なかったせい mysqlを起動すると以下のようにエラーに。 $ service mysqld start MySQL Daemon fa…

innodb_log_file_sizeを変更した時のエラー対処

/tmp/my.cnfのinnodb_log_file_sizeを変更すると、エラーになりmysqlが起動できないという現象に。 mysqld.logを見てみると以下のようなエラーに。 InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes InnoDB: than specified in …

外部サーバーの画像参照のために画像のベースURLを変更する方法

例えば、ローカル開発環境をつくっていてデータベースは同期しているけど、画像などは重いからローカル環境に置きたくないという時の対処法です。 今回の簡単な要件 環境は以下のような状況とします。 ローカル開発環境 URL → http:/localhost 本番環境 URL …

Poeditを使った多言語化の翻訳ファイル作り方

WordPressを多言語化する必要があり、翻訳ファイルを作成しました。 WordPressではテーマの翻訳は基本的にlanguagesディレクトリに入れることとなっています。 そして、翻訳情報を入れたpoファイルとそれを元にコンパイルしたmoファイルの2つで1セットを使い…

とりあえず動かすとこまでの「Ansible入門」:nginx, php-fpm, mysql編

Chefよりも手軽に使えるということでAnsibleを試してみました。 今回は、nginx、php-fpm、mysqlを入れて、さらにmysqlでデータベースとユーザーを作成するところまでをやってみます。とりあえずの使用感を知りたかったので、Ansibleの環境はlocalhostです。 …

ドメイン移転した時のウェブマスターツールの設定変更の方法

SEO

ドメイン移転をした時に忘れがちなウェブマスターツールの設定方法を紹介します。 1. 新しいドメインのプロパティを追加 まずは、既に追加してある旧ドメインのプロパティとは別に、新しいドメインのプロパティを追加します。 ウェブマスターツールから「プ…

vimで日本語が文字化けした時に確認すべきこと&対処法

よくあるVimでの「文字化け」。 日本語がマルチバイトである以上、切っても切れない「文字化け」の対処法を紹介します。 文字化けファイルを開いて文字コードを確認 ここで確認する文字コードは、Vim本体の文字コードとファイルの文字コードです。 それぞれ…

Laravel4をCentOS6+nginx+PHP5.4でインストールする

PHP

最近人気があるLaravelを使うためのメモです。 【環境】 CentOS release 6.7 (Final) PHP 5.4.44 composerからLaravelをインストール composerを入れてない場合は以下のコマンドでインストール。 $curl -sS https://getcomposer.org/installer | php $mv com…

PHPで文字化けせずにCSVファイルを読み込む方法

PHP

CSVを読み込むと「文字化けしている…」ってことがよくありますよね。そんな時の対処法です。 文字化けせずにCSVファイルを読み込む まず、SplFileObjectでCSVファイルを読み込みます。 fgetcsv()でもいいのですが、参考にさせて頂いた「【PHP】その CSV 変換…

PHPでスクレイピング&本文抽出をする方法・ライブラリ

PHP

引用する記事のタイトル&本文の抜粋を取得したい! ということで、PHPでスクレイピング&本文抽出する方法を調べてみました。 [amazonjs asin=“4839956472” locale=“JP” title=“実践 Webスクレイピング&クローリング-オープンデータ時代の収集・整形テクニ…

Mecabにユーザー辞書を導入する(はてな、Wikipedia、ニコニコ大百科など)

PHP

Mecabにはてなキーワード、Wikipedia、ニコニコ大百科などを元にしたユーザー辞書を追加します。公式マニュアルはこちら。 ユーザー辞書を追加する流れは、 1.元データを取得してCSVファイルに変換 2.CSVファイルを辞書ファイルにコンパイル 3.Mecabの設定フ…

Mecabなど形態素解析で使うIPA品詞体系(品詞ID|pos-id)

PHP

Mecabや茶筅など形態素解析で使う辞書のIPA品詞体系をまとめてみました。 Mecabでは::getPosId()で品詞IDを取得できます。 [amazonjs asin=“4873114705” locale=“JP” title=“入門 自然言語処理”] IPA品詞体系 品詞ID 分類 例 説明 0 その他,間投 「あ」「ア…

初心者がvimをカスタマイズしてプラグインを導入するまで

vimをアップデート vimのバージョンが古くて一部のプラグインが使えなかったので、新しいバージョンのvimをインストールします。 ついでにneocompleteなどで使うので、Luaも有効化しておきます。 $ yum -y install mercurial $ yum -y install ncurses-devel…

リモートサーバーのファイルをSublime Textで開く方法

タイトルのままリモートサーバーのファイルをSublime Textで開く方法です。 sftpやsshfsを使ってリモートサーバーとローカルを同期させる方法もあるようですが、 ・ファイル同期を待ちたくない ・ローカルにファイルがいっぱいになるのが嫌だ ということでよ…

さくらのVPS(CentOS)にnginxリバースプロキシを入れて高速化する方法

さくらのVPSの初期設定から、nginxを入れてリバースプロキシの設定をするまでの手順を(自分用に)まとめました。 今回最も参考になったのは以下の本です。nginx以外の高速化の手法も豊富でおすすめです。 [amazonjs asin=“4844362526” locale=“JP” title=“W…

HTMLに埋め込まれた相対パスを絶対パスに変換する

スクレイピングをした時に、imgタグなどで埋め込まれている画像が相対パスで指定されている場合に絶対パスに変換する関数です。 もっとスマートなやり方がありそうですが。。。ほかの人が改善してくれることを期待して公開してみます。 相対パスのパターン …