月別アーカイブ: 2014年8月

超早起き型のススメ

6226051400_9f29fc36a4_m

ライフハーック!

私はフリーランスなので、好きな時間に仕事ができるという利点があります。一番自分にあった時間の使い方を探しているうちに今の朝型にたどりつきました。朝のうちに仕事をするのはとっても効率がいいです。

どうして朝型がいいか

スケジュールが迫ってくると私の場合、焦ってしまって失敗も多くなるし、体調も悪くしがち。でも、朝に仕事を終わらせることで余裕を持って仕事に取り組めるというものです。前倒しにすることになるのでプレッシャーから開放されるのが一番でかいです。

会社員の人にも朝型をおすすめします。ただ私は会社にいるころ、ほとんど始発に近い電車でよく出社していましたが、これはあまり良い印象を与えた記憶がないような・・・。会社員の人はほどほどに。でも会社員でもフリーランス的に働きたいならぜひこの記事を読んで参考にしてみてください。

リンク:毎朝、定時より30分前にきっちりした身なりで出社し、新聞を読むことの価値が理解できない環境で働く人ってかわいそうだなぁ。

フリーランスだからこそ朝型

具体的にどれぐらい朝早いかというと、仕事時間がどんどん早い時間にシフトしていって、5年位前からだいたいのペースは

月曜日 PM10:00就寝 〜 AM1:00 起床
火曜日 PM10:00就寝 〜 AM3:00 起床
水曜日 PM10:00就寝 〜 AM5:00 起床
木曜日 PM10:00就寝 〜 AM1:00 起床
金曜日 PM10:00就寝 〜 AM3:00 起床
土曜日 AM0:00就寝 〜 AM5:00 起床
日曜日 AM0:00就寝 〜 AM7:00 起床

な感じです。別に曜日で決めてるわけではないのですが、分かりやすくテーブルにしてみました。基本的に、太陽が昇るまでにその日の仕事を終わらせてしまいます。そうすると、日中が空きます。半日は空けておく必要があります
なぜなら子供が熱をだしたり、人が遠方から会いに来たり、疲れてバタンキューしたり、大切なことがたくさんあるからです。
もし余裕がない日に上記のことが発生すれば間違いなくスケジュールが守れなくなる、それはフリーランスにとって致命的です。
余裕があれば新しいことを勉強したり、打ち合わせを重ねてクオリティをあげたり、新規案件をいただいて見積もりしたりを日中のうちにすればいいので、暇になることはないです。

朝型になるには

ではどうやって生活習慣が身についたのでしょうか。いくつか原因を考えてみました。

1.早起きしたくなるようにする
2.自分を甘やかす
3.寝る前の時間を大切にする

1.早起きしたくなるようにする

正直に告白しますと、最初に早起きになっていったのは遊ぶためでした。それも、ネットゲーム、そう、フリーランスの貴重な時間を蝕む悪魔のような遊戯のためでした。その頃、子供が生まれ、日中は育児でゲームが出来なかったことから、嫁・子供の寝静まった朝方に起きてゲームをしていたのです。今ではネットゲームはしていませんが、朝に仕事が終わると子供が起きてくるまでの間にちょこっとスマホゲームを楽しむことがあります。褒美というわけです。
子供がいるからこそ、一人で集中できる時間を作ったわけで、逆に一人暮らしだと早起きの習慣は難しいだろうと思います。いきなりハードルをあげるようですが、結婚して子供を作ると早起きしやすくなると思います。

2.自分を甘やかす

何時に起きよう、などとはっきりした目標をたてる必要もありません。目覚まし時計も必要ありません。[ノンレム睡眠]の時に無理やり起きると頭が働かないので何の意味もないからです。また覚醒はしたけど体がだるい、どうしても動かない、という時は延長してかまいません。無理やり起きることは本当に意味がないと思います。ちなみに昼間に10分〜20分程度仮眠をとるのはおすすめです。

リンク:コーヒーと仮眠の効果をいいとこ取りした裏技「コーヒーナップ」とは?

3.寝る前の時間を大切にする

早く起きるために一番重要なこと、それは早く寝ることです。私は布団に入って10秒もたたずに寝入ることができるので、のび太君にも勝っていると思います。重要なのは床に入る前の2時間は頭を興奮させない。つまり、仕事や友人とのおしゃべりはその時間帯はせず、風呂に入りテレビをみて歯を磨きましょう。あとは禅の気持ちです。

最近気づいたこと

自分の生活習慣を「漁師みたいな生活だな」と言われたことがあります。確かに、自分の父親は漁師で、3時くらいから漁に出て太陽が昇る頃にその日の仕事が終わっていました。知らずのうちに心地よい生活リズムが父と同じだったというわけです。

 

【cakePHP】配列を組み替える便利なHashクラス

cakePHP使っててうれしいのが、Hashクラスが組み込まれていることです。

これはとっても便利なので、他のフレームワークを使う時でももし同等のものがなければコピーして使おうかと思っています。

サンプルコード

いくつか簡単な例をあげます。

このような配列があるとして、

4番目のユーザーの名前を取り出したいとき

Result:

Userの下の配列は数値キーで0から始まっているので4番目を指定するには3になります。説明無用とは思いますが念のため。

idが2のユーザーの名前を取り出したいとき

[配列名=配列値]の書式で条件式を書けます。

Result:

配列名がなければ配列番号でもいけます

Result:

Hashクラスのマッチャで使える記号:

‘=’
‘!=’
‘>’
‘<‘
‘>=’
‘<=’

等号は==でなく=なので注意してください。

配列のキーをidにして必要なデータのみの配列を作りたい時

Result:

このようにすっきりした配列を作成できます。リンクリストなどを作るのに活躍します。

条件式で指定したデータの配列を生成する

combineとマッチャを組み合わせて使用するときに注意しないといけないのが、第2引数と第3引数、両方にマッチャを指定しないといけないことです。キーと値の数が合わないとfalseが返ってきます。

Result:

グループIDでグルーピングしたユーザー配列を生成する

2次元配列を作るにはcombineに引数を追加します。

Result:

group_idでユーザーを分けることが出来ましたね。

複雑な階層の多次元配列を扱う

不特定のキーを表すのに{n}と{s}があり、nが数値キー、sは文字列キーに対応しています。Hashパス構文の中に何個でも出現して構いません。

Result:

キャラクターの持つアイテムリストができました。idをキーとすることで重複は省かれています。

sptinrfの結果を値に入れる

Hash::formatを使えばsprintfの結果を取り出せます。

Result:

これをHash::combineでやるときには第3引数を配列にして、1番目にフォーマット文字列を入れます。

Result:

 

ほかにもいろいろ便利ですが

文字列を生成したり、配列に値を加えたり削除したり、非常にいろんなことができますが、抽出系に絞って書いてみました。

cakePHPの公式ドキュメント「Hash」をみれば全部書いてますが、サンプルが少ないのでちょっと分かりにくいかもと思うところもあります。

これを参考に、配列を自由に扱えるようになるとデータの扱いもぐっと幅がでてくることでしょう。

最後に、進撃の巨人のキャラクター名をサンプルに使ったのは深い意味はないのでその辺のツッコミは無用でお願いします。