バイトに月1で入ると何か面白くなることが分かった
auです。
大学1年の6月から大学3年の現在にかけてカラオケのバイトをしているのですが、色々な用事などが重なり、月に1、2回しか入ることができません。
それでも店長やみんなは受け入れてくれるので、とても恵まれた環境にいるんだなーと思います。
そこで、月に1回入ると、初対面の時は入って1週間って言ってた人に色々教えるが、次に会う時には数ヶ月経っているわけで、めちゃめちゃ成長しています。
前回あった時は物を運ぶことしかできなかったのに、次に会うと機械の直し方を習得していたり、いい意味で上手なサボり方を会得していたりと、見ていてすごく面白いです。
後、常に月のキャンペーンが変わっているので、フロントのオペレーションが変わっていたり、急にQR決済に対応していたりと、驚くことが多いのも面白いです。
割と気楽にできるバイトかつ、みんなと楽しく遊んだりもできるので好きな場所です。
Pythonを使ってFirebaseの特定のテーブルの情報を取得する方法
auです。
FirebaseのRealtime Databaseを使ってアプリを開発しているのですが、特定のテーブルの値を抜き出す方法をメモがわりに残しておこうと思います。
言語はPythonで、firebase_adminのライブラリを使っています。
早速本題です。
Firebaseの初期化処理は終わり、データがある程度追加されているものとします。
こんな感じでテーブルがあったとします。
この場合、aaaaというデータを取り出したい場合、以下のように書きます。
ref = db.reference('qr/aaaa').get() print(ref) # 実行結果 {'used': 3}
色々と調べてみましたが、意外とまとめられていなかったので・・・
あとはこの辞書型の値を取り出して、かちゃかちゃすれば色々な処理を実装することができます!
ネットワークで用いられるDHCPとは
auです。
ネットワークでIPアドレスを割り振るためのサーバである、DHCPについて調べました。どんな風に割り振るんだっけ・・・となってしまったので、復習を兼ねて調べようと思います。
DHCPとは
DHCPとは、Dynamic Host Configuration Protocol(ダイナミック ホスト コンフィギュレーション プロトコル)の頭文字をとった用語です。
DHCPはプロトコルと名のついている通り、通信の際のルールです。DHCPサーバに対して、DHCPクライアントが「ネットワークにアクセスするからIPアドレスを割り振っておくれ」という風にパケットを送信し、DHCPサーバがIPアドレスを貸し出してくれます。
貸し出しとなっているため、一定時間をすぎたら返却するか、無制限で貸し出しをするかをサーバ側の設定で選ぶことができます。この時間をリースタイムと言います。
学校や社内といった、制限をかけなければならないネットワークでも、DHCPサーバを経由することで、一度の設定で多くのクライアントを制限することができます。
スマホやタブレットといった機器に、固有のIPアドレスを割り当てることは難しいので、DHCPを使って自動で割り振ります。
ソフトウェアなどを使って設定をいじることができるので、割と簡単にIPアドレスの範囲を制限したりできるんだなと思いました。
ネットワーク用語のロングポーリングとは
auです。
ネットワークの用語を調べていると、「ロングポーリング」という用語があるみたいです。ポーリングなら以前まとめたので、そちらを見てみてください。
program-shoshinsya.hatenablog.com
ロングポーリングとは
ロングポーリングとは、任意のタイミングでメッセージを送れるようにしたものです。
一度接続した通信に対し、サーバ側はレスポンスを保留し、コネクションを維持します。そして、サーバ側でイベントが発生した場合に、維持していたコネクションを通じて通信を行います。
ポーリングは、一定間隔でメッセージを送るものなので、任意のタイミングでメッセージを送れるというのは大きな利点になります。
サーバ側の実装は、任意のタイミングに対応するため、ポーリングよりも多少複雑になってしまいます。しかし、クライアント側の実装は、メッセージをサーバ側に送るだけのため、ポーリングと変わらず、実装は容易です。
Pythonのforで使われる「_」とは
auです。
久しく勉強系の記事を書いていない気がしたので、これから書いていこうと思います。
Pythonでfor文を使うときによく書く書き方で
for i in range(10): ...
という書き方があります。これだと、10回のループを表し、それぞれの数は「i」に代入される形になります。
では、「i」を使わない場合はどうしましょう。
答えは「i」を「_」に変えるだけです。
for _ in range(10): ...
これだけで、10回のループを変数に代入せずに処理することができるようになります。
IDE(VSCodeとかの統合開発環境)では、使っていない変数を知らせてくれることがあります。宣言する必要がないけどなあという場合には、「_」を使ってバグの防止に努めましょう。