楽しいだけで十分です

好きなことを書きます

プログラミング

fishをインストールしてみた

「モダンなshellといえば、fishでしょう」という声をよく聞くようになったので、入れてみた。 ちなみに、普段はzshにいろいろ手を加えて使ってる。 やったこと fish shell を使いたい人生だった | Developers.IO インストールから、よく使いそうな便利プラ…

ターミナル 単語単位でカーソル移動

方法 次の単語に移動 Option + f 前の単語に移動 Option + b 注意点 動作しない場合は、ターミナルの設定で、以下の設定になっているか確認する。 プロファイル > キーボードタブ > メタキーとして Optionキー を使用 にチェックを入れる。 参考 こちらは、…

Docker nginxのコンテナすぐに終了してしまう現象

自分でDockerfileを書いて、nginxをインストールしたコンテナを作ったが、docker runしても、すぐに処理が終了する(docker psしても、見当たらない) 「なんで・・・?」ってなって調べてみた。 原因 Dockerはプロセスがフォアグラウンドで動いてないと、コン…

HTTPステータスコード 302, 303, 307を整理する

会社で同期と話してる時に、「HTTPステータスコードの302, 303, 307って使い分けがよくわからないよねー」ってなったのですが、たまたまパーフェクトPHPで出てきたので、まとめておきます。 それぞれの定義 302: Found 303: See Other 307: Temporary Redire…

パーフェクトPHPの「6章 Webアプリケーション入門」をPDOで書き直した

PHP7.0.14でパーフェクトPHPを写経しているのですが、mysql関数が廃止されているため、そのまま写経しても動かない (!) という状態になってしまいました。 なので、自分でPDOで書き直してみました。 同じようなことしてる人がいたら、参考までにどうぞ:) (自…

ターミナルで、shell-init: error retrieving current directory: getcwd: cannot access parent directories: というエラーが出た場合の対処

コマンドが実行できない!となって焦ったエラーですが、原因は大したことないものでした。 原因 カレントディレクトリが存在しないため、発生しているエラーです。 解決方法 存在していることがわかっている、別のディレクトリに移動すれば解決します。 参考…

Carbonで、日付をゼロサプレスする

PHPでCarbonを使って、日付を制御しようと思ったのですが、ゼロサプレスの方法が分からなかったのでメモ。 そもそもCarbonって? PHPの日付操作のライブラリです。 Laravelなどのフレームワークにも取り込まれています。 carbon.nesbot.com 使い方はこの辺が…

MacのHomebrewのアップデートを、cronで自動化する

Macでcronを使って、Homebrewのアップデートを自動化してみました。 作業したことをメモしておきます。 なお、このエントリでは、それぞれの見出しごとに関連しそうな参照リンクを書く形式にしています。 cronの設定前にすること 事前に設定が必要なことがい…

JavaScriptのArray.lengthプロパティは、インデックスの最大値 + 1を表す

タイトルの通りなのですが、びっくりしました。 配列の要素数を返してくれるプロパティだと思ってたら、違いました。 配列のインデックスが飛び飛びになることはほとんどない(Array.shift()などでも振り直される)ので、気にしないといけない機会はあまりない…

PHPUnitを、Composerでインストールする時のメモ

PHPUnitをComposerでインストールする時に少しハマったのでメモ。 実行環境は次のものです。 CentOS Linux release 7.2.1511 PHP 7.0.15 やったこと composer.jsonに記述した後に、composer installを実行すると、「PHP extension domがないよ」と言われまし…

SPL (Standard PHP Library)って?

「SPL」という単語をちょいちょい見かけるのですが、何か分からなかったので、調べてみました。 SPLとは PHP用の標準的なクラスライブラリです。 クラス ライブラリというのがポイントで、一部の関数やインターフェイスを除いて、ほとんどがクラスとして定義…

PHPの変数展開は、{$variable}構文を使うのがいいみたいです

同僚さんから、「PHPの変数展開は、{$variable}構文で書くのがいいよ」と教えてもらったので、メモ。 ちなみに、ちゃんとはまだ分かってません・・・難しい。 PHPの変数展開は3種類ある 単純な構文 複雑な構文 ({$variable} タイプ) 複雑な構文 ({$expr} タ…

SSHクライアントの設定の読み込み順をまとめる

SSHクライアント(sshやscpなど)の設定の読み込み順をまとめます。 [前提知識] クライアントの設定方法 クライアントの設定方法には、次の3種類があります。 コマンドラインのオプションを指定 ユーザーコンフィグファイル(~/.ssh/config)に記述 ホストコンフ…

SSHクライアントのコンフィグファイルをまとめる

SSHクライアントのコンフィグファイルをまとめてみました。 ディレクトリ単位の分類 コンフィグファイルを含むディレクトリとしては、以下の2つに分類されます。 パス 役割 ~/.ssh ユーザー個別の設定ファイルを置くディレクトリ /etc/ssh 全ユーザーに影響…

OpenSSHでログインできるまでの流れ

SSHをなんとなくで使っていて、サーバーと接続できないとなった時に、どこから調べたらいいんだろうな?ってことがままあったので、お勉強を始めてみました。 ひとまずSSHでログインできるところまでの流れをまとめます。 なお、OpenSSHのプロトコルバージョ…

PHPの言語構造とは

パーフェクトPHPを写経しながら読んでるのですが、「echo文は言語構造である」の意味がよく分からなかったので調べてみました。 言語構造とは 言語構造(Language Constructs)とは、言語を構成する要素です。 例えば、ifやwhileなども言語構造に該当します…

PHPのforeachは、イテレーション対象の配列をコピーして動作している

PHPのforeachでイテレーションを回してる時に、イテレーション対象の配列の値を更新したかった時に調べてみました。 まだ、ちゃんとは理解できていないですが、PHPのforeachは、イテレーション対象の配列をコピーして動作しているようです。 そのため、forea…

tmuxを使った複数サーバーの同時操作

仕事で複数サーバーで同じ操作をしたくなったのですが、「tmuxのsynchronize-panesを使えばいい」と先輩に教えてもらいました。 synchronize-panesとは 複数ペインを同時に操作できる機能です。 同時操作をしたいサーバーをそれぞれのペインで接続した後に、…

Apacheの組み込みモジュールの確認方法

Apacheの組み込みモジュールに何が入ってるんだっけ?となった時に使えるコマンドをメモ。 組込済みモジュールを一覧表示する httpd -Mを実行すると、組み込まれているモジュールを一覧表示できます。 例) 組み込みモジュールを一覧表示 $ httpd -M Loaded M…

PHPのエラーをまとめる

PHPのエラーについて勉強したので、まとめます。 概要 PHPのエラーには、大きく分けて3種類あります。 パースエラー (PHPの文法間違いによるエラー) 実行時のエラー (PHPの実行中に処理が継続できなくなるエラー) 警告・注意 (実行は継続できるが、注意を促…

PHPのソースコードが実行されるまでの流れ

PHPのソースコードが、実行されるまでを勉強したのでメモ。 実際にコードを書く時に意識することはないですが、エラーのデバッグ時に役立つので、知っておいた方が良さそうです。 概略 PHPプログラムが実行される度に、内部的にソースコードのコンパイルを行…

Webサーバー(Apache)のパーミッション

CentOS7を使って、Apacheの勉強をしていたのですが、パーミッションエラーなどでよくエラーになったので、整理してみました。 前半が、前提知識としてLinuxのパーミッション設定の話、後半がApacheのパーミッション設定の話になってます。 Linuxのパーミッシ…

vagrant upした時に、`Vagrant was unable to mount VirtualBox shared folders. This is usually ~`というエラーが出た時の対処

Vagrantでfile_syncedを設定してvagrant upすると、次のようなエラーで怒られました。 Vagrant was unable to mount VirtualBox shared folders. This is usually because the filesystem "vboxsf" is not available. This filesystem is made available via…

LaravelでWebアプリを作ろうと思ってるんです。

今年も既に2%くらい終わってしまいましたが、如何お過ごしでしょうか。 僕はというと、引っ越しと風邪で新年早々「わー!」っとなっております。わー。 さて、今年の上半期の目標のひとつに、Laravelを使ってWebアプリを作ることがあります。 目標を達成す…

Vimを最小構成で起動する

プラグインごとの挙動の確認したい時や、素のVimの挙動確認したい時の方法を調べてたので、メモ。 Macでターミナルから使用することを想定してます。 コマンド vim -N -u NONE -i NONE --noplugin テスト用の.vimrcを読み込む場合は、vim -N -u ~/test.vimrc…