商売力開発ブログ

非エンジニアがWebサービスの開発、運営によって商売力をつける記録、その他の雑記

【スポンサーリンク】

【更新情報】ガントチャートの休日設定が可能に

※Project-Alphaは2019年12月をもって、サービスの提供を終了します。

今回は我々が開発しているプロジェクト管理ツールProject-Alpha(プロジェクトアルファ)を更新したので内容を説明します。

更新情報

更新内容

これまでガントチャートでは、1日単位で表示した場合に土日が自動でグレーアウトするのみでした。今回の更新により、グレーアウトする曜日を設定することができるようになります。更に祝日など特定の日にちを設定することができるようになります。これらはプロジェクト毎に管理されます。

更新画面など

プロジェクト設定画面のコンテンツ設定を表示すると、休日に関する設定メニューが表示されます。

曜日に関する設定画面はこちらになります。休日として設定したい曜日について設定することが可能です。

祝日など日付の休日設定の画面はこちらになります。以下は休日日付が何も設定されていない場合の状態になります。

国別の休日の参照

休日設定の参考にできるように、国別の祝日の内容を参照できるようにしています。ただし表示するのは、今年・去年・来年の3年分となります。未来の祝日は変更される可能性があるためで、翌年になると参照できる年が変わっていくようになります。
参照できる国は日本とアメリカとしています。以下では一覧から日本をクリックして参照した場合の表示になります。

例えば、日本の休日設定からコピペして、プロジェクトの休日設定をすることができます。以下は2018年の休日を設定した状態です。

この状態でガントチャートのコンテンツを表示して、日付単位を「1」としている場合、設定した曜日と休日がグレーアウトされます。例えば以下では土日と2018/07/16の海の日がグレーアウトされます。

Excel出力した場合にも対応しています。入力画面と同様に日付単位を「1」としている場合、設定した曜日と休日がグレーアウトされます。

プロジェクト作成時に選択可能

休日設定はプロジェクトを作成時に選択することで初期設定として設定されます。

ユーザ固有の休日設定も可能

休日設定は国別の祝日を参照できますが、祝日でない年末年始休暇などの設定が必要な場合があります。このようなときに利用できる独自の休日設定を行うことができるようになっています。PMのメニューから休日設定を選択すると基本設定と休日設定を行うことができます。基本設定の公開中を「はい」にすることで、プロジェクトの作成やプロジェクトの休日参照で表示されることになります。

固有の休日設定画面は以下のようになります。例えば以下では祝日にはない年末年始休暇として2017/01/03を追加している状態となります。

また公開中としていることで、プロジェクトの作成やプロジェクトの休日参照で固有の休日設定が表示され選択することができるようになります。

まとめ

今回は更新情報の内容の説明でした。

以上

【関連するリンク】 

www.prj-alpha.biz

www.prj-alpha.biz

home.prj-alpha.biz

はてなブログが独自ドメインでもHTTPS化できるようになってたので手順を確認しておく

はてなブログが独自ドメインでもHTTPS化できるようになってました。

staff.hatenablog.com

手順を確認しておきましょう。

HTTPS化の対応手順

上記のリンクに記載されている手順は以下の通り

  1. ダッシュボードから設定画面から詳細設定へいき、HTTPS化の設定変更を行う。こちらは1回行うと元に戻すことはできないとのこと・・・
  2. 混在コンテンツ(Mixed Content)の対応を行う。ただしmetaタグの設定での対応部分はEdgeなどのブラウザでは未対応。

記事内に張った自身のブログのリンクとかも、HTTPSに変更する必要がありますね。

後はツール関連ですが、対応が必要なのがグーグルの Search Console のアドレス変更の対応です。独自ドメインで運用しているような人ならば、使用割合は高いでしょう。

www.prj-alpha.biz

HTTPからHTTPSに301リダイレクトされる必要があるのですが、そこは自動でやってくれそうなので問題なさそうです。

とりあえず、はてなブログの設定変更を行っているユーザは結構いるみたいです。我々も早めに対応する予定です。

以上

【関連するリンク】

www.prj-alpha.biz

 

Laravelのマイグレーション機能の活用⑤ 複数テーブルに同じカラムを追加する

今回はPHPフレームワークの一つのLaravelの中から、データベースのマイグレーションの機能の利用に当たって、我々の活用方法を紹介します。
今回利用するDBはMySQLですが、一部については他のDBでもほぼ同様に対応できます。
またマイグレーションに関連する内容は以下を参照して下さい。

Laravelのデータベースのマイグレーション機能 順番を強引に入れ替えることも可能 - 商売力開発ブログ
Laravelのマイグレーション機能の活用① メンバ変数を追加した上でテーブルのコメント追加も簡単に設定する方法 - 商売力開発ブログ
Laravelのマイグレーション機能の活用② 1つのファイルで複数のテーブル管理も可能 - 商売力開発ブログ
Laravelのマイグレーション機能の活用③ カラム定義の管理を楽にする方法 - 商売力開発ブログ
Laravelのマイグレーション機能の活用④ カラム定義のメソッド設定例 - 商売力開発ブログ

カラム共通設定用のメソッドを使用してのカラムの追加

前回までの記事で説明したように、カラム名を指定することで定義を設定できるようなLaravelのファサードのメソッドを今回も利用します。

MigrationFunc::columnDef($table,'column_name');

このMigrationFuncファサードのメソッドの引数は以下のようなもので、nullableやデフォルト値の設定もできるものです。詳しくはこちらを参照して下さい。

public function columnDef(Blueprint $table,$column_name,$nullable_flg=false,$default=null)

今回は複数のテーブルに対して、同じカラムを追加する場合の対応を行います。ほぼ同じ構成のテーブルに対して行うイメージとなります。
まずはマイグレーションファイルに、テーブル名と追加するカラム名を設定します。今回はMySQLのみだけで利用できるafterのカラムも設定しています。

    public $tbl_array=array('tbl_name_1','tbl_name_2','tbl_name_3');
    public $add_col_name='add_colomn';
    public $aft_col_name='after_column';//MySQLのみ

これらのプロパティ(メンバ変数)を利用してupメソッドとdownメソッドを設定していきます。
またテーブルへの変更の場合、Schema::tableを使用して設定します。

Schema::table($tbl_name, function (Blueprint $table) {
    MigrationSet::columnDef($table,$this->add_col_name);
});

upメソッドの設定

upメソッドでは、追加対象のテーブル配列をforeachで処理するようにします。処理をする前に追加対象のテーブルが存在することと、そのテーブルに追加対象のカラムがないことをチェックすることが可能です。

if(Schema::hasTable($tbl_name) && !Schema::hasColumn($tbl_name,$this->add_col_name))

MySQLの場合、afterの設定によって特定のカラムの後に追加が可能です。こちらも追加対象のテーブルにafter対象のカラムがあることをチェックすることが可能です。

if(Schema::hasColumn($tbl_name,$this->aft_col_name))

ある場合はafterを設定し、ない場合はafterを設定しないようにします。
MigrationFunc::columnDefの設定により、afterを続けて設定することができます。

MigrationSet::columnDef($table,$this->add_col_name)->after($this->aft_col_name);

これらをまとめたupメソッドは以下のようになります。

    public function up()
    {
        foreach($this->tbl_array as $key => $tbl_name){
            if(Schema::hasTable($tbl_name) && !Schema::hasColumn($tbl_name,$this->add_col_name)){
                if(Schema::hasColumn($tbl_name,$this->aft_col_name)){
                    //MigrationSet後にafterを実行
                    Schema::table($tbl_name, function (Blueprint $table) {
                        MigrationSet::columnDef($table,$this->add_col_name)->after($this->aft_col_name);
                    });
                }else{
                    //afterなし
                    Schema::table($tbl_name, function (Blueprint $table) {
                        MigrationSet::columnDef($table,$this->add_col_name);
                    });
                }
            }
        }   
    }

こちらを実行すると、追加対象のテーブルに同じカラムが追加することができます。

downメソッドの設定

downメソッドでも、追加対象のテーブル配列をforeachで処理するようにします。処理をする前に追加対象のテーブルが存在することと、そのテーブルに追加対象のカラムがあることをチェックすることが可能です。

if(Schema::hasTable($tbl_name) && Schema::hasColumn($tbl_name,$this->add_col_name))

downメソッドでは追加したカラムの削除を行います。カラムの削除はdropColumnで行います。

$table->dropColumn($this->add_col_name);

これらをまとめたdownメソッドは以下のようになります。

    public function down()
    {
        foreach($this->tbl_array as $key => $tbl_name){
            if(Schema::hasTable($tbl_name) && Schema::hasColumn($tbl_name,$this->add_col_name)){
                Schema::table($tbl_name, function (Blueprint $table) {
                    $table->dropColumn($this->add_col_name);
                });
            }
        }
    }

こちらを実行すると、追加対象のテーブルに追加したカラムを削除することができます。

まとめ

今回はLaravelのマイグレーションの我々の活用方法のうち複数テーブルへの同じカラムの追加方法を紹介しました。

以上

【関連するリンク】 www.prj-alpha.biz www.prj-alpha.biz www.prj-alpha.biz www.prj-alpha.biz www.prj-alpha.biz

Laravelのマイグレーション機能の活用④ カラム定義のメソッド設定例

今回はPHPフレームワークの一つのLaravelの中から、データベースのマイグレーションの機能の利用に当たって、我々の活用方法を紹介します。
今回利用するDBはMySQLですが、一部については他のDBでもほぼ同様に対応できます。
前回説明したカラムの共通定義用のファサードのメソッドの設定について、具体的に紹介します。
www.prj-alpha.biz
また他のマイグレーションに関連する内容は以下を参照して下さい。

Laravelのデータベースのマイグレーション機能 順番を強引に入れ替えることも可能 - 商売力開発ブログ
Laravelのマイグレーション機能の活用① メンバ変数を追加した上でテーブルのコメント追加も簡単に設定する方法 - 商売力開発ブログ
Laravelのマイグレーション機能の活用② 1つのファイルで複数のテーブル管理も可能 - 商売力開発ブログ
Laravelのマイグレーション機能の活用⑤ 複数テーブルに同じカラムを追加する - 商売力開発ブログ

カラムの共通設定用のメソッド

前回の記事で、カラム名を指定することで定義を設定できるようなメソッドについて書きました。Laravelのファサード(MigrationFuncとします)を使用してメソッド(columnDefとします)の定義をすることで、マイグレーションファイルに以下のような記述をすることでカラムの定義ができるようにします。

MigrationFunc::columnDef($table,'group_cd');

このMigrationFuncファサードのメソッドの引数の定義は以下のようにし、この定義の具体的な実装部分を紹介します。

public function columnDef(Blueprint $table,$column_name,$nullable_flg=false,$default=null)

引数には以下を設定します。

  • $table:Schema::createやSchema::tableでカラム定義を設定するBlueprintインスタンスです
  • $column_name:設定対象のカラム名です
  • $nullable_flg:nullableを設定するかです、省略・指定がない場合はカラムは必須となります
  • $default:デフォルト値の設定用です、省略・指定がない場合はカラムのデフォルト値は設定しません

カラムの共通定義は連想配列などで以下のようなものとし、今回はMigrationFuncファサード内に設定しておきます。設定するタイプに応じて必要な値を追加しておきます。例えばstring型の場合はlenghtを追加して、設定する際にデータ長にします。

$columnSet = [
    'id' => ['type'=>'increments','comment'=>'ID'],
    'name' => ['type'=>'string','length'=>255,'comment'=>'名前'],
    'group_cd' => ['type'=>'string','length'=>5,'comment'=>'グループCD'],
];

ちなみにcommentはMySQLの場合、列に設定することができます。
続いて、指定されたカラム名から対象となる定義を取得し、データ型を指定します。データ型ごとに設定するメソッドが違いますので、それぞれ別けて設定する必要があります。ここでは、switch文で対応しています。また指定できるデータ型ごとのメソッドはかなり多いので、必要なものについて設定して下さい。

//対象のカラムセットを取得
$targetCol=$columnSet[$column_name];

//データ型の指定
switch($targetCol["dataType"]){
    case "increment":
        //incrementの設定
        $tblSetter=$_table->bigIncrements($column_name);
        break;
    case "text":
        //textの設定
        //defaultは設定できない
        $tblSetter=$_table->text($column_name);
        break;
    case "string":
        //stringの設定
        $tblSetter=$_table->string($column_name,$targetCol["length"]);
        break;
    case "dateTime":
        //dateTimeの設定
        $tblSetter=$_table->dateTime($column_name);
        break;
    case "date":
        //dateの設定
        $tblSetter=$_table->date($column_name);
        break;
    case "flg":
        //flgの設定
        $tblSetter=$_table->boolean($column_name);
        break;
    case "tinyInteger":
        //tinyIntegerの設定
        $tblSetter=$_table->tinyInteger($column_name);
        break;
    case "unsignedTinyInteger":
        //unsignedTinyIntegerの設定
        $tblSetter=$_table->unsignedTinyInteger($column_name);
        break;
    case "integer":
        //integerの設定
        $tblSetter=$_table->integer($column_name);
        break;
    case "double":
        //doubleの設定
        $tblSetter=$_table->double($column_name,$targetCol["length"],$targetCol["decimal"]);
        break;
    default:
        //設定がない場stringで設定する
        $tblSetter=$_table->string($column_name,255);
        break;
}

カラムの定義のあとに、nullableなどの設定を追加で行います。データ型を設定した変数:$tblSetterに追加で設定します。

//必須の解除
if($nullable_flg){
    $tblSetter->nullable();
}
//デフォルト
if($default!==null){
    $tblSetter->default($default);
}
//コメントの設定
//MySQLのみ設定可能
$tblSetter->comment($targetCol["comment"]);

最終的にはこの変数:$tblSetterをreturnします。こちらをreturnすることでマイグレーションファイル側で追加で別の設定を行うことも可能となります。

return $tblSetter;

以上がカラム定義のメソッドの設定例です。

カラム定義のコメントの設定について(MySQLの場合のみ)

カラム定義のコメントはMySQLのみ設定可能ですが、このコメントにルールを設けうると確認が楽になることがあります。例えば、データ型ごとにコメントの先頭に同一の記号などを設定しておきます。

$columnSet = [
    'id' => ['type'=>'increments','comment'=>'●ID'],
    'name' => ['type'=>'string','length'=>255,'comment'=>'■名前'],
    'group_cd' => ['type'=>'string','length'=>5,'comment'=>'■グループCD'],
];

このようなルールを設けておくと、MigrationFunc::columnDefで設定したカラムは先頭に特定の記号のあるコメントが付くようになります。

MigrationFunc::columnDef($table,'group_cd');

標準の設定方法のカラムのコメントでは記号を付けないようにすることで、MigrationFunc::columnDefで設定したカラムと区別できるようにしてます。

$table->string('group_cd',5)->comment('グループCD');

ちょっとしたことですが、共通定義で設定されたカラムか簡単に分かるようになります。

まとめ

今回はLaravelのマイグレーションの我々の活用方法のうちカラムの共通定義用のファサードのメソッドの設定を紹介しました。
新規サービスの開発段階では一部は使える方法ではないかと思いますので、参考にしてみて下さい。

以上

【関連するリンク】 www.prj-alpha.biz www.prj-alpha.biz www.prj-alpha.biz www.prj-alpha.biz www.prj-alpha.biz

【更新情報】ガントチャートの担当にプロジェクトメンバーを設定可能に

※Project-Alphaは2019年12月をもって、サービスの提供を終了します。

今回は我々が開発しているプロジェクト管理ツールProject-Alpha(プロジェクトアルファ)を更新したので内容を説明します。

更新情報

更新内容

これまでガントチャートなどのコンテンツでの担当欄では、別途設定した担当用のプルダウンリストが使用できました。今回の更新により、担当用プルダウンではなくプロジェクトメンバーを設定できるようになります。

更新画面など

担当欄で使用する内容は各コンテンツ設定で変更可能となります。

プロジェクトメンバーに変更後は、アサインされているプロジェクトメンバーが担当に表示されます。

プロジェクトメンバーの場合、初期設定では「ID + 名前」で表示されます。こちらプロジェクト設定で、「IDのみ」や「名前のみ」に変更することも可能です。

「名前のみ」の場合、重複することがありますが、重複した場合は後ろにIDが追加されます。

ガントチャートのバー色についてもメンバー毎に設定できるようになります。

オーナーについては、オーナー設定で変更して下さい。

注意事項

コンテンツのデータを入力後に、この担当の選択方法を変更するとコンテンツの担当のデータが表示されなくなります。入力後に変更した場合は担当のデータを修正して下さい。
担当の選択方法をプロジェクトメンバーとした場合、表示されるのはその時点のプロジェクトメンバーです。あるメンバーを担当に設定していて、そのメンバーをアサインから外した場合はその担当の入力欄は空白となりますので注意して下さい。

まとめ

今回は更新情報の内容の説明でした。

以上

【関連するリンク】

www.prj-alpha.biz

www.prj-alpha.biz

home.prj-alpha.biz

CSSのみでハンバーガーメニューのクリックでメニューの表示・非表示を制御する

今回はCSSのみでハンバーガーメニューのクリックでメニューの表示・非表示を制御する方法を紹介します。
Googleアナリティクスで状況を見ると、サービスサイトにスマホからアクセスがあったのでレスポンシブ対応も兼ねて設定しました。

完成イメージ

まずは完成イメージを以下に示します。




ハンバーガーメニューとも言われる3本線を押すと、下にメニューが表示されます。またハンバーガーメニューを押すと今度は非表示となります。
これらの制御をJavaScriptを使用しないで、CSSのみで対応していきます。

CSSだけで対応する方針

この動作をCSSだけで対応するのに、checkboxの2つの機能を利用して対応します。

checkboxのオンオフによる制御

Input要素のcheckboxを使用して表示・非表示の制御をします。checkboxのオン時にのみ適用できるCSSの疑似クラスで制御します。以下のようなhtmlがあるとします。

    <input id="topHeadNaviToggleCkBox" type="checkbox" class="naviToggleCkbox" value=0>
    <ul class="naviToggleTarget">

このinput要素のcheckboxがオンとなるとき、つまりチェックされた場合の疑似クラス「:checked」を使用してCSSを設定することが可能です。この「:checked」に隣接要素を指定する「+」などを利用することで、その他の要素もオンとなっときだけ適用するスタイルの設定が可能となります。
例えば「.naviToggleTarget」は通常は非表示で、checkboxがオンのときは表示する場合のCSSは以下になります。

.naviToggleCkbox:checked{
    /* チェックされたときのみ適用される checkbox要素 */
}
.naviToggleTarget {
    display: none;
}
.naviToggleCkbox:checked + .naviToggleTarget {
     /* チェックされたときのみ適用される  checkbox要素の次の要素 */
    display: block;
}

labelとcheckboxの連動

checkboxのオンオフによる制御ができることがわかったと思いますが、実際にcheckboxをオンオフするとなるとcheckboxは小さくユーザからすると操作しにくいです。そこでlabelのfor属性を利用します。for属性にはinput要素のid属性を指定すること、そのlabelと関連付けることができます。for属性にcheckboxを指定することで、そのlabel要素をクリックすると、checkboxをオンオフすることができるようになります。

   <label class="naviToggleLabel" for="topHeadNaviToggleCkBox">
    <input id="topHeadNaviToggleCkBox" type="checkbox" class="naviToggleCkbox" value=0>
    <ul class="naviToggleTarget">
     <li class="toggleItemCont">
      <a href="index.html">ホーム</a>
     </li>
    </ul>
   </label>

この設定の場合、input要素自体は非表示にしておき、label要素だけを表示させるようにする対応が多いです。オンオフの制御と合わせることで、label要素のどこかをクリックすることで「.naviToggleTarget」が表示・非表示になり完成イメージのようになります。

対応例

htmlの例は以下のようになります。

  <div class="naviToggleMenuCont">
   <label class="naviToggleLabel" for="topHeadNaviToggleCkBox">
    <div class="naviToggleSwitch">
     <span class="iconToggleSwitch"></span>
    </div>
    <input id="topHeadNaviToggleCkBox" type="checkbox" class="naviToggleCkbox" value=0>
    <ul class="naviToggleTarget">
     <li class="toggleItemCont theme_bg_light theme_bg_hov_dark">
      <a href="index.html">ホーム</a>
     </li>
    </ul>
    <div class="toggleOverlay"></div>
   </label>
  </div>

input要素を非表示になっているとした場合、checkboxがオフのとき見え方は以下のようになります。




赤枠で囲った部分の「.naviToggleSwitch」はハンバーガーメニュー部分です。黄色枠で囲った部分がlabel要素の全体となります。先に説明したようにlabel要素をクリックするとcheckboxがオンオフできるので、実はこの黄色枠のどこかをクリックすれば表示・非表示が切り替わるようになります。ハンバーガーメニュー部分はメニュー表示・非表示ができる印として配置しているだけです。ハンバーガーメニュー自体は画像、アイコンフォント、CSSなどいくつかの対応方法がありますが、今回はハンバーガーメニュー自体の作り方は特に説明しないので好きな方法で対応して下さい。
checkboxがオフのとき見え方は以下のようになります。




赤枠で囲った部分の「.naviToggleTarget」は表示・非表示されるメニュー部分です。黄色枠で囲った部分は「.toggleOverlay」としています。この黄色枠部分は「.naviToggleTarget」と同様にcheckboxにより表示・非表示され、画面に表示される部分でメニュー部分(「.naviToggleTarget」の部分)以外をこの要素になるようにCSSで設定します。これにより、メニュー部分以外をクリックした場合、label要素の子要素である「.toggleOverlay」がクリックされることになり、結果としてcheckboxがオンからオフに切り替わるようになり、メニューが非表示の状態にすることができます。

細かい装飾部分を除いて、メニュー表示・非表示に関わるCSSの設定例は以下のようになります。

.naviToggleCkbox {
    /* checkbox要素は常に非表示 */
    display: none;
}
.naviToggleTarget {
    /* メニュー部分、通常は非表示にする */
    display: none;
}
.naviToggleCkbox:checked + .naviToggleTarget {
     /* checkboxがオンのとき、メニューを表示する  */
    display: block;
    z-index: 20;/* toggleOverlayより上に表示する */
}
.naviToggleCkbox:checked + .naviToggleTarget + .toggleOverlay {
     /* checkboxがオンのとき、メニュー以外の部分  */
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 10;/* naviToggleTargetより下に表示する */
}

checkboxがオンのとき、「.naviToggleTarget」と「.toggleOverlay」にz-indexを指定して、「.naviToggleTarget」を上に表示するようにします。「.naviToggleTarget」は「position: fixed;」にしてtopなどを指定することで、画面全体に表示される状態となります。
このCSSの設定により、メニュー部分の表示・非表示を制御することができます。後はお好みに合わせて装飾を設定して下さい。

まとめ

今回はCSSの設定でのメニューの表示・非表示を制御する方法の紹介でした。
JavaScriptが不要なので簡単に対応することができます。

以上

ブログの運用状況

今回はこのブログの運用状況について、メモがてらまとめておきたいと思います。

アクセス数などの推移

今年の2月中旬から始めたブログについて、5月までの記事数とアクセス数の状況は以下になります。

年月 記事追加数 記事累積数 単月アクセス数 累計アクセス数
2018/02
10
10
40
40
2018/03
6
16
150
190
2018/04
8
24
251
441
2018/05
10
34
747
1,188

アクセスの大半はGoogle検索からです。BingやYahooといったところからもアクセスがありました。Bingはほとんど意識していなかったのですが、どうもアメリカからのアクセスで多いようです。日本では使っている人、あまりいなそうですが、アメリカだと使っている人が思ったよりいるんでしょうか。2、3月は記事数も少なかったので、ほとんどアクセスありませんでしたが、4月から1日に二桁アクセスする日が出始めて、5月に大きく増えました。ただ5月のアクセス増はGoogleアナリティクスで拾えないものもあり、謎の部分もあります。

アクセスの多かった記事

アクセスの多かった記事をいくつか紹介します。まずは、こちらAWS Certificate Manager (ACM) の記事です。
www.prj-alpha.biz
内容としては、Google Chrome の変更に向けてのACMのSSL証明書の対応についてです。4月末に Google Chrome が要件変更するので、それに関するAWSからのお知らせメールに関しての記事になります。まだ記事数も少なく、手探りの中で書いたものです。AWSからのメールの内容をGoogle検索しても、あまり出てこなかったので、自分で調べた結果を記事にしました。メールの件名で検索すると思われるので、そのあたりも含めた記事にしておくことでどうなるかというテストでもありました。結果、この記事へのアクセスが一番多くなりました。Googleで件名で検索すると、上位に表示され多くのアクセスへつながりました。4月末に再度、AWSから同じようなメールが来たのでその前後でも多くのアクセスがありました。AWSの対応が終わったので、この記事は今後はほとんどアクセスされないでしょう。ただこの記事によりGoogle検索でアクセスが増えた結果が影響しているのか、他の記事もGoogle検索からのアクセスが多くなった気がします。

続いてはこちら
www.prj-alpha.biz
こちらはプロジェクト管理ツールの宣伝にもなるようにと、ガントチャートについて初期に書いたものです。タイトルはGoogleで「ガントチャート」を検索していく中で、キーワードで「初めての」というのがあったの付けたものです。この記事に関しては現在も継続してアクセスがあります。ただ Search Console で見てもほとんど(not provided)となっていて、どの検索ワードで多くアクセスがあるかわからない状態です。
この記事には追加でいくつかのリンクを加えてるのですが、あまりクリックしてもらえない状況ですので、まだまだ工夫が足りないようです。

まとめ

今回はブログの運用状況についてでした。
運用状況に関しては定期的に報告していく予定です。

以上

【スポンサーリンク】