技術系と読書を書くよ

技術的なことと読んだ本のアウトプット

LPIC101の結果とLPIC102への戦略

LPIC101を受けてきました。

結果は余裕で合格でしたが、戦略がまずかったなと。
点数的には680/800でした。
合格点が500なので、余裕だと判断しています。

自分のスペックとしてはLinuxは多少コマンド操作したことある。
設定とかはネットで探したものをまるパクリで打ち込むとかのレベルです。

今回の勉強期間は約2カ月でした。
一番感じたのは、そんなにいらないし、むしろ長すぎるのは害だということ。

今回の自分の勉強方法は以下。

  1. LPICの小豆本を1周(ここで1ヶ月!)
  2. 巻末の模試を受けて20/60くらい()(絶望!)
  3. ping-tの練習問題をとりあえず1周(これで3週間)
  4. ping-tの模試を受けまくる(2日前から)(計8回)
  5. ノートにまとめる

ちなみに合格した時の模試の3回の平均は80%くらいでした。
また合格時の問題のメダルの割合は金50%、銀45%、銅5%でした。
(似たような問題が多いから、本質(覚えるべきところ)さえ掴んでいればあまり気にしなくてOK)

以下、反省と所感。

まず小豆本は長くても1週間で読み終わらせる。頭の中に地図さえできればいい。
なぜなら、どうせ忘れるし、問題解いてアウトプットしないと理解には繋がっていない。
ping-tもだらだらやってると、模試で最初の頃の銀メダル問題も全て忘れている。
さっさと銀メダルにして、模試を繰り返すのが正解。

ちなみに、コマンド問題は1問も解いてないです。
実際にテストに出たコマンド問題の配分は20%くらいでした。
しかも、このコマンド問題、ほとんどが
・コマンドのみ
・サブコマンドのみ
・オプションのみ
・ファイル名のみ
など、簡単なものでした。
1問だけフルパスで答えるものがありましたが、大した事ないです。
普通に練習問題だけやって、ノートまとめていれば余裕です。

練習問題でやった問題の完全に答えそのままじゃん!というのも数問。

よって102の戦略は以下で進めます。

  1. 勉強期間は2週間。
  2. 3日間で全て小豆本読みきる。
  3. 5日間で全て銀メダルにする。
  4. 6日間で模試とノートまとめを20回以上繰り返す。

結果はまた書きます。

あるメールアドレスがMacの標準メールアプリに登録できない

あるサービスのメールアドレスをMacの標準メールアプリに登録しようとして、
「そのメールアドレスはすでに存在します。」と表示されている場合です。

[設定]のアプリを起動

[インターネットアカウント]
もし左側のアカウント群にすでにあるなら、もう登録できているので終了。


無い場合、今回登録しようとしているメールアドレスをiCloud(というかappleアカウント)に使っていないでしょうか?

その場合は、一度左下のマイナス(-)ボタンを押してiCloudアカウントを消してください。
※数分後すぐに設定し直してください。データは消えません。
iCloudアカウントがない状態で、もう一度登録したいメールアドレスを正規の手順で登録してみてください。

多分いけたと思います。
そうしたら、先ほど消したiCloudアカウントをもう一度登録し直してください。

以下、参考にしてください。

Yahoo!japan メールアドレスの登録の仕方
reconf-shell.hatenablog.com


Outlook メールアドレスの登録の仕方
reconf-shell.hatenablog.com

OutlookのメールアドレスをiPhone標準のメールアプリで使う

MicrosoftOutlook を、個人、会社、大学等で使っている人向けです。

普通にOutlookアプリをダウンロードすれば使えますが、
ここではiPhoneの標準メールアプリで使用する方法をメモしておきます。

環境 : iPhone6 (iOS10)

[設定]のアプリを起動

[メール]

[アカウント]

[アカウントを追加]

[Exchange]

  • メールにOutlookメールアドレス(個人、会社、大学等)を
  • 説明は適当に


[次へ]

パスワードを入力


これで終了です。

多分、ハマってる人は[アカウント追加]で、[Exchange]ではなく、
[Outlook]を選択していると思います。

ちなみにiPadでも、Macでも同じ方法で登録します。

Yahoo! japanのメールアドレスをiPhone標準のメールアプリに設定する

Yahoo!のメールアドレスの登録の仕方を勘違いしいていました。
ここでは Yahoo! Japan のメールアドレスを設定する方法を置いときます。

環境: iPhone6 (iOS10)

[設定]のアプリを起動

[メール]

[アカウント]

[アカウントを追加]

[その他]

[メールアカウントを追加]

  • 名前は適当に
  • メールアドレスにYahoo!メールのアドレスを
  • パスワードはYahoo!アカウントのパスワードを
  • 説明は適当に

これで終了です。

多分、ハマってる人は[アカウント追加]で、[その他]ではなく、
[YAHOO!]を選択していると思います。

ちなみにiPadでも、Macでも同じ方法で登録します。

Pythonの抽象メソッド(abstract method)について

初心者らしくかなり大雑把に言うと、

親のクラスで特に機能を持たせずに、メソッドだけ(名前だけ)定義して、「継承した子クラスでそれぞれ内容は定義して」というもの。
つまり、継承したら必ず「同じような機能をそれぞれ別に定義してね〜」ということ。

AttributeError: 'NoneType' object has no attribute ' ' の原因

Pythonの勉強中に、
AttributeError: 'NoneType' object has no attribute '自分の書いた何か'
というエラーが吐かれた。
最近はよく出てきてたのでがっつりtry&errorを繰り返していたら原因がわかった。

結論から言うと"None"に対してアクセスしようとして起こる。


例えば以下のような.dataと.nextによって構成される Linked List に対してダブりを消去するプログラム(一部) で

    def RemoveDuplicates(self,head):
        current2 = head
        while current2:
            if current2.data == current2.next.data:
                current2.next = current2.next.next
            else:
                current2 = current2.next           
        return head

と記述するとエラーが吐かれるが、
while文の条件を

while current2.next:

と書き換えればエラーは出ない。

※linked list だから最後の要素の .next は "None" である。

同じようなエラーで悩んでる人がいたら、確認してみては。

pythonで大文字/小文字の変換

pythonで大文字と小文字の文字列操作をしたかったのでメモ。

今回はサンプルプログラムを以下の3種類載せる。

  1. 文字列内の大文字は小文字、小文字は大文字に変換
  2. 文字列内の小文字を検出して全て大文字に変換
  3. 文字列内の大文字を検出して全て小文字に変換

最初の例は、いかにも練習問題に出てきそうな感じのやつ笑
文字列内の大文字は小文字、小文字は大文字に変換

my_str = input()

for i in range(len(my_str)):
    if "a"<=my_str[i]<="z":
        print(my_str[i].upper(),end='')
    elif "A"<=my_str[i]<="Z":
        print(my_str[i].lower(),end='')
    else:
        print(my_str[i],end='')

続いて、文字列内の小文字を検出して全て大文字に変換

my_str = input()

for i in range(len(my_str)):
    if "a"<=my_str[i]<="z":
        print(my_str[i].upper(),end='')
    else:
        print(my_str[i],end='')

最後に、文字列内の大文字を検出して全て小文字に変換

my_str = input()

for i in range(len(my_str)):
    if "A"<=my_str[i]<="Z":
        print(my_str[i].lower(),end='')
    else:
        print(my_str[i],end='')


結論的に言うと一番最初のプログラムのif_elif_elseを所々削るだけでいける。