Screaming Loud

日々是精進

「考える」とはなんだろうか

考えるとはなんだろうか?

時々「自分は考えずに行動してしまうなー」と思っていますが、
そのときの考えるとはなんなのでしょうか?

数学の問題

例えば、数学の問題を考えることについて
これは、ある解けない問題に対して、自分の知っているパターンを次々適用し、どのパターンがその問題に対して最適かどうかを見つけること。

この「考える」の中では、
思い出す、予測する、適用する
が含まれています。

チームの課題

例えば、チームの課題を考える
チームの課題を考えるという際は、

  1. まずチームで実施した事象を思い出す
  2. その中で失敗だったものを抽出する

ここにおける「考える」は、
思い出す、適用する
が含まれていると思います。

企画

例えば、企画を考えることについて
企画を考えることとは、その企画を体験する人たちに「よかった」と思われる段取りを決めることと同義だと思います。
では、何かを企画しよう!というときに、どういう思考過程を経ているのでしょうか?

  1. まず課題が何かを特定
  2. 今まで自分が体験した面白いことを思い起こす。
  3. 流行っているものを収集する
  4. 今までになかった組み合わせを思考実験する
  5. 段取りを決める

ざっくりこんなイメージ(自分は企画専門ではないので、フローが間違いはご了承ください。。)

この「考える」には
思い出す、探す、予測する、適用する
かと思います。

「人の気持ちを考えろ!」

例えば、人の気持を考えるについて
人の気持を考えるとは、相手がどうしたら喜んでどうしたら悲しむか、相手の感情がどうしたら動くかをパターンマッチさせることかと思います。

この「考える」には、
思い出す、適用する
かと思います。

結局どういうこと

結局考えるとは、
・自分の知っている知識から「思い出す」
・その中から、最適なパターンを「見つけ出す」
という過程をあわせたものかなと思います。
ただ、その知識というのは具体的な知識(例えば微分の解き方みたいなもの)だけでなく、人間との会話の経験や遊んだ体験なども含まれています。

しっかり考えられる人とは?

しっかり考えられる人とは、上の「思い出す」と「見つけ出す」の両方がうまくできる人かと思います。

上記の「知識」を増やすということは、勉強をしてたくさんの知識をつけることにもあると思いますが、それとは別にたくさんの体験をしているかということも知識を増やすことにつながります。
なぜなら、人の感情がどうやったらどう変わるかなどは、勉強してもわからないことです。(心理学などはありますがw)
でも人間にとって何かを経験できる回数はたかが知れているため、書物という人類の遺産で補うのです。

「見つけ出す」というのは、生まれもっているものに近いので、考える力を養う上では、たくさんのパターンを知ることが近道かと感じています。

まとめ

最初の「考えずに行動してしまう」とは、3パターンあると思っていて、
1. 過去の失敗を思い出していない
2. そもそもそのパターンを体験していない
3. 似たようなパターンは体験したが、今回のパターンにマッチさせられなかった
というものです。

人間は年をとると失敗しづらくなるといいます。
しかし、失敗をしなければ思い出す対象にもなりません。
人間として豊かな思考を持つには、大量の経験を行い、その経験をクラスタリングすることかと思います。
新しい体験とは人間にとって大きな心理的抵抗がありますが、それを乗り越えることで「考える」ための材料が増えると考えるとちょっと試してみたくなりませんか?
(辛い道を行くというのも、こう考えると理にかなっているかも)

2016年に読んだ本のまとめ

昨年末に読んだ本をまとめましたが、今年もやってみたいと思います。
昨年のリンクはこちら→ 2015年に読んだ本を振り返る - Screaming Loud

今年読んだ冊数は42冊でした。
昨年が30冊なので増えたのですが、前半にすごい高いペースで読んでいたのが、多くなった理由です。

あと、今年から引っ越して電車通勤になったおかげで読む時間ができたというのも、一つの理由ですね。

また、後半は組織論的な話を考える部分が多く、読んだ本もその付近が多かったですね。
ビジョナリーカンパニーなども名著ですが、今更ながら読みました。

良かった本

bookmeter.com

この本はメッセージ集なので一瞬で読めるのですが、その一語一語に重みがあるので突き刺さってくる。
ぜひ、一度手にとって見て欲しいです。

bookmeter.com
自分たちが普通に行っていることが実は女性だからと思って実施してしまっていることが多数あることに気づきます。
女性の社会進出が求められている中で、男性にも女性にもぜひ一度読んで自分の考え方を見直してみては。


他にも読んだ本は色々感想も書いているので、以下リンクから見てみてください。
mocyutoさんの読んだ本 - 読書メーター

Play2.4で非推奨のGlobalSettingをなくす

Play2.4で非推奨、かつPlay2.5ではなくなっているGlobalSettingの消し方を紹介します。
なかなか大変なので、ブログにまとめておきました。

Global.scalaで書いていたコード

Play2.3で書いていたGlobal.scalaのコードを記載します。

object Global extends WithFilters(CsrfFilter, AccessLoggingFilter, SystemAccessFilter) with GlobalSettings with JsonHelper {

  override def onStart(app: Application) {
    Akka.system.scheduler.schedule(1 hour, 1 hour) {
      Image.cleanTempImage()
    }
  }

  override def onError(request: RequestHeader, ex: Throwable): Future[Result] = {
    Logger.warn(s"Internal server error. Messages : ${e.getMessage} ExceptionMessage: ${e.getMessage()}")
  }
}

/**
 * アクセスログ出力フィルター
 */
object AccessLoggingFilter extends Filter {
  import models.component.RequestComponent._

  val accessLogger = Logger("access")
  def apply(next: (RequestHeader) => Future[Result])(request: RequestHeader): Future[Result] = {
    val resultFuture = next(request)
    val startTime = System.currentTimeMillis

    resultFuture.flatMap { result =>
      val takeTime = System.currentTimeMillis - startTime
      val msg = s"method=${request.method} uri=${request.uri} remote-address=${request.ipAddr} status=${result.header.status} user-agent=${request.userAgent} takeTime=${takeTime} ms"

      if (takeTime >= 1000) accessLogger.warn(s"*** ${msg} ***")
      else accessLogger.info(msg)

      resultFuture
    } recover {
      case NonFatal(ex) => {
        val takeTime = System.currentTimeMillis - startTime
        val msg = s"method=${request.method} uri=${request.uri} remote-address=${request.ipAddr} status=500 user-agent=${request.userAgent} takeTime=${takeTime}"
        accessLogger.error(msg)
        throw ex
      }
    }
  }
}
続きを読む