まらんさんのチラ裏

その日暮らしのおじさん

tmux を update したら起動しなくなった

何も考えずに brew upgrade で tmux のバージョンを上げたんだけど、起動しなくなってしまった。
古い tmux server(session) が起動したままだったのが原因のよう。
下記のように tmux server を殺すことで無事起動するようになった。
たぶんすべての session を閉じることでもいけると思うんだけど、たくさん起動してたのでめんどくさくてやっちゃった。

tmux kill-server

めでたしめでたし。

ITP についてまとめてみた 2021年7月

最近、広告周りの仕事をしているのでどうしても ITP の今後について気になってしまう。
ということでざっとまとめてみた。
まだ一部モヤっとしている状態で書きなぐっているので間違いなどあれば指摘してほしい。

ITP のいままで

  • ITP 1.x
    • tracker domain の 3rd Party Cookie は最長24時間で削除
  • ITP 2.0
    • tracker domain の 3rd Party Cookie は即時削除
  • ITP 2.1
    • tracker domain の 3rd Party Cookie は即時削除
    • 1st Party Cookie が7日で削除
  • ITP 2.2
    • 1st Party Cookie が1日で削除
  • ITP 2.3
    • Local Storage が最長7日で削除
  • PTPT: (Preventing Tracking Prevention Tracking)
  • ITP 202003:
    • 3rd Party Cookie は即時削除
  • ITP 202011:
    • CNAME Cloaking で設定された Cookie は即時削除

// 詳しくは AD EBiS さんの note を見てください。

ITP の今後

(元々行儀が良かったとは言えない)CNAME Cloaking まで規制されてきたので、アドテク業界はなかなか苦戦している様子。
ITP に引きづられてか Apple の Private Relay も出てきたので IP アドレス等によるトラッキングも非現実的なものに。
元々 IP アドレスはさほど信用できるものではないが、一定の指標にはなりえた。
今後さらに締め付けが厳しくなることは容易に予想できる。
CNAME Cloaking 撲滅後は 1st Party Cookie のさらなる規制や Local Storage の規制が一層厳しくなるだろう。
1st Party Cookie の長寿命化については IsLoggedIn という API が提唱されており、これは主に Apple が主導していたように記憶している。
「このサービスにログインしているか?」という問い合わせをし、ログインしているようなら 1st Party Cookie の生存期間を延ばすという実装。
ただ、これはログインを必要としているサービスにおいて 1st Party Cookie がほいほいと削除されたら困るからという理由であり、トラッキングのための特別処置ではない。

暫定対応策

現時点での対応策は、 NS の管理権限を広告主から引き継いで、A レコードにトラッキング用のドメインを入れてしまう。(既に実施している会社あり)
または、広告主の LP サーバ等でトラッキング用 1st Party Cookie を発行する。のいずれかになる。
どちらもなかなかにハードルが高そうである。
URL Param を引き回す事自体には規制が入っていないし、おそらく規制することは難しいと思われるため、無理やり param を引き回して CV したら param に含めた Tracking ID 的なものと注文情報を広告サーバに渡す。というやり方も考えられる。
が、これは Cookie などと違ってワンショットなやり方なので数日間に渡ってトラッキングできるものではない。
やりようもあるかもしれないが、現時点ではあまり考えていない。

他に注目すべき手法

Google の実装に FLoC があるが、これは他のブラウザから猛反発を食らっているのでこのままリリースされることはないだろう。
Conversion Measurement API という Chrome 実装もあるが、これもプライバシーの観点から微妙であるという指摘が散見される。
Private Click Measurement という Safari/WebKit の実装は個人の特定は不可能。アドネットワーク等へのへのデータ送信もダメ。プライバシーの観点でいえば悪くないと思うが、アドテク業者は個人を追跡したい。厳密にはデバイスを追跡したいと考えているので、あまり歓迎はされないかもしれない。
Unified ID 2.0 なる、いわゆる共通IDソリューションも出てきているが、これについてはまだ仕組みがよくわかっていないため今後の課題とする。
これらの技術はまだまだ議論段階や実験的実装の段階であるため、まだまだ変更される余地がある。
それもあってあまりきちんと調べていないという甘えた言い訳をしているのだが、隙間を見つけてちゃんと調べておきたい。

【開発合宿】おんやど恵に行ってきました

先日、開発合宿先をどこにしようか迷った末、湯河原にある「おんやど恵」に行くことになりました。

www.onyadomegumi.co.jp

ここに決めた理由としては、

  • 開発合宿プラン(安い!)がある
  • 開発合宿モニタープラン(ブログ掲載 + アンケートに答えると安くなる)がある
  • 会議室が24時間使える
  • ホワイトボードがある
  • Wi-Fiが使える(客室では使えなかったのは少し残念)
  • 電源が使える
  • 会議室内でも喫煙可能なのも喫煙者的には嬉しいポイント

といった、開発には必須の条件が一通り揃っていることでした。
これらが揃っている旅館はなかなかないですよね。
それから経営者が元エンジニアというのもなんだか親近感が湧きます。

写真を何枚か撮ったので載せていきます。

まずは旅館までに発生したポケモンGOを楽しむおっさんたちの図 f:id:Malan:20160726184337j:plain

海はいいですねえ f:id:Malan:20160726184959j:plain

あ!野生のポッポがとびだしてきた!(飛び出してない)
人に慣れてるのかかなり近寄ってきました。かわいい! f:id:Malan:20160726184440j:plain

お昼は外で
やっぱり湯河原は海鮮系がイケてます。 f:id:Malan:20160724130244j:plain

いよいよ旅館の近く 目の前に川が流れており、客室からも音が聞こえて最高に癒やされました。
ちなみに客室周辺にもそこそこレアなポケモンが出てきたところもポイント高いです。 f:id:Malan:20160726190226j:plain

旅館到着!
旅館の人たちが笑顔で迎えてくれました。 f:id:Malan:20160726184709j:plain

会議室へGO!
客室ははしゃぎ過ぎて撮ってないです...
f:id:Malan:20160726185207j:plain

楽しそうに開発をし始める人々
Wi-Fiは2.4GHzと5GHzが使えます。 f:id:Malan:20160726185346j:plain

水とお湯が用意してあり、お茶が飲めます
この水、やたらと美味くて大人気でした。 f:id:Malan:20160726185450j:plain

スピーカー
試してないけど柔らかい音が出そう。 f:id:Malan:20160726185457j:plain

絵画が気持ちを落ち着かせてくれます f:id:Malan:20160726185505j:plain

分別できるゴミ箱 f:id:Malan:20160726185526j:plain

使わなかったけど着脱式背もたれ f:id:Malan:20160726185542j:plain

ここからひたすら会議と開発です。

疲れて買い出しへ
もちろんポケモンGOを忘れません。
最低限、人や車がいないことを確認してからやりましょう。
f:id:Malan:20160726190408j:plain

その後温泉へ!
やっぱり露天風呂はいいですねー!
が、温泉は流石に撮るわけにはいかないので割愛。
そして軽く飲んで就寝。

朝起きるとすごいことになってました... f:id:Malan:20160726190544j:plain

まるでコレですね。
f:id:Malan:20160726191421j:plain

帰りの電車でもポケモンGO
電車内でも止まればそこそこゲットできますね。

そんなわけで開発もポケモンも捗りまくった合宿でした。
すごく居心地の良い宿だったのでオススメです!
開発合宿どんどんやりましょう!

www.onyadomegumi.co.jp

MediaPad T2 7.0 Proを買ってみた

最近(2年)ブログを書いてなくて、開発合宿があるので久しぶりに書いてみたら色々他にも書きたい欲求が湧いてきたので7インチタブレットを買った自慢でも。

7インチにしてはわりと軽くて持ってて疲れません。
写真だとわかりづらいですが発色も良好。
いくつか初期設定による使いづらさが目立つようですが、設定さえ変えれば快適そのものです。
設定についてはあとで書きます。

まずは写真から。

ケース!本体はゴールドなのにケースは青い! f:id:Malan:20160714192759j:plain

本体!ゴールドです! f:id:Malan:20160714192828j:plain

ロック画面!写真がオサレ! f:id:Malan:20160714192845j:plain

ホーム画面!普通! f:id:Malan:20160714192833j:plain

初期設定から変更したほうが良い項目一覧

  • カクつく

    • 設定 -> 省電力 -> 電源プラン -> パフォーマンス
  • スワイプしようとしたらタッチになっちゃう

    • 設定 -> ユーザー補助 -> 押し続ける時間 -> 普通
  • 音楽聞いてると音量が変化する

    • 設定 -> 音 -> SWSモード -> OFF

これだけやってればおk。
お好みで開発者オプションからアニメスケール調整などを0.5xにするとか、GPUレンダリングを有効にするとかで更に快適度アップです。

Android、メーカーがちゃんと設定してないと「押し続ける時間」が何故か「短い」になってるんですよね。
誤タップ増えるのではじめから「普通」にしておいて欲しいです。

何はともあれ軽くてサクサク動いてバッテリー持ちも良い優秀な端末じゃないかと思います。
Nexus7(2013)を中古で買うか悩んでたんですが、こっちを買って正解でした。
ポケモンGOが待ち遠しいですね!

開発合宿するために宿を調査

急遽、会社のみんなで開発合宿をやろうという流れになったのでいろいろと宿を探している状況でございます。

開発合宿にオススメ!旅館5選(Wi-Fiやモニタなど充実設備!) mitolab - 関東近辺の開発合宿に最適そうな宿10選 (2015年7月時点)

おんやど恵さんは開発合宿プランもやっていて第一候補
LAMPさんオシャレで楽しそうなところなんだけど長野ってのがなかなかハードル高め。

どこにしようかな。

socket.io 1.0 でいろいろ変更されてて大変だった

物凄く久しぶりに socket.io を使ってみたらいつのまにか 1.0 を迎えていたようで。 いろいろと互換性がなくなる変更があったようで、ちょっと古いコードを動かそうとしたら見事に怒られた。

まず socket#set, socket#get なんてメソッドないよって言われて混乱してたんだけど下記にようにやればいいらしい。

// 0.9 SET
socket.set('roomname', data, callback)
// 0.9 GET
socket.get('roomname', callback)

// 1.0 SET
socket.roomname = roomname;
// 1.0 GET
var roomname = socket.roomname;

あと io.sockets なんてないよって言われて困ったんだけど下記の通り。

// 0.9
io.sockets.socket(target).emit('message', message);
// 1.0
socket.to(socket.id).json.emit('message', message);

たぶんまだいっぱいハマりどころあると思うんだけど今のところこれぐらいしか困ってないのでわからない。

ScalaのList系メソッド・プロパティをPythonに移植してみた ListPlus.py

PythonのListってもう少し便利メソッドとかプロパティとか揃っててもよさそうなんだけど意外とそうでもなくて、そんなものなくても全然楽にやりたいことが実現できるからいままでこういうものが出てこなかったんだろうけど、なんというか「len() とか使うのもなんかなー」ってずっと思ってたので作ってみた。
#知らないだけで既にあるのかもしれない...

ListPlus.py: https://github.com/mshibata/listpluspy

ここの「2.2 リストの基本的なメソッド」に載ってるものは一通り実装したつもり。 http://bach.istc.kobe-u.ac.jp/lect/ProLang/org/scala-list.html

Scalaのドキュメント読みながら作っただけなので実際に同じ動作するのかよくわかってない。
Scalaについて調べてるとちょっと興味湧いてきたので今度使ってみようかな。

あと、「ここちげーよ」ってところがあれば教えてください。