2018年3月の活動記録

だいぶ遅くなってしまったけれど3月の振り返り。

食生活

3月は出張に会食と、夕食を取る回数が多かった。しかも、その夕食のボリュームがまたすごく。こってり肉、ビール・ビールからの、ワインボトル、そして二次会でウィスキー・ウィスキー・ウィスキー。毎日ではないとは言え、こういうのが続くと自ずと体重は増加。しかも急激に。反省。一日一食生活がなし崩し的に、二食・三食と戻ってしまうかと思っていたけど、それはなかったのが唯一の救い。

4月も引き続き会食の予定が入っている。できるだけ控えめに(特にお酒)しようと思う。

仕事(定型業務)

2月の振り返りで考えていたスケジュールをメールで共有するという目標は達成。但し、チャットボットの形に持っていくところで躓いている。現状、予定表を共有して、各人がアップデートするやり方くらいしか、入力フローがない。これを、Teamsのチャット機能でできたら完成なのに。

Slackでは、ボットの名前を呼べば、最新の今日のスケジュールが表示される、というところまで出来上がったが、TeamsはOutgoing Webhookの設定がSlackのようにはいかないので、ここで行き詰まっている。

無駄遣い

マイナスになっちゃうかも!と思うほどに、使った。一番の無駄遣いは毎日のコーヒー(デカフ)。最近は、会社の帰りにカフェによって読書をしたり、JSの練習をしたりしている。場所代と思えばそうなのだけれど、どうにかして減らす方向に持っていきたい。

ジムの会費(増)

暖かくなってきたのだから、外で運動、という選択肢もある中、ジムの回数券を購入。10回分で5,000円。会社に行く前に30分走るだけだから、そこまで安くもないと思う。ただ、定期的に運動する予定を自分の時間割に入れるには、天候に左右されないジムの利用が必要なのだ、と自分に言い訳している。3月の後半から通いはじめて週2〜4回のペースで利用中。出張などで通える回数がまちまちなため、4月以降も回数券にする。

Audible(減)

とうとうやめた。ジムに通いはじめたこともあって最近は落語よりも、Spotifyの利用が多い。いつの間にかSpotifyの利用歴も8年超。最初の頃に比べるとずいぶんと日本の音楽も増えた印象。落語チャンネルが出来たらいいのに。

JSの会に参加(ー)

無料のJSイベントに参加した。グループワークでのコーディングだったけど、周りの人から教えてもらうことが多かった。自分の目的とイベントの内容が合うと、得した気分になる不思議。

4月は?

新年度のスタートともに、いろいろと挑戦し始めている。ジムはもちろんのこと、コーディングやプログラミングのイベントへの参加申し込み、ドイツ語の勉強の再開1。年度末の決算処理だったり、今後会社の重ためのイベントが増えていくタイミングで敢えてプライベートの予定を詰め込んでみた。何とかして効率的に働かないと、乗り切れないぞ、という自分へのプレッシャー。


  1. ドイツ語再開の記念にGWの弾丸ウィーン旅行を計画中。 ↩︎
Advertisements

【Excel】(標準機能だけ)2分で地名一覧をExcelにまとめる

年度末でいろんなタスクの〆切が一気に押し寄せてきたところに、姉からとんでもなくどうでもいいタスクがやってきた。

妹には選択肢がない

「○○市の地名データ一覧がほしいんやけど、ネットで入手する方法ってあるの?エクセルに地名を入力したいんやけど。手入力が大変なので」

「なので」何?

私にラインするより、Google先生に尋ねる方がよっぽど生産的なのでは?と思いつつも、そんなやり取りをすると私が面倒くさいことになりそうな感じもしたので、おとなしく従うことにした。

別に1つの市の地名をエクセルに入力するためだけに、ごちゃごちゃ考えずに、一覧が載ってるウェブサイトをコピーしてエクセルに貼り付けて、最後にちょちょっと整形しておしまいでいい。(今回使った方法は後述)

前にもウェブサイトのコピーっていうことやったけど、今回は段違いに簡単。フィルタとGoToSpecialだけ使う。

 

ということで、データ探しからラインへ投稿まで所要時間2分。

「自分で調べて何とかしたらいいじゃん」という返信をして、ヒビを入れるような自体を招くよりずいぶんマシな着地点だった。

翌日、またラインのメッセージ。

「めちゃくちゃ助かった。ありがとうございます。ついでに○○市と○○市と○○市があったら最高なんだけど」

「だけど」何?というような野暮な返信はせず、おとなしく更に5分ほど作業。完了。私の平和は守られた。

基本のおさらいだけでも面倒な作業は減らせる

今週は何だか疲れていたので、深く追求もしなかったけど、きっと仕事で必要になった作業だったのだろうと推測。基本的すぎて会社でどうやってするか同僚が教えてくれないのか、それとも彼女の同僚たちはまさか手入力なのだろうか。

自分も事務員なので会社で時々こういマクロを作るほどでもない作業が発生することがあることはわかる。問題は、姉のように、「かくなる上は手作業で」と思うような人もいるかもしれないということだ1。オフィスアプリケーションの基本を知っているだけで、面倒な作業が回避できる場面は結構ある。

私が、オフィスアプリを学び直したのは、残業が続く私に他のチームの先輩が、「オレらが『あーこの作業面倒くせー』って思うようなことって、極力手作業しなくて済む方法があんだよ。エクセルって意外と何でもできるからね」とアドバイスもらってから。最初はGoogle先生に聞くという方法をとって、それだけでも十分すぎるくらい助かったけど、もっとラクになったのは基本から学び直してから。標準機能でも自分で思いもつかなかったような機能があって、「これ利用したら、○○の作業が短時間で済むじゃん」というものが多数あった。

Google先生に聞くには「アレできそうだな」などと自分の想像力に頼る必要があるので、事務作業をする機会が多い人には基本をもう一度おさらいしてみることをオススメしたい。

「Wordくらい余裕」という人が、まさかまさかのスペースでタブに合わせる方式をとっていたりする2。自分で使えていると思い込んでいるだけで、意外に面倒な方法で作業をしていたりする可能性もある。自分が使い始めた頃からずいぶん機能も追加されていることを知って驚く人は、きっと相当数いると思う。

と、結びつつ、こういうことをお姉さんには言えないのだ私の情けないところ。

今回使った方法

最後に今回使った方法の解説。(Macではふりがなの部分がコピーされなかった。)

  1. 「○○市 地名一覧」などとGoogleで検索。(例では「品川区 住所一覧」で、MapFanのページに辿り着いた。)
  2.  

  3. 【Ctrl】+【A】で全選択後、【Ctrl】+【C】でコピー。
    2018-03-31_SelectAll
  4.  

  5. エクセルを開き、形式を選択して貼り付け。
    2018-03-31_PasteSpecial
  6.  

  7. 上のいらない情報を削除後、A列を【行】という単語でフィルタ。
    2018-03-31_Filter
  8.  

  9. 【あ行】から【わ行】までを選択後、GoToSpecialで可視セルを選択(もしくはショートカット【Alt】+【;】)。
  10.  

  11. 行を削除。
    DeleteRow
  12.  

  13. 最後の地名の後に残っている不要データを削除。(了)

もし、ふりがなが同じセルに表示されてしまった場合には、以下の方法でセルを分割。

  1. A列を全選択。
  2.  

  3. 【データ】タブの【区切り位置】をクリック。
  4.  

  5. 【カンマやタブなどの区切り文字によってフィールドごとに区切られたデータ】を選択して次へ。 
    2018-03-31_Delimited
  6.  

  7. 【スペース】を選択して完了をクリック。(了)
    2018-03-31_Space

実際に送ったのは、A列の左に1列追加して、あ行などと何行かわかるようにしたものだったのだけど、地名をエクセルに入力するだけのタスクなら、上記で十分だろう。


  1. うちの場合には、まず妹を使ってみる、というのオプションを行使するわけだけど。 ↩︎
  2. そして、そういう人に限って後から「どうしてもこのラインが合わないんだよー」とかって泣きついてくる残念さ。 ↩︎

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. 前回同様、今回も参加費無料。 ↩︎

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

 

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

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

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

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

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

と言ったら、

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

とやや驚かれる。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

2018年2月の活動記録

昨日、いつも行くカフェでコーヒーを頼んだら、新人のトレーニングが行われていた。いつも対応してくれるマネージャーさんが、新人の女の子の後ろについて指示を出す形でのトレーニング。

まだ若い、恐らく学生の新人さん、きっとこれが初のバイトなんだろう。
上手くできず、マネージャーに甘えようとする。
そこをマネージャーが「ダメダメダメダメ、さっき教えたとおりにやってごらん」と、忍耐強く後ろから言う。

新人さん、上手く出来ない自分に情けなくなったのか、みるみる目に涙をためたかと思うと、ポロポロ涙を流し始めた。
そして涙を拭いながら、接客対応。

見ていて昔の自分を思い出して1、何だか「頑張ろう」と思えた。

さて、1ヶ月終えての年初に立てた目標の振り返り。

 

食生活

1月から始めた一日二食からなんちゃって一日一食へ移行した。
基本、食いしん坊なので、以前は「一日一食なんて無理」と思っていたけど、一日二食からだったら意外に上手くスイッチできた。ただ、「なんちゃって」とつけているように厳密な一日一食ではなく、ごはんの約束があれば一日二食になる日もある。

この結果、あんなに動きそうになかった体重がスルスルと落ちていき、転職前の体重に戻った。「せめて去年の体重くらいには」と考えていただけに、この減少のスピードには自分でも驚いた。

ある程度落とした後は運動でフォローしておかないと、ダイエット負のスパイラルに入りそうなので、会社や自宅ではエレベーターを極力控えて階段を使うようにしている。
ジムでの筋トレに比べると足元にも及ばない変化かも知れないが、小さく継続できそうなことからにしておかないと私なんかはすぐに飽きてしまうからダメだ。

3月は出張があるから、また体重増えるかもしれないが、主催者に気を使わせない程度に飲み食いの量を抑えて対応したい。

仕事(定型業務)

2月の仕事はダメダメ。
それなりにこなしはしていたが、何だかいつもの勢いを出せなかったような気がしている。

GASでスケジュールをメール連絡するというフローを作りたいのだけれど、いつもやろうやろうと思いつつ、先延ばし。
3月こそは完成させておきたい。

無駄遣い

今月も思ったほど効果が出なかった。

PyQ

「あと少し」というところまで来ているが、そこから急激なスピードダウン。
もう一度やる気をチャージする必要がありそう。

Kindle 本

2月は「本買いたい病」にかかってしまい、6冊(9,788円)購入。
まだ読めていない本もあるけれど、現時点までで買って後悔している本はないのが救い。

 

無駄のカテゴリーには入らないが、2月は一日一食を始めたこともあって、図らずも食費が抑えられていた。
3月はAudibleをやめる予定。いろいろ落語があって悩んだけど、使用頻度を考えるとやっぱり月額料金がやや高い印象。


  1. 私も根性がないので、こっそり泣いた回数は両手じゃ足りない。 ↩︎