【React, TypeScript】Firestoreでリアルタイムアップデート

自分用のメモ type MembersType = firebase.firestore.QueryDocumentSnapshot<firebase.firestore.DocumentData>[]; const Members = () => { const [members, setMembers] = useState<MembersType>([]); useEffect(() => { const unsubscribe = db .collection('members') .orderBy('createdAt', 'desc') .</memberstype></firebase.firestore.documentdata>…

ノーコード・ローコードまとめ

Webサービス・アプリ Webサービスやアプリとして提供されることを想定したサービス。 Adalo bubble Glide Thunkable Yappli Webサイト制作 主に企業サイトや静的サイトとしての利用を想定したサービス。 Webflow WordPress 社内ツール・業務アプリ 社内など…

WordPressでプラグインなしで記事ごとにnoindexを設定する方法

個別記事ごとにnoindexを設定したい場合のコードです。 add_meta_box()を使ってカスタムフィールドをサイドバーに追加します。 投稿の設定の場合、wp_postmetaテーブルにデータを入れることが多いと思いますが、投稿IDの配列だけ保存できれば良いので「ブロ…

MySQLで集計するときに使える小技

期間を分けて集計 過去7日間とその前の7日間を比較するといった場合は、CASE文が使えます。 クエリ SELECT CASE WHEN (DATE(m.created_at) >= DATE_ADD(CURRENT_DATE(), INTERVAL - 7 DAY)) THEN "過去7日間" ELSE "比較期間" END AS period, COUNT(DISTINCT…

Macにrbenvを入れてからRails + Vue.jsをインストールする

rbenvでRubyのバージョン管理 $ brew update $ brew install rbenv ruby-build $ rbenv --version rbenv 1.1.1 $ rbenv install --list $ rbenv install 2.4.1 $ rbenv global 2.4.1 $ rbenv rehash $ ruby -v ruby 2.4.1p111 (2017-03-22 revision 58053) […

AWS S3からほかのサーバーにファイルを一括でダウンロードする

AWS S3からファイルを一括ダウンロードするには、公式クライアントであるaws-cliが便利です。 ほかにもツールがあるようですが、今回の用途のためには公式ツール一択と考えて良いでしょう。 aws-cliをダウンロード S3からほかのサーバーにファイルを移行する…

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スクレイピング&クローリング-オープンデータ時代の収集・整形テクニ…