\

計画や準備の重要性

計画や準備をしっかりしていますか?仕事でも個人開発でも、ブログを書くということ1つとっても、計画をしっかりしているとスムーズに進めることができます。また、しっかり練られた計画で作業を進めると品質の高い成果物をアウトプットできます。

この記事では、計画や準備の重要性について紹介します。

1. 場当たり的な対応は必ず崩壊する

場当たり的に作業したものは、必ず悪い方向に進みます。

例えばアプリを開発することを例にして考えてみましょう。

アプリを開発するには、

  1. コンセプトを決める
  2. ターゲットとなるユーザー層を決める
  3. どれだけのユーザー数を獲得するか、仮説を立てる
  4. 画面デザインをする
  5. データモデルやクラスを設計する
  6. プログラミングをする
  7. テストを行う
  8. デプロイする
  9. プロモーションを検討する
  10. プロモーションを作成して公開する
  11. 仮説が正しいか検証する

このように、最初から最後までを考える必要があります。コンセプトを決めたタイミングで、このようなプロモーションをしようというプランがあれば、より良いものが出来上がりますが、コンセプトの検討が十分でなければ、作業工程途中でブレてしまい、よくわからないアプリが出来上がってしまうこともあります。

プログラミング1つをとっても、計画が十分にできていないと、以下のような不具合が発生することが考えられます。

  1. スパゲッティコードになり、メンテナンスが難しくなる
  2. 似た機能のコードが複数存在することになる
  3. コーディング効率が下がる

2. 計画・準備が8割

計画は全体の8割くらいで考えておいた方がいいでしょう。アプリを開発する場合は、すぐにプログラミングしたくなる気持ちを抑えて、コンセプトや設計に注力しましょう。

このアプリを作るにあたり、ターゲットとするユーザーは誰なのか、どんな画面デザインにするのか、データベースは何を使うのか、採用するフレームワークは?

考えることはたくさんありますので、しっかり考えましょう。

蛇足ですが、これはアプリ開発に限った話しではありません。

たとえば、スマホの回線契約をMNPで変更する場合は、以下のことを考える必要があります。

  1. 現在契約している事業者からMNP転出番号を取得する方法は?すぐに発行してもらえるのか?

  2. 解約金はかからないか?

  3. 解約日までの料金の支払いはどうなるのか?日割り計算で請求?1か月分を支払って、後から返金?

  4. 乗り換え先の契約に必要なものは?

これらの準備ができていないと、二度手間になったり、予想以上に時間がかかったりして、いいことは何一つありません。

しっかり計画や準備ができていると、スムーズに作業が進み、ゆっくりできる時間も増え、一石二鳥です。

3. 残り2割で作業

作業は全体の2割ほどで考えておくといいと思います。

考える時間と作業する時間を完全に切り離すことが重要です。プログラミングであれば、データモデルやクラス設計を十分に検討することが準備の時間、コードに書き起こすところが作業の時間です。

コードに書き起こすだけであれば、ながら作業で進めることができます。音楽を聞きながらだったり、Netflixで映画を見ながらでもできます。こうしておくと、楽しく作業できますよね。

すべてに当てはまることかもしれませんが、楽しくないと長続きできません。仕事を楽しくするためには、可能な限り単純化し、楽しいことと一緒に実行することが大事だと思います。

4. 人間は長い時間集中できない

人間は長い時間集中できません。30分も集中できれば素晴らしい分類に入ると思います。

そのため、ある程度集中したら、必ず休憩をとりましょう。良く知られている手法にポモドーロタイマーがありますが、これを活用してもいいと思います。

締め切りや何かに終われていれば、長い時間集中できることもありますが、大きな反動が自分に跳ね返ってきます。

ブログでもアプリ開発でも、大きなことを成し遂げようと思うと、短期集中型ではうまくいきません。5年や10年など長い期間かけて取り組む必要がありますので、無理なく続けられる習慣を身に着ける必要があります。

5. 常日頃から準備する

準備は歩きながらでも考えることができます。最近はスマホを持ち歩いていることが多いですので、歩きながら考えて、整理できたタイミングでメモ入力しておくのです。

後からそのメモを見返して、その通りに作業する、こうしておくと、単純化がしやすくなると思います。

PCに向かっている時間だけが仕事の時間ではありません。段取りや計画などは、資料を見ながらやることも多いと思いますが、煮詰まったらときは、歩きながら考えたほうがいいアイデアが浮かぶこともあります。

10分考えて良いアイデアが浮かばなければ、5分ほど散歩するといいと思います。コーヒーを買いに行くでもいいです。その方が気分転換になり、アイデアも浮かんできます。

そうやってしっかり練られた計画を、あとは実行するだけ、という状態になっていれば、作業がぐんぐん進んで、充実した1日を過ごせると思います。

コメントシステムを導入しました!コメント頂けると嬉しすぎて、光の速さで返信します(●´ω`●)

ExecNote.app リリースしました!

ExecNoteは、コードが実行できるMarkdownアプリケーションです。Markdownドキュメント内に記載したコードをクリックすると実行ができます。わざわざターミナルを 起動させる必要がありません!無料ですのでもしよければダウンロードをお願いします。

About Me

11年目のシステムエンジニアです。アプリで生活や仕事を改善したい🐱仕事効率化、自動化のアプリ開発が得意です、ご相談ください。 🚀エンタメ系アプリの開発も模索中🐬社内SEや個人アプリ開発者、システムエンジニアになりたい人と繋がりたい🐱

続けやすいTodoアプリとは

日々努力していますか?私も今の仕事一辺倒の生活が嫌で、なんとか自力で収入を得たいと思っていますが、
ブログや個人開発を、今までなかなか続けることができませんでした。

なぜ続けられないか考え抜いた結果、以下の要因が考えられると思いましたので、ブログに残しておきたいと思います。

1. Todoアプリで管理しても続けられない理由

Todoアプリは一度は使ったことがあると思います。簡単なもので言えばiPhoneに標準でインストールされている「リマインダー」もありますし、GoogleやMicrosoftをはじめ、多くのToDoアプリが存在しています。

ToDoアプリにタスクを登録して、いざやるぞ!と意気込んでも、なかなか続けることは難しいと思います。

なぜ、続けられないのでしょうか?その原因は、タスクの量が大きすぎるからです。

いくらやる気があっても、その作業をこなそうとすると、疲れます。疲れは蓄積します。

かつ、今までやってきていませんので、余計に疲れます。

そのため、まず最初は、3分で終わらせることができるタスク量に細分化しましょう。

ブログであれば、「1章だけ書く」だったり、プログラミングであれば、「1画面分の構成だけ考える」などです。

この3分のタスク量を毎日休むことなく続けられれば、3日坊主は卒業です。

負荷が高すぎて疲れたので、明日は休もう・・・。では駄目です。

毎日休まず続けられるタスク量に細分化しましょう。

2. やることを宣言することの重要性

今日のやることを宣言することは重要です。Twitterでツイートするだけでも効果はあります。

やることを宣言すると、宣言した内容を友人やフォロワーが見ることになりますので、必ずレスポンスがあります。

「すごいね」「頑張ってるね」といったポジティブなレスポンスから、「本当にやってるの?」「やっても意味ねぇよ」などネガティブなものまで様々ありますが、ポジティブでもネガティブでもレスポンスがあると、続けていこうという気持ちが上がります。

やることを宣言して何もしていないと、顰蹙を買うことになりますので、どうしてもやり遂げようという気力が生まれます。

どうせ作業をするのは自分ひとりなのですが、やることを宣言するだけでこんなにもメリットがあります。

また、ハッシュタグ「#今日の積み上げ」は1時間に数千ツイートもされていますので、多くの人の目に見られることになります。また、いいねをしてくれる人も多いので、励みになることと思います。

今日一日のタスクを決めたら、ぜひ「#今日の積み上げ」をつけてツイートしてみてください。

3. DailyStackアプリ

DailyStackアプリは、ブラウザで稼働するToDoアプリです。アプリのインストールは不要で、面倒なアカウント登録もありません。

https://dailystack.usefuledge.com/ にアクセスするだけですぐに使うことができます。

DailyStackは、継続しやすくなるような機能を組み込んだToDoアプリです。どのような機能があるか、どうして継続しやすくなるのか、説明します。

4. ツイート機能がある

DailyStackアプリには、「ツイート」機能があります。

やること画面の上部に「ツイート」ボタンがありますので、これをタップすると、ハッシュタグ「#今日の積み上げ」をつけてTodoをツイートします。

Twitterでは文字制限がありますので、DailyStackアプリでは上位の3つのタスクをツイートします。

わざわざツイート本文を書く必要はありません。タップだけでOKです。

ハッシュタグ「#今日の積み上げ」がついているので、「いいね」をしてくれる人がたくさんいます。

また、ツイート本文の先頭に「xx日目」がつきます。これは、最初にDailyStackアプリを使い始めてからの経過日数が表示されます。

最初は1日目からスタートですが、続けていくと日数も増えていき、継続できていると実感できると思います。

5. 今までやってきたことをふり返ることができる

DailyStackアプリは、今までやってきたことを振り返ることができます。例えば、このアプリの開発はいつからはじめたっけ?とか、筋トレって何日続いてるんだろう?といった内容をすぐに調べることができます。

こうやって振り返ることができると、日々の積み上げがどれくらいか知ることで充実感を得ることができます。

6. ポモドーロタイマーで無理なく続けられる

ポモドーロタイマーは、25分おきに5分休み、3セット終わったら15分の長い休憩をとる、集中して作業するための方法です。

集中しているとついつい時間が経つのを忘れてしまいますが、反動が大きいことがあります。

そのため、ポモドーロタイマーで無理なく続けることが重要です。

7. 無料&アカウント登録不要

DailyStackはアカウント登録不要です。無料で使い続けることができます。また、アプリのインストールも不要ですので、https://dailystack.usefuledge.com/ にアクセスするだけですぐに使うことができます。

8. 無理なく毎日続けることが大事

大きなことを成し遂げるためには、長い期間をかけて努力することが重要です。数日や1ヵ月などでは、到底できることではありません。

長い期間をかけるためには、途中でバテない作業スケジュールが重要です。

長く続けるためには、作業計画をしっかり練る、ツイート機能でまわりを巻き込む、ポモドーロタイマーで休憩時間を確保する、これらが重要になります。

ぜひ、DailyStackを使ってみてください。

https://dailystack.usefuledge.com/

コメントシステムを導入しました!コメント頂けると嬉しすぎて、光の速さで返信します(●´ω`●)

ExecNote.app リリースしました!

ExecNoteは、コードが実行できるMarkdownアプリケーションです。Markdownドキュメント内に記載したコードをクリックすると実行ができます。わざわざターミナルを 起動させる必要がありません!無料ですのでもしよければダウンロードをお願いします。

About Me

11年目のシステムエンジニアです。アプリで生活や仕事を改善したい🐱仕事効率化、自動化のアプリ開発が得意です、ご相談ください。 🚀エンタメ系アプリの開発も模索中🐬社内SEや個人アプリ開発者、システムエンジニアになりたい人と繋がりたい🐱

AWS S3でBlazor wasm アプリを公開する方法

Blazor wasm は c#で書けるウェブアセンブリなアプリで、サーバーレスで稼働することができます。

この記事では、Blazor wasm で作成したウェブアプリをAWS S3 で公開する方法を紹介します。

1. S3 バケットを作成する

まずはS3バケットを作成しましょう。

作成のしかたはいつもと同じです。コマンドラインが好きな方はコマンドラインからでもいいですし、ウェブコンソールが好きな方は
ウェブコンソールから作成しましょう。

最終的にウェブホスティングを有効にしますので、パブリック・アクセスを許可しておく必要があります。

2. アクセス許可から、バケットポリシーを設定する

バケットの「アクセス許可」からバケットポリシーを選択します。

バケットポリシーを入力して、有効にします。

バケットポリシーは以下のように入力します。

1
2
3
4
5
6
7
8
9
10
11
12
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::バケット名/*"
}
]
}

3. ウェブホスティングを有効にする

ウェブホスティングを有効にします。

バケットのプロパティから「静的ウェブサイトホスティング」より、有効にします。

このとき、インデックスドキュメントとエラードキュメントの両方に「index.html」を入力することを忘れないようにしましょう。

3. Blazor wasm アプリを Publish する

Blazor wasm アプリを Publish して、デプロイするファイルを生成しましょう。

やり方は至ってかんたんで、プロジェクトディレクトリで以下のコマンドを実行するだけです。

1
> dotnet publish -c Release

以下のように、ファイルが生成されれば成功です。

1
2
3
4
5
6
7
8
9
10
11
haruo@Haruos-MBP dailystack % dotnet publish -c Release
Microsoft (R) Build Engine version 16.8.3+39993bd9d for .NET
Copyright (C) Microsoft Corporation. All rights reserved.

Determining projects to restore...
All projects are up-to-date for restore.
dailystack -> /Users/haruo/Documents/workspace/dailystack/bin/Release/net5.0/dailystack.dll
dailystack (Blazor output) -> /Users/haruo/Documents/workspace/dailystack/bin/Release/net5.0/wwwroot
Optimizing assemblies for size, which may change the behavior of the app. Be sure to test after publishing. See: https://aka.ms/dotnet-illink
Compressing Blazor WebAssembly publish artifacts. This may take a while...
dailystack -> /Users/haruo/Documents/workspace/dailystack/bin/Release/net5.0/publish/

4. S3 バケットにアップロードする

生成されたファイルをS3へアップロードしましょう。

アップロードする方法は何でもOKです。ウェブコンソールからアップロードしても構いませんし、AWS CLI がインストールされていれば、以下のコマンドからでもアップロードできます。

1
> aws s3 sync ローカルディレクトリ名 s3://バケット名 --delete

--deleteオプションは、ローカルディレクトリ側に存在せず、S3バケット側にのみ存在するファイルを削除する、という意味です。

5. URL にアクセスして動作確認する

S3のウェブホスティングURLにブラウザからアクセスしてみましょう。

この図のように、Blazorアプリが表示されれば成功です。

コメントシステムを導入しました!コメント頂けると嬉しすぎて、光の速さで返信します(●´ω`●)

ExecNote.app リリースしました!

ExecNoteは、コードが実行できるMarkdownアプリケーションです。Markdownドキュメント内に記載したコードをクリックすると実行ができます。わざわざターミナルを 起動させる必要がありません!無料ですのでもしよければダウンロードをお願いします。

About Me

11年目のシステムエンジニアです。アプリで生活や仕事を改善したい🐱仕事効率化、自動化のアプリ開発が得意です、ご相談ください。 🚀エンタメ系アプリの開発も模索中🐬社内SEや個人アプリ開発者、システムエンジニアになりたい人と繋がりたい🐱

AWS S3でBlazor wasm アプリを公開する方法

Blazor wasm は c#で書けるウェブアセンブリなアプリで、サーバーレスで稼働することができます。

この記事では、Blazor wasm で作成したウェブアプリをAWS S3 で公開する方法を紹介します。

1. S3 バケットを作成する

まずはS3バケットを作成しましょう。

作成のしかたはいつもと同じです。コマンドラインが好きな方はコマンドラインからでもいいですし、ウェブコンソールが好きな方は
ウェブコンソールから作成しましょう。

最終的にウェブホスティングを有効にしますので、パブリック・アクセスを許可しておく必要があります。

2. アクセス許可から、バケットポリシーを設定する

バケットの「アクセス許可」からバケットポリシーを選択します。

バケットポリシーを入力して、有効にします。

バケットポリシーは以下のように入力します。

1
2
3
4
5
6
7
8
9
10
11
12
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::バケット名/*"
}
]
}

3. ウェブホスティングを有効にする

ウェブホスティングを有効にします。

バケットのプロパティから「静的ウェブサイトホスティング」より、有効にします。

このとき、インデックスドキュメントとエラードキュメントの両方に「index.html」を入力することを忘れないようにしましょう。

3. Blazor wasm アプリを Publish する

Blazor wasm アプリを Publish して、デプロイするファイルを生成しましょう。

やり方は至ってかんたんで、プロジェクトディレクトリで以下のコマンドを実行するだけです。

1
> dotnet publish -c Release

以下のように、ファイルが生成されれば成功です。

1
2
3
4
5
6
7
8
9
10
11
haruo@Haruos-MBP dailystack % dotnet publish -c Release
Microsoft (R) Build Engine version 16.8.3+39993bd9d for .NET
Copyright (C) Microsoft Corporation. All rights reserved.

Determining projects to restore...
All projects are up-to-date for restore.
dailystack -> /Users/haruo/Documents/workspace/dailystack/bin/Release/net5.0/dailystack.dll
dailystack (Blazor output) -> /Users/haruo/Documents/workspace/dailystack/bin/Release/net5.0/wwwroot
Optimizing assemblies for size, which may change the behavior of the app. Be sure to test after publishing. See: https://aka.ms/dotnet-illink
Compressing Blazor WebAssembly publish artifacts. This may take a while...
dailystack -> /Users/haruo/Documents/workspace/dailystack/bin/Release/net5.0/publish/

4. S3 バケットにアップロードする

生成されたファイルをS3へアップロードしましょう。

アップロードする方法は何でもOKです。ウェブコンソールからアップロードしても構いませんし、AWS CLI がインストールされていれば、以下のコマンドからでもアップロードできます。

1
> aws s3 sync ローカルディレクトリ名 s3://バケット名 --delete

--deleteオプションは、ローカルディレクトリ側に存在せず、S3バケット側にのみ存在するファイルを削除する、という意味です。

5. URL にアクセスして動作確認する

S3のウェブホスティングURLにブラウザからアクセスしてみましょう。

この図のように、Blazorアプリが表示されれば成功です。

コメントシステムを導入しました!コメント頂けると嬉しすぎて、光の速さで返信します(●´ω`●)

ExecNote.app リリースしました!

ExecNoteは、コードが実行できるMarkdownアプリケーションです。Markdownドキュメント内に記載したコードをクリックすると実行ができます。わざわざターミナルを 起動させる必要がありません!無料ですのでもしよければダウンロードをお願いします。

About Me

11年目のシステムエンジニアです。アプリで生活や仕事を改善したい🐱仕事効率化、自動化のアプリ開発が得意です、ご相談ください。 🚀エンタメ系アプリの開発も模索中🐬社内SEや個人アプリ開発者、システムエンジニアになりたい人と繋がりたい🐱

c# Windowsでファイルを削除せずにゴミ箱に入れる方法

ファイルを削除したいときもあれば、あとで復元させやすいようにするために、ゴミ箱に入れておきたいときもあります。

この記事では、c#でファイルを削除せずにゴミ箱に入れる方法を紹介します。

1. サンプルコード

サンプルコード全文は以下のとおりです。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
using System;
using Microsoft.VisualBasic.FileIO;


namespace sendtorecycle
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
SendToRecycleBin("test.txt");
}

static void SendToRecycleBin(string filepath)
{
FileSystem.DeleteFile(filepath, UIOption.OnlyErrorDialogs, RecycleOption.SendToRecycleBin);
}
}
}

このコードのポイントは、名前空間「Microsoft.VisualBasic.FileIO」にあるFileSystem.DeleteFileメソッドです。

2. メソッド説明

公式ドキュメントはこちらです。

https://docs.microsoft.com/en-us/dotnet/api/microsoft.visualbasic.fileio.filesystem.deletefile?view=net-5.0

DeleteFileメソッドは3つのパラメタを入力にします。

1
public static void DeleteFile (string file, Microsoft.VisualBasic.FileIO.UIOption showUI, Microsoft.VisualBasic.FileIO.RecycleOption recycle);

1つ目は、ゴミ箱に入れるファイルのパスです。上記のサンプルコードでは、カレントディレクトリにあるtest.txtを対象にしています。

2つ目は、ユーザーインタフェースの表示おオプションです。ここでは、エラーがあったときのみ表示するUIOption.OnlyErrorDialogsをセットしています。

3つ目は、ゴミ箱に入れるかどうかのオプションです。RecycleOption.SendToRecycleBinだと、ゴミ箱に入ります。ここをRecycleOption.DeletePermanentlyとすると、ゴミ箱に入らず、完全に削除されます。

3. 実行例

このように、カレントディレクトリに「test.txt」が存在するとします。

そして、dotnet runコマンドで実行します。

すると、以下のようにゴミ箱に入れば成功です。

コメントシステムを導入しました!コメント頂けると嬉しすぎて、光の速さで返信します(●´ω`●)

ExecNote.app リリースしました!

ExecNoteは、コードが実行できるMarkdownアプリケーションです。Markdownドキュメント内に記載したコードをクリックすると実行ができます。わざわざターミナルを 起動させる必要がありません!無料ですのでもしよければダウンロードをお願いします。

About Me

11年目のシステムエンジニアです。アプリで生活や仕事を改善したい🐱仕事効率化、自動化のアプリ開発が得意です、ご相談ください。 🚀エンタメ系アプリの開発も模索中🐬社内SEや個人アプリ開発者、システムエンジニアになりたい人と繋がりたい🐱

c# Windowsでファイルを削除せずにゴミ箱に入れる方法

ファイルを削除したいときもあれば、あとで復元させやすいようにするために、ゴミ箱に入れておきたいときもあります。

この記事では、c#でファイルを削除せずにゴミ箱に入れる方法を紹介します。

1. サンプルコード

サンプルコード全文は以下のとおりです。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
using System;
using Microsoft.VisualBasic.FileIO;


namespace sendtorecycle
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
SendToRecycleBin("test.txt");
}

static void SendToRecycleBin(string filepath)
{
FileSystem.DeleteFile(filepath, UIOption.OnlyErrorDialogs, RecycleOption.SendToRecycleBin);
}
}
}

このコードのポイントは、名前空間「Microsoft.VisualBasic.FileIO」にあるFileSystem.DeleteFileメソッドです。

2. メソッド説明

公式ドキュメントはこちらです。

https://docs.microsoft.com/en-us/dotnet/api/microsoft.visualbasic.fileio.filesystem.deletefile?view=net-5.0

DeleteFileメソッドは3つのパラメタを入力にします。

1
public static void DeleteFile (string file, Microsoft.VisualBasic.FileIO.UIOption showUI, Microsoft.VisualBasic.FileIO.RecycleOption recycle);

1つ目は、ゴミ箱に入れるファイルのパスです。上記のサンプルコードでは、カレントディレクトリにあるtest.txtを対象にしています。

2つ目は、ユーザーインタフェースの表示おオプションです。ここでは、エラーがあったときのみ表示するUIOption.OnlyErrorDialogsをセットしています。

3つ目は、ゴミ箱に入れるかどうかのオプションです。RecycleOption.SendToRecycleBinだと、ゴミ箱に入ります。ここをRecycleOption.DeletePermanentlyとすると、ゴミ箱に入らず、完全に削除されます。

3. 実行例

このように、カレントディレクトリに「test.txt」が存在するとします。

そして、dotnet runコマンドで実行します。

すると、以下のようにゴミ箱に入れば成功です。

コメントシステムを導入しました!コメント頂けると嬉しすぎて、光の速さで返信します(●´ω`●)

ExecNote.app リリースしました!

ExecNoteは、コードが実行できるMarkdownアプリケーションです。Markdownドキュメント内に記載したコードをクリックすると実行ができます。わざわざターミナルを 起動させる必要がありません!無料ですのでもしよければダウンロードをお願いします。

About Me

11年目のシステムエンジニアです。アプリで生活や仕事を改善したい🐱仕事効率化、自動化のアプリ開発が得意です、ご相談ください。 🚀エンタメ系アプリの開発も模索中🐬社内SEや個人アプリ開発者、システムエンジニアになりたい人と繋がりたい🐱

【脱・3日坊主】継続するコツ

なにか1つのことを長く継続することって、本当に難しいですよね。私は個人開発でアプリを作ったり、ブログを書いたりしていますが、
よく3日坊主になり、毎日続けることができませんでした。

そんな私でも長く続けるコツを見つけることができましたので、この記事で紹介します。

1. 継続するには、意志力が必要

継続するには、意志力が必要です。

意志力とは目標や計画を決め、それを実現しようとする力です。何かをしよう、もしくはしないでおこうと考えて、やり抜くために発揮されます。自分をコントロールして身の回りにある誘惑に負けず、やるべきことをやり続けることが求められます。

出典:https://news.mynavi.jp/article/20201118-1444924/

例えば、ブログで毎月10万円の収入を得たいから、毎日ブログを書こう!ときめて、ブログを書くことを日々のタスクとして計画したとします。

しかし、実際には仕事して疲れていたり、飲みに行きたかったり、遊びたかったりと、なかなか決めた計画どおりに進めることはできません。

自分を律して、自分の決めた計画どおりに作業することを「意志力」といいます。誘惑に打ち勝つ力と言い換えてもいいかもしれません。

何事も継続するには、様々な誘惑に打ち勝つことが必要です。

そのために、意志力を鍛えることが重要です。

2. 意志力を高めるコツその1:かんたんにこなせる作業量から始める

意志力を高めるコツは、最初から達成が難しい作業量の計画を立てないことです。かんたんにこなせる作業量から計画していきましょう。

例えば、毎日1記事ずつブログを書くのはとても大変です。ブログネタを決めて、構成を決めて、画像を決めたりすると、なかなか終わらせることができません。

その場合は、「1日1章だけ書く」など、かんたんにこなせる作業量から始めましょう。

そうすることで、毎日の作業として習慣化でき、3日坊主になることなく、継続しやすくなります。

この記事も、「1日1章だけ書く」という計画を立てて書いています。

3. 意志力を高めるコツその2:めんどくさくても、必ずやる気力をもつ

しっかり計画を立てても、やる気がおきないときがあると思います。

残業して疲れていたり、ストレスが溜まっていて飲みに行きたかったり、様々な要因があります。

そんなときでも、決めた計画は必ずやり遂げる気力を持ちましょう。

「めんどくさいけど、やるかぁ」という気持ちが、意志力です。

この「自分自身に持つめんどくささ、怠け心」に打ち勝つことができると、継続力は飛躍的に向上します。

めんどくさいと思ったときが、頑張りどころです。

4. 意志力を高めるコツその3:頑張った自分にご褒美をあげる

しっかり頑張ったら、自分にご褒美をあげましょう。

ご褒美といっても、無理に考えず、思いついたものでいいです。

例えば、ドリップでコーヒーを淹れて甘いお菓子を食べるとか、ゲームするとか、小説を読むとか、何でもいいのです。

自分自身がしっかり気分転換できるような、ご褒美をあげましょう。

私は、「ご褒美」のあげ方をすごく悩みました。ゲームもあまりしませんし、小説は長時間読めません。

そこで考えた結果、布団で横になってダラダラすること、でした。Twitterをみたり、AdsenseのPV数をみたり、とにかくだらだらする。眠たくなったら寝る。

自分の考えたご褒美は、これかな、と思っています。

ご褒美の内容は人それぞれだと思います。強制されるものでもありません。いろいろ考えて、自分にぴったりのご褒美を探してみてください。

5. 意志力を高めるコツその4:休むときは、ちゃんと計画した日に休む

本当であれば、休みたいときに休むのが一番いいです。しかし、休みたいときに休んでしまうと、それは意志力の弱さを露呈してしまい、結果的に3日坊主となり続かない要因になります。

よって、休むときは計画的に休みましょう。一週間のうち、土曜日だけ休むと決めた場合は、他の日に休みたくても、頑張って決めたタスクをこなしましょう。

めちゃくちゃしんどくて、今日は休みたい!けど頑張ろう!と感じてタスクをこなしたときの達成感は、半端じゃないものがあります。

意志力を高めて継続する力を身につけたいのであれば、休みは計画した日に休みましょう。

コメントシステムを導入しました!コメント頂けると嬉しすぎて、光の速さで返信します(●´ω`●)

ExecNote.app リリースしました!

ExecNoteは、コードが実行できるMarkdownアプリケーションです。Markdownドキュメント内に記載したコードをクリックすると実行ができます。わざわざターミナルを 起動させる必要がありません!無料ですのでもしよければダウンロードをお願いします。

About Me

11年目のシステムエンジニアです。アプリで生活や仕事を改善したい🐱仕事効率化、自動化のアプリ開発が得意です、ご相談ください。 🚀エンタメ系アプリの開発も模索中🐬社内SEや個人アプリ開発者、システムエンジニアになりたい人と繋がりたい🐱

【脱・3日坊主】継続するコツ

なにか1つのことを長く継続することって、本当に難しいですよね。私は個人開発でアプリを作ったり、ブログを書いたりしていますが、
よく3日坊主になり、毎日続けることができませんでした。

そんな私でも長く続けるコツを見つけることができましたので、この記事で紹介します。

1. 継続するには、意志力が必要

継続するには、意志力が必要です。

意志力とは目標や計画を決め、それを実現しようとする力です。何かをしよう、もしくはしないでおこうと考えて、やり抜くために発揮されます。自分をコントロールして身の回りにある誘惑に負けず、やるべきことをやり続けることが求められます。

出典:https://news.mynavi.jp/article/20201118-1444924/

例えば、ブログで毎月10万円の収入を得たいから、毎日ブログを書こう!ときめて、ブログを書くことを日々のタスクとして計画したとします。

しかし、実際には仕事して疲れていたり、飲みに行きたかったり、遊びたかったりと、なかなか決めた計画どおりに進めることはできません。

自分を律して、自分の決めた計画どおりに作業することを「意志力」といいます。誘惑に打ち勝つ力と言い換えてもいいかもしれません。

何事も継続するには、様々な誘惑に打ち勝つことが必要です。

そのために、意志力を鍛えることが重要です。

2. 意志力を高めるコツその1:かんたんにこなせる作業量から始める

意志力を高めるコツは、最初から達成が難しい作業量の計画を立てないことです。かんたんにこなせる作業量から計画していきましょう。

例えば、毎日1記事ずつブログを書くのはとても大変です。ブログネタを決めて、構成を決めて、画像を決めたりすると、なかなか終わらせることができません。

その場合は、「1日1章だけ書く」など、かんたんにこなせる作業量から始めましょう。

そうすることで、毎日の作業として習慣化でき、3日坊主になることなく、継続しやすくなります。

この記事も、「1日1章だけ書く」という計画を立てて書いています。

3. 意志力を高めるコツその2:めんどくさくても、必ずやる気力をもつ

しっかり計画を立てても、やる気がおきないときがあると思います。

残業して疲れていたり、ストレスが溜まっていて飲みに行きたかったり、様々な要因があります。

そんなときでも、決めた計画は必ずやり遂げる気力を持ちましょう。

「めんどくさいけど、やるかぁ」という気持ちが、意志力です。

この「自分自身に持つめんどくささ、怠け心」に打ち勝つことができると、継続力は飛躍的に向上します。

めんどくさいと思ったときが、頑張りどころです。

4. 意志力を高めるコツその3:頑張った自分にご褒美をあげる

しっかり頑張ったら、自分にご褒美をあげましょう。

ご褒美といっても、無理に考えず、思いついたものでいいです。

例えば、ドリップでコーヒーを淹れて甘いお菓子を食べるとか、ゲームするとか、小説を読むとか、何でもいいのです。

自分自身がしっかり気分転換できるような、ご褒美をあげましょう。

私は、「ご褒美」のあげ方をすごく悩みました。ゲームもあまりしませんし、小説は長時間読めません。

そこで考えた結果、布団で横になってダラダラすること、でした。Twitterをみたり、AdsenseのPV数をみたり、とにかくだらだらする。眠たくなったら寝る。

自分の考えたご褒美は、これかな、と思っています。

ご褒美の内容は人それぞれだと思います。強制されるものでもありません。いろいろ考えて、自分にぴったりのご褒美を探してみてください。

5. 意志力を高めるコツその4:休むときは、ちゃんと計画した日に休む

本当であれば、休みたいときに休むのが一番いいです。しかし、休みたいときに休んでしまうと、それは意志力の弱さを露呈してしまい、結果的に3日坊主となり続かない要因になります。

よって、休むときは計画的に休みましょう。一週間のうち、土曜日だけ休むと決めた場合は、他の日に休みたくても、頑張って決めたタスクをこなしましょう。

めちゃくちゃしんどくて、今日は休みたい!けど頑張ろう!と感じてタスクをこなしたときの達成感は、半端じゃないものがあります。

意志力を高めて継続する力を身につけたいのであれば、休みは計画した日に休みましょう。

コメントシステムを導入しました!コメント頂けると嬉しすぎて、光の速さで返信します(●´ω`●)

ExecNote.app リリースしました!

ExecNoteは、コードが実行できるMarkdownアプリケーションです。Markdownドキュメント内に記載したコードをクリックすると実行ができます。わざわざターミナルを 起動させる必要がありません!無料ですのでもしよければダウンロードをお願いします。

About Me

11年目のシステムエンジニアです。アプリで生活や仕事を改善したい🐱仕事効率化、自動化のアプリ開発が得意です、ご相談ください。 🚀エンタメ系アプリの開発も模索中🐬社内SEや個人アプリ開発者、システムエンジニアになりたい人と繋がりたい🐱

Blazorwasmで簡単にタイマーを実装する方法(TimeSpan利用)

Blazor wasmでタイマーを実装する方法は様々あると思いますが、TimeSpanクラスを使用するのが一番簡単だと思いましたので、まとめてみました。

1. TimeSpanでタイマー設定時刻(時分秒)を定義する

TimeSpanクラスのオブジェクトを生成するには、以下のようにコーディングします。

TimeSpan TimerTime = new TimeSpan(時, 分, 秒);

時、分、秒はint型で指定します。

TimeSpan 構造体

1
2
//タイマー設定時刻(30分)
public static TimeSpan TimerTime = new TimeSpan(0, 30, 0);

2. 1秒ずつ減算する

減算するには、TimeSpanオブジェクトのSubtractメソッドを使用します。

TimeSpan.Subtract(TimeSpan) メソッド

このタイマーは1秒ごとに更新しますので、1秒減算する処理を定義します。

1秒を定義するTimeSpanオブジェクトを使用し、Subtractメソッドの引数に使用します。

1
2
3
4
5
6
7
//1秒(減算用)
public static TimeSpan onesec = new TimeSpan(0, 0, 1);

private void Subtract()
{
TimerTime = TimerTime.Subtract(onesec);
}

3. タイマーのカウントダウン処理

一定時間ごとに処理するには、System.Timers.Timerオブジェクトを使用します。

このタイマーアプリでは、1秒ごとに減算する処理を実行するようにしています。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

//Timerオブジェクト(タイマー処理)
private System.Timers.Timer _timer;

private void SetTimer()
{
_timer = new System.Timers.Timer(1000);
_timer.Elapsed += OnTimedEvent;
_timer.AutoReset = true;
_timer.Enabled = true;
}

private void OnTimedEvent(Object source, ElapsedEventArgs e)
{
Subtract();
StateHasChanged();
}

_timer = new System.Timers.Timer(1000)で、1秒ごとに処理するよう定義します。

_timer.Elapsed += OnTimedEventで、1秒ごとにOnTimedEventメソッドを実行するようにしています。

OnTimedEventメソッドでは、1秒減算処理と、StateHasChanged()メソッドを実行しています。

StateHasChanged()は、Blazorのビューを更新するための命令です。

4. カウントダウンの一時停止

タイマーの一時停止処理を実装します。

先ほどのSystem.Timers.TimerメソッドのEnabledfalseに設定することで、一時停止を行います。

1
2
3
4
private void PauseTimer()
{
_timer.Enabled = false;
}

5. リセット処理

タイマーをリセットするには、以下の処理を行います。

  1. TimeSpanオブジェクトであるTimerTimeを初期値に戻す
  2. カウントダウン中にリセットされることを考慮し、タイマーの一時停止処理であるPauseTimer()メソッドを呼び出す
  3. StateHasChanged()メソッドで、再表示する
1
2
3
4
5
6
7

private void Reset()
{
TimerTime = new TimeSpan(0, 30, 0);
PauseTimer();
StateHasChanged();
}

6. ビュー部分

razorページのビューの部分(HTML)は以下のようにしました。

TimerTime.ToString(@"mm\:ss")で、「分(2桁):秒(2桁)」で表示するようにしています。

1
2
3
4
5
6
7
<h1>TimeSpan Timer Sample</h1>

<label>@TimerTime.ToString(@"mm\:ss")</label>

<button @onclick="SetTimer">Start</button>

<button @onclick="PauseTimer">Pause</button>

7. 実行イメージ

以下のように、タイマーが表示され、開始、一時停止、リセットができれば成功です。

8. ソースコード全文

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
@using System.Timers;
@page "/"

<h1>TimeSpan Timer Sample</h1>

<label>@TimerTime.ToString(@"mm\:ss")</label>

<button @onclick="SetTimer">Start</button>

<button @onclick="PauseTimer">Pause</button>

<button @onclick="Reset">Reset</button>

@code {

//タイマー設定時刻(30分)
public static TimeSpan TimerTime = new TimeSpan(0, 30, 0);

//1秒(減算用)
public static TimeSpan onesec = new TimeSpan(0, 0, 1);

//Timerオブジェクト(タイマー処理)
private System.Timers.Timer _timer;

private void SetTimer()
{
_timer = new System.Timers.Timer(1000);
_timer.Elapsed += OnTimedEvent;
_timer.AutoReset = true;
_timer.Enabled = true;
}

private void OnTimedEvent(Object source, ElapsedEventArgs e)
{
Subtract();
StateHasChanged();
}

private void PauseTimer()
{
_timer.Enabled = false;
}

private void Subtract()
{
TimerTime = TimerTime.Subtract(onesec);
}

private void Reset()
{
TimerTime = new TimeSpan(0, 30, 0);
PauseTimer();
StateHasChanged();
}

}

コメントシステムを導入しました!コメント頂けると嬉しすぎて、光の速さで返信します(●´ω`●)

ExecNote.app リリースしました!

ExecNoteは、コードが実行できるMarkdownアプリケーションです。Markdownドキュメント内に記載したコードをクリックすると実行ができます。わざわざターミナルを 起動させる必要がありません!無料ですのでもしよければダウンロードをお願いします。

About Me

11年目のシステムエンジニアです。アプリで生活や仕事を改善したい🐱仕事効率化、自動化のアプリ開発が得意です、ご相談ください。 🚀エンタメ系アプリの開発も模索中🐬社内SEや個人アプリ開発者、システムエンジニアになりたい人と繋がりたい🐱

Blazorwasmで簡単にタイマーを実装する方法(TimeSpan利用)

Blazor wasmでタイマーを実装する方法は様々あると思いますが、TimeSpanクラスを使用するのが一番簡単だと思いましたので、まとめてみました。

1. TimeSpanでタイマー設定時刻(時分秒)を定義する

TimeSpanクラスのオブジェクトを生成するには、以下のようにコーディングします。

TimeSpan TimerTime = new TimeSpan(時, 分, 秒);

時、分、秒はint型で指定します。

TimeSpan 構造体

1
2
//タイマー設定時刻(30分)
public static TimeSpan TimerTime = new TimeSpan(0, 30, 0);

2. 1秒ずつ減算する

減算するには、TimeSpanオブジェクトのSubtractメソッドを使用します。

TimeSpan.Subtract(TimeSpan) メソッド

このタイマーは1秒ごとに更新しますので、1秒減算する処理を定義します。

1秒を定義するTimeSpanオブジェクトを使用し、Subtractメソッドの引数に使用します。

1
2
3
4
5
6
7
//1秒(減算用)
public static TimeSpan onesec = new TimeSpan(0, 0, 1);

private void Subtract()
{
TimerTime = TimerTime.Subtract(onesec);
}

3. タイマーのカウントダウン処理

一定時間ごとに処理するには、System.Timers.Timerオブジェクトを使用します。

このタイマーアプリでは、1秒ごとに減算する処理を実行するようにしています。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

//Timerオブジェクト(タイマー処理)
private System.Timers.Timer _timer;

private void SetTimer()
{
_timer = new System.Timers.Timer(1000);
_timer.Elapsed += OnTimedEvent;
_timer.AutoReset = true;
_timer.Enabled = true;
}

private void OnTimedEvent(Object source, ElapsedEventArgs e)
{
Subtract();
StateHasChanged();
}

_timer = new System.Timers.Timer(1000)で、1秒ごとに処理するよう定義します。

_timer.Elapsed += OnTimedEventで、1秒ごとにOnTimedEventメソッドを実行するようにしています。

OnTimedEventメソッドでは、1秒減算処理と、StateHasChanged()メソッドを実行しています。

StateHasChanged()は、Blazorのビューを更新するための命令です。

4. カウントダウンの一時停止

タイマーの一時停止処理を実装します。

先ほどのSystem.Timers.TimerメソッドのEnabledfalseに設定することで、一時停止を行います。

1
2
3
4
private void PauseTimer()
{
_timer.Enabled = false;
}

5. リセット処理

タイマーをリセットするには、以下の処理を行います。

  1. TimeSpanオブジェクトであるTimerTimeを初期値に戻す
  2. カウントダウン中にリセットされることを考慮し、タイマーの一時停止処理であるPauseTimer()メソッドを呼び出す
  3. StateHasChanged()メソッドで、再表示する
1
2
3
4
5
6
7

private void Reset()
{
TimerTime = new TimeSpan(0, 30, 0);
PauseTimer();
StateHasChanged();
}

6. ビュー部分

razorページのビューの部分(HTML)は以下のようにしました。

TimerTime.ToString(@"mm\:ss")で、「分(2桁):秒(2桁)」で表示するようにしています。

1
2
3
4
5
6
7
<h1>TimeSpan Timer Sample</h1>

<label>@TimerTime.ToString(@"mm\:ss")</label>

<button @onclick="SetTimer">Start</button>

<button @onclick="PauseTimer">Pause</button>

7. 実行イメージ

以下のように、タイマーが表示され、開始、一時停止、リセットができれば成功です。

8. ソースコード全文

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
@using System.Timers;
@page "/"

<h1>TimeSpan Timer Sample</h1>

<label>@TimerTime.ToString(@"mm\:ss")</label>

<button @onclick="SetTimer">Start</button>

<button @onclick="PauseTimer">Pause</button>

<button @onclick="Reset">Reset</button>

@code {

//タイマー設定時刻(30分)
public static TimeSpan TimerTime = new TimeSpan(0, 30, 0);

//1秒(減算用)
public static TimeSpan onesec = new TimeSpan(0, 0, 1);

//Timerオブジェクト(タイマー処理)
private System.Timers.Timer _timer;

private void SetTimer()
{
_timer = new System.Timers.Timer(1000);
_timer.Elapsed += OnTimedEvent;
_timer.AutoReset = true;
_timer.Enabled = true;
}

private void OnTimedEvent(Object source, ElapsedEventArgs e)
{
Subtract();
StateHasChanged();
}

private void PauseTimer()
{
_timer.Enabled = false;
}

private void Subtract()
{
TimerTime = TimerTime.Subtract(onesec);
}

private void Reset()
{
TimerTime = new TimeSpan(0, 30, 0);
PauseTimer();
StateHasChanged();
}

}

コメントシステムを導入しました!コメント頂けると嬉しすぎて、光の速さで返信します(●´ω`●)

ExecNote.app リリースしました!

ExecNoteは、コードが実行できるMarkdownアプリケーションです。Markdownドキュメント内に記載したコードをクリックすると実行ができます。わざわざターミナルを 起動させる必要がありません!無料ですのでもしよければダウンロードをお願いします。

About Me

11年目のシステムエンジニアです。アプリで生活や仕事を改善したい🐱仕事効率化、自動化のアプリ開発が得意です、ご相談ください。 🚀エンタメ系アプリの開発も模索中🐬社内SEや個人アプリ開発者、システムエンジニアになりたい人と繋がりたい🐱