2017年11月26日 星期日

fsps60312 Drive Private Policy

fsps60312 Drive by 余柏序 collects the following information:
  • Google Account Information
余柏序 collects this information in order to provide the following benefits:
  • Let fsps60312 Drive access your Google Drive
余柏序 shares this information with the following parties:
  • Google
This policy is subject to change without notice. Please check this page for the latest privacy policy. If you disagree with this policy, please discontinue use of the application.

2017年9月24日 星期日

[教學]將您的Vim改裝成一個強大的C++ IDE

功能:
  • 自動完成
  • 括號匹配
  • 編譯快速鍵 (F9編譯、F5編譯並執行)
  • 語法檢查
  • 邏輯檢查
  • 重新排版 (F3)
  • 單行/多行註解 (\x)
  • 將游標移動到定義 (F12)
  • 摺疊/展開code
    • 摺疊/展開當前的區塊 (za) (←→方向鍵也可以展開當前的區塊)
    • 摺疊全部的區塊 (zM)
    • 展開全部的區塊 (zR)
    • 展開當前的區塊並摺疊所有其他區塊 (zx)
警告:
  • 會自動sudo apt-get update
  • 會先移除原本安裝的Vim
  • 僅限Ubuntu或其他Debian系列的Linux作業系統,強者們可嘗試修改成可在其他Linux發行版運作的Shell Script (完成後歡迎分享!XD)
已知問題待求解:
  • Vim的啟動速度會變慢 (+1秒)
  • 安裝時間過長、硬碟空間占用過大
使用方式:
  1. wget https://raw.githubusercontent.com/fsps60312/RandomCode/master/InstallVim.sh -O InstallVim.sh
    
  2. chmod 700 InstallVim.sh
    
  3. sudo ./InstallVim.sh
    
  4. 耐心等待安裝、設定完成
  • 估計安裝時間:1小時 (視網路、CPU、硬碟速度而定)
  • CPU將會長時間高效能運轉,請確保您的電腦散熱良好並接上電源
  • 保險起見,請確保您的硬碟至少有500MB的空間
  • 歡迎利用各種方式提出改善建議 (如果您擅長GitHub的話可以看看這裡)

以下是完整示範安裝過程,請參考~^_^

安裝在Windows Subsystem for Linux (WSL):



安裝在Ubuntu 16.04LTS:

Shell Script內容:

2017年9月17日 星期日

Xamarin Forms 常用View的介紹

前言:
  • Xamarin Forms可以讓你寫一次code就可以同時製作出Android、IOS、Windows Phone,甚至是可以在PC、HoloLens、Xbox上面跑的Windows App,相當的方便!其跨平台所帶來的好處不言而喻,但同時也會造成一些問題:
  1. 開發環境建置門檻高
    • 由於牽涉到多種平台的聯繫,等於需要對各種平台都要有相當的了解才知道怎麼設定。這個問題相較於以前已經減輕很多
  2. 功能性
    • 每個平台都有各自的功能,Xamarin Forms只能取其交集,對於Xamarin Forms不提供的特定功能只能針對該平台單獨實作。問題在於你可能不了解該平台,因此不知道該如何實作
    • 同時,身為新技術,Xamarin Forms的確也還沒實作完「全部的交集」,某些功能在每個平台都有提供,但Xamarin Forms卻還未提供該功能,這時也會需要針對各個平台分別實作。這個問題已經改善很多,在未來也會持續改進
  3. 相容性
    • 每個平台皆可獨立於Xamarin Forms之外自行更新,但這常常造成Xamarin Forms對於該平台的相容性問題,建議不要隨意升級各個平台的套件,由Xamarin Forms統一管理其升級事宜。這個問題相較於以前已經減輕很多

名詞解釋:
  • View:通常是一個長方形的東西,有的可以在上面顯示文字、圖片、進度或任何你想顯示的東西,有的用手指點一下會有反應 (「按鈕」就是一種View),有的可以用來輸入文字
  • Layout:是一種View,也是一個長方形的東西,塞很多的View進去是它唯一的功能,但Layout很重要,因為沒有Layout你就不能在同一個畫面中放超過一個View。Layout通常是隱形的,你只能看到它怎麼將塞進它裡面的View排列在畫面上,而不能直接看到Layout本身
    p.s. 以下介紹中Layout會用斜體+粗體表示

接下來就按照使用程度來介紹前10名小莫常用的View吧~

2017年9月7日 星期四

[公告]歡慶code風景區瀏覽量破10萬!!!

最近太忙了,先發個文祝賀XD
發文的此時瀏覽量已經11萬了耶!
哇!好開心好開心~有空一定來更新! ^_^

話說,左上角那個圖片,裡面藏著code scenic (code風景區的英文名稱) 這10個字母哦~有人發現嗎?XD

----------防雷線----------

2017年5月18日 星期四

[教學]在Windows 10中突破260字元的檔案路徑長度限制

出於無聊,將系統語言設定成英文 (雖然我是台灣人),因此圖片皆為英文版的畫面,說明文字將以「英文 (中文)」形式代表英文和其可能的中文,例如以下會出現的「File Explorer (檔案總管)」和「More info (更多資訊)」
英文很差,所以不保證中文翻譯會和實際情況完全相符

背景描述
由於小莫的許多專案擁有很長的名稱,為了分類也將這些專案放入越來越深的資料夾,「檔案路徑太長」之類的錯誤也漸漸變成家常便飯。到底,檔案路徑的長度限制是多少呢?
Windows使用的檔案系統 (File System) 格式為「NTFS」,稍微查了一下維基百科,發現NTFS可以允許的最長檔名長度 (絕對路徑+檔名) 是32767個字!
檔名或資料夾能取名到長度大於255也是很厲害了
不過對於路徑長度 (絕對路徑) 的支援
在NTFS檔案系統裡面竟然可以達到32767個字元!!!
不會吧?別騙我,怎麼可能小莫會把路徑長度搞到超過32767啦XD
而且在自己的Windows 10中做測試,實際的限制真的遠不及這個數字QQ
不到300字就開始出錯了XD (目前是244個字,請看右上角的記事本)
哦對了,新增資料夾的快速鍵是「Ctrl+Shift+N」XD

上網搜尋了許多資料,比較一致的看法是260個字元 (這合理多了!)
但是,既然NTFS可以支援,為甚麼Microsoft還是要在Windows中設下這個限制呢?
據說是相容性問題
畢竟在Windows 95的時代還是使用FAT這種限制255字的檔案系統的,如果突然放寬檔名長度限制,會令許多沒寫好的第三方軟體無法正常運作
是的,Microsoft為了讓Windows可以相容在舊版Windows上執行的軟體,真的下了很多功夫啊...... (畢竟,如果某軟體在舊版Windows正常執行,卻會在新版Windows中的某些情況下停止運作,使用者會怪罪到Windows身上啊) (汗

解決方法
您可能會說:「啊現在又不是Windows 95的時代了,誰會去管那老舊的Windows 95軟體呀!」
恩,某些程度上的確可以這麼說,而且軟體crash了是製作軟體的人的錯,不是Windows的錯哦~(咦?
所以呢,在Windows 10的1607版本之後,使用者已經可以自行移除這個檔名長度260字的限制了
所以,該怎麼設定呢?

2017年5月8日 星期一

[小工具]Real-time Google Translate

功能:偵測剪貼簿的文字並即時呈現線上翻譯結果
使用方法:
  1. 執行程式
  2. 複製想要翻譯的文字
  3. 查看翻譯結果
目前支援三種翻譯模式:
  • Google翻譯:英翻中(預設)
  • Google翻譯:中翻英
  • yahoo字典:英中、中英皆可
其他設定:有空再補充XD
註:Windows Only
下載連結

2017年4月17日 星期一

給新手的C++教學 - 開源公告

決定開源!--給新手的C++教學

回到「給新手的C++教學 (上冊)」



「給新手的C++教學」將放上GitHub供大家檢閱、修改,小莫會在收到GitHub通知後會盡快確認變更並將原始碼同步到code風景區

給新手的C+教學原始碼@GitHub (為html/css/JavaScript原始碼,貢獻方式也請參考此連結):
https://github.com/fsps60312/code-scenic-u7d66-u65b0-u624b-u7684C-u6559-u5b78

主要原因:
  • 小莫上大學後發現更多好玩的事情想要嘗試,幾乎無暇繼續維護「給新手的C++教學」
  • 仍有不少網友們來信或透過各種方式表示「期待著本教學的新文章」,不能就這麼放著不管XD
  • 目前每天瀏覽「給新手的C++教學」讀者人數已達上百人,不開源太可惜了(?)
其他原因:
  • 本教學的最初目標「成為網際網路上最淺顯易懂、對新手最友善的繁體中文C++教學之一」已完美達成~ :D
  • 新手們由本教學帶領入門C++之後將具備一定的自學能力,學習其他進階語法更為輕鬆,是否要再繼續介紹C++的其他功能似乎沒這麼必要
  • 每寫完一篇教學,就會驚覺還有更多東西可以介紹,沒完沒了,最後可能整個C++ reference都要重講一遍了,這可不行XD
  • 每一篇文章可能都是1~4小時、甚至好幾天的心血結晶,以現在這麼喜歡到處忙、到處摸的狀態,花時間寫這種東西可能不再是這麼可行XD
  • 人人都能成為本教學的貢獻者,搞不好可以達成像維基百科一樣的成效 (自己講www)
本教學開源後開放轉貼 (例如:您的個人部落格),但為維護品質,有幾項原則請您務必了解:
  • 創用CC
  • 禁止在本教學中以任何形式插入廣告
  • 禁止利用本教學進行任何營利行為
  • 您對本教學做出的任何修改無法保留著作權,也就是當別人看到您的修改並想要如法炮製時,您不能阻止他/她
  • 請在明顯的地方註明來源網站名稱:code風景區
  • 請在明顯的地方註明原始連結:http://codingsimplifylife.blogspot.tw/2016/04/c.html
  • 原始作者綽號「小莫」或本名「余柏序」,要不要註明請便XD
以下是之後會發生或者預計發生的事:
  • 「給新手的C++教學」將停止官方更新,但仍會進行非官方更新(來自熱心的貢獻者們)以及必要的官方維護
  • 「給新手的C++教學」將可能會出現在code風景區以外的地方,請讀者們自行決定要去哪一個網站瀏覽
  • 「給新手的C++教學」永遠不會作為營利用途
  • 「code風景區」將繼續分享小莫有興趣或剛學會的各種資訊技術
  • 鼓勵讀者們留言發問~能幫忙忙忙的小莫回答其他讀者們的問題更棒!
  • code風景區永遠感謝並歡迎您的光臨~ ^_^

2017年3月2日 星期四

給新手的C++教學 (上冊) - 13 - 16. 函式的遞迴

回到「給新手的C++教學 (上冊)」

回到「13. 額外語法 (Extra syntax)」

上一頁

註: 小莫使用的程式碼上色網站掛掉了,因此本頁的程式碼都沒有顏色,等該網站恢復之後會再進行程式碼上色的動作,暫時造成不便敬請見諒。若您發現該網站已經恢復運作,本頁程式碼卻還沒更新,也歡迎以各種方式提醒小莫哦~ ^_^

遞迴?甚麼是遞迴呢?
其實數學也有遞迴哦~
不知道也沒關係,因為小莫高一學程式的時候也完全沒聽過「遞迴」這個字眼XD
反正就是個專有名詞嘛XD,概念其實不難~

舉個例子,現在小莫創造一個函式$f$,當$n=1$時會回傳$1$,$n=2$時也會回傳$1$:

#include<cstdio>
int f(int n)
{
    if(n==1||n==2) return 1;
    printf("無法處理這個n\n");
    return -1;
}
int main()
{
    printf("f(1)=%d\n",f(1));
    printf("f(2)=%d\n",f(2));
    return 0;
}

那$n=3$呢?小莫想要讓它回傳「$f(1)+f(2)$」
甚麼意思?
$f(1)=1$,$f(2)=1$,所以$f(3)=f(1)+f(2)=1+1=2$啦
也就是當$n=3$時會回傳$2$,只是這個$2$是被計算出來的

那$n=4$呢?小莫想要讓它回傳「$f(2)+f(3)$」
$f(2)=1$,$f(3)=2$,所以$f(4)=f(2)+f(3)=1+2=3$啦
也就是當$n=4$時會回傳$3$,只是這個$3$是被計算出來的

那$n>4$呢?相信您已經猜到了,只要$n>2$,小莫想要讓它回傳的就是$f(n-2)+f(n-1)$!

那$f$這個函式的程式碼要怎麼寫呢?不用怕,電腦學過C++,很聰明的,直接寫出來,看看電腦能不能看懂!

2017年2月10日 星期五

[小工具]線上質數判定

使用方法:
  1. 將數字輸入右側文字框
  2. 左側將立即顯示該數字是否為質數 (支援多行哦!)
發現任何問題要講哦~小莫才能知道哪裡需要改善^_^
Here: