ベスパリブ

ベスパもってないです。バイク買いました。

初めて勉強会で発表してきた話

10/19の話ですが、初めて勉強会で発表をしました。

はんなりPythonという勉強会です。

hannari-python.connpass.com

発表内容はこれ

発表で使用したソースコードこれ

発表の内容云々は置いといて、発表の準備が大変だったので次回に活かすために備忘録を残します。

資料を何で作るか

Googleスライドで作成しました。 ツールの候補としては以下。

ノートPCにはOfficeが入っていたのでそれで発表したかったのです。Googleスライドで作成し、PowerPointにエクスポートする形で発表しました。パワポにエクスポートしてもレイアウトがずれなかったです。

スライドのテーマ

おすすめのGoogle Slideテンプレートを参考にしました。 個人的にテンプレートパークが種類豊富で好き。

スライド中のコード

スライド中にコードを載せたけど、文字が小さいと全く見えない(プロジェクタの関係もあった)。

全てを説明しようとするのではなく、ポイントのみを抽出してざっくり解説くらいでいいと思った。コードはGitHubGistに上げて、興味がある人はそれを参照してもらうようにするで十分な気がする。

準備期間

3日くらいかかった。丸々3日。少し時間かかりすぎかもしれない。 でも余裕を持って、一週間前から準備するのが良いと思った。

あと前日にノートPCの調子が悪くなって突然ブラックアウトするとかあったので、やっぱり余裕を持って行動しよう。

ビジネスマナープログラミングまとめ

命令形は失礼

#define Would
#define you
Would you delete it;

master, slaveは失礼

https://bugs.python.org/issue34605

masterの代わりにleader、slaveの代わりにfollowerなどを使いましょう。

endif, endforを使う

end = endif = endfor = ""
for i in range(10):
    if i%2 == 1:
        print(i, "odd")
    endif
endfor

役職の高いものから順にIPアドレスを割り当てる

役職の偉い順にIPアドレスを自動的に振るにはどうしたらよいでしょうか。 - カレーなる辛口Javaな転職日記

DHCPでの配布をやめると辛いので、役職の高い人のIPアドレスのみ別ネットワークにし固定IPアドレスで管理する方法が無難ではないでしょうか。

まとめ

プログラマ向けビジネスマナー本を作ってPHP研究所に売り込もう。PHPだけに。

「数式の読み方, 大学で学ぶ数学公式」とかいう神PDF

http://www.comp.tmu.ac.jp/yosihiro/teaching/how-to-read.pdf

四則演算から高校数学、大学数学の数式を網羅的に記載されています。 英語での読み方までもが載っていて非常に「へぇ」となります。

f′(x)は英語で「f prime」と読み、「f dash」とは読まないというのはこの資料で知りました。

首都大学東京の名前が変わっても、PDFは変わらず残っていて下さい。

cpythonリポジトリのcソースの場所

cpython/Python/ に大抵の.cソースが置いてあります。

ちなみに cpython/Python/bltinmodule.c が組み込み関数のファイル

cpython/bltinmodule.c at master · python/cpython · GitHub

raspi-configのExpand Filesystemをコマンドラインで実行する

raspi-configのExpand Filesystemをシェルスクリプトで操作したかったので、コマンドラインで操作する方法がないかなーと探したらありました。

$ raspi-config --expand-rootfs

Expand Filesystem - command line - Raspberry Pi Forums

クラスの特殊メソッド__str__()とは

「クラスオブジェクトを文字列で返すメソッド」です

class Hoge():
    title = "this is Hoge."

    def __str__(self):
        return self.title

# クラスオブジェクトを表示すると
print(Hoge())  # this is Hoge.

# インスタンスでもOK
hoge = Hoge()
print(hoge)  # this is Hoge.

文字列でない場合、エラーが発生します。

class Hoge():
    title = "this is Hoge."

    def __str__(self):
        return 1  # 数値にすると...

print(Hoge())
""" 以下のようなエラーになる
Traceback (most recent call last):
  File "Main.py", line 7, in <module>
    print(Hoge())
TypeError: __str__ returned non-string (type int)
"""

Anacondaで仮想環境を構築してdjango環境を作る(Windows)

AnacondaはPythonの実行環境を複数構築することができます。 コマンドプロンプトにAnacondaのパスが通っているなら、以下のコマンドで環境を作成できます。

# conda create -n [環境名]
# pythonのバージョンを指定したい場合は conda create -n [環境名] python=3.6 など
> conda create -n py36 python=3.6

仮想環境の確認は以下のコマンド

> conda info -e

仮想環境の削除は以下のコマンド

> conda remove -n py37 -all

仮想環境の切り替えは以下のコマンド

# activate [環境名]
> activate py36

仮想環境から抜けるときは以下のコマンド

> deactivate

djangoのインストールをします。

> conda install django
# djangoのバージョンを指定したい場合は pip instal django==2.1 など
> pip install django

djangoバージョン確認は、Pythonインタプリタを立ち上げて以下のコマンド

> python
>>> import django
>>> django.get_version()
'2.1'
>>> exit()

こんな感じです。 今までpyenv使ってましたけど、それより断然使いやすくて驚きました。