目標達成アプリ スケジュールの仕方
これは、目標達成アプリ(アナログ版)の説明です。
継続する事で効果が出るものに関するスケジュールの方法です。
あくまで、例なので自分に合ったやり方が良いと思います。
①「継続する項目のスケジュール」
1日の生活リズムを見直して行動するタイミングを見つけます。
夕食前に筋トレ⇒夕食、風呂⇒パソコン作業…と行動パターンを作ります
3日実際に試してみてうまく行かない所を直す。⇒3日試して反省してまた3日試して…とPDCAみたいにやります。
日記など記録を付けてやると良い部分と悪い部分を客観的に見直す事が可能になります。
兎にも角にも、継続する為に楽しめる事がキーポイントになります。
②「一歩ずつ進めるもののスケジュール」
とりあえずで、手順ややる順序を決めます。
実際にやってみて良い部分と悪い部分をみて、やり方を改良、カスタマイズしてより良い方法へアップデートして行きます。
これも、日記などで記録を付けてやるとカスタマイズがやりやすいと思います。
①と②を同時に進めるには、1週間とか適当な期間を設けて、その期間で継続するのが良いのではないでしょうか。
<例>
①:筋トレ、ウォーキング
②:読書、勉強
とある場合、筋トレと勉強、読書とウォーキングのセットを1日おきにやるなど…
人それぞれにベストなやり方があると思います。
Qtデザイナーの使い方
前回に引き続き、Qtでの実装(正確にはソースを見るだけ...)をやります。
まずは、QtCreatorを立ち上げてください(※インストール方法はこちら)
上のような画面が表示されます。
少し見ずらいですが、C++のお約束で、「ヘッダファイル」「ソースファイル」と別れています。
フォームはVB.Netと同じ画面(UIフォーム)です。
そして、ヘッダファイル
ソースファイル
起動するためのメインメソッド
※クラス名のリンクにはQtのドキュメントページへのリンクがあります
が、、、全部英語です。。。日本語がほしいですが、いつものことなので(笑)
「ヘッダファイル」
名前空間の「Ui」に「MainWindowクラスを定義」
QMainWindowクラスを継承している「MainWindowクラス」の内容を定義しています。
コンストラクタの定義部分にある「explicit」に関しては
こちらのサイトを参考に勉強さしてもらいました。
→管理者様へ「勉強になりました。」
そして、プライベートで保持しているのが自分自身(MainWindow)
「ソースファイル」
コンストラクタで、引数にあるQwidgetのポインタより自分自身のインスタンスを作成
setupUi()で画面を作成しています。→一番上のフォームで作成した画面が作成される
まとめると、
1.フォームで画面のデザインを作成して
2.MainWindowで画面作成(デザインで表示)のほかデータ取得などの処理を実装
3.コンパイルして起動ファイルを作成して実行
そんな感じで画面の作成をしていきます。
コンパイル後の実行ファイルはクロスプラットフォームに対応しているようです。
(Windowsでコンパイル(ビルド)すればWindowsで起動できるしLinuxなら....)
大雑把に作成手順でした。
次は、フォームの作成に着手します。
目標達成アプリ ガイド
目標達成アプリ(アナログ版)のガイドです。
メインページ
https://zenryokuservice.github.io/GoalAchievement/
手順1
「大目標〜実現項目までを入力する」
これの手順、考え方をご説明申し上げたいと思います。
「大目標」
キホン的にはなんでも良い、が、単純な事や簡単に出来る事には余り意味が無いと思います。
継続して初めて効果が出る様な事や達成までに道のりが長いものに効果を発揮する想定です。
以下の例には目標達成アプリ作成時の目標を設定した時の場合も記載してます。
<大目標の例>
目標達成アプリを作る、10キロ痩せるetc…
「準目標」
大目標の達成の為に必要な事を3つ挙げます。
<準目標の例>
「目標達成アプリ」{
汎用画面APを作る、
目標達成までの道のりをまとめる(ロードマップ作成)ツールを作る、
自分のやった事でどれだけ目標に近づいたか分かる(進捗管理)ツールを作る
}
「10キロ痩せる」 {
運動する、食事を調整する、新習慣を付ける
}
その他…
目標の為に必要な事柄、作り上げるもの
習慣や記録など…
「実現項目」
上にあるそれぞれの準目標を達成する為に必要な「やるべき事」を3つずつ挙げます
<実現項目の例>
「汎用画面AP:c++ 、Qt、UMLの勉強」
「目標達成までの道のり…:実際にアナログでやってみる、ロードマップ作成ツール作成、情報整理ツール作成」
「進捗管理ツール:日記を書く為のツール、ブログなどへの連携、進捗メーターなど描画技術」
「運動をする:食前に腕立て伏せ、腹筋を10回やる、ウォーキングetc」
「食事を調整する:油分のない食事(食事制限)、和食中心にする、朝のパン食をやめる」
「新習慣をつける:日記を付ける、一日5分の座禅をする、一日のスケジュールを見直す」
Gitにまとめてみました。
C++ 環境変数の名前を取得する
早速実装に入ります。
今回実装するのは、「環境変数の名前を取得する」処理です。
"Human.h"は使用していません。。。失礼
extern char** environ; →「extern」はファイルを超えて使用できるという意味らしい
結論的に char** environ;は環境変数の名前と値を保持しているであろうと思う。
※確定まで行きませんでした。。。
<実装>
<出力結果>
上記の"="より左が環境変数の名前、右が値になります。
でも、他にも定義している"JAVA_HOME", "DERBY_HOME"が出力されないのはなんでだろう?
→ 環境変数に設定していませんでした。。。
余談ですが。。。
c++はゲーム〜スマホアプリ、OSまで、殆どのアプリを作成する事が出来ます。Javaも追いつけ追い越せと頑張っています。
手近な所では以下の様な物もあるので是非一度やってみてはどうでしょうか?
とりあえずは、ここまでということで。。。
目標達成アプリ(アナログ版)
表題の様なアプリを作ろうといています。
以下に手順を示します。
図の上から順に大目標~実現項目まで四角の中を埋めて
概要ロードマップと詳細ロードマップに従いやり続けるだけです。
続けるのが大変ですが(笑)
【手順】
1.各項目をリストアップ:大目標~実現項目を下図のように書き出す
2.概要ロードマップ:各実現項目を実行する順番に並べる(準備、成果物、人脈も)
3.詳細ロードマップ:実現項目の実行順序をロードマップにする
4.進捗日記 ※達成感が感じられればなんでも良い
【図にするとこんな感じ】目標達成アプリ ガイドを作りました。
上の図、黄色部分が概要ロードマップになります。
概要ロードマップの各実行項目の実行順を『詳細ロードマップ』と呼ぶことにします。
詳細ロードマップの書き方
1.準備する為にやる事を書き出します
2.人脈を広げる、作る為にやる事を書き出します(不要であれば何も書きません)
3.概要ロードマップで記載した成果物を作る手順を書き出します
※補足
ロードマップを進む時の行動サイクルを作るとやりやすい
<例>
前調査⇒設計⇒テストコード⇒ブログにアップ⇒実装⇒設計確認⇒前調査…
進捗に関しては、日記形式で以下のように記載する。
・「今日やった事」 → 現状に対する考え(現状の良い所と悪い所)
・「次回やること」 → 今後に対する考え(今後に対してどの様に行動するか?)
・「ロードマップのどこまで進んでいるか?」
週に一度、やった事(日記参照)を省みてブラッシュアップ(出来れば…)次の週に臨む…
ここら辺の細かい部分は人工知能に頼っても良いのでは?と思いました。
<実行項目の仕分>
毎日続けるものと一歩ずつ進んで行くものに仕分ます。
そしてスケジューリングします。
未確定事項の決定次第、内容を更新していきます。
C++ OS名を取得する
前回は「Qt使い方 画面作成 mainメソッド 」をやりました。
今度は、OS名の取得実装です。
下記のファイルをインクルードします。
どうやら標準ライブラリと呼ばれるものでしょうか? →後ほど調べます...oz...
<sys/utsname.h>
<stdlib.h>
C++勉強する上で必要になりそうだなぁ。。。
<実装>
<出力結果>
Qt使い方 画面作成 mainメソッド
前回は、Qtのインストールをおこないました。
まずは、どんな画面を作成するのか?については今度にして...
※画面テンプレートのイメージ作成が間に合いませんでした。。。
画面作成に必要な情報を取得する部分の処理について記載いたします。
JavaもCもまず動くのはMainメソッドです。
(Javaサーブレットもサーバーアプリ内にあります。。。記憶が正しければですが(笑)
まずは設計の確認
小さくて見づらいですが、「汎用画面AP」クラス内にMainメソッドがあります。
汎用画面APの機能一覧より起動時に以下の情報を取得します。
・OS名
・デバイスサイズ
まだ詳細は決めていませんが大雑把にこんなコードになります(Java的に)
public static final String SETTEI_XML = "設定ファイルへのパス";
private 画面コンテキスト gamenCtx;
public static void main(String[] args) {
gamebCtx = new 画面コンテキスト();
SystemPropertyUtil.OS名取得(gamenCtx);
SystemPropertyUtil.デバイスサイズ取得(gamenCtx);
FileUtil.ファイル読み込み(SETTEI_XML, gamenCtx);
// TODO:その他必要な設定値があればそれを取得する
// 画面を表示する処理
this.exeHanyoGamenAP(gamenCtx);
}
次回は、Qtでのデザイン作成をやります。
その次に、OS名の取得をC++でやります。
WifiはつながるのにLANはつながらない
それは、突然やってきます。
「ネットワーク接続ができません」。。。
解決するまでは「やばい、やばい、ヤバイ.....」と焦ります。
いろんなケースがあるのですが、
今回の「つながらない」ケースは
ある、ルータを挟んでそれ以降のPCが接続できなかったケースです。
【イメージ】
「接続できる」 | 「このルータから先は接続できない」
<ブロードバンド・ルータ> → <内部ルータ> → PC
【対応】
ルータを再起動したら治った。。。
毎回のことですが、なおしてみると「なんだこんなことかぁ(笑)」となるのですが
回数を重ねると悔しいものがあります。。。
慣れましたが(笑)
Qtの使い方 インストール
前回JavaとC++の実装比較を行いました。
次は、C++での画面作成に「Qt」を使用しようと思い立ち...
早速。。。Qtの仕様などは割愛します。 別のサイトを参照してください。
Qt - Home (Japanese) ← 日本語版です。
上記のフレームワークを使用するうえでの注意は
ざっくりと、商用で使用するなら「お金を払いましょう」
無料でやるなら「ソースを公開しましょう」
という認識です。
<ダウンロードについて >
開発で使用するのは「Qtクリエーター」です。(結構重いです)
Qtの実装ではノートPCでなく
デスクトップPCでの開発で行こうと思います。
<インストーラについて>
windows用のインストーラ、その他のプラットホーム..と別れています。
間違うと結構手間(ダウンロードに時間がかかりますので注意)
ダウンロードした後にインストーラーを起動したら、
あとはスルンと行きます(笑)
<Qt起動>
新しいプロジェクトを選択すると下記のように表示されます。
今回作成しようとしているのは「汎用画面AP」なので
「Qtウィジェットアプリケーション」を選択します。
ここからC++出の実装が始まります。
余談ですが「オブジェクト指向」を学ぶのに画面作成はとても入りやすいし
理解もしやすいと思います。
プログラム実行結果 → オブジェクトの表示
を直接目で確かめることができるからです。
次回は開発を始めたいと思います。
javadb Derby インストール
javaDB⇒「Derby」のインストール手順
1.アパッチのサイトにアクセスして derbyをダウンロードします。
Apache Derby Downloadページ
2.JAVA_HOMEを設定して、パスを通す
※Windowsの場合は"$VAL"を"%VAL%"に読み替えてください
・~/.bash_profileに JAVA_HOME=jdkへのパス と記載する
・同様にPATH = $JAVA_HOME/bin:$PATH と記載する
3.ダウンロードしたderby-binに環境変数を設定:derbyは使用しやすい場所に配置
※JDKの中に入っているのでそちらでも良い(JAVA_HOME/db/lib/derby.jar)
>sudo vi(vim) ~/.bash_profile
DERBY_HOME = ダウンロードしたderbyのフォルダへのパス/bin
CLASSPATH=$SERBY_INSTALL/lib/derby.jar:$DERBY_INSTALL/lib/derby-tools.jar
>source ~/.bash_profile →これでPATHを反映する
3.DERBYをインストールした場所に移動してセットアップバッチ(シェル)を叩く
>cd $DERBY_INSTALL /bin
>. setEmbeddedCP
4.インストール確認にDerby情報を出力する
>java org.apache.derby.tools.sysinfo
以上で、セットアップ完了です。