Opaque or Transparent Data Type in a Rust Library

This post is synchronized with my gist file. To develop a Rust library that will be used for the external code, the data may be interoperable or non-interoperable. The interoperable data is a data whose underlying memory layout is known and their values can be modified directly by the external code. On the contrary, the non-interoperable data is a data whose underlying memory layout is unknown so their values cannot be changed directly. The underlying values can only be changed when they provide related APIs to do that. …

Audio 5.1

Audio 5.1

Introduction for Audio 5.1 Audio five-point one is a common surround sound layouted in home theater. It has totally six channels: five speakers and a subwoofer and this is where...…

Poor Students Are Missing at Top Universities

台大真不是窮人可以來讀的學校?

雖然沒念過台大,但看到ptt上熱烈討論的「台大是不是窮人可以來唸的學校」也別有感觸。 雖然自己原生家庭並非清寒,但我也體會過跟其他出生在高級家庭的人(家裡有錢父母至少有大學學歷)的差距。

Running Average

Preventing overflow is essential while calculating the average of a long series of data. One simplest method to avoid the problem is running average (or moving average, rolling average, incremental...…