Python エディター

gihyo.jp

上記の本を読んで、Pythonを勉強しなおしているのですが、エディターがいかに大事かを学んだので、そのまとめ。

 

 

IDLE

Pythonをインストールすると付随してインストールされるエディタ。本ではこれを推奨してて、一番手軽。インタラプト形式でも書ける。

 

拡張子pyのファイルの新規作成/開閉も簡単。以下は1~100で一個飛ばしの出力。

Runをクリックすればすぐに実行可能。

 

IDLEのいいところ

構文ミスを指摘してくれる「ここ間違ってない?」と表示されるので、勉強し始めはとにかく助かる。以前PyQで勉強してた時はエラーだけ出力されて、ヒントっぽいのは出力されないので、毎回問い合わせてました。PyQは「ひたすら問題を解く」という形式なので、学習初期は本の方がいいですね。解説が書いてあるし、「動くコード」が記載されているので。

 

IDLEの短所

カッコの補完がないくらい?

 

VS CODE

拡張機能を入れて使えばかなりよい。色分けされて、カッコの補完、Runも可能。

 

 

インストール時にチェックする項目

インストール時に「VS CODEで開くか」という項目が2つあるのですが(キャプチャ忘れました)、これをチェックしておきましょう。これをしておくと、右クリックでファイルもVS CODEで開けます。フォルダも右クリックから開けるようになります。

 

最初にこれをやらないと、再度インストールしてその際に2項目を選ぶ羽目になります。散々調べたのですが、設定での変更は不可のようです。

 

必要な拡張機能

  • Python
  • Japanese Language Pack

歯車からこれを入れてましょう。検索して1クリックでインストールされます。

 

ターミナルをcmdにする

デフォルトはPower Shellなので、コマンドプロンプトがいい場合はこちらを。ターミナルを開いてcmdを選べOKです。

 

 

VS CODEの長短

長所

色分け、カッコ補完、実行も同画面できるのがよい。

短所

拡張機能ありき、設定変更も必要なので、ググる必要あり。情報はかなり転がっているので、困らないですが。

 

以前はプログラミング言語学習は躓く箇所が多くて、挫折しやすいイメージでしたが、今はぐっとハードルが下がりましたね。

 

読書 英語学習の科学

books.kenkyusha.co.jp

書店で気になったので、買いました。それの感想。

 

 

なぜ気になったか

英語学習は大小さまざまに乱立しており、各学習法で食い違うところが多いです。たとえば、文法不要論や英語は強弱ありなしなどです。TOEIC高得点者ブロガーや個人経営の英語指導者の「私流」が流布されており、「言ってることがみんな違うなぁ、確固とした答えが欲しい」と思ってました。そこでこの本です。それぞれの専門家が被験者にいろいろさせてデータをとっているので、これは信ぴょう性が高そうだと思ったわけです。

 

そもそも英語の勉強法は求める目標、それに付随するスキルについて、個々人がアレンジする必要があり、勉強法は勉強者の数だけあります。つまり私流は参考にとどめる必要があります。私も私流をまねていろいろやりましたが、結局マッチせずに途中でやめました。

 

この本は私の英語勉強法の効果を研究者が測定したものが載っているので、有益と判断しました。以下から私が目から鱗の箇所を取り上げます。つまり有益な個所は各々異なるので、勉強法で疑問がある人は一読の価値があると思います。

 

単語学習

単語学習=単語帳の暗記は効果が高い、が、それだけだと流石に話せるようにはならない。

 

多読についても言及されています。多読勉強法は「たくさん読んでいるうちに覚える」というものですが、高頻度で出会わないものは覚えられないので、単語帳での暗記は効果あり。ただ文章に盛り込まれていて、どういう使われ方をするかも覚える必要があります。つまり単語だけ覚えず使われ方も覚えるのも大事ということですね。

 

発音学習

目指すべきは聞き取りやすい英語。ネイティブ並になる必要なし。

 

日本語訛りの英語でも聞き取りやすければよい。ということで、聞き取りやすい英語、アクセント(内容後を高めの音程にする)、内容語を長めに言う。強弱(機能語は弱く、内容後は強め)を意識するとよいとのこと。これ買いました。S/TH, B/Vが日本語話者は困るのでそこを重点的に強化するのもよいとも。

 

tofl.jp

リスニング学習

シャドーイングにより音声知覚(単語の音を知覚する)を鍛える。意味知覚(内容を理解する)は音声を句、節で区切り、丹念に繰り返し聞いて理解できるようにする。

 

というわけで、シャドーイングがよさげなので、Oxford Reading Clubの6か月利用を開始してます。あまりやれてませんが。。

 

まとめ

この本にはQ&A形式でよくある疑問に回答があるので、勉強法で悩んでいる人には有益だと思います。あとはやるだけですね。

 

 

機器にテプラを貼る

 

最近機器を設置して、ホスト名をテプラに印刷して前面と後面に貼って「やっぱりこれはやった方がいいな」と思ったので、そのまとめ。

 

ホスト名を貼ると何がいいのか

一番いいところは現地に行って、機器の確認が容易なことです。テプラがないとラック図を行ったり来たりしながら、「おそらくこれ」のような感じになります。また後面にも貼ってあると電源ケーブルの差し替え等もミスがなくなります。後面は忘れがち。

 

 

デメリット

デメリットは特になくて、ちょっと手間なくらいですね。ただこれ作業ミスの起因、「1個下の機器と間違えちゃった」がなくなるので、メリットの方がでかいから絶対やるべき。

 

まとめ

めんどくさいけど、ホスト名のテプラは絶対貼る。面倒がる人には「機器間違えるとかばかばかしいでしょ」と伝えましょう。

 

長所

  1. 作業対象の確認が容易。物理作業を自信をもって実施できる
  2. 後面にも貼ってあると便利。ラック前面にわざわざ回っての確認が必要なし
  3. 他者にやってもらう時も作業ミスが減るし、作業者も安心

 

短所

  1. とにかく面倒。これはタスク化(見える化)してしまえばよい

 

関連記事も載せておきます。ホスト名のルール化も大事ですね。

 

crawl8105.hatenablog.com

 

 

連日+曜日を作成する


以下のような記述を作成したかったので、Pythonでやってみました。

2023-07-18 Tue
2023-07-19 Wed

コード

import datetime


mylist = [f"2023-08-1{i}" for i in range(1, 6)]


for i in mylist:
    hoge = i
    dte = datetime.datetime.strptime(hoge, '%Y-%m-%d')
    dte1 = dte.strftime('%a')
    dte2 = str(dte)
    new_date = datetime.datetime.strptime(dte2, '%Y-%m-%d %H:%M:%S').strftime('%Y/%m/%d')
    print(new_date, dte1)

2023/08/11 Fri
2023/08/12 Sat
2023/08/13 Sun
2023/08/14 Mon
2023/08/15 Tue

日付を作って、リストに入れる

日付をforループで作成します。mylistに格納します。参考にしたページも載せておきます。

mylist = [f"2023-08-1{i}" for i in range(1, 6)]

www.javadrive.jp

文字列を日付型に変換する

変数hogeにforループの展開を入れます。次に変数dteに文字列を日付型に変換して代入する。

for i in mylist:
    hoge = i
    dte = datetime.datetime.strptime(hoge, '%Y-%m-%d')

pg-chain.com

日付型から曜日を取得+日付型を文字列にする

dte1に関数(?)strftimeで曜日を代入します。

dte = datetime.datetime.strptime(hoge, '%Y-%m-%d')
dte1 = dte.strftime('%a')
dte2 = str(dte)
new_date = datetime.datetime.strptime(dte2, '%Y-%m-%d %H:%M:%S').strftime('%Y/%m/%d')
print(new_date, dte1)

qiita.com

時間が邪魔なときの対処法

https://qiita.com/daijiro_ma/items/8a62fbb0741e5bad8568

TypeError: strptime() argument 1 must be str, not datetime.datetimeの対処法

https://qiita.com/S_eki/items/574402720355fc979622

ここでdte2に日付型から文字列型にします。TypeErrorが出たので、ググってこれをやります。

最後に出力

最初の行で2023-07-18 00:00:00を2023/07/18に形式変更します。そして出力。

new_date = datetime.datetime.strptime(dte2, '%Y-%m-%d %H:%M:%S').strftime('%Y/%m/%d')
print(new_date, dte1)

これを作成するのに2時間くらいかかっていますが、身になったので良しとします。

作業フォルダの整理

 

 

作業用共有フォルダの直下にファイルを置いていたら、

 

01. 構築

     |‗ 01. フェーズ1

 

のようにせよと言われたので、面倒だなと思ってググりました。最近は言われて「はぁ?」みたいに思ったときはググって妥当性を調べて怒りを鎮めてます。

 

フォルダ直下に置くと行方不明とかになりがち

直下にファイルを置くと行方不明または探すのに時間がかかるとのこと。そして上記のように2階層目におくのがよい。ルールを箇条書きにすると、

 

  1. フォルダ名は簡潔・明瞭に
  2. フォルダの前に2桁の数字を入れる。01. 構築、02.配線など
  3. ファイルは2階層目に入れる(上記参照)
  4. ファイルに日付を入れる。2023-06-28‗host1_config
  5. 一時ファイル、2023-06-28‗host1_config(コピー)等々は使い終わったら、削除または_oldフォルダに移動する ←個人の見解です。。

 

自分もやってみて

上記のルールに従って自分PCの作業フォルダをつくったところ、かなり快適です。確かに探す時間が減りました。おすすめです。

 

まとめ

ちょっとした工夫で作業がやりやすくなりますね。ただこれを全社員に浸透させるのは難しい。実際これを教えてくれた人からも効用の説明はなかったんですよね。おそらく会社的にフォルダの作成ルールが決まっていないので、言わなかったんだと思います。説明コストが高いと。言ってもやらないかもしれないですしね。こういう小ネタっていっぱいあるけど、浸透せずに埋もれて生産性が向上しないんだろうなぁ。

Cisco 同じ設定を全I/Fに適用する

以前はすべてのインターフェースに同じ設定を流し込んでいましたが、今は定義しておいた設定を 全I/Fに適用できます。IOS-XRの場合ですけど(バージョンにもよるっぽい)。正式名称は「フレキシブル CLI 設定グループ」 らしい。

config
group G-INTERFACE
interface 'Gi.*'
  mtu 1500
  load-interval 30
!
interface 'Te.* '
  mtu 3500
!
end-group

apply-group G-INTERFACE

apply-group~ってのが重要でこれがないと反映されません。このコマンド一行で正規表現にマッチする 全I/Fに設定が反映されます。ちなみにグローバルインターフェースモードでもapply-group G-INTERFACEとすれば 適用されます。