想在 Android 寫 Python? Perl?, ASE 可以滿足此需求, ASE 支援 Python, Lua, Perl, JRuby, BeanShell, Tcl 等程式語言.
作者: Tsung
Android 關閉通知音效
Android 會突然發出個聲音, 來通知說有新信 ... 等等的訊息.
不過, 我的使用有遇到下述幾種狀況:
- 通知聲音 很難聽 (可以換聲音, 但是我懶得去試哪個聲音好聽)
- 信件太多, 如果每次叫都去看, 會叫個不停
- 通常信件都不是急件, 不需要即時通知 (急件都直接打電話了)
Memcached 預設 單筆資料儲存最大容量為 1M
Memcached 是業界非常常用到的 cache system, 儲存格式是 key-value.
官方網站: Memcached: Free & open source, high-performance, distributed memory object caching system.
註:查看設定可用:$ echo "stats settings" | nc localhost 11211 # 看目前在跑得設定值
但是 Memcached 要知道的兩點:
- Ram 要夠大, 因為 Memcached 的資料都塞在 Ram 裡面, Ram 不夠大, 新的資料就寫不進去.
- Memcached 預設 單筆 資料儲存最大容量是 1M byte, 詳見 FAQ. (下述轉載此問題的問答)
Q: What is the maximum data size you can store? (1 megabyte)
- The maximum size of a value you can store in memcached is 1 megabyte. If your data is larger, consider clientside compression or splitting the value up into multiple keys.
為何是 1M, 是否可以增加, FAQ 也有答案:
- Memcached 最小值是 400 bytes, 最大值是 1M byte.
- 如果要超過 1M 也可以, 只是需要重新 compile memcached, 並且去修改 POWER_BLOCK 的值 或 使用 inefficient malloc/free 當 backend.
下述轉載此問題的問答:
Q: Why are items limited to 1 megabyte in size?
- Ahh, this is a popular question!
- Short answer: Because of how the memory allocator's algorithm works.
- Long answer: Memcached's memory storage engine (which will be pluggable/adjusted in the future...), uses a slabs approach to memory management. Memory is broken up into slabs chunks of varying sizes, starting at a minimum number and ascending by a factorial up to the largest possible value.
- Say the minimum value is 400 bytes, and the maximum value is 1 megabyte, and the factorial is 1.20:
- slab 1 - 400 bytes slab 2 - 480 bytes slab 3 - 576 bytes ... etc.
- The larger the slab, the more of a gap there is between it and the previous slab. So the larger the maximum value the less efficient the memory storage is. Memcached also has to pre-allocate some memory for every slab that exists, so setting a smaller factorial with a larger max value will require even more overhead.
- There're other reason why you wouldn't want to do that... If we're talking about a web page and you're attempting to store/load values that large, you're probably doing something wrong. At that size it'll take a noticeable amount of time to load and unpack the data structure into memory, and your site will likely not perform very well.
- If you really do want to store items larger than 1MB, you can recompile memcached with an edited slabs.c:POWER_BLOCK value, or use the inefficient malloc/free backend. Other suggestions include a database, MogileFS, etc.
註:2015/8 更新:Memcached 可以用 -I 5m 調整最大值。-I 5m 就是設定最大可以塞 5M 的資料。
相關網頁
破解千古謎題 - 先有雞才有蛋
CSS3 PIE - 讓 IE 支援 CSS3 的圓角、陰影、漸層等變化
CSS3 的特性讓開發者都很方便, 可以省去很多沒用的 HTML, 也可以省掉不少切圖的工.
問題是, 現在最多人使用的瀏覽器(IE6~IE8)都還不支援 CSS3. 詳見: CSS Compatibility and Internet Explorer
註: IE8 部份支援 CSS3
YouTube 影片的截圖位置
YouTube 的影片播放前, 都會有影片內容中的截圖, 那這些圖片要怎麼抓到呢?
Linux 使用 date 計算時間(昨天、明天)
Linux 的 date 指令, 要如何取前一天, 後一天, 前一小時... 等等的時間呢?
手機訊號意義 與 天線設計
iPhone 4 發生的問題, 手機收訊不良, 訊號格數計算錯誤等等, 由此被大幅報導, 也由這些新聞學到不少知識.
Debian Linux 網路卡出現 freeing mc frame 修復
Debian Linux 的 eth1 突然無法連線, 看到非常多下述的錯誤訊息.
- $ less messages
Jul 8 16:07:14 www kernel: [6733983.495791] eth1: Transmit timed out: status 0050 0c00 at 171340519/171340579 command 00000000.
Jul 8 16:09:08 www kernel: [6734104.356349] NETDEV WATCHDOG: eth1: transmit timed out
Jul 8 16:09:08 www kernel: [6734104.356358] eth1: Transmit timed out: status 0050 0c00 at 171340582/171340642 command 00000000.
Jul 8 16:11:02 www kernel: [6734224.820435] NETDEV WATCHDOG: eth1: transmit timed out -
$ less syslog
Jul 9 01:08:40 www kernel: [ 302.391087] eth1: freeing mc frame.
Jul 9 01:08:40 www kernel: [ 302.391089] eth1: freeing mc frame.
使用 AWK 計算加總並算出平均值
常常會遇到一個檔案內容都是數字, 一個數字一行, 要加總, 然後要算出平均值, 要怎麼做呢?