這之後應該會變成 Python community 的神器之一...
剛剛看到分析 Python 程式效率的工具，只要有 pid 或是直接包著跑就可以分析：「Py-Spy: A sampling profiler for Python programs.」，執行起來長這樣：
在 FAQ 的地方也有提到作者開發這套軟體的原因。有些在開發環境根本看不出問題的，可以很快的透過這個工具在 production 上看：
This project aims to let you profile and debug any running Python program, even if the program is serving production traffic.
另外一個重點在於其他常見的 profiling 工具通常都要改程式引用進來使用，這通常會使得程式效率慢下來，而 Pyflame 支援的平台比較少：
While there are many other python profiling projects, almost all of them require modifying the profiled program in some way. Usually, the profiling code runs inside of the target python process, which will slow down and change how the program operates. This means it's not generally safe to use these profilers for debugging issues in production services since they will usually have a noticeable impact on performance. The only other Python profiler that runs totally in a separate process is pyflame, which profiles remote python processes by using the ptrace system call. While pyflame is a great project, it doesn't support Python 3.7 yet and doesn't work on OSX or Windows.
Unroll 在旁邊燒的時候 (參考 Uber 戰火蔓延到 Unroll)，Bose 也不甘寂寞決定跟上科技業的潮流：「Bose headphones spy on listeners: lawsuit」。
Bose 直接將他們 app 收集到的資訊拿出來賣：
Bose Corp spies on its wireless headphone customers by using an app that tracks the music, podcasts and other audio they listen to, and violates their privacy rights by selling the information without permission, a lawsuit charged.
這次打算控告的產品包括這些 (這邊提到的 Zak 是原告)：
Zak is seeking millions of dollars of damages for buyers of headphones and speakers, including QuietComfort 35, QuietControl 30, SoundLink Around-Ear Wireless Headphones II, SoundLink Color II, SoundSport Wireless and SoundSport Pulse Wireless.
The case is Zak v Bose Corp, U.S. District Court, Northern District of Illinois, No. 17-02928.
不需要任何外掛或 exploit，就純粹是利用 cache 反應時間的 side-channel attack。另外由於 AMD 的 cache 架構不同，這次的攻擊實作僅對 Intel 有效：
The Intel cache micro-architecture isinclusive– all elements in the L1 cache must also exist in the L2 and L3 caches. Conversely, if a memory element is evicted fromthe L3 cache, it is also immediately evicted from the L2 and L1 cache. It should be noted that the AMD cachemicro-architecture is exclusive, and thus the attacks described in this report are not immediately applicable tothat platform.