Quantcast
Channel: Futurismo
Viewing all 91 articles
Browse latest View live

Eclipse CDTで変数や関数が赤バツになってしまう場合の対処方法(C++11対応も)

$
0
0

Eclipse CDTで変数や関数が赤バツになってしまう場合の対処方法

Eclipseに外部のソースをインポートすると、赤バツがたくさんでることがある。また、C++11対応のソースが赤バツになることがある。

これは、CDTのインデックス機能がインデックスをするときに、ファイルパスの場所やプリプロセッサの定義値を知らないから。

パスおよびシンボルを設定

こんなときは、プロジェクトを右クリックしてプロパティを選択。

  • C/C++一般 -> パスおよびシンボル

ここでMakefileに書くような情報(インクルードパスやdefine値)を設定することで、赤バツが消える。たとえば、

  • インクルードパスを追加する場合にはインクルードを選択。
  • define値を追加するときにはシンポルを選択。

Eclipse CDTで C++11のソースを赤バツにしない方法

すでにEclipseの設定でdefine値が設定してあると、自分の値が反映されないことがある。C++11などはまさにそうだった。この場合は、

  • C/C++一般 -> Prosessor Include, Macro..->エントリ -> CDT User Setting Entrys

であたいを追加する。

__cplusplus = 201103L

Links


C++11のrandomライブラリで1から10の乱数を生成する方法のメモ

$
0
0

C++で乱数を利用する方法について調べてみた。

やりたいこと

1~10の間で、ランダムな数字を取得する

実装方法

C++には、長らく乱数生成はC言語に頼ってきた歴史があるようだが、C++11でようやくrandomライブラリが標準実装されたようだ。

利用するためには、以下をインクルード。

#include 

覚えないと行けないことが2つある。

  • 乱数生成エンジン ・・・ 乱数を生成する。
  • 分布生成器 ・・・ 生成された乱数を分布に従わせる。一様分布、正規分布、ベルヌーイ分布、ポアソン分布、など。

乱数生成エンジンは種類がたくさんあり、正直どれをつかえばいいのかわからないので、とりあえずコレ。

  // 予測不能な乱数生成器(class   
  std::random_device
  // メルセンヌツイスターの32ビット版(typedef)
  std::mt19937

分布は一様分布を利用。これは、intとdoubleでつかうエンジンが異なる。

// 整数型 std::uniform_int_distribution // 浮動小数点型 std::uniform_real_distribution

追記

randomライブラリは実行速度がrandに比べて早くないことが判明!なので、srand,randを使った方法も追記。srandはループの外で宣言する必要がある。

実装

-std=gnu++0xをコンパイルオプションにつけることを忘れないように。

こんな感じで、生成されました。

5.28957
8.79693
5.23333
1.76491
3.95931
5.52467
8.1513
6.85362
1.68268
9.75644

Links

秀丸のような罫線マクロないかな・・・

$
0
0

秀丸エディタやサクラエディタには、Ctrl+Alt+Shift+矢印で罫線が引けるすぐれものマクロがある。

こういう便利な機能がほかのエディタでもないかなといろいろ調べてみたけれども、みつからなかった。

AuthHotKeyのキーバインドで罫線を割り当ててみたところ、左右はいい感じに動くけれども、上下が罫線マクロのように賢くできないので、挫折。

秀丸のような罫線マクロないかな・・・

参考

C++での優先順位付きキューの使い方まとめ(PriorityQueue)

$
0
0

優先順位付きキューのをPriorityQueueという。

キューの中で最大(最小)のものを抜き出す場合などに利用する。

宣言

デフォルトでは大きい順でpopされるので、最小のものをpopで取り出すには、greaterを宣言時に追記する。

#include <queue>
using namespace std;

priority_queue <int> maxpq; // default 大きい順
priority_queue<int, vector<int>, greater<int> > minpq; //小さい順

関数

要素を追加する(push)
pq.push(1);
先頭の要素を取り出す

最大(または最小)の先頭を取り出します。

pq.pop();
要素を調べる
// キューがからかどうかを調べる
pq.empty()

// 要素数をしらべる
pq.size();

// 次に取り出される要素を調べる
pq.top();

Sample

昇順に取り出す

#include <queue>
#include <iostream>
using namespace std;

int main()
{
  priority_queue<int> pq;

  pq.push( 2 );
  pq.push( 1 );
  pq.push( 3 );

  cout << pq.top() << endl;
  pq.pop();
  cout << pq.top() << endl;
  pq.pop();
  cout << pq.top() << endl;
  pq.pop();

  return 0;
}

実行結果

3
2
1

降順に取り出す

#include <queue>
#include <iostream>
using namespace std;

int main()
{
  priority_queue<int, vector<int>, greater<int> > pq;

  pq.push( 2 );
  pq.push( 1 );
  pq.push( 3 );

  cout << pq.top() << endl;
  pq.pop();
  cout << pq.top() << endl;
  pq.pop();
  cout << pq.top() << endl;
  pq.pop();

  return 0;
}

実行結果

1
2
3

おまけ

ダイクストラ法の実装をする際に、C++のSTLがあるとは知らずに、自前で最小優先キューを実装しました。STLを利用すればよかった。

このJava Sourseを参考にC++に書きなおした。
ftp://ftp.cs.princeton.edu/pub/cs226/bins/MinPQ.java

「モダンC言語プログラミング」を読んだ!C言語の組込みエンジニアのためのモダンテクニックが満載

$
0
0

とてもエキサイティングな本に出会い、一気に読んでしまいました。感想を書こうと思います。



ターゲット読者層は組込み分野!

この本のターゲット読者はズバリ、組込みエンジニア。ソースコードのサンプルも、ズバリ組込みな内容を扱っています。C言語を使う人=組込みの人と決めつけているよう。書籍のあちこちで、このアプローチを組込み開発で適応するためにはどうすればいいかという考察が入るのがよい。

TIOBEというプログラミング言語の統計を見ると、C言語を利用している人がプログラマの2割程度いることがわかる。自分はこのデータを初めて知ったけれども、まずこの事実をしれたことは嬉しい事だ。C言語はいかに重要なのかという論題が冒頭で熱く語られる。

 内容について

各章のテーマは、広く浅く書かれているので、もう少し各章の突っ込んだ内容がほしいところだけれども、それはこの本の趣旨には合わないのだろう。

内容は、自分の日々考えていることに非常にマッチしていて、とてもエキサイティングな読後感でした。以下、自分の過去記事も整理しつつ、各章の覚書。

開発環境について

開発環境である、Ubuntuの導入方法と、Eclipseの使い方が紹介されていた。ここは、得るものはなしかな。

オブジェクト指向

C言語でオブジェクト指向のようにコーディングするためのテクニックが紹介されている。半分知っているようで、知らなかった。C言語でも、オブジェクト指向なプログラミングは可能だと気づかせてくれる。

あとは、Cでオブジェクト指向を勉強するならば、ズバリこの本でしょう。これもオススメ。



デザインパターン

自分の来年の重点学習目標の一つが、デザインパターンをマスターすること。この章は、C言語を利用したデザインパターンの実装方法が紹介されている。この章は知らないことが多く、とても興味深かった。

以下のパターンが紹介されている。

  • ステート
  • テンプレートメソッド
  • オブザーバ
  • チェインレスポンシビリティ
  • ビジター

C言語に特化したデザインパターンの本をまだ知らない。これが自分が出会った中で、もっともよくかかれた本かも。この本でも勉強するつもり。まだ読んでない。

いづれにしろ、この章は再読しよう。

TDD リファクタリング

テストフレームワークとして、GoogleTestが紹介される。レガシーコードに対するリファクタリングの実践がサンプルとして載っているのがうれしい。しかも、内容が組込みなので、実践的。パフォーマンスに関する考察もある。

namespaceを利用して、static関数を強引にテストケースに組み込む方法が紹介されていた。C++系のxUnitで利用できるテクニック。

namespace unit_test {
    #include "hogehoge.c"

    TEST(hoge,hogehoge) {
        EXPECT_EQ(3, hoge(1, 2));
    }
}

モックやスタブの定義についての言及は、自分の認識とは違うのだけれども、まあよい。モッキングフレームワークはC言語でいいものがないと書かれていた。そんなことはない、CMockやfffがあるではないか!

CでTDDをするならば、この本が必読本。



継続的インテグレーション

Jenkinsの紹介。これもあまり新しきことはなし。
- C言語/C++でJenkins実践入門してみるよ | Futurismo

ビルドスクリプトとして、sConsが紹介されている。なかでも、感心したのが、スモークテストでのPytyonを利用した受け入れテストのアプローチ。pyhthonコードからシリアル接続を経由してテストする方法。この作者はPythonが好きなのかな?自分は、Rubyで同じことをやろうとした。

また、Valgrindを使ったメモリ破壊との戦いも、組込みならでは。こういうことにページを割くところも高評価。ValgrindはLinux用ツールなので、まだ使ったことがないけれども、今度調べてみようかな。

まとめ

組込みの現場ではなぜ、これらのテクニックが浸透しないのだろうか?

Eclipseが浸透しないのは、べつによい。エディタはEclipseだけではないし、EmacsやVimはEclipseに負けないくらいだ。

オブジェクト指向やデザインパターンが浸透しないのは、実行速度やメモリが関係しているのだろう。また、TDDもオブジェクト指向のほうが実施しやすい。(とくにMock)CIは、文化的なものだと思う。

  • 古い考えの人がCProgrammerには多いのだろうか?
  • レガシーコードをメンテナンスしていると、新しいテクニックは不要なのだろうか?
  • 過去の手続き型でかかれたレガシーコードを流用しているから、新しいテクニックを試す場がないのだろうか?

どれも、決定的な理由にはならない。一つ思うのは

「無知」

だからということ。自分もCに関わるいろんな情報を集めているものの、ほかの言語とくらべて、Cは圧倒的に情報量が少ない。Eclipsしかり、TDDしかり、Jenkinsしかり。

C Programmerに足りないものは、道標となるような情報や、書籍だ。C言語は使用率第一位の言語なのだ。これからも、こういう書籍がドンドン出てきてほしい。

UnionFindアルゴリズムを実装してみた

$
0
0

UnionFindをC++で実装した。

UnionFindとは、2つの異なる集合がつながっているかを調べるアルゴリズム。詳しくは以下。

Implement

以下のJavaでかかれた実装をC++版に書き直してみた。木構造にデータを保持する場合と、そう強いない場合の2つを実装。

エンジニアとプログラマの違いについて定義してみた

$
0
0

エンジニアの病気、うつ病にかかってる。

プログラマとエンジニア、並べて使われることが多いけれども、違いがよくワカラなかった。

アイデンティティ・クライシスを乗り切るために、ググってみた。

技能者としてのプログラマ

wikipedia

まずはじめは、wikipedia。客観的な説明がわかりやすい。
プログラマは、ことばのまんま。

コンピューターのプログラムを作成する人

日本ではプログラマーというが、海外ではプログラムコードライター(Program code writer)、略してコーダー(coder)といい…

エンジニアは、言い換えると技術者。対して、プログラマは技能者と語られる。

技術者(ぎじゅつしゃ、英語: engineer、エンジニア)とは、主に工学(エンジニアリング)分野の専門的な技術を持った実践者のこと

技術者に類似した概念に技能者がある。技能者とは、機械の組み立てや精密加工などの、ものづくりの実作業を担当する者を指す

情報技術の分野では、プログラマー(狭義ではコーダー)は技能者とされ、分析・設計を担当するシステムエンジニア、プロダクトマネージャーなどの職種が技術者であるとされる

Yahoo 知恵袋

つづいて、知恵袋。これはわかりやすい。

簡単に建築に例えて言えば
大工:プログラマー
設計士:システムエンジニア

プログラマーは、SE(監督)の指示(仕様書)に従って
コーデイングします。コーデイングとは、日本語をコンピューター語に置き換える通訳のような仕事だと思ってください。

アンサイクロペディア

一見ふざけているようで、真実を語っているアンサイクロペディアによると・・・

プログラマー(英:programmer)とは、コンピュータをバグらせる犯罪者。主に高級言語という名のスパゲッティを作るための奴隷。

電磁波を全身に浴びつづけ、仕事中にインターネットを巡回するのが日課になったりと、年々体と精神が崩壊していく。鬱病の発生率は100%である

どれだけ独創的で便利なソフトウェアを制作したとしても、顧客に気に入れられなければ無価値であり、また「仕様変更」「仕様差し戻し」という名の人災(陰謀)によって、一夜にしてそれまでの仕事が無駄になる危険をはらんでいる。

と、ここまで調べて、どうも自分が思っているプログラマという言葉とは異なっているように思えてきた。ハッカーという言葉が、自分の思うプログラマという言葉にあっている。というわけで、ハッカーについて調べる。

ハッカーとしてのプログラマ

wikipedia

やはり、こっちだ。

ハッカー (hacker) とは主にコンピュータや電気回路一般について常人より深い技術的知識を持ち、その知識を利用して技術的な課題をクリア(なかったことに)する人々のこと

こうかくと、芸術家っぽい。

この言葉は、大規模な開発プロジェクトを何年にも亘って指揮してきた優秀なソフトウェア技術者に対して使用されるものではない。ハッカーとは極めて個人的な属性に基づいた呼称であり、その人物の間に合わせのアイデアや閃きを重視した言葉である。

How to become a hacker

有名な、サイト How to become a hackerから引用。

ハッカーは問題を解決し、物事を築きます。そして自由と自発的な助け合いを信条としています。ハッカーとして受け入れられるには、こういう姿勢態度を持つようなふるまいが必要です。そしてこの姿勢を持つかのようにふるまうには、本当にその心構えを信じるしかありません。

ハッカーと画家

ハッカーと画家という本を読んだ時の読書メモから引用する。

ハッカーとは、優れたプログラマのこと。プログラマは職人。絵画を描くのとソースコードを書くのは同じこと。

すべてがコンピュータにどんどん置き換わっていく。21世紀のアーティストはプログラマなのだ。

ハッカーの目指すものは、すなわち美しいソフトウェアをデザインすること。全体像から次第に細部を描いていく。全体は細部からなり、細部は全体を形作る。

情熱プログラマ

つづいて、情熱プログラマからの読書メモ

ここでは、開発者という言葉が使われる。職業は人生を輝かせるための一つの手段。

誰もが光る部分をうちに秘めているが、それを発揮するにはやりがいのあることを見つけないといけないと思う。自分の環境や、自分の道具や、自分の専門分野を好きにならなければ、輝かしいことはできない。

ソフトウェア開発は、やりがいがあって、しかも報れる仕事だ。芸術活動のようにクリエイティブでありながら、具体的に数値化できる価値を生み出せる。

まとめ

ある言葉の意味を追求し始めるとそれは答えのないものなだから、自分で納得して自分で定義しなければいけない。定義することはすなわち、思考停止である。よし、ここらで定義して、考えるのをやめよう。

プログラマとは、

コーディングを通じて、新しいコトを創造する芸術家

エンジニアとは、

技術を通じて、顧客の夢を叶えるビジネスマン

プログラマは自分のためにプログラミングをして、エンジニアは顧客のためにプログラミングをする。プログラマは、エンジニアの仕様を満たす低級な存在ではなくて、自分のアイデアをコードで表現する存在。

自分は、エンジニアである。そして、プログラマになりたいと思う。そして、それは仕事を通じては実現できそうにない。せめて、昼間はエンジニアという社畜として働いても、プライベートではプログラマとしてありたい。

(日本語) C++でのSTLアルゴリズムの使い方まとめ(sort)

$
0
0

Sorry, this entry is only available in 日本語.

(日本語) rubyで別ファイルの変数を読み込んで利用するためのメモ

$
0
0

(日本語) rubyスクリプトで、あるファイルに書いた変数を別ファイルで使いたい場合は、requireとグローバル変数を使うとよさそう。

(日本語) [Coursera]C++ For C Programmersを受講しました

$
0
0

(日本語) Cプログラマなので、C++を勉強するために『C++ For C Programmers』を受講しました

(日本語) Eclipse ADTでつくるAndroidエミュレータ開発環境構築メモ(Windows)

$
0
0

(日本語) 既存のEclipse環境にAndroid SDKをインストールする方法を調べてみました

Windowsで コマンドプロンプトからtelnetする!またはアスキーアートでのスターウォーズがスゴイ件

$
0
0

Windows7 でtelnetを利用する方法のメモ。多分8もこれでいける。

今までは、Cygwinを利用してtelnetをしていたが、Cygwin 64bitは telnetをサポートしていないので、別の方法を調べた。

telnetを有効にする

スタートメニューから

コントロールパネル > プログラムと機能 > Windowsの機能を有効化または無効化

を選択。続いて、 Telnetクライアント、にチェック入れる。

有効にするには、Windowsの再起動が必要。

コマンドプロンプトでつかう

コマンドプロンプトで telnetと入力すると、telnetクライアントの画面に移動する。

Welcome to Microsoft Telnet Client

Escape Character is 'CTRL+]'

Microsoft Telnet>

利用方法は特殊なので、helpを参照。

おまけ: スターウォーズ

このサイトへのtelnetがスゴイ!

towel.blinkenlights.nl 23 

 

なんと、アスキーアートでのスターウォーズが見れる!

SnapCrab_NoName_2013-12-8_8-31-53_No-00

SnapCrab_NoName_2013-12-8_8-32-41_No-00

(日本語) [ReText]Linux環境でMarkdownやRestructuredTextをかくためのエディタはこれで決まり

$
0
0

(日本語) Linux環境でMarkdownやRestructuredTextをかくためのエディタ ReTextの紹介

(日本語) WindowsとLinux Mintのデュアルブート環境をVAIOに構築した手順メモ

$
0
0

(日本語) SonyのVAIOに Windowsと Linuxのデュアルブート環境を構築した手順メモです

(日本語) Fcitx-anthyを使ってLinux Mintで親指シフト日本語入力環境を構築するまでの手順

$
0
0

Sorry, this entry is only available in 日本語.

(日本語) 美は生産性に宿る!プログラマーのためのフォントRictyをLinux Mintに導入した

$
0
0

(日本語) RictyをLinux Mintに導入したメモです

(日本語) デュアルブート時のLinux環境Dropbox導入について(Windows 7/Mint)

$
0
0

(日本語) デュアルブートでのDropbox Linux導入方法についてメモ

Linux Mintインストール後の設定メモ

$
0
0

前回、Linux Mintをインストールしたので、今回はその後の設定についてまとめます。

日本語入力環境の構築

デフォルトでは日本語がまず入力できません。なので日本語を入力できるようにします。

ソフトウェアを取得するリポジトリの変更と更新

日本国民ならば、パッケージを取得するための公式リポジトリは日本のミラーサイトに設定するべき。設定のソフトウェアソースを開き、公式リポジトリのミラーサイトを日本の国旗がかかれているものに変更。

http://ftp.jaist.ac.jp/pub/Linux/linuxmint/packages/ 

http://ftp.riken.jp/pub/Linux/ubuntu/

ソフトウェアを更新する。

$ sudo apt-get update

ディレクトリ名の英語表記

ホーム配下にあるディレクトリ(ピクチャやドキュメントなど)は日本語表記だが、コマンドラインとの相性を考えると英語の方がよいので変更する。

$ env LANGUAGE=C LC_MESSAGES=C xdg-user-dirs-gtk-update

WorkSpace数の変更

WorkSpace数はデフォルトで2つだけれども、4つに変更する。

$ gsettings set org.cinnamon number-workspaces 4

テーマと背景を変更する

テーマや背景は趣味で変更。

メニューの色も変更してみる。gtk-theme-configというツールをつかう。

$ sudo apt-get install gtk-theme-config

インストールしたらメニューから Theme Configurationを選択。

フォントの変更

デフォルトフォントは、Sansというフォント。これをプログラミングフォント、Rictyに変更する。

Windows(NTFS)ファイルシステムをマウントする

Linux側からWindowsのドライブをマウントすれば、Linux側からもWindowsのファイルが利用できて便利です。以下にまとめました。

ディスプレイ明るさの調整

ノートPCなので、バッテリーを利用しているときは、ディスプレイの明るさを落として電力を節約したい。xbacklightdをインストールする。


sudo apt-get install xbacklight

調整は以下のコマンドで実施。setの後ろの数字で調整。


xbacklight -set 80

Applications

各種アプリケーションを入れます。

zsh

端末のシェルをzshにします。

$ sudo apt-get install zsh
$ chsh

git

Gitをインストール

$ sudo apt-get install git

続けて、githubと連携。以下のエントリも参照。

githubで管理しているdotfilesを落としてきます。

Ruby

rbenvを利用してインストール

git clone git://github.com/sstephenson/rbenv.git ~.rbenv
mkdir -p ~/.rbenv/plugins
cd ~/.rbenv/plugins
git clone git://github.com/sstephenson/ruby-build.git
rbenv install 2.1.0
rbenv global 2.1.0 
rbenv rehash

エラーした。

configure: error: in `/tmp/ruby-build.20140102130128.5783/ruby-2.1.0':
configure: error: C compiler cannot create executables

この方法を試すとうまくいった Home · sstephenson/ruby-build Wiki

apt-get install build-essential autoconf libssl-dev libyaml-dev libreadline6 libreadline6-dev zlib1g zlib1g-dev
CC=/usr/bin/gcc rbenv install 2.1.0

Eclipse

この記事がとても参孝になりました。ありがとうございます

Linux版のEclipseを公式サイトからインストールします。/opt/eclipse配下に展開。以下で起動確認。

% /opt/eclipse/eclipse

起動できたら、日本語化します。Pleadesプロジェクトから日本語に必要なファイルをダウンロードして、feature,pluginsに上書き。

eclipse.intの最後に以下を追加

-javaagent:/opt/eclipse/plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar

Eclipse環境の引越し方法はEclipse年次バージョンアップ時の移行方法について調べたを参考。

その他、趣味に合わせてツールをドンドン導入。

  • Google Chrome
  • freemind
  • Emacs

2013年に読んだ技術書一覧

$
0
0

2014年はたくさん技術書を読もうと思う!
去年はあまり本を読まなかった気がするが、はてさてどんな本を読んだか、一覧にまとめてみました。
だいたい18冊くらい。
Web関係の本も読んだ気がするが、タイトルすら忘れてしまったのでノーカウント。 2014年は、2週間に1冊は読んでいきたいところだ。目指せ24冊!!


美しさってなに?リーダブルコードを読んで思ったこと。 | Futurismo


[CleanCoder]断片的なプロ意識に感銘!プログラマは[CleanCoder]でプロの感性を学ぼう。 | Futurismo


[本]IPv6ネットワークプログラミングを読んだ感想 | Futurismo


百科事典のようなワクワク感!IT技術者のための「ストレージの原則と技術」を読みました | Futurismo


[本]Jenkins (オライリー・ジャパン)を読んだ読書メモ | Futurismo


『よいコードを書く技術』とよいクラス名のつけ方について | Futurismo


Cygwin使いならば絶対に身につけておきたいコマンド5選+apt-cyg | Futurismo


プログラマ必読!「UNIXという考え方―その設計思想と哲学」でUnix哲学の真髄と美徳を学ぶ | Futurismo


レガシーコード改善ガイドを読了しました!心に響いた考え方の覚書 | Futurismo


テスターの視点を手に入れるために『実践アジャイルテスト』を読みました | Futurismo


モダンディなTDDの最新動向が集結!『Modern C++ Programming with Test-Driven Development』 | Futurismo


「モダンC言語プログラミング」を読んだ!C言語の組込みエンジニアのためのモダンテクニックが満載 | Futurismo





これはなかなか死ねたよ。



ストレスフリーの境地、だからGTDとTDDが好きだ

$
0
0

medium_4774087006

2年以上前の自分のつぶやきをふと見つけたので、これについて書いてみる。

TDDとGTDの共通点

TDDが好きだ。その理由はTDDがGTDに似ているからだ。

以下、似ている点を列挙してみる。GTDでのタスクという言葉は、TDDではテストという言葉に置き換えることができる。

  • [リスト化]TODOリストにしたがってタスクをこなしていく。
  • [最小化]大きな問題を最小単位のタスクまで分解して取り組む。
  • [ボトムアップ]タスクを確実に積み上げて大きなことを成し遂げる。
  • [NextAction]具体的で着手可能なNextActionのタスクを常に意識する。
  • [フロー状態]目の前のタスクに集中する。
  • [規律]規律(Kata)を遵守することでプロジェクトを推進する。

TDDを知らないころ、GTDにしたがってNextActionをこなしていくことを生活の規律にしていた。なので、GTDのように開発もしたいなと思っていた。TDDを知ると、その方法論にすぐに魅了されてしまった。

ストレスフリー

GTDのなかでとくに好きな考え方は、以下のようにたとえられるもの。

  • ストレスフリー
  • 水のように澄み切った状態
  • 働くだけの幸せバカ

空手が両者と関係しているのも、偶然ではないだろう。(6:30の空手パンチ!)

ストレスフリーはGTDの売り文句だけれども、TDDにもその感じは当てはめることができる。フリー状態とはいえないまでも、TDDをしていると、安心と集中を得ることができる。だから、TDDが好きだ。

人生の意味について

人生の意味はなんだろうかと思う。人生の意味はないと思う。

それだと不安に耐えられないので、無理やりにでも目標を定めてその達成を目指し、そこに意味を見出そうとしている。そして、目標の達成のために集中している状態が、幸せだと思っている。

また、目標は達成できない大きな目標ではなくて、小さなもの、達成可能なもの、瑣末なものがよい。ションベンをより遠くまで飛ばすことだって素晴らしい。小さくて具体的な次の一手を決めて、その達成に対して精一杯集中する。その過程におけるストレスフリーな状態が素晴らしい。

ターゲットを決めて前に進むことが大事。そういう人生観に、GTDやTDDの考え方はマッチしている。

だから、GTDやTDDが好きだ。

参孝


photo credit: net_efekt via photopin cc

Viewing all 91 articles
Browse latest View live