
電腦軟件的配色方案(Color scheme)對於日以繼夜在螢幕前工作的程式設計師而言是一個重要的課題。一個好的配色方案,除了讓電腦看起來別具風格外,更能讓用家眼晴看得更舒服,在處理文字、程式碼時更容易辨認字裡行間的各種元素,提升工作效率。
雖然市面上的配色方案有成千上萬種,不同軟件應用又會有不同的配色方案可供選擇,但有幾個名字卻老是常出現,當中就有幾我是我較為留意的。
繼續閱讀技術開發,不分軟硬
電腦軟件的配色方案(Color scheme)對於日以繼夜在螢幕前工作的程式設計師而言是一個重要的課題。一個好的配色方案,除了讓電腦看起來別具風格外,更能讓用家眼晴看得更舒服,在處理文字、程式碼時更容易辨認字裡行間的各種元素,提升工作效率。
雖然市面上的配色方案有成千上萬種,不同軟件應用又會有不同的配色方案可供選擇,但有幾個名字卻老是常出現,當中就有幾我是我較為留意的。
繼續閱讀最近又更新了自己的Vim設定檔。這次更新改動較大但不算多:更新了一些插件、修正了一些安裝問題、完善了說明文檔、清理了一些沒有用的檔案。不過最重要是這次改用了另一個相當sexy、針對較多不同語言高亮,還在持續開發的配色方案sonokai。因為這款配色主要支援全彩顏色,在那些古老而只支援256色顯示的terminal emulator上使用體驗會沒有那麼好,所以版本號直接跳上v1.0.0以作區分。
繼續閱讀This note contains the basic ideas of different sorting algorithms in brief and plain words. It is for my own revision purpose and does not guarantee to be fully accurate.
繼續閱讀RIME(中州韻)是一個開源的中文輸入法引擎,支援Windows、Linux、macOS、Android四大平台,並透過一個高自由度的框架提供多種中文輸入法,現時尤其受大陸用家及粵拼輸入法的用家歡迎。
對於自己慣用的行列輸入法,RIME亦有支援,但功能卻殘缺得難以接受。眼見不少行列用家對於在Windows內置的行列輸入法感到不足,對於在其他系統上安裝行列輸入法更是苦惱,自己亦想出一分力改進,所以就嘗試將RIME上的行列輸入法補完,希望透過RIME這個跨平台的輸入法引擎令行列輸入法可以在各平台上暢通無阻。
繼續閱讀本文主要分享改進的功能和心得。對行列輸入法未有了解的朋友可以參考以下的資料。行列輸入法是一個背誦量低、易學易用的字型輸入法,值得那些對倉頡速成束手無策,又或者經常執筆忘字的朋友學習使用。
This is my vim configuration for my daily programming usage. I configured my vim to be programming-friendly with suitable tweaks to built-in features, interface, formatting, etc. The plugins I choose tend to be simple-to-use and practical. I don’t mean to make a completely different editor or to make a fancy vim so I would keep everything simple and won’t go far from typical vim practices.
My configuration has been published over a year. Here’s my 3rd major update to it. Feel free to clone/fork it if you find my configuration suitable for you.
GitLab (main): https://gitlab.com/archerindigo/vimrc
GitHub (mirror): https://github.com/archerindigo/vimrc
v0.0.3 Release: https://gitlab.com/archerindigo/vimrc/tags/0.3.0
這是我日常使用vim時所用的設定和插件。這個設定檔針對日常編程需要而設,對vim內置的功能、介面和格式排版作出了相應的調整,並採用了簡單而實用的插件。這些設定旨在令vim達至更完善、更方便的編程工具,並盡可能不影響vim的一般使用習慣。
設定檔公開至今已超過一年,這次是第三次主要更新。如覺得合用,歡迎取用!
舊日Vim相關文章:
近幾年在Linux的世界中,除了無人不曉的Ubuntu、Fedora等外,還有一個發行版正急速冒起。它在知名Linux資訊站DistroWatch.com中的瀏覽量排行榜中一直長居三甲位置,它就是Manjaro Linux。
由於青鳥已經受不了Windows 8.1在自己的手提電腦上龜速運行,繼而想嘗試轉用Linux,又想了解Ubuntu以外的Linux版本,所以就選擇了Manjaro並向大家報告一下了!
(Manjaro這個名字,是來自非洲最高的山——乞力馬扎羅山 Kilimanjaro,如果有留意本Blog的朋友,應該會見過本Blog其中一篇文章正是與這座山有關!) 繼續閱讀
我的Vim設定檔公開了。誠意推薦給初以Vim工作的人使用。
Github: https://github.com/archer1609/vimrc
眾所周知Vim擁有非常高的可塑性,能按自已需要加入不同的設定,也有不少人製作各種插件為vim提供進階功能,但自己動手設定也是一件頗為繁複的工作,故分享自己的設定檔供各位取用。
因為青鳥也是為日常編程需要才最近開始注重vim的使用技巧,並一步步地為自己擴充Vim的功能和設定,所以這個設定檔現時還是相當簡單容易理解,新增的功能也不多卻非常實用。這讓大家可以慢慢熟習vim的不同插件和設定。
Github內的說明檔會詳細地說明新增的功能,vimrc內亦有附註說明,讓大家輕易了解這個設定檔的特性。因為本人現時工作主要使用C/C++,因此設定上不傾向切合這方面的工作需要。
設定檔會不時更新,歡迎定期瀏覽我的Github追蹤變化。
Happy Coding!
Vim作為一個Command line的文件編輯器,功能強大就眾所周知,不少開發者都愛用它來寫程式和操作系統文木檔,而寫程式往往需要編輯大量檔案,也需要開啟不同的檔案文件交互參照,但我們總不能開著一大堆視窗逐個切換吧?所以要用Vim寫程式,就不得不知如何應付多個檔案。
Vim不用另加插件,就支援多檔作業,當中最重要的就是視窗分割(Split Windows)、分頁(Tab Pages)和會話(Session)。學懂它們就能令Vim如IDE或其他圖形介面的進階文字編輯器一樣方便好用,以下就是這些功能的相關常用指令:
(為方便起見以下用英文)
近期青鳥將要展開Final Year Project,並會用到OpenCV。OpenCV是一個開源(Open Source)、跨平台(Cross Platform)的電腦視覺庫(Computer Vision Library)。這個Library支援能協助處理和開發很多複雜的Computer Vision問題,支援C++, Python, Java等多種程式語言,更支援Windows、Linux甚至是Android、iOS等多個作業系統(OS)。雖然它功能強大,但安裝上也是非常複雜,所以特別寫下此筆記。
範疇:OpenCV, Computer Vision
程度:中
簡述:安裝OpenCV2.4.11到Windows系統,並設定Visual Studio及Python開發環境。
安裝環境及涉及軟件:
- Windows 8.1
- Visual Studio 2013 Express for Desktop with Update 4
- Python 2.7.10
- numpy-1.9.2+mkl-cp27-none-win_amd64
雖然OpenCV已發展到3.0.0 RC1版,但它似乎仍未正式支援Python 3,也未必足夠穩定,所以本教學基於現時最新的穩定版本OpenCV 2.4.11,並使用它所支援的Python 2.7。 繼續閱讀
範疇:Linux, Raspberry Pi Project
程度:中
簡述:教授掛載外置硬碟的方法;利用SAMBA共用Linux系統的檔案
家中有一部PC和一部Notebook,平常要在兩部電腦之間互傳檔案都會用HomeGroup,亦即是我們從前認識的「網絡上的芳鄰」,相信不少人都用慣了,如果真的不知道是什麼的話請自行Google。用了這個後兩部電腦猶如合為一體,我可以在PC上開啟Notebook上的檔案,又可以將Notebook上的檔案傳回PC,使用方式和一般存取的方式幾乎一模一樣。
不過,現在手上多了一部行Linux的Raspberry Pi,還給它搭上了一個外置硬碟。本來想用這樣的配置來做File Server,方便我做Backup、日常取用和其他用途,可是Linux本身並無法與Windows的HomeGroup相容,如果用WinScp、FileZile等來傳檔案的話又比較不方便,更無法直接開啟檔案,所以要另外想些辦法來解決。
其實解決方案早於90年代已經出現,1991年時有一個名叫 Andrew Tridgell 的博士研究生為解決相同問題,特意探取Windows網絡共用所用的Protocol來進行逆向工程,最終編寫出Server Message Block (SMB),使Linux可以與Windows網絡共用相容。由於美國商標注冊的限制,軟件最終取名SAMBA。這個軟件到今時今日仍受Linux用家愛戴,現在就讓我們一起森巴舞吧!
所需軟件:
Raspberry Pi用SD卡來作儲存裝置,空間緊拙,實在不適合作為File Server。所以在開始之前,我會先額外教大家掛載外置硬碟:
1. 連接硬碟
首先,當然是要將硬碟接上電腦。對,就是將USB線插上!
然後使用fdisk查看新加的外置硬碟是在哪個接口(需要sudo)。以我為例,現在我的外置硬碟就在/dev/sda1
# sudo fdisk -l Disk /dev/sda: 2000.4 GB, 2000365289472 bytes 255 heads, 63 sectors/track, 243197 cylinders, total 3906963456 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x0d0af321 Device Boot Start End Blocks Id System /dev/sda1 2048 3906963455 1953480704 7 HPFS/NTFS/exFAT
2. 掛載硬碟
在掛載之前,我們需要為硬碟劃定一個固定位置,以便共用,現在我會在/media建立一個名為WDMyBook的資料夾,作為外置硬碟的存取點:
# cd /media # mkdir WDMyBook
接著,就正式將硬碟掛上:
# sudo mount -t ntfs-3g /dev/sda1 /media/WDMyBook
-t後面是指定裝置的格式,因為我的外置硬碟使用NTFS格式,需要ntfs-3g這個driver來進行存取,Raspbian原生沒有這個Driver,需另行安裝:
# sudo apt-get install ntfs-3g
3. 設定開機自動掛載硬碟
現在你只要瀏覽/media/WDMyBook的話應該就可以見到硬碟內的檔案了,不過到你下次重新開機,一切都會打回原型。要每次開機都自動mount上硬碟的話,就要修改/etc/fstab這個開機掛載設定檔:
# sudo vi /etc/fstab ; 請在檔案內加入以下一行: /dev/sda1 /media/WDMyBook ntfs-3g defaults 0 2
“/dev/sda1″是裝置位置;"/media/WDMyBook"是掛載位置;"ntfs-3g"是儲存格式;"defaults"是掛載時的設定,使用預設已足夠;"0″是dump backup,不用開啟;"2″是fsck 檢驗,優先度設定為2,不用跟主要磁區搶。
現在,你每次開機外置硬碟都會自動掛載好了!
1. 安裝SAMBA
返回正題,我們開始要安裝samba了,我們除了samba主程式外,還需要samba-common-bin來執行需要的功能:
# sudo apt-get update # sudo apt-get install samba, samba-common-bin
2. 建立帳號
安裝完成後,你需要建立登入的帳號,這裡要注意帳號名稱必須和你在Linux上的帳戶一樣:
# sudo smbpasswd -a USERNAME ; USERNAME為你的Linux系統上一個用戶的名稱 ; 輸入密碼兩次 ; smbpasswd是舊式方法,不過亦足夠使用 ; 更改密碼也是要用smbpass,但不用輸入-a ; 以下是新式方法 # sudo pdbedit -a USERNAME ; 輸入密碼兩次 ; 有關pdedit的其他功能請參考 pdbedit -h
3. 設定smb.conf
現在來到最重要一步,設定你要共用的檔案,設定檔位於/etc/samba/smb.conf,打開後你會發現裡面已經有預設的設定和詳細說明,你可以參考說明自行配置,以下解釋其中一些基本設定。
[global]底下的是系統設定,大多設定都可按預設,但需留意以下參數:
workgroup = WORKGROUP ; 工作群組名稱,WORKGROUP是Windows預設的名稱,所以一般不用更改 security = user ; 設定為user的話就需要使用者登入方可存取檔案,需要設定為user ; 下面是有關共用Printer的設定,在第182行附近,如不用share printer建議這樣設定: load printers = no printing = bsd printcap name = /dev/null disable spoolss = yes ; uncomment下面這句或有助連線速度,這句在207行左右: socket options = TCP_NODELAY
接著到下面會有[homes]的一項,這是一個特殊項目,會指向使用者的home目錄,設定解說如下:
[homes] comment = Home Directories ; 純粹是目錄描述 browseable = no ; 設定此目錄可否被所有人看見,注意這只是看見,並不代表可以進入存取 read only = yes ; 設定檔案是否為唯讀, ;writable = yes ; 與read only相反,這兩句只需選擇一個,所以comment out create mask = 0700 ; 設定新增檔案的預設權限 directory mask = 0700 ; 設定新增目錄的預設權限 valid users = %S ; 允許存取的使用者,對於homes一般使用%s,這樣就限定使用者只能進入自己的home
以上的設定已經可以讓你進入到自己的home目錄。因為home是使用者的根目錄,等同可以存取使用者的所有個人檔案,因安全性問題所以建議只作唯讀(read only = yes),然後另外設置其他共用資料夾作讀寫。
要設立共用資料夾,做法和上面基本一樣,只是將[homes]改為其他名稱,其他可用的設定基本一樣,你可根據自己需要調節,另外要加上一句"path = xxx"來指定共用資料夾的所指位置。
以下的例子是共用我的外置硬碟,讓使用者"Archer", “King"可以進入並享有正常讀寫權限:
[MyBook] comment = External Hard disk on RaspberryPi brwoseable = yes ; 讓任何人都可以看到此目錄 writable = yes ; 讓使用者可以修改檔案 create mask = 0700 directory mask = 0700 valid users = Archer, King path = /media/WDMyBook ; 當使用者從網絡進入MyBook後,實際會連到/media/WDMyBook這個位置
你會發現檔案下面還有例如[profiles]、[printers]之類的共用資料夾,但這些我們暫時都不會用到,而且預設也是停用的,所以不用理會。
4. 檢查設定
好了,現在你已經設定好兩個共用資料夾,分別是你自己的home和外置硬碟的空間,接下來你可以用以下指令檢查你的設定是否有誤:
# testparm
假如出現"Loaded services file OK."這句,代表設定基本沒有問題,否則請按錯誤描述進行修正。
當出現"Press enter to see a dump of your service definitions"後,按下enter便會產生一份設定報告供你參考。
5. 重啟服務
最後,只要重新啟動samba的service,samba這一邊就完成啦!
# sudo /init.d/samba restart [ ok ] Stopping Samba deamons: nmdb smdb. [ ok ] Starting Samba deamons: nmdb smdb.
辛辛苦苦來到這一步,最重要當然是要讓Windows可以存取Raspberry Pi上的資料啦,接下來的工作就簡單得多了,不過還是有些地方要留心。
1. 透過家用網路連線
當你打開「電腦」後,你應該已經可以在左邊欄的「網絡」內看到新的成員了!
當你點選你的新成員(ARCHER-PI),即可輸入使用者名稱和密碼登入,必須注意如果要切換使用者的話會比較麻煩,所以請儘量使用單一使用者存取共用檔案。
登入後你可以看到對登入的使用者共用的資料夾:
你可以右擊一個資資夾,將它設定為網絡磁碟機,方便進入:
然後你可以在「電腦」中看到你的共用資料夾變成了一個網絡磁碟:
你亦可以在「電腦」上方選擇「連線網絡磁碟機」來手動建立。
2. 切換使用者
要切換到另一個使用者存取只有該使用者方可存取的共用文件,你必須登出,因為一部電腦只能同時使用一個使用者登入到其他電腦。但Windows似乎沒有方便的方法讓你直接登出SAMBA上的使用者,如果要登出,只好透過command將現有所有連線砍掉。
另外,你還要在「電腦」中將所有已連接的網絡磁碟機中斷:
然後,在網址列輸入:\\IP or NetName\Username,例如\\Archer-Pi\King,Windows即會嘗試登入另一使用者,輸入使用者名稱和密碼後應該就可以切換了。不過這個方法有時都會失敗,或許需要重新開機方能完全斷開連線。
教學就此完結,有空再教建立VPN的方法,使你可以在戶外安全地經Raspberry Pi連到家用網絡存取資料。
下面來個bouns:Raspberry Pi File Server + 小型影院