Python
久しぶりのBlogです。9/8にISUCON9予選が開催され 同僚とともに むし,うさぎ,いぬ というわかりづらいチームで参加してきました。私はうさぎです。個人としては3回目、このメンバーでは2回目の参加でした。 isucon.net 最終結果
ISUCON予選の傷も癒えぬまま、PyConJP 2018に参加してきました。火曜も出勤扱いで参加でした。やったぜ。 今回のPyConJPはスピーカとしての参加でしたので、だいぶはらはらながらの参加でした。
前回書いたように、ISHOCON2に参加してきました。Pythonで9万点で3位ではありましたが、GoやCrystalといったコンパイル言語勢が20万以上出していて悔しいでのPythonで20万点出るように試行錯誤しました。
転職決めたあたりでアウトプット増やそうと思ってはじめたブログも1年過ぎてました。今日はISHOCON2に参加してきました。 scouty.connpass.com ISHOCON1のときはまだscoutyの社員じゃなかったので普通の参加者でしたが、今回はスタッフ兼参加者として言って…
Django Channelsの@database_sync_to_asyncデコレータを正しく理解しなくてえらい目('MySQL server has gone away')にあったので、確認して理解した内容を残しておきます。
小ネタです。unittest.mock.patchを使うと、動的にメソッド内での関数やモジュールを差し替えることができますが元関数の引数への影響をなくしたかったという話です。そういやそもそもこんな記事書いてました。
普段はDjangoで普通にWEBアプリを作っていますが、別のクライアントアプリから認証する必要がでたので、login用のAPIを作ることになったのですが、django api loginとかでググるとDjango REST Frameworkでの話ばかりになったのでメモ程度に。
前回に引き続きChannelsを触っていきます。前回で一応チャットとして必要なRoomの概念をChannel LayerのGroupで実装しました。今回はその実装を少しいじっていきます。
少し空きましたが前回に引き続きChannelsを触っていきます。前回はChannelsでWebSocketでのエコーサーバ的なところまで実装しましたので、Room等を作っていきます。
前回に引き続きChannelsを触っていきます。前回はChannelsの有効化までやっていきましたので、今回は実際にChannelsを使ってWebSocketでのチャットを実装していきます。
現在仕事でWEBサービスを作るときはDjango一択な環境にいます。今度Websocketが必要になったのですがDjangoでWebsocketどうするんだってことで調べたところChannelsというライブラリを使うらしいです。Djangoのグループが作っているので安心感があります。Ch…
gulpとかは指定したファイルの変更があると、それに応じてアクションを実行してくれる機能がありますね。またbottleやdjangoのDEVサーバ等でもコードの変更を検知して自動でプロセスを再起動してくれる機能があります。 先日作業中に、WEBサーバではないもの…
スタッフなのに転職でワタワタしてからなかなか行けてなかったみんなのPython勉強会(stapy)に久々に時間が都合付いたので参加できました。stapyに参加したらLTするというポリシーなので 勉強会参加したら取り敢えず参加記を上げるところから始めよう、的なLT…
最初の頃はbottleの話をよく書いてましたが最近は疎かになってましたので久しぶりです。今回はtemplate engineについてまとめておきます。
なんか気がつけば2017年8月から始めたBlogも1万アクセスを突破してました。めでたい。 さて、最近はDjangoよりもScrapyに触ってる事が多いです。結構日本語の情報も増えてきましたが、Django等に比べるとまだまだ利用者が少ないのか情報が少ない部分もありま…
Djangoのtemplateでちょっとしたifを省略する場合の話です。Listを元にDOMノードを作成しているときに、元データに応じてCSSクラスを変更したい場合の話です。以下のようなケースをもう少しきれいに書きたくなったので調べました。 <ul> {% for row in data_list</ul>…
Dynamodbを使うようになったのですが、RDBMSに比べるとDynamodbは雰囲気でやっているところが多く、表題のLimitオプションの挙動で嵌ったのでboto3での例とあわせてまとめておきます。
最近はHead First デザインパターンを読みながら、デザインパターンの勉強をしています。この本は読みやすくてとても参考になるのですが、サンプルの実装はJavaになっておりそのままPythonに移植することはできません。 第5章がシングルトンパターンですが、…
今回はDjangoのsettings.DATABASESに指定できるATOMIC_REQUESTSという設定について挙動を確認してみます。なおデータベースにはPostgreSQLを利用します。
AWS WorkMail、便利ですね。AWSが提供しているメールサービスで、独自ドメインでメールの送受信ができます。自社のサービスでは、お客様ごとにメールアドレスを発行しており、その際にWorkMailを使っています。 現在は契約処理の一環で担当者がWorkMailにア…
2018年もはじまって1週間、そろそろ社会復帰しないといけないですね。昨年末にRDSやらboto3やら触っていたのでそこら辺まとめておきます。 解決すべき課題 RDSはいずれもMySQL 本番のRDSがある(本番RDS) 開発用環境のRDSがある(開発RDS) 開発RDSのデータは本…
Djangoはモデルの内容が変更されても、makemigrationsしてmigrateすればDBにモデルの変更を反映できるので楽でいいですね。しかし、ちょっとユニーク制約をもったカラムを追加しようとしたら簡単にはいかないケースに遭遇したのでメモを残しておきます。
ここのところDjangoを触り続けていてなかなか楽しいです。触っている中であるModelのオブジェクトを1つに統合する処理を書かなければいけなくなりました。そんなときに影響を受けるModelの洗い出しをどうするか調べたので残しておきます。
最近のクローラ周りのunittestを書いていたのですが、テスト速度の改善や安定化のためにmockのpatchを使おうとして色々とハマったのでまとめておきます。
Raspberry Pi と照度センサを使って、トイレの使用状況をSlackからわかるようにしてみました。 ※全部会社で買ってもらった(*´ω`*) 動機 職場は2フロアあり、下のフロアがオープンスペースになっていおりトイレもここにあります。私は上のフロアで仕事をして…
今回はREQUEST DATAのあたりを見ていきます。HTMLで作成したフォームの内容をサーバ側でどのように受取っていくかです。
少し間が空いてしまいましたが、久々にbottleについてまとめていきます。今回はCookieあたりを見ていきます。
この記事はJPOUG Advent Calendar 2017の3日目です。 さらに同日にもう1記事あげていますのでよろしければご覧ください。 本記事では、sqlpylusを使用してPythonからOracle DatabaseにSQLを発行する流れをご紹介します。 なお、sqlpylusはsqlplusの誤植では…
この記事はJPOUG Advent Calendar 2017の3日目です。 さらに同日にもう1記事あげていますのでよろしければご覧ください。 次の仕事ではOracleとかかわらなくなりますが、思い入れがありますのでエントリ書いておきます。 PythonからOracle DatabaseにSQLを発…
ISUCON7の予選は、画像へのアクセスをいかに304で処理して帯域を節約できるかが肝でした。そこでnginxのETagやLast-Modified等の設定周りを見直してみます。