JavaScriptのワークショップに初参加

ついこの前、Pythonを学習し始めたばかりのプログラミング初心者が、またまた調子に乗って今度はJavaScriptのワークショップに参加してきた。
今回のワークショップの会場は、先月参加したPythonの集いと同じ。

18時半開始で、21時まで。「JavaScriptをさわったことのない初心者もOK」という誘い文句に思いっきり安心しきって申し込んだけど、申し込み完了のメールに、「事前にNode.jsとnpmをインストールしてきて」という一文。

・・・どうやって?

Node.jsをダウンロードしよう

「node.js npm」などのキーワードでググれば、たくさん解説ページが表示されるので、問題ない・・・はずだった。

MacにNode.jsをインストール

なぜだかNode.jsのインストールの段でエラーが出るという。。。
お手上げ状態になって、結局、次のサイトで【macOS Installer (.pkg)】をダウンロード。

Node.js ダウンロード

無事完了。(だがしかし、自分が一体何をしているのかわかっていない状態。)

ワークショップ:NODESCHOOL

会場へは三番乗りくらい。申し込み時点で、40人弱参加予定と表示されていたけど、実際の参加者は30人位だった。個人で教材の課題をこなしていく。もちろん講師(4人位)が各テーブルをまわって、つまずいていたら教えてくれるし、同じテーブルの人たちと相談したりもする。

使った教材は、NODESCHOOLで提供されているもの。

初心者の私は、javascriptingを選択。

課題に取り組むには (Macでの方法)

ここからは英語の解説を頼りに進めていくこととなる。

  1. ターミナルを立ち上げて、インストラクションにあるコマンドnpm install --global javascriptingを実行。
  2. javascriptingを実行
  3. 一番上に JAVASCRIPTING と書かれた青色のブロックが表示される。
  4. INTRODUCTION がハイライトされているので、【Enter】キーを押下。
  5. 解説にあるとおりにコマンドを実行してフォルダとファイルを作成する。私は一番ラク、という理由から、デスクトップにフォルダを作成。
    1. cd desktop を実行。
    2. 解説どおり、mkdir javascriptingで【
      javascripting】という名前のフォルダを作成。
    3. 解説どおり、cd javascriptingで【javascripting】フォルダへ移動し、touch introduction.jsを実行して【introduction】という名前のjsファイルを作成。
  6. 最初の課題では、【introduction.js】にconsole.log('hello');と入力して保存。(以降の単元では【## The challenges】以降の指示に従って取り組んでいく。)
  7. ターミナルに戻って、node introduction.jsを実行。(→【hello】と表示されれば課題クリア!)
  8. 正誤の判定のため、javascripting verify introduction.jsを実行。
    • 以降完了したら、javascripting verify jsファイル名を実行
    • クリア出来ていたら、真ん中あたりにポジティブな単語が表示される(’YOU DID IT’とか’THAT NUMBER IS ROUNDED’など)。
    • クリア出来ていない場合には、自分の答えと正解の違いが指摘される。
  9. ‘javascripting’を実行して、青いブロックの画面に戻る。
  10. 直前に取り組んでいた単元の右側に[COMPLETED]と表示され、次の単元がハイライトされるので、【Enter】を押下して進める。
    • [COMPLETED]と表示されていなければ、直前の単元の課題がクリアできていないので見直す。

取り組み時のポイント

課題は全てファイルを作成するところから始まるので、コマンドを覚えておく。→ touch ファイル名

いくら正解のコードを打ち込んでいても、保存していなければやり直しというメッセージが返ってくる。→ キーボードショートカット:Ctrl+S

直前に書いたコマンドは、↑(矢印キー)で再表示させる。(【例】node introduction.jsで思い通りの結果が返されず、ファイルを修正。その後、↑を押下して、再実行。)

私が躓いた箇所:LOOPING THROUGH ARRAYS (Exercise 14)

Exercise 10 の【FOR LOOP】で学習する文法


for (var i = 0; i < 10; i ++ ) {
    console.log(i)
}
 

上記の応用問題(課題詳細は省略)で、私が隣の人に相談したのは、2点。

  1. 配列の要素数を調べるには?
  2. console.log()をforループから出してみるには?

最終的に二人では解決出来なかったので、先生に質問。

配列の要素数を調べるには

解答

文字数のカウント同様、.lengthを使用。


var pets = ['cat', 'dog', 'rat'];
for (var i = 0; i < pets.length; i ++){

}

console.log()をforループから出してみるには?

これは、ちょっと本題から逸れた話(課題で求められているのは別のこと)。

「配列の一番最後の要素を表示させる場合に、console.log(pets[i])をforループの外に置くにはどうするか」ということを二人で実験。

for (var i = 0;とあるように、カウンタ変数iはforループの中で有効(なのだそう)。ということは、console.log(pets[i])をループの外に出すためには、このiもまた外に出す必要がある。


var pets = ['cat', 'dog', 'rat'];
var i = 0;
for (i; i < pets.length; i ++ ){
    pets[i] = pets[i] + 's';
}
console.log(pets[i])

【undefined】というメッセージが返ってくる。二人とも「???」状態だった中、先生がヒント:最初の質問の【要素数のカウント】。

そう、インデックス番号と要素数がごっちゃになってた!

pets.lengthで返る値は、3。2ではない。一方、インデックスは、ゼロからはじまる。つまり、ループを抜けた後のiには3が入ってている。console.log(pets[3])は存在しない、となるわけ。

それから、ループの外でカウンタ変数を宣言したら、省略が可能になるとのこと。これらをまとめると以下のようになる。


var pets = ['cat', 'dog', 'rat'];
var i = 0;
for (; i<pets.length; i ++ ){
   pets[i] = pets[i] + 's';
}
console.log(pets[i-1]);

しかし、これは課題の解答とは異なる。参考まで、課題の解答は以下。


var pets = ['cat', 'dog', 'rat'];
var i = 0;
for (; i<pets.length; i ++ ){
    pets[i] = pets[i] + 's';
}
console.log(pets);

ワークショップの感想

そんなこんななやり取りをしながら、21時手前までに【javascripting】の課題を全部完了。やっていることは、PyQだったりCodecademyとかと同じようなこと。ただ、アドバイスをくれる人や他の学習者たちが傍にいる中で取り組むのは、想像していたよりも面白かった。前述のようなやり取りなど、一緒に悩みながら解決していくのは時間がかかるけど、過程で得るものが多かった。

今回の主催者は、定期的にこのようなイベントを開催しているようなので、次回もぜひ参加したい。(それにしても、この会場で開催されるイベントは、ビールとピザが定番なのだろうか。。。1

あと、今回初めて知ったNODESCHOOL。どうやって使うのかをせっかく知ることが出来たので、時間を見つけて他の教材にも挑戦しようと思っている。


  1. 前回同様、今回も参加費無料。 ↩︎
Advertisements

いつの間にかストレスを溜め込んじゃってた

 

寒い寒いと思っていた冬の記憶もだんだん薄れてきた。

3月は年度の最終月ということもあり、今年度のラップアップ作業が多い。加えて新年度に向けてのレポートもある。なのに、何だかやる気が出てこない。今までだと、仕事が増えれば増えるほど効率的にこなそうと、「あーでもない、こーでもない」とバタバタしていたの私がである。自分でもこんな自分の状態が不思議。

キモチワルッ!髪の毛切ってからの周りが優しい。

そこで、思い切って髪の毛をバッサリと切ってみることにした。切る前は胸くらいまでのロング。美容師さんに

「別にどんなスタイルがいいとかっていうのはなくって、ただ短くしたいんです。こんくらいまで切ってください。肩につくかつかないかくらいがいいです」

と言ったら、

「けっこうバッサリいっちゃいますけど、ホントにいいんですか?」

とやや驚かれる。

「はい。ほら、髪の毛切ると悪運も断ち切れるとかって言われてたりもするじゃないですか?」

とスピリチュアル系にハマってるイタイ30代のような発言をぶっこみ、最後には「あ、ここに落ちてる髪の毛、私の悪運たっぷり吸い込んでるんで、念入りに掃除しておいてくださいね」と呪いともとれそうな言葉を残して、店を後にした。

結果、仕事へのやる気を取り戻せたのかと言えば、残念ながら「NO」。やる気のバロメーターには悲しいほど変化がない。ただ、私の周りの人たちが、優しくなった、ような気がする。

よく利用するカフェやレストランで男性スタッフから意味のわからんサービスをしてもらえたり、声をかけられたり。出張先でも「ん?いつも私からの質問に対して面倒臭そうな対応だったのに、なぜに今回はこんな懇切丁寧?」ということがあったり。親切にされることが増えて嬉しいというより、対応が変わりすぎて、気持ち悪い。

30数年の人生の中で、今までもイメチェンしたことはある。服のテイストを変えたり、メイクを変えたり、もちろん髪型を変えたり。でも、こんなあからさまな周囲の変化は初めてで、正直戸惑う。服もメイクも変えてない。変わったのは髪型だけなのに。

髪を切って悪運もなくなったのか。いや、きっとそうじゃない。

「髪の毛に宿っていた負の念が落とされた?」と危うくスピリチュアルな世界へ舵を切りそうになったけど、呼吸を整えて冷静に考えてみると、髪の毛を切ったことによってツイていない日常が好転したわけじゃない。

多分、美容院で日頃溜まった文句を聞いてもらったり、出張で転職前に住んでいた地域へ行って前の同僚たちと話をしたり、友達と美味しいごはんを食べてリフレッシュできたから、それまでまとっていたどす黒いものがなくなったからなんだと思う。

「自分の将来のために」と転職して、慣れ親しんだ土地を離れたけど、思っていたより自分はもろくて、思い通りのパフォーマンスが出来ずに落ち込む毎日。悔しすぎて、一年前に前の職場の同僚たちと食事した際には、涙腺崩壊。私の目標だったお兄さん・お姉さんたちから「よしよし。一緒に転職エージェント行ってやっから、とりあえずもうこっち帰ってこい」と慰められるというなんとも恥ずかしい出来事も。今回は、涙腺崩壊まではいかなかったけど、いろいろと悩みを打ち明けたり、バカ話をしたりして、スッキリ。

当時よく遊んでいた友達1との夕食会でも、前回みたいに「もう会社辞めてぜ~んぶリセットしたい。実家に帰ってのんびりしたい2。」という後ろ向き発言はなし。Pythonの話で「久しぶりに会ったのに、結構本気なプログラミングな話するとか、私たちやっばいね」と大笑いしながらワインを空けた3

特に過去12ヶ月は忙しくて、でも吐き出すことも出来ず、知らず知らずのうちに、漢字のとおり、心をなくしていっていたのだと思う。だから、いつの間にか周りの人たちを近づけないどよーんとした雰囲気をまとっていたのかもしれない。髪の毛を切って悪運が断ち切れたわけではなくて、久しぶりに友だちと会ってリフレッシュして少し明るくなったから周りの人が声をかけやすくなった、というのがきっと正解。

もっと頻繁にリフレッシュが必要

私の場合、人とバカ話をしながら美味しいものを食べたり飲んだりするのが一番リフレッシュ出来る方法だった。残念ながら、新しい土地でやっと出来た気のおけない友達が引っ越しちゃったりして、この方法が上手く機能していない4。そういうときこそ、運動するべきなんだろうけど、仕事が忙しくなり始めてジムも辞めてしまった。

ストレスって何となく感じるけど、放置すると感覚が麻痺してきて、どれくらい溜まっているとかわからなくなってくるから厄介。

今回、自分がいかにストレスを溜め込んで、更に周りに嫌な空気を作っていたのかということに気付いたのをきっかけに、もっと早い段階でリフレッシュして、周りを遮断することのないようにしないとと反省。

早速、面白そうなイベントが無いかと探して、いくつか申し込んでみた。そして今週末は、久しぶりにジムにも行く予定。こういうのもあんまりやりすぎると、反対にストレスに感じちゃうから程々にしないといけないのだけど、しばらくは意識してちょっとだけプライベートの予定を増やしてみようと思う。


  1. 彼女と出会って初めて、美人プログラマって存在するんだ、と知った。 ↩︎
  2. 優しすぎる父親から、「ツライなら仕事やめてしばらく休んだら?」という甘い言葉がポロリと出ることがあって、たまに傾いてしまう。 ↩︎
  3. 以前、金曜の夜に飲みながら、フローチャートの話で盛り上がったときには、彼女の当時のカレから、「女同士が金曜の夜に飲みながらする会話じゃない!」と注意されたっけ。相変わらずなのか。 ↩︎
  4. しかも、今は、食事の回数も少ない。 ↩︎

過去2年の体重変化を振り返る|食習慣とアプリの影響

2月の振り返りで効果を見ようと思っていたのだが、1月から食事の回数を減らしている。だんだんと慣れてきてある日もう一食抜いてみた。そしたら、意外に成り立つ。上司のお伴で会食に参加したり、会社の懇親会があったりするから、厳格な一日一食実践者ではないけれど、今月から8〜9割一日一食実践者となっている。これまで通り朝は必ず抜き、昼は食べ(たまに3時のおやつ)、夜を抜く。

【一日一食】いつ食べる?私のパターン

一日一食の人の多くは昼を抜いて夕飯をとっているようだけど、私の場合、昼は上司と一緒に社食なのでここはどうしても抜けない。なので、私の唯一の食事は社食。昼食の量に変化はなし。大食いなので、男上司の倍を食べるのがデフォルト。最近は、上司も体重増加を気にしているらしく、食べる量をセーブしてきているので、私のトレイと上司のトレイの食べ物の比率は2:1から限りなく3:1に近づいてきているような気がしている。

主食のあずき玄米ごはんは基本週末のみ。でも今後は、ごはんを持参して、社食でおかずだけ注文しようかなとも考え中。

食べ過ぎ注意!

さて、そんな中、今週後半は上司が出張で不在。ということで、水曜は超どデカ弁当を持って、木曜は数個持って出社した。水曜は通常通りの量で全く問題なかったが、木曜は前日の1.5倍ほどの量だったため、明らかに 食 べ 過 ぎ となってしまい、午後はずっと苦しかった。そして眠かった。18時頃に舟を漕ぎ出し、何とか抵抗するも21時17分には就寝1。食べ過ぎると眠くなるというのは本当らしい。最後の手段と、胃腸薬に手を出すも、金曜も引き続き苦しかった。

以前ならあのくらい平気な量だったのに、食事回数を減らしたら知らず知らずの内に胃袋の限界もやや低くなっていた模様。断食をすると回復食が非常に重要などと言われているけど、今回のことで、身にしみた。身体からのシグナルにしっかり耳を傾けるべきだったと反省。

一日一食の場合、一食は思いっきり食べて良いなんて話もあるけど、実際には、確かに食べて良いものの制限はないものの、食べる量には制限あり。

体重変化とそれぞれのダイエット法の効果

学生時代は《運動をしてダイエットをする》以外に正解なんてない、と思い込んでいたし、若いうちはそれが正しい方法だと思う2。でも、先輩にも散々に忠告されていたとおり、30を過ぎるとそれだけじゃびくともしない。

元運動部な私は「昔のように運動さえすれば」と、大好きな食べ歩き、飲み会を減らすことなく数年足掻いていた。いや「足掻く」というのは誤りで、「現実から目を逸らして」いた。

さすがに現実を直視することになったのが2016年8月。旅行先のホテルで鏡に写った自分を見て初めて「ヤバすぎる」と気づく。以下、時系列にそって当時の状況を振り返ってみる。

時期 状況
1. 2016.08 慌ててFitbitを買ってジムに申し込む。しかし、よく笑い話にされる「運動したから食べても平気」と考えるような人間が私という女。筋肉を付けるには良質なタンパク質が必要よ、と、ひたすら大量の鳥料理を食べ続ける。本末転倒。
2. 2016.08 ジムに通っているのに体重が増えるのを目の当たりにしてはじめて、食事面からのアプローチもしないと体重変化は見込めないと気づく。遅すぎる。
3. 2016.09 そして一日二食の生活を開始。会社帰りに語学学校に通い始めたため、ジム通いを減らしウォーキングを開始。毎朝出勤前に1時間ほど歩き、シャワーを浴びてから出勤という生活をしばらく続ける。
4. 2017.02 順調に体重が減ってきた気の緩みと、同僚の退職に伴う仕事量の増加により、一日三食・運動なしの日々カムバック。段々と体重も元に戻り始めるが、せめてもの抵抗としてあずき玄米生活を開始。
5. 2017.08 後任の社員が入って仕事も落ち着きはじめ、そろそろジム再開しようかと考え始めた頃、同僚が二人退職する。再び仕事量が増える。しかも、カバーする量は前の倍、且つ後任が見つからない状態が数ヶ月続く。
6. 2017.11 過去数カ月のストレスからか段々と眠れなくなってくる。一度リセットと、11月下旬から12月初めにかけ10日間の7号食ダイエットに挑戦する。
7. 2017.12 出張と忘年会によりじわりじわりと7号食ダイエットの効果を食いつぶす。
8. 2018.01 一日二食生活に戻す。年末年始前の状態に徐々に戻っていく。しかし、出張中は一日三食+結構気合が必要な飲み会な一週間。体重はやや増加傾向に転じる。
9. 2018.02 緩い一日一食生活を開始。時々、会食の予定があったものの上昇には転じず。但し、あまりの変化に体重計の電池残量を疑い始めているところ3

出張中などを除きだいたい毎日同じ時間に体重を測っていて、Fitbitで作成された体重変化のグラフが以下。X軸の2016と表示されているのは2017となるべきではないかと思うが。。。

Fitbit_23Feb

いやはや2016年一年間の徐々に太っていく状態、体重測っていてもこんなに着実に増やせる人も珍しいのではないか。測るだけダイエットなどというように、一般的には見える化されると気が引き締まるらしいのだから。

とはいえ、自分でも少し驚くのが、ジム通いの効果の低さ。むしろウォーキングの方が効果がある。体重を伏せているので、わかりにくいが、恐らく、私のように脂肪が増えすぎた人にとっては、筋肉つけて云々といった王道の前に、ある程度脂肪減らす、ことが必要かと思われる。そして、この脂肪を減らすのは、効果があるのかないのかイマイチ分からないウォーキングと食事量。

汗をかいて、なんだかとてつもなく大きなことを成し遂げた気になれる運動が、太り過ぎた私にはそれほど効果がなかったようだ。

さて、一日一食の効果は一番グラフの一番右。最近1ヶ月弱での急傾斜。以下は、Happy Scaleというアプリのスクリーンショット。Fitbitと使い始めの時期が違うのと、体重のトレンドに重点を置いているため、実際の減量結果とはちょっと違う4。こっちの方が減っている表示をしてくれていて嬉しかったので、ついついスクショ。

HappyScale_23Feb

意志の弱い人間には文明の利器

前述のとおり、私はダイエットを決意してFitbitを購入したが、このFitbit購入の前にもちょっとした悪足掻きしている。というのも、その2週間ほど前に少し安価なデジタルの体重計を購入しているのだ。しかし、表示される体重に「こんなにあるはずがないッ!」とあろうことか新品の体重計を不良品扱いする始末。

意外に重要な体重計の存在

旅行先のホテルの鏡で自分の姿を見て「現実を直視しよう」と決意すると同時に、思い切って疑いの目でしか見られなくなっていた買ったばかりの体重計とお別れすることにした。

何だかもったいない話ではあるけど、結果、この決断は正解だったと思う。私のような大雑把でモノグサな人間は、どんなに正確に体重を測ったところで、毎日数百グラムの違いなんて記憶に留めておくことが出来ないし、だからといってグラフを付けるのも面倒くさい。Fitbitのようなアプリと連携できる体重計を利用すれば、面倒な作業はアプリがやってくれるので、安心して毎日同じ時間に体重計にのれば良いだけ。

ちなみに、前の体重計の表示していた体重とFitbitの体重は同じだった。(しばらくの間、信じられなくて2台で測っていた。)

優秀な伴走者フィットネスバンド

前の会社で、フィットネスバンドの調査をしていた同僚が、Nikeのフィットネスバンド使用してダイエットにやや成功した、という話を思い出し、フィットネスバンドを調べる。Fitbitは体重計も出ているということだったので、早速、体重計とフィットネスバンドを購入。この時購入したバンドはFitbit Charge HR5

去年一年間の私は自分の健康状態を冷静に見る余裕がない状態が続いていたので、積極的には体重の上昇傾向を防ぐことができなかったが、それでも、過去最高に太っていた2016年春の状態に戻ることはなかった6。時折目にするグラフでせめてジャンクフードからは距離を置こう、とか思うくらいには抑止力にはなっていた。

データが集まるまでの1ヶ月近くはつまらないし効果が感じられないのがネックだけど、ダイエットしたいけど決心がつかない、飽き性だ、という人には、付けておしまい、のっておしまいのFitbitも選択肢としてありだと思う。

とはいえ、そろそろジムにも通いたい

食事とウォーキングの組み合わせがこれまでの私には合っていたようだけど、ダイエットとは関係なく、普通にもっと身体を動かしたいから、仕事量も落ち着いてきたので、3月はジム通いを再開したい。

【参考】私の使っているダイエット関連ツール

参考まで私の使っているツール。体重管理アプリはいくつか試したが、フィットネスバンドやアプリ連動の体重計はFitbit以外試したことがないので、他の商品と比べて勝っているなどのコメントは出来ない。個人的には、性能の良さもさることながら、アプリの見た目など、自分の趣味に合うものを使うのが良いと思う。

【トラッキング用アプリ】

全てiPhone

以下、写真はAmazonのサイトにとんでしまうので、本家サイトで見たい場合にはテキストリンクをクリックしてください。

【体重計】

私が使っているのはひとつ前のモデル(画像の商品の方)

Aria 2

【フィットネスバンド】
2016年8月〜2018年1月始めまではひとつ前のモデルを使用

Charge 2

2018年1月中旬〜

思っていた以上に大きかったけど、しばらくすると慣れる。
ionic


  1. Fitbitの記録による。 ↩︎
  2. もちろんジャンクフードばかりといったような明らかに生活習慣が悪い場合を除く。 ↩︎
  3. アプリで確認する限り、交換時期からは程遠い ↩︎
  4. Fitbitよりも以前に使用開始。当初は手入力で入れていたが、そのちょっとした手間が面倒くさくて途中でやめる。その後、《Sync Solver》というアプリでFitbitと連携できるということを知り利用再開した経緯あり ↩︎
  5. その直後に2が出て、HRはなくなった。 ↩︎
  6. 2015年秋からわずか6ヶ月で10キロ太るという悪夢のような現実。 ↩︎

Pythonユーザの集いに初参加

Pythonを真剣にはじめてまだ1ヶ月も経ってもいないのに、Pythonユーザの集まりに行ってきた。参加した理由は、実際にどういう人たちがPythonをしているのかという興味本位というのが一番。本やオンライン授業ではなく、実際にPythonを使っている人と直接離したりすることでモチベーションアップにもつながるかなというやや他力本願的な考えも。

会場は18時から受付開始、オープニングが19時〜。前半2名のプレゼンの後、軽食を挟んで、後半2名がプレゼン。流石に後半の内容は上級すぎるので、前半のみ参加した。

一番最初は今回のイベントのスポンサーからの挨拶。このイベントは会費なし。スポンサーが会場と軽食を提供1。スポンサーが付いていることに驚いた。私がオーガナイザーだったら、安易に会費制にしてしまうだろう。

次のオーガナイザーのLTが良かった。彼女はPythonを始めて5年弱、Pythonイベントのオーガナイザーになって3年らしい。最初の1年半は恥ずかしくて、こういう集まりに参加できなかったという。当時の自分のようなビギナーにも場を作るという信念の元、イベントの内容を変更。前半は全員対象、後半は上級者対象、中間に懇親の機会を設けている現在のスタイルは彼女の試行錯誤の結果。参加者も彼女が参加した当初と比較して3倍。参加者増加の背景にはPython人気もあるのだろうけど、それにしても彼女の行動力すごい!2

前半最後のワークショップでは、リスト内包表記や、《is》と《==》の使い分けについて。PyQでも理解するのにしばらく立ち止まったトピック。PyQの中級まで終わらせておいて良かった、と心底思った。私は、入力されていくコードとその解説についていくので精一杯だったけど、他の人たちは質問したり、意見を言ったりと、インタラクティブで面白かった。私もああいった質問が思い浮かぶようになる日がくるんだろうか。

前半終了後、LTをしたオーガナイザーに今回のイベントの他に初心者の集まりはないのかと質問。初心者ということでブートキャンプをいくつか紹介された。やっぱり一度インテンシブに基本を叩き込むのが良いらしい。時間とお金があれば行ってみたいけど、現実は厳しい。当面はPyQとUdemyで頑張る。

彼女は、一通り身につけた後、更に知識を深めたい部分をCorseraの授業で補ったらしい。・・・Courseraとかに飛びつくあたりやっぱり次元が違うような気がする。

彼女や他の参加者のようになるまではまだまだ時間が必要そうだけど、とりあえずは、PyQで基本を身に付けて、次のイベントにも参加したい。

【私が使っている教材】

 

Python 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイルを学び、実践的なアプリ開発の準備をする

 


  1. 飲み物は最初っからあって、ミネラルウォーター、ジュース、ビール。発表者以外、ビールを手にしているような状態。食事はピザ。私の思い描いていた典型的なプログラマ的集い。(この会が例外的なのか?) ↩︎
  2. 最近では更に、他のプログラミングの集まりのオーガナイザーもしているらしい。 ↩︎

フォルダ作成、バッチコーイ

毎月もしくは毎四半期ごとにやってくる業務が私にはある。数種類のファイルが別の拠点や本社(もちろん内部データも)から送られてくる。

私が引き継いだときは、月のフォルダがひとつ、そこに全てが突っ込まれているという状態だった。前任者のスタイルは、「最終版を最後に保存」というもの。【インボックスゼロ】信奉者(なのに、今年に入ってすでに1,000以上受信箱に積み上がっているのはなんでだ?)の私には、そんな高等な技を使える能力はなく、とりあえず、届いたデータをフォルダに移動させて、メールは【Inbox】フォルダから【DONE】フォルダへ、というスタイル。私のようなスタイルをとると、とりあえずはメール地獄からは回避出来るものの、ドラフトも最終版もフォルダに入れておくことになってしまうので、フォルダを階層化する必要が出てくる。

例えばあるレポートは以下のような形で整理されている。これは、あくまでサンプルで、実際の業務では、2階層目のフォルダの量はもっと多いものもある。(3階層目は減らす方向で鋭意努力中。)

sample_folders

 

単に月のフォルダを作って終わり、というのに比べるとフォルダの作成作業が増えた分、効率が悪くなったようにも思えるが、後からデータにアクセスすることを考えると、2階層くらい増やすのは、ま、仕方がないように思っている。(前任者が1階層だけで仕事をこなしていたのが本当に信じられない。。。恐ろしく記憶力のいい、出来る人でした。)

複数のフォルダを作成する(これまでの方法)

前置きが長くなったが、こういうのを毎回作成するのは面倒くさい。ので、私が最初にやったのは「Excelでフォルダ作成のマクロを作る」というもの。というのは言い過ぎで、実際には、2つのExcelマクロを使って対応してた。(一発で作成する方法もある模様。)

作業手順は以下の通り。

  1. 【Ctrl】+【Shift】+【N】を何回か押して、必要なだけフォルダを作成する。
  2. マクロ1でフォルダ名を取得。(→A列に現在(変更前)のフォルダ名を出力)
  3. マクロ2でフォルダ名を変更。(→B列に変更後のフォルダ名を入力(業務内容に応じて作成してあるフォルダ名のリストをコピペ))

複数フォルダを作成するバッチファイル

これでもそれなりに上手くいっているしいいと思っていたけど、最近、pandocなどでコマンドというのを使っていることもあって、コマンドで私でもできそうな簡単な方法ないかなと。

作ってみました、バッチファイル。やっぱり素人なので、上手くいかない部分もあって、最終的には背伸びをしないやり方を選択したけど、新しいことを学ぶことができたので良しとしておく。

大まかな手順はExcelマクロと同じ。2つのバッチファイルで対応。

  1. 【フォルダリストの作成】以前作成したフォルダの親フォルダにバッチファイルを置いてダブルクリック。
    dir /ad /b > folderlist.txt
  2. 【フォルダの作成】2つ目のバッチファイルで、1.で作成したリストのフォルダを作成。
    for /f %%a in (folderlist.txt) do md %%a

ほぼ同じ手順だから、これまでと変わりないように思えるけど、ちゃんとモノグサな私仕様になっている。ただ、最初だけ設定しなくちゃいけない。(これも本来はコマンドで一気にできちゃうんだと思うけど、如何せん、知識がないので、今は身の丈にあった方法で。)

階層の浅いフォルダに関しては、上の1.の手順でOK。でも、毎月使ってしかも、サブフォルダも複数設定する必要がある場合には、以下の手順でフォルダリストテンプレを作っておく。

前述の1.【フォルダリストの作成】用バッチファイルで出力されるのは親フォルダのみ。/bの前に/sと入力するとサブフォルダまでリスト化される。但し、これだとフォルダ名だけ取り出されるのではなく、パスが出力されてしまう。なので、出来上がったテキストファイルを開いて、最初の部分を置換で消してしまう一手間が必要。そうやってやっとサブフォルダ付きリストの完成。次月以降は、このサブフォルダ情報付きフォルダリストを用いる。

各方法の違い(体感)

私の試した方法はこれで3つ。

  1. 全て手作業でフォルダを作成
  2. Excelマクロでフォルダを作成
  3. バッチファイルでフォルダを作成

1.と2.の差が量にもよりけりだけど、15〜30分だとすると、2.と3.の差は5〜10分程度にすぎないかもしれない。(注:あくまで体感。実測はしていない。)この作業は、単純作業で引継ぎに失敗する話でもないので、とりあえず当面は個人的にバッチファイルで対応していく。