As rookie

ルーキーインフラエンジニアがインフラのこと以外も結構書いてしまうブログ

PythonのTrue,False小メモ

Pythonの真偽値として使われるbool型に関するメモ

https://docs.python.jp/3/library/numbers.html#numbers.Integral

常識なのかもしれないが、bool型は整数型の派生型とのこと

boolクラスのインスタンスとしてしか考えたことがなかった

>>> True
True
>>> type(True)
<class 'bool'>

整数型の派生なので演算ができる

>>> True + 1
2
>>> True + True
2

おまけ

>>> True == True + True
False

真実に真実を加えると、真実じゃなくなる

pythonでランダムに日本語を作る

mokicks.hatenablog.com

せっかく配列作ったのでとりあえず使うだけです。

import random
import sys
jp = ["あ","い","う","え","お","か","き","く","け","こ","さ","し","す","せ","そ","た","ち","つ","て","と","な","に","ぬ","ね","の","は","ひ","ふ","へ","ほ","ま","み","む","め","も","や","ゆ","よ","ら","り","る","れ","ろ","わ","を","ん"]

def make_word(length,words):
    word = ""
    for i in range(length):
        word += words[random.randint(0,len(words)-1)]
    return word

def main():
    if len(sys.argv) < 2:
        print("引数を入力してください")
        return
    print(make_word(int(sys.argv[1]),jp))

if __name__ == "__main__":
    main()
python jp_cmd.py 2
よひ
i=1; while [ $i -le 10 ]; do python jp_cmd.py 3; i=$(expr $i + 1);done
ろめね
さゆへ
たふそ
めゆろ
かめる
をねき
えほめ
になあ
るゆを
りおあ

これで子供の名前つけます

pythonで50音の配列

メモレベルの内容です。

pythonで50音の配列を作りたかった。
python 50音 配列」で検索して配列の定義が出てくれば一瞬で解決したと思います。
ですので先に貼っておきます

jp = ["あ","い","う","え","お","か","き","く","け","こ","さ","し","す","せ","そ","た","ち","つ","て","と","な","に","ぬ","ね","の","は","ひ","ふ","へ","ほ","ま","み","む","め","も","や","ゆ","よ","ら","り","る","れ","ろ","わ","を","ん"]

きっとutf-8バイト型の50音からString型に変換するみたいなのを調べると出てくるはずです。
ちょっと調べると

b'\xe3\x81\x82'  #バイト型の「あ」
b'\xe3\x81\x84'  #バイト型の「い」
b'\xe3\x81\x83'  #バイト型の「ぃ」
>>> b'\xe3\x81\x82'.decode('utf-8')
'あ'
b'\xe3\x81\x84'.decode('utf-8')
'い'

ここまでわかったのできっとできるはずです。

でも今回は単純に変数を定義する方法。というか作業ログです。

vim jp

50音を検索しても文字一つ一つが連続しているものがなかったのでしかたなく手打ち

あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわをん

一文字ずつ" "で囲ってカンマをつける置換

:%s/\(.\)/"\1",/g 

中学生ぐらいの私なら一文字ずつ打ってその度に" "とカンマをつけていたでしょう。今ではこの通り割と早くできました。

作業効率向上のために中学校の必修科目にvimを設けるべきです。

根本的にもっと早い方法があるなら知りたい。

以上です。ご覧いただきありがとうございました。

nginx-unitのansible

ドキュメント見た方が早いかもしれない

NGINX Unit

対象はCentOS7
roleとして扱う

ディレクトリ構造

.
├── files
│   └── unit.repo
└── tasks
    └── main.yml

ファイル群

tasks/main.yml

---
- name: import unit repo
  copy:
    src: unit.repo
    dest: /etc/yum.repo.d/unit.repo

- name: install package
  yum:
    name: unit
    state: presen

files/unit.repo

[unit]
name=unit repo
baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=0
enabled=1

軽い説明

unit.repoをコピーしてyum install

断念したこと

nginx unitは

curl -X PUT -d @example.json --unix-socket http://localhost

これで example.json で指定した内容でアプリケーションを起動することができる。
ということは
ansibleの uriモジュール を使えば起動もできるのではないかと考えた。ローカルでJSONを更新してデプロイもできるじゃないかと考えた。が、
uriモジュールでunix-socketを使う方法がわからなかった。

ので断念しました。いつか再チャレンジ

積読消化:サーバーレスシングルページアプリケーション:day2

別に毎日するとは宣言していないが、2日続けて投稿。

レビューみたいになるかもしれない。いや、読書感想文か

これまでに「こんなことができるアプリケーションがあるといいな、だれか作ってくれないかな」と思ったことがあるなら、良い知らせがあります。その「だれか」は「あなた」です。

この一文で始まる。いいこと言うぜ

N層アーキテクチャ

Web部分がクライアントとバックエンドのインターフェースになるようなシステム。 アプリケーションサーバ + 1つ以上のバックエンドが層を形成している

シングルページwebアプリケーションをつくることで、アプリケーション部分をブラウザに移せる。
ふむ。確かに。
ブラウザが直接必要なサービスに接続できる設計になる。
クラウド事業者が提供しているバックエンドサービスを部品として使うイメージ


継続大事

積読消化:サーバーレスシングルページアプリケーション:day1

まずはこれ。ページ数は188P

良心的

1日20ページ進むと8日で読み終わる 1日40ページ進むと4日で読み終わる

レッド・グリーン・リファクタリング

コードを書く前テストを書く。この時のテストは絶対に失敗する(コード無いからね)。
これがレッド
テストが失敗したならテストが通るコードを書けばいい。コードの追加(振る舞いが増える)。この時はテストが成功する。
これはグリーン
グリーンになった時点で全体的なコードの修正をする。これはグリーンの時だけ行う。
リファクタリング

これならシンプルかつ信頼できるコードが書けそうだ!

補足:これまだ目次にすら到達してない

積読消化

最近ブログを怠っているいる上に、積読が腰ぐらいの高さまできた。
流石にやばいと思い。最近本を読んでいる。
だが、積読といっても技術書が多い。
技術書の場合はどこでも読めるわけじゃない。自分の手元にPCがあり、実際に手を動かして読み進めていくことの方が多い。(てかそれが技術書?)

ってことで、手元に技術書&PCがあるならやることは一つ

アウトプット

ですよ。

アウトプットをすると、知識が定着しやすい。それだけじゃない。
アウトプットすることは、自分自身のモチベーションにも繋がる
それがパブリックなものなら「どこかで誰かが監視している精神」になり、継続の役にも立つ。

と思っている。ので 積読消化をアウトプットしていこうと思う。 本当に少しのインプットでもいいからアウトプットしようと思う

ソロアドベントカレンダーは11日で終了してしまった私。同じ失敗は2度繰り返したくない。

そしてブログの最後には

「継続は力なり」

と一言添えることにする。うん。頑張る