My days of...

生活のことなど、がんばろう

パイン・ギャップ(Pine Gap)を観て日常は少しずつ変わっているのかもと意識した方がいいのかも

Netflixのドラマ「パイン・ギャップ」を観ました。舞台はオーストラリア。そのオーストラリアにあるアメリカの基地「パイン・ギャップ」とその周辺のストーリー。内部にスパイがいる、ことを中心にアメリカ、オーストラリア、中国、そしてアジア太平洋地域の平和についてのストーリー。

パイン・ギャップはアメリカ軍基地だが、オーストラリア人も働いており、共同のベースとなっているっぽい。よくわからないけど。

www.netflix.com

進行が日ベースなのかよくわからなかったりして、ちょっとわからなくなる場面もありますが、基本的に基地内のストーリーが中心ですが、その周囲のざわつきと言うか物事が起こっていく様は、興味深い、と感じました。基地の中にいる人たち(情報収集者)が自分たちは最前線にいる、または重要な中心にいると感じている反面、もっと重要かもしれない物事が進行するのはそういう人たちの周囲で少しずつ変わっていっていることに気が付けないという感じ。そっちの方が怖いかも。

チェスと囲碁の違いの説明が興味深かった。このドラマ、シーズン2とかあるのだろうか?それに昨今の国際ニュースを見たりしていたら、なんか現実?っぽい錯覚を起こしそうになるため、侵攻するのってこういうやり方か、みたいなこともわかるかも。

 

C11 地球の歩き方 オーストラリア 2018?2019 (地球の歩き方 C 11)
 
G'day Mate! 旅で役立つオーストラリア英会話

G'day Mate! 旅で役立つオーストラリア英会話

 

 

Pythonのトレーニング、とりあえず1つ終了できた

とりあえず、lynda.comのPython Essential Trainingを全部通しで聞いたので終了、ということに。

最後sqlite3を使ったDB接続で、説明も飛ばし気味。Pythonのドキュメント読んでね〜的なもの。時間をかけたい場合はPythonのドキュメントをしっかり読むほうがいいとは思った。バージョンによって変更したりするので、最新の情報、特に正規のドキュメントを読むことに慣れることは大事なことだとも思います。

 

後から見直してDecoratorとか少し???な感じのところは、ドキュメントを読んだり、検索して自分なりに理解することが大事かな、と

qiita.com

def deco(func):
    def wrapper(*args, **kwargs):
        print('--start--')
        func(*args, **kwargs)
        print('--end--')
    return wrapper

@deco
def test():
    print('Hello Decorator')

test()

結果がこんな感じ

    --start--
    Hello Decorator
    --end--

例のように@decoとしてデコレータとして設定した関数(メソッド?)の処理の前後にprint文を入れたり等他のことができるよ、っという機能。使って慣れるようにしたい。

 

DECORATOR EP (初回盤)

DECORATOR EP (初回盤)

 
Mozart the Supreme Decorator

Mozart the Supreme Decorator

 

 

Djangoのチュートリアル「その5」まで進んだ。読んで書いただけだけど。

Pythonの学習から、djangoに移ってみました。とはいえ、djangopythonフレームワークなので、pythondjangoのclassやメソッドを利用して、安全なウェブアプリケーションが作成できます。

最初は難しいことを考えず、バーチャル環境を作成して、djangoをpipでインストール。時間がちょっとかかりますが、簡単です。あとは

さぁ始めましょう | Django documentation | Django

を見て読みながら、真似して書いていくだけです。/(スラッシュ)や.(ドット)、:(コロン)等に気をつけながら書くとスラスラ進みます。途中、何を言ってるのかな?と思ってもそこは立ち止まらないでそのまま流して最後まで。とりあえず、「初めてのDjangoアプリ作成、その5」まで終了。

 

今の所よくわかっていない点として、Admin画面から新規追加すると

OperationalError at /admin/polls/question/add/

というエラーが表示されるのは何故だろう?

 

現場で使える Django の教科書《基礎編》

現場で使える Django の教科書《基礎編》

 
Python Django 超入門

Python Django 超入門

 

 Django 2.1.4、2.1.5とSqlite3の3.26.0に何らかのバグがある模様。バージョンを下げて使うくらいしか方法がないみたい。

stackoverflow.com

Python3.6でのString Object、色々

年末年始の休みも昨日でおしまい。

本日はPythonのString Objectについて学習。String Objectはたくさんの機能があって覚えきれないという印象。

print('Hello, World. ß'.casefold())
print('Hello, World. ß'.lower())

casefold()とlower()の違いについて、casefoldはドイツ語のßという文字もlowerケースに強引に変えられる。厳密にいうと、おそらくlowerケースではないのだと思うけど、ßがssに変換される。lower()では変換できず、そのままßで表示される。Hatena Blogではどうなるのかな?。

format()を利用した整形色々
x = 42 * 747

  1. print('The number is {:<09}'.format(x))
  2. print('The number is {:>09}'.format(x))
  3. print('The number is {:.3f}'.format(x))
  4. print('The number is {:,}'.format(x))
  5. print('The number is {:,.3f}'.format(x))
  6. print('The number is {:,}'.format(x).replace(',', '.'))

 

  1. The number is 313740000
  2. The number is 000031374
  3. The number is 31374.000
  4. The number is 31,374
  5. The number is 31,374.000
  6. The number is 31.374

こんな風に整形して表示できる

また

x = 100
print(f'This is {x}')

と表示することもPython 3.6以降で可能に。

 

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

 
CODE VERSION 2.0

CODE VERSION 2.0

 

 

Flaskで 'request' is not defined が表示されたので追加

Python プロフェッショナルプログラミング(第3版)という本を見ながら、その中に書かれているサンプルアプリ「乗りログ」を写経中。この「乗りログ」は乗った場所、降りた場所、メモ、日付をフォームから入力して表示させるFlaskを利用したWebアプリ。Flaskも初めてだったので、そのまま解説を読みながら写して動作を確認。すると、詰まった。投稿する際に

NameError: name 'request' is not defined

と表示された。requestがないよーという内容だが、本の内容をそのまま写しただけだったため???な状態。

Googleで上記をそのまま検索。すると、requestを読み込ませとけ、というアドバイスがあったので、

from flask import Flask, render_template, redirect

 にrequestを追加して下記のように

from flask import Flask, request, render_template, redirect

ブラウザをリロードさせて、無事動作しました。

Pythonプロフェッショナルプログラミング 第3版|サポート|秀和システムには訂正が出されていました。

 

Day2 #100DaysofCode になります。

いちばんやさしい Python入門教室

いちばんやさしい Python入門教室

 
Pythonプロフェッショナルプログラミング第3版

Pythonプロフェッショナルプログラミング第3版

 

 

Netflixの「トラベラーズ」シーズン3を観た

この年末年始、Netflixの「トラベラーズ」(シーズン3)を一気観しました。シーズン3は10話になります。シーズン2の終わりからどうするのか、と思って楽しみにしていたのですが、何でもないような始まりでした。そういうものなの?でとりあえず開始。

過去を変えれば、未来が変わると信じているトラベラー達。それを指示するディレクター。力をつけていく反対派。デイビット、お茶目でなんかかっこよくて、このドラマの1番の良心のような描き方。そしてジェフは、何事にも裏があるという面を表していたのかもしれません(但しシーズン3に限る、っぽく感じました)。

タイムトラベルものは、結局、複数のタイムラインができて、自分たちはどのタイムラインにいて云々的なそれぞれの解釈に合わせるというぶん投げ方式にしかならないのかもしれず、きれいにシーズンが終了できた?みたいな印象。

また、このシーズン内で登場人物が発したセリフ「過去は変えられない」と言っていたのが印象に残りました。それを言ったらあなた達の存在意義が・・・って。

 

ところで、「トラベラーズ」ですが、シーズン3が最終シーズンということでいいのでしょうか。それともさらに続いていくのでしょうか。続きを作ろうと思えば作れる終わり方でした。

www.netflix.com

 

トラベラーズノート 手帳 リフィル 2019年 A5スリム マンスリー 14394006 (2018年12月始まり)

トラベラーズノート 手帳 リフィル 2019年 A5スリム マンスリー 14394006 (2018年12月始まり)

 

 

pyenvからhomebrewでインストールしたpythonに変更した

iMacPythonを利用するのに、pyenvを利用していたのだけれど、仮想環境などはvenvを利用する方が良い(公式)みたいな記事があったりしたので、いっそのこと入れ直すことにした。

pyenv を削除するには、

qiita.com

を参考に

brew uninstall pyenv

で削除。ホームにある.pyenvフォルダも削除。自分の環境では.bash_profileに設定してあった

export PATH="$HOME/.pyenv/shims:$PATH"

を削除(またはコメントアウト)。

で、

brew install python

を実行し、python3のインストールが完了。もともとあるpython2.7系と一緒に使えます。

python3 -V

とすればバージョンを見ることができます。python3と打ちたくない場合、.bash_profileに

alias python = 'python3'

pipも変更したい場合

alias pip = 'pip3'

で多分OK。

 

参考

Installing Python 3 on Mac OS X — The Hitchhiker's Guide to Python

pyenvじゃなくてもHomebrew Pythonで十分だった – Atsushi Nakajo – Medium

 

The Hitchhiker's Guide to Python: Best Practices for Development

The Hitchhiker's Guide to Python: Best Practices for Development

独学プログラマー Python言語の基本から仕事のやり方まで

独学プログラマー Python言語の基本から仕事のやり方まで

Python機械学習クックブック

Python機械学習クックブック