[C#]async, awaitの使い方を正しく理解する

2017年11月18日 | カテゴリ: C# | タグ:
C#で非同期処理を行うための機能であるasync/awaitのふるまいに関する説明です。 サンプルコードを見ながら確認していきます。 ## 処理に時間が掛かるメソッドHeavyFunction()を準備する まず、処理に時間がかかるメソッドを用意します。この例で...


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...


LinuxでMySQLを利用した開発を行っているとき、DBへの操作やバックアップはmysql/mysqldumpコマンドを利用してアクセスできます。 ですが、MySQLのバックアップや、データ集計を手元のPCでバッチ実行したい、WindowsからMySQLへコマンドラインでアクセ...


Linuxでbashスクリプトを作っていると、非対話でファイルに内容を追記したい場合があります。 echoコマンドと">>"リダイレクトを使うことで、ファイルの末尾に1行内容を追記できるのですが、複数行追記したい場合はechoコマンドが連続し読みづらくなり...


[PHP]Eloquentで日付に関する列定義の命名規則

2017年11月13日 | カテゴリ: PHP | タグ: ,
PHPのORマッパーであるEloquentでは、データの登録時刻・更新時刻と、データの論理削除(SoftDelete)を行うときの削除時刻を自動で更新してくれる便利な機能があります。 今回は、これらの機能を最小の手間で(=Eloquentのデフォルト設定で)利用するため...


markdownでは"**"で文字を囲むと強調表示させることができます。 markdown上で"\*\*"で囲まれた部分は、htmlに変換されるとstrongタグになるので、テーマに以下のようなcssを指定しておくことで、\*\***で囲まれた文字に蛍光マーカー風の下線の装飾を行...


Cmderでは標準でgit for windowsが利用できるので、特別な設定を行わなくてもunix likeなコマンド一式を利用することができます。この機能は大変便利なのですが、残念なことに標準の設定だとlsコマンドを実行した時、日本語のファイル名が文字化けしてしま...


WordPressでは各投稿に対してアイキャッチ画像を指定することができます。アイキャッチ画像を指定しておくと、WordPressのテーマによっては記事の一覧や個別記事のトップに画像が表示されるため、ユーザの目を引くことができます。 ですが、アイキャッ...


MySQLにSSHなどコマンドラインから接続している時に、データの傾向をつかむためにSQLだけで簡単なグラフを書く方法を説明します。 MySQLにはrepeat関数というものがあり、この関数では第二引数で指定した回数分、文字を繰り返し表示させることができま...


WindowsのSSHクライアントで有名なソフトにRLoginというものがあります。RLoginでは、Ctrl+矢印キーで現在開いている接続の複製を作ることができるという便利な機能があります。 今回は、Comderのショートカットを変更することで、RLoginと同じ操作で新...


PHPのSlim3フレームワークでslim/twig-viewパッケージを使用時、*.twigのビューファイルを変更してもブラウザで表示したときに変更内容が反映されないときがあります。これは、twigがビューのファイルを*.phpに変換した結果をキャッシュしており、元の*.tw...


スタートアップの企業で最も重要視されるのは生産性だ。 考えたアイデアを素早くプロダクトに起こし、市場に投入し、顧客の反応を見ながら今後の方針を決めていく必要がある。この試行錯誤の中で、多くのスタートアップ企業が新たなプロダクトを作り、...


[Linux]ファイルから改行を除く方法

2017年11月7日 | カテゴリ: Linux | タグ:
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メソッド名を使用でき...


Cmderでは、C:\tools\cmder\config\user-aliases.cmdファイルに定義を追加することで、コマンドのエイリアスを定義することができます。 ですが、定義を追加してCmderを再起動しても、aliasが使用できない場合があります。 このような場合は、(Cmder...


IT系勉強会の探し方

2017年11月2日 | カテゴリ: 未分類 | タグ:
IT系の仕事をしているなら、普段の業務とは別にスキルアップの方法を用意しておきたいものです。今回は開催されているIT系の勉強会を調べるためのサイトたちを紹介します。 企業向けのセミナーも良いですが、土日に有志で開催される勉強会の方が同業の...


この記事では、PHPでHttp通信を行うためのコンポーネントである、Guzzleを使うための手順を説明します。PHPに慣れていない人のために、PHPのパッケージマネージャであるcomposerのインストールから説明しています。 ### 確認環境環境のインストール 今...


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)...


MySQLでrootのパスワードを忘れたときに、リセットする方法です。 mysqldを起動する時に--skip-grant-tablesオプションを使うと一時的に認証機構をOFFに出来るので、この機能を利用します。 --skip-grant-tablesオプション付きでmysqldを起動している...


Windowsのコマンドに、clipコマンドというものがあります。clipコマンドを利用すると、コマンドラインから非対話で、クリップボードに文字をセットすることができます。 下記のコマンドでは、helloという文字をクリップボードにいることができますが、...


cmderではコマンドプロンプトの文字がデフォルトでラムダ「λ」記号なのでですが、λが2byte文字たなめ、カーソルキーの上下でコマンドヒストリを表示させるときに、表示が崩れる場合があります。 そこで今回は、cmderでコマンドプロンプトをλから別の文...


[cmder]ウィンドウを半透明にさせない方法

2017年10月20日 | カテゴリ: Windows | タグ:
Windowsのコマンドラインツールであるcmderは、インストール直後の状態では半透明のウィンドウで起動されます。 見た目は格好いいのですが、画面のキャプチャを取りたい場合、ウィンドウの後ろの内容が映り込んでしまい都合が悪い場合があります。また...


Windowsのシェルプログラムであるcmderですが、使用中に画面でCtrl-Dを押すとウィンドウが閉じてしまいます。 Ctrl-Dを押しても終了させたくない場合は、`C:\tools\cmder\config\settings`の設定ファイルを編集することでふるまいを変えることができま...


Linuxでファイルシステムのマウント状態を確認するためのコマンドに、"mount"コマンドというものがあります。 このmountですが、単純に実行すると以下のような形で、カラム位置がそろっておらず非常に読み取りづらいです。 ```language-bash $ mount ...


gcpの操作をcliのgcloudコマンドで行いたい場合、Linuxのシェルから実行すると成功するのに、cronで自動実行させると失敗する場合があります。 例えば、cronのスクリプトからgcloudを実行で下記のエラーが発生する場合ですが... ```language-bash ERR...