Collection for Y2016W39 (2016-09-26 Mon 00:00:00 +0800 ~ 2016-10-03 Mon 00:00:00 +0800)
gcp
- Google Cloud Platform Blog: Bringing Pokémon GO to life on Google Cloud
- 不是技術文,算是有點推銷自家 GCP 的概念吧,就「你們玩的 Pokémon GO 背後用的可是我們家的服務喔」的感覺。
github
- Rebase and merge pull requests
- GitHub 把 Rebase 這個選項加到 Merge Pull Request 裏面了
- 除了原本預設的
--no-ff
merge 之外,還多了個 squash and merge 跟 rebase and merge 的選項 - 算是給覺得 merge 一堆 branch 會把 base branch 的 graph 搞得很亂的而喜歡用 rebase 把 branch 扁平化的那派人有個選項吧
- 不過我個人覺得 rebase 會把 base branch 搞的很散亂,個人是習慣在 merge 到 base branch 之前,如果有需要的話,自己先 rebase 整理一下,發 PR merge 到 base branch 還是習慣用預設的 merge,比較容易一目了然這個 branch 到底做了哪些事,可能是因為我目前碰的 repo 的規模都不夠大吧? branch 太多的話,這個方法應該是真的會看到很亂的一堆 branches
linux
- LCTT/TranslateProject: Linux 中國翻譯項目
- 中國一群人發起的專門翻譯跟 Linux 相關文章的小組
- 裏面蒐集了許多不錯的文章
- Linux.中国-开源社区
- 最近在用的 Arch Linux 筆電遇到的問題
- 14.10 - kidle_inject causing very high load - Ask Ubuntu
- 14.04 - kidle_inject uses cpu power without apparent reason - Ask Ubuntu
- 看來是
intel_powerclamp
這個 kernel module 的問題 - 用
sudo rmmod intel_powerclamp
把它暫時先拔掉有解決這問題 - 拿掉以後耗電也沒特別快,所以應該還行啦。
- 順便記一下
intel_powerclamp
這個 driver 的文件網址,畢竟有稍微看了一下。
- 看來是
- Linux tail 遇到 file rotate 要如何持續追蹤讀取
- 原來用
tail -F
比tail -f
好呀 tail -F
在遇到 log file rotation 的時候仍然可以持續追蹤,但tail -f
就不會了。
- 原來用
- How to Crash Systemd in One Tweet
The following command, when run as any user, will crash systemd:
NOTIFY_SOCKET=/run/systemd/notify systemd-notify ""
- 這篇解釋文章解釋了為何會造成這樣的原因:
The bug is remarkably banal. The above systemd-notify command sends a zero-length message to the world-accessible UNIX domain socket located at /run/systemd/notify. PID 1 receives the message and fails an assertion that the message length is greater than zero. Despite the banality, the bug is serious, as it allows any local user to trivially perform a denial-of-service attack against a critical system component.
- 這篇解釋文章解釋了為何會造成這樣的原因:
mysql, gae
- MySQLdb, Python raw query and customized ORDER BY - Stack Overflow
- 沒記錯的話是用 MySQL-python 1.2.5 : Python Package Index 遇到的問題
- 就是
cursor.execute(comamnd, params)
在遇到ORDER BY
的時候,把參數放在params
會有問題。cursor.execute()
的用法是這樣:command = "SELECT * FROM table ORDER BY %s %s"
params = ['avg', 'DESC']
- 要直接把
params
寫死在command
裏面,就沒問題。- 像這樣
command = "SELECT * FROM table ORDER BY %s %s" % ('avg', 'DESC')
,然後params
直接留空。 - 也就是說
execute()
在把params
代換到command
的時候是有問題的。
- 像這樣
- 因為 Google App Engine Standard Environment 上,預設裝的 MySQLdb package (在
app.yaml
的libraires:
設定的)就是這個已經在 2014 年就停止更新的 package.- https://pypi.python.org/pypi/MySQL-python
- https://github.com/farcepest/MySQLdb1
- 然後這個 repo 只有支援 Python 2,而且又停止更新,所以後來就有人 fork 出來並加上了 Python 3 和 pypy 的 support.
- https://pypi.python.org/pypi/mysqlclient
- https://github.com/PyMySQL/mysqlclient-python
- 所以如果是用 Python 3 寫 Django 又用 MySQL db 的話,現在都會建議裝這個。
pip install mysqlclient
programmer
- 自學寫程式不到三年,24歲的他靠「求職天眼通」一戰成名-求職|政大|求職天眼通|古宗禎|資訊不對稱-風傳媒-數位時代
- 原來年紀跟我一樣啊... 看看人家再看看我自己 真的要好好加油了 QQ
python
- Pyflame: Uber Engineering's Ptracing Profiler for Python - Uber Engineering
- uber/pyflame: Python flame graph tool.
- Uber 出的 Python Profiler,好像不錯,之後有機會可以拿來用用看。
- 为程序员服务
- 今天被這篇拯救了
- 要在 python 的
json
module 顯示中文的話,必須要開啟這個選項 ensure_ascii=False
- 否則預設只會看到中文被轉成 unicode
- Python 2 的中文問題對我來說始終是個難題
Share
Donation
如果覺得這篇文章對你有幫助, 除了留言讓我知道外, 或許也可以考慮請我喝杯咖啡, 不論金額多寡我都會非常感激且能鼓勵我繼續寫出對你有幫助的文章。
If this blog post happens to be helpful to you, besides of leaving a reply, you may consider buy me a cup of coffee to support me. It would help me write more articles helpful to you in the future and I would really appreciate it.