2007/09/30

[Programming] libjingle

libjingle 裡面有幾個範例蠻好用的,像是 call 可以拿來打 gtalk 的語音。
pcp 可以傳送檔案。

雖然不算是很完整的功能,不過至少現在 pidgin 都沒辦法傳送檔案的時候,拿這個來傳也不賴。

另外晚上拿 pcp 改了一個雛型出來,希望可以取代 gtalkbot 的一部份,讓這個東西重新回到線上。

UPDATE:
pidgin 傳送檔案的方式不一樣,所以會變成:
error code="501" type="cancel"
feature-not-implemented xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"


嗯…總而言之,得想辦法。
(好像改 pidgin 會比較好?)

2007/09/27

[軟體] 做壞事是科技進步最大的原動力

(17:50:21) anton: 嗯 我想玩 gtalk 的服務啊~
(17:50:44) anton: 因為覺得 msn protocol 封閉的,所以不好改 不好看 不好查。
(17:51:08) anton: gtalk 用的是 XMPP/jabber ,這個是開放的協定,所以很好查。
(17:51:40) anton: 就是拿它來做一些簡單的應用,像是你傳一個訊息過去:
給我林志玲的照片
(17:51:56) anton: 然後它就給你一張林志玲的照片,這樣。
(17:52:33) anton: 我覺得這種服務,有最大的洞,就是只有 google 才知道你從哪個 ip 位置上來。
(17:52:57) anton: 且因為是 gtalk ,所以可以加上 proxy ,就更難防。
(17:53:25) anton: 這種 file sharing 的服務,很容易鑽到法律的漏洞。
(17:53:47) anton: 又是 1對1的情況 ,所以連有沒有「公開」這件事情都很難查。
(17:54:05) anton: (做壞事,永遠是最大的原動力。)

[Programming] libjingle

由於 class.jabber.php 有些問題不明確,所以興起了改用 libjingle 的想法。只是沒想到官網上的 tarball 也有些已知問題沒有解決。幸好在討論區裡面有一位 Brad 把問題說了個大概
簡單的說就是 patch 一下就好:
Index: talk/base/stringutils.h
===================================================================
--- talk/base/stringutils.h (revision 7)
+++ talk/base/stringutils.h (working copy)
@@ -269,7 +269,8 @@
template<>
struct Traits {
typedef std::string string;
- inline static const char* Traits::empty_str() { return ""; }
+ // inline static const char* Traits::empty_str() { return ""; }
+ inline static const char* empty_str() { return ""; }
};

///////////////////////////////////////////////////////////////////////////////
Index: talk/base/base64.h
===================================================================
--- talk/base/base64.h (revision 7)
+++ talk/base/base64.h (working copy)
@@ -23,8 +23,8 @@
static std::string decode(const std::string & data);
static std::string encodeFromArray(const char * data, size_t len);
private:
- static const std::string Base64::Base64Table;
- static const std::string::size_type Base64::DecodeTable[];
+ static const std::string Base64Table;
+ static const std::string::size_type DecodeTable[];
};

} // namespace talk_base
Index: talk/base/unixfilesystem.cc
===================================================================
--- talk/base/unixfilesystem.cc (revision 7)
+++ talk/base/unixfilesystem.cc (working copy)
@@ -111,6 +111,7 @@
if (create)
CreateFolder(pathname);
}
+ return true;
}

std::string UnixFilesystem::TempFilenameI(const Pathname &dir, const std::string &prefix) {
Index: talk/xmpp/xmppclient.h
===================================================================
--- talk/xmpp/xmppclient.h (revision 7)
+++ talk/xmpp/xmppclient.h (working copy)
@@ -138,7 +138,7 @@
}
}

- std::string XmppClient::GetStateName(int state) const {
+ std::string GetStateName(int state) const {
switch (state) {
case STATE_PRE_XMPP_LOGIN: return "PRE_XMPP_LOGIN";
case STATE_START_XMPP_LOGIN: return "START_XMPP_LOGIN";
Index: talk/p2p/base/sessionmanager.h
===================================================================
--- talk/p2p/base/sessionmanager.h (revision 7)
+++ talk/p2p/base/sessionmanager.h (working copy)
@@ -156,7 +156,7 @@

// Creates and returns an error message from the given components. The
// caller is responsible for deleting this.
- buzz::XmlElement* SessionManager::CreateErrorMessage(
+ buzz::XmlElement* CreateErrorMessage(
const buzz::XmlElement* stanza,
const buzz::QName& name,
const std::string& type,


晚點 compile 沒問題的話,再來實做 libjingle 的可能性。

// 再註: libortp 要用 0.7.1 的版本才行。
// 只能用這個版本的。

2007/09/26

[Linux][WM] Fvwm-crystal 修改

Fvwm-crystal 我不介紹了,這個應該大家都知道很好用。截圖可以看一下這邊官網的截圖,簡單一句話,就是美啊~

不過呢,今天要來做筆記的是:快速鍵

除了 CTRL/ALT + F4~F12 被我改掉 (我只留下前三個 workspace)之外
ALT+F4 被我改回去用成 Close (關閉 AP)
還要加上 CTRL+ALT+t 給了 gnome-terminal
CTRL+ALT+d 給了所有 AP 縮到 Desktop
key d A CM All (!Fvwm* !panel !Xmms*) Iconify
CTRL+ALT+k 給了 xscreensaver-command -lock
CTRL+△/▽ 給了調整音量 (自已寫的 vol 調整程式)
右下角的 ACPI-Bat 改成了 desktop 的圖式,這樣點擊的時候,就會變成 all iconify 。
之外

fvwm-crystal 的預設快速鍵為:

Key minus A $[Mod1] Raise
Key minus A $[Mod2] Lower
Key equal A $[Mod1] Maximize
Key equal A $[Mod2] Fullscreen
Key BackSpace A $[Mod1] Window-Iconify
Key BackSpace A $[Mod2] Close

Mouse 1 T $[Mod] Window-Raise-RaiseMove
Mouse 2 T $[Mod] Window-Shade-Resize
Mouse 3 T $[Mod] Window-Lower-Move

Mouse 1 WT $[Mod1] Window-Raise-RaiseMove
Mouse 1 WT $[Mod1]2 Window-Raise-RaiseMove
Mouse 2 WT $[Mod1] Window-Resize-Opaque SE
Mouse 2 WT $[Mod1]2 Window-Resize-Opaque SE
Mouse 3 WT $[Mod1] Window-Lower-Move
Mouse 3 WT $[Mod1]2 Window-Lower-Move


這裡可以看得到我修改過後的 script 。

2007/09/21

[Blogger][初學者] 最新回應的使用方法

工具在這裡: http://jinyaolin.blogspot.com/2007/08/blogger8242007.html



把自已的資料填一填之後,按下產生 (Generate) 就會跑一堆 script 在底下出來。
把那些 script 全選,複製,貼到:


圖上的 HTML/Script 的元素裡面就可以。如果沒有可以自已在上面"加入網頁元素" 點下去,選 HTML/Script 的元素就可以了。

2007/09/12

[Google] YouTube 影片下載

Youtube 最近有改了版的樣子,所以一些網站像 VideoDownloader 都不能用了。不過還好 PTT 上面的 jwg2 網友提供了:
flvretriever這個好地方。

簡單的說,你只需把 youtube 的網址丟進去,就可以得到你想要的 flv 下載。

我選用這個網站的原因,當然也是因為它提供了(書籤式)的一鍵下載

你可以把它提供的
javascript:(function(){window.open('http://kej.tw/flvretriever/bookmarklet.php?videoUrl='+encodeURIComponent(location.href)+'&autostart=yes','gootube', 'toolbar=0, location=0, directories=0, status=0, menubar=0, scrollbars=0, resizable=1, width=650, height=320')})();
這串加到你的書籤裡面,在 Youtube 瀏覽的同時看到想要抓下來的影片,就來點擊這個書籤,就可以順利取得 flv 的影片檔案。

另外 split 也提供了一些資訊:
vixy.net和medaiconvert.com也都還不能使用..

不過Movavi和Zamzar倒是運作正常..

你可以試試看用這兩個網站幫你抓(還可以順便轉檔唷!):

Movavi:
http://online.movavi.com/

Zamzar:
http://www.zamzar.com/url/

2007/09/08

[軟體] firefox forecast 繁體中文版

firefox 的 forecast 套件沒有繁中的翻譯,姑且不討論為什麼以前有,現在沒有,是什麼緣故,不過好心的網友 Polarman 倒是為我們重新製作了 forecast 的繁體中文版,讓我們不必忍受簡中版的翻譯。

當然,這篇不是新聞,我只是發現 google 還不是很好找,所以加點 pagerank 的分數而已。

有安裝 Forecastfox 這個 add-ons 的人,最近可能和我一樣煩腦,
因為最新版0.9.5.2 不含繁體中文版,只能用舊版,或是忍受簡體中文版,
為了解決這個問題,花了幾個晚上,參考之前的版本,
試著翻譯 Forecastfox 0.9.5.2的繁體中文版 ,
總算完成了,

http://tinyurl.com/2xv7co

大家試用看看...

好像無法上傳xpi檔, 所以放在其他地方,
初來乍到,如有違版規,請告知,會立刻更正...

2007/09/04

[Linux][Vim] vimrc 設定介紹

vim 是我在 linux 上面唯一習慣使用的文字編輯器。有時會用上 leadpad/gedit 來輔助,不過那通常是因為 copy/paste 的機制在 Xwindow 底下還常常會混亂的緣故,並不是 vim 的問題。

不過最近遇上了一個問題,是 vim 在開 phtml 的時候常常會發生斷 tag 有問題的情況。這點對我來說很困擾。我的 phtml 基本上都跟 php 是一樣的內容,只不過 php 通常是 action script , phtml 通常是靜態的 html + 部份可以更動的 php script。

看了 GD's Blog 上這篇文章之後,就知道怎麼解決我的問題了。
au BufRead *.phtml set filetype=php

簡單的說,這個解決可以不用動到 vim 的 syntax 設定,影響的範園也只會在使用者的部份,感覺還蠻不錯的。
順便一提,我用的 colorscheme 是 elflord ,這比 desert 要順眼一點。

[Windows] git-bash 底下的工具

因為工作轉到 Windows 平台上的關係,所以很多工具改到 Windows 上面運作,跟著在 TortoiseGit 底下使用 git-bash 來維護自己的專案原始碼。結果就是裝了前面提過的 auto-hotkey 使用熱鍵來提昇自己的平台操作速度; 但除了 hotkey...