@kotyのブログ

.NETとかJavaとかPythonとか勉強会のこととかを、田舎者SEがつづります。記事のライセンスは"CC BY"でお願いします。

PyCon JP 2018 に参加してきた

参加された皆さま、スタッフの皆さま、お疲れさまでした。簡単ですが参加報告です。

聴講したセッション

基調講演:Argentina in Python: community, dreams, travels and learning

動画:https://www.youtube.com/watch?v=KwmF5wyY2C4

Pythonに出会って良さに惚れ込み、南米中を車で巡って勉強会をしている人の話だった。ものすごい情熱。国を超えても同じスペイン語が通じる点は日本と状況が違うな。。

PyCon JP における子ども向けワークショップの活動事例と実施の意義

動画: https://www.youtube.com/watch?v=OTydTBD3_04

Building Maintainable Python Web App using Flask

リファクタ前に例示したコードがSQLを組み立てるのにstring.formatを使っていた。まあコード例だと思うんで。。。

どこまでmockを使うかは悩みどころかと。

DBアクセス部分はDjangoだったらsettings.pyで切り替えてインメモリのsqliteを使うのが良いと思う。このセッションはORM使う前提じゃないのでいろいろ面倒なことをする必用があった。

Pythonで時系列のデータを分析してみよう。

動画:https://www.youtube.com/watch?v=k7kE0P0oYUk

当社社員の発表。盛況で何より。

Pythonで解く大学入試数学

動画:https://www.youtube.com/watch?v=x0mIzF_VXLg

sympyなんてものがあるとは知らんかった

二日目基調講演

動画:https://www.youtube.com/watch?v=kO4FNg648qE

HomeSecurity with Python

動画:https://www.youtube.com/watch?v=MCRDLld6kXU

当社社員の発表。こちらも盛況で何より。

Djangoだってカンバンつくれるもん(Django Channels + Vue)

動画:https://www.youtube.com/watch?v=RTIPoW21K3U

Make a Drone using RaspberryPi and Google VoiceKit by Python

動画:https://www.youtube.com/watch?v=5TYodp-e-9o

昨年も同じネタで発表した人。会社作ってた。

Pythonで始めるウェブスクレイピング実践入門

動画:https://www.youtube.com/watch?v=zgTP_4-XEpw

当社社員の発表。こちらも盛況で何より。

所感

  • 今年は当社からスピーカーとして3名登壇した。自分もプロポーザル出したけど採択にはいたらず。
  • 英語がんばろう。
  • 全体の質疑応答で質問しないで、終了後に個別に質問するのはよくない。QAを共有した方が良いのに。
  • 確かに例年よりDjangoネタは多かった。理由は不明。
  • その分データ分析系は思ったよりも少なかった。この分野も落ち着いてきて一般化したってことなんだろうか。
  • 機械学習・データ分析関係の話題はまったくついていけない。何か始めないとなぁ。。

あとで見る

自分へのメモ。この辺りか。。。

第2回「体系的に学ぶ-安全なWebアプリケーションの作り方-第2版」読書会参加記録

nseg.connpass.com (確か)7名の参加

CORSで、「シンプルなリクエスト」の要件を満たすものはプリフライトリクエストなくHTTPリクエストが発行される。満たさないものはプリフライトリクエストが飛び、ターンアラウンドが一回多くなる。

クライアント側を守るためにサーバー側に仕組みが必用な点がCORSの分かりにくい点(個人の感想)。

Djangoの場合は、django-cors-headers を使えばよしなにしてくれ、各種設定はsettingsでできる。Djangoで言うviewではCORSを意識しなくて良い。ほかの処理系のwebフレームワークであってもおそらくは、リクエストのパイプラインの途中に介入しコントローラに至る前にプリフライトリクエストは処理できるするしくみになっている、またaccess-control-allow-* ヘッダを制御しているハズ。。。

この辺のトピックはここ数年で入った話なので改訂版ならではですね。

次回は 9/19 です。

nseg.connpass.com

第1回「体系的に学ぶ-安全なWebアプリケーションの作り方-第2版」読書会参加記録

nseg.connpass.com

キャンセルが出たものの、当日の飛び込みもあり参加者は7名。静かな滑り出しという感じ。

序盤なのであまりコメントすることがない。。。

x-www-form-urlencodedとRFC3986のURLエンコードの違いについて少し話題になった。

x-www-form-urlencodedの仕様では半角スペースは +になるがURLエンコード(encodeURIComponent)を通すと %20 になるという違いがある。厳格に扱うには %20 をさらに+ に変換してやる必用がある。

今までそこまで気にしてなかったが。。。

参考:

次回は9/5です。

nseg.connpass.com 本の厚さからして読了に1年くらいかかりそう。

MBPを修理してもらった話

会社から貸与されているMac Book Pro(13 inch early 2015)のビルトインのキーボードとトラックパッドが反応しなくなった。USBキーボードとbluetoothトラックパッドを使えば問題ないが持ち運びが面倒すぎる。

最初にケーズデンキAppleストアに持っていったがハードウェア修理は請けていないとのこと。

調べたところ、松本に修理センターがあるらしい。なぜ長野に無い。。。追記長野にもあるが、macの修理はやってない模様。追記おわり。

BIC MIDORI松本店 - Appleの購入と修理 | ビックカメラ

そっち方面の同僚にお願いして持ち込んでもらった。

受け取りは盆休みを使って自分で行った。おおむねこの日と言われた日の夕方になっても連絡が無い。突然連絡を受けてから向かっても閉店に間に合わない可能性があるのでこちらから電話したところ、部品は交換済みであとは動作確認をしているとのこと。それを聞いて松本に向かった。

費用は8,000円弱。このモデルに多い故障らしい。翌日から仕事で使う予定だったので、ひと安心。

しかし連絡待ちで貴重な休みを使ってしまった。

SFTP時のumask

ユースケース

  • 複数のデザイン会社がサイトに静的コンテンツをuploadしたい
  • デザイン会社ごとにログインユーザーを分けたい
  • 無駄なポートは開けたくない
  • php拡張子も許容
  • AWS上でAmazon Linux2を使っている

このようなケースの場合、FTP、FTPS、SFTP、SCPが選択肢に挙げられる。ちょっと調べた限りmacだとscpクライアントに良いものが無い。ソフトウェアエンジニア相手ならscpコマンドでええやんと言えるのだが。。。余計なポートも開けたくないし当然暗号化はしないといかん。というわけで、SFTPを選択することになった。

ソリューション

手抜きで恐縮だが、結論から言うと、ほぼ以下でできる。

epnote.net

が、このままだとuploadしたときに 744で書き込まれてしまい、upload後に他のユーザーが上書きできなくなる。Centos7の既定のumaskは022で*1であり、仮に775でuploadしても755に変えられてしまう。

というわけで、umaskを明示的に設定した。

        ForceCommand internal-sftp -u 002

これでほかのユーザーでも同じグループに所属していれば上書きできるようになる。

蛇足

本題から外れるので言及しないが、実際にはALBで冗長化しているためuploadしたあとに各ノードにファイルを同期してやる必要もあり、unixユーザーの追加作業もあいまってこの構成は運用負荷が高めである。phpやめようぜと調整し、S3にホストしてIAMを都度振り出すように運用すのがイケてるエンジニアなんだろう。あるいは最近出たNFSのマネージドサービスを使うとか。。。

*1:必ずしもそうではないようだが https://www.pupha.net/archives/151/

第8回「Linuxのしくみ」読書会参加記録

nseg.connpass.com

7名参加

8章ストレージデバイス

サンプルコードを動かすには空きパーティションが必要で動かせず、イマイチ実感なし。

I/Oスケジューラは読み書き処理のマージや先読み等の支援機構によりI/O性能を向上できる。

I/Oスケジューラは標準のものだとSSDで性能が劣化するので異なるものを使うことがあるらしい。

誤植の多い本だった。。。

参加者の皆さんお疲れさまですた。