C#で非同期処理を行うための機能であるasync/awaitのふるまいに関する説明です。
サンプルコードを見ながら確認していきます。
## 処理に時間が掛かるメソッドHeavyFunction()を準備する
まず、処理に時間がかかるメソッドを用意します。この例で...
WordPressを使用していると、ページの左下にスマイルマーク「 :-) 」が表示されることがあります。
これはWordPressのJetpackプラグインで、サイトの統計情報を有効にした時に表示されるものです。
設定を変更すれば非表示にできるので、設定を変...
Linuxのシェルスクリプトで処理を自動化する時、初期パスワードをランダムな値でセットしたい場合があります。
このような場合、Linuxで用意されている/dev/urandomを利用すると便利です。
## /dev/urandomを利用したコマンドの例
以下のコマン...
Vagrant(もしくはVirtualBox)でストレージにHDDを使用していて、ランダムアクセスでの書き込みが多い使い方をしている場合にディスクのパフォーマンスが非常に悪い場合があります。
この場合、以下の手順でVirtualBoxの設定を変更し、ホストOS側のI/Oキ...
LaravelでORマッパーとして、Eloquentを使用ている場合、タイムゾーンを変更するには、config/app.phpのtimezoneを'UTC'から'Asia/Tokyo'に変更すれば、DBに登録される時刻がJSTになります。
ですが、Laravelを使わずに、Composerを使ってilluminate/da...
PHPのフレームワークLaravelに付属のEloquentでは、デフォルトでデータの登録・更新時刻をそれぞれ、created_at, updated_at列で管理してくれます。
通常はこれで問題ないのですが、履歴テーブルのようにデータの登録だけが行われ、更新されない事が事...
MySQLを使っていて、データベースをcreate databaseしたり、データベースに接続する時に、下記のエラーが出ることがあります。
```language-bash
1253 COLLATION 'utf8_unicode_ci' is not valid for CHARACTER SET 'utf8mb4'
```
## 原因
これは、...
PHPのフレームワークであるLaravelでは、DBアクセスを行うのにEloquentやQueryBuilderという便利なモジュールがあります。
ですが、プロジェクトによってはLaravel以外のマイクロフレームワークや、フレームワークなしの環境だけども、ORマッパーのEloq...
Linuxのコンパイル処理などで自分でMakefileを書いた時、`make clean`コマンドを実行すると、以下のようにNo such file or directoryエラーになることがあります。
```language-bash
$ make clean
rm *.o
rm: cannot remove '*.o': No such file or di...
Illuminate/DatabaseパッケージのgetQueryLog()は、実行されたSQLとパラメータに加えて、処理時間をtimeのキーで取得できます。手元の環境で1~2ぐらいの値が帰ってくるので絶対ミリ秒単位だろうと思ったのですが、気になったので調べました。
結果を先...
LinuxでMySQLを利用した開発を行っているとき、DBへの操作やバックアップはmysql/mysqldumpコマンドを利用してアクセスできます。
ですが、MySQLのバックアップや、データ集計を手元のPCでバッチ実行したい、WindowsからMySQLへコマンドラインでアクセ...
PHPのフレームワークLaravelで、フレームワークのインストールから、DBの設定とcliでのDB操作まで行ってみます。
今回、接続先のDBはVagrant上に構築したMySQLを利用しています。
VagrantでのMySQLデータベース作成は、下記の記事を参考にすると`v...
Linuxでbashスクリプトを作っていると、非対話でファイルに内容を追記したい場合があります。
echoコマンドと">>"リダイレクトを使うことで、ファイルの末尾に1行内容を追記できるのですが、複数行追記したい場合はechoコマンドが連続し読みづらくなり...
MicroSoftが提供しているエディタであるVisual Studio Code(VSCode)では、Windowsの右クリックメニューの"Open with Code"より、選択したファイルをVSCodeで開くことができます。この時、すでにVSCodeを開いているときは、起動中VSCodeの新しいタブとして...
PHPのORマッパーであるEloquentでは、データの登録時刻・更新時刻と、データの論理削除(SoftDelete)を行うときの削除時刻を自動で更新してくれる便利な機能があります。
今回は、これらの機能を最小の手間で(=Eloquentのデフォルト設定で)利用するため...
Laravel5.5で`php artisan migrate`した時に下記のエラーが発生することがあります。
```language-bash
$ php artisan migrate
[Illuminate\Database\QueryException]
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key wa...
markdownでは"**"で文字を囲むと強調表示させることができます。
markdown上で"\*\*"で囲まれた部分は、htmlに変換されるとstrongタグになるので、テーマに以下のようなcssを指定しておくことで、\*\***で囲まれた文字に蛍光マーカー風の下線の装飾を行...
VagrantでMySQLを起動させて3306のポートフォワーディングを行っているときに、ホストOSから接続するとHost 'gateway' is not allowedエラーが出ることがあります。
(環境によっては'gateway'ではなく、'_gateway'になる場合もあります)
エラーの内容
...
下記の内容でVagrantfileを作成して、'vagrant up'コマンドを実行すれば、MySQLサーバが構築できます。
```language-ruby
Vagrant.configure("2") do |config|
config.vm.box = "bento/centos-7.3"
config.vm.box_check_update = false
confi...
CentOSでyumの設定を変更しようとしてyum-config-managerコマンドを実行すると、command not foundエラーになることがあります。
```language-bash
$ yum-config-manager
bash: yum-config-manager: command not found
```
これは、yumのユー...
Cmderでは標準でgit for windowsが利用できるので、特別な設定を行わなくてもunix likeなコマンド一式を利用することができます。この機能は大変便利なのですが、残念なことに標準の設定だとlsコマンドを実行した時、日本語のファイル名が文字化けしてしま...
WordPressでは各投稿に対してアイキャッチ画像を指定することができます。アイキャッチ画像を指定しておくと、WordPressのテーマによっては記事の一覧や個別記事のトップに画像が表示されるため、ユーザの目を引くことができます。
ですが、アイキャッ...
Dockerを使用していて、docker runを実行すると下記のエラーが発生することがあります。
```language-bash
> docker run
Failed to set up the root directory for shared mount propagation: Operation not permitted
```
この場合、docker ...
MySQLにSSHなどコマンドラインから接続している時に、データの傾向をつかむためにSQLだけで簡単なグラフを書く方法を説明します。
MySQLにはrepeat関数というものがあり、この関数では第二引数で指定した回数分、文字を繰り返し表示させることができま...
WindowsのSSHクライアントで有名なソフトにRLoginというものがあります。RLoginでは、Ctrl+矢印キーで現在開いている接続の複製を作ることができるという便利な機能があります。
今回は、Comderのショートカットを変更することで、RLoginと同じ操作で新...
PHPのSlim3フレームワークでslim/twig-viewパッケージを使用時、*.twigのビューファイルを変更してもブラウザで表示したときに変更内容が反映されないときがあります。これは、twigがビューのファイルを*.phpに変換した結果をキャッシュしており、元の*.tw...
PHPのパッケージマネージャであるcomposerでdump-autoloadコマンドを実行したとき、以下のように「A non-empty PSR-4 prefix must end with a namespace separator」エラーが出る場合があります
```language-php
$ composer dump-autoload
Generating...
スタートアップの企業で最も重要視されるのは生産性だ。
考えたアイデアを素早くプロダクトに起こし、市場に投入し、顧客の反応を見ながら今後の方針を決めていく必要がある。この試行錯誤の中で、多くのスタートアップ企業が新たなプロダクトを作り、...
PHPのSlim3フレームワークで、slim/twig-viewパッケージを使用時に、*.twigファイルで`{{ dump(value)}}`のようにdump関数を使おうとすると、下記のエラーになる場合があります。
```language-bash
Type: Twig_Error_Syntax
Message: Unknown "dump" fu...
phpでは、php.iniファイルの中でextensionを指定することができます。
exetensionで指定されたモジュールのバージョンを確認するには、--riオプションを使用すると便利です。
```language-bash
$php --ri memcached | grep Version
Version => 3.0.1
...
Vagrantで開発環境を作る際、諸般の事情でrootユーザがパスワード認証にによるログインを行えるようにしたい場合があります。
このような場合、Vagrantfileでrootのパスワードを自動セットさせるためには、以下のようにprovisionスクリプトを作成すれば...
Linuxでシェルスクリプトを書いているときに、存在しているファイルから空行を取り除きたい時があります。
この場合、以下のようにsedコマンドを使えば、改行を取り除いた結果を標準出力へ出すことができます。
```language-bash
sed '/^$/d' /path/t...
PHPでルーティングを行うパッケージであるnikic/FastRouteパッケージを利用して、controller-actionスタイルのルーティングを行う方法を説明します。
nikic/FastRouteパッケージは、PHP本体の開発者であるNikitaさんが開発していて、Slim3 Framework...
PHPのマイクロフレームワークであるSlim Frameworkのバージョン3.9.0が、2017/11/04にリリースされました。バージョン3.9.0での変更点は主に不具合修正で、以下のような修正が行われています。
- Requestオブジェクトに任意のHTTPメソッド名を使用でき...
PHPのviewテンプレートであるTwigを使おうとしたとき、以下のエラーが出ることがあります。
```language-php
Argument 1 passed to Twig_Filter::__construct() must be an instance of string, string given,
called in /path/to/vendor/twig/twig/...
PHPでSlim3フレームワークを使ったプロジェクトを作る場合、プロジェクト構成のひな型としてslim/slim-skeletonパッケージがあります。今回は、プロジェクトひな型として、slim-skeletonが役立つか評価したい人のため、プロジェクトを構成している全ファイ...
Cmderでは、C:\tools\cmder\config\user-aliases.cmdファイルに定義を追加することで、コマンドのエイリアスを定義することができます。
ですが、定義を追加してCmderを再起動しても、aliasが使用できない場合があります。
このような場合は、(Cmder...
WordPressのテーマであるUnderscoresでは、フッタの表示で下記のように_s_entry_footer()関数が使用されています。
```language-php
```
ですが、関数が定義されているはずのfunctions.phpを見ても、この関数は存在していません。
どこ...
IT系の仕事をしているなら、普段の業務とは別にスキルアップの方法を用意しておきたいものです。今回は開催されているIT系の勉強会を調べるためのサイトたちを紹介します。
企業向けのセミナーも良いですが、土日に有志で開催される勉強会の方が同業の...
この記事では、PHPでHttp通信を行うためのコンポーネントである、Guzzleを使うための手順を説明します。PHPに慣れていない人のために、PHPのパッケージマネージャであるcomposerのインストールから説明しています。
### 確認環境環境のインストール
今...
WordPressのJetpackプラグインが提供している"人気の投稿"ウィジットのサムネイル画像サイズを変更する方法です。変更を行うには、プラグインのプログラムとcssの変更が必要です。
## 変更方法
ここでは、サムネイルのサイズを120pxする方法を説明しま...
Vagrantを使って、CentOS7.3+PHP7.1環境を、素早くコマンド1つで構築する為の手順です。
## 手順
1. vagrantをインストールする
2. 下記の内容のファイルを"Vagrantfile"の名前で作る
```language-ruby
Vagrant.configure("2") do |config|...
WordPressのテーマ、Underscores(_s)を使用している時に、個別の記事ページで"前記事","次記事"のリンクを削除する方法です。
日記のようなサイトの場合は、"前記事","次記事"があると順に読んでいくことができて便利ですが、Tipsを羅列したブログだと...
vagrantで使用していないboxを削除するには、"vagrant box remove"コマンドを使用します。
## 操作方法
"vagrant box list"コマンドで、現在のbox一覧を確認します。
```language-bash
$vagrant box list
bento/centos-6.7 (virtualbox, 2.2.5)...
Redmineのインストールを行っていて、下記のエラーが出たので備忘録として書いておきます。
エラーが出たコマンド
```language-bash
$ bundle install --without development test rmagick --path vendor/bundle
[!] There was an error parsing `...
MySQLでrootのパスワードを忘れたときに、リセットする方法です。
mysqldを起動する時に--skip-grant-tablesオプションを使うと一時的に認証機構をOFFに出来るので、この機能を利用します。
--skip-grant-tablesオプション付きでmysqldを起動している...
Windowsのコマンドに、clipコマンドというものがあります。clipコマンドを利用すると、コマンドラインから非対話で、クリップボードに文字をセットすることができます。
下記のコマンドでは、helloという文字をクリップボードにいることができますが、...
cmderではコマンドプロンプトの文字がデフォルトでラムダ「λ」記号なのでですが、λが2byte文字たなめ、カーソルキーの上下でコマンドヒストリを表示させるときに、表示が崩れる場合があります。
そこで今回は、cmderでコマンドプロンプトをλから別の文...
Windowsのコマンドラインツールであるcmderは、インストール直後の状態では半透明のウィンドウで起動されます。
見た目は格好いいのですが、画面のキャプチャを取りたい場合、ウィンドウの後ろの内容が映り込んでしまい都合が悪い場合があります。また...
Windowsでcmd.exeの替わりに使用できるコマンドラインツールにcmderがあります。
cmderでは最初からgit for Windowsが使用でき、これに伴いLinuxのコマンド群も利用することができます。
ですが、Linuxのfindコマンドを利用しようとすると、以下のよう...
Windowsのシェルプログラムであるcmderですが、使用中に画面でCtrl-Dを押すとウィンドウが閉じてしまいます。
Ctrl-Dを押しても終了させたくない場合は、`C:\tools\cmder\config\settings`の設定ファイルを編集することでふるまいを変えることができま...
Linuxでシェルスクリプトを作っていて、変数に格納された値でURLをsedで置換したい場合があります。sedだと,sコマンドが置換なので以下のような感じで指定することが多いです。
```language-bash
#!/bin/bash
BASE_URL=http://www.example.com/
sed ...
Linuxでファイルシステムのマウント状態を確認するためのコマンドに、"mount"コマンドというものがあります。
このmountですが、単純に実行すると以下のような形で、カラム位置がそろっておらず非常に読み取りづらいです。
```language-bash
$ mount
...
loglotateコマンドを使ってログの切り替えを行うとき、以下のようにパーミッションのエラーが出る場合があります。
```language-bash
error: skipping "/var/log/foobar.log" because parent directory has insecure permissions
(It's world writable...
Linuxのサーバへsshログインした時に、下記のエラーが出る場合があります。
```language-bash
-bash: warning: setlocale: LC_CTYPE: cannot change locale (en_US.UTF-8): No such file or directory
-bash: warning: setlocale: LC_COLLATE: cannot c...
http://inet-ip.info/というサイトでは、特定のURLに対してHTTPリクエストを投げることで自分のPCのグローバルIPを取得することができます。
Linuxからcurlコマンドで確認する場合は以下のようにな形になります。
```language-bash
# curl http://ine...
CentOS7の環境にPHP7をインストールする場合、以下のようなコマンドを実行するかと思います。
```language-bash
sudo yum install epel-release -y
sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
sudo yum install --en...
2017/9/30に東京にて、OWASP World Training Tour 2017セミナーが開催されました。OWASPは、Open Web Application Security Projectの略で、セキュリティに関する診断の標準や規格などを策定している非営利組織です。
この記事では、OWASP World Traini...
phpでは、`php -l`コマンドでスクリプトにエラーがないか、構文チェックを行うことができます。
たくさんのファイルがある場合、findコマンドと組み合わせることで、指定したディレクトリ以下の全ファイルに対して、構文チェックを行えます。
下記の...
gcpの操作をcliのgcloudコマンドで行いたい場合、Linuxのシェルから実行すると成功するのに、cronで自動実行させると失敗する場合があります。
例えば、cronのスクリプトからgcloudを実行で下記のエラーが発生する場合ですが...
```language-bash
ERR...
投稿ナビゲーション