my $dfg = DFG2Graph->new('c=(a+b)*c;'); $dfg->run_text(); # $dfg->dump_graph(); $dfg->dump_graphviz();project: https://github.com/funningboy/SOC_c_model/blob/master/DFG/main.pl Result : Ref: [PDF] Data Flow Graphs Intro http://en.wikipedia.org/wiki/Data_flow_diagram http://funningboy.blogspot.com/2010/09/alu-estimator-rtl-verilog.html
2010年11月28日 星期日
DFG @ perl
早在之前曾經探討過在 "high level ALU numbers @ estimator" 主要是分析每個 block (always) 內所需要的 ALU 個數, 但這還必須考慮到每個 ALU 彼此之間的相關性, 判斷是否可以化簡還是可以做到 parallel..,之後在針對每個 ALU 的 time slide level 做調整, 如 ASAP(as soon as possible), ALAP(as later as possible)的演算法 ...可參考Data Flow Graphs Intro .這邊就不多做說明, 底下我們就用簡單的 syntax 來產生最簡單的 DFG graph, 之後我們可以用這個 graph 做基底加入 time wait, hw constrain, power ... 的 information.
main.pl
2010年11月26日 星期五
proxy website @ yahoo 999
最近因為 Yahoo 999 的問題卡了幾天, 沒想到透過 Mozilla Firefox + proxy website list 就可以解決了, 但是 proxy website 後端的 https 加密機制跟轉向過後的網址我們並不知道,只能透過 Mozilla 來處理 cookie 跟轉址的 methods. 底下用 perl 寫個簡單的 download 程式,並透過 proxy website....當然你也可以用這個方式來隱藏你的 ip, 不過最好不用連到需要登入的網站. 畢竟我們是透過 proxy 的方式. 說不定你的帳號密碼會被紀錄下來...XD
mech.pl
#!/usr/bin/perl #using proxy server to download your file... # author : sean chen # mail : funningboy@gmail.com # 2010/11/26 use strict; use warnings; use Data::Dumper; use File::Basename; my $path = $ARGV[0] or die "Must specify your download path \ ex: http://xxx/xxx/xxx/jpg"; # create a new browser use WWW::Mechanize; my $browser = WWW::Mechanize->new( env_proxy => 1, keep_alive => 1, timeout => 60 ); $browser->cookie_jar(HTTP::Cookies->new()); # proxy website $browser->get("http://hidemy.biz/"); # post form $browser->form_number(1); $browser->field("u", $path); $browser->click(); #get new url my $url = $browser->uri; my @arr = split("\/",$path); open (oPtr,">$arr[$#arr]") || die "$!"; if($browser->success()){ binmode(oPtr); print oPtr $browser->content(); } else { print $browser->status(); die; }how to use it
perl mech.pl http://www.ccc.ccc/ddd/ddd.jpg
2010年11月23日 星期二
hot_or_not @ social network movie
最近看了一部好看的電影 "social network", 內容就請自行goole吧. 不果說真的現在社群的力量真是太強大了, 不像以前是靠 CPU 致富, 現在要靠 "社群&&網路" 摟...XD
不過回想到當初學生時代,那時候還很流行抽學辦,每次都要跟公關混熟不然拿到的都是張費紙..
.基於這樣的原因下, 想說透過 "自己->朋友1->朋友2->朋友3" 的分析找出最 hot/match 的選項, 這樣就不用巴結公關摟, 只需巴結你的朋友群, 再透過這個朋友認識下個朋友,依序認識到你最想要認識的...雖然說 facebook 已經提供了 "共通好友" 的功能,但還不能很陰險的把所有資料給抓出來,再進行分析比對. 底下就先寫個簡單的 sample layout view. 內部的分析之後再完成摟.
wretch xxx@wretch.cc :: 無名帳號 facebook xxx@facebook.com :: facebook帳號 relation xxx->ddd->sss->your id ps: 如何認識到 xxx? 要從你的朋友 sss 再認識 ddd 就可以認識到 xxx msn xxx@msn.com ::msn yahoo xxx@yahoo.com ::yahoo match score 9 ::跟constrain match 的值sample view HTML generator on line http://www.spiderweblogic.com/HTML-Tag-Generator.aspx XML parser http://www.xml.com/pub/a/98/09/xml-perl.html http://oreilly.com/catalog/perlxml/chapter/ch03.html YAHOO Error 999 http://answers.yahoo.com/question/index?qid=20090107150130AArM2zP proxy http://briian.com/?p=5661 http://kobesearch.cpan.org/htdocs/libwww-perl/LWP/UserAgent.pm.html#ua_gt_proxy_schemes_proxy_url proxy list http://freenuts.com/top-10-free-online-proxy-websites/ wget http://www.gnu.org/software/wget/manual/wget.html#HTTPS-_0028SSL_002fTLS_0029-Options
2010年11月11日 星期四
OS case stusy
1.mm(virtual memory -> physical memory)
GDT ( Global Descriptor Table )
- 0 NULL
- 1 kernel code
- 2 kernel data
- 3 user space code
- 4 user space data
- base -> entry address
- limit -> entry size
- 0 - Division by zero exception
- 1 - Debug exception
- 2 - Non maskable interrupt
- 3 - Breakpoint exception
2010年11月9日 星期二
OrzMicroKernel case stusy && emulator
最近在研究Jserv大師 所寫的 "OrzMicroKernel", 果然是霧裡看花...有看沒有懂的地步,很多地方還是要靠 Google 來找答案...XD, 不過最重要的核心部份, 我想應該是 Schedule 摟. 可參考OS Kernel 相關閱讀與實作心得﹝一﹞,裡面會定義哪個 task 有使用權,是 Preemptive/Non-preemptive type, 以現今的 real time 系統下, 應該都有 support Preemptive 的架構.
底下我們就用 c 來實作個 Schedule emulator.
1.task 架構
利用 pthread 來模擬 task request os kernel 的型式.
分別會定義 task id, priority, time_out, work_time
priority : 為 task 的使用優先權. 0>1>2....
time_out : 為 task 的 requirement time,表示這個 task 最低的容忍時間,
一但 time_out =0 時, 表示目前的 task 要立刻被執行, 可以 interrupt high priority 的 task.
work_time : 為 task 所要 run 的時間.
2. queue 架構
normal queue : 為 task 存取的 queue
emergency queue : 一但有 task 的 time_out=0, 立刻從 normal queue 中移入 emergency queue.
emulator os 會先判斷 emergency queue是否為空, 如果為空的, 就 access normal queue. 做 一般 priority 判斷的結果. 如果不為空的, 則處理 emergency queue.
Results:
@iOS work on normal queue -> id @,0 @NORMAL queue queue :: id 0,time_out : 9,priority : 0,work_time : 2 queue :: id 1,time_out : 2,priority : 1,work_time : 3 queue :: id 2,time_out : 4,priority : 2,work_time : 3 @EMERGENCY queue @iOS work on normal queue -> id @,0 @NORMAL queue queue :: id 0,time_out : 8,priority : 0,work_time : 1 queue :: id 1,time_out : 1,priority : 1,work_time : 3 queue :: id 2,time_out : 3,priority : 2,work_time : 3 @EMERGENCY queue @iOS work on emergency queue -> id @,1 @NORMAL queue queue :: id 2,time_out : 2,priority : 2,work_time : 3 queue :: id 0,time_out : 7,priority : 0,work_time : 1 @EMERGENCY queue queue :: id 1,time_out : 0,priority : 1,work_time : 2 @iOS work on emergency queue -> id @,1 @NORMAL queue queue :: id 2,time_out : 1,priority : 2,work_time : 3 queue :: id 0,time_out : 6,priority : 0,work_time : 1ps: 應該要好好認真的把 OS 看熟才是...XD project @ https://github.com/funningboy/SOC_c_model/tree/master/iOS/ Refs: OS Kernel 相關閱讀與實作心得﹝一﹞ http://en.wikipedia.org/wiki/X86_memory_segmentation x86 Instruction Set Reference x86 Disassembly/Loop Examples OrzMicrokernel tasks.asm 工作排程器的切換執行權函式註解,
2010年11月8日 星期一
2010年11月3日 星期三
co-syn with Google server
有時候真害怕不小心把檔案誤殺,不然就是硬碟壞軌....XD,這樣不就等於做白工嘛...
底下就用 Google Doc 當 back up server. 不用害怕硬碟壞軌 + 誤殺檔案的後果.
原理其實就是用 Google 所提供的 API, 寫成底層的 protocol interface. 為了要 hack Google 的 upload check, 我們會暫存成 *.pdf 的檔名.但檔案內容還是 tar 檔. 等有需要時, 再download 回 local 端.再解 tar 即可....
supports
results code @ https://github.com/funningboy/co_syn/blob/master/GoogleDoc.pl Refs: SSL install http://bredsaal.dk/lwpuseragent-and-https http://code.activestate.com/lists/perl-win32-web/1972/ content type ref http://en.wikipedia.org/wiki/Internet_media_type11 others API 4 google learning plus: Google Finance 4 Quote learning plus: Google Picasa API learning plus: Google Finance API Google Blogger API Google Upload 2 Google DOC-[Uu] -[Tt] -[Pp] your_path -[Dd] -[Yy] -[Pp] your_path -u -t 3600 -p /home/sean/prj/ss #back up the project 'ss' && upload 2 google doc @ period of 3600s # 每3600s back up 一次,且上傳到 google doc server. -u -t 0 -p /home/sean/prj/ss #back up the project 'ss' && upload 2 google doc right now # 立即備份,且上傳到 google doc server -d -y 2010/11/04 -p /home/sean/prj/ss #download the project 'ss' by day # 下載back up data by day
訂閱:
文章 (Atom)