Monday, September 28, 2009

leread portfolio

use fonestock about half year on ipod, fonestock service is now unavailable so clone yahoo quote service with console AP power by python with ystockquote.py :-D

--------%<------------------------------------------------------
import csv
import os,sys
import string
import ystockquote
"""
* import ystockquote you got following methods
* get_all(symbol)
* get_price(symbol)
* get_change(symbol)
* get_volume(symbol)
* get_avg_daily_volume(symbol)
* get_stock_exchange(symbol)
* get_market_cap(symbol)
* get_book_value(symbol)
* get_ebitda(symbol)
* get_dividend_per_share(symbol)
* get_dividend_yield(symbol)
* get_earnings_per_share(symbol)
* get_52_week_high(symbol)
* get_52_week_low(symbol)
* get_50day_moving_avg(symbol)
* get_200day_moving_avg(symbol)
* get_price_earnings_ratio(symbol)
* get_price_earnings_growth_ratio(symbol)
* get_price_sales_ratio(symbol)
* get_price_book_ratio(symbol)
* get_short_ratio(symbol)
* get_historical_prices(symbol, start_yyyymmdd, end_yyyymmdd)

stock.csv format as which locate in env(HOME)/stock.csv
--------------------------------------------------------------------
0 1 2 3 4 5 6
Symbol Name qty price inDate nowPrice changePrice
-------%<-----------------------------------------------------------
2303.TW, UMC 10, 15.85, 20090929, XXX, XXX
-------%<-----------------------------------------------------------

leread use ystockquote.py which download from http://www.goldb.org/ystockquote.html
also use yahooquote from sudo apt-get install libfinance-yahooquote-perl

"""

qlist = []
def showForm1(alist,showlevel):
AmountBuy = (float(alist[2])*float(alist[3])) / 10
AmountNow = (float(alist[2])*float(alist[5])) / 10
Aearn = AmountNow - AmountBuy

total = 0
if (showlevel==0):
if (Aearn > 0):
print "|%s \033[94m%8s\033[0m %4s %4s %9s %6s (%7.2f)(%5.1f)\033[31m[%6.2f%%]\033[0m|" %(alist[0],alist[1],alist[2],alist[3],alist[4],alist[5],AmountNow, Aearn, (Aearn / AmountBuy)*100)
else:
print "|%s \033[94m%8s\033[0m %4s %4s %9s %6s (%7.2f)(%5.1f)\033[32m[%6.2f%%]\033[0m|" %(alist[0],alist[1],alist[2],alist[3],alist[4],alist[5],AmountNow, Aearn, (Aearn / AmountBuy)*100)
elif (showlevel==1):
if (Aearn > 0):
print "|%s %4s %4s %9s %6s (%7.2f)(%5.1f)\033[31m[%6.2f%%]\033[0m|" %(alist[0],alist[2],alist[3],alist[4],alist[5],AmountNow, Aearn, (Aearn / AmountBuy)*100)
else:
print "|%s %4s %4s %9s %6s (%7.2f)(%5.1f)\033[32m[%6.2f%%]\033[0m|" %(alist[0],alist[2],alist[3],alist[4],alist[5],AmountNow, Aearn, (Aearn / AmountBuy)*100)
elif (showlevel==2):
if (Aearn > 0):
print "|%s %5s %5s (%5.1f)\033[31m[%6.2f%%]\033[0m|" %(alist[0],alist[5],alist[6], Aearn, (Aearn / AmountBuy)*100)
else:
print "|%s %5s %5s (%5.1f)\033[32m[%6.2f%%]\033[0m|" %(alist[0],alist[5],alist[6], Aearn, (Aearn / AmountBuy)*100)
elif (showlevel==3):
total = float(alist[6])*float(alist[2])
if (Aearn > 0):
print "|%s %5s %5s (%5.1f)\033[31m[%6.2f%%]\033[0m[%6.2f]|" %(alist[0],alist[5],alist[6], Aearn, (Aearn / AmountBuy)*100,total)
else:
print "|%s %5s %5s (%5.1f)\033[32m[%6.2f%%]\033[0m[%6.2f]|" %(alist[0],alist[5],alist[6], Aearn, (Aearn / AmountBuy)*100,total)
return total


def readCSV(showlevel):
if os.access(os.environ['HOME']+'/stock.csv',os.R_OK):
reader = csv.reader(open(os.environ['HOME']+'/stock.csv'))
for row in reader:
qlist.append(row)

os.system("clear")
Atotal = 0
if showlevel == 3:
print "+--------------------------------------------+"
for i in range (0, len(qlist)):
tmp = ystockquote.get_all(qlist[i][0])
dat = "%s|%s|%6s|%6s|%7s|%6s|" %(qlist[i][0],tmp['stock_exchange'],tmp['price'],tmp['change'],tmp['52_week_high'],tmp['52_week_low'])
qlist[i][5]=tmp['price']
qlist[i][6]=tmp['change']
total = showForm1(qlist[i],showlevel)
Atotal = Atotal + total
if showlevel == 3:
print "+--------------------------------------------+"
print "| Total = %8d |" %(Atotal*1000)
print "+--------------------------------------------+"
else:
print "stock.csv not founded...."

def readQuick():
if os.access(os.environ['HOME']+'/stock.csv',os.R_OK):
reader = csv.reader(open(os.environ['HOME']+'/stock.csv'))
for row in reader:
qlist.append(row)

os.system("clear")
print " Symbol| Price| Change|52W-High| 52W-Low|"
print "-------+-------+-------+--------+--------+"
for i in range (0, len(qlist)):
tmp = ystockquote.get_all(qlist[i][0])
dat = "%s|%7s|%7s|%8s|%8s|" %(qlist[i][0],tmp['price'],tmp['change'],tmp['52_week_high'],tmp['52_week_low'])
print dat
print "-------+-------+-------+--------+--------+"
else:
print "stock.csv not founded...."
print "stock.csv format show as ..."
print "2303.TW, UMC,10,15.85,20090929,XXX,XXX"

def checkSpecialTW(vv):
if vv[-3:] == ".TW":
cmd = "yahooquote -verbose %s" %(vv)
os.system(cmd)
return 1
return 0

def usage(vv):
if checkSpecialTW(vv) == 0:
print "usage: leread "
print " -0 showall "
print " -1 show less ..."
print " -2 .............."
print " -q quick show ..."
print " nnnn.TW yahooquote verbose mode"

def main(*argv):
from getopt import getopt, GetoptError
try:
(opts, args) = getopt(argv[1:],\
'0123456qt',\
[])
except GetoptError, e:
print e
print __doc__
return 1

for o, a in opts:
if o in ('-0', 'showall'):
readCSV(0)
return 0
elif o in ('-1'):
readCSV(1)
return 0
elif o in ('-2'):
readCSV(2)
return 0
elif o in ('-t'):
readCSV(3)
return 0
elif o in ('-q'):
readQuick()
return 0
if len(args)>0:
usage(argv[1])
else:
usage("NA")
return 1

if __name__ == '__main__':
sys.exit(main(*sys.argv))

--------%<------------------------------------------------------

Labels: , , ,

Tuesday, August 25, 2009

上海酒餅丸用法

製酒釀:
取松鶴牌上海酒餅丸一小包 內有二粒 約20克 研粉備用.用純淨糯米1200克浸水 夏天3小時 冬天5小時 使糯米
吃足水份 然後隔水蒸熟 淋水降溫至糯米飯約攝氏30度左右 取酒餅粉拌勻糯米飯 放入足夠大的容器中壓實 中間開一個直徑5厘米的洞直到容器底 把容器上蓋 保溫讓他發酵 溫度控制在攝氏25----30度 經過24或36小時以後
可以見到糯米飯洞底有香甜的酒釀汁出現 直到糯米飯完全變軟 就是說製酒釀已完成 可放入雪櫃 慢慢享用。
自製黃酒:
用上面成熟的酒釀放入適當大的容器內加可飲用的純淨水2.4升 蓋上蓋子讓其發酵 約24小時後可看見糯米飯成塊會浮上面 就用架生攪他一下讓糯米飯沉下去 如此重複大約7天以後(當然要看當地氣溫而定)當糯米飯全部沉下 變成渣了(糯米飯殼) 上面就是沒有色的老白酒了 經過沉清加溫殺菌以後 密封保存一段時間後就慢慢成了有色的黃酒了.

更多上海酒餅丸用法

Labels:

Tuesday, April 03, 2007

ADSL PPPoE

wget -c http://www.roaringpenguin.com/files/download/rp-pppoe-3.8.tar.gz
tar zxvf rp-pppoe-3.8.tar.gz -C /opt
gedit /usr/share/applications/RP-PPPoE.desktop
[Desktop Entry]
Name=RP-PPPoE
Comment=RP-PPPoE
Exec=gksudo /opt/rp-pppoe-3.8/go-gui
Icon=
Terminal=false
Type=Application
Categories=Application;Network;

Tuesday, January 23, 2007

build ubuntu kernel

Build The Kernel

To build the kernel, execute these two commands:

#make-kpkg clean
#fakeroot make-kpkg --initrd --append-to-version=-2.6.nn.le

Tuesday, January 09, 2007

english gdm with scim

vi /etc/X11/Xsession.d/55gnome-session_gnomerc
export XMODIFIERS="@im=SCIM"
export GTK_IM_MODULE="scim"

Tuesday, November 28, 2006

ndiswrapper is working my davicom usb lan

Finally ndiswrapper release verion 1.30 which support USBD_ParseDescriptors() method most complete hack the M$ USB.SYS so I'm happy my davicom dm9601E working with ndiswrapper

1. download ndiswrapper from sourceforge http://sourceforge.net/project/downloading.php?group_id=93482&ndiswrapper-1.30.tar.gzuse_mirror=osdn&filename=ndiswrapper-1.30.tar.gz&85250841
2. tar zxvf ndiswrapper-1.30.tar.gz
3. make install
4. download davicom winxp driver and extract
5. ndiswrapper -i dm9usb.inf
6. an /etc/ndiswrapper/dm9usb will create automatically
7. ndiswrapper -a 0a46:0268 dm9usb
8. ndiswrapper -l
installed drivers:
dm9usb driver installed, hardware (0A46:9601) present
9. dmesg
ndiswrapper version 1.30 loaded (preempt=yes,smp=no)
usb 1-1: reset full speed USB device using uhci_hcd and address 4
ndiswrapper: driver dm9usb (DAVICOM Semiconductor, Inc.,03/12/2002, 1.90.0312.2002) loaded
wlan0: ethernet device 00:60:6e:30:17:40 using NDIS driver: dm9usb, version: 0x10009, NDIS version: 0x500, vendor: 'DM9USB!!', 0A46:0268.F.conf
10. ifconfig wlan0 192.168.1.123 up

IT's working ...... :-) :-)

Monday, November 20, 2006

enable nfs

howto enable nfs services

#!/bin/vi /etc/export
/work *(rw,no_root_squash) # share /work directory with read/write
/tmp *(rw,no_root_squash) # share /tmp

# showmount -e 192.168.nn.nn
# mount 192.168.nn.nn :/work /mnt/nfs -t nfs # mount /work to /mnt/nfs
# /etc/init.d/nfs-user-server restart # restart nfs services