2014年7月27日 星期日

Sublime 中安裝 Evernote 外掛,支援 Markdown (Mac)

Sublime 中安裝 Evernote 外掛,支援 Markdown (Mac)
Install Evernote Plugin in Sublime supported Markdown (Mac)

安裝 Evernote 外掛好處

  1. 可以直接存取 Evernote 記事,新增、儲存、開啟、更新,不需寫在本機
  2. 支援 Markdown (在Sublime寫Markdown格式,Evernote 呈現)(本文利用 Markdown 所寫,寫完後顯示在 Evernote,然後複製到此 Blog貼上)

安裝方法 (In Sublime)

1. 安裝 Package Control

  • 到 Sublime Package Control 官網安裝頁面 Link:PackageControl
  • 複製左半邊的 Code (對照 sublime 的版本, 2 or 3)
  • 到 Sublime 中,按下 Ctrl+ ` 三個鍵,並貼上剛剛複製的 Code,按Enter,就完成安裝 (等20秒鐘)
註:Code 長這樣:
import urllib.request,os,hashlib; h = '7183a2d3e96f11eeadd761d777e62404' + 'e330c659d4bb41d3bdf022e94cab3cd0'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); by = urllib.request.urlopen( 'http://sublime.wbond.net/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by)

2. 安裝 Evernote Plugin (In Sublime)

  • 按下 (In Mac) cmd+shift+p, (In Windows) ctrl+shift+p ,會跳出一個框框
  • 輸入 package control: install package,會剩下一個選項,按 enter,又會有一個輸入框
  • 輸入 evernote,找到 Evernote 按下 enter,等一下就安裝好摟
  • 這時候按下 cmd(ctrl)+shift+p ,輸入 evernote 就可以看到一堆 evernote 連結的功能摟!!

3. 設定 Evernote 帳號

  • 要先取得 Evernote 授權,請到 Get Evernote API Token
  • 登入後,點選 Create a developer token,會得到 Developer token 和 NoteStore URL,把他記下來
  • 到 Sublime ,點選上面工具列 Sublime Text > Preferences > Package Setting > Evernote > Setting User,後會開啟一個新文字視窗。
新文字視窗內容長的像這樣:
{
    "noteStoreUrl": "https://www.evernote.com/shard/xxx/notestore",
    "token": "S=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
  • 把剛剛的 Developer token 貼上到 token , NoteStore URL 貼上到 noteStoreUrl 並且儲存。這樣就有權限使用 Evernote Plugin 功能 ( cmd(ctrl)+shift+p, 輸入搜尋 evernote )。

4. 設定 Evernote 功能快速鍵

  • 每次都要搜尋 Evernote 功能很麻煩,所以可以設一些快速鍵,用起來就跟處理一般檔案一樣方便。
  • 到 Sublime ,點選上面工具列 Sublime Text > Preferences > Key Bindings - Users,會打開一個文字視窗。
  • 在裡面輸入快捷鍵以及指令:
類似這樣的 Json 格式:
[   
    { "keys": ["ctrl+e"], "command": "show_overlay", "args": {"overlay": "command_palette", "text": "Evernote: "} },
    { "keys": ["ctrl+s"], "command": "send_to_evernote" },
    { "keys": ["ctrl+o"], "command": "open_evernote_note" },
    { "keys": ["ctrl+u"], "command": "save_evernote_note" },
]
  • ctrl+e :顯示 Evernote Plugin 所有功能
  • ctrl+s :儲存新的文章進入 Evernote (要儲存時會要求填寫 Title, Tag, 選擇存放的筆記本)
  • ctrl+o :開啟Evernote筆記 (會要求選 記事本, 記事文章)
  • ctrl+u :更新文章,必須是已經 新儲存 或是 已經打開 過的才可以使用
  • 當然,快速鍵的按鍵方式,可以自行更改,也可以覆蓋預設的方法。像是改成 cmd+s,把原本的儲存功能換掉。(還是可用選單的儲存存入本地磁碟)


以上為小弟的安裝過程,希望可以幫助到有需要的人 

2014年7月26日 星期六

C++ bits fields speed test

C++ bits fields speed test


原始程式碼

https://github.com/poi5305/utility/blob/master/bits_fields_speed_test.cpp


//=========================================//
RT.start_timer("old");
for(uint32_t i=0; i < genome.size()/4; i++)
{
uint8_t cpint ( table[ genome[ (i<<2)+0 ] ] );
for(uint32_t j=1; j<4; j++)
{
cpint = cpint << 2;
cpint = cpint | table[ genome[ (i<<2)+j ]];
}
compressed_genome_2[i] = cpint;
}
RT.print_timer("old");
//=========================================//
//=========================================//
RT.start_timer("bits fields version 1");
for(uint32_t i=0; i < genome.size()/4; i++)
{
compressed_genome_1[i].bits.b4 = table[ genome[ (i<<2)+0 ] ];
compressed_genome_1[i].bits.b3 = table[ genome[ (i<<2)+1 ] ];
compressed_genome_1[i].bits.b2 = table[ genome[ (i<<2)+2 ] ];
compressed_genome_1[i].bits.b1 = table[ genome[ (i<<2)+3 ] ];
}
RT.print_timer("bits fields version 1");
//=========================================//
//=========================================//
RT.start_timer("bits fields version 2");
for(uint32_t i=0; i < genome.size()/4; i++)
{
compressed_genome_3[i].bits = {
table[ genome[ (i<<2)+3 ] ],
table[ genome[ (i<<2)+2 ] ],
table[ genome[ (i<<2)+1 ] ],
table[ genome[ (i<<2)+0 ] ]
};
}
RT.print_timer("bits fields version 2");
//=========================================//

/*
Mac clang -O2
Genome size: 400000000
old: 7315
bits fields version 1: 7258
bits fields version 2: 6582
Values of three methods are the same
bits fields version 3: 6484
Mac clang -O3
Genome size: 400000000
old: 398
bits fields version 1: 779
bits fields version 2: 500
Values of three methods are the same
bits fields version 3: 505
Ubuntu g++-4.8 -O2
Genome size: 400000000
old: 1273
bits fields version 1: 2079
bits fields version 2: 1019
Values of three methods are the same
bits fields version 3: 981
Ubuntu g++-4.8 -O3
Genome size: 400000000
old: 1335
bits fields version 1: 2086
bits fields version 2: 995
Values of three methods are the same
bits fields version 3: 937
*/