2011年12月26日 星期一

筆記:[Using pdb++ in Django] 解決 AttributeError: UnixConsole instance has no attribute 'old_sigwinch'

在django的環境下使用 pdb++ 時可能會遭遇到一些問題以致出現某些訊息:
AttributeError: UnixConsole instance has no attribute 'old_sigwinch'
看一下debug的訊息可以發現有問題的地方常常是因為設定了中斷點如:
import pdb; pdb.set_trace()
簡單的解決方法可以改為使用原本的pdp module:(不過就喪失了使用pdb++的意義了...)
import pdb; pdb.pdb.set_trace()
或是去找看看最後觸發exception的部分是不是因為 pyrepl 下的unix_console.py
如果是的話可以參考這裡的 Issue 解決方法,簡言之就是:



  1. 將最後trace到的 unix_console.py 作一些修改
  2. 重新再跑一次吧!




--
話說其實Django的Debug資訊真的相當豐富
不過為了更了解Django的運作,還是會需要使用原生的pdb或是 pdb++ 這種好物



Update: (2013.3.7)
pyrepl 版本 0.8.4 以後已解決此問題!









2011年12月9日 星期五

分析:來談談訊息、地點、打卡與app (1)


在前文「Some LBS Apps: Vibe / AskLocal」當中提到了兩款app
而會提到這兩者的一個原因在於他們分別代表LBS應用的兩種方向:
1. 訊息與使用者所在的地點綁定
2. 訊息與使用者在乎的地點綁定




我試著用一個故事來談談訊息與地點的關係:
  1. 某A外出旅遊時在台北101的ZARA說了一句:「啊!大衣真帥。」隔壁的路人隨口回答他:「不然咧。」
  2. 接著,某A到了阪急百貨的UNIQLO逛逛並且打卡:「某A在阪急百貨說-->哇!想不到UNIQLO的羽絨衣也不錯。」
  3. 突然,某A發現他的手機不見了,懷疑可能是在逛ZARA時搞丟的,於是他立刻打電話到ZARA請櫃台幫忙廣播:「誰有找到一個紅白條紋相間的錢包?」
    現場大家都沒有找到。
    過了不久有人打電話到ZARA說買衣服的袋子好像拿錯了,有一個不知道是誰的錢包 ... ...
  4. 最後某A找到了他的錢包 。某A回到家後他在自己的部落格對朋友們發文:「我今天在台北101的ZARA搞丟了錢包,好險最後找到了」



在1.當中,某A的訊息內並沒有很明確完整的地理資料
但是當某A位於台北101說話時
由於隔壁的路人也在同一個地點所以他聽的到這段話
更甚者,他還能夠回覆這段話... ...
事實上,在真實世界中,這則訊息已經被綁定在某A當前的位置
該訊息有以下的屬性:
  • 時間能見度只存在於說話的當下
  • 範圍能見度只有說話者的周遭
  • 使用者並沒有刻意在訊息中強調自己的位置
許多LBS app都是修改了真實世界中這樣一則訊息的屬性
來讓使用者在另一個平台上透過訊息進行交流
如前文「Some LBS Apps: Vibe / AskLocal」所提的Vibe
藉由修改了一則訊息的時間能見度、空間能見度
(設定了訊息的存活時間、可見範圍)
讓平台上的使用者能夠彼此交換資訊、進行社交




對於2.的情境,我先來談談「打卡」這一件事情
嚴格點的打卡限制是這樣的:
當你想要打卡時,你必須在人真的在某一個地點周遭
如foursquare就對這一點做了該有的限制
打卡只有在使用手持裝置的情況下,能對當前位置附近的地點打卡
這樣的限制使得一則訊息維持了一些屬性:
  • 使用者刻意的在訊息中強調自己的位置
  • 使用者人真的就在那個位置(或附近)
簡單講,打卡可能能透過你使用的平台做到以下這些事情:
  • 告訴大家你人在哪裡?
  • 告訴大家這裡有些什麼?你在做什麼?... ...
  • 告訴自己你在這裡(紀錄自己的行蹤)
  • 幫助你得到更多積分... ...   :P
而平台上各地點累積的打卡次數就可以代表了一個地點的熱度
越多次數代表越多人去過並且願意宣稱他在那裡




3.的情境是這樣,某A已經離開了101的ZARA
不過由於他想知道自己的錢包是不是在那邊
所以透過了ZARA櫃台這樣的一個平台去傳遞一則訊息給位在ZARA的人
這一則訊息有以下的屬性:
  • 使用者人正在UNIQLO且沒有刻意強調自己的位置 <-- 對使用者來說這目前不重要
  • 使用者希望這一則訊息能夠透過ZARA的櫃台被廣播,空間能見度限制在ZARA

儘管當下接收到此訊息的人沒有找到錢包
不過最後發現錢包的人,透過了ZARA的櫃台這樣的一個平台
取得了有人遺失的訊息,並且物歸原主

在這一個情境當中,使用者的真實位置與他所發佈的訊息沒有很強大的關聯
對使用者來說,重要的是他希望關注某個區域的人們可以得到他的消息
進而互動
(備註:關注某地區的人可能人當下就在此地區或反之)

有一些LBS的app就使用了類似的概念
如前文「Some LBS Apps: Vibe / AskLocal」所提的AskLocal
就架構出了這樣的一個訊息分享平台



最後提到4.,某A在一般部落格所發表的訊息有以下屬性:

  • 使用者人在家且沒有刻意強調自己的位置
  • 這一則訊息沒有所謂的空間能見度,使用者希望這一則訊息的能見度是給朋友看到
  • 訊息內容為自己所發生的事情,提及了一個地點:「台北101的ZARA」

對一般的部落格平台,這樣的一個訊息就沒有強烈的與地點結合了





我用了一個硬湊出來的故事
簡要的分析了訊息與地點的關係
之後當你看到一個LBS的app以後
也可以去分析看看他是怎麼樣的一個app

: )





2011年12月7日 星期三

分析:Some LBS Apps: Vibe / AskLocal

在此簡單介紹兩個(有趣的?)LBS應用程式:




Vibe:  官網介紹 App 英文評論 香港新聞
AskLocal:  官網介紹 App 英文評論


用一句話形容 具地域性的匿名化廣播應用程式
在佔領華爾街的活動中被使用並且得到媒體的報導
用自己的位置去「撈」出周遭方圓的訊息其實還蠻有趣的
不過用戶的黏著性沒有說非常強,大都是建立在舉辦活動時
作者似乎也是這麼定位這個App


目前上去Vibe沒什麼新的資料
不過作者做出了另一個App AskLocal 想要達到不一樣的事情:


1.有了地圖的概念,使用者可以在地圖上移動觀看各地的訊息
2.讓人們可以決定一個訊息的能見度是在哪個區域範圍內,甚至回覆的能見度
(Ex:我可以丟一個訊息在台北101,限定只有方圓10km可見,然後在限定只有方圓100m可以回覆)
3.對訊息有了分類:event, service, thought,work,place,question ...
-->在地圖上可以看到不同的圖示
4.雖然仍維持匿名的機制,但是一個匿名者與匿名訊息是有綁定的
-->我看到某則訊息後,我可以點匿名者的圖示,再看到該匿名者有說過哪些訊息
    (也可以選擇不要公開歷史訊息)
5.被reply後的通知 ... ...


實際去玩兩則App,在台灣都沒幾則訊息,如果你上去玩玩
可能還會看到我發的測試訊息(但是你應該不會知道哪則是我發的XDDD)


對前者Vibe而言,在有特定活動時的背景下,能夠看到這些訊息還挺有趣的
nobody but real,你不用在乎他是誰,你只要知道他人就在你的周遭就好
你只要知道他在講什麼就好
少了registration 或是 login ,就是帶來了很流暢的使用經驗


而後者AskLocal很有野心
到處去走的感覺很暢快,App的名字說出了使用這個玩意的一個情境:去當地問問題
在AskLocal上的訊息雖然失去了綁定匿名者真實位置的特性
但是卻在地圖上提供了show出people的功能,能夠知道有哪些人在地圖上
(似乎不是Online而且沒有其他互動的方式...囧rz)


總言之,Vibe是真實的LBS app
AskLocal則透過訊息投射在某個使用者預期的Location以讓大家互動(虛擬的)


這兩個App目前都處於很萎靡不振的狀態
可能都是舉辦佔領XXX活動時才會熱絡#1
但是匿名式的社交方式,已經透過其他熱門的App讓大家感受到該魔力了


#1 FB-AskLocal 從這裡可以知道這兩個App大多數的使用情境是設定給佔領XXX活動使用的