今週は異常な雰囲気で、暖房を入れていても寒くて寒くて仕方なかった。
このところ寒いのか眠いのか、20時くらいに晩ごはん食べたら日付が変わるまで気絶してしまう、元気があったら風呂入って寝て、そして朝は6時か7時に目がさめる
— 趣味はマリンスポーツです (@hitode909) 2021年2月9日
作ったものが動かないと、もったいないと思う。
プロトタイピングとして見ると、様子がわかるまで3回くらい作りましょう、みたいな話もあるけど、プロトタイプのつもりでないのに、はい、では次、もう1回作りましょう、となるなら、ここまで作り込まなくてもよかった、となったりする。
ところで、源泉かけ流しの気持ちになると、源泉がかけ流されるもったいなさは、源泉にしか分からないのかもしれない。
なんか、このどうでもいいツイートがやたらといいねされるな…と思ったら、このどうでもいいツイートが予算500ドルのプロモーションツイートになっていて、13万インプレッション獲得し、390ドルくらい消費していた。
プロモーションツイートは開始してもメールなど来ないようで、同僚のもとにプロモーションツイートが表示されていて気づけた。twitterからのメールは全部受信トレイをスキップしているので気づけず、検索するとアーカイブ済みのメールから請求のメールだけ発見できた。
普通に使っているとこんな簡単にプロモーションになってしまうことはないはずで、自分は以前、自作のウェブサービスの宣伝をプロモーションツイートでやってみていたので、そのときにクレカを登録していて、その結果、何度かタップすると予算500ドルのプロモーションを始めてしまうようだった。たぶん歩いてるときかなんかにぺこぺこっと押してもらったのだと思う。。
支払うつもりのないウェブサービスからはクレカ情報を削除しておくべきだ、という教訓を得られたのと、普段、たまに、わけわからないプロモーションツイートを目にすることがあるのだけど、そういうわけわからないプロモーションはこうやって発生するのかもしれない…ということが分かってきた。
390ドルで済んだのはよくて、2〜3タップで3900ドル請求されたら立ち直れなかっただろうし、39000ドルなら半年分の労働が吹き飛ぶくらいのインパクトとなるところだった。
また、同僚のもとにこのツイートが表示されて、スクショを撮ってもらえなかったら500ドル消費していただろうから、途中で気づいて止められたのはちょっとよかった。
実家のADSLを光回線にする仕事を引き受けたところ毎日15時とかに電話が来て全然取れず地獄
— 趣味はマリンスポーツです (@hitode909) 2021年2月5日
いつの間にか光回線の契約の電話が取れないツイートがプロモーションになっていて13万インプレッション集めて394ドルの請求が来ていてつらすぎる、スマホをポケットに入れて歩いてるうちに触ってしまってプロモーション開始してしまうとかあり得るのかな… pic.twitter.com/evsZLpjoqm
— 趣味はマリンスポーツです (@hitode909) 2021年2月7日
プロモーション予算が5万ドルとかじゃなくてよかった
— 趣味はマリンスポーツです (@hitode909) 2021年2月7日
このところ、というか年あけてから仕事が納まるタイミングがあまりなくて、落ち着いて本も読めない。作業が無限にあるのに、この文章を読む余裕はあるのか?とか考えてしまう。
部屋数の多い部屋に引っ越そうかと思ってちょっと見たりしていたのだけど、引っ越しするのはやめた。
今の部屋に引っ越してきたときもそうだったけど、ファミリー物件に引っ越そうとすると、敷金礼金、初月分の家賃、仲介手数料、などなど積んでいくと6〜70万円くらいになる。それに加えて、荷物を運んでもらう費用、荷物をダンボールに詰める手間、カーテンを買い直すなど、100万円くらい見ておいたほうがよさそう。これは引っ越さないと本当にどうしようもない!という瞬間が訪れるまでは今の部屋で粘ってみようと思う。
引っ越すのやめたら、急に今の部屋でやっていくぞという意識が高まってきて、朝から部屋の模様替えをして、ベランダを大掃除して、窓を拭いて、空気清浄機を分解洗浄して、風呂のパッキンの汚れをとって、と丸一日大掃除した。
これまで部屋の中央を遮るようにソファを置いてたけど、90度回転する形で移動して、部屋のフリースペースを広げることができた。
部屋の模様替えしたら異常に広くなってしまって何の役目もない床が出現した pic.twitter.com/fAlgHTzD3e
— 趣味はマリンスポーツです (@hitode909) 2021年2月6日
GraphQLを使って、ネイティブアプリにさまざまな集計方法のランキングを出す、というときについて考えている。
たとえば、ソーシャルブックマークアプリを作っているなら、「総合」「一般」「世の中」「政治と経済」みたいに、カテゴリごとのランキングを出すことがイメージできると思う。
どのようなqueryを用意して、どこまでパラメータ化するか、どこまで自由にするかによって、サーバークライアント間の責任分担や、その後の変更コストが変わってくる。
rankings: [Ranking!]!
みたいに、クライアントからは「ランキングください」とだけ送るパターンを考えられる。クライアントでは、Arrayの返ってきた順に画面上に表示する。
technologyRanking: ranking(tags: ["programming", "iot", "golang"], threshold: 3, lastBookmarked: "2021-02-01")
みたいに、ランキングの詳細や集計のためのフィルタなどをクライアントから渡すパターンも考えられる。Elasticsearchに投げるクエリなんかをイメージすると、複雑なクエリでさまざまな問い合わせができることは考えられそう。
特定のテナント用のqueryを別のテナントで使いたいかどうか、という話があって、使う場合は、どの程度再利用するかも考えておく必要がある。
たとえばソーシャルブックマークを作っていたら、ほっこり動物ニュースだけが表示される動物ソーシャルブックマークアプリを開発し、世の中ランキングのかわりに、犬ランキング、猫ランキング、みたいなランキングを置きたくなりそう。
example.com
ならexampleDotComRankings
みたいな
再利用するぞ、と意気込んで1で作ってみたけど、出来上がってみたものはクライアントから見てさして使いやすくない、という仕上がりになってしまった。2くらいが妥当なのかな、と思ってきている。
要はバランスということで、どういう特性があって、どういう性質が求められているか考えていくと、ほどよい塩梅を決められそう。
ブラウザから使うAPIならリリースとともにすぐクライアントも入れ替わってくれる前提でよいので好きにコントロールできるけど、ネイティブアプリから使うなら古いクライアントがしばらく残ってしまう、ということに今日気づいた。いろいろありますね。
Federationという概念を教えてもらった。
マルチテナントでいうとスキーマのfederationがApolloというNodeのサーバーサイド実装の拡張であるのでこれを検討しても良いかもしれません。複数のGraphQLスキーマをまとめてひとつに見せるやつなので、管理画面からはこっちを使うとかはフィットするかもです。
— 青木華絵 (@aereal) 2021年2月5日