2014年1月5日 星期日

RC 充電電路

直流電源 V 經過電阻 R 歐姆對電容 C 安培充電。
  • vC: C 的電壓。
  • vR: R 兩端的電壓。

公式:
vR = R⋅i (歐姆定律,單位分別為伏特、歐姆、安培)
電容的電荷量 q = C⋅vC (單位分別為庫倫、法拉、伏特),對時間微分為電流,
i = dq= CdvC
----------
dtdt

算法一:
V = vR + vC = R⋅i + q
---
C
  = R dq+ q
-------
dtC
可解出 q = -CVe-t/RC + CV
vC = q/C = -Ve-t/RC + V = V(1-e-t/RC)

算法二:
V = vR + vC

i = vR=V-vC= CdvC
-----------------
RRdt
可解出 vC = -Ve-t/RC + V = V(1-e-t/RC)


當時間為
  • RC/2 秒時,vC(RC/2) = V(1-e-1/2) = V(1-0.61) = 0.39V。
  • RC 秒時,vC(RC) = V(1-e-1) = V(1-0.37) = 0.63V。如範例,在 RC = 100K Ω ⋅ 1 µF = 0.1 秒的時候,電壓達到約 1V 電源的 0.63 = 0.63V。
  • 1.1 RC 秒時,vC(RC) = V(1-e-1.1) = V(1-0.33) = 0.67V,大約是電源的 2/3。
公式可轉換成時間 t = -RC⋅ln(1-vC/V),除了 RC 外,只跟跟電源電壓的比例有關。

參考:

2014年1月3日 星期五

Lubuntu 13.10 autostart

autostart 設定檔是 ~/.config/lxsession/Lubuntu/autostart,每行可放一個指令,於 session 開始時執行 (註:此檔並不是 shell script),「@」開頭表示掛掉會自動重新執行。

~/.config/autostart/ 等 autostart 目錄的 *.desktop 預設沒有作用,需設定「偏好設定」→「Default application for LXSession」(也就是 lxsession-default-apps)→「Autostart」→「Disable autostarted application ?」或編輯 ~/.config/lxsession/Lubuntu/desktop.conf 的 disable_autostart= 為 no 才有作用,但這樣設會造成問題,例如 nm-applet 會執行兩次。

參考:
  1. LXSession
  2. https://lists.ubuntu.com/archives/lubuntu-users/2013-November/006185.html
相關文章:
  1. Lubuntu 13.10 安裝與使用

2013年12月14日 星期六

skype 安裝使用

2023/07/19 Lubuntu 20.04.5:skype 網站下載 skypeforlinux-64.deb 後 sudo dpkg -i ~/Downloads/skypeforlinux-64.deb。

Ubuntu 12.04 以後的版本,不管是 32 位元或是 64 位元都下載 Skype 版本 Ubuntu 12.04 (multiarch),然後

sudo dpkg -i skype-ubuntu*.deb # 會因相依性關係而安裝失敗
sudo apt-get -f install # 實際安裝
另外還有 dynamic 版本,解開後執行裡面的 skype,出現錯誤:「 ./skype: error while loading shared libraries: libQtWebKit.so.4: cannot open shared object file: No such file or directory」,安裝 libqtwebkit4
sudo apt-get install libqtwebkit4
再執行 skype 就可以了

設定:
  • 關閉「啟用事件」:待處理項目→不勾選下列的「啟用事件」
    • Skype 登入
    • Skype 登出
    • 聯絡人已經上線
    • 聯絡人已經離線
  • 關閉「Skype WiFI」:進階→啟用 Skype WiFi
使用
參考:
  1. 在 Ubuntu Linux 中安裝 Skype 4.2 版
  2. http://lxlinux.com/#10
延伸閱讀:
  1. MultiArch
  2. Skype for Linux 4.2
相關文章  
  1. Lubuntu 13.10 安裝與使用

2013年12月13日 星期五

inline

行內函數、內聯函數

就軟體工程觀點,使用函數是很好的作法,但多了函數呼叫來回的額外負擔,特別是小的、經常呼叫的函數。將函數 qualifier 為 inline 可節省呼叫的額外負擔。
  • 空間換取時間 -- 函數程式碼會複製多份,可能使得程式變大了。
  • 如果 inline 函數的參數有常數,編譯時可以加以簡化,所以未必包含整個 inline 函數的程式碼。
  • 只是建議編譯器 inline 處理,未必採納,編譯器保有最終決定權。
    • 比較:static inline 強迫編譯器 inline 處理
    • GCC -Winline 提供 inline 函數失敗的原因
  • 只需要定義於表頭檔
  • inline 的函數改變時,使用它的程式都需要重新編譯。
  • 告訴 GCC 嘗試 inline 所有夠簡單的函數:-finline-functions

跟 #define (巨集) 比較
  • 巨集不能將 C++ 非 public 變數傳出去
  • 兩者結果有時不同。巨集像是字串取代,inline 像是函數
  • 巨集在行數多時不易理解
  • 題外話:#define function(x) do{...}while(0) /* 避掉 ; 問題 */


參考:
  1. http://blog.yam.com/swwuyam/article/11745212
  2. GCC: An Inline Function is As Fast As a Macro

git stash 暫存異動

stash 是「藏起來」的意思
用法很簡單

暫存異動
git stash
取出暫存的異動
git stash pop

查看
git stash list

參考:
[Git]使用git stash暫存有異動的部分

延伸閱讀:
http://blog.wu-boy.com/2013/08/git-rebase-stash-tip/

2013年12月6日 星期五

Lubuntu 雙螢幕延伸桌面設定

Lubuntu 使用 LXDE 桌面環境,使用的螢幕設定程式 LXRandR 只是一個很陽春的xrandr 前端,只能讓雙螢幕複製顯示,不能設延伸桌面。外接 VGA 投影機時,不但無法使用 LibreOffice Impress 雙螢幕環境簡報播放的效果,且顯示的長寬比不同,造成部份畫面會被切割不見的問題。

參考《LXDE and multiple screens: replacing lxrandr with a script》,只要執行
xrandr --output VGA1 --auto --right-of LVDS1
就可以自動偵測 VGA1 有無外接及解析度來開關雙螢幕延伸桌面。執行
xrandr --output VGA1 --off
強制關閉。

整合到 Fn+F7
  • 編輯 ~/.config/openbox/lubuntu-rc.xml,例如在 <keybind key="XF86AudioRaiseVolume"> 之前新增
        <!-- Keybinding for display switch -->
        <keybind key="XF86Display">
            <action name="Execute">
                <command>xrandr --output VGA1 --auto --right-of LVDS1</command>
            </action>
        </keybind>
    重新登入
已知問題:工作列跟著延伸到延伸桌面,造成右側的關機、時鐘、網路、輸入法、音量等項目只顯示在外接螢幕
  • 我使用簡單的解法,由於我的筆電螢幕解析度是 1366 x 768,將工作列的寬度設為固定 1366 像素就可以將工作列限制在筆電螢幕。
  • 設定方式:工具列右鍵→設定工具列→大小及位置→寬度:1366 像素 
  • 問題:點選時鐘顯示的月曆仍會跑到外接螢幕
相關文章:Lubuntu 13.10 安裝與使用

2013年12月4日 星期三

Lubuntu 13.10 安裝與使用

(修改自舊版文章:Linux 安裝與使用 )
安裝準備
安裝
  1. 進 BIOS 關閉 Security Boot
  2. USB 開機,「Try xxx without installing」
    • 也可以「Install xxx」直接安裝,但似乎沒地方可設定上網方式。
    • 設定 PPPoE 上網:新增 (Add) Connection Type DSL,設定 Username 及 Password (Service 不用設),勾選「Automatically connect to this network when it is available」,最後儲存 (Save)。
    •  可執行 gpartd 編輯硬碟分割
  3. 執行桌面上的「Install xxx」安裝。
  4. Welcome 選「中文 (繁體)」
  5. 時區、鍵盤皆用預設值。
其它安裝:

使用


參考:
  1. 使用 Ubuntu 12.10
延伸閱讀:
  1. http://lxlinux.com:有許多設定的參考資訊
  2. Back on 13.10 release
  3. Lubuntu 13.10 "Saucy Salamander" Review: Offers fantastic performance and possibly the best Lubuntu release I have used:使用 conky 等
  4. youtube-dl:下載 YouTube 影片的指令工具(支援 Windows、Linux 與 Mac OS X):可以下載 YouTube、土豆網等數百個網站影片的命令列工具 
  5. 给 Linux 系统“减肥”

SIP header Via

所有 SIP 訊息 都要有 Via,縮寫 v。一開始的 UAC 和後續途經的每個 proxy 都會疊加一個 Via 放傳送的位址,依序作為回應的路徑。 格式 sent-protocol sent-by [ ;branch= branch ][ ; 參數 ...] s...