読者です 読者をやめる 読者になる 読者になる

sagantafのブログ

なんでも自分の思ったこと、経験したことを書いて生きます。

Python3 まとめ(1) 〜数値・変数〜

Python3を習得中なので、まとめておく。
 
まずは、数値と変数について。
 
情報源:
 UDEMYの講座(A Gentle Introduction to Python Programming)
 書籍(入門 Python3)
 
 

数値

+, -, *, / :四則演算(足し算、引き算、掛け算、割り算)
//:割り算(切り捨て)
>>> 1+1-1
1
>>> 2*3
6
>>> 15/2
7.5
>>> 15//2
7
 
%:剰余(割り算の余り)
**:指数 
>>> 15%2
1
>>> 2**4
16
 
ちなみに…
divmod関数を使うことで、商と余りを同時に求められる。
>>> divmod(9,5)
(1, 4)
>>> divmod     ( 9 , 5 )
(1, 4)
そしてけっこう空白に寛容。
 
数字の前に0を置くとエラーになる。
>>> 05 + 2
  File "<stdin>", line 1
    05 + 2
     ^
SyntaxError: invalid token
>>> 5 + 2
7
 
スペースは必須ではない。空白がなくても、いくらあっても問題ない。
>>> 1+2  +    3
6
 
もっと省エネな書き方として、計算したい演算子と = を並べるだけという方法がある。
>>> x = 0
>>> x = x + 2
>>> x
2
>>> x = 0
>>> x += 2
>>> x
2
 
この表現方法は、どんな演算子にも利用可能。
>>> y = 10
>>> y -= 5
>>> y
5
>>> a = 10
>>> a //= 2
>>> a
5
>>> a %= 2
>>> a
1
 
ただし、演算子と = に空白を設けるとエラーになるので注意。
>>> x + = 3
  File "<stdin>", line 1
    x + = 3
        ^
SyntaxError: invalid syntax
 
 
 
 

変数

変数の宣言は = を使う。
型は自動的に判断される。
>>> num = 10
>>> num
10
>>> type(num)
<class 'int'>
>>>
>>> var = "hello"
>>> type(var)
<class 'str'>
>>> var
'hello'
 
 
また、変数は上書きされる。
>>> num
10
>>> num = 20
>>> num
20
 
 
宣言していない変数を呼ぶと当然ながらエラーになる。
>>> bum
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'bum' is not defined
 
数値から始まる変数や、Pythonで予約されている言語を利用した変数は宣言できない。
>>> x1 = 1
>>> x_1 = 2
>>> 1x = 2
  File "<stdin>", line 1
    1x = 2
     ^
SyntaxError: invalid syntax
>>>
>>> break = 3
  File "<stdin>", line 1
    break = 3
          ^
SyntaxError: invalid syntax
>>> 
>>> bread = 3
>>> bread
3
breakは予約語だからエラーになるが、breadは予約されていないので問題なく宣言できる。
 
 

まとめ

 

 数値 
演算子は下記
 +, -, *, / :四則演算
 //:割り算(切り捨て)
 %:剰余(割り算の余り)
 **:指数
 
・数字の前に0を置くとエラーになる。
・数式中のスペースは必須ではない。空白がなくても、いくらあっても問題ない。
・算術演算子の効率的な書き方
 >>> x += 2
 >>> y -= 5
 >>> a //= 2
 >>> a %= 2
・divmod(x,y)で、x÷y の商と余りを同時に求められる。
 
 変数 
・変数の宣言は = を使う。
・型は自動的に判断される。
・変数は2回同じものを宣言すると上書きされる。
・宣言していない変数を呼ぶとエラーになる。
・数値から始まる変数や、Pythonで予約されている言語を利用した変数は宣言できない。

Evernoteを活用する!Evernoteに書いたことをほったらかしにせずにうまく使えないか考えてみた

日々、人から聞いた話や、本で読んだ内容、自分で経験したこと考えたことなどをメモとしてEvernoteに書いていた
 
ただ書いたあと、そのまま放置していたり、少し編集しても結局書き切らなかったりしているものが大半。。。
 
最初はただ単なる分類分けしたノートブックを作成し、そこにノートをガンガン突っ込んでいただけだったが、だんだん煩雑になってきてしまった
 
ということで、Evernoteのノートの使い方・まとめ方を考えた
 
 
 

書いてある内容によって2種類にノートブックを分類

 
メモをどんどん書いて貯めていくノートブック群(ここに書くノートを貯めメモと呼ぶことにする)
貯めメモをきれいに編集して残しておくノートブック群(ここに書くノートをまとめノートと呼ぶことにする)
を用意した
(もっとしっくりくる呼び方はないものか…)
 
こうすることで何のノートがメモレベルで、何のノートがきちんとまとめたノートなのかがはっきりする
 
 

貯めメモ ー メモをどんどん書いて貯めていくノートブック群

 
貯めメモを保存するノートブックは、過去と未来で分けた2つにする
 
まずとりあえず、当日やったこと中で「これは残しておきたい」と思うことを やったことノートブック にどんどんノートを作成して書いていく(過去)
 
またこれからやる予定ノートブック を作成して、
 これからやりたいと思うことを Wantノートに
 やらなければならないことを ToDoノートに
書き残しておく(未来)
そして書いたことを実際にやってみたら、 やったことノートブック にノートを作成する
その内容はWantノートやToDoノートからは削除する
(どんどん削除していかないと見た目が煩雑になってモチベーションが下がるかもなので!)
 
 

まとめノート ー 貯めメモをきれいに編集して残しておくノートブック群

 
まとめノートを保存するノートブックは、カテゴリごとに作成する
 
宇宙のことなら 宇宙 のノートブックに、IT関連のことなら IT のノートブックに、日々の生活に関するものなら 日々の生活 のノートブックに、といった具合に
(ノートブックのタイトルはそのまんまが一番わかりやすいかな…)
 
使い方としては、貯めメモを毎週末など定期的に確認し、言葉や内容を整えて、それぞれカテゴリに合ったノートブックにノートを保存する
 
まとめノートに書き残した貯めメモは、どんどん削除していく
 
 
また、著作権等が問題なさそうなまとめノートは、読みやすく改良してブログにアップしてみる
 
文章力を鍛えられるし、アクセスがあればモチベーションも上がるかもしれない
 
 
 
このやり方でやりづらい部分があったら、改良を加えていく
 
あとは、いくら書いても後々に読み返さなかったら意味がないので、定期的に読み返す仕組みを作らないといけない…
 
そういうアイデアをググって実践してみようかな
早速、貯めメモにこれからやることとして書き残しておいた!

仕事の取り組み方には2種類ある: 「まずやってみる」か「じっくり計画してから」か

私事ながら4月1日で社会人5年目に突入しました。

 

4年間仕事をしてきて、改めてどういうやり方で仕事をしてきたかを振り返ると、

仕事の取り組み方には2種類あることを実感しました。

 

そしてこの選択を間違えると痛い目をみることも、実際に経験して身に沁みました。。

 

今日は、その2種類の仕事の取り組み方とその選び方について、ご紹介したいと思います。

 

 

どういう取り組み方があるか

 

2種類、とはずばり

 「まずやってみる」方法

 「じっくり計画して実行する」方法

です。

 

「まずやってみる」方法は、その名の通り、何か仕事を任された時にすぐに手を動かします。

仕事をすぐに実行するので、場合によってはすぐに結果がでます。

しかし、場合によっては何度も動いて、振り返り、やり直すことになる可能性もあります。

 

一方で「じっくり計画して実行する」方法は、事前に情報を集めて正確な予測をし、きちんと計画を立ててから仕事を開始します。

準備を整えてから実タスクに入るので、やり直す可能性は低くなります。

しかし、事前の予測には経験からくる直感やある程度の時間が必要になる上に、予測が外れてやり直すことになった場合は、その分余計に時間がかかります。

 

 

この2種類は仕事だけではなく、勉強や習い事にも言えることなので、多くの人が分かりきっていることかもしれません。

しかし、この使い分けが意外とできないのです。

 

仕事の性質を考えず、なんとなく感覚で、「とりあえずやってみるか」といきなり手を動かしたり、「まずは事前調査して、計画して、、、」と念入りに準備したりしてしまいます。

 

しかし、よく考えもせずに突き進むと、方法を間違えた時に、「じっくり計画を立てて進めなかったから抜け漏れが生じた。。」とか「もっと早く始めておけばよかった。。」といった事態が生じてしまいます。

 

こういった事態に陥らないためにも、事前に仕事の性質を見極めて、取り組み方を選択する必要があります。

 

 

どっちを選ぶか

さて、ではどちらの取り組み方が、どんな仕事に合っているか、について解説していきます。

 

まずは、「まずやってみる」方法を取るとうまくいく仕事の性質です。

 

 ・やり方はなんとなく分かるが、結果がどうなるかがわからない。

 ・長期的な予測ができない、ゴールのイメージがわかない。

 ・いつまでに終わるか分からない。

 

こういった場合は、「どうなるかよく分からんから、とりあえずやってみるか」という気持ちで、PDCAを回していきましょう。(この場合はP:Planがないですが、、、DCAですかね?)

 やってみる(Do)→結果を確認する(Check)→やり方を変えてみる(Action)→やってみる(Do)→…

 

 

2つ目の「じっくり計画して実行する」方法に合う仕事の性質は次のようになります。

 

 ・今までの経験から直感が働く

 ・予測は正確であるが、何度もやるのは骨が折れる

 ・ゴールが明確である

 

こういった場合は、まさにPDCAのPlanをじっくり練ってからDCAに移りましょう。

ゴールは明確なんだけど、予測が立てづらいし直感も働かない、という場合は、有識者に相談するなど準備に時間をかけるといった対応ができます。

 

 

若く経験が少ないうちは「まずやってみる」手法で、それなりに仕事を経験し体力が減ってきたら「じっくり計画して実行する」方法もありだと思います。


また、よく知らない分野ならば「まずやってみる」手法で、よく知っている分野ならば「じっくり計画して実行する」方法というやり方もできますね。

 

どちらもメリット・デメリットが存在するので、そこを理解していたら自ずと正しい方法を取ることができるかもしれません。

 

まとめ

 

まとめると、


・何度もやり直す体力がある、もしくは何度もやり直せる性質の仕事である
・長期的な予測ができない、ゴールのイメージが曖昧
・経験が少ない分野
・よく知らない分野

上記に当てはまる仕事をする時は、「まずやってみる」

 

 

・体力がない、もしくは何度もやり直せることができない性質の仕事のである
・長期的な予測がつく、ゴールのイメージが湧く
・何度も経験した分野
・精通している分野


上記に当てはまる仕事をする時は、「じっくり計画して実行する」



自分のやりたいことをやる

ただやりたいことをやる。

 

それが他の人と比べて劣るとか優れるとか関係ない。

 

自分がやったってどうせレベルが低いから

やったところで何にもならないから

とか言い訳して、いつまでも「やりたいな〜」と言って、やらない状態を続けても、それこそ何にもならない。

 

何にもやってない。

 

 

周りのことや、先のことは考えずに

 

ただやりたいことをやる。

 

気の赴くままに

 

 

と思って最近、絵を描くようになった。

ただひたすら描いてるだけだから楽しい。

小学校のころ、ノートに落書きをしていた時と同じ感覚。

2つ上の視点をもつ〜仕事をするときに意識すること②〜

意識が変わった上司のアドバイス

 

仕事をするには、相手のことを考えて行動することが基本になる。

仕事とは誰かに価値を与えてお金をもらうことだから。

 

相手のことを考える。

 

これは何も顧客だけではなく、一緒に仕事をする人、仕事の成果を報告する上司などにも言えること。

 

この点で、次のことを上司に教えられた。

 

「仕事をする時には、二つ上の上司の視点をもつように意識するとよい」

 

自分の上司の上司が何を考えて仕事をしているか、

何を気にしてマネジメントしているか、

をイメージする。もしくは直接ヒアリングする。

 

そうすることで自分のしている仕事の背景や、組織としての長期的な目的を明らかにすることができる、ということらしい。

 

続きを読む

評論家にならない 〜仕事をする時に意識すること〜

仕事をするときに意識していること。

それは、

 

「評論家にならない」

 

こと。

 

入社当時から上司に言われていたが、

最近、「THE 評論家」と言えるような人と仕事をするようになってから、特に意識するようになった。

 

備忘録の意味もこめて、

 ・評論家とはなにか

 ・なにがダメなのか

 ・じゃあどうすれば良いのか

をまとめた。

 

 

「評論家」と言われる人とは?

 

現状把握したり、分析したりして、

「○○であることがわかった」

「こうすべきだ」

「こうしないとダメだ」

と言うだけにとどまり、

実際の行動に移らない人はは、「評論家」と揶揄される。

 

f:id:sagantaf:20170316234551p:plain 

 

 

確かに、いろいろ調べて何かが分かると満足してしまうことがある。

 

例えば、システムで障害が発生して、「なぜだろう」とログを見たり、システムの状態を確認して原因を突き止めたら、

「なるほど!ここに原因があったのか。原因わかりましたー!」

と、ここで満足してしまう。

 

 

なぜ評論家じゃダメなのか

 

では、なぜ評論家じゃだめなのか。

 

先ほどの例で、本当にしないといけないなのは、そのバグの原因を無くすことである。にもかかわらず、原因の把握だけして満足したので、状況は何も変わっていない。

  

f:id:sagantaf:20170329175834p:plain

 

つまり、

 評論することで満足感を得られるかもしれないが、結局は何も状況は変わっていない

ことが評論家じゃダメな理由である。

 

その結果、

 ①お客さんからお金をもらえない

 ②自分の成長やチーム内や社内の評価に繋がらない

ということになってしまう。

  

①お客さんからお金をもらえない

仕事をしてお金をもらっていることの根本にあるのは、

「自分が行動して生み出した結果に対して、お客さんに対価を払ってもらう」

ということ。

 

それなのに実際の行動を起こさずに評論で終わってしまうと、

 仕事をやり切っていない

とみなされ、お客さんからお金を払ってもらえない。

 

行動して結果を生み出さなけらば、お金をもらうに値しないのである。  

 (もちろん仕事が評論すること自体であれば、その評論した結果をアウトプットにお客さんからお金をもらえると思うので問題ない。)

 

②自分の成長やチーム内や社内の評価に繋がらない

 

評論だけで終わると、実際に何もしていないから、成果は何も残らない。

(情報拾集するスキルは上がるかもしれないが…)

 

仕事をしたあとに、

「あいつは結局何をしたんだ?」

「どんな成果をあげたんだっけ?」

と上司から思われ、評価されずに終わってしまう。 

 

 

じゃあ、どうするか

 

評論家と揶揄されるとはどういうことか、何がダメなのか、がわかったところで、

「じゃあどうするか」

が無ければ、まさに「評論家」になってしまう。

 

じゃあどうするか?

二つある。

 

まず一つは、仕事を進めている最中にする対策として、

単純に行動する時間の割合を大きくして、評論で終わらないようにする。

 

どこまでが評論=調査・分析で、どこからが実際の行動かを、常に明確していれば、

行動する時間の割合を意識的に増やせると思う。

 

 

もう一つは、仕事を終えたあとにする対策として、

定期的に次の二言を思い出して仕事を振り返る。

「で、結局自分はどんな成果をあげたんだっけ?」

「自社や顧客のためになったことは?」

 

そうすることで知らずうちに評論家になっていた、ということを避けられる。

 

 

 

周りの「評論家」に対しては、どう対処するか

 

また、自分が評論家になることを避ける以外に、周りの「評論家」と仕事をするときの対処も必要だろう。

 

周りに「この人、評論家で実際に何もしようとしてないな」という人がいたら、行動に移るように促す。

 

例えば、

部下に対しては、直接「じゃあどうするか」を伝え、行動させる。

 

上司や協力会社に対しては、オブラートに包んで

「現状や、すべきことは明確になりました。では、実際にどう行動するか、どう進めるかを会話しましょう」

と伝え、一緒に行動に移していく。

 

こうすることで、評論状態で停滞していた仕事が進む上、自らが仕事を引っ張っていく感覚も得られ、成長につながる。

 

 

 

まとめ

  • 評論家だと揶揄されている人とは、あーだこーだ言って、実際の行動には移らない人のことを指す
  • 実際の行動をしないと、お客さんからお金をもらえない。自分の成長やチーム内や社内の評価に繋がらない。
  • じゃあどうするか①:どこまでが評論=調査・分析で、どこからが実際の行動かを、常に明確にして行動する時間を意識的に増やす
  • じゃあどうするか②:「で、結局自分はどんな成果をあげたんだっけ?」「自社や顧客のためになったことは?」この二言を元に、定期的に自分の仕事を振り返る
  • じゃあどうするか③:周りに「評論家」がいたら、行動するよう促す

 

【IT】sosreportの取得メモ

sosreportはシステムの構成やログなどの情報を一括取得するためのツール

昔、サーバ障害の原因が分からずサポートに問い合わせた時に、このsosreportを取得して送付して欲しいと言われたことがある。

その時のことをふと思い出したので、自分の環境で取得してみた。

 

環境は以下で実施。

[root@~]$cat /etc/redhat-release

CentOS Linux release 7.2.1511 (Core)

[root@~]$uname -r

3.10.0-327.3.1.el7.x86_64

 

sosreportrootユーザで実行できる。

rootユーザではない場合、以下のようなエラーになってしまう。

[testuser@~]$sosreport

 

sosreport (version 3.2)

 

no valid plugins were enabled

 

以下、rootユーザでsosreportを実行した時の出力。途中3回入力する部分がある。(赤字は出力ではなく、メモ)

[root@tmp]$sosreport

 

sosreport (version 3.2)

 

This command will collect diagnostic and configuration information from

this CentOS Linux system and installed applications.

 

An archive containing the collected information will be generated in

/var/tmp and may be provided to a CentOS support representative.

 

Any information provided to CentOS will be treated in accordance with

the published support policies at:

 

  https://www.centos.org/

 

The generated archive may contain data considered sensitive and its

content should be reviewed by the originating organization before being

passed to any third party.

 

No changes will be made to system configuration.

 

Press ENTER to continue, or CTRL-C to quit.      <- ここで一回Enter

 

Please enter your first initial and last name [detethcotaf.tokyo]: sagantaf    <-レポート名として名前を入力しEnter

Please enter the case id that you are generating this report for []:    <- レポート番号をつけられるが今回は何も入力せずEnter

 

Setting up archive ...

Setting up plugins ...

dbname must be supplied to dump a database.

Running plugins. Please wait ...

 

  Running 84/84: yum...                      

Creating compressed archive...

 

Your sosreport has been generated and saved in:

  /var/tmp/sosreport-sagantaf-20160414155523.tar.xz   <- ここにレポートが出力される

 

The checksum is: b7023ecf3cfbd20dbff42fc1629d4364

 

Please send this file to your support representative.

 

 

sosreportを実行後に、上記にあるように

 sosreport-sagantaf-20160414155523.tar.xz

というレポートが作成されているので、確認。

[root@tmp]$ls -ltr | grep sos

-rw------- 1 root        root        6244916  4 14 15:55 sosreport-sagantaf-20160414155523.tar.xz

-rw-r--r-- 1 root        root             33  4 14 15:55 sosreport-sagantaf-20160414155523.tar.xz.md5

[root@tmp]$

[root@tmp]$xz -dv sosreport-sagantaf-20160414155523.tar.xz

sosreport-sagantaf-20160414155523.tar.xz (1/1)

  100 %      6,098.6 KiB / 30.1 MiB = 0.198                                    

[root@tmp]$tar -xvf sosreport-sagantaf-20160414155523.tar

(出力は長いので省略)

 

作成されたレポートはtar.xz形式なので、xzコマンドとtarコマンドで解凍した。各オプションの意味は以下のとおり。

 

xz -dv <filename>

 -d:解凍

 -v:詳細を表示

tar -xvf <filename>

 -x:解凍

 -v:詳細を表示

 -f:ファイルを指定

 

解凍後、中身を確認すると、boot, lib, usr, var, sysなどの情報が収集されていることがわかる。

[root@tmp]$ls -ltr | grep sos

drwx------ 14 root        root            4096  4 14 15:55 sosreport-sagantaf-20160414155523

-rw-------  1 root        root        31610880  4 14 15:55 sosreport-sagantaf-20160414155523.tar

-rw-r--r--  1 root        root              33  4 14 15:55 sosreport-sagantaf-20160414155523.tar.xz.md5

[root@tmp]$ls ./sosreport-sagantaf-20160414155523

boot     free              lib          proc     sos_commands   usr

chkconfig  hostname         lsmod    ps        sos_logs               var

date           installed-rpms  lsof        pstree  sos_reports          version.txt

df            ip_addr             lspci       root     sys                       vgdisplay

dmidecode  java                   mount    route   uname

etc          last                    netstat   run      uptime

[root@tmp]$

[root@tmp]$du -h ./sosreport-sagantaf-20160414155523 | tail -1

39M ./sosreport-sagantaf-20160414155523

↑サイズは39Mほど。

 

 

まとめ

root権限で sosreportコマンドを実行することで、サーバの構成情報やログを収集することができる。実行後、/var/tmpにtar.xz形式でレポートが出力される。

 

 

ここまで書いてみて気づいたこと。

 ・HTMLの知識が役立つ

 ・どう書けば読みやすくなるかを考えるようになる

 ・コマンドプロンプトをうまく貼り付けたい