pidgin中文出現亂碼

pidgin一般使用時都還蠻正常的, 可是在某些情況下會出現對方傳來的訊息變成亂碼, 可是有些朋友的訊息卻不會. 這似乎是由於msn訊息的格式所造成的. 可以依以下的步驟處理.


到【模組】中,勾選「交談視窗用色」這個模組,然後到右下角進行模組細節設定,在對話盒中勾選「忽略收到訊息中的自訂格式」即可。


gmail出現system encountered a problem #500 的問題

    這陣子firefox在使用gmail時很容易出現system encountered a problem #500的問題,但是剛好firefox一連升級了幾次,所以有點摸不著頭緒是那裡出了問題,但是很明顯的並不是網路造成的。因為其他的連線都很正常,所以一直懷疑是不是升級失敗了。後來想想最近只有新裝了一個套件(cookiepie),就是可以進行多重登錄email信箱的套件。試著把他關掉後發現,這個錯誤就沒有了,google了一下才發現,原來受害者還不只有我而已。哈...遇到同樣問題的朋友也把cookiepie disable一下看看,等確定要用時再enable,不然就要等看看新版會不會把這個bug


Bash Shell下String變數的Substring

在Shell下如果要取字串中的一部份字串可用以下的寫法,
假設一字串為
kk1=abcde
如果要將bcd取出, 從a開始為第0個, b為第1個, 取三位.

echo ${kk1:1:3}

畫面就會出現
bcd


Linux C的localtime函式問題

  
剛好前陣子工作時遇到一個讓我找了一整天的BUG,在這裡跟大家分享一下,免得以後還有其他受到這個問題的殘害。在C語言的library中,在 linux 下的時區的設定是利用TZ這個環境變數來指定,如果TZ環境變數沒有設定,則會以/etc/localtime為主。
/etc/localtime檔案可能是個符號連結到一個時區設定檔,或是一個真實檔案。大部份linux系統會將環境變數指向
/etc/localtime,“TZ=/etc/localtime”,再藉由/etc/localtime來指向時區檔案。在C語言中,如果時區發現變化,會使用 tzset() 涵數讓系統重新讀取到新的時間,但這個動作並無法發揮作用,導致/etc/localtime產生變化後,而 localtime() 仍然會使用舊的時區來讀取時間。tzset() 會 reset 三個C的內部變數,分別為 tzname丶timezone丶daylight。在此提供一個方法避開這個問題,因為tzset()無法成功的 reset 這三個變數,使得 localtime() 察覺不到時區的變化。
範例如下:
    時間12:00
    環境變數:
    TZ=”/etc/localtime”
    時區檔案:
    /etc/localtime -> /mnt/html/zoneinfo/GMT+08:00
    透過date指令得到的時間為12:00
    透過localtime()涵數讀取到的時間為12:00

    現將/etc/localtime指向新的時區檔案:
    /etc/localtime -> /mnt/html/zoneinfo/GMT+06:00
    透過date指令得到的時間為10:00
    透過localtime()涵數讀取到的時間仍然為12:00
因為導致使用 localtime() 涵數的功能發生時間上的錯誤。解決方法如下:
 
 可以透過TZ環境變數的強制改變,來使 tzname丶timezone丶daylight 這三個內部變數更新到新的時區。 
 在/etc/localtime指到新的時區之後,先將TZ環境變數設為NULL。讓 localtime() 先讀取一次時間,此時會因為TZ設定
NULL而使得 localtime() 以UTC時區讀取時間,接著再一次將TZ環境變數指回 /etc/localtime,再一次使用 localtime() 涵數便可以得到正確的時間。範例如下:
    時間12:00
    環境變數:
    TZ=”/etc/localtime”
    時區檔案:
    /etc/localtime -> /mnt/html/zoneinfo/GMT+08:00
    透過date指令得到的時間為12:00
    透過localtime()涵數讀取到的時間為12:00

    時間12:00
    環境變數將TZ改為NULL:
    TZ=”NULL”
    時區檔案:
    /etc/localtime -> /mnt/html/zoneinfo/GMT+08:00
    透過date指令得到的時間為4:00
    透過localtime()涵數讀取到的時間為4:00

    再一步將環境變數將TZ改回/etc/localtime:
TZ=”/etc/localtime”
    透過date指令得到的時間為12:00
    透過localtime()涵數讀取到的時間為12:00

備註:
發生環境:Ubuntu丶Fedora
gcc version: 4.1.3
glibc: 2.3.6


GnuCash進階教學-股票篇(1)

GnuCash進階教學-股票篇(1)




在開始前再跟各位說明一次,記帳的方法有很多種,即使使用同樣的工具也有不一樣的用法,所以跟我的方法不同時,不一定就是錯的,只要符合記帳的原則而且自
己能夠明瞭,這樣也就足夠了,並不一定要完全依照我的方法來做。可以參考我的方法並發展出適合自己的方法是最好的。


股票帳號體系的新增




在開始學習記錄股票帳的方法前,要先看看你的帳號體系中的資產(Asset)丶支出(Expense)和收入(Income)是否有合適的帳號可提供操
作,在資產(Asset)中需要有放置股票和銀行的帳號,而支出(Expense)帳號中需要一個用來記錄交易稅和手續費,收入(Income)帳號中需
要有可以記錄股票相關收益。最簡單的方法可以透過“新增帳號體系”來新增(請參考Gnucash入門使用教學(一)),新增一個帳號類型名稱是
“Investment
Accounts”(投資帳戶),這個帳戶類型中會幫我們在資產(Asset)丶支出(Expenses)和收入(Income)分類中新增幾個帳戶,可
以在圖一中看到。“資產(Assets)=>投資(Investments)=>代理商帳戶(Brokerage
Account)=>股票(Stock)”和“支出(Expenses)=>傭金(Commissions)”會在這篇中提到的。

圖一


pic01

證券的新增




設定好帳戶之後,接下來就是設定股票名稱。在GnuCash中的概念,就是把股票當成商品來處理,所以要先在GnuCash中設定好股票的資料,我們目前
以台股的中華電(2412)來做範例(不是報名牌,名字沒做馬賽克是因為怕讀者混淆,不要去買賣之後虧錢來賴我哦..囧....)。

首先先到主畫面上方的功能選單中的“工具(T)”=>“證券編輯器(S)”,如下圖二

圖二
pic02


就會進到證券編輯視窗中,如下圖三

圖三
pic03


點選圖三視窗中下方的“新增(A)”按鈕,進行新增證券,接著會看到以下的圖四視窗。

圖四
pic04

圖四的視窗中分別在

方框1的全名填入你的證券名稱,例如中華電。


方框2的標記縮寫則填入2412.TW,這個欄位要特別提一下,這裡是一定要填2412.TW的,這是因為要配合方框4中的線上取得報價,除非你不想使用
這個功能,關於股票的價格你想手動輸入每日的價格,那方框2的欄位其實怎麼填倒無所謂。但是在yahoo的網頁上就是要透過2412.TW才能收到正確的
價格。


方框3的類型則輸入TSEC,這是因為我們買賣的是台股,所以填TSEC,就是指“臺灣證券交易所”。至於其他欄位就比較沒什麼特別,照著填就可以了。

按下確定後就可以看到“證券”視窗的結果如下圖五,

圖五
pic05

有看到多一個TSEC中華電的欄位出來就是表示新增成功了。




線上取得股票價格



以後若是隨時想知道當天的收盤價是多少錢,可以透過GnuCash的“價格編輯器”來取得線上的價格,這是相當方便的功能,不過這只有盤後的價格,並不是
盤中的即時價格,要注意哦!功能的啟動方法請看圖六:

圖六
pic06


點選“價格編輯器”之後會出現以下圖七的視窗:

圖七
pic07


接著按下圖七中的“取得報價”,只要網路連線是正確的,應該幾秒鐘就可以得到圖八的畫面:

圖八
pic08

由圖八中可以看出2412中華電在2009/4/24的盤後收盤價格是59.5元。很方便吧!在摸索出這個功能之,我都是要查虧損時就要手動輸入目前的價
格,才能準備算出目前的虧損,現在這個功能摸索出來後,就不用一筆筆手動查詢價格後再進行輸入的苦工了,這真的是非常“甘”心的功能啦。


買賣證券的記帳方法




接下來要進入今天的正題,進行股票買賣時要如何入帳。在GnuCase中是以每個帳戶為基準來統計,所以如果想要統計每隻股票的損益,則必須為每隻股票建
立一個獨立的帳戶,這對常在買賣不同股票的人來說使用起來是不太方便,但是為了要分別統計每隻股票的損益,這也是必須的做法。前面提到的只是建立一個中華
電的商品,而現在要建立的則是中華電的帳戶。首先回到“帳號”總覽頁面中(如圖九),在Investments=>Brokerage
Account=>Stock的目錄下再新增一個中華電的帳戶,注意母目錄要設在Stock下哦!(新增方法請參考Gnucash入門使用教學(一)

圖九
pic09


新增的帳戶資訊填入自己看得懂的敍述就可以了,但在“證券/貨幣”這個欄位請不要手動填入,請點選旁的“選擇”鈕來輸入,畫面如圖十:

圖十
pic10



按下圖十的“選擇”鈕後就會出現圖十一的畫面:

圖十一
pic11

在圖十一的類型中透過下拉式選單選擇到我們先前輸入的TSEC中,證券欄位就可以在下拉式選單中找到剛剛輸入的2412.TW(中華電)了。

最後按下確定回到圖十的畫面,圖十的“證券/貨幣”欄位就會自動選好中華電了。再按下圖十畫面的確定鈕就完成這個帳戶的就設置了。


在“帳號”總覽的視窗裡就會看到Stock下多了一個帳號名稱“中華電”,而類型是“股票”的帳戶了。如下圖十二:

圖十二
pic12


完成帳戶新增後點兩下中華電來開啟這個頁面,進行買入股票的登記。如下圖十三

圖十三
pic13

圖十三的欄位填法:在輸入之前先選上方的“分割”鈕,備忘錄中填入“買入中華電”,1號欄填入“Assets:Investments:
Brokerage
Account:Stock:中華電”後面填入“1000”股,再後面一格填入股價“59.5”元,GnuCash會自動算出59,500元,再在2號欄
填入其他費用,就是手續費加其他雜七雜八的稅,帳號欄位填入“Expenses:Commissions”這是先前新增出來專門用來記錄股票買賣時的雜
費。後方在買的欄位裡填入220元(這個數字是我假設的,自己算清楚後再填入正確的的數字就可以了)。最後3號欄則填入那個銀行付的錢,例如在這個例子裡
我是用“Assets:Current
Assets:銀行:台X銀行”,那麼所有的費用共59720元就會在“台X銀行”帳戶中被扣除了。這就是買股票的記錄方法。



而賣股票就剛好相反,如下圖十四
pic14

在輸入之前先選上方的“分割”鈕,備忘錄中填入“賣出中華電”,1號欄填入“Assets:Investments:Brokerage
Account:Stock:中華電”後面填入“-1000”股,是負1000股哦,就是賣出去的意思,然後會變成紅字,再後面一格填入賣出股價
“60.5”元,GnuCash會自動算出60,500元,再在2號欄
填入其他費用,就是手續費加其他雜七雜八的稅,帳號欄位填入“Expenses:Commissions”。後方在買的欄位裡填入300元(這個數字是我
假設的,自己算清楚後再填入正確的的數字就可以了)。最後3號欄則填入那個銀行收的錢,例如在這個例子裡
我是用“Assets:Current
Assets:銀行:台X銀行”,那麼所有的費用共60200元就會付到“台X銀行”帳戶中。這就是買股票的記錄方法。記得數字的位置千萬別寫錯,不然就
是買跟賣的差別了哦!



其實講的不是很清楚,一部分原因是在下正在適應新工作,所以無法投入大量的時間,而且又有些朋友都在問股票方面的問題,所以先丢出初稿。以後有時間再來潤
餘,補其不足。有在使用的朋友透過這樣的簡介,相信很容易找到更進階的方法,這只是簡單的記錄,如果想記錄下每隻股票在不停的買賣之間倒底幫你賺了多少,
又虧了多少,還有幾個手續要做,這個就留著以下再說明吧!








bash中的重新導向運算元

一般在指令的使用上常會用到重新導向運算元,linux下的重導運算元分為以下幾種


< 把檔案內容重新導向為標準輸入
> 把標準輸出重新導向到檔案內容中(若檔案已存在,原先的內容會被覆蓋)
>> 把標準輸出重新導向到檔案內容中(若檔案已存在,新的內容會加在舊的之後)
2> 把標準錯誤訊息重新導向到檔案內容中(若檔案已存在,原先的內容會被覆蓋)
2>> 把標準錯誤訊息重新導向到檔案內容中(若檔案已存在,新的內容會加在舊的之後)
&> 把標準輸出和錯誤訊息重新導向到檔案內容中(若檔案已存在,原先的內容會被覆蓋)

GnuCash進階教學-個人借貸篇

    每個人在生活中總會遇到一些同事朋友之間的小額借貸,而這些小額的金流在GnuCash中怎麼記錄較好呢?其實是見人見智,在這裡提供簡單的範例供各位參考。
  
借出去的錢對我們而言仍然是資產(Assets),但已不是現金資產(Cash)了,而算是應收帳款。表示這筆錢是要在未來收回的,所以叫應收帳款,因此
我們需要在資產(Assets)類別下新增一個應收帳款。先在帳號頁面中先在“Assets”帳號上點一下左鍵,然後在上方的圖示選單中點選“新增”,如
下圖一所示:
pic01

接著會出現像下圖二的視窗:
pic02
在帳號類型中(紅框1)選擇A/應收,母帳號則選定在Assets(方框2),帳號名稱就暫定為應收款項(方框3),然後按下確定鈕。

接下來以同樣的方法再新增一個子帳號在應收款項的下一層,如下圖三:
pic03
母帳號選定在“應收款項”下,帳號類型一樣設成“A/應收”,帳號名稱設為“借出款項”。

    這樣大致就完成了借出款項的帳號設定了,大體的帳號結構如下圖四所示。
pic04


接下來就是用實例來說明,例如說今天早上張三來借了1500元,下午李四又借走了1000元。因為都是從現金的部份支出的,所以我們切到Cash in Wallet的頁面中來做記錄,如下圖五:
pic05
紀錄方法如紅框所示,描述中寫入自己的註解“借款給張三”,而轉帳欄則是選擇“Assets:應收款項:借出款項”,預算欄填入1500元。注意別填到收到欄中哦,這樣反而是你跟張三借了1500元,只要看看結算的地方金額是比上一欄多還是少就知道是不是填錯了。
同樣的方法,請自行填入李四借了1000元的紀錄。完成後,切換到帳號頁面中就可以看到目前借出的款項有多少,應收款項有多少了。如下圖六:
pic06
這樣的紀錄方式,可以讓我們在帳號這個頁面中很清楚的就看出總共已借出的款項為2500元,也可以在借出款項上快點兩下,叫出“借出款項”這個帳號,可以清楚的看出什麼時候借給何人多少錢。如下圖七:
pic07

在報表中的資產負債表也可以清楚的看出這個結果。下圖八
pic08


過這樣紀錄有一個缺點就是不易看出究竟誰還了多少,誰還欠我多少。要達到這樣的目錄其實不難,只要在“借出款項”帳號下再新增一個“張三”帳號和“李四”
帳號。在圖五記錄時就直接將轉帳欄分別填入“Assets:應收款項:借出款項:張三”和“Assets:應收款項:借出款項:李四”,如下圖九
和資產負債表pic09

    假設張三在3/18/2008時還我700元,就在“Cash in Wallet”帳號中輸入資料如下圖十:
pic10
日期3/18/2008,描述寫得讓自己看得懂就好,轉帳一樣是“Assets:應收款項:借出款項:張三”,但後面要在收到欄輸入700元。就可以看到現金的結算從24,555.00上升到25,255.00。接下來再看看帳號頁面的數據:圖十一
pic11
可以很清楚的看到張三還欠800元,而李四則是還欠1000元。


  
以上就是借出款項的記錄方法,這是沒有收利息的情況下,如果各位在借出款項時是有談妥利息的話,可以在收入“Income:Interest
Income”帳號新增一個“借出款項利息收入”,由這個帳號紀錄金流到現金“Cash in
Wallet”中就可以了。在檢視和報告中就可以看到利息的收入有多少了。


貸款則是大同小異,借出款項使用資產(Assets)下的應收款項,而貸款是在負債(Liabilities)下新增一個“應收款項”的帳號來達成。

出的利息則在支出帳號新增一個利息支出來記錄就可以了。當然為了省事也可以不設應收款項和應付款項這個帳號,而直接使用借出款項和借入款項。記帳的彈性很
大,沒有什麼絕對的對錯,只要數目上正確,自己能確檢討自己的收支也就差不多了。如果是公司行號要報帳使用,才比較有必要研究什麼項目必須在什麼分類下。


相關閱讀
[FC8]GnuCash-Linux下相當強大的記帳軟體
將MS money的資料匯入到Gnucash中
Gnucash入門使用教學(一)
Gnucash入門使用教學(二)
Gnucash入門使用教學(三)
Gnucash入門使用教學(四)
GnuCash進階教學-個人借貸篇



要轉貼本文請附上網站連結和作者,禁止引用於商業性質。

Docker SIGILL: illegal instruction 問題除錯記錄

Docker SIGILL: illegal instruction 問題除錯記錄 最近在一台平常執行得好好的伺服器上,遇到一個讓人頭痛的 Docker 問題。 原本 Portainer 和其他容器都可以正常運行,但在系統突然當機後,所有容器在啟動時都出現以下錯誤訊息: d...