Twitter 利用 Human Computation 改善搜尋結果(Amazon's Mechanical Turk)
史馥銘先生演講 - 個資(Personal data)與巨資(Big Data)的Privacy新挑戰 - 從手機感測資訊之應用談起
- 在美國管理 Privacy 的 issue 是由公平交委員會(FTC)所管理。
- 現在許多 mobile app 上的宣告,其實和使用者所認知會給予出去的東西有所差異。
- 當我們在和使用者索取某些 data 時,不應該僅僅作字面上的描述,應該要告知他,取得此 data 後,延伸可能會造成的 issue。
- 比如說:當某個 app 向使用者索取 gps 的 data,就必須要告知,我們可能可以知道未來您的工作地點、住家 ... 等等資訊(以上透過 data mining 很容易找出 pattern)。
- 某些 mobile app 其實會向你 acquire 很多 data ,但是當你在安裝的時候,很容易就輕易的 accept,不知不覺間,data 就被會 collect 了。
- 某個知名的遊戲 app ,其實不斷的在 collect 你的 gps location,而且是 free version 的才蒐集,付費的就不蒐集了。其實這些也算是該 app 的 businss model,這些 data 是可以賣錢的。
- Big data 不必然是 good data。
- 顧客越來越聰明,當你竭盡所能的想要蒐集使用者的 data 時,使用者也可能給你假的 data。
【轉】在熟練使用2B鉛筆前,請不要打開Axure
- 當需求範圍已經相對清晰時,請先拿起筆,把產品的藍圖畫出來。通常對一個網站而言,你需要構建一副整體信息架構藍圖,也就是網站的主要網頁和層級關聯。記住,只有當你相信自己用2B鉛筆畫的信息架構草圖是大家想要的,否則不要着急用工具進行美化。
- 用鉛筆勾勒藍圖或流程,目的是提高溝通的效率。拿起2B鉛筆,用10分鐘將頭腦風暴或範圍討論后的思路花在紙上,儘快與BOSS或團隊成員確認,是結構層最重要的事情,沒有唯一。
- 我見過太多的產品人員,包括我自己也曾經常犯類似的錯誤:妄圖一開始就使用電腦輔助設計程序,優美的將信息架構或流程圖畫出來。甚至跳過這一步,直接使用Axure話線框圖。這個錯誤的可怕之處在於:你搞得自己很忙很苦逼,結果做出來的是無法得到認同的垃圾。 更可怕的是,在面對你看似完美的圖標或線框圖時,BOSS被你忽悠住了,然後你們投入了整個團隊的開發資源,用了幾個月開發了一堆垃圾出來。
- 記住,需求被砍掉不是恥辱,做垃圾浪費資源才是最大的恥辱。
在需求確認之前,永遠要作的事情就是:確認需求!確認需求!確認需求!
Ubuntu crontab 記錄
- crontab -e:進入設定的檔案中,所有被寫在這個檔案裡面的每一行代表一項工作。
- crontab -l:檢視目前 crontab 的設定
- crontab -r:移除目前的 crontab 設定
而 crontab 的格式為:
- 分 時 日 月 週 指令
查詢 MySQL table size 語法
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
SELECT concat(table_schema,'.',table_name), | |
concat(round(table_rows/1000000,2),'M') rows, | |
concat(round(data_length/(1024*1024),2),'M') DATA, | |
concat(round(index_length/(1024*1024),2),'M') idx, | |
concat(round((data_length+index_length)/(1024*1024),2),'M') total_size, | |
round(index_length/data_length,2) idxfrac | |
FROM information_schema.TABLES | |
ORDER BY data_length+index_length DESC LIMIT 20; |
利用 python update 資料庫欄位,跳脫字元的方式 (escape string)
What is the best escape character strategy for Python/MySQL combo?
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import MySQLdb | |
column = str(MySQLdb.escape_string(row[1])) | |
query = "update myTable set %(column)s = %%s where ID = %%s" % dict(column = column) | |
cursor2.execute(query, [row[3], row[0]]) |
- row[1] 指的是 column name
- row[3] 指的是要 insert 的 data
- row[0] 指的是 where 條件式域比對的限制條件
比對一下原始的 sql 就很清楚了:
cursor2.execute("update myTable set `"+ str(row[1]) +"` = \"'" + str(row[3]) +"'\" where ID = '"+str(row[0])+"'")