GitHub CLI で PR の作成からマージまでを行う流れ

GitHub の PR (Pull Request) の一連の処理を GitHub CLI で行う流れについてです。 効率はブラウザでやるのと大差無い気がしますが、ターミナルとブラウザのウィンドウを行き来しなくて済むので複数の PR を連続して処理したいときなどにじゃっかん楽な…

GCP で Compute Engine を定期的に停止する方法

GCP で Compute Engine インスタンスを定期的に停止する方法についてです。 記事執筆時点で次の 2 つの方法がありますが、 A の「インスタンススケジュール」の方がかんたんでお手軽です。 A. Compute Engine の「インスタンススケジュール」機能を使…

GCP で Container Registry のイメージを全件一括削除する方法

GCP で Container Registry のイメージを全件一括削除する方法についてです。 確認時のバージョン ブラウザの GUI でぽちぽちやるのでもよいですが の方がかんたんで速いです。 でタグの一覧を取得して で削除を行います。 間違うと危険なので暴発しないよ…

macOS ターミナルから音声ファイルを再生する方法いろいろ

macOS でターミナルから音声ファイル( mp3 など)を再生する方法についてです。 追加のインストールなど不要で手軽に使える方法が 3 つあります。 A) コマンド B) Quick Look C) QuickTime Player A) コマンド は macOS に…

GitHub CLI で Pull Request マージ後の自動ブランチ削除機能を有効化・無効化する方法

GitHub には Pull Request マージ後にブランチを自動的に削除できる機能があります。 GitHub CLI を使ってその機能を有効化・無効化する方法についてです。 この設定の切り替えはブラウザ UI でもできますが、対象のリポジトリが多いときなどはブラウザ UI…

ChatGPT のクローラ GPTBot を拒否する方法

サイト管理者が ChatGPT のクローラ GPTBot のサイトへのアクセスを拒否する方法についてかんたんにまとめました(情報量は OpenAI の公式ドキュメントからほとんど増えていません)。 GPTBot とは GPTBot は OpenAI 社が GPT モデルの学習の…

OpenSSH でローカルポートフォワーディングを行う方法

OpenSSH を使ってローカルポートフォワーディング( local port forwarding )を行う方法についてかんたんにまとめました。 先に結論ですが オプションを付けてコマンドを実行します: SSH ポートフォワーディングとは ネットワーク上のデータを SSH…

.xd ファイルの中身を Adobe XD を使わずに確認する方法

Adobe XD で作成された ファイルの中身を XD のアプリケーションが無い環境で確認する方法についてです。 先に結論ですが、アートボードなどをそのまま見ることはできませんがプレビューや画像素材などは(一部)閲覧できます。 記事執筆時点において ファイルの実体は ファ…

macOS を Ventura にアップデートした後に SSH 接続が失敗する問題

手元のマシンの macOS のバージョンを Ventura ( 13.2 )にあげてから SSH が接続できなくなりました。 問題 ひとつ前の Monterey で成功していた SSH 接続が Ventura にあげた後から失敗するようになりました。 オプションを付けたときの…

PHP の php.ini の中で環境変数を使う方法まとめ

PHP の設定ファイル の中で環境変数を使う方法についてかんたんにまとめました。 動作確認時のバージョン PHP: Docker イメージ: の中で環境変数を使う方法 の中で環境変数を使いたいときは という記法を使えば OK です。 ルールがいくつかあります: の…

Docker で HTTP / HTTPS プロキシを使う方法

Docker で HTTP / HTTPS プロキシを使う方法のまとめです。 といっても、 Docker 自体がプロキシ用の設定項目を提供しているので単純にそれを利用すれば OK です。 公式ドキュメントの次のページなどで説明されています。 HTTP/HTTPS proxy |…

Docker の公式 PostgreSQL イメージでの HEALTHCHECK 指定方法まとめ

Docker の公式 PostgreSQL イメージを使うときの の指定方法についてまとめました。 各種バージョン・イメージが違うとあてはまらなくなることがあるので、参考にされる際はその点留意してください。 確認時の環境 対象イメージ (タグ: ) macOS Doc…

Docker コンテナ内からホストのポートにアクセスする方法まとめ

Docker コンテナの中からホストのポートで動いているサービスにアクセスする方法についてのまとめです。 ホスト側からコンテナのポートにアクセスしたいときはシンプルにポートフォワーディングをして にアクセスすればよいですが、逆の、コンテナの中からホストのポートにアクセスしたい…

Git でバイナリ扱いのファイルの text diff を見る方法

Git においてバイナリファイルとして設定されているファイルの text diff を見る方法についてです。 確認時のバージョン Git 2.37.1 結論: オプションを付ける や のコマンド実行時に オプションをつければ OK です。 以下補足メモです。 Git の…

プログラミング言語の将来性の評価方法

プログラミングに興味のある方向けに「プログラミング言語の将来性を評価する方法」をご紹介します。 どうも Google 検索などで「プログラミング言語 将来性」といったキーワードでの検索ボリュームが多いらしく、プログラミングスクール系の会社がこぞって「プログラミング言語 将来性」…

GitHub Actions で複数行の文字列を output にセットする方法

GitHub Actions (以下 GHA )で改行文字を含む複数行の文字列をコマンドの output にセットする方法についてです。 追記 2022/11/16 output パラメータをセットする方法が を使った形から環境変数 を使った形に変更されたので各所更新しまし…

actions/github-script と composite アクションでカスタムアクションをかんたんに作れる

GitHub Actions 小ネタです。 と composite アクションを使えば、再利用可能なアクションかんたんに作ることができます。 前提 この記事は 2022 年 05 月に書きました。 時間が経つと GitHub Actions の仕様変更などで情報が古くなるので…

Safari や iOS 上のブラウザで border-radius で子要素をマスクできない問題

Safari で HTML を閲覧した際に、親要素に と を設定してあるのに子要素が の範囲をはみ出して表示されてしまう問題についてです。 追記: 親要素に を設定している前提の説明が抜けてしまっていたのでタイトルと本文を修正しました(コメントいただいた方ありがとうござ…

Laravel のキューの dispatchAfterResponse() の仕組みのまとめ

PHP のフレームワーク Laravel が提供するキューのジョブオブジェクトに というメソッドがあります。 少し前にこの仕組みについて調べたのですが、ウェブ上で参考になる情報があまり見つかりませんでした。 今回はこの 周りの仕組みについてかんたんにまとめておきます。 対象…

PHP-FPM のリクエスト処理後のタイムアウトの仕組みのまとめ

少し前に PHP の FPM (FastCGI Process Manager) のリクエスト処理後のタイムアウトの仕組みについて調べたのでかんたんにまとめておきます。 FPM で PHP を動かすと、 という関数が利用できます。 この関数はリクエスト処理を完了するためのも…

Next.js でのエラー Module not found: Can't resolve 'fs' の対処方法

Next.js で次のようなエラーが出たときの対処方法についてです。 確認時のバージョン Node.js 16.x Next.js 12.x / 11.x 問題 Next.js を実行すると(= や を実行すると)次のメッセージを含むエラーが出て処理が途中で止まってしまい…

Gatsby でパンくずリストを作る方法

Node.js ベースの SSG のひとつ Gatsby でパンくずリストを実装する方法についてかんたんにまとめました。 私は Gatsby で実装しましたが、基本的な考え方は他の SSG でも同じと思いますので他の SSG を使う方にも参考になるかもしれません。 対象バージ…

Docker Compose で NGINX の起動前に自己署名証明書を生成する方法

Docker Compose で NGINX を起動する前に SSL/TLS の自己署名証明書を生成する方法についてです。 この方法は、開発環境や確認用の環境において ではなく のアドレスで動作確認をしたいときなどに有用です。 確認時の環境 Docker: Docker …

MySQL ですべてのテーブルを一括で OPTIMIZE する方法

今日も小ネタで、 MySQL で特定のデータベース内のすべてのテーブルを一括で OPTIMIZE する方法についてです。 確認時のバージョン MySQL or MySQL ですべてのテーブルを OPTIMIZE する方法 早速結論ですが、 コマンドの オプションを使えば…

Cypress で特定のテストだけ実行する方法

Node.js のテスティングライブラリ Cypress で特定のテストだけを実行する方法についてです。 確認時のバージョン Node.js Cypress ファイル単位で絞り込む方法とファイル内のケース単位で絞り込む方法の 2 つの方法があります。 ファイルで絞り込む …

M1 Mac で Docker のビルドエラー fatal error: vips/vips8 への対処方法

M1 Mac ( Apple Silicon )で Node.js を使う Docker イメージのビルドで次のようなエラーが出るときの対処方法についてです。 サンプル 1: サンプル 2: 私は Node.js の NPM パッケージ を使うプロジェクトでこのエラーに遭遇し…

macOS でキーチェーンに保存されたパスワードをターミナルで利用する方法

macOS でキーチェーンに保存されたパスワードをターミナルで利用する方法についてです。 早速結論ですが、 のサブコマンド を使用することでキーチェーンのに保存されたパスワードを取得できます。 各オプションの意味: : サービス名でマッチ : アカウントでマッチ : 一連の…

SSH の秘密鍵のパスフレーズを変更・削除する方法

SSH の秘密鍵のパスフレーズを変更または削除する方法についてです。 これが必要になる度に検索して調べている気がするので自分用メモです。 早速結論ですが、コマンド を使えば OK です。 はパスワードを変更するためのオプションで、 は対象の秘密鍵を指定するためのものです。…

Docker for Mac の仮想マシンのディスクが壊れたときの対処方法

Docker for Mac の仮想マシン Linux のディスクが壊れてしまったときの対処方法についてです。 結論から言うと、トラブルシュートの「 Clean / Purge data 」を実行すれば OK です(ただし、ボリュームなどがすべて削除されてしまうので、削除される…

Docker Compose の bind mounts から node_modules を除外する方法

Docker Compose において bind mounts から Node.js のパッケージ格納ディレクトリである を除外する方法についてです。 主な使いどころとしては、開発環境において「 bind mounts を利用したいが ディレクトリはビルド時以外は触らない場…

GitHub Codespaces で WordPress を動かす方法

GitHub Codespaces 上で WordPress を動かす方法についてです( 2021 年 8 月時点の情報です)。 Codespaces にはポートフォワーディング機能が備わっており Codespaces 上で動かしたウェブサーバー・ CMS にブラウザからアクセ…

GitHub Actions で Dart Sass を使う方法

GitHub Actions で Dart Sass を使いたいことがあったのでその方法をまとめておきます。 前提 使用マシン: ( ) 方法 A. Homebrew を使う B. Dart Sass を直接ダウンロードする A. Homebrew を使う 記事執筆時点で …

Cypress のテストで Basic 認証をパスする方法

Node.js のテスティングライブラリ Cypress のテストで Basic 認証をパスする方法についてです。 確認時のバージョン 動作確認に使用したバージョンは次のとおりです: Node.js Cypress 1. とりあえず Basic 認証をパスする とりあえず …

静的サイトジェネレーターと相性のよいホスティングサービス一覧( 2021 年時点)

2021 年 7 月時点における「静的サイトジェネレーターと相性のよいホスティングサービス」をかんたんにまとめました。 「静的サイトジェネレーター」は長いので以下「 SSG 」と書きます。 選定基準は次のとおりです: SSG ・ Jamstack 界隈で有名 特定の SSG に…

Ansible Playbook で localhost でタスクを実行する方法

Ansible Playbook ( )で localhost (ローカル環境)でタスクを実行する方法についてです。 必要になる度に方法を調べている気がするので、ここにかんたんにまとめておきます。 環境 動作確認には以下のバージョンを使いました。 Python 3.9 (3.…

GitHub 上のリポジトリでコードの言語を設定する方法

Github 上に置いたリポジトリのコードを閲覧するときに、シンタックスハイライトに使われる言語を設定する方法についてかんたんにまとめておきます。 GitHub のコードの言語判定には Linguist というオープンソースのライブラリが使われていて(正確には「開発したライブラ…

Express アプリのテストの書き方

Node.js のフレームワーク Express を使ったウェブアプリケーション開発における自動テストの書き方をかんたんにまとめました。 利用ツール 今回は React ベースのプロジェクトでよく使われる Jest をテストフレームワークとして使います。 Node.js 16 …

Google Cloud Build の高速化 tips

Google Cloud Platform (以下「 GCP 」)の Cloud Build の処理を高速化するための tips をかんたんにまとめました。 情報はいずれも記事執筆時点のものです。 時間が経つとあてはまらなくなる部分も出てくるので、参考にされる際は注意してくださ…

Markdown のコードの中にバッククォートを含める方法

Markdown でバッククォート( )を出力する方法についてです。 インラインコード インラインの の中でバッククォートを使うには、 外側のバッククォートを 2 つずつにします。 出力: コードブロック に相当するコードブロックの中で 3 つのバッククォートを使うには…

Google Chat に自動投稿する方法

Google Chat のルームにプログラムで自動投稿する方法についてです。 事前に想像したよりかんたんであっけなかったですが、また次久しぶりにやるときに少し時間がかかるかもしれないので、かんたんに方法をまとめておきます。 Google Chat をプログラムから利用するパター…

Docker Compose の depends_on の使い方まとめ

Docker Compose の の使い方をかんたんにまとめました。 主に自分用のまとめですが、このあたりは公式ドキュメントの説明があまり充実していないので Docker Compose をよく使う方のお役に立つのではないかと思います。 前提 Compose ファイル( )…

GCP で処理を定期実行する方法

Google Cloud Platform (以下「 GCP 」)で特定の処理を定期的に実行する方法についてかんたんにまとめました。 GCP で処理を定期実行する方法の選択肢 GCP で処理を定期実行するための方法はいくつかあります。 A. Compute Engine インス…

スマートフォンのブラウザでフォントサイズがおかしくなる問題の対処方法

ウェブ制作者向けの小ネタです。 スマートフォンのブラウザでウェブサイトを開いたときに、指定したフォントサイズと異なるサイズで文字が表示されてしまう問題についてです。 問題 でフォントサイズを指定しているのに、 iOS や Android のブラウザでページを表示すると文字が大…

Node.js のパッケージをまとめて最新版にアップデートする方法

Node.js のパッケージをまとめて最新版にアップデートする方法についてです。 npm と Yarn を使った方法をそれぞれ説明します。 npm 記事執筆時点の npm の最新版 7.x には、パッケージをまとめて最新版にアップデートする機能は備わっていません。 代わりに …

React でウィンドウサイズが小さいときだけスライドショー表示をする方法

ピンポイントな小ネタですが、 React で「ウィンドウサイズが大きいときは画像をそのまま並べて、ウィンドウサイズが小さいときは画像をスライドショー表示する方法」についてです。 今回はスライドショーの例ですが、この方法は「画面幅によって出力コンポーネントを切り替える方法」として…

Homebrew で Error: homebrew-core is a shallow clone が出て brew update が実行できない問題

2020 年 12 月以降に Homebrew で をしようとすると次のようなエラーが出て処理が実行できないことがあります。 を利用している場合はそちらでも起こります。 Homebrew はこれまで Git リポジトリの shallow clone を利用してきましたが、 …

React の PropTypes.element と PropTypes.elementType の違い

JavaScript のフレームワーク React で使われる と の違いについてです。 両者には次の違いがあります。 意味 例 React エレメント React エレメントタイプ 関係としては がインスタンスで がクラスという捉え方でよいようです。 尚、確…

GCP の Container-Optimized OS でサイトを運用するときの tips

Google Cloud Platform (以下 GCP )の Container-Optimized OS で Docker を使ってサイトを構築・運用するときの tips 集です。 Container-Optimized OS を使うようになってしばらく経ったので利用時の…

axios で reCAPTCHA のレスポンストークンの検証を行う方法

JavaScript のライブラリ axios で reCAPTCHA のレスポンストークンの検証を行う方法をかんたんにまとめます。 reCAPTCHA は一般に次の 3 ステップで利用するものですが、今回はこのうちの 3 ステップめのサーバーサイドにおける処理が対象です。 (…

React Context API と useContext() の使い方

フロントエンドフレームワーク React の Context API と の使い方についてまとめました。 ウェブ上で見つかる Context API と についての説明は、読者にクラスコンポーネントの知識があることを前提としているものが多いようですが(私が見たものがたまたま…

Docker の MariaDB / MySQL イメージを使うときの tips

Docker で MariaDB / MySQL イメージを使うときのプチ tips をいくつかまとめました。 対象イメージは と ですが、他のバージョンのものでも使えることが多いと思います。 目次 日本語サポートを改善する データベースをダンプする データベースをリストア…

GitHub Actions で WordPress のプラグインを自動更新する方法

GitHub Actions を使って WordPress のプラグインを自動的に更新する方法をご紹介します。 より正確に言うと「 Git でコードを管理している WordPress サイトのプラグインを GitHub Actions で更新する方法」というお話です。 前提 以…

Google Cloud Platform で特定の国からのアクセスをブロックする方法

Google Cloud Platform で特定の国からのアクセスをブロックする方法についてです。 直接国を指定してブロックする方法は用意されていないので、 まずブロックしたい国の IP アドレスの範囲を特定してから、それらをファイアウォール機能で全件ブロックする というアプ…

JavaScript で File オブジェクトの画像のサイズを取得する方法

JavaScript で オブジェクトとして保持された画像ファイルのサイズ(幅・高さ)を取得する方法についてです。 Node ではなくクライアントサイドの JavaScript でのお話です。 早速結論ですが、 オブジェクトを生成して にそのファイルの中身をセットし、 …

Git でデフォルトのブランチ名を master 以外に変更する方法

Git で 後に最初のコミットをすると自動的に作られるブランチの名前を 以外に変更する方法についてです。 早速結論ですが、設定項目 を使えば OK です。 次のようにするとデフォルトで作られるブランチの名前が になります。 適当にリポジトリを作ってコミットすると設定した…

Next.js を使った Jamstack なブログの始め方

今回は Next.js を使って Jamstack なブログを作る方法を紹介します。 ゴール 本チュートリアルでは最終的に以下の構成のブログサイトを作ります。 ページ構成 「フロントページ」「投稿一覧ページ」「投稿詳細ページ」の 3 つだけのシンプルな構成です。 投稿の管理方法…

Gatsby 公式のプラグイン・テーマまとめ

React ベースの静的サイトジェネレータ( SSG )である Gatsby が公式に提供するプラグインとテーマについてまとめました。 正確には、公式の monorepo リポジトリ ↓ で管理されているプラグインとテーマを一覧にしました。 記事執筆時点で monorepo に…

GitHub のリポジトリのデフォルトのブランチ名を変更する方法

先日 GitHub の CEO が、 GitHub で作成されたリポジトリのデフォルトブランチに奴隷制を連想させる という名前を使うのをやめて代わりに を使っていく旨の発言をしました。 "Nat Friedman on Twitter: "@Una @github It's…

GitHub Actions ワークフローで処理を定期実行する方法

GitHub Actions で特定の処理を定期的に実行する方法についてです。 公式のドキュメントに方法が書かれているのですが、情報があちこちに散っているのでかんたんにまとめました。 トリガーイベントを使う 早速結論ですが というトリガーイベントを利用すれば OK です。 …

Gatsby で Google Analytics Reporting API を使って人気の投稿一覧を作成する方法

今回は静的サイトジェネレーターの Gatsby を使ったプロジェクトにおいて Google Analytics Reporting API v4 を使って投稿一覧を作成する方法を紹介します。 前提 今回は 2020 年時点で最新の Reporting API v4 を使います。…

cron の処理が期待どおりに動かないときの対処方法まとめ

cron の処理が思いどおりに動かないときの対処方法についてかんたんにまとめます。 cron の基礎知識 以下 cron を利用する上での前提知識です。 cron ではシェルのスタートアップスクリプトが通常読み込まれない 結果としてシェルで通常利用できる環境変数やコマンドが利用…

Next.js と Gatsby の比較

最近 React ベースのフレームワークである Next.js と Gatsby を使っています。 ある程度客観的に比較できるだけの知識がたまったと思うので、 Next.js と Gatsby の比較情報をまとめてみました。 これからどちらを使うか・学ぶか迷っている方のご参考に…

Git の管理対象外のファイルのみ表示する方法

Git の小ネタで、 Git で管理されていないファイルのみを一覧表示する方法についてです。 早速結論ですが、 コマンドを使えば OK です。 は Git 管理下のファイルを一覧表示するためのコマンドです。 通常は管理されているファイルの一覧を返すのですが、 オプションを…

React の state hook で array を更新しても再描画がされない問題

JavaScript のフレームワーク React に関する小ネタです。 掲題のとおり「 state hook で array を扱っているときに、 array を更新してもコンポーネントの再描画が起こらない」という問題についてです。 今回動作確認に使った React のバージ…

PHP の Multiple access type modifiers are not allowed というエラーの対処方法

PHP の小ネタです。 PHP のコードを実行しようとすると次のようなメッセージの Fatal error が出て処理が止まることがあります。 これはクラスのメソッドやプロパティのアクセス修飾子( / / )を複数重ねて付けていると発生するエラーです。 エラーはクラス定義…

Drupal 7 から WordPress への移行方法

今回は Drupal 7 から WordPress への移行方法についてまとめたのでそのことを書きます。 なぜ Drupal 7 から WordPress に? Drupa 7 は 2021 年の 11 月に 公式のメンテナンスが終了することが決定しています(追記: その後 1…

WordPress のバージョニングとリリースサイクルまとめ

WordPress (ワードプレス)のバージョニングとリリースサイクルについてかんたんにまとめます。 最初に用語の意味を明確にしておきます。 バージョニング: バージョン番号付け リリースサイクル: バージョンが上がる周期やプロセス 尚この記事を書いた時点での WordPres…

docker-compose up で一部のサービスを除外する方法

追記 2021/03/25: を使った方法について追記しました。 Docker 小ネタで、 コマンドで一部のサービスを除外する方法についてです。 動作確認時点の Docker と Docker Compose のバージョンは次のとおりです。 : 19.03.5, build…

バリュードメインから Google Domains へのドメイン移管方法

バリュードメインから Google Domains にドメインを移管する方法のかんたんなまとめです。 最近所有するドメインのいくつかをバリュードメインから Google Domains に移管したので、そのかんたんなまとめです。 この情報は 2020 年 1 月時点のものであり…

e-Tax ソフト( WEB 版)のログインページが読み込み中のまま開かない問題

e-Tax ソフト( WEB 版)のページを開くと、画面に「読み込み中です...」と表示されたままでいくら待っても操作できるようにならない問題についてです。 以下に述べるものがこの問題の唯一の原因かどうかはわかりませんが( e-Tax ソフトはいろいろひどいため他にもいろんなバ…

Gatsby で gatsby-theme-blog を使うときの tips

Gatsby 公式のブログ用テーマ を使うときの tips 集です。 追記 2020/07/29: この説明は のバージョン 系に対するものです。 2020 年 7 月にリリースされた にはあてはあまらない部分もありますのでご注意ください。 Gatsby の theme…

PHP で文字列が正の整数かどうかを判定する方法

PHP で 与えられた文字列が正の整数と解釈できるかどうかをチェックする方法 についてです。 尚 PHP のバージョン で動作確認をしました。 バージョンが違うとそのまま使えないこともあると思うので、参考にされる際はご注意ください。 PHP だとこんな単純なことでも手間がかか…

OGP image 画像のサイズ仕様( 2020 年時点)

Twitter と Facebook のリンクのカード表示に使われる OGP (Open Graph Protocol) の画像のサイズ周りの仕様をかんたんにまとめました。 自分用メモなので箇条書きです。 この情報は 2020 年 1 月に確認したもので、将来的に変更される可能…

脱 Drupal 7 の進め方

Drupal 7 から他のプラットフォームに移行する方法についてまとめました。 Drupal 7 は公式のメンテナンスが 2021 年 11 月に終了することが決定したため、 2020 〜 2022 年の間に脱 Drupal 7 を必要とするサイトがたくさん出てくるものと思いま…

Docker のターミナル出力が変なところで折り返される問題

Docker の標準出力が変な文字数で折り返されて表示される問題の解決方法についてです。 原因 ホスト側のターミナルの幅の情報が Docker コンテナの方に渡されないことが原因です。 対処方法 以下のような形で環境変数を使ってカラム数を指定すれば、ホスト側のターミナルの幅が …

JavaScript の formdata イベントのまとめ

JavaScript (以下 JS )の イベントについて簡単にまとめました。 イベントとは イベントは HTML のフォーム( )の送信処理の直前に発火するイベントです。 従来の イベントよりも後のタイミングで発火します。 セットされたイベントハンドラは同期的にディ…

JavaScript で日本語の変換確定とその他のリターンを識別する方法

HTML のテキストフィールドやテキストエリアで、日本語の変換を確定させるためのリターンキー(エンターキー)入力とその他のリターンキー入力とを JavaScript で識別する方法についてです。 早速結論ですが、イベント と を使えば OK です。 イベント は変換処理が…

JavaScript の配列の操作まとめ

JavaScript の配列の基本的な操作方法についてまとめました。 仕事で JavaScript (以下 JS )でコードを書く機会があるのですが、触る頻度が低いため基本的な処理の仕方を覚えて忘れてまた覚えてを繰り返しています。 特に配列については他の言語でも使い方が似ている…

O'Reilly Online Learning を半年使ってみた

追記 2022/08/04: タイトルの「 O'Reilly Safari 」を「 O'Reilly Online Learning 」に変更しました。価格以上の価値を得ているのでその後も使い続けています。 追記 2020/06/13: その後も使い続けています。今は名前から「…

macOS で .DS_Store を除外して zip ファイルを作成する方法

macOS で ファイルを除外して zip ファイルを作成する方法についてです。 コマンドの オプション コマンドには というオプションがあり、これを使うと除外対象を指定することができます。 これですべての階層の を指定すると OK です。 以下サンプルです。 を…

WordPress Gutenberg でエラー「更新に失敗しました」が出る問題の解決方法

問題 WordPress の管理画面で、 Gutenberg エディタ(ブロックエディタ)を使ってポストを更新しようとすると「更新に失敗しました」というメッセージが出ます。 しかし実際には投稿は適切に更新されていて、エラーメッセージが間違って表示される状態です。 対象バージョン…

PHP で小数点以下の桁数を指定して切り上げ・切り捨てする方法

PHP で少数点以下の桁を指定して数値を切り上げ・切り捨てする方法についてです。 尚、今回動作確認には PHP のバージョンの を使用しました。 組み込み関数 PHP では、数値を丸めるための組み込みの関数として次のものが用意されています。 名前から想像がつくとおり …

git log で特定の期間のログだけを出力する方法

Git の コマンドで期間を絞ってログを出力する方法についてです。 歴史が長くコミットの多い OSS のコミットログを見たいとき等に便利です。 早速結論ですが、以下のオプションが使えるのでこれを利用すると OK です。 特定の日時 以降 のものに絞る: 特定の日時 以前 のも…

ウェブシステムをウェブフレームワークと CMS のどちらで作るべきか

ウェブシステム開発の際のプラットフォームの選択肢としてウェブアプリケーションフレームワーク(以下「フレームワーク」)と CMS がある場合、どのように使い分けるのがよいのでしょうか。 今回はこの「 フレームワークと CMS の使い分け問題 」についてかんたんに整理してみたいと思…

PHP の static と self の違い

PHP の と の違いについてです。 基本中の基本なのですが、 PHP を書かない日が続くとどちらがどちらなのか忘れてしまい調べ直すことしきりなので、メモとして残しておきます。 まとめ は 実行時 のクラスを指す は 定義時 のクラスを指す 詳細説明 は実行時の文脈で…

macOS を Mojave にあげた後に Homebrew を使うとエラーが出る問題

掲題のとおり、 macOS を Mojave にアップデートした後に Homebrew を使うとエラーが出る問題についてです。正確にはエラーが出て使えないので「使おうとすると」です。 問題 Mojave にあげた後に Homebrew を使ってパッケージをインストールしようとす…

PHP で callable なプロパティを呼び出す方法

PHP の小ネタです。 PHP において「 callable なオブジェクト が別のオブジェクト のプロパティとして格納されているときに、 をどのように呼び出せばよいのか」についてです。 サンプルとして、インスタンスが callable な クラスがある場合を考えます。…

How to set field default values programatically in Drupal 7

I'd like to share a way to set default values of fields to new nodes (more generally "entities") programatically in Drupal 7. At the time w…

PHP で入れ子の配列の中身を再帰的に変更する方法

PHP で入れ子の配列の中身を再帰的に変更する方法について説明します。 PHP でコードを書いているとときどきやりたくなることがあるのですが、サッと実装できずに時間がかかったりするのでやり方をまとめておきます。 課題 入れ子の配列 があり、その中にキーが で、値が配列になっ…

自動テストのスタブ・スパイ・モックの違い

ソフトウェアの自動テストで使う代品オブジェクト――いわゆる「 テストダブル 」の種類についてまとめました。 タイトルには「スタブ」「スパイ」「モック」の 3 つだけをあげていますが、他にも「フェイクオブジェクト」と「ダミーオブジェクト」に言及しています。 お断り この記事の説明…

CMS Drupal の現状と今後の予測( 2018 年 6 月時点)

2018 年 6 月時点での Drupal の現状の整理と今後( 3 〜 5 年)の展開予測 をしてみました。 このあたりの認識をそのときどきで記録しておくと後々おもしろそうなので分析のエクササイズがてら書き残してみます。 英語圏も含めてこのタイプのまとめをしている人はあまりい…

Git で管理下にあるファイルのみをステージングする方法

Git リポジトリで、新しいファイルは追加せずに、すでに Git で管理されているファイルの変更及び削除のみをステージングする方法です。 ファイルを選り分けてひとつずつ するのが億劫なときに便利です。 確認時の Git のバージョンは です。 新しいファイルは除外して、 G…

PHP の整数の最大値周りの挙動

PHP の整数の最大値周りの挙動についてまとめてみます。 整数の最大値に関連する定数 PHP には整数の最大値に関連した定数として次の 3 つがあります( PHP の最新バージョンが 7.2 である 2018 年 5 月時点の認識です)。 : integer のバイト数( PH…

Git のリモートリポジトリで削除されたブランチをローカルから削除する方法

Git で、リモートリポジトリで削除済みの不要なブランチをローカルから削除する方法についてです。 早速結論ですが、まさにそのための があるのでこれを利用すれば OK です。 は次のように使用します。 例えば、対象のリモートが の場合は次のとおりにします。 実際の削除処理は…

git apply を dry run する方法

Git の コマンドを、実際にファイルを変更することなく事前にチェックしたいことがあります。 そういうときに取りうるオプションとしてどんなものがあるかをまとめました。 尚、今回の動作確認には Git のバージョン を使用しました。 a) パッチが問題なく適用できるかどうかを…

Sublime Text 3.1 リリースと新しいカラースキームフォーマット

先日 Sublime Text のバージョン 3.1 がリリースされました。 Sublime Text 3.1 Released - News - Sublime Text ニュースサイトで紹介されているのはいくつか見かけたのですが、実際に使っている人が日本語で言及している記事…

プログラマのためのフロー理論のすすめ

今回はプログラマの方向けに「フロー理論」の紹介をしてみたいと思います。 このブログではあまり長文を書きませんが、今回は長文です。 …… 日々プログラムを書いたり読んだりしているとつくづく私は「プログラミングはスポーツや楽器の演奏に似ているなぁ」と思います。 プログラミングとスポ…

Mac の SSH の設定ファイルで IgnoreUnknown で複数のオプションを指定する方法

OS のバージョンの異なる複数の Mac で SSH の設定ファイルを共有していると、各マシンで利用できるオプションの違いのために、エラーで コマンドが実行できなくなることがあります。 私の場合は、 と の 2 つのオプションが存在しないということで コマンドが実行でき…

ふだん Markdown を書く技術者のための reStructuredText 文法まとめ

ふだんは Markdown を書いていて、稀に reStructuredText を書く必要がある技術者(私です)のための reStructuredText 文法まとめです。 reStructuredText のすべてを網羅するのではなく、あくまで「 Markdown にある機…

GitHub API v3 でプライベートリポジトリの情報が取れない問題の解決方法

GitHub API v3 を使っているときに、プライベートリポジトリの情報が取得できない問題の解決方法についてです。 問題 Personal access token を取得して GitHub API v3 (REST API) でリポジトリの情報を取得しようとすると、プライ…

GitHub にリポジトリを追加する方法のパターン別まとめ

GitHub にリポジトリを追加する方法についてパターン別にまとめてみます。 このあたりは Git 歴が短めの方や、 Git には慣れているが GitHub に馴染みの薄い方などには少しわかりづらいところかと思います。 そのような方はぜひ参考にしてみてください。 前提 GitH…

Git で git pull するとマージすべきブランチがわからないと言われる場合の対処方法

Git の基本になりますが、 コマンドを実行すると次のようなメッセージが出て処理が走らないことがあります。 Git は、 の基本形である の と が省略された場合「カレントブランチの upstream からカレントブランチに pull する」という挙動にフォールバック…

CSS でクラス指定の無い要素にのみスタイルを適用する方法

CSS の小ネタです。 CSS で 属性での指定が無い要素にのみスタイルを付ける方法についてです。 この方法はハックでも何でも無いのですが、個人的には目からウロコでした。 これを使うと、規模が大きめのサイトの CSS で起こりがちな「スタイルリセット地獄」を回避でき、 CSS…

Modern JS Cheatsheet リポジトリを翻訳しました

ECMAScript の ES6 あたりのポイントがわかりやすくまとめられた GitHub リポジトリ「 Modern JS Cheatsheet 」を日本語に翻訳しました。 翻訳の PR をオリジナルのリポジトリにマージしてもらえたので、以下のページで日本語版を閲覧することが…

Git でリモートに push 済みのコミットを amend したときの対応方法

Git でリモートに push した後のコミットを、ローカルで で変更してしまった場合の対応方法についてです。 凡ミスにより年に数回はこの状況に遭遇するので、やり方をまとめておきます。 対応オプション 対応方法のオプションがいくつかあります。 a. に ( )オプション…

2017 年リリースのスター 1 万越え GitHub リポジトリ

早いもので 2017 年もあとわずかですね。 今年のソフトウェア関連のトレンドを振り返ってみようと思いたち、年内リリースの GitHub 人気リポジトリについて興味を持ち、調べてみました。 具体的には、「リポジトリの作成日が 2017 年」で、「スター数が 10,000 個以上…

Drupal サイトでモジュール一覧を csv で取得する方法

今回も Drupal の開発ネタで、掲題のとおり「 Drupal サイトで利用されているモジュールの一覧を csv として取得する方法 」についてです。 個人的には、サイトの引き継ぎのときや、モジュールのアップデートをまとめてかけたいときに、モジュール一覧をスプレッドシートで管…

ウェブフレームワークと CMS の特徴と違い

今回は、ウェブ技術者以外の方に向けて、サイト構築に利用される 2 つの技術「ウェブフレームワーク」と「 CMS 」について、その特徴と違いを説明してみます。 最初に「フレームワーク」「 CMS 」それぞれの説明をした後に両者の違いについて見ていきます。 フレームワークとは CM…

Drupal のモジュール構成パターンあれこれ

今回は CMS の Drupal を使った開発に関する少しマニアックなお話です。 Drupal を使ったサイト制作において「カスタムモジュールをどのように分割するか」というのはそのサイトの中長期のメンテナンス性に影響する重要なポイントです。 一般に、 Drupal 上で A と…

サイトやシステムの見積もり金額はなぜ業者によって大きくちがうのか

今日はウェブ制作を行う側の立場から ウェブ制作費やシステム開発費の見積もりはなぜ会社によって大きく差が開くのか ということについて書いてみたいと思います。 なぜウェブ制作費用の見積もり金額は会社によって大きくちがうのか。 その理由は細かく数え上げればたくさんありますが、最も影響…

Git の「バウンダリーコミット」とは

Git のコマンドの説明を読んでいると、ときどき「バウンダリーコミット」( boundary commit )ということばが出てくることがあります。 「バウンダリーコミット」。 パッと検索してみましたが日本語での説明がなかなか見つからないので、私が理解している範囲のことをかんた…

Mac の Chrome でコピーをするとフリーズする現象の解決方法

Mac で Google Chrome を使っていると、テキストをコピーしたときに高い頻度でフリーズします。 「動作が遅い」というよりは「固まる」と表現する方が適切な感じの挙動で、長いときには 5 秒以上動作を受け付けなくなります。 私の体感では、特に Google のスプレッ…

MySQL で各データベースのサイズをチェックする方法

MySQL のデータベースのサイズを確認する方法について。 データベースサイズを調べるクエリについてはなんだか定期的に調べている気がするので、メモとして残しておきます。 こちらを実行すると次のような形でデータベースのサイズが一覧で表示されます。 参考 How to Get Tr…

Git で最初のコミットも含むすべての差分を取得する方法

Git で最初のコミットも含む差分をすべて取得する方法についてです。 Git の最初のコミットの内容は で確認できますが、それを diff として出力したい場合があります。 また、最初のコミットも含めて一連のコミットの変更内容を確認したくなる場合もあります。 そんな場合にはハ…

PHP の Flysystem の使い方まとめ

PHP でファイル操作のためのシンプルな API を提供する Composer パッケージ「 Flysystem 」の使い方をまとめてみました。 Flysystem は「さまざまなストレージを共通のインタフェースで扱えること」が大きな特徴のひとつですが、ローカルのストレージに…

PHP の型キャストの挙動のまとめ

PHP には、他の言語にもよくある「型キャスト」( typecasting )の機能があります。 正しく使えればきっと便利な機能なのですが、 PHP の場合は直感的ではない挙動をする場合がかなり多いので、使うときは細心の注意が必要です。 代表的なパターンを以下にかんたんにまとめ…

Drupal 8 の #markup のエスケープを避ける方法

Drupal 開発ネタです。 Drupal 8 には前のバージョン Drupal 7 と同じ という要素タイプが存在しますが、この挙動は Drupal 7 とは少し異なり、 の中身にも一定のオートエスケープがかかるようになっています。 今回はこのオートエスケープを避ける方法…

Git の 1 文字エイリアスでも自動補完を効かせる方法

私はふだん コマンドの利用頻度が多いので、 コマンドの 1 文字エイリアス をよく使っています。 1 文字エイリアスは一度慣れたらとても快適ですが、 Tab による自動補完が効くようにするとますます快適でやめられない止まらない状態になります。 私の場合は Mac で Ho…

Mac で複数の URL をまとめて開く方法

Mac で複数の URL (ウェブページ)をまとめて開く方法をご紹介します。 1 行 1 URL の形で数件の URL があった場合にそれらをまとめて開きたくなることが、ウェブ関連の仕事に携わっている方であればあるものと思います。 私の場合は、サイトマップをスプレッドシートで作…

Apache 2.4.25 以降でホスト名のアンダースコアで 400 が出る場合の対処方法

Apache の 2.4 系では、ホスト名にアンダースコア( )が含まれるパターンがバージョン 2.4.25 より禁止されました。 そもそも、 RFC 的にアンダースコアはドメイン名に含むことができないものとされていますが、バージョンの低い Apache ではそれに反してアン…

How to create a collapsible widget on Drupal 8

There's a new render element type named which is for creating a collapsible widget in Drupal 8. is similar to the existing Form API elem…

Sublime Text 3 のパッケージ ComposerPackageInfo をリリースしました

「 ComposerPackageInfo 」という名前の Sublime Text 3 用パッケージをリリースしました。 ComposerPackageInfo - Package Control gh640/SublimeComposerPackageInfo - Git…

個人的によく使うパッケージマネージャのパッケージ更新方法まとめ

ウェブ開発の仕事で などの パッケージマネージャのお世話になることが多いのですが、サブコマンドがちょっとずつ異なるためよく間違えます。 月に数回は検索している気がするので、個人的なメモとしてよく使うパッケージマネージャのパッケージ更新方法をまとめておきたいと思います。 …

Drupal 8 プラグイン その 3: カスタムプラグインタイプの作り方

前回と前々回に引き続き CMS 「 Drupal 」のバージョン 8.x で導入されたプラグインのお話です。 Drupal 8 プラグイン その 1: プラグインの作り方 Drupal 8 プラグイン その 2: プラグインデリバティブの作り方 前々回は Drupal 8 にお…

Drupal 8 プラグイン その 2: プラグインデリバティブの作り方

前回に引き続き CMS 「 Drupal 」のプラグインについて解説します。 前回はプラグインとは何ぞやという概念的な部分とプラグインの作り方について説明しました。 Drupal 8 プラグイン その 1: プラグインの作り方 今回はプラグインシステムのいち機能である「 プラグ…

Drupal 8 プラグイン その 1: プラグインの作り方

Drupal 8 で新たに導入された「 プラグイン 」の概念とその作り方について解説してみたいと思います。 まずはじめに Drupal 8 のプラグインとは何ぞやという概念の説明をした後に具体的な実装方法について説明していきます。 本稿では執筆時点で最新の Drupal 8.3…

Libraries included in Drupal 7 core

There're many JavaScript libraries included in the Drupal 7 core. Many of them are rarely used in custom modules (I haven't used many of th…

How to use EntityFieldQuery's entityCondition() in Drupal 7

Drupal 7 has a powerful query class in its core. EntityFieldQuery | entity.inc | Drupal 7.x | Drupal API There're 3 main methods to specif…

Using OOP styles for Drupal 7: callbacks

Drupal 7 was created mainly with a procedural style but OOP styles can be used in many parts of it. For example, there're many callbacks us…

When to use call_user_func() and 'funcname'() in PHP?

There are 2 ways to call a function whose name is set at runtime in PHP. One is and another is . At a glance these 2 methods are completel…

Drupal のコア / モジュールへのコントリビュート方法について

先週の末に開催された DrupalCamp Japan 2017 に参加してきました。 そのときのスライドをアップしたので興味のある方はどうぞご覧ください(ひとまず Speaker Deck にアップロードしますが、場所を変えるかもしれないのでこちらからリンクしておきます)。

Git を使った Drupal のパッチの作り方

今回は Drupal へのコード周りのコントリビュートに欠かせない「パッチの作り方」に関する記事を翻訳してご紹介したいと思います。 このコントリビュートのお話と関連するところとして 2017/01/15 に DrupalCamp Japan 2017 が開催されます。 興味のあ…

A Bash function to check Drupal database sizes

At times I'd like to check the size of databases used by Drupal. But I don't like to launch apps like phpMyAdmin and Sequel Pro only for th…

Homebrew で MySQL を 5.6 から 5.7 にあげたときのエラーの解決方法

Homebrew で導入している MySQL のバージョンを 5.6.x から 5.7.x にあげたときに MySQL が立ち上がらなくなってしまいました。 なんだろうなと思い Stack Overflow を検索してみましたがこれといった解決法が見つかりません。 「自分の場合…

Drupal 7: How to disable a content type

While developing a site with Drupal, at times I'd like to disable a content type without removing it. I just want to disable one. The datab…

Drupal 7 で theme.inc で発生する Fatal error の対処方法

Drupal 7 で次のようなエラーに遭遇することがあります。 原因 問題の原因は関数 の中で連想配列とその他の何か(たいてい )の加算が行なわれていることです。 そしてそれが起こるのは の戻り値が正しく指定されていないことが原因です。 次のような を書いていると発生し…

Drupal 7 の .info ファイルの files[] とは

今回は Drupal 7 の ファイルの についてのお話です( Drupal に興味のない方にはおもしろくないちょっとマニアックなお話です・・・)。 Drupal で開発を行う際に必ず必要となるもののひとつが .info ファイルです。 その中に記述可能な項目のひとつに …

Drupal 7 の DrupalWebTestCase のメソッドまとめ

Drupal 7 には仮想ブラウザを使った自動テストを行うための というテストクラスがデフォルトで用意されています。 ただ、 には驚くほどたくさんの便利機能が備わってはいるのですが、主に利用するのがコアコントリビュータだけだからなのか、英語で検索してもわかりやすく解説してい…

PHP のエラーログを標準出力や標準エラーに出す方法

PHP のエラーログを標準出力や標準エラーに出す方法についてです。 PHP をコマンドラインで実行するときに、エラーをターミナル上で確認したくなることがあります。 そんなときには で設定 の値を変更すれば OK です。 実際に使うイメージは次のとおりです。 で指定する …

よい Git コミットメッセージを書くために気をつけるべきポイント

本日は Git のコミットメッセージについてです。 Git の(広くいうなら VCS の)コミットメッセージは、チームで開発を行う場合、あるいは、個人での開発の場合でも長期にわたって開発を行う場合には「書き方の共通ルール」というものをあらかじめ決めておくと便利です。 このあたり…

Google スプレッドシートでの行情報の便利な使い方

Google スプレッドシートで「行の情報」( )を便利に使う方法をいくつか集めてみました。 1. 自動採番 テーブルで何らかの情報を管理していると、各行に番号をつけたくなることがあります。 そんなときは 1, 2, 3 ... と数値をひとつずつ入力したり、最初の 1 と …

Mac のターミナル上で OS の時刻情報を確認・変更する方法

Mac のターミナル上で OS の時刻情報にアクセスする方法についてかんたんにまとめておきます。 日付 日付(年月日)の情報を確認したり変更したりする場合は コマンドの オプションを使用します。 は通常ユーザの権限では実行できず が必要になるはずです。 日付の確認 日…

Git でローカルブランチをチェックアウトせずに更新する方法

Git でカレントブランチ以外のブランチを更新する方法についてです。 Git を使っていると、カレントブランチ以外のブランチを、チェックアウトしないまま(カレントブランチを切り替えないまま)で更新したくなることがときどきあります。 そういうときには次のようにすれば OK です。…

ログインが必要なサイトのページをまとめてキャプチャする方法

ログイン(認証)が必要なサイトのページを自動的に一括でキャプチャする方法についてです。 すぐに結論に行きますが、 Selenium や CasperJS ( PhantomJS )のキャプチャ機能を使えば認証が必要なサイトでもかんたんにキャプチャを取得することが可能です。 Se…

Drupal 7 で Database クラスが見つからないエラーの対処方法

Drupal 7 で Drush コマンドを実行しようとすると クラスが存在しないというエラーが出る場合の対処方法についてです。 問題 Drupal 7 で Drush コマンドを実行しようとすると クラスが存在しないと怒られます。 原因と解決策 このエラーは(私の環境では…

Git で引数なしで push したときの挙動オプション

Git で引数を省略して push したときの挙動のオプションについてかんたんにまとめました。 の正式なフォーマットは次のとおりです。 これらの引数は省略することが可能です: 引数を省略した場合の挙動は、設定項目 の値とカレントブランチによって決まります。 利用可能なオプシ…

Git で疎通試験を行う方法

Git でリモートへの接続がうまくできるかどうかを確認する方法についてです。 すぐに結論ですが、次のコマンドを使えば OK です。 リモート名を省略して使用することもできて、その場合は現在のブランチのアップストリーム(デフォルトのリモートブランチ)がチェック対象となります。 参…

Git でデフォルトのリモートを変更する方法

Git の各種コマンドでリモート名を省略したときに使用されるデフォルトのリモートを変更する方法についてです。 Git では や などのコマンドにおいてリモート名を省略することができます。 この引数省略時に使われる「デフォルト的な位置づけのリモート」についてはブランチ単位で設…

csscomb で設定ファイルが見つからないエラーの対処方法

CSS の自動整形ツール csscomb を使っていて、設定ファイルがないというエラーが出る場合があります。 私の知るところでは、このエラーの原因には次の 2 つのパターンがあります。 設定ファイルがない 設定ファイルはあるがシンタックスエラーがある 前者の「設定ファイルがない…

jQuery の matchHeight プラグインの使い方サンプル

jQuery のプラグイン が便利です。 横並びに並んだ要素の高さを自動的にいい感じに合わせてくれます。 jquery.matchHeight.js - a responsive equal heights plugin for jQuery デモはこちら。 jquery.m…

SASS で function を使ってセレクタを生成する方法

CSS 拡張のひとつである SASS で function を使ってセレクタを生成する方法について。 通常 SASS の function の戻り値はプロパティの値に使うことが多いかと思いますが、セレクタとしても使用することが可能です(あまり使い途はありませんがプロパティ名にも…

水平メニューを作る CSS のスタイルまとめ

ウェブサイトでよく見かける「横方向に並ぶメニュー」の作り方についてまとめてみます。 記事執筆時点では、主流の横方向に並ぶメニュー(以後「水平メニュー」)の作り方は大きく分けて 4 つあります。 を使う方法 を使う方法 レイアウトを使う方法 を使う方法 以下それぞれの実装…

git diff コマンドとふつうの diff / patch コマンド

のサブコマンドである と通常の コマンド、 コマンドについての tips をいくつかまとめます。 コマンドで 風の出力を出す方法 の出力結果を通常の で適用する方法 コマンドで 風の出力を出す方法 の出力結果では、削除行の先頭に が、追加行の先頭に がつ…

Linux 系 OS でファイルのグループパーミッションをオーナーのパーミッションに合わせる方法

ファイルのグループパーミッションをオーナー(ファイル所有者)のものにあわせる方法についてです。 単純なことですが、やり直しがやりづらい処理なので、特に一括で変換する場合は毎回慎重になります。 という形で指定すれば OK です。 特定のディレクトリ以下に対して一括で行いたい場合…

PHP で最大実行時間をセットしたり確認したりする方法

PHP でタイムアウトまでの時間をセットしたり確認したり方法についてです。 タイムアウトまでの時間をセットする セットする方については 2 通りの方法があります。 ひとつめは専用の を使う方法、もうひとつは汎用の を使う方法です。 いずれも数字の単位は「秒」です。 注意が必…

PHP で使用されている php.ini ファイルを特定する方法

PHP で設定ファイル を確認する方法について。 大きく分けて 3 つの方法があります。 コマンドの オプションを使う方法 関数を使ってページで確認する方法 関数を使う方法 1. コマンドの オプションを使う方法 コマンドに オプションをつけると PHP の設…

git clean のオプションについてのまとめ

Git で最も恐ろしい恐怖のコマンドのひとつ のオプションについてかんたんにまとめておきたいと思います。 のオプション: : ディレクトリを削除対象に含める。 (): ファイル削除を強制的に実行する。 (): インタラクティブモードでファイルを削除する。 (): ドライラ…

スマートフォンのブラウザのアドレスバーの色を変更する方法

スマートフォンのブラウザのアドレスバーの背景色を変更する方法について。 スマートフォン所有者ではなくサイト所有者向けの内容です。 方法としては HTML の 内に所定のメタタグを追加するだけで OK です。 OS/ブラウザごとに方法が少しずつ異なりますが主流は次の方法です。 …

Drupal 7 で hook_boot() と hook_init() と hook_preprocess_html() の特徴と使いどころ

今回も Drupal 7 のマニアックなお話です。 今回は「すべてのページリクエストに対してある処理を行いたい場合、どの関数を使うべきか」の判断ポイントについてまとめてみたいと思います。 Drupal 7 では、原則すべてのページリクエストにおいて実行される関数として次の 3 …

Git でのリモートリポジトリの操作方法まとめ

Git でリモートリポジトリを操作する方法についてかんたんにまとめました。 以下 CRUD の順で書きます。 C: 作成 リモートリポジトリを追加する R: 表示 リモートリポジトリを一覧表示する リモートリポジトリの詳細を確認する(疎通確認も行う) U: 更新 リモートリポジ…

Chrome で 301 リダイレクトが解除できないときの対処方法

再追記( 2018/03/13 ): Developer Tools (開発者ツール)を表示した状態でブラウザのリロードボタンを右クリックすると「キャッシュの消去とハード再読み込み」という項目が現れるので、これをクリックする形でも、リダイレクトキャッシュの削除が可能なようです。…

Mac のメモリ使用量をターミナルで調べる方法

Mac で現在のメモリ使用量を調べる方法について。 メモリ使用量は Mac にデフォルトで備わっている Activity Monitor から調べることもできますが、コマンドラインから調べたくなることがあります。 そんな場合には コマンドを使用すれば OK です。 監視し続け…

Drupal 7 で drush pm-update コマンドが失敗するときの対処方法

問題 Drupal 7 で (もしくは )コマンドを実行すると下記のようなエラーが出て処理が失敗してしまいます。 原因 この問題の原因は「モジュールの更新情報の文字列を がうまく認識できないこと」にあります。 細かい原因まで把握できていませんが、テーブル状で表示されるモジ…

Drupal 7 でファイルアップロード後にノードを保存しなかった場合のファイルのゆくえ

Drupal 7 でノードのファイルフィールドからファイルをアップロードした後ノードを保存せず破棄した場合にアップロードしたファイルがその後どうなるかについてです。 結論は、一定時間経過すると cron で自動的に削除されます。 流れ: アップロードされたとき、ファイルは一時デ…

さくらのレンタルサーバーでデフォルトのドメインを非公開にする方法

さくらのレンタルサーバーでデフォルトで付与されるドメイン( )を非公開にする方法について。 独自ドメインの方を利用するようになるとデフォルトのドメインを非公開にしたくなります。 しかし、コントロールパネルにはデフォルトのドメインを非公開にできるような管理項目が見つかりません。…

Drupal 7 の EntityFieldQuery でオリジナルの条件指定メソッドを利用する方法

今回は Drupal 7 の開発のマニアックなお話です。 Drupal 7 で開発を行っていると EntityFieldQuery でオリジナルの条件指定メソッドを作成したくなることがあります。 オリジナルの条件を指定するには基本的には メソッドを利用すれば OK です。 た…

Mac の Finder で隠しファイルの表示/非表示を切り替える方法

Mac の Finder で隠しファイルを表示する方法について。 ターミナルを開いて次のコマンドを打つことで隠しファイルを表示する状態に変更することができます。 隠しファイルを表示するようにするとデスクトップに ファイルが表示されたりもするので、用事が済んだら元に戻したいこと…

Google Maps の埋め込み地図をレスポンシブにする方法

Google Maps の埋め込み地図をレスポンシブ化する方法について。 Google Maps の埋め込み用コードはそのまま埋め込んでもレスポンシブになってくれません。 ラッパー div を作成してラッパーに ( ) を指定するちょっとハック的な方法が主流です。 CSS(…

Drupal 7 で特定のモジュールの cron 処理が他のモジュールのものよりも後に実行されるようにする方法

Drupal でモジュールの cron 処理の順序を指定する方法について。 Drupal のモジュールの hook の実行順序はデフォルトではアルファベット順ですが、 を変更することで任意の順序で処理を実行する事が可能です。 次のコードでは、 というモジュールの処理を と…

Doctrine の ArrayCollection クラスの使い方まとめ

Doctrine の の使い方をかんたんにまとめてみました。 PHP の組み込みの配列ではパッとできないことがシンプルにエレガントに書けるので便利です。 オリジナルのリファレンスはこちら。 Class Doctrine\Common\Collections\ArrayColl…

PHP で Fatal error: Can't use method return value in write context in ... というエラーが出る場合の対処方法

問題 PHP でコードを書いていると実行時に次のようなエラーが出ることがあります。 原因と対処方法 (私の経験上)多くの場合、このエラーが出るのは に関数やメソッドの戻り値を直接渡していることが原因です。 例えば次のようなコードでこのエラーが発生します。 解決策としては、メソ…

Heroku toolbelt を Mac からアンインストールする方法

公式に書かれているとおりそのままなのですが・・・ Heroku toolbelt 、いわゆる コマンドの削除方法についてです。 どの方法でインストールしたかによってアンインストール方法が異なります。 Homebrew で入れた場合 Homebrew で通常やるとおりに コマ…

HTML のタグの略さない名前

HTML のタグの名前は略称になっていることが多く、もともとの名前を知る機会はあまりありません。 しかし元の名前を一度調べてきちんと知っておくと、実際にコーディングするときに直感的にサクサク書けるようになりますし他の人に伝えるときもより的確に伝えることができます。 中途半端に知…

Git で現在のコミットのハッシュを取得する方法

追記 2022/11/08 ココカラ 以下に述べる を使った方法でもよいですが、 を使ったより直感的な方法もあります。 はコミットの diff 出力を行わないようにするためのオプションです。 頻繁に利用する場合はエイリアスに設定しておくと便利です。 参考: Git - g…

Homebrew でキャッシュを cleanup する方法

Mac のパッケージマネージャ Homebrew はいったんダウンロードしたフォーミュラをキャッシュとしてローカルに保存してくれます。 ふだんはこれが便利なのですが、ときどきあえてキャッシュを削除したいことがあります。 そういうときには次のコマンドを使えば OK です。 オプ…

MySQL で my.cnf のシンタックスチェックを行う方法

MySQL でサーバは起動せずに のシンタックスチェックだけ行いたい場合があります。 そういうときには コマンドにオプションをつけて実行すれば OK です。 はチェックのために特に必要というわけではありませんが、このコマンドではシンタックスチェックとは関係の無い情報もたく…

Drupal の Ajax API で wrapper エラーが出た場合の対処方法

エラー Drupal の Ajax API を使った処理を実装した際に次のようなエラーが出ました。 原因と解決方法 エラーメッセージに書かれているとおり のパラメータが間違っています。 こちらは 配列に追加した の キーの値が不正なことが原因です。 この場合は が間違…

PHP で固定間隔の時系列を生成する方法

PHP の組み込みの関数を利用して固定間隔のタイムシリーズを取得する方法についてご紹介します。 出力のイメージは次のとおりです。 この場合は オブジェクトを使うやり方がシンプルです。 テストしてみます。 うまく使えています。 ポイントは次のとおりです。 のコンストラクタには…

PHP の array_reverse() の使用上の注意

PHP の関数 を使っていて挙動に驚いたので備忘録を残しておきます。 は配列の要素の順番を逆にした配列を生成して返してくれる関数です。 通常の使用例は次のとおりです。 インデックス配列: 連想配列: いずれも直感的で自然なふるまいですね。 注意すべきなのは要素数が 1 の連…

jQuery で対象要素の存在を確かめる方法

jQuery で や といった形で 関数を使ったときに対象要素の存在をチェックしたいケースがあります。 対象要素をチェックするには プロパティを使うのがよさそうです。 参考 javascript - How do you check if a selector matc…

PHP の .phar ファイルを解凍する方法

解凍という表現が適切かどうかわかりませんが .phar ファイルの中身を確認したいときがあります。 そういうときには以下のコマンドを使うことで中身をディレクトリに展開して確認することができます。 参考 php - Extracting files from .phar arch…

Drupal 7 でインストール済みのモジュールを別ディレクトリに移動する方法

Drupal 7 でインストール済のモジュールを他のディレクトリに移動する方法について。 Drupal のモジュールの場所は DB のレコードに登録されるので、無理やり移動するとサイトが次のようなエラーを吐いて動かなくなることがあります。 解決方法は大きく 2 つあります。 モ…

jQuery で特定の要素が表示されているかどうかをチェックする方法

jQuery で特定の要素が現在画面に表示されているかどうかを確認する方法について。 結論としては メソッドに引数 と渡す形がお手軽かつ確実です。 現在の表示状態に応じて処理を切り替えたい場合などに便利です。 参考 javascript - Checking if an e…

Bash で CSS の連番がついたクラス名などをまとめて生成する方法

小ネタです。 記法を使うと連番を生成できるので、 コマンドと組み合わせるとちょっとした連番つきコードの生成に利用することができます。 例えば macOS で以下のコマンドを使用すると 次のコードをクリップボードに貼り付けることができます。 は Mac のコマンドで標準入力…

Awesome OS X 日本語訳

GitHub 上で各種定番アプリやツールをまとめた「 Awesome XX 」というまとめシリーズがあるのですが、 そのうちのひとつ、 OS X 用のアプリやツールに関してまとめられたリストを今回日本語に翻訳してみました。 gh640/awesome-osx - GitHub …

Mac OS X El Capitan にアップデートした後に brew update が動かない場合の対処方法

Mac OS X を El Capitan にアップデートした際に brew update がうまく動かない場合の対処方法について。 エラー 対処方法 私の場合は ディレクトリの所有者が になっていたことが原因のようでした。 まずは所有者を利用ユーザーに変更します。 再度試…

Drupal 7 の Views を date フィールドでうまくグルーピングできない問題の解決方法

Drupal 7 の Views でリストを作成していると、リストを date 型のフィールドでグルーピングしたくなる場合があります。 過去の投稿一覧を月単位でまとめたり、エンティティを日付の単位をまとめたり、といったケースです。 このような場合にグルーピングを使うと複数の項目…

jQuery で複数の ID をまとめて選択する方法

jQuery で複数の ID の要素をまとめて選択する方法についてです。 jQuery ではワイルドカード指定はできないため別の方法を使うことになります。 ちなみに Zepto.js でも同じ方法が使えます。 次のように ID に一定のパターンがある複数の要素をまとめて選択した…

Homebrew で「 Error: Formulae found in multiple taps 」と怒られたときの対処方法

Homebrew で などをしていると以下のようなエラーが出てしまうことがあります。 こちらはフォーミュラの名前が重複しているために起こるようなので、どちらか一方を登録解除すれば OK です。

MySQL のクエリキャッシュ周りの設定を確認/変更する方法

タイトルのとおり MySQL でクエリキャッシュ周りの設定を確認したり変更したりする方法について。 設定の確認はお馴染み を使います。 クエリキャッシュに絞る場合は 節のところを としましょう。 変更は設定ファイル などで変更することができます。 設定ファイルに書き込ん…

Mac でマークダウンファイルをプレビューする方法

Mac OS X Yosemite には .md ファイルをプレビューする機能がデフォルトで備わっていませんが、「 QLMarkdown 」をインストールすることで .md ファイルを HTML 化された形でプレビューすることができます。 QLMarkdown のインストールは…

git.drupal.org の Git リポジトリにアクセスできない場合の対処方法

問題 2015 年 7 月以降に Drupal の公式 Git リポジトリにアクセスすると次のようなメッセージが出ることがあります。 接続が確立されず Git リポジトリにアクセスすることができません。 原因と対処方法 この問題の原因は、マシンに登録されている git.drup…

PHP での型チェック方法まとめ

PHP での変数の型チェック方法のまとめです。 頻度は高くないのですが、 PHP で変数の型チェックをしたくなることがときどきあります。 このあたり PHP はわかりづらい感じなので、かんたんにまとめておきたいと思います。 はプリミティブ型・組み込み型のデータ…

Drupal 7 で db_select() が発行するクエリ文を確認する方法

今回は Drupal 7 で などデータベース関連の関数が発行するクエリを確認する方法について。 結論からいうと、 の戻り値である クラスのインスタンスのメソッドを利用すれば OK です。 同様のことは など他のデータベース関連関数についても言えます。 具体的には、 …

Drupal 7 でいったん無効にしたデフォルトのテキストフォーマットを有効化する方法

今回は Drupal 7 で一度無効化されたデフォルトのテキストフォーマットを再度有効化する方法についてご紹介したいと思います。 Drupal 7 を Standard プロファイルでセットアップした場合、次の 3 つのテキストフォーマットがデフォルトで有効になっています。 P…

PHP の連想配列の最初の要素を取得する方法

PHP の連想配列で最初の要素を取得する方法について。 ちょっと直感的ではなくまたすぐ忘れてしまいそうなのでここに書き留めておきます。 最初の要素の「バリュー」を取得する 値を取得するのはかんたんで 関数を使えば OK です。 最初の要素の「キー」を取得する キーは一見取得方…

CSS でテキストの色と同じボーダーの色を設定する方法

CSS でテキストの色と同じボーダーの色を設定する方法について。 実は を指定しない場合、 は自動的に の色になります。 ですので以下のように設定すれば、ボーダーの色が自動的にテキストの色と同じになります。 CSS3 ではこれを明示的に表すためのキーワード というものが…

Homebrew の MySQL の設定ファイルの場所

Mac で Homebrew で入れた MySQL を使っている場合、設定ファイルがすぐに見つからなくて困ることがあるかと思います。たまにしか触らないファイルはすぐに場所がわからなくなってしまいますよね。。 以下のコマンドを打つと設定ファイルの場所を確認することができます。 こ…

PHP での Fatal error: Can't use function return value in write context というエラーの原因と対処方法

今回は PHP のコードを書いていて次のエラーが出た場合の対処方法について。 原因 このエラーが表示される最も代表的なパターンは や に関数の戻り値を直接渡してしまっている場合のようです。 例をあげてみます。 のどちらの例でも Fatal error があげられます。 …

PHP で関数を受け取る関数にインスタンスメソッドを渡す方法

PHP の関数型スタイルの関数 や の引数に通常の関数ではなくメソッドを渡す方法をご紹介したいと思います。 PHP では でインスタンスメソッドを指定することができるので、このスタイルでメソッドを渡せば OK です。 PHP にはいろいろと気持ち悪いところもありますが、こ…

さくらサーバーで POST 時に弾かれる問題の解決方法

さくらインターネットのレンタルサーバーを利用していると、ブログの投稿時などに POST メソッドでアクセスすると以下のようなメッセージが出て弾かれてしまうことがあります。 原因 これはさくらの「 Web アプリケーションファイヤウォール」が誤検知した場合に発生するようです。 解…

Drupal 7 の Form API #states の使い方

手短な説明にはなりますが、 Drupal の Form API の #states というパラメータの使い方についてかんたんにご紹介したいと思います。 Drupal でフォームをプログラムで作成する場合は #states というパラメータを使うことにより、通常 JavaScri…

Mac OS のターミナルでログイン時のメッセージを非表示にする方法

Mac のターミナルを新たに立ち上げたときに、デフォルトでは特定のメッセージが表示されます。 今回はこのメッセージを表示しなくする方法についてです。 やり方はとてもシンプルで、ホームディレクトリに という名前のファイルを作成するだけです。 存在がチェックされるだけなので空ファ…

さくらのレンタルサーバーで cron が動かない場合の対処方法

さくらのレンタルサーバーで cron がうまく動かないときの対処方法についてです。 cron が思ったとおりに動かないときは以下のようなポイントをチェックするとよいです。 コマンドが存在するか? コマンドが問題なく動くか? コマンドを絶対パスで指定しているか? ファイルに実行権…

Drupal 7 で drupal_attributes() の引数エラー

Drupal 7 で開発をしていると、次のようなメッセージで怒られることがあります。 今回はこの問題の原因と対策について。 原因と対策 原因は、エラーメッセージのとおり への引数が正しく渡されていないことです。 は Render array 、 theme 関数周りでよく使…

Drupal 7 で Drush が新しいアップデートを認識してくれない問題の解決方法

Drupal 開発を行う上で欠かせない Drush ですが、アップデートを行おうとしたときに思うように動いてくれないことがたまにあります。 そんなときの解決方法をいくつか書き留めておきます。 1. サブコマンド で Drush のリリース情報を更新することができます。 2.…

PHP の echo と print のちがいと使いどころ

PHP には と という 2 つのよく似た出力用機能が備わっています。 これらのちがいやそれぞれの使いどころについて、ことあるごとに調べては忘れ調べては忘れの繰り返しなので、備忘録として書き留めておきます。 早速結論ですが、ひとことでいうと、 と の最も大きなちがいは式…

CSS でテキストフィールドのフォーカス時の枠を取る方法

CSS でテキストフィールドが focus されたときに自動的に付くボーダーを外す方法についてです。 ここではテキストフィールドと書いていますが、 textarea や button 、 submit ボタンなどでも共通かと思います。 私がチェックした Chrome 、 Fir…

Drupal 7 で検索フォームを Font Awesome 風に変える方法

Drupal のデフォルトの検索フォームのボタンを Font Awesome のものにスタイル変更する方法について。 Drupal に Font Awesome を導入するには、「そのまま Font Awesome を自作のテーマに含めて使う方法」と「専用のコントリビュートモジ…

Drupal 7 の Webform の日付フィールドのフォーマットを変更する方法

Drupal 7 の Webform の日付フィールドはデフォルトでは「 月/日/年 」というフォーマットになっています。 これは日本では馴染みの薄いフォーマットなので、国内のプロジェクトで使用する場合は変更して使う形がほとんどになるかと思います。 明示的な説明がありませんが、…

Drupal 7 の Views で使用すべきテンプレートを特定する方法

Drupal 7 の Views で出力のテンプレートを変更したいことがあるかと思います。 そういう場合にはどこかのテンプレートを実装/上書きする必要があるということはパッとわかるのですが、具体的にどのテンプレートを利用すればよいのかにわかにはわかりません。 そういう場合には、…

Drupal 7 で DB にレコードを複数行まとめて入れる方法

タイトルのとおり Drupal でレコードを複数行まとめて入れる挿入する方法について。 こちら可能は可能なのですがちゃんと解説しているドキュメントがあまりないようでパッと確認したいときに不便します。メモ代わりに書いておきたいと思います。 おなじみ で生成した に対して を…

Drupal 7 で DB トランザクションを明示的にコミットする方法

Drupal 7 で DB トランザクションを明示的にコミットする方法について。 Drupal では使用している DB がトランザクションをサポートしている場合は 関数でトランザクションを開始することができます。そして、ロールバックや例外などが発生しないかぎり一連の処理が終了…

さくらのレンタルサーバーで SSH のシェルに Bash を使う方法

さくらのサーバーで SSH のシェルは初期設定では csh になっていたりしますが、以下のコマンドを使うと Bash に変更することができます。 利用可能なシェルの一覧はファイル の中に書かれているようです。

Composer で Drush を入れようとしたときのエラー

エラー文 原因 Composer のバージョンが古いために起こるエラーのようです。 私は Composer 0.9-dev で Drush 7.0 を入れようとしたときに発生し Drush を入れることができませんでした。 対処方法 Composer をアップデートします。 C…

Drupal 7 の Views で日付フィールドでフィルタリングする方法

Views で日付フィールドの値によってフィルタリングしたい場合があるかと思います。たとえば未来のお知らせだけを表示したい、直近 1 ヶ月のイベントだけを表示したい、など。 今回はそんな「 Drupal の日付フィールドでフィルタリングする方法」をご紹介します。 前提として、 …

Drupal 7 でテンプレートファイル内で使用できる変数をチェックする方法

Drupal のテンプレートファイルでは多数の変数が使用できるようになっていますが、テーマの継承などを行っていると使える変数が非常に多く「何が使えて何が使えないのかわからない」という状況になりがちです。 変数をチェックするにはテンプレートファイル内で以下のコードを記述するとよい…

さくらのレンタルサーバーで drush の自動補完がきかない問題の解決方法

さくらインターネットのレンタルサーバーで Drupal を使うときに起こる問題の解決方法についてです。 さくらで Drush をセットアップし自動補完用のスクリプトも読み込むようにしたのに、自動補完がきかないことがあります。 コマンドは使えるのに自動補完がきかない、そんな場合…

Drupal 7 で単一のノードを別の Drupal サイトにコピーする方法

Drupal で単一、あるいは小数のノードを特定の Drupal サイトから別の Drupal サイトに移動する方法について。 いくつか方法はあるかと思いますが、たとえば、ローカルの開発環境から本番環境へひとつだけのノードをサッと移すだけであれば Node export モジュ…

JavaScript でページ読み込み時にページをふんわりと表示させる方法

JavaScript を使って HTML ページの読み込み時にページをふんわりとフェードインで表示させる方法をご紹介します。 フェードインで表示させるには、ページの opacity をいったん 0 (透明)にしておいてその後にアニメーションで 1 (不透明)に戻していきます。 …

jQuery で複数のクラスをまとめて追加する方法

jQuery で複数のクラスをまとめて追加する方法についてです。 早速結論ですが、単純に メソッドにスペース区切りで複数のクラス名を渡せば OK です。 逆に複数のクラスを削除したいときも同様の書き方が使えます。 さらに、複数のクラスをまとめてトグルしたいときにも で同じ書…

Mac や Linux でディスクの空き容量を調べる方法

Mac や Linux でディスク( HDD や SSD )の空き容量を調べるには コマンドを使いましょう。 コマンドを使うと人間が見てわかりやすい形で出力してくれます。 コマンドを使えば 1K = 1,000 ではなく 1K = 1,024 の計算で出力することもできま…

Ubuntu で crontab の編集に使うエディタを変更する方法

Ubuntu で で起動するエディタを変更するには次のコマンドを使います。 するとエディタのオプションが表示されるので、その中から使いたいエディタを選択すれば OK です。 Ubuntu 14.04.2 で確認しました。

Drupal 7 でテーマのベーステーマが見つからないときのエラー

エラー Drupal で有効でデフォルトになっているテーマのベーステーマが存在しないときに以下のような警告文が表示されます。 厳密にはエラーではありませんが、そのまま放置していても正常な動作をするようにはならないので広義のエラーと言ってもよいでしょう。 対処方法 Drupal …

Drupal 7 で POST リクエストのデータが送信できない問題の解決方法

問題 Drupal 7 の HTTP リクエスト用の関数 を使って POST リクエストをしようとしても POST データが送れない。 原因 ヘッダが正しく設定されていないことが原因です。 と だけでなく header の を正しく設定する必要があります。 解決方法 以…

SSH で UNPROTECTED PRIVATE KEY FILE というメッセージが出て ssh 接続ができない問題の解決方法

症状 SSH 接続をしようとすると以下のようなメッセージが出て接続が成功しないことがあります。 対処方法 秘密鍵ファイルのパーミッションが問題なので、パーミッションを変更すれば OK です。 グループやその他ユーザに閲覧権限がある場合はそれらを外します。 すると問題なく接続でき…

Mac の Finder での非表示ファイルの表示/非表示をコマンドで切り替える方法

ふだん必要となる機会はそうそうないのですが、 Finder で非表示ファイルを表示したくなる場合がときどきあります。 そういったときに Finder の設定からでも設定変更ができますが、コマンドでやれるようにしておくと便利です。 以下のコマンドで「非表示ファイルを表示する設定」…

Git で容量が大きなリポジトリの一部だけダウンロードする方法

Git でリポジトリの一部だけをダウンロードする方法についてです。 たとえば次のようなときにはリポジトリの全体ではなく一部分だけをダウンロードしたくなります。 リポジトリの容量が大きい場合 通信量を抑えたい場合 見たい部分がリポジトリの一部分だけの場合 早速結論ですが、次のよう…

Drupal 7 でルートディレクトリを移動するとページが見れなくなるエラー

Drupal があるルートディレクトリを移動したりリネームしたりするとエラーが出てしまいページが見れなくなります。 エラー 私の環境では次のようなエラーが出ました。出てくるエラーは状況により変わることがあるようです。 原因 正確な原因は不明のままですが、キャッシュ周りが怪しそう…

Drupal 7 で cron を実行しようとすると「実行中です」と出て実行できないエラー

Drush を使って cron を実行しようとすると次のようなエラーが出てしまい実行できないことがあります。 原因 このエラーが起こるのは、 cron プロセスがすでに実行中のときか、実行中でなければ前回の cron 実行中に処理が途中で終了し関連データが残った場合に多いようで…

MacOS でオフライン時に Dnsmasq の設定が使えない問題

Mac で開発用のドメインを利用するのに Dnsmasq を使っているのですが、ネットワークインタフェースがすべて無効な場合にはその DNS 設定が利用できません。 結論として、この問題に対しては現状よい解決方法はないようで、 WiFi ネットワークを有効にするか を使うかな…

Git で一部のファイルのみ特定のコミットの状態に revert する方法

Git でローカルリポジトリの一部のファイルのみ以前の状態に戻す方法を。 いくつか方法がありますが、 と を使う方法がかんたんなのではないかと思います。 たとえば を最終コミットのひとつ前の状態に戻したい場合は次のような形にします。 コミットが必要なときはまた別途行います。

Apache の設定ファイルにエラーがないか確認する方法

Apache の設定ファイルにエラーがないかを確認するには次の 2 つのコマンドのいずれかを使用します。 問題のない場合は という文言が標準エラーに返ってきます。 と のどちらが使えるかは Linux のディストリビューションによるかと思いますのでコマンドの存在チェックを…

Sublime Text 2 で Docblockr の日本語入力問題を解決する方法

Sublime Text 2 に DockBlockr というパッケージがあります。 これは PHP の「 PHPDoc 」など関数の説明コメントを記述するのをサポートするためのパッケージです。 このパッケージを入れてコメント内に日本語を書こうとすると Enter 入力時に未確…

Drupal 7 で Features モジュールがアンインストールできないときの解決方法

Drupal 7 で Features モジュールをアンインストールしようとすると以下のエラーが出てアンインストールができない場合があります。 エラー 原因 原因は、アンインストールの処理内で Features モジュールの関数 が使われていることです。 アンインストールの処…

SD カードに Raspbian をインストールする方法 for Mac

SD カードに Raspberry Pi 用の OS である「 Raspbian 」を Mac でインストールする方法についてご紹介します。 「インストール」という表現は正確ではないかもしれません。より正確には「 Raspberry Pi で Raspbian が起動するような…

Bash で Tab 補完の大文字小文字の区別をなくす方法

Bash で Tab 補完の際の大文字小文字の区別をするにはファイル に次の 1 行を追加します。ファイルが存在しない場合は新規作成すれば OK です。 この設定が有効になるにはターミナルを新たに起動する必要があるかと思います。上記の内容を保存したらいったんターミナルを閉じて…

ドットファイルを Dropbox 以下に移動させシンボリックリンクを張る方法

以下の関数を登録して使います。 次のようにして使います。 特に関数を作成する必要はありませんが、多用する場合は などで定義しておくと便利です。

Drupal 7 でなるべく多くのエラーを画面に表示するための設定

に次の行を追加します。 すると、エラー発生時はなるべく画面に表示することができます。開発用なので本番サイトでは必ず削除するようにしましょう。ネタ元は Definitive guide to Drupal 7 です。

Git コマンドでブランチ名に問題があるときのエラー

エラー 原因 原因は HEAD という名前のブランチ(あるいはタグ)が作成されていることです。 Git において は先頭コミットを指す予約語なので という名前を使うと上記警告が出ます。 対処方法 HEAD という名前のブランチを削除、あるいはリネームすることです。 削除: …

Drupal 7 でテーマの .info ファイルのスタイルシートの記述が間違っている場合のエラー

エラー 原因 / 対処方法 原因は有効にしているテーマの .info ファイル内のスタイルシートなどの設定が間違っていることです。よくあるのは次のまちがい。正の方に修正してキャッシュをクリアしたら直ります。 誤: 正: の部分には などを記入します。

Raspberry Pi で IP アドレスを固定に変更する方法

Raspberry Pi で IP アドレスを固定に変更する方法について。 Raspberry Pi の場合は に IP アドレスに関する設定が書かれているのでこちらを編集します。 元に戻せるか不安な方はバックアップを取っておきましょう。 の中にデフォルトでは以下の行が含ま…

PHP の uploadprogress をさくらのレンタルサーバーで使う方法

をさくらのレンタルサーバーで利用する方法をご紹介します。全体的な流れとしては以下のとおりとなります。 をインストール に設定行を追加 具体的には以下のとおりに行うとよいでしょう。 まずは以下のコマンドを実行。異なるバージョンを使いたいときやインストール先を変更したい場合には…

PHP の APC の apc_fcntl_unlock エラー

エラー 発生環境 上記エラーが発生した私の環境は以下のとおりです。 PHP 5.3.35 APC 3.1.9 原因 APC 3.1.9 の既知のバグのようです。次のページで議論され解決されています。 PHP :: Bug #59750 :: Unknown: apc_fcntl…

Drupal 7 で翻訳ファイルディレクトリのパーミッションが適切でないときのエラー

エラー 原因 原因は翻訳ファイル・ディレクトリのパーミッションが書き込み可能でないこと。もしくは、テンポラリーディレクトリのパーミッションが書き込み可能でないこと。 対処方法 「環境設定」「ファイルシステム」の「パブリックファイルシステムパス」以下の languages ディレ…