2014年12月25日 星期四

windows上沒有find...xargs,現在有替代方案forfiles

http://expertland.net/question/1972521h1f183z6191n2z81921sa3234q52392w/detail.html

但是 -e 參數後好像只能加 regular expression 的樣子,一般指令可能還要再 survey 一下

2014年12月1日 星期一

撰寫英文研究論文,可以先瞧瞧這幾本書,看看怎麼寫


1.英文科學論文寫作

文字說明詳細,來龍去介紹清楚,不愧是連載於日文報紙的專欄文章

2.超水準論文寫作指南 

詳細介紹論文的各組成要件,並提供模板,是完全不知如何下手時,一根救命稻草

3.21世紀醫學英文論文寫作範例

大小像口袋書一樣,適合想要快速了解寫作概念又沒什麼時間的人

4.英語論文寫作技巧

關鍵字、詞的歸納整理,是很好的工具書,大概論文中會出現的邏輯架構都可以在本書找到

5.英文研究論文寫作 : 段落指引 & 英文研究論文寫作關鍵句指引

這兩本書嚴格來說是句型的歸納整理,可以當作工具書來使用


6.科技英文寫作:「啟」「承」「轉」「合」邏輯四要素

這本書有點像是在講作文和文法,嚴格來說對論文的格式介紹不如前幾本詳盡

7.撰寫一篇專業.漂亮的ENGLISH科技文章

這本書是利用期刊中的詞頻對文法作條列式的重點整理

8.科學論文之英文寫作與範例解析

作者文筆很好,主要是以範例說明寫作方法





2014年11月18日 星期二

Python 存取 Windows 的剪貼簿

ImageGrab via PIL/pillow
  1. 安裝 http://pillow.readthedocs.org/en/latest/installation.html
  2. 範例 http://stackoverflow.com/questions/17282278/python-save-xlpicture-from-clipboard
  3. 範例 http://effbot.org/imagingbook/imagegrab.htm

pywin32
  1. 安裝 pywin32 : http://sourceforge.net/projects/pywin32/files/pywin32/Build%20219/
  2. 一些 範例

2014年11月16日 星期日

生命中不能承受之輕--對媚俗之批判

一時之間沒辦法統整得很好,但是下面三篇文章寫的大概就是我想說的。每篇都寫得很精彩而直白,讓人拍案叫絕啊…


https://www.ptt.cc/man/TFG99506/D458/DFD5/M.982143013.A.html

http://delightful54.pixnet.net/blog/post/88912569-%E9%87%8D%E8%AE%80%E7%B1%B3%E8%98%AD%E6%98%86%E5%BE%B7%E6%8B%89%E4%B9%8B%E3%80%8A%E7%94%9F%E5%91%BD%E4%B8%AD%E4%B8%8D%E8%83%BD%E6%89%BF%E5%8F%97%E4%B9%8B%E8%BC%95%E3%80%8B

http://books.sina.com/bg/salonbook/salon/20070110/19031932.html

2014年10月26日 星期日

javascript patterns小小心得

重要


  1. 函數是物件,具有特定的作用範圍


次要

  1. hoisting: var宣告自動被提前到函式頂端
  2. "use strict": 使this不再自動指向全域物件,減少函數不是為產生物件而撰寫時所造成的意外

2014年10月21日 星期二

英文文法資源


  1. 文法 e 點通
    最完整而有系統的整理,但是未免有點…太龐大了 XD
  2. 協和工商
    篇幅適中,可惜系統性稍差
  3. 林淑媛的小窩
    學習單導向的資源,適合給學生練習
  4. 天哪!我不要學英文!
    最精練的文法,要向初學者介紹文法時,用這個系列入手有見林再見樹的奇效!
  5. 英語大師
    不愧是大師
  6. 宏文老師的教育愛
    此網頁對關代的解說很好很詳細
  7. 阿芳的家
    國三英文限定
  8. Loxa 教育網
    很詳盡的資源,一定要看 http://www.dlm.ks.edu.tw/calvin/gram.htm & http://www.dlm.ks.edu.tw/calvin/sen.htm
  9. 國三英文文法講義
    南山中學資源

2014年10月14日 星期二

李敖名言錄

人生第一快樂是做到自己認為自己做不到的事,人生第二快樂是做到別人認為自己做不到的事。” --李敖"


2014年10月10日 星期五

emacs上開發javascript的環境設定

1. http://truongtx.me/2014/02/23/set-up-javascript-development-environment-in-emacs/

其中最重要的部分應該是與瀏覽器間的連結,這是借重 mozrepl

http://truongtx.me/2013/10/01/mozrepl-in-combination-with-emacs-for-developing-conkeror/

另一些利用 mozrepl 的例子:

http://blog.binchen.org/posts/how-to-do-htmljavascript-repl-read-eval-print-loop-with-no-server-set-up-2.html

http://wenshanren.org/?p=817
http://planet.emacsen.org/zh/

2. https://github.com/skeeto/skewer-mode

這個整合得比較好的樣子,而且還跨各種平台

安裝如該作者網頁所言,使用 elpa 套件,新增 melpa 套件庫以進行安裝。

使用程序上有一些沒說清楚,首先,安裝了 js2-mode ,不代表副檔名為 .js 時就會使用,還是要執行 M-x js2-mode;再來,要手動執行 M-x skewer-mode;最後才是執行 M-x run-skewer。可以參考影片

學習emacs / emacs lisp的資源

http://sachachua.com/blog/category/geek/emacs/

作者 Sacha Chua 看起來是東方人,希望大家會比較能接受她的切入方式。據說 chua 是新加坡的"蔡"姓的拼音,聽來跟台語是一樣的唷~

雲端IDE

詳盡的列表可參考 http://zh.wikipedia.org/wiki/%E5%9C%A8%E7%BA%BFIDE

很久以前有人就預測,本機的應用程式最後都會雲端化,回到最開始 IBM 的大型主機的形式,而個人電腦的瀏覽器就對應到大型主機下的終端機。

不過這種形式對單人作業是沒有什麼太大的好處,主要的好處還是來自於多人線上協作時,工作環境的一致性、同步性。而就算這些工具不存在的時候,我們已經可以用 telnet 進入遠端主機進行開發和維護,同時在瀏覽器上除錯了,不是嗎?

從上述的列表可以看出,最近能見度滿高的 jsbin 及 jsfiddle 都還只能算是"教學環境"而已,不是一個專案導向的產出工具。更不用說像 github 的 atom ,還要以預編譯的方式偷偷的加速。或許像 emacs / vim 這類的工具,還是會存在相當長的一段時間吧。

2014年10月6日 星期一

[轉貼]建立github.io專頁

http://blog.winwu.today/2013/06/githubio.html

寫得很好

2014年9月28日 星期日

一些有趣的 javascript 專案

https://github.com/benweet/stackedit

這是一個 markdown 的編輯器, markdown是與org-mode齊名的輕量級標記語言。

https://github.com/slap-editor/slap

仿 osx 上的 sublime 編輯器

https://github.com/petkaantonov/bluebird

一種名為 promise 的語法(糖),寫出類似try...catch的語法

https://github.com/vthibault/roBrowser

"新仙境傳說"的瀏覽器版(I know...我也驚呆了)

https://github.com/feross/webtorrent

bt 的客戶端

https://github.com/bartaz/impress.js https://github.com/hakimel/reveal.js

簡報工具

2014年9月26日 星期五

pdf.js初探

我覺得這個基於javascript的pdf viewer有前途,主要是因為潛在的線上多人協作的可能性

開發時由於無法參照本地檔案,因此必需配合 web server 來讓本地檔案以 http 協定存取

原作者已經設想此一情況,搭配的伺服器是 node.js 。

先安裝 node.js ,參 http://www.codedata.com.tw/javascript/using-nodejs-to-learn-javascript

(win8用戶請注意:win-Q搜尋 node.js command prompt 的捷徑,按右鍵以管理員身份執行)

以下參考 https://github.com/mozilla/pdf.js

取得完整原始碼(不是prebuild,請按 https://github.com/mozilla/pdf.js 上的download zip)並解壓

打開一個 node.js command prompt ,進入剛才解壓的目錄並執行

node make server

此時網頁伺服器即開始執行。開測試網頁 http://localhost:8888/web/viewer.html

即可看到測試結果

( node make server 是 shelljs 專案中的 make 工具的語法,參  https://github.com/arturadib/shelljs#make-tool )


2014年8月20日 星期三

AnyEvent , POE , IO::Async 的比較


https://blog.afoolishmanifesto.com/posts/concurrency-and-async-in-perl/

這篇文章滿新的,作者比較了這三種事件驅動模式,作了以下結論:

初學者建議用 AnyEvent ,但工作上建議用 IO::Async 或 POE 。尤其是 IO::Async 作者非常推薦,某方面來說可能也是因為這個架構比較新的關係(吧?)。

2014年8月19日 星期二

超酷的逆向代理(reverse proxy):使用bash one liner

參考 http://www.frameloss.org/2013/12/14/wicked-cool-reverse-proxy-with-bash-and-netcat/

Process substitution 是裏面最重要的概念,使得 pipe 可以同時雙向轉送。

File descriptors 也是滿新鮮的概念。檔案和 socket 因此可視為等效,使得 nc/netcat 的功能實質上可以用 cat 來達成。

或許很多程式一開始只要寫成針對 stdio / stdout 就好,再利用這些上述提到的概念,在 shell 的層次導入 socket / network 的參數。

這個小技巧可以 work ,首先要思考的是 proxy 和 nc 的本質。 proxy 本身同時是 server 和 client ,server端接受外來的連線,再利用 client 端將資料轉送到真實的 server 。nc 依執行時所提供的參數,可以是 client ,也可以是 server ,而資料則轉送到該程式自身的 stdin / stdout 。所以在實質上來看,同時啟動一個 nc server 和 nc client ,然後把它們的 stdin / stdout 串起來,就可以等效於一個 proxy。

延伸--bidirectional filter


理想上一個雙向 bidirectional filter 可以插入到這兩個 nc server/client 之間,但是 bash 的版本可能要在4以上 (2010年3月以後)。先檢查版本:

$ echo $BASH_VERSION

利用 mkfifo 建立 4 個具名管道 a b c d,使用<及>運算子將 a output b input 指定給 nc server 的 io ,c output d input 指定給 nc client ,然後將 a input b output c input d output 作為參數啟動 filter 。自行建立的 fileter 如果是用 perl 撰寫,可參考文件如何使用open打開管道。

如果讀寫之間不需要協調的話,那麼這樣形式的 filter 是更為簡單的,讀、寫各兩個管道,所以不需要使用具名管道。指令的形式如下

[ ! -p $pipefwd ] && mkfifo pipeback;#只需要執行一次

[ ! -p $pipefwd ] && mkfifo pipeback;nc -l -p 9090 <pipeback | perl -e "while(<>){print STDERR;}" | nc 127.0.0.2 9999 | perl -e "while(<>){print STDERR;}" > pipeback

如果需要在螢幕上顯示,可以搭配 tee

[ ! -p $pipefwd ] && mkfifo pipeback;nc -l -p 9090 <pipeback | tee >(perl -e "while(<>){print STDERR;}") | nc 127.0.0.2 9999 | tee >(perl -e "while(<>){print STDERR;}") > pipeback

20170202更新:嚴格說來 ssh 才是比較安全的作法,請參考 http://chimerhapsody.blogspot.tw/2015/09/ssh.html
http://chimerhapsody.blogspot.tw/2015/09/ssh.html

2014年8月16日 星期六

驚!! PHP 也可以拿來寫 AP !?

Building Command-Line Applications with PHP

文件言,這個特性是2003年開始支援的。說來慚愧,我是從來沒聽說過... 冏rz

github 上熱門的專案統計

GitHub 上的熱門專案

滿有趣的 ,看來是用討論的熱度來作統計。有時間的話,一定要好好的看一看啊…

perl 竟然幾乎全滅的了…冏rz

看來 javascript / css 真.的.是.很.紅.啊…

如何寫一個模組,並上傳到 cpan


  1. 模組的基本結構和要求
  2. 怎么样写一个模块上传到 CPAN


寫得太好了…

補充幾點:


  1. 模組架構可以用 Module::Starter 來建立,或是使用經典的 Module::Starter::PBP ,可參考 使用 Module::Starter 建立模組框架
  2. 上傳可以用 CPAN::Uploader
  3. 寫模組的風格可以參考 PBP (Perl Best Practices)

一些跟 web integration 有關的 perl 資源


1. 相當於瀏覽器中的 javascirpt console 、開發人員工具的模組。搭配 one-liner 的絕配:

网页分析处理的极品模块Web::Scraper

2. 相當於離線瀏覽/砍站軟體(如 teleport pro, httrack )的 perl 實現方式。

Mojo 版本的 Perl 爬虫

Perl 整站采集有什么好方案

多线程的 Perl 爬虫

其中還提到重覆文字偵測的 bloom 演算法,的確是滿酷的

2014年8月15日 星期五

具有版本控制功能的網頁空間 GitHub Pages

說明 https://help.github.com/articles/what-are-github-pages

手動建立方式 https://help.github.com/articles/creating-project-pages-manually

簡易建立方式 https://dl.dropboxusercontent.com/u/3813488/train/gitapp.pdf

API介面 https://developer.github.com/v3/repos/pages/

以javascript所撰寫的語音辨識程式庫


  1. annyang 有些demo可以馬上試試 ;可處理中文; https://github.com/TalAter/annyang
  2. Pocketsphinx.js 有些demo可以馬上試試 ;;可處理中文;https://github.com/syl22-00/pocketsphinx.js
其它注意事項:
20180708更新:目前 firefox 瀏覽器上已內建


git client的javascript implementation及其在協作平台的潛在應用

目前找到兩個

  1. github.js :它顯然是把在本機上執行的 git client 使用javascript 改寫,並且依賴於 node.js
  2. js-git :它不依賴於本機的檔案系統,因此也就有機會在網頁上單獨執行(git-browser),不需要依賴 node.js
git 本身其實可以用來當作資料/檔案系統存放的工具, js-git 就是把一個 repo 給 clone 下來,放在記憶體中進行處理,有更動時再 push 回去。以此概念該作者寫了 tedit ,方便在平板上進行文件編輯。

git 本身就是一個多人協作的版本控制系統,反過來說,協作的特性某些程度上需要的就是 git 的功能,如 clone , commit , branching , reconcile , push 等等。

以下摘錄作者的說明:


Feature Goals

I don't intent to make a 100% clone of all the features of the official git program. That would be insane and require a lot more money than I'm asking for. My main goal is to enable the 90% case of interesting stuff:

  • Clone remote repositories to local storage over http, git, or ssh.
  • Make and commit local changes offline.
  • Manage tags and branches offline.
  • Push changes back up to remote repositories.
  • Serve git repositories over http, git, or ssh.
  • Be very modular so bits can be used by any software that needs them.

Potential Products

Some example products that would be enabled by this are:

  • ChromeOS IDE for developing on Chromebooks.
  • Node.JS blog engine with git as the database.
  • Custom Git hosting using custom storage back-ends.
  • GIT CLI for restricted environments.
  • Standalone GIT GUI desktop app.
  • Git based deployment tools.
  • JavaScript package management for server and client.
  • Whatever else you come up with.

網頁上的簡報--html5的應用

reveal.js

html5slides

deck.js

impress.js

CSSS

其中近來大家推崇的是 impress.js 。如果能寫個程式自動把大部頭的書/論文轉成簡報,應該可以方便很多人吧…

2014年8月14日 星期四

mozrepl + emacs 的設定

http://blog.binchen.org/posts/how-to-do-htmljavascript-repl-read-eval-print-loop-with-no-server-set-up-2.html

關於直接 telnet 然後下達指令的部分,這個網頁的解說很詳細,值得參考

perl one-liner以mozrepl查詢firefox瀏覽器資料--以btkitty網頁內容的表格為例

perl -MNet::Telnet -e "$t=new Net::Telnet();$t->open(Host=>'localhost', Port=>4242);$t-> print('content.document.body.innerHTML');while(1){my $data=$t->get(Timeout=>1);print $data;}" | perl -MData::Dumper -MHTML::TreeBuilder::XPath -MHTML::Element -e "my $crlf=\"\n\";$string = do { local($/); <> }; $tree= HTML::TreeBuilder::XPath-> new_from_content($string);my $pages=$tree->findnodes( '//div[@class=\'pagination\']/span') -> [0]->as_text;$pages=~s/[^0-9]//g;my $table=$tree->findnodes( '//div[@class=\'list\']')->[0]; foreach my $row($table->findnodes('//dl[not(@class=\'banner\')]')){my @cells=$row-> content_list();print join('',map{$_->as_text.'|||' if ref($_)} $cells[1]-> content_list()),$crlf,$cells[1]->dump;my @dec=$cells[1]->descendants();print $dec[0] ,$crlf;print join('|||',map{$_->as_text if ref($_)}$cells[0]->content_list()),$crlf;}print $crlf;" >btkitty.txt
存到 btkitty.txt 再打開來看,因為原始網頁編碼是 utf8 ,直接輸出到螢幕會有亂碼,轉碼對非繁中語系還是會出問題。


windows平台上的doskey

http://forum.twbts.com/thread-10210-1-1.html

我覺得最有用的是 doskey /history>abc.txt

這個指令可以把之前打的指令存到abc.txt中,看是要做成批次檔,還是貼到網頁上,都非常好用

2014年8月13日 星期三

sourceforge上有趣的語音辨識專案

http://cmusphinx.sourceforge.net/

這是 cmu 所開發的

http://julius.sourceforge.jp/en_index.php

這是京都大學所開發的

中文的專案目前還沒有,不過網路上現在有這麼多影片和字幕,拿來訓練這些辨識引擎應該很方便才對…

github上有趣的 python 專案

參考自 https://github.com/trending?l=python

1.scrapy 。據文件說是類似網路爬蟲的專案。有趣是有趣,但文件一看就很嚇人的多啊…

2.hardseed。對岸寫的抓妙蛙種子的程式,重點是因為可以利用proxy繞過金盾,所以在對岸火得很啊…


perl one-liner以mozrepl查詢firefox瀏覽器資料--以海盜灣(the pirate bay)網頁內容的表格為例

在此將問題分解為三個部分,分別是
  1. 取得網頁原始碼。結果為一個檔案;generic
  2. 取得表格原始碼。結果為列導向的多筆資料,特定分隔符號分隔各欄位;site specific
  3. 對表格原始碼進行後處理,得到想要的資料,排列成所需的格式;requirement specific

1.取得網頁原始碼。使用 mozrepl 來取得原始碼有許多好處,可以忽略登入的問題,不需處理解壓縮的問題,可以處理 javascript ,各種好處。
perl -MNet::Telnet -e "$t=new Net::Telnet();$t->open(Host=>'localhost', Port=>4242); $t-> print ('content.document.body.innerHTML');while(1){my $data=$t->get(Timeout=>1);print $data;}"
這個程式碼片斷會取得顯示中頁面的原始碼

2.表格原始碼的取得。列舉的方式有 map 或 foreach ,兩者我都列出來,供大家參考 。範例頁面為 http://thepiratebay.se/top/all ,其中列有當日前100名資源的資料。為方便觀察,將結果存到 top100.txt。
perl -MNet::Telnet -e "$t=new Net::Telnet();$t->open(Host=>'localhost', Port=>4242);$t->print('content.document.body.innerHTML');while(1){my $data=$t->get(Timeout=>1);print $data;}"
 | perl -MData::Dumper -MHTML::TreeBuilder::XPath -MHTML::Element -e "$string = do { local($/); <> }; $tree= HTML::TreeBuilder::XPath-> new_from_content($string);my @results=$tree->findnodes( '/html/body/div[@id=\"content\"]/div[@id=\"main-content\"]/table[@id=\"searchResult\"]/tbody') ;foreach my $table(@results){foreach my $row($table->findnodes('.//tr')){my @cells=$row-> findnodes ('.//td'); print join(\"\n\", map{ $_->as_HTML if ref($_)} $cells[1]-> content_list() ), \"\n\";foreach $acell($cells[1]->content_list()){print $acell->as_text.\"\n\" if ref($acell) ;};print $cells[0]->string_value,\"\n\";}print \"\n\";}" > top100.txt
這個程式片斷前半就是抓網頁原始碼的程式,使用 pipe 將結果做過濾

3.to be continued...

2014年8月12日 星期二

perl one-liner以mozrepl查詢firefox瀏覽器資料--以標題為例

perl -MNet::Telnet -MEncode -e "$t=new Net::Telnet(Dump_Log=>\*STDOUT);$t->open (Host=>'localhost', Port=>4242);$t->print('document.title');while(1){my $data=$t->get (Timeout=>1);print encode('big5',decode('utf8',$data));}"
  1. 要先裝好mozrepl
  2. 本例在win8上測試正常
  3. encode的部分視所在環境而調整,在ubuntu上完全可以拿掉
  4. 或許你會說,幹麻不用  WWW::Mechanize::Firefox 就好了,問題是它在windows上沒有人 port 啊 XD
  5. 嘗試一下 WWW::Mechanize::Firefox 的 porting 。下載並解壓後,執行 perl makefile.pl ,出現以下錯誤訊息:
    Warning: prerequisite HTML::Selector::XPath 0 not found.
    Warning: prerequisite MozRepl::RemoteObject 0.31 not found.
    Warning: prerequisite Object::Import 0 not found.
  6. 打開 ppm ,安裝上述三個套件。
  7. MozRepl::RemoteObject  可能無法用 ppm 安裝,此時下載該套件的 tar.gz 檔,解壓後進入子目錄執行 perl Makefile.PL ,再將 lib 子目錄中的所有內容複製到 C:\Perl64\site\lib (視perl 安裝在何處而定)
  8. 補充一下,ppm上沒有的套件,在不需 c compiler 的情況下,可以下達 cpan WWW::Mechanize::Firefox 安裝

mozrepl在putty/pietty和php中的使用

http://www.codediesel.com/tools/peeking-inside-firefox-using-mozrepl/

很奇怪的,我使用 pietty 時,一旦連上馬上就被切斷。可能要研究一下 pietty 本身的設定,因為用手寫的 perl script 去連就不會被切斷…

2014年8月7日 星期四

perl one-liner查詢網頁資料--以下載yyets某頁面上所有字幕為例

perl -MLWP::Simple -e "getprint('http://www.yyets.com/search/index?keyword=%E7%A1%85%E8%B0%B7&type=tv');" |perl -e "while(<>){print \"start http://www.yyets.com/subtitle/index/download?id=$1\n\" if m/\"http.+?subtitle\/(.+?)\"/;}" > abc.bat
然後執行所產生的abc.bat 即可


2014年8月6日 星期三

perl one-liner查詢網頁資料--以103年指考放榜為例

perl -MLWP::Simple -e "for $i(21011601..21011842){getprint('http://fast.uac.edu.tw/'.$i);}" | perl -MHTML::Entities -e "while (<>){print decode_entities( \"$1\n\" )if m/(准考證號 :.*?)
<\/BODY/;}"
  1. 這是在win8上執行的形式,其它平台可能要做些修正
  2. 已安裝LWP及HTML模組
  3. 使用pipe將第一段程式的結果導向到第二段,此時可以while(<>) 做逐行讀取的動作

2014年7月31日 星期四

超威的 emacs 配置 => steckemacs

http://steckerhalter.co.vu/steckemacs.html

作者嫌elpa不好,自己寫了quelpa取代之,真是太威了啦~~

其它各種威,自己去看看吧

2014年7月15日 星期二

組織學實驗資源




以下以肌肉組織為例說明
  1. http://www.kumc.edu/instruction/medicine/anatomy/histoweb/muscular/muscular.htm
    這個網頁清楚列出了組織的特徵及可能搞錯的組織,非常簡單扼要
  2. http://www.siumed.edu/~dking2/
    國中時我們都學過組織的四種分類:上皮、結締、神經、肌肉。器官的話,這個網頁的分類法滿好背的,就是 CRR / SSB / ERG
  3. http://histology.med.umich.edu/medical/muscle
    這個網頁的文字說明較多,還有圖示,可以加深了解
不過我還是滿期待自動化的組織判讀軟體能早日問世 XD

2014年7月8日 星期二

虛擬的人體生理學計劃(VPH)

下文引自"教學用電腦模擬生理系統之建構":

"2009 年歐盟發布了一項大型研究計畫:虛擬生理人類計畫
(Virtual Physiological Human, VPH),這項計畫主要是建立一套完整
的架構,來實現個性化的人體生理模型系統,透過電腦的模擬來提供
醫療診斷的研究,未來更可進一步地減少動物實驗和人體藥物測試的
需求。其研究團隊的主要目標是開發出一套個性化的病人生理系統模
型,能讓不同領域的醫生、科學家或研究學者都可以利用此人體模型
進行相關性的研究,透過知識資料收集,能夠將各種病患的資料納入
資料庫後,提供研究學者更可靠的數據分析,並且用來發展更佳的診
斷和治療的方法。運用這些知識資料庫的資料,科學家更能建立出病
患的基因檔案,有利於作為個性化的特定病患模擬系統,來提供病患
高效率的醫療品質。"

VPH主站 http://www.vph-institute.org/


2014年7月6日 星期日

使用perl操控firefox: 基於selenium的解決方案

selenium 是一個瀏覽器自動化測試的專案

perl 理所當然有模組去支援

2014年6月25日 星期三

emacs中改變當前開啟檔案的encoding

參 http://www.emacswiki.org/emacs/ChangingEncodings

‘M-x revert-buffer-with-coding-system’

2014年6月24日 星期二

emacs中變數/變量/variable的設定

什麼是emacs中的變數? https://www.gnu.org/software/emacs/manual/html_node/emacs/Variables.html

如何檢視/改變這些變數? http://www.ibm.com/developerworks/cn/education/aix/au-emacs6/section2.html

python的IDE: pycharm

介紹文 http://blog.csdn.net/chenggong2dm/article/details/9365437

示範影片 https://www.youtube.com/playlist?list=PLQ176FUIyIUY5Ii58pzoZhS_3qIBL80nz

贊美文 http://blog.jobbole.com/51498/

吐槽文 http://www.cnblogs.com/chenkai/archive/2013/01/31/2888110.html

用不用呢?看自己囉~~我是覺得滿不錯,似乎優於eclipse

2014年6月22日 星期日

python3的beautifulsoup4在ubuntu 14.04上的安裝

sudo apt-get install python3-bs4

不要用pip3,不會成功的

2014年6月21日 星期六

SSD+硬碟托架組個SSD+HDD雙硬碟

http://goods.ruten.com.tw/item/show?21303266547199

500元有找,划算划算~

原光碟機還可直接變成外接光碟

2014年6月19日 星期四

自動作曲 "automatic music composition"

https://www.youtube.com/watch?v=S5DwzuVCMrs

Grammar-Based Automated Music Composition in Haskell

看來這個理論已經非常成熟,可能也可以通過類似圖靈機的測試了

不過要疊合多種樂器/音軌,這generative grammar也要很複雜了…

https://www.youtube.com/watch?v=7bvIF6c1HcQ

看這十分鐘混出一段旋律的教學,我都想試試了

因為專案的需要,可能滿有機會mix一段techno來當背景音樂

什麼是techno?

參 http://zh.wikipedia.org/wiki/%E9%93%81%E5%85%8B%E8%AF%BA%E9%9F%B3%E4%B9%90

其中提到的 Max/Msp、Reaktor,以及免費軟體Pure Data、SuperColider,和Chuck

真想玩玩看啊…

下面是一些mixing的教學
https://www.youtube.com/watch?v=SEe1660OZMo

https://www.youtube.com/watch?v=uRZExqeMbqg

https://www.youtube.com/watch?v=idQE2TC201o

https://www.youtube.com/watch?v=U8N1HREzvAE

https://www.youtube.com/watch?v=PXpiWcCm7rg

https://www.youtube.com/watch?v=9srdHHOv49s

https://www.youtube.com/watch?v=VcSj6T2NxPc chillout樂風

2014年6月3日 星期二

移除特定的瀏覽器網址建議

http://www.pcworld.com/article/2098431/how-to-erase-specific-autosuggested-urls-from-chrome-firefox-and-ie.html

其中chrome的快捷鍵是shift+delete,我一直以為是delete,難怪一直都沒成功過 XD

2014年6月2日 星期一

醣化學 / 醣分子科學與醫學

諸多翁啟惠院長的訪談文章中,這篇我覺得寫得最言簡意賅:

發現與創新-醣分子科學與醫學

"90%以上的轉譯後修飾包含醣化",光這句話就道盡了醣化學的風光

暑假好好來複習一下Janeway的Immnobiology吧~~

2014年5月24日 星期六

生物晶片(biochips) / DNA晶片(DNA chips) / DNA微陣列(DNA microarray)/ 基因晶片(gene chip)

參考 http://zh.wikipedia.org/wiki/DNA%E8%8A%AF%E7%89%87

生物晶片的諸多應用中,DNA定序只是其中一種,參見 http://en.wikipedia.org/wiki/Microfluidics

主要的學門為微流體,顯然是因為生物細胞所在的環境就是充滿著流體

控制微流體的實務稱為微流控 (Microfluidics) ,參:http://zh.wikipedia.org/wiki/%E5%BE%AE%E6%B5%81%E6%8E%A7

微流體元件的主要製程有別於半導體主流的CMOS,是一種為PDMS的製程 ,參:

http://zh.wikipedia.org/wiki/%E8%81%9A%E4%BA%8C%E7%94%B2%E5%9F%BA%E7%9F%BD%E6%B0%A7%E7%83%B7
http://www.mmmpc.com.tw/yuehyin/MagSummary.aspx?ID=465&MID=9201
http://mbl.pme.nthu.edu.tw/study/Intro/MBL_intro.php

以線蟲做為模式生物的全自動化設備已經在研發中,參
http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3775957/
http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3107678/
http://www.chunglab.org/wp-content/uploads/2013/08/2008-Nature-Methods-Chung-Crane-Lu-Automated-on-chip-rapid-microscopy-phenotyping-and-sorting-of-C-.-elegans.pdf
http://www.pnas.org/content/108/18/7296.full
file:///C:/Users/sig/Downloads/PQY-2006-nature-optofluidic-review.pdf

為何使用線蟲?成本、時間都是重要考量,參
http://scitechvista.nsc.gov.tw/zh-tw/Articles/C/0/1/10/1/931.htm
http://zh.wikipedia.org/wiki/%E7%A7%80%E9%BA%97%E9%9A%B1%E6%A1%BF%E7%B7%9A%E8%9F%B2
http://scimonth.blogspot.tw/2010/06/blog-post_7027.html


2014年5月5日 星期一

線性代數的程式庫

參考 http://en.wikipedia.org/wiki/List_of_numerical_analysis_software , http://en.wikipedia.org/wiki/List_of_numerical_libraries

MATLAB

R

GNU Octave

Perl Data Language

GNU Scientific Library (GSL)

FinMath

Eigen

Math Kernel Library

2014年5月4日 星期日

線性代數教學網站推薦

線代啟示錄

本來為了重溫多連桿機構的運動學和動力學,想順便了解一下課本上的記號方式(大量的線性代數),看到這個網站,真是驚為天人。或許之前工數學得不怎樣,只隱約記得線性變換和正交基底間有個什麼關係的…直到逛到這頁:

變換矩陣的設計

“線性變換 T 被任一基底的像唯一決定”

(對對對,就是這道光~~~  Jeeee...I haven't lost the touch huh?)

這句話有什麼重要呢?吼~~~它真的太重要了!!只要知道這件事,所有座標轉換的公式都不用背啦,只要畫個圖,把轉換後的座標當作行向量依序填到變換矩陣就可以了;尤拉角公式,看一看 三維空間的旋轉矩陣 ,十分鐘就懂了,真的寫得很好啊…

org mode顯示搜尋結果的特殊方式:稀疏樹

http://orgmode.org/manual/Sparse-trees.html

例如,以rna[[:nonascii:]]+ 作為條件搜尋牙醫國考的牙醫學(一)題目,可發現99年才開始有rna相關題目出現



emacs的常規表示法與PERL可能略有不同,請參考 http://ergoemacs.org/emacs/emacs_regex.html

2014年5月3日 星期六

org mode匯出為其它格式的選項設定

參考下列連結

http://orgmode.org/manual/Export-settings.html#Export-settings

在檔案開頭鍵入以下指令,選項XXX的值設為YYY

#+OPTIONS: XXX:YYY

例如,預設的標題輸出到第三層,若要到第十層,可以使用下列指令

#+OPTIONS: H:10

文件中提到M-TAb鍵可以在emacs中叫出 completion 視窗,但是大部分作業系統的 Alt-Tab 都已有其它用途,因此必需有其它方式調用。參考以下連結

http://slashusr.wordpress.com/2010/09/29/three-nifty-alternatives-to-the-m-tab-key-in-emacs-and-a-replacement/

主要是 - 或 C-[ C-i 兩種方式。我比較喜歡前者。

2014年5月1日 星期四

3D列印在醫療上的應用

下列這些文章都來自 http://www.techbang.com/ 網站

製造人體零件的技術看是漸漸成熟,接下來就是如何整合,以及在活體上如何移植這些零件。這將需要有更高度自主性、可在人體表面或內部按指令移動並執行工作的微型機器人來執行

英國科學家利用3D印表機成功複製視網膜細胞

3D 列印的「登月行動」:科學家計畫列印出完整心臟

3D 列印能製造具有生命活力的血管,還能用於藥物試驗

3D列印的完整頭骨已應用於臨床手術

幹細胞合成牛肉已經可以食用,看看 Sergey Brin 投資的新項目

人造氣管:器官移植的一小步,醫療水準的一大步

另外還有一些跟3D列印比較無關。最近看了一些lisp的文章,覺得DNA其實本質上就是一個finite state machine,只要定義了基本的操作,接下來就可以寫出無限可能的程式。但是這些轉譯出來的分子與微環境之間的互動實在太過複雜,如果要在dry lab中模擬出各分子的作用,可能還需要一段時間。另一分面,要解決老化的問題,可能也不單只是零件的替換這麼簡單的問題,已經合成出來的蛋白,如果堆積得不好,也必需要去清除或置換,而這應該是對免疫細胞作編碼,以進行設計好的凋亡或吞噬,再想辦法調集幹細胞到特定部位去生成新的細胞或胞外物質。

只要在患者身上植入程式碼,各種疑難雜症不藥而癒

利用超音波識別動脈壁上的血小板斑塊,更為準確的判斷中風

這篇"Lab-on-a-chip technologies for stem cell analysis"裏面有很多操縱單一細胞的方式的review。在晶片上利用光蝕刻可以做出各種想要的幾何形狀,而細胞的微環境是流體的狀態,所以這個晶片必需要能實作出各種微流體的機械元件。配合最近發現的STAP幹細胞,或許有機會繞過反轉錄病毒而直接使體細胞"返祖"為幹細胞,各種的應用成本可能很快就可以大幅下降。

2014年4月27日 星期日

使用perl及mozrepl操控firefox,以及repl的引入

參考此文 http://perlgerl.com/2012/06/24/controlling-firefox-from-perl-with-mozrepl/

我認為作者就是這段影片中的主角

如果說有什麼要加入的特性,我覺得要有個執行期的console,目前主流的browser都有

可能可以利用sepia專案的sepl模擬一個console

這些網頁中經常出現的這個jargon,REPL,是一個縮寫:read–eval–print loop (REPL)

這個概念最先在lisp的世界中被提出,首倡者是一位奇才John McCarthy,他被公認為是lisp之父

Paul Graham這篇文章真正的描述了John的創見,將資料與程式的分別打破

Paul當然又是另一個傳奇人物,有空的話可以看看他的文集

在PERL的世界,2007年才出現一個不錯的REPL,不過據說還是sepia後來居上?

不過這些都滿花時間去了解的,要等暑假了…

org mode 匯出pdf含中文內容之額外設定

sudo apt-get install texlive-full
sudo apt-get install texlive #full佔的空間好像很大,所以我裝的是這個的樣子
sudo apt-get install dvipng
sudo apt-get install texlive-latex-extra
sudo apt-get install texlive-xetex
sudo apt-get install latex-cjk-common

2014年4月26日 星期六

使用elpa更新org mode的注意事項

https://lists.gnu.org/archive/html/emacs-orgmode/2013-04/msg01447.html

具體來說,就是關掉所有org檔,關閉emacs,再啟動emacs,不要開任何org檔,立刻以elpa更新org

否則的話,有各式各樣的bug在等著你喔(招手)

2014年4月20日 星期日

自造者時代

這本書講的是網路將帶來的生產模式的改變,而很大一部分是由最近很熱門的"3維列印"技術所推動。一台最近當紅的開源 prusa i3 印表機,網上依配備不同大約1~4萬就可以入手,真的是到了一個平民化的價格。阿簡老師分享了他的組裝過程,看來非常有 maker 精神,看來可以正式排入我7月的行事曆…

要從何下手呢?我建議看一下這裏,以及同網站的其它文件;要自組prusa i3(嚴格來說是壓克力款i3)的話,看一下 Prusa i3 3D 印表機 DIY 筆記 。

組好3d printer後,要拿它來做什麼呢?

http://www.thingiverse.com/ 這兒有很多開源的作品可供下載

3D掃瞄


http://www.thingiverse.com/thing:37222 這是我可能的暑假專案之一,附屬於 DAVID-laserscanner , 看看它的"無背景掃瞄"討論

http://www.thingiverse.com/thing:284142 可能的暑假專案之二,附屬於 FabScan

http://www.thingiverse.com/search/recent/things?q=robotic%20hand 一些機械手的專案,其中 dextrus 和 InMoov 看來是比較成熟的

http://www.thingiverse.com/search?q=manipulator&sa= manipulator的部分, robotic manipulator arm 及 Parametric 3 axis manipulator 看來都滿有趣的

reprap上提到的掃瞄方式,還有一個開源的 pylatscan ,不過精度好像沒有提到。它的說明文件有人翻成中文

另一個開源的專案,也是用python寫的 http://myinventions.pl/index.php?page=3Dscanner&lang=en


被動式(無主動光源)掃瞄,還有一個 ReconstructMe ,精確度的話稍差,約5mm,但是因為使用設備簡單,很容易就可以產生不錯的效果

雷射投影機價格也平民化了起來,因此使用結構化光源進行更快速的掃瞄也非常可行。 ofxActiveScan 使用VS2012/C++建置,類似的專案還有 3DUNDERWORLD-SLS ,雖然都開源,使用了VS這點就有點可惜了…

掃瞄後在solidworks的後續處理可參考一下 https://forum.solidworks.com/thread/72296

2014年4月7日 星期一

機器人界的一些進展

這隻機械手掌據說便宜到了一個極致,很想看它拿起handpiece去車牙齒…

外骨骼最近也滿發燒的,6月要上映的新片 the edge of tomorrow 裏面大量的使用

更不用說是 bionics 這仿生學的最先端發展,有興趣可以參考以下連結

http://highscope.ch.ntu.edu.tw/wordpress/?p=46837

http://highscope.ch.ntu.edu.tw/wordpress/?p=46842

http://highscope.ch.ntu.edu.tw/wordpress/?p=46847

https://www.facebook.com/notes/bill-hsiung/%E8%A9%A6%E8%AB%96%E4%BB%BF%E7%94%9F%E5%AD%B8what-makes-us-unique-and-different-from-all-others/10151833198392008

仿生袋鼠影片

機器人大隊

2014年4月5日 星期六

Uberon -- 解剖名詞的大一統,專注於脊椎動物,與細胞學、基因學、性狀及表現形等整合

本體論譯自英文ontology,又譯存在論、存有論或是論,它是形上學的一個基本分支,本體論主要探討存有本身,即一切現實事物的基本特徵(wiki)。知識本體主要是用以定義在某特定的應用領域內,什麼種類的事情可以存在, 以及它們之間的交互關係(Interrelationship)(Sowa ,1995) 。

官網是這樣說的:

Uberon is an anatomical ontology that represents body parts, organs and tissues in a variety of animal species, with a focus on vertebrates. It has been constructed to integrate seamlessly with other ontologies, such as the OBO Cell Ontology, the Gene Ontology, Trait and Phenotype ontologies, as well as other anatomical ontologies.

衷心期盼這個開源專案與學校的課程能結合,看看能不能讓這個學門真正的數位化。

基因的本體論發展得比較早,參見

http://zh.wikipedia.org/wiki/%E5%9F%BA%E5%9B%A0%E6%9C%AC%E4%BD%93

硬碟救援

外接硬碟由於電壓不穩而離線,甚至在關鍵的寫入fat時發生問題,導致硬碟整個"消失"的情況,其實還滿常發生的。這次發生在我身上,所以只好硬著頭皮解決它了…參考以下連結:

拯救硬碟大作戰!漫長而艱辛的硬碟資料搶救過程(痛哭)

這篇寫得很有趣,整個歸納起來,就是:

1.先確定是否有物理性的損壞並用HDD Regenerator檢測、修復(約需4hr)

2.再利用R-Studio掃瞄、找回檔案(約需4hr),複製到另一顆硬碟(重要!!)(約需12hr)

時間的部份是以1.36T的硬碟估算,usb 3.0的外接線,推薦使用雙槽的,對拷速度才會快。

半年前有人問過我怎麼解決,當時我沒花時間研究,想起來還滿抱歉的…

2014年3月30日 星期日

你的ssd是否養了隻肥胖的hiberfil.sys檔呢?不要殺它喔,減個肥就可以了

請參考這篇

http://blog.yam.com/geniusoffice0716/article/72050431

2014.5.14更新

再參考這篇,移除windows update的檔案

http://www.playpcesor.com/2013/10/windows.html


2014年3月22日 星期六

cyber city oedo 808_機動刑事808_川尻善昭

5年前曾經提過其中一集的片尾曲

http://sigmundtzeng.blogspot.tw/2009/02/oedo-808-ending-theme-sound-track.html

很奇妙的,第一話的內容,很類似今年即將上映的 "超驗駭客(Transcendence)" 。也很類似 Raymond Kurzweil 於2005年所撰寫的"奇點迫近"的部份預言。他強調用數學方式推測科技的進程,據說命中率還不錯。

第三話則利用了現代基因工程中利用載體 vector 將基因送入細胞的概念為中心主題,也是非常有趣。

很可惜的是,我覺這幾年再也沒有這麼具有原創力的故事了。

讓emacs打開檔案時回到上次游標所在位置

http://www.emacswiki.org/emacs/SavePlace

To use it, turn it on in the options menu - “Save place in files between Sessions”.

一句話說明心智圖的原理

http://actsmind.com/blog/archives/3309

"要記憶大量資訊資料的秘密就是要有區分類別(categories)和層次結構(hierachies)。心智圖法發明者Tony Buzan在《The Mind Map Book》一書中將它稱作『基本序列點子』(Basic Ordering Ideas)。"

我覺得就是樹狀結構的建構。是同一層次的概念?還是不同層次的概念?這是把概念結合為沒有冗餘的心智圖的心法。否則,建構得不好的心智圖,一樣是難以了解、記憶的。

2014年3月20日 星期四

emacs打開dos/windows文件出現^M的處理

步驟可參考 http://ergoemacs.org/emacs/emacs_line_ending_char.html

像c語言的\n這種跳脫字元,以emacs的術語來說叫做"C Escape Code",emacs的世界有它自己的表示方式叫"caret notation",其間的對應可參考:

http://ergoemacs.org/emacs/keystroke_rep.html

以\n為例,其caret notation為^J

2014年3月6日 星期四

ubuntu上用python的pdfminer進行pdf文字抽取

參考 http://imsardine.wordpress.com/page/5/

ubuntu上可以如此安裝:

sudo apt-get install python-pdfminer

2014年3月1日 星期六

ubuntu上用beautifulsoup進行網頁資訊擷取

要說javascript因為jquery而脫胎換骨實不為過,這很大一部分要拜精心設計的selector語法所賜。而在python中,託其執行期環境之福,結合上beautifulsoup也可以做到大部份相同的事。再搭配上瀏覽器本身的開發者工具,例如在chrome中按滑鼠右鍵,選"檢查元素",即可查到該元素的tag及原始碼位置。

官網 http://www.crummy.com/software/BeautifulSoup/

中文化文件 http://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html

安裝指令

sudo apt-get install Python-bs4 #官網文件中少寫了sudo


python的中文教學資源

如果是初心者,Python Tutorial 系列文章,算是crash course(速成)的好開始

如果已經精熟其它OOPL,那麼以下兩個網站我覺得可以帶領讀者快速上手

1.程式語言教學誌 :架構比較古典而詳盡,建議挑想了解的部分看就好

2.Python 學習筆記 :特別把進階的東西放到最後面,即使從頭看起負擔也不會太大




2014年2月7日 星期五

長時間沒有merge的branch要如何在master已有多個commit後安全的將delta匯入(以git版本控制為例)==>你要的是rebase

我所面臨的情境是這樣的,最開始是clone了一個project下來自己改自己用,沒想過要push回remote repo,然後時間飛快過了一年,驚覺master的子版本已經跳了3次,已經不知道要怎麼merge起了。

參考 wiki對merge的解釋 ,可以了解,由於使用了"共祖"的觀念(嗯…怎麼有點演化生物學的感覺),經由 diff3  / three-way merge 的使用,各段程式碼中,三者皆同的部分是不用更動的,兩兩相同時,只有本地分直不同者也是不用更動,只有遠端不同時則使用遠端版本,只有共祖不同時則發出衝突訊息。只要本地及遠端的變更沒有重疊到,基本上都能合併出正確的程式碼。由於:

git pull = git fetch + git merge (所以想要看 diff report 的話就不能直接 pull,要先fetch,再diff,再pull)

所以原則上會使用一次到位的 git pull 指令。但是請參考 "使用 git rebase 避免無謂的 merge" 這篇文章,顯然當我們手上開發的 feature 和 master 沒有什麼重疊的時候,一堆因為與遠端 merge 進而產生出來的節點會讓線圖太複雜,此時 rebase 是一個更清爽的解決方案,它減少了每次因為 merge 而產生出來的那個 dummy 節點。 wiki 上也對這個過程作了一些解釋,基本上就是說,每個 commit 間的 patch 都會同步進行調整演算,讓 rebase 能得到正確的結果。所以下達以下指令:

git pull --rebase

要指定非預設repo/branch時則應下達以下指令:

git pull --rebase repo branch

ps.更詳細的操作可參考 pro git ,簡要列表可參考 版本控制系統 Git 精要 ,branch 圖解還可以參考這篇, rebase 還可以參考這篇 和更詳細的Git-rebase 小筆記
ps2.更複雜的情況,有不止一個 repo 時,diff的方式可參考這篇 ,典型的衝突解決方式參考這篇 和 這篇

20171010更新:

這篇 gitbook 寫得很簡潔,大約500字而已,趕時間可以快速瀏覽一下


2014年2月4日 星期二

ubuntu上開源文件檢視器evince的make手記(3)

首先,由原始碼之取得到建置的程序,官網改放在這個網頁:(2014-2-4所見)

https://wiki.gnome.org/Apps/Evince/GettingEvince

其次,之前遇到過的建置時發生的問題,似乎都已有修正,但也引出新的問題。

官網上提供的 jhbuildrc-evince 及 evince.modules , 它們是整個gnome的jhbuild縮減版,其中libsecret由於未指定版本,故可能直接抓了最新版,結果所要求的glib2版本為38,但evince.modules提供的為36,明顯不足。抓下 evince.modules ,修改此檔以指定glib版本為2-38,重新編譯即可。假設使用者為XXX,jhbuild目錄放在家目錄下,則下達的命令為:

jhbuild -f ~/jhbuildrc-evince -m ~/jhbuild/evince.modules

而當在checkout/evince子目錄下修改了部分程式碼後,要進行make時,所下達命令則如下:

jhbuild -f ~/jhbuild/jhbuildrc-evince -m ~/jhbuild/evince.modules make

執行所建置出來的evince時所下達命令為:

jhbuild -f ~/jhbuildrc-evince run evince

因此在我新安裝的ubuntu 13.10上是很順的完成編譯及執行了。

2014年1月22日 星期三

新買ssd要灌win 8.1 x64或/及轉移原有win7 x86系統的流程

註:下述win7系統均為win7 x86,win8 均為win8.1 x64版本
註2:建議先看過 "[教學] Win8 和 Win7 雙系統建置" , "快速修復BCD開機檔案"

<<使用acronis true image premius 2014備份原系統硬碟>>

這沒什麼好講的,要注意的是,即使要轉移的只有其中一個partition,也一定要用backup disk,再選其中的partition,而不要backup partition,否則還原時的universal restore會無法勾選!!

<<切割ssd並置換原系統之硬碟>>

這沒什麼好講的,用外接線連到電腦,使用磁碟管理員分割。要注意的是,分割要比要放進去的映象檔大,這點非常重要,否則還原映象檔時,程式不會讓你還原到這個分割。

<<異機復原>> 有兩種作法(作法2僅供參考,我沒試過)

1.使用Acronis Universal Restore。為節省空間起見,通常硬碟會沿用mbr而非gpt分割,uefi bios中啟動也要選legacy而非secure boot。備份時一定要backup disk再選所要的partiton,不要直接選backup partition,否則在復原時不會有universal restore的選項可選!!新的partition一定、一定要比舊的partition大!!新機器的driver 要先準備好,在復原時有個步驟會要你指定這些driver所在的目錄,新機器或許號稱沒有舊os版本的driver ,但是新版本通常x86/x64全都有,而且通常向下相容。還原快結束時可能會出現找不到10250759驅動程式的錯誤,略過是沒關係的。(以上字字血淚,摸出這些細節花了一個禮拜)

2.使用 VMware-converter-all 把實體機內容轉移到 VMware-player。 參  http://tw.knowledge.yahoo.com/question/question?qid=1513061105044

<<異機復原之系統轉移前注意事項>>

0 .由於win7開始使用的bcd開機檔格式非常不好改,而且隱藏了很多細節,因此在系統轉移時造成非常多的問題。很多時候系統轉移不成功都是因為沒有處理好這個地方,很多人因此認為系統轉移是不可行的,非常可惜。以下是我的一些觀察和心得。(以下劃底線部分是我的觀察,不保證正確!!要注意,根目錄的boot.ini基本上是沒有影響的,因為boot.ini的任何修改,都要在下次正常開機時,由系統在bcd中進行對應的修改。轉移系統後,若無法正常開機,那麼對boot.ini做的任何修改,基本上都無法立即反映在bcd中,自然也無法藉此修正無法開機的問題。而事前用easyBCD進行任何修改也都是徒勞的,因為事前你沒有新硬碟的任何資訊。參 http://zh.wikipedia.org/wiki/Windows_Boot_Manager)

1.要知道作用中的bcd到底在哪裏。尤其是安裝了兩個以上的 win7 以上的系統,磁碟有兩個以上的分割時。我的例子是,作用中的 bcd 位置在第一次安裝 win7 的分割中(姑且稱之為partition A),而經常使用的系統也是 win7 ,但是位置在另一個分割中(partition B)。因此,如果要轉移系統,只轉移partition B時,因為bcd沒有一起複製,因此完全無法開機。相對的,只轉移partiton A時卻可以正常開機。

2.如上的例子,同時轉移兩個系統到新機器上,仍然無法使partiton B開機,則使用win7光碟(或使用usb flash disk製作開機碟)開機並進行系統修復,即可解決bcd造成的問題。(我後來沒有嘗試只轉移partiton B然後使用win7光碟修復,不過我認為是可行的。)

3.如果轉移了兩個win7系統到新機器上,然後想在不常用卻具有bcd資訊的分割中重灌win 8.1,請儘量選擇升級的方式,讓bcd資訊可以被保留下來。否則,格式化了原來具有bcd 資訊的分割,新的win 8.1系統沒有  bcd 資訊,看不到舊的win7系統,因此認為只有自己這個開機系統,因此在開機選單中也不會有舊的 win7 的選項。

4.如果因為 ssd 1g要值三、四十塊,讓你還是決定在雙系統中格式化掉具有bcd的partiton來安裝win 8.1,那麼在裝完win 8.1,你驚覺開機選單中沒有win 7時,請不要慌,參考第2點,使用win7光碟(或使用usb flash disk製作開機碟)開機並進行系統修復,即可解決bcd造成的問題。

5.但是在win7 win8存在的雙系統中,使用 win7 光碟修復 bcd,所建立的開機選單又變成只有win7的選項…沒關係,再拿起win8開機光碟,再作一次系統修復。之後,win7 win8都會出現在開機選單中了!!

6.我的觀察是,win8修復光碟發現了新的硬碟配置,以及作用中的bcd事實上存在於某個win7系統碟中,因此挪出約350mb,建立新的分割來存放對硬碟掃描後計算所得到新的bcd。

<<全新安裝 win 8.1>>

由於新的notebook機器出貨都是oem版,使用寫在bios中的序號,因此傳統上用光碟灌系統的方式不work,以下記錄一下我試了近一週的方式

0.參考一些像"滄者極限"或mydigitallife的論壇,知道那裏去找一些"合適的"光碟映象檔進行安裝

1.(optional ,方便下載巨大的iso檔而不中斷) 安裝 megadownloader ,網址:megadownloaderapp.blogspot.com

2.下載win 8.1的iso檔。

[2014.4.5] 使用Easeus partition master調整分割大小後,BCD位置若有變動,也會無法開機,解決方法是一樣的…以win7/win8開機光碟開機,再作一次系統修復即可。

[2014.6.21] 拆下來的硬碟,如果原機有光碟機,很有可能可以拆下來借給原硬碟,可參考我今天寫的文章,裏面有需要的零件