Make組ブログ

Python、Webアプリや製品・サービス開発についてhirokikyが書きます。

2019-01-01から1年間の記事一覧

匠メソッドでステークホルダーをこぼさない発想法 〜 使う人と買う人が違うときがある?

匠メソッドのステークホルダーモデルは、価値分析モデルや要求分析ツリーと比べると簡単に見られがちに思います。 ですが、 ステークホルダーをこぼすと、価値も要求もこぼれていきます 。 今日はステークホルダーを発想していく方法を紹介します。 罠なのは…

Marketo(マルケト)のメールで変数(トークン)からリンクを作るときはスキーム(https...)をなしにすべきらしい

Marketo で動的なメールを書くときの話です。 以下の条件での話です Marketoでメールを書く メール内のリンクを、リードのフィールド値などトークンを使いたい メール内のリンクのクリックをトラッキングしたい このとき、変数の値を https://example.com/ …

aiohttpのWebSocketクライアントの実装をソースコードリーディングしていく

こんにちは、最近 aiohttp をすごく使っています。 Web-DBな処理はDjangoで実装して、非同期処理が必要なサーバーやクライアントをaiohttpで書くという住み分けをしています (今までNode.jsを使っていたところをaiohttpで実装しています)。 平たく言うとaioh…

なぜ食べ物を残してはいけないのに積読をするのだろう?

「食べ物を粗末にしてはいけない」と言われても、それを疑う人はいないと思います。 幼少期から全日本人が教えられていることだと思います。強制力の違いはあれど、誰しも教えられたことだと思います。 ですが、粗末にしてはいけないのは食べ物だけでしょう…

雑談: AIは牛乳を注ぐ女の夢を見るか?

雑談です。 AIは牛乳を注ぐ女の夢を見るのか? 牛乳を注ぐ女というのはフェルメールのあの絵のことです。 ja.wikipedia.org 今の世の中はAI、ディープラーニングの話題がホットです。 ですが今言われるAIはとどのつまり機械学習で、僕が学生のときは「弱いAI…

Djangoのresponse.set_cookieはmax_ageを指定すればexpiresが勝手に計算される

DjangoでCookieを設定するときは response.set_cookie を使います。 response = TemplateResponse(...) response.set_cookie("key", "value", max_age=3600) 今まで知らずに expires も自分で計算して設定していましたが、 max_age を指定して expires を指…

PythonとRubyの比較をよく聞かれるので明示するか略せるかが違うよという説明をまとめておいた

よくプログラミング初心者の方に「PythonとRubyの違いを教えてください」と聞かれるので書いておきます。 免責 あくまで僕がプログラミング初心者さんに説明するときにこの説明を使うよという視点です。読んでる方が思う視点とか別の意見はぜひご自身のブロ…

Python3.8のPEP572 (Assignment Expression) とリスト内包表記でフィボナッチ数列を作って遊んだ記録

あつおさんがPEP572でフィボナッチ数列を作って遊んでいたので、僕も遊んでみた。 Python 3.8.0a1時点の話です。 はじめてのPEP 572書いた>>> [((p1+p2), (p3:=p1), (p1:=p2), (p2:=p3+p2))[0] for x in (range(2, 10), (p1:=1), (p2:=1))[0]][2, 3, 5, 8, 1…

aiohttp.ClientSessionのリクエストをaioresponsesでモックする。特定のホストへのアクセスは許可する

aiohttp.ClientSession() でのアクセスをテスト時にモックしたいときに、 aioresponses というライブラリーが使えます。 github.com Pythonのrequestsライブラリーを簡単にモックできる responses というライブラリーがあるのですが、そのresponses-likeに使…

pytest-asyncioとpytest-aiohttpを一緒に使うとRuntimeError got Future attached to a different loopがでる

pytest-asyncio と pytest-aiohttp を同時に使うと、テストの中で使うイベントループが別のものになってしまってエラーが出ます。 RuntimeError: Task <Task pending coro=<...> cb=[...]> got Future <Future pending> attached to a different loop github.com github.com aiohttpを使ってるWebアプ</future></task>…

asyncioとpytestでテスト用fixtureを作るときにgot Future <Future pending> attached to a different loopが出る話

Pythonでasyncioを使うアプリケーションのテストを書くとき、event loopに気を遣ってあげないとエラーになるという話です (今回はaiohttpを使ってWebアプリを作っているときに起こりました)。 こんなエラーがでました。 RuntimeError: Task <Task pending coro=<...> cb=[...]> got</task>…