「”ひらめき”はいらない」という目で見る ー数学からぼくが学んだこと2ー

“とりあえず”・”なんとなく”進むのではなく、まずは、「条件と求めるものを確認」し、今自分のいる場所と、向かうべき目的地を確認する。
こんな当たり前のことが、実はとても大切です。
「条件と求めるもの」は、最初に確認しさえすればいい、というものでもありません。
間違った道を進んでいることに気付いた時にも、再度「条件と求めるものを確認」するという行為は、別の一歩を探る手がかりとなってくれます。
また、「条件と求めるものを確認」することは、「ひらめき」に頼らず、一歩一歩着実に進んでいくための基本にもなってきます。


\(x\)軸に接し、\(2\)点\((2, 3), (-1, 12)\)を通る2次関数の方程式を求めよ。

この問題の解答を眺めてみます。はじめの一行だけ。こんな風に書かれていることが多いはず。

解)求める2次関数の方程式は、\(y=a(x-p)^2\)とおける。

問題を自分で解くことができずに解答をひらいた人は、この一行を見ると、もしかすると「なんでいきなりそうおけるってわかるねん!」とツッコミを入れたくなるかもしれません。
実際ぼくはそうでした。「なんでいきなりそうおけるってわかるねん、なんでそうおこうと思うねん」とモヤモヤしながらも、問題の解答を覚え、とりあえずその問題については解けるようにする、というスタンスで数学を勉強していました。
ずっとモヤモヤを抱いたままなのですっきりせず、楽しく学ぶことなんてできませんでした。
そんなぼくは恩師に出会い、「条件と求めるものを確認」することの大切さを学びました。それに加え、「”ひらめき”は必要ではない」ということも。


「条件と求めるものを確認」してみましょう。

  • 条件:\(x\)軸に接し、\(2\)点\((2, 3), (-1, 12)\)を通る2次関数
  • 求めるもの:2次関数の方程式

求めたいのは、「2次関数の方程式」なわけです。じゃあ、「2次関数の方程式」ってのはいったいなんなのか。そう疑問を持つことができれば、次に進んでいくことができます。
2次関数の方程式は\(y=ax^2+bx+c\)という形をしています。2次関数なので、\(a \neq 0\)です。\(a=0\)だと、\(x^2\)が消えてしまい、次数が\(2\)の項がなくなり、「2次」の関数ではなくなってしまうからです。
そして2次関数では、もう一つの表現方法も大切です。それが、\(y=a(x-p)^2+q\)という形。一つ目の式を平方完成し、頂点の座標が\((p, q)\)とわかるように式変形したものになります。

この二つの表し方は基本的な事柄で、2次関数を学ぶと必ずでてくること。ひらめく類のことではありません。
次は条件をみてみます。「\(x\)軸に接し」と書かれています。

つまりこれは、「頂点が\(x\)軸上にある」ということ。条件として、”頂点に関すること”が与えられていることがわかりました。

求めたい2次関数には二つの表現がありました。一般的な\(y=ax^2+bx+c\)と、頂点の座標が\((p, q)\)である\(y=a(x-p)^2+q\)です。
一方、条件を読むと、”頂点に関する情報”が与えられていました。
2次関数の二つの表現のうち、条件の”頂点に関する情報”を扱うためには、頂点の座標が\((p, q)\)である、\(y=a(x-p)^2+q\)という方が使えそうです。
「頂点が\(x\)軸上にある」ので、頂点の\(y\)座標は\(0\)です。つまり、\((p, q)\)の、\(q=0\)。
となると、\(y=a(x-p)^2+q\)の\(q\)が\(0\)であることから、求める2次関数の方程式は\(y=a(x-p)^2\)という形をしているはずだ、とわかります。
ということで、解)の一行目にあるように、「求める2次関数の方程式は、\(y=a(x-p)^2\)とおける」わけです。


少し、混み入った話になってしまいました。混み入った話になったものの、”ひらめき”が必要となる部分は、一切ないように思います。
まず「条件と求めるものを確認」する。それに、自分の知識を組み合わせて思考を進めていく。
数学のそういう側面が伝わってほしいな、と思います。
「”ひらめき”が必要ではない」と学び、実際の問題たちを通してそれを実感してから、ぼくは数学がすごく楽しくなりました。問題の解説というのは、はじめから最後まで忠実に組み立てられた”流れ”があることがわかったからです。それはもう、よくできた「ストーリー」です。
もちろんこれは数学の”問題”に限ったことではありません。数学で学ぶいかなる”定義”や”定理”においてもそう。
自分では答えまでのストーリーを組み立てることができないかもしれない。自力では結末まで進めないかもしれない。でも、そのストーリーを理解し、味わうことはできる。
そういう思いで数学を学んでいます。楽しんでいます。
数学の魅力的なストーリーたちが、どんどん語られ、味わわれていけばいいな、と願っています。
魅力的なストーリーを、その魅力を失わせることなく、伝えることができるようになりたいと思っています。

では、お読みいただきありがとうございました。

問題の解説

「条件と求めるものを確認」してみましょう。

  • 条件:\(x\)軸に接し、\(2\)点\((2, 3), (-1, 12)\)を通る2次関数
  • 求めるもの:2次関数の方程式

求める2次関数の方程式を、\(y=a(x-p)^2\)とおきます。
先ほど確認したように、条件にて、”頂点に関する情報”として「\(x\)軸に接する」と与えられており、このことから、「頂点の\(y\)座標が\(0\)となるので、\(y=a(x-p)^2\)とおける」のでした。
与えられている条件をさらにみると、「\(2\)点\((2, 3), (-1, 12)\)を通る」とあります。
例えば、関数が「点\((1, 2)\)を通る」ということからわかることは、関数の\(x\)に、点\((1, 2)\)の\(x\)座標である\(1\)を代入すると、そのときの\(y\)の値は点\((1, 2)\)の\(y\)座標である\(2\)になる、ということ。つまり、\(x\)と\(y\)のそれぞれに、点\((1, 2)\)の\(x\)座標、\(y\)座標を代入した式が成り立つ、ということです。
\(y=a(x-p)^2\)が\((2, 3)\)を通ることから、\(x=2\)と\(y=3\)を代入した式、\(3=a(2-p)^2\)が成り立ちます。
同様に、\((-1, 12)\)を通ることから、\(12=a(-1-p)^2\)が成り立ちます。
あとは、この2つの式を利用して、\(a\)と\(p\)の2つの文字の値を求めていきます。
2つの未知数\(a\)と\(p\)に対して、2つの式を導くことができました。2つの式があれば、2つの未知数\(a\)と\(p\)の値を求めることができるはずです。

\[
\left\{
\begin{array}{l}
3=a(2-p)^2 \mbox{・・・(1)}\\
12=a(-1-p)^2 \mbox{・・・(2)}
\end{array}
\right.
\]

(1)の両辺を\((2-p)^2\)で割って、

\[
3=a(2-p)^2 \Leftrightarrow \frac{3}{(2-p)^2}=a
\]

これを(2)に代入すると、

\[
\begin{eqnarray}
&~&12=a(-1-p)^2 \\
&\Leftrightarrow &12=\frac{3}{(2-p)^2}(-1-p)^2
\end{eqnarray}
\]

これを解いていきます。

\[
\begin{eqnarray}
&~ &12=\frac{3}{(2-p)^2}(-1-p)^2 \\
&\Leftrightarrow &12(2-p)^2=3(-1-p)^2 \mbox{ (両辺を}(2-p)^2\mbox{倍した)} \\
&\Leftrightarrow &4(2-p)^2=(-1-p)^2 \mbox{ (両辺}\div 3 \mbox{)}\\
&\Leftrightarrow &4p^2-16p+16=p^2+2p+1 \\
&\Leftrightarrow &3p^2-18p+15=0 \\
&\Leftrightarrow &p^2-6p+5=0 \mbox{ (両辺}\div 3\mbox{)}\\
&\Leftrightarrow &(p-1)(p-5)=0\\
&\Leftrightarrow &p=1, 5
\end{eqnarray}
\]

\(p=1\)のとき、(1)に代入すると、
\(3=a(2-1)^2 \Leftrightarrow a=3\)。このとき、求める2次関数は\(y=3(x-1)^2\)。
\(p=5\)のとき、(1)に代入すると、
\(3=a(2-5)^2 \Leftrightarrow a= \displaystyle \frac{1}{3}\)。このとき、求める2次関数は\(y=\displaystyle \frac{1}{3}(x-5)^2\)。

というわけで、答えは\(y=3(x-1)^2 , y=\displaystyle \frac{1}{3}(x-5)^2\)であることがわかりました。

「実行タスクにメモ残すときにな、実は心がけてることあるねん。

実行タスクに対して必ずメモ残すために、ちょっとした工夫をしてみた って話は前したでな。あの続きな。
あ、そうそう。あのあとな、「たすくま」がアップデートされて、メモを書いて完了を押したあとに、タスクの時間の計測が終わるように変更されたみたい。空白の時間がなくなるようになってくれてん。ありがたいな。
でやでや。ちょっとした工夫をして、実行タスクに対してメモを残すことができるようになった。じゃあ残したメモはどないするねん?って話やでな。
実行タスクに対してメモしておく理由はふたつあって、

  • その日1日をできるだけ鮮明に残すため

ってのがまずひとつ目。
たすくまを使ってると、実行したタスクたちがズラって並ぶ。自分の行動のすべてが。見返すと、この日何をしたのかってのがわかるようになってる。で、何をしたのかにくわえて、一つひとつの行動に1行かそこらで感想もそえておくと、より1日が鮮明になってくれそうやん。見返したとき、思い出しやすくなりそうやん。
あとはな、

  • 振り返り、改善につなげるため

ってのがもうひとつの理由。そのために、1行でもメモを残しておこう ってなったねんな。
振り返り、改善につなげるために、ひとつメモの残し方も工夫というか、ちょっとだけ意識してることがあるねん。それが「ブライト・スポットに注目する」てこと。
ちょっと前におまえからかえしてもらった、えーと、「象と象使い」が印象的な、、、そうそう、「スイッチ!」な。「うまくいったこと」に注目するってのも、「スイッチ!」から学んだことやねん。
えーと、どっかに書いててんなぁ。ちょっと待ってな。探してみるわ。。。あったあった。42ページや。

村人たちに「ブライト・スポット」、つまりお手本となる成功例を探してもらうことだった。

「ブライト・スポット」や、「ブライト・スポット」。
なんかやってみるやろ。で、実行メモを残すわけやけれども、何かしらうまくいったことを積極的に書くようにしてるねん。ブライト・スポットを探すために。
何かしらうまくいったことを書きのこす。毎回毎回書きのこす。で、振り返ってみると、うまくいったことがずらっと表示されることになるやろ。そっからブライト・スポットが、そのタスクをより良くするためのキーポイントが見つかるかもしれんやん。やから、何かしらうまくいったことを、書く。「スイッチ!」では、問題に注目してばっかりやと

挙げられた意見は「真実だが役に立たない」ものばかり p96

になりがちや、と書いてる。やから、基本的なスタンスとして、

「何がうまくいっているか?それを広めるためにはどうすればよいか?」 p59

を考えやーってのが提案されてるねん。
でな、それに加えてな、ブライト・スポットをさがすために「うまくいったこと」をメモして残すのにはもうひとつ良いことがあってん。
楽しなるねん。ちょっと楽しくさせるというか、前向きな気持ちにさせてくれるねんな、そういうメモを書くのって。
やってみて、失敗することもあるやん。しもたぁーって思うこともあるやん。で、その原因を簡単に考えて書くこともあるけど、それやと失敗に目がいってもうて、同じタスクを次に実行するときに、ちょっとだけそのタスクに悪いイメージが入ってきそうやん。そうなるよりも、極力「うまくいったこと」に注目してメモしといたほうが、良いイメージが残せそうやん。実際良いイメージ残せてると思うねん。
ブライト・スポットを探すために、実行してみて良い感じやと思ったことを書く。おすすめやで。

前回も含めると、ちょっと話し長なったな。要するに、

  • 1行でもいいから記録しておく
  • 記録は「うまくいったこと」を書くように心がける

ってことやな。そうすれば、改善につながりやすいような、書くたびに良いイメージが残ってくれるような記録を残すことができるねん。
何かしら参考になった?参考になってくれればうれしいねんけども。
また機会があればしゃべるわ。ほな。」

参考

Taskuma — TaskChute for iPhone — 記録からはじめるタスク管理
カテゴリ: 仕事効率化, ライフスタイル

自分も習慣化に取り組みながら、「習慣化」についての連載を書くと、すごくいい

4月から「アシタノレシピ」の執筆陣に加えていただいています。
ほんとうに光栄なことで、ベックさんから声がかかったときは、「是非是非!」と参加を即決しました。というのも、アシタノレシピのいつかの記事で「書いてくれる人誰かおらんかなぁ」的なことを書いてて、立候補しようかなと思いつつ時が過ぎていってしまってたからです。なので、声をかけてもらえたのはほんまにうれしく、今も楽しみながらとりくむことができています。
というのは余談で。
現在、アシタノレシピでは「「習慣化」のための自己サポート集」と題した連載をしています。「習慣化」をテーマに記事を書いてるわけです。
連載の中でも書いているのですが、習慣化について書きはじめたくらいの頃から、「Mediumで日記を書く」ってのを新たにはじめました。習慣化について連載しながら、同時に自分自身も新たなことの習慣化にとりくみはじめたんです。で、これがすごくいいなと感じるんです。

「習慣化」について書きながら、自分も「習慣化」にとりくむ。
「習慣化」にとりくむことによって、それが連載を書く際の具体例となります。具体例があったほうが話は展開しやすいもの。自分が習慣化にとりくんでいる「Medium日記」について触れながら、習慣化についてより具体的に書くことができてる感じです。
さらには、書くことによって気づくこともたくさんある。連載で書くことで自分自身の理解も進み、新な気づきが起こり、習慣化にもプラスに働く。そういう良循環が起きている感じがします。
記事がすごく書きやすいんですよね。習慣化に取り組みながら、習慣化について書くってのは。

考えていることとやっていること、考えたこととやったこととが、書いてあるブログ

思えばこれは当たり前のことで、これってぼく自身すごく慣れ親しんでいる方法であることに気づきました。
ぼくのブログを書く際の基本的なスタンスが、考えたことを試してみて、試してみたことを書いてみる、というものだから。
ぼくの最も好きなブログは、「23-seconds blog」なのですが(ほんとうにおもしろいのでみなさんぜひ読んでみてください)、そのブログ内のあるエントリで、ぼくのブログをこんな風に表現してくれていたことがありました。
「考えることと、やってみることで満ちているブログです。」
このように表現してもらえて、ほんとうにうれしいですし、まさにこのブログを言い表してくれている言葉だと思います。
ぼくが考えていることとやっていること、考えたこととやったことを書くのは、それがやっぱり楽しいっていうのと、そうやって書いていくことでまたさらに考えてやってみて、、、が続いていくから、なのだと思います。
考えたことを試してみて、試したことを書いてみる。と、はじめに考えてたのんとはまた違った気づきが得られ、それを試してみてることに反映し、反映してみながらまた書く。また新たな気づきが得られて、、、の繰り返しがおこったりする。
それがすごく楽しくて。
「考えること、試すこと」と「書くこと」は互いにいい影響を及ぼしあってくれる。からぼくは、ブログを、考えていることとやっていること、考えたこととやったこととを、書く場にしているのだと思います。

おわりに

Atsushi – Medium
ぼくのMediumのアカウントです。自分で「Medium日記」と呼んでいる、1日の活動を振り返る日記は、毎日22時半くらいに更新されるか、と思います。とりとめのないことばかりを書いてるので、自分のために書いている、って部分が強いのですが。
Mediumでは他には、自分のブログの記事も載せたりしています。特に、はてなダイアリーで書いてたときのエントリを読み返し、「知的生産」に関する話をときどきMediumに再掲したりしてます。そんな感じで、Mediumで遊び始めているところです。なんとなしにのぞいていただければ、と思います。

では、お読みいただきありがとうございました。

“とりあえず”・”なんとなく”からの脱却 ー数学からぼくが学んだこと1ー

地図をもっている。行きたい場所がある。のに、”とりあえず”東に向かったり、”なんとなく”道をわたってみることなんて、普通はしないと思います。
でもぼくは、何年もの間、”とりあえず”や”なんとなく”に身を任せていました。
”とりあえず”式変形したり、”なんとなく”値をあてはめたり。
そう、数学の話です。


少し、2次関数の話をします。
中学のころから「関数」を学び始めます。そして、高校に進み、関数をさらにふかく考えていくことになります。その一番はじめにじっくり学んでいくのが「2次関数」です。
2次関数は、「放物線」と呼ばれます。

2次関数において、とても特徴的な点が、「頂点」です。頂点を境に、それまで増加していれば減少に転じ、減少していれば増加に転じるからです。

それゆえ、2次関数に関する問いでは、頂点がカギを握ることがよくあります。5問出題されれば、そのうち3〜4問は頂点を求めて考えていかねばならない、と言っても過言ではないくらいの頻度です。


ひとつ、次の問題を考えてみます。

関数\(y=ax^2-2x+a+2\)の値が常に正であるような\(a\)の値の範囲を求めよ。

2次関数の問題だ、と判断し、「”とりあえず”頂点を求めてみよう」と考える。
とりあえず頂点を求めたくなる気持ちはわかります。実際それでうまくいくことも多い。なにせ、5問中3,4問ほどは頂点がカギになってくるくらいですから。
”とりあえず”頂点を求めたからといって、方向を間違え、答えまでたどり着くことができないわけではありません。実際、頂点を求め、考えを進めていくこともできます。
とはいえ、2次関数が与えられているからといって「”とりあえず”頂点を求めてみよう」というのは、地図があるのに、現在地や目的地を確認せずに歩き出すようなもの。5問中3,4問それでうまくいくとはいえ、今どこにいて、到達したいのはどこなのか、の把握が不十分であれば、いつか大きく道を間違ってしまうことになる。
現在地や目的地を確認せずに目的地にたどり着いたとしたら、それはすごくラッキーです。もしかしたら、とんでもない方向に進んでしまっている可能性もあるのですから。
目的地にたどり着きたいのであれば、まずは、自分がどこにいるのか、行きたい場所はどこかを確認するのが普通です。それらが地図上のどこにあるか確認できてこそ、目的地に向かうための最初の一歩が、歩き出す方向が定まります。
ぼくは、高校3年生まで、そんな当たり前のことすらまったく意識せず、数学の問題を考えていました。
この問題を読み、「2次関数やし、頂点頂点」と、”とりあえず”頂点を求めていました。


地図において「現在地と目的地を確認する」ことは、数学において「条件と求めるものを確認する」ことと同じ、と言えます。
まずはそこから。そこから、次にどう進むかを考えていく。
「”とりあえず”頂点を求める」のではなく、上記の問題に対し「条件と求めるものを確認する」ことからはじめてみます。まずは、現在地と目的地を確認するのです。
与えられているのは、2次関数\(y=ax^2-2x+a+2\)。求めるものは、この関数の値が常に正であるような\(a\)の値。
”とりあえず”頂点を求めたくなる気をおさえ、注意深く与えられている関数を眺めると、与えられている2次関数は、\(a\)の値によってその姿をいろいろと変化させることがわかります。
\(a>0\)であれば、2次関数のグラフは下に凸になります。
\(a<0\)ならば上に凸になります。
さらには、\(a=0\)であれば、与えられた関数は2次関数ではなくなってしまいます。

パッと見は2次関数の形をしているものの、実際は\(a\)の値により2次関数ではない場合も考えられる、というわけです。
このように「条件を確認」してみると、「”とりあえず”頂点を求めてみよう」というのは、さほどいい手ではないことがわかります。だって、\(a=0\)のときには、左辺は2次関数ではなく、頂点が存在しないのですから。
\(a\)の値によって、左辺はいろいろなケースに分けられる。まずは、はじめの一歩として\(a\)の値によって場合わけをするほうが良さそうです。


地図をもとに目的地に行きたい時には、地図上での現在地と目的地、つまり、今いるところと、たどり着きたいゴールを確認する。
同じように、数学の問題を解く時には、まずは条件と求めるもの、つまり、与えられていることと、それらを利用して明らかにしたいことを確認してから、どういう一歩を踏み出せばいいか考え、判断する。
数学の問題に取り組むと、繰り返し繰り返し、「条件と求めるものを確認してから、どう進むか考え、判断する」ことになります。
今わかることをもとに、次の一手を選択することになります。
この繰り返しが、ぼくの人生に与えた影響というのは、きっと小さくはないはず。
「条件と求めるものを確認してから、どう進むか考え、判断する」ことを教えてくれ、「”とりあえず”式変形したり”なんとなく”値をあてはめたりする」というそれまでの思考に終止符を打ってくれた高校時代の恩師には、感謝してもしきれません。
恩師がぼくに大きな影響を与えてくれたように、ぼくも数学を通して、何か良い影響を与えることができればな、と願うばかりです。

では、お読みいただきありがとうございました。

問題の解説

関数\(y=ax^2-2x+a+2\)の値が常に正であるような\(a\)の値の範囲を求めよ。

「\(y=ax^2-2x+a+2\)の値が常に正」
とは、
「\(y\)が、\(ax^2-2x+a+2\)という\(x\)の式で与えられており、その値が常に正」
という意味です。

関数は、グラフでとらえることで可視化することができ、それが理解の手助けになることがよくあります。
今回も、グラフの力をかりることにしましょう。
2次関数の値が「常に正」になるとはどういうことか。「常に正」になっているときの、グラフの状況を考えていきます。

例えば、\(y=x^2-4\)という2次関数を考えてみることにします。実際にいくつか\(x\)に値をあてはめて計算してみると、\(y\)の値が負になる時と正になる時があることに気づきます。
\(x=1\)のとき、\(y=1^2-4=-3\)や、
\(x=0\)のとき、\(y=0-4=-4\)などは、\(y\)の値が負になる。
\(x=3\)のとき、\(y=3^2-4=5\)などは、\(y\)の値が正になる。
つまり、\(y=x^2-4\)は、常に正ではない、ということです。このことをグラフでとらえてみましょう。
\(y=x^2-4\)のグラフを描くと、以下のようになります。

グラフにおいて、\(y\)の値が負になっているのはどの部分かを考えると、\(y=x^2-4\)のグラフの、\(x\)軸よりも下にきている部分であることがわかります。

つまり、\(y=x^2-4\)という2次関数のグラフを描いてみると、\(x\)軸よりも下にくる部分がグラフ上に存在する。グラフ上の\(x\)軸よりも下にきている部分は、\(y\)の値が負の値をとっているところである。
グラフ上で、\(x\)軸よりも下にくる部分があれば、その2次関数の\(y\)の値は負になるときがある、ということ。「常に正」ではないということです。

グラフを描いて、\(x\)軸よりも下にくる部分があれば、その関数は「常に正」ではない

わけですね。
では、「常に正」となるようなグラフは、どういったものになるのか。

以下のような状況であれば、負になる部分がなく、「常に正」である、と言えることになりますよね。

\(x\)軸よりも下にくる部分がないので、\(y\)の値は負にはならない。\(y\)の値が負になることはないので、すなわち「常に正」である、ということになる。
こんなグラフの状況になる条件を考えれば、問われている「関数\(y=ax^2-2x+a+2\)の値が常に正であるような\(a\)の値の範囲」を求めることができそうです。
ただ、忘れてはいけないのは、与えられている関数は、\(a\)の値によっていくつかの場合が考えられる、ということ。
\(a=0\)であれば、与えられた関数は2次関数ではなく、\(a>0\)であれば、2次関数のグラフは下に凸になり、\(a<0\)ならば上に凸になる。
ということで、それぞれについて考えてみましょう。

(i) まずは、\(a=0\)のとき。
このとき、与えられている関数は、\(y=ax^2-2x+a+2=0x^2-2x+0+2=-2x+2\)となります。2次関数ではなくなり、1次関数に姿を変えました。1次関数は、グラフでとらえると直線です。実際にグラフを書いてみると、、、

\(x\)軸よりも下にくる部分が存在し、負の値をとることがあるので、「常に正」ではないことがわかります。\(a=0\)のときは、題意を満たしません。つまり、\(a=0\)は、関数\(y=ax^2-2x+a+2\)の値が常に正であるような\(a\)の値ではない、つまり、求める解ではないということです。

(ii) 次に、\(a<0\)のときを考えてみます。
このとき、関数\(y=ax^2-2x+a+2\)は、\(x^2\)の係数が\(0\)より小さいことから、上に凸のグラフを描く2次関数となります。上に凸の2次関数は、どんな場合であれグラフ上で\(x\)軸よりも下にくる部分が存在するので、やはり題意を満たしません。

これまた\(a<0\)は、関数\(y=ax^2-2x+a+2\)の値が常に正であるような\(a\)の値の範囲ではない、ということになります。

(iii) 最後は、\(a>0\)のとき。
このとき、関数\(y=ax^2-2x+a+2\)は、\(x^2\)の係数が\(0\)より大きいことから、下に凸のグラフを描く2次関数となります。下に凸であるので、条件が整えば、グラフ上で\(x\)軸よりも下にくる部分が存在しないとき、つまり、「常に正」となるときがあることが、図の①をみるとわかります。

もちろんいつでも「常に正」であるわけではなく、②のようなときは、\(x\)軸よりも下にくる部分が存在し、負の値をとることになります。

以上のことから、グラフが①のようになるような条件を考えればいい、ということになります。このようになるのは、「頂点の\(y\)座標が0より大きいとき」と考え、頂点を求めて計算してもいいのですが、ちょっと計算がややこしくなりそうなので、別の手で攻めようと思います。
それは、「判別式」です。判別式は、2次関数が\(x\)軸と共有点を持つときと持たないときを判別することができる公式です。

  • \(D=b^2-4ac<0\)のとき、共有点を持たない
  • \(D=b^2-4ac=0\)のとき、1点で接する
  • \(D=b^2-4ac>0\)のとき、2点で交わる

ということが言えます。

グラフが①のようになるのは、2次関数が\(x\)軸と共有点をもたないとき。なので、
\(D=b^2-4ac<0\)
となるときを考えます。まず\(D\)の値を計算してみましょう。
\begin{eqnarray}
D &=& b^2-4ac \\
&=& (-2)^2-4a(a+2) \\
&=& -4(a^2+2a-1)
\end{eqnarray}
この値が、\(0\)より小さくなるのは、

\begin{eqnarray}
&~&-4(a^2+2a-1)<0 \\\ & \Leftrightarrow & a^2+2a-1>0 \\
& \Leftrightarrow & a<-1-\sqrt{2}~,~~-1+\sqrt{2}<a
\end{eqnarray}

今、\(a>0\)のときを考えているので、常に正となるような\(a\)の値の範囲は、
\[-1+\sqrt{2}<a\]
となります。
以上、(i)、(ii)、(iii)より、関数\(y=ax^2-2x+a+2\)の値が常に正であるような\(a\)の値の範囲は\(-1+\sqrt{2}<a\)です。

「実行タスクに対して必ずメモ残すために、ちょっとした工夫をしてみたねん。

いや、それまでもなんとなーくはメモ残しててんで。でも、メモ残すタスクもあれば、めんどくてメモ書かずに完了させてまうタスクもあり、、、ってそんな感じやってん。
でもな、半年くらい前かな。『初速思考』て本を読み返してて、各タスクに対して、ちゃんとメモしていこうと思ってん。
どこ読んでやったかなー、あ、ここやここ。55ページ。

「振り返り」というと、どうしても面倒なイメージがあるかもしれません。そこで私は、1行でもいいから記録しておくという工夫をしています。

これ読んで、あぁ、1行だけメモしといたら、メモも残しやすいしあとで見返しもしやすいかも、と思てん。
なかなか時間取られんやんか。メモ書く時間も、見返す時間も。
だからってなんもせんかったら、今やってることから得たことはすぐに忘れてまう。
1行だけならなんとかなりそうって思えるし、真似しようと思ってん。

。。。あぁ、表示されるな、確かに。それそれ、その画面な。

でもメモはその画面ではしてないねん。
確かに「たすくま」は、タスクを完了させるとメモ画面になって、メモ書くのん促してくれるよ。その完了画面使ってメモを書いてってもいいんやけど。。。今は、ちょっと手間やけど別のアプリでメモ書いて、たすくまの完了画面にペーストしてメモ残していってるねん。かれこれ半年くらい。

いや、いう通りちょっとめんどうやよ。めんどうやけど。ちょっと気になってまうねん。ほんま細かいことやねんで、むちゃ細かいことやねんけど。
というのも、たすくまの完了画面表示してるときって、今までやってたタスクは完了してもうてる。でも、次のタスクは開始してへんって状況、つまりは、何も計測されてへん状況なわけやろ。空白の時間ができてもうてるわけやん。それが、ちょっといややねん。
せっかく時間のログをずーっととり続けてる、空白の時間がないようにタスクをこなしていってるねんから、完了画面はすぐ閉じて次のタスクを開始させたいやん。
細かいことやけど、な。
完了画面をはよ閉じたいから、自然と書き残すメモも短くなってまうやん。短くなってまうし、「あぁそんなんやったらもう書かんでえぇや」ってなりやすいやん。書かんかったら空白の時間はほぼなしで次いけるわけやし。

いやな、そんな1分1秒ももらさずに、タスクに取り掛かってる猛者ではないよ、そうじゃないけど、でもやっぱ空白の時間を許してもうたら、そこからズルズル空白が長くなってもうたりするやん。
付け入る隙はなくしていかんと。
自分はただでさえすぐ自分に甘えてまうのに、隙があったらよけい甘えていってまうやん。
甘えが隙に付け込んできよるやん。
確か今おまえにかしてる本にも書いてあったと思うねん。「象と象使い」が印象的な、、、そうそう、「スイッチ!」な。
あ、今持ってんの?ちょっとかして。
あったあった。「白黒の目標」やな。118ページから119ページか。

あいまいさが象に言い逃れの余地を与え、失敗を正当化しやすくする。このジレンマに対処するひとつの手は、超明確な目標を定めるという方法だ。

自宅や職場で正当化が心配なら、目標からあいまいさをそぎ落とす必要がある。「白黒の目標」が必要だ。

白か黒か、書かれているタスクをやっているかやっていないか。グレーな空白の時間とかあったらあかんねん。
すぐ付け込んできよるからな。

まぁあとは、単純に他のメモ専用のアプリで書くほうが書きやすいってのが理由やな。
メモに特化してるアプリって、いろいろ書きやすくする機能とかついてるから。
ぼく使ってるんは「Textwell」やねんけどな。そう、好きやねんこのアプリ。iPhoneで何かしら書くとき、こればっか。
最近「アクションバー」って機能付いて、普段よく使うアクションはキーボードの上に表示してくれるようになったし、ますます使いやすなってきてるし。

ぼく、iPhoneで何か書くってとき、ほぼ必ずTextwell使うから、Textwellを起動させたら何かしら書こうと思うねん。で、今までやってたタスクに関するメモを書く。たすくま起動させてペーストする。と、たすくまにメモが蓄積されていくやろ?各タスクに対して、メモが最低でも一行残っていく。
空白の時間をなくすためにも、メモをちゃんと残していくためにも、ほかのアプリでメモを書いてからたすくまでタスク完了させて、完了画面でメモをペーストしてるって手をとってるねん。多少は手間やけど、実際そのほうがタスクにメモを残せていってるから、必要な手間やね。
で、このメモを利用して「アクションリスト」を作っていくわけやん。あ、「アクションリスト」も『初速思考』に書いてたんやけどな。
まぁ、アクションリストとか別に作らんでも、実際ぼくもそんなガシガシ作ってるわけちゃうし。
やったタスクに対して、必ずメモが残っていってるってのがいいんよね。

ただ、たすくま上でメモを見返すのはちょっとめんどいから、WorkFlowyに、、、え?あぁ、ぼちぼち時間か。次のタスクに取り掛からなな。
見返す話は、また今度ってことで。
んじゃ、また。」

参考

Taskuma — TaskChute for iPhone — 記録からはじめるタスク管理
カテゴリ: 仕事効率化, ライフスタイル

Textwell
カテゴリ: 仕事効率化, ユーティリティ

全体像を把握しやすい本の読みかた2つ

再読をしたい。常々思っていることの一つです。
日々、いろんな本の存在を知ります。読んでみたくなります。読みたい本は増える増える増え続ける。
過去に読んで、もう一度読みたいな、と感じる本があります。それも読みたい。また読みたい本は増える。
読みたい本だらけ。でも、もちろんすべてを読む時間はありません。
読むからには、自分のものにしたい。けれども、読む時間がなかなかとれないと、日を多くまたぎながら読み進めることになり、読了するのに時間が、長い期間がかかってしまいます。
ぼくの読書のスタンスは、「じっくり」なのです。
読書メモをとりながら、じっくり読んでいきます。
じっくり読みすぎるがために、全体像を思い描くことが難しくなっちゃったりします。じっくり読むので読み切るのに長い期間がかかり、内容を忘れつつ、読み進めることになるから。
読んだ内容が頭からこぼれ落ちつつ、一定期間読書ができないときとかもあったりして、さらに内容が頭から離れていき、そんな中また読み始めて「これどうやったっけ?」と戻りつつ、戻ってはさらに時間がかかって、なんとか最終的に読了する、という感じです。
なので、もう一度読みたいと感じる本が多くなってしまいます。2回目なら、きっと内容をさらに理解でき、全容も把握しやすいやろう、と思うから。

短い期間で、「一気に読み切る」

あるとき、再読を中心に、読書しようときめ、しばらく読んだことのある本ばかりを選んでは読み進めたことがありました。そのときの読み方が、なかなか気に入り、どんどん本を再読していくことができたんです。
いつもとちょっと読み方を変えることで、1冊の本の全体像を把握しやすくなることを知ったんです。
単純な方法です。「一気に読むぞ」という気持ちで、再読の本たちを読み進めていくというとても単純な。
速読という技術は持ち合わせてはいません。「一気に読むぞ!」って意識し、いつもよりはやめに文字を追っていくだけ。
一度読んだことのある本なので、思い切ってさささっと読むことができたのだと思います。たぶん、一読目の本であれば、どうしてもじっくりな読み方になっちゃうので。
「一気読み」では、メモもとりません。いつもより早く読む意識で、いっさいメモをとらず読み進めていきます。
目的は一つ。短い期間で読み切るため。
短い期間、1日2日の間に、一気に読み切る。そのほうが、いくら忘れっぽいぼくでも、本の内容の多くが頭の中にのこっておいてくれます。なので、全体像を把握しやすい。
一度読了している、という安心感があるので、再読するときには、この方法がぴったりだと感じるようになりました。
その思いは、オーディオブックを聞いくことで強くなりました。

頭に内容が残ったままグイグイ進むオーディオブック

今年の1月あたりから、オーディオブックを利用しはじめました。
芥川賞もオーディオブックで”聴ける” – FeBe(フィービー)
そのときに、こんなメモを残していました。

オーディオブックで本を聞くと、読むよりも短い期間で最後まで聴き終える。から、内容が記憶に残ってる状況で読み進めることができる。
最近思うように読書の時間をとれておらず、どうしても一冊にかかる期間が長くなっちゃってる。と、読んだ内容を忘れながら読み進めることになり、思うように理解できず読み終えてしまう、みたいなことがおこりがち。
オーディオブックやと、それがない。意外な事実やった。オーディオブックのほうが、聞き流してしまうし、読書メモも取ることなく進んでしまうので、頭に内容が残らんのではないか?と危惧していたから。

目次を書き足していって、流れを都度思い起こす

内容が頭からこぼれ落ちる前に、一気に読み切る。
いつでもそれができればいいのですが、一気に読み切るためにはそのぶん時間も必要なわけで。となると、時間が確保できないときには、その方法はちょっとしんどい。
読みたい本がオーディオブックにあるとも限りません。
一気に読み切れない。そんなときには、「読みながら目次を書き写していく」ことが、全体像の把握にはとても有効です。
限られた時間の中で、少しずつ本を読み進めていくわけですが、その際、読んだところの目次を書いていくんです。手間ですが、この効果はとても大きい。
具体的な方法としては、本を読みはじる際に、その日付と本の名前をメモしておきます。で、大きな章を読み終えるごとに、そのメモに読み終えた部分の目次を追記していくんです。
そうすると、目次を書き写すごとに、前に読み終えた部分の目次が目に入ります。目に入ると、「あぁ、あんな内容のこと書いてた章やな」と記憶がよみがえってくれます。
はじめから今読んでいる部分までの目次に目を通すことになるので、そこまでの流れが想起してくれやすい。
書くだけで、「あぁそうや、あの話がこうきて、そこへと進んだんや」と、全体の流れの把握にとても大きな役割を買ってくれるんです。
これは、書物を使って勉強していくときにも、とても有効です。
勉強となると、おそらく普通に読み進めるよりも一冊読み切るまでの時間はかかるでしょうし、本の全体像を把握するのってかなり大事ですから。
目次が増えていくのも、うれしい。これだけ進んできたんやな、と確認できるので、モチベーションにもつながります。

おわりに

全容を把握するための読み方は、

短い期間で読み切る意識を持つ
読み終えた章の目次を追記していく

全体像が把握できると、じっくり通読するのとはまた違った理解が得られます。
「メモをとりながらじっくり読む」のと、「一心不乱に一気読み切る」の。
「細部を読み込む」のと、「全体像を把握する」の。
両方合わさったら、1冊から得られることは、きっと何倍にも増してくれる。そう信じながら、これからもちょくちょく再読に取り組んでいこうかな、と思っています。

では、お読みいただきありがとうございました。

考えるときの「広げる」と「拡げる」、むしろ「拡がっていく」。

頭の中のものを紙面上に「広げる」。
「かばんの中身を机の上に広げる」とか、そういう意味。
とにかく書き出す。思いついたことを書く。書いたものの配置を変える。矢印でつなぐ。
書く、書く、書いてみる。
白紙からもう一度書きなおしてみる。頭からとり出して、紙面上に「広げる」。

アイデアを「拡げる」。
「拡張する」ってニュアンス。
調べて知識を得たり、本を読んで学んだり、人から意見を聞いたり。外部からの刺激によって拡げる。
連想したり、視点を変えたり、俯瞰したり、拡大したり、組み合わせたり、切り離したりして、拡げる。自分の中の化学反応を促す。
反応が起こって拡張していくことが多いので、「拡げる」という言い方よりも「拡がっていく」といったほうがしっくりくるかも。
拡げるというよりも、拡がっていく。拡がっていってほしいがために、マインドマップを描いたりする。マトリクスを書いてみたり、マンダラを埋めていったり。

広げて、発見して、拡がって、広げて、気づいて、拡がって、広げて、整理されて、まとまりがみえて、気づいて、拡がって、広げて、まとめてみて、まとまってきて、まとめて、落ち着く。

そんな感じのことが、起こっている気がする。
考えているときの頭のなかって、どんなもんでしょうか。

では、お読みいただきありがとうございました。

「タグでシンタックスハイライト」を実装して、執筆専用ブラウザを文章エディタに

WorkFlowyでシンタックスハイライトを実現させるために、いろいろと調べました。
もっとぼくにプログラミングの知識があれば、ほんまもんのシンタックスハイライトを実装できたのかもしれませんが、そこまではわからずで。
最終的に、「タグ」によってハイライトする方法で、文章の見出しやリストの文字色を変えることにしました。
例えば、見出しのh2にしたいところには、「#h2」というタグをつける。すると、そのトピックの文字色が変化する、というような感じです。
マークダウンであれば「##」をつけてh2の見出しにするところを、「#h2」というタグをつけることで見出しにするわけです。
特定のタグに対して、そのトピックのスタイルを自由に定めることができるって機能なので、ただ単に文字の色を変えるだけでもいいですし、スタイルをがらっと変えてしまったりもできます。

HandyFlowyとFireFoxでの実装

「特定のタグをつけたトピックの文字を装飾する」機能は、こちらの記事を参考にさせてもらいまくりました。
#HandyFlowy タグでトピックのスタイルを変える – #WorkFlowy 関連のメモ ( #sorashima )

HandyFlowyバージョン

まず、HandyFlowy用のスクリプトはこんな感じ。

// ==UserScript==
// @name                     WorkflowyStylableTags
// @description        Gives each tag it's own css style, so you can style them with Stylish. I use Blank Canvas to manage my userscripts in Chrome.
// @author                 Nigel Thorne and LukeMT
// @include                http*://*workflowy.com/*
// @version                1.1
// ==/UserScript==



/*タグ装飾を可能にする*/
String.prototype.endsWith = function(suffix) {
suffix.length) !== -1;
};

var customClasses = function(index, old){
        var classes = old.split(" ");
        var custom = [];
        for( i = 0; i < classes.length; i++){
                if(classes[i].endsWith("-proj")){ custom.push(classes[i]);};
        };
        return custom.join(" ");
}

var StylableTagsCounter = 1;
setInterval(function(){
        StylableTagsCounter ++;
        if( StylableTagsCounter >= 3){
                $('.project').removeClass(customClasses);
                $('.pageContainer').removeClass(customClasses);
                StylableTagsCounter = 0;
        }
        $('span > .contentTagText').map( function(){
                var x = $(this).text();
                $(this).parent('.contentTag').parent().parent().parent().addClass(x+"-proj");}
        );
},1000);


/*装飾可能にするタグを指定し、どんな装飾をほどこすのかを定める。着脱式になってます。*/
\";position: absolute;left: 0px;width: 40px;color:#31B404;height: 0;line-height: 1.0;padding-top:1.5px;font-size:16px;}.contentTag[title=\"Filter #l\"]{font-size:10px;font-weight:100;background-color:white;color:white;}.contentTag[title=\"Filter @l\"]{font-size:10px;font-weight:100;background-color:white;color:white;}.project.o-proj>.name>.content {color: #AEB404;}.project.o-proj>.name>.content :before{content: \"1. \";position: absolute;left: 0px;width: 40px;color:#AEB404;height: 0;line-height: 1.0;padding-top:3px;font-size:16px;}.contentTag[title=\"Filter #o\"]{font-size:10px;font-weight:100;background-color:white;color:white;}.contentTag[title=\"Filter @o\"]{font-size:10px;font-weight:100;background-color:white;color:white;}.project.b-proj>.name>.content {color: #A4A4A4;}.project.b-proj>.name>.content :before{content: \"> \";position: absolute;left: 0px;width: 40px;color:#A4A4A4;height: 0;line-height: 1.0;padding-top:1.5px;font-size:16px;}.contentTag[title=\"Filter #b\"]{font-size:10px;font-weight:100;background-color:white;color:white;}.contentTag[title=\"Filter @b\"]{font-size:10px;font-weight:100;background-color:white;color:white;}";document.body.appendChild(e);}"

このスクリプトは、大きく分けて二段階になっています。
前半部分が、「タグ装飾を可能にする」ためのもの。後半部分が、「装飾可能にするタグを指定し、どんな装飾をほどこすのかを定める」ためのもの。
後半部分をいじってもらえれば、自分の好きなスタイルを作ることが可能です。
例えば、「#h2」タグをつけたトピックの装飾を決めているのが、コード内の以下の部分。
.project.h2-proj>.name>.content {color: blue;font-weight: bold;font-size: 20px;padding-left:0px;}
これは、
.project.タグ名-proj>.name>.content {どんな装飾をほどこすか}
という形式になっています。
つまり、「「#h2」タグがついているトピックの文字の色を青にし(color: blue;)、文字を太くし(font-weight: bold;)、文字の大きさを20pxにし(font-size: 20px;)、左の余白を0にする(padding-left:0px;)」という指示になります。
ってな感じで、「見出し」「リスト」「番号付きリスト」「引用」のためのタグを設定しています。
以下のような指示のコードを書いています。

  • 各種見出し
    • 「#h2」「#h3」「#h4」をつければ青色に装飾&文頭に「##」をつける&タグの色を白にして見えないように
  • リスト
    • 「#l」をつければ緑色に装飾&文頭に「- 」をつける&タグの色を白にして見えないように
  • 番号付き見出し
    • 「#o」をつければ緑色に装飾&文頭に「1. 」をつける&タグの色を白にして見えないように
  • 引用
    • 「#b」をつければ灰色に装飾&文頭に「> 」をつける&タグの色を白にして見えないように

その結果、こんな見かけになります。

推敲するときはブログの表示に似せたスタイルを適用します。上記拡張スクリプトとは別途、作成しました。スタイルを切り替えて適用するだけで、見かけはこんな風に変わります。

スタイル切り替えるだけでいける、ってところがうれしい。

FireFoxバージョン

PCでは、少し手間がかかります。
FireFoxのアドオンとして、「Stylish」に加えて「Tampermonkey • Firefox」というのをインストールする必要があるからです。
どちらも、拡張機能から入手可能です。
TemperMonkeyが「タグ装飾を可能に」してくれて、Stylishによって「装飾可能にするタグを指定し、どんな装飾をほどこすのかを定める」わけなのです。

TemperMonkeyをインストールしてもらって、「新規スクリプトを追加」を選び、以下のコードをコピペしていただければオッケーです。ただ、あくまでも自己責任でお願いします。

// ==UserScript==
// @name                     WorkflowyStylableTags2
// @description        Gives each tag it's own css style, so you can style them with Stylish. I use Blank Canvas to manage my userscripts in Chrome.
// @author                 Nigel Thorne and LukeMT
// @include                http*://*workflowy.com/*
// @version                1.1
// ==/UserScript==



String.prototype.endsWith = function(suffix) {
suffix.length) !== -1;
};

var customClasses = function(index, old){
        var classes = old.split(" ");
        var custom = [];
        for( i = 0; i < classes.length; i++){
                if(classes[i].endsWith("-proj")){ custom.push(classes[i]);}
        }
        return custom.join(" ");
};

var StylableTagsCounter = 1;
setInterval(function(){
        StylableTagsCounter ++;
        if( StylableTagsCounter >= 3){
                $('.project').removeClass(customClasses);
                $('.pageContainer').removeClass(customClasses);
                StylableTagsCounter = 0;
        }
        $('span > .contentTagText').map( function(){
                var x = $(this).text();
                $(this).parent('.contentTag').parent().parent().parent().addClass(x+"-proj");}
        );
},1000);

で、Stylishにて、タグを指定してそのトピックのスタイルを書き換えます。書き換えのコードは、HandyFlowyのときに説明したようにすると、自分の好きなように装飾することができます。
少し長くなりますが、全容を載せます。

/*h1の見出しのスタイルを調整*/
.project.h1-proj>.name>.content {
        color: black;
        font-weight: bold;
        font-size: 23px;
        /*padding-left:20px;*/
}

/*h1タグのスタイル*/
.contentTag[title="Filter #h1"]{
        font-size:10px;
        font-weight:100;
        background-color:#BDBDBD;
        color:white;
}
.contentTag[title="Filter @h1"]{
        font-size:10px;
        font-weight:100;
        background-color:#BDBDBD;
        color:white;
}


/*h2の見出しのスタイルを調整*/
.project.h2-proj>.name>.content {
        color: blue;
        //font-weight: bold;
        //font-size: 20px;
        padding-left:0px;
}
.project.h2-proj>.name>.content :before{
        content: "##";
        position: absolute;
        left: 0px;
        width: 40px;
        height: 0;
        font-size: 16px;
        //font-weight:bold;
        line-height: 1.0;
        color: blue;
        padding-top:2px;

}

/*h2タグのスタイル*/
.contentTag[title="Filter #h2"]{
        font-size:10px;
        font-weight:100;
        //background-color:#BDBDBD;
        background-color:white;
        color:white;
}
.contentTag[title="Filter @h2"]{
        font-size:10px;
        font-weight:100;
        //background-color:#BDBDBD;
        background-color:white;
        color:white;
}

/*h3の見出しのスタイルを調整*/
.project.h3-proj>.name>.content {
        color: royalblue;
        //font-weight: bold;
        font-size: 16px;
        //padding-left:10px;
}
.project.h3-proj>.name>.content :before{
        content: "###";
        position: absolute;
        left: 0px;
        width: 40px;
        height: 0;
        font-size: 16px;
        line-height: 1.0;
        color: royalblue;
        padding-top:2px;
        //font-weight:bold;
}
/*h3のタグのスタイルを調整*/
.contentTag[title="Filter #h3"]{
        font-size:16px;
        font-weight:100;
        //background-color:#BDBDBD;
        background-color:white;
        color:white;
}
.contentTag[title="Filter @h3"]{
        font-size:10px;
        font-weight:100;
        //background-color:#BDBDBD;
        background-color:white;
        color:white;
}
/*h4の見出しのスタイルを調整*/
.project.h4-proj>.name>.content {
        //font-weight: bold;
        color: cornflowerblue;
        //padding-left:38px;
}
.project.h4-proj>.name>.content :before{
        content: "####";
        position: absolute;
        left: 0px;
        width: 40px;
        color:cornflowerblue;
        height: 0;
        line-height: 1.0;
        padding-top:2px;
        font-size:16px;
        //font-weight:bold;
        padding-top:2px;
}
/*h4のタグのスタイルを調整*/
.contentTag[title="Filter #h4"]{
        font-size:20px;
        font-weight:100;
        //background-color:#BDBDBD;
        background-color:white;
        color:white;
}
.contentTag[title="Filter @h4"]{
        font-size:10px;
        font-weight:100;
        //background-color:#BDBDBD;
        background-color:white;
        color:white;
}

/*リストの見出しのスタイルを調整*/
.project.l-proj>.name>.content {
        color: #31B404;
        //padding-left:13px;
}
.project.l-proj>.name>.content :before{
";
        position: absolute;
        left: 0px;
        width: 40px;
        color:#31B404;
        height: 0;
        line-height: 1.0;
        padding-top:1.5px;
        font-size:16px;
}
.contentTag[title="Filter #l"]{
        font-size:10px;
        font-weight:100;
        //background-color:#BDBDBD;
        background-color:white;
        color:white;
}
.contentTag[title="Filter @l"]{
        font-size:10px;
        font-weight:100;
        //background-color:#BDBDBD;
        background-color:white;
        color:white;
}

/*リスト(番号)のスタイルを調整*/
.project.o-proj>.name>.content {
        color: #AEB404;
        //padding-left:13px;
}
.project.o-proj>.name>.content :before{
        content: "1. ";
        position: absolute;
        left: 0px;
        width: 40px;
        color:#AEB404;
        height: 0;
        line-height: 1.0;
        padding-top:3px;
        font-size:16px;
}
.contentTag[title="Filter #o"]{
        font-size:10px;
        font-weight:100;
        //background-color:#BDBDBD;
        background-color:white;
        color:white;
}
.contentTag[title="Filter @o"]{
        font-size:10px;
        font-weight:100;
        //background-color:#BDBDBD;
        background-color:white;
        color:white;
}

/*引用のスタイルを調整*/
.project.b-proj>.name>.content {
        color: #A4A4A4;
        //padding-left:13px;
}
.project.b-proj>.name>.content :before{
        content: "> ";
        position: absolute;
        left: 0px;
        width: 40px;
        color:#A4A4A4;
        height: 0;
        line-height: 1.0;
        padding-top:1.5px;
        font-size:16px;
}
.contentTag[title="Filter #b"]{
        font-size:10px;
        font-weight:100;
        //background-color:#BDBDBD;
        background-color:white;
        color:white;
}
.contentTag[title="Filter @b"]{
        font-size:10px;
        font-weight:100;
        //background-color:#BDBDBD;
        background-color:white;
        color:white;
}
.bullet{background-image:none;}

.bullet{background-image:none;}
    .project.open>.name>.bullet{border:1px silver solid;border-radius:3px;}
    .bullet,#bulletBucket .bulletBucketBullet{background:silver;border-radius:3px;}

これで、書くとき用のシンプルなシンタックスハイライトが実装されます。

タグのルールは上記HandyFlowyと一緒です。
で、自分用には推敲用のブログの見かけと同一になる装飾のスタイルも作成しちゃいました。

FireFoxでも、両方を切り替えながら書くことができ、とても、とてもいい感じです。
重ね重ね言いますが、どうか自己責任でお願いします。

このルールで色を変えることができるのは、「タグをつけたトピックを装飾する」という性質上、「見出し」と「リスト」と「番号付きリスト」と「引用」のみ。文章中の一部を「太字」や「イタリック」に装飾し、そこだけ色を変える、なんてことはできません。
また、タグを書く位置は、文頭に。じゃないと表示がうまくいかないようになってます。
文中ならどこでもいいっちゃいいのですが、あとあとのエクスポートのときを考えているのと、マークダウンは基本文頭に記号を書くこと。また、WorkFlowyでは、カーソルを移動させてる時にトピックをまたぐと、カーソルはかならず文頭に行く、ってことから、文頭に書くというルールにしました。

おわりに

公開しているのはシンプルなシンタックスハイライトのほうだけですが、自分用にはPCとHandyFlowyの両方に、執筆用と推敲用の二つのスタイルを作りました。これで、PCでもiPhoneでも書けるし、推敲できるようになったわけです。
一応どっちも用意してるだけで、基本的な流れは、PCにて「執筆用」で書き始め、書き進め、マークダウンタグで見出しとか定め、仕上げに近いところまでもっていきます。
そしてPCかiPhoneのどっちかの「推敲用」で、ブログと同じ見かけに表示させて、読み返し、細かい修正を加える、という感じ。
ブログにアップするためには、WorkFlowyでつけた「#h2」とかのタグを、「##」やら「<h2>」やらに書き換えなければいけないのですが、そのへんをスムーズにいくようにするのが、今後の課題です。

おそらく、技術的な部分では説明不足なエントリとなってしまったかもしれませんが、自分自身コードを書く技術に乏しいので、勘弁してやってください。

では、お読みいただきありがとうございました。

「執筆専用ブラウザ」をパワーアップ〜タグでシンタックスハイライト〜

以前、「執筆専用ブラウザ、という考え方」ということで、FireFoxをWorkFlowyで文章を書くためだけに使う、というエントリを書きました。
そこでは、書き出して、うんじゃかんじゃするまではWorkFlowy、つまりアウトライナーでこなし、仕上げはほかのエディタを使う、みたいに、書く段階を分けている、ってことを紹介しました。

・はじめのだぁーっと書き出すのはまっさらなエディタにて。
・そのあとは、アウトライナーへ投げて、うんじゃかんじゃする。
・最終的に記事に仕上げる際には、マークダウンをプレビューしてくれるエディタへ。
執筆専用ブラウザ、という考え方 – iPhoneと本と数学となんやかんやと

3つの段階のうち、はじめ二つをWorkFlowyに担ってもらい、最終の段階は別のエディタで書いていきます。
なぜ別のエディタを使うのか?
マークダウン記法で書いていく際に、「シンタックスハイライト」なる機能があったほうが、文章の見出しや引用、リストとなる部分が色で表現され、視覚的に見やすく、書きやすいから。
シンタックスハイライトとは、こんなんです。

マークダウン記法を用いて書いた見出しやらリストやらを色分けしてくれる機能です。
また、マークダウン記法で書いた文章を、最終的にはHTMLに変換しなくちゃいけなくて、その作業も簡単であるから。
加えて、いくつかのデバイス間でテキストを共有し、書く環境も統一したい、という願いもあったから。

3つのデバイスでテキストのやり取りしたい

メインのPCは、家のiMacです。持ち運び用として、eeeBook。スマホはiPhoneを使ってます。

ぼくの要望は、以下のようなもの。

  • 3つのデバイス間で、テキストのやりとりをスムーズに行いたい。
    • どのデバイスでも、何かしら「書く」ことをするので。
  • iMacに対し、eeebookはWindowsPCです。その両者で、異なるOS間で、書く環境を統一したい。つまり、エディタを同じやつ使いたい。
    • 環境が違えば、そのぶんいろんなことを覚えないといけなくなっちゃうのは嫌ですもんね。
  • エディタは、マークダウン記法を使うので、見出しや箇条書きなどをシンタックスハイライトしてほしい。
    • 色分けされてるほうが、最後の仕上げやりやすい。

これらを満たすようなツール、サービスをしばらくの間さがし歩いてみました。
MacとWinという違う環境下でも、同じようテキストを扱うために、両方で使えるエディタをいくつか試し、「SublimeText」を使っていました。
そして、テキストは「Simplenote」というサービスを利用して、3つのデバイス間でやりとりをしていました。

もちろん、ある程度の不便さを抱えることになります。
普段ぼくはEvernoteとWorkFlowyを使っていて、そこにテキストをやりとりするために、新たにSimplenoteを使うようになりました。
EvernoteかWorkFlowyで完結できれば、わざわざSimplenoteを使わず、これまでどおり2つだけでやりくりできるのに。
また、WorkFlowyからエディタへと書きかけの文章をコピペし、書き進め、仕上げなくちゃいけないわけですが、コピペにちょっと手間がかかります。
改行とかがうまく反映されず、わざわざもう一度改行しなおさなくちゃいけないんです。
エディタからWorkFlowyへとテキストを移すときにも同じで、少々手間がかかります。

WorkFlowyの文章を出し入れするのは、めんどうくさいんです。
であるがゆえに、別のエディタでSimplenoteを利用して文章を管理していたわけです。
環境を統一したい、という願望から、MacでもWinでも使えるSublimeTextを使っていた。
けれどもね、ここではたと考えます。
WorkFlowyは、どのデバイスからも扱えるじゃん、と。Macでも、Winでも、iPhoneでも。その気になれば、どこででも同じ環境で「書く」作業ができる。
そうすればWorkFlowyから文章を出し入れすることもなくなる。
明らかに、WorkFlowy上ですべてを完結させるのが一番いい。

残す課題は、一つ。

もしWorkFlowyにシンタックスハイライトがついたら、、、

そうですそうです、シンタックスハイライトの機能です。
それがあればすべてをWorkFlowyで完結することができる。ほんとにきれいにすべてがつながる。
Workflowyだと、そこにある文章の「見かけ」を、Stylishで変えることができます。
書き出すときは「・」を消し、エディタっぽく。
「・」が消えたとはいえ、アウトライナーであることには変わりないので、インデント・アウトデントをして、文章を組み立てることができる。
トピックを入れ替えたり階層化したりしながら、形にしていくことができる。
他の人が読んで理解できるように、読みやすいように仕上げるときには、マークダウン記法を利用して。シンタックスハイライトにて、構成を見えやすくしながら。
書きあがった後はiPhoneのHandyFlowyで、スタイルをブログっぽくして完成した文章を読み返し、修正する(文章の推敲にiPhoneを用いて、自分の中の「推敲モード」のスイッチを入れる)。
同じWorkFlowy上で作業が完結するので、どのデバイスにもStylishをインストールして同じスタイルを適用できるようにしておけば、まったく同じ環境が出来上がる。
どこから手を加えても、すべてもれなく変更が同期される。勝手に。ほとんど同期を意識することなく。
一連の流れのすべてが、WorkFlowyという場でつながる。
こんな快適さは、ほかにはない、と思います。

となるとやることは一つ。WorkFlowyでシンタックスハイライトを実現すること。
で、がんばりました。そして、なんとかそれっぽいものを実装できました。
本来のシンタックスハイライトは実装できませんでしたが、「タグ」をつけることで文章を色分けすることができるようになりました。
見出しとリストと引用の部分にタグをつけると、タグのついたトピックの文字の色や大きさを変える、ちょっとした装飾をほどこすことができるようになりました。
ただ、リンク、太字、下線はハイライトされません。当然で、タグをつかっている関係上、トピックの中の一部分だけを装飾、ってことができないためです。
普段太字や下線は使っていないので、まぁえぇか、ということになりました。

できたのが、こんなかんじ。

次回は、この実装について書きたいと思います。

おわりに

おそらくは、本などを書こうとおもうとWorkFlowyのみで完結することは難しいとは思うのですが、そんなに長くない文章であれば、なんの問題もなく、どこからでも、快適に「書く」ことができるようになったな、と思います。
最近文章を書くのが楽しくなってるのですが、この執筆用にカスタマイズしたWorkFlowyのおかげであるかもしれません。

今後の課題は、WorkFlowy上では、タグを使いながらマークダウン記法で書いていくので、それをエクスポートする際に、まだブログ用のHTMLで文章を取り出すことができない、ってところです。いちいち成形しなくちゃいけない。
独自のハサミスクリプト的なものが必要だなぁ、という感じです。次はそれを作れないかあがいてみようかな。

では、お読みいただきありがとうございました。

WorkFlowyで文章を書くときの感覚的な話

WorkFlowyを使って文章を書くのは、「ブログの書き始め」がほとんどです。
どんなことを書こうかなぁとぼんやりと考え、何か思いついたことについてだぁーと書き出す。いわゆるフリーライティングをおこなうとき。
また、書き出した文章はそのままでは他の人が読んでも、というか、時間がたってから自分が読んでもおそらくなんのこっちゃわからないので、ちゃんと他の人が読んでもわかるように整理し、組み立てていくとき。
FireFoxをWorkFlowyのための「執筆専用ブラウザ」として使って、書き始めから整理し、組み立てるまでをおこなっています。
で、そこから先は他のエディタに書いたものを移し、あるいはそれまでの書いたものを見ながら他のエディタで文章を仕上げていく、というのがいつものぼくのパターンです。

プレーンテキストに階層化が加わったもの

途中まではWorkFlowyを使って文章を書いていくわけですが、ブログほどの文章であればとくに階層化せず、文章たちの順番を移動させたり、改行を多く入れることで文章の塊を見えやすくしたりするくらいで仕上げまで持っていけることが少なくありません。
ブログを書くときには、階層化する必然性はそんなにない、ということです。せいぜい2階層くらいまで扱うことができればいいんではないか、と思っていました。
とはいえ、必要であればいつでも階層化できるという安心感は、かなり重要であるとも思うので、文章を書き始め、整理し、組み立てていくときにはWorkFlowyが安心なわけです。

WorkFlowyで文章を書く、となれば、階層化も利用しつつ文章を組み立てていきます。
階層によって組み立てたあとは、文章をブログのエントリとして仕上げる際には、階層を「見出し」という形に変換し、整えていきます
でも、ぼくはその方法が、見出しを文章を階層化することによって表現するのがしっくりきませんでした。
WorkFlowyを使い始める以前からずっとマークダウン記法によってブログ記事を仕上げてきたから、なのでしょう。見出しは、マークダウン記法のように、「ここを見出しにしますよ」ってしるしを入れることで表現したいってどうしても思ってしまうんです。
マークダウン記法に慣れているので、多くの文章が連なっている中で、ある文章を見出しにしたければ、その文章に「##」をつければいい。やめたければ「##」を消せばいい。
なので、文章をWorkFlowyで書くときには、プレーンテキストに階層化が加わったもの、くらいに考えておくのがしっくりきているようだと気付きました。

見出しをつけたり消したりで、、、

見出しを階層化で表現するためには、見出しにしたい文章の後に続く文章たちをまるごとごっそり見出し文章の階層の下に入れなくちゃいけない。がために、なんだか一度見出しを定めてしまうと、ちょっと動かしにくさが出てしまう。気がする。
文章たちの流動性が下がってしまう、気がする。

  • 見出しにあたる文章
    • そこに続いていく文章
    • さらにそこに続いていく文章

よりも

## 見出しにあたる文章
そこに続いていく文章
さらにそこに続いていく文章

のほうが、各々の自由度が高い、気がする。
マークダウンによる表現のほうが、手軽に感じるんです。手軽に感じるので、文章の流動性を高いままに保つことができる、気がする。
文章を書くときには、文章たちをリストっぽくは扱いたくないのかもしれません。「・」がいらないな、と感じるのも、「・」があったらどうしてもリストっぽくみえてしまうから、なのかも。

すべてフィーリングの話なので、もしかしたらぼくに限った話なのかもしれませんが。

なので、大きな構造を必要としないブログの文章では、「見出しですよ」を意味する「##」をつけたり消したりしながら、整理し、組み立てていくことになります。
ある文章に「##」をつけてそれより下に連なる文章をグルーピングしたり、見出しを新たに書き加えたり。
書き進めるうちに「ん?」となり、「##」を取り除いて一度フラットに戻したり。
気付きました。ぼくは「##」をつけたり消したりして「シェイク」をおこなってるんやな、と。

おわりに

ってなことを考えていると、だんだん「最後までWorkFlowyで完結させたい」と思うようになってきました。
というのも、iMacとWindowsPCのeeebookとiPhoneと、というように、3つのデバイスでテキストを扱い、ブログを書いています。
WorkFlowyで完結できれば、書く作業も、文章を管理する場所にもなってくれることになります。こんな快適なことはない。
その際にほしいのが、マークダウン記法をシンタックスハイライトする機能。これがないために、仕上げの段階をほかのエディタにまかせている、と言えそうなので。
というわけで、そこからハイライトをなんとか実装できないものか、といろいろとあがくことになりました。
続きます。

では、お読みいただきありがとうございました。