2010年2月23日
[Shell Script] 如何擷取字串中的子字串
一開始在學 shell script 的時候,我看的是臥龍小三的網站 (News 裡面的 Shell 入門),按照順序看過一遍固然收穫很多,但也僅止於「快速入門」的程度,也就是「讓你不要害怕 shell script」的作用,其中對字串處理這種重要的功能並沒有整理的很詳細,因此我一開始連「取出某個字串的最後一個字元」這樣的功能都不知道如何下手,用 sed 和 awk 都不太對。後來透過孤狗大神找到了幾種方法:
法一:Bash Shell Programming in Linux (搜尋 substring)
time=”20:06:16”
unit=${time:${#time}-1:${#time}} –> $time變數要寫三次!
這個寫法顯然相當之囉嗦,但是它是有效的。
法二:parsing a string in a shell script (透過 awk 來做)
time=”20:06:16”
unit=`echo $time | awk '{print substr($0, length($0), length($0))}'` –> 可用 $0 取代 $time,較簡潔
但整體看來還是非常囉嗦,我只是要取出一個字串的最後一個字元而已阿!
法三:臥龍小三-Linux Shell 程式設計實務 (Chapter 08: 8-4 使用外部程式 expr 做算數運算)
time=”20:06:16”
startPos=$(expr length $time)
unit=`expr substr “$time” $startPos 1` -> 注意 $time 要被包在“ “裡面
這章介紹的 expr 功能還蠻多的,有找子字串 index 和做 substring 等等功能,值得練習一下。這個作法雖然少了很多小括號,但感覺還是挺麻煩的,最後,終於讓我找到一個最簡單直覺的作法:
法四:一樣出自 parsing a string in a shell script (看這個留言)
time=”20:06:16”
unit=`echo $time | tail -c 2`
–> 重點在 -c 這個參數,以及用 tail 的話 byte 數要多 +1 (取最後1個字元:2)
一行搞定!而且非常的直覺!除了要取出特定字串以外,如果是要正取 (用 head)或倒取 (用 tail) 固定幾個字元的話,應該都會用 head/tail 來做吧!
以上就是今天的分享,如有更好的作法還請不吝賜教 ^^~
PS. 取出字串的最後一個字元,在 Perl 中也非常簡單:substr $time, -1,負號代表由字尾開始往前面取
WCG 網格計畫發表新專案:Discovering Dengue Drugs – Together – Phase 2 (第二階段)
這個專案事由 The University of Texas Medical Branch (UTMB)、The University of Chicago 兩所大學共同主持,計畫的詳細內容可參考這裡。在第二階段中的工作項目是以瀑布式 (waterfall) 的方式來組織,也就是說工作項目A的結果會產生工作項目B,而工作項目C的內容則是根據工作項目B的結果來決定。藉由如此的設計,研究人員期望可以節省大量的計算時間,以加速專案的進展。(基本上就是在進行B的時候,不用重新計算進行A的時候已經計算過的東東~)
為了提昇 WCG member 的參與感,很久之前 WCG 就設計了 Project Badge 的機制,Discovering Dengue Drugs – Together – Phase 2 的 Badge 長得像下面這樣:
(一隻蚊子加上一個數字 2,呃 …)
這已經是在 WCG 上 launch 的第 15 個專案啦,希望每個專案都可以順利的進行阿!
另外補充一篇科景 (Sciscapr.org) 的新聞:物理:網格運算未來將可進入家用電腦
2010年2月21日
利用 Joomla 做資產管理 (Asset Management) -1 : 安裝過程紀要 (Windows)
經過整理,這個資產管理系統要滿足的需求如下 (根據我判斷的重要性排列):
- 免費!免費!免費!-> 找 Freeware / Open Source Software
- 簡單易用的web介面,支援 CRUD operation (增刪改查)
- 批次匯入現有資料
- 以選單的方式輸入資料
- 條件式的查詢、篩選資料
- 保留資料異動的 log
- 將資料放上雲端,以展示我們擁有先進的技術,就算電腦掛了也不怕資料不見 (喂! 不要再亂扯雲端了!)
Joomla 是架構在 LAMP 之上的 (把 Linux 換成 Windows -> WAMP 也是可以,剛好 AMP 都有 Windows 版 ),在 Joomla!123 圖解架站教學網的關於Joomla一文中列出Joomla幾個重要的特性:
- 它的操作並不複雜,Joomla!是開發給大眾使用的
- 它的授權是基於GNU/GPL授權規定,很容易安裝和管理,而且也很可靠
–> Free! - 完整的資料庫導向網站引擎 –> CRUD!
- 完全可以客製化的版面,包含了左、中間、右選單區塊 –> Customizability
- 可在Linux、FreeBSD、MacOSX 伺服器、Solaris及AIX上執行
- 客製的頁面模組。下載各式各樣的客製頁面模組可以豐富您的網站
–> Extensibility!
首先我試圖在 Win XPP SP3 上分別依序手動安裝 Apache、MySQL 和 PHP,安裝 Apache 的過程很簡單,從 Apache Software Foundation 首頁右邊的 HTTP Server 下載穩定的 release 版本 2.2.14 安裝檔,執行後一路 Next 到結束即可。
安裝 PHP 就花掉我蠻多時間,我參考的是 PHP5 系統環境安裝 Windows XP + PHP + Apache (一),教學中用的是 PHP 5.2.0,我想 5.3.1 更新,應該更優(我承認我喜歡裝最新版的軟體 …Orz),所以從 PHP 官網下載了 5.3.1 版的安裝檔開始安裝,沒想到經過種種設定就是無法與 Apache 正確運作,在 5.3.1 版的安裝畫面中不會有教學中「Web Server Setup」的畫面:
於是我參考了[設定] PHP 安裝之後 APACHE 之設定一文手動調整 Apache 設定檔 (httpd.conf),弄了半天還是無法成功,最後只好改裝 PHP 5.2.12 版,一裝好就可以正常運作了,不需要手動調整 httpd.conf,過程相當之
安裝 MySQL 的時候我參考的是 MySQL 安裝教學,過程相當順利,從 MySQL 官網下載 MySQL Community Server 5.1.43 之後,按照教學就可以安裝完成。
在好不容易裝完 AMP 之後卻發現 Joomla 的安裝程式認為我的主機不支援 MySQL,這是很詭異的現象,我可以正常登入 MySQL 的 console,下 select version() 等指令都能傳回正確的結果,但 Joomla 還是認為我的主機不支援 MySQL,最後我只好放棄「手動逐一安裝 Apache、MySQl、PHP」的作法,採用更無腦的方式快速安裝完成!
我參考的是一個很不錯的 Joomla 教學網站:Joomla! 123 圖解架站教學網,在首頁就可以找到 Joomla 的安裝與教學:
其中有篇文章解釋得很詳盡:在自己電腦上安裝 Joomla! 1.5 與中文化,其中 Joomla 主程式可以直接在 Joomla!123 首頁下載打包好的 1.5.15繁體中文主程式,這樣就不需要另外安裝 Joomla 繁體中文語言檔了。按照教學中的步驟就可以很順利的將 Joomla 安裝完畢。
2010.02.25補充:在安裝Joomla! 1.5.x的時候,Joomla! 無法安裝預設範例資料解決方法,經過測試的確有效!
順帶一提,Joomla!123 網站的 HTTP 404 頁面還蠻有趣的:
AppServ (2.5.10 for Windows) 安裝完畢後,連到首頁可看到以下內容:
可看到 AppServ 包含以下軟體:
- phpMyAdmin Database Manager Version 2.10.3
- PHP Information Version 5.2.6
- Apache Web Server Version 2.2.8
- MySQL Database Version 5.0.51b
以上就是 Joomla 的介紹以及相關軟體的安裝過程紀要,下一篇就來看看如何利用 Joomla 內建的功能以及 Fabrik 這個好用的擴充套件來完成上述的六個需求!
2010-04-21 補充,本系列其他文章:
2010年2月19日
iPhone 使用心得
大約在去年(2009) 11月的時候我敗了一支 iPhone (16G 白),經過這幾個月,我發現 iPhone 真的非常好用,雖然網路上已經有很多人分享使用心得 (例如:李怡志-一個中年人的 iPhone 3GS 初體驗、李怡志-很過份的 Amazon iPhone App 之 Remembers (記得要買) 等),但我還是堅持要紀錄一下我個人的使用心得!(握拳)
首先,iPhone 的手寫辨識超強的,例如我想要寫「樓」:
還有這個「餐」:
可以用手亂塗真的很「爽」:
精準的手寫辨識帶來的最大好處包括:
- 不用怕把觸控筆弄丟,或者忘記帶觸控筆:你總不會忘記帶手指出門吧!
- 老人家也可以輕易上手:只要練習一下如何切換中英文和注音輸入,5 分鐘內就可以學會如何發簡訊了 (對我媽來講很方便,對我來講就是 iPhone 常常會被搶走
,很討厭) - iPhone多點觸控螢幕精準度非常高,參考MOTO Lab: Touchscreen 測試
接下來談談 browser,如果買了 iPhone 卻沒搭配上網吃到飽的費率,那就太浪費了,因此 browser 在行動上網的使用者體驗中扮演著非常重要的角色!iPhone 上的 Safari 非常清楚它所運行的環境是在手機上,而手機最重要的功能就是打電話,所以 Safari 會偵測網頁上純文字的電話號碼,並將其轉變為一個 hyperlink,如下圖:
點了以後就可以直接撥打電話,非常方便且直覺:
這功能實在太貼心、太直覺了,我認為在手機上運行的 browser 如果沒有這個功能,就不配稱為 mobile browser!
以上看了很多在 iPhone 上抓的圖,一開始我也不知道要怎樣抓出這麼漂亮的圖,後來發現 iPhone 內建的螢幕截圖功能是要這樣操作的:長按機身下方的Home button (不要按太久,不然會進入聲控模式-Voice Control),再按一下機身右上方的電源鈕,這樣就可以抓到整個螢幕啦,例如這個金色太極圖:
iPhone 上的 App 必須要對「iPhone 是單工的環境」這件事情有深刻的體認,在啟動內建的 App (如 Safari, Map) 之前,應該先提醒使用者這麼做將會關閉目前正在使用的 App (大部分 App 的狀態是不會保存的,內建的計算機、時鐘等除外),如舊版的 MobileRSS 就做的很好:
如此一來使用者就不會被強迫結束 MobileRSS,進入 Safari,讀完文章後又必須重新 MobileRSS,但此時 MobileRSS 並不會記住最後一次執行的狀態!對使用者說,這是非常不方便的,使用 App 的過程常常會被中斷。
MobileRSS 並不只滿足於此,在新板中更上一層樓,直接在 App 中就可以載入完整的網頁,使用者讀完網頁之後可以很順暢回到 MobileRSS 中,先前的狀態也不會消失。如果需要載入完整網頁才能閱讀完整內容的話,會看到這個向右的箭頭:
點了以後就會載入完整的網頁,按左上角的按鈕即可回到先前的畫面:
以上這些操作都在 MobileRSS 中完成,不需要另開 Safari,這就是我要大力推薦 MobileRSS 的原因!而且它是免費的!
前面講了這麼多好用的地方,接下來講一些缺點吧!我覺得 iPhone 3GS 內建的相機真的很弱,例如在晚上室外就呈現幾乎廢掉的狀態 (沒有閃光燈):
當然單工、不能換電池、上網時電力消耗很快都是很令人頭痛的地方,但相較於 iPhone 帶來的便利,我覺得還可以忍受。希望用在 iPad 的 A4 晶片真的像 Apple 宣稱的那樣省電、高效能,接下來就看年中 Apple 宣佈下一代 iPhone 的時候會不會用到 A4 晶片囉!
以上所提的都是 iPhone 的基本操作介面,iPhone 另一個改變了產業結構的創舉是 AppStore,在今年 (2010) 1 月的 iPad 發表會上 Apple 宣佈,App Store 上已經有超過 14萬個應用程式,總下載量也突破 30 億次,而這一切都在 Apple 推出第一代 iPhone 的短短 18 個月內達成!下一篇文章我會準備整理我覺得很實用的 App,希望對大家能有些幫助!
2010.02.19 3:00 PM 補充:微軟下一代的手機 OS 平台 - Windos Phone 7 Series 也支援將網頁中的電話及地址轉變為超連結,請參考Channel9:First Look: Windows Phone 7 Series Hands on Demo
2010年2月17日
Regular Expression (Regex, Regexp) 心得-1: 如何過濾符合樣式 (pattern) 的資料 (shell command: grep –v / egrep -v)
這次學 Regular Expression 我是看朝陽科技大學洪朝貴教授的講義:一輩子受用的Regular Expressions:兼談另類的電腦學習態度,非常值得反復研讀(會用到Linux & Perl),特別是講義裡面連到的另一篇文章:如何有效學習電腦 (Aug 2001 重新整理),更是值得細讀、好好思考。以下節錄幾段我覺得寫的很棒的:
學習高組合性軟體還有另外一個優點。 資訊科技進步迅速, 而資訊市場更是變化驚人, 我們很難預測那些軟硬體未來會有較佳的就業市場。 學一套多功能聚集於一身但與他人溝通不良的「萬能」軟體, 就像是把所有的雞蛋放在同一個籃子裡一樣危險。
附帶而來的好處, 就是 學習組合軟體, 知識的壽命長, 經驗可以累積。
能夠拿來與其他知識組合運用的知識, 才是投資報酬率高, 生命週期長的知識。 眼光放遠, 慎選所學軟體, 培養組合能力, 讓你的新知識與舊知識發揮相乘的效果, 讓生產力曲線成指數成長! (感謝 GNU 文件的啟發, 本文觀念來自 info -f textutils "Opening the software toolbox" 一節; 也請參考我的 linux 講義當中 「組合的力量」 當中的具體操作實例.)
另外舉一個例子,最近在黑暗大的blog看到一篇:MEMO- 用Javascript RegExp將<x>置換成<span class='x'>,也是一個很實用的例子,在 coding 時當然可以依賴 IDE 提供的搜尋/取代功能,但如果利用程式直接修改 memory 的資料,或者要處理從DB中撈出來的資料,最省時省力的方法還是 RegExp!
(附帶一提,如果只是要把 <c> 換成 <span>, 程式只要以下兩行即可:
var regex = /[<](\/?)c\d>/g;
s = s.replace(regex, "<$1span>");
不用拆成兩段!就算用IDE的搜尋/取代功能也無法一次到位阿!)
ok, 以上的
通常學 RegExp 都在探討怎樣從一堆資料中找出「符合」樣式的字串,很少有資料講到如何顯示「不符合」樣式的資料!但是有時候其實很多資料都是雜訊(例如information log),沒有先過濾掉的話,很容易漏掉真正重要的資料,那麼要怎樣把「符合」樣式的資料過濾掉呢?
經過一段時間的摸索,我發現在 Linux / Unix 裡面,有個非常好用的 shell command: grep,只要加上 -v 這個 switch 就可以達到這樣的效果!-v 的作用如下:
-v, --invert match
Invert the sense of matching, to select non-matching lines.
所以我只要下這個command,就可以過濾掉含有「cat」的資料了:
cat /var/log/messages | grep –v cat
接下來的問題是,如果要過濾多個條件怎麼辦?例如我要過濾掉「有出現 cat 或 dog 或 bat 的資料」,要怎麼做呢?最直覺的想法就是利用 pipe (管線命令) 的功能,一層一層的過濾,指令大概會長的像下面這樣:
cat /var/log/messages | grep –v cat | grep –v dog | grep –v bat
這樣的命令當然很好懂,但同時也很冗長!
再經過一陣摸索之後,我發現可以用 egrep 來解決這個問題,如正規表示式的入門與應用(三)文中所說的 (這篇文章是在 Google 搜尋「egrep」的第一名),利用 egrep 所支援的「|」(邏輯 or) 關鍵字可將指令簡化,簡化後的指令如下:
cat /var/log/messages | egrep –v ‘cat|dog|bat’
這樣是不是簡潔很多呢!要特別注意的是,「|」的前後不能多出空白,否則那些條件會僅剩下最後一個有效喔!(不要加上 -v 的話就是直接列出有 cat 或有 dog 或有 bat 的資料)
以上是 Regular Expression 的好文推薦 + grep / egrep 實例演練,之後會持續整理實務上有應用到的 Regexp 實例,敬請拭目以待 :D
2010年2月11日
feedly - 直覺的重新命名 Google Reader 訂閱資料夾
- 以拖拉 (drag-and-drop) 的方式重新安排訂閱項目:例如把某個 blog 從資料夾A移到資料夾B,在 Google Reader 裡面要做兩次設定才能完成 (把它加入資料夾B、把它從資料夾A中移除)。用拖拉的方式相當的直覺,用起來也很愉快。
- 重新命名Google Reader的資料夾名稱:這功能必須大大的推薦一下!之前保哥寫過一篇:在 Google Reader 中如何修改管理訂閱的資料夾名稱,在無計可施的情況下當然是很感謝保哥整理出一個完整的作法,但是實際運用起來還是相當的累人,透過 feedly 的介面就不用煩惱了,直接 rename 就好!
1.打開 feeedly 介面之後,右上角有個向下的箭頭,點下去就會展開以下的功能列表:
(在 Firefox 上看到的介面正常多了,前一張圖不知道怎麼抓的…||)
2.點選「organize sources」之後,會看到以下畫面,可以重新安排訂閱項目,也可以重新命名資料夾:
點選每個category (也就是 Google Reader 中的資料夾)右邊的鉛筆圖示,就可以直接 rename 資料夾啦!(註:Google Reader的畫面要重新refresh才看的到)
如果點選每個source名稱右邊的鉛筆圖示,則可以重新命名該訂閱項目。
3.想要把一個訂閱項目從一個資料夾移到另一個資料夾?沒問題,例如91哥2010年榮升MVP,於是我就直接以拖拉的方式,把他的點部落blog移到「Microsoft MVP’s Blogs」這個我會優先讀完的資料夾中:
這真的是太方便啦!(註:Google Reader的畫面要重新refresh才看的到)
除了以上兩點功能以外,feedly 清爽的閱讀介面也廣受好評,不過由於我也蠻常在 iPhone 上閱讀 RSS (順便推一下 MobileRSS, 超好用阿!比 Google Reader mobile 版還讚),所以我還是比較習慣 Google Reader 的介面。
另外在MMDays的文章中也提到:「只要feedly把舊文的問題解決,我相信很多人就無後顧之憂的直奔feedly的懷抱了」,也就是一篇文章讀完以後,在 feedly 裡面一律會依閱讀的先後順序被歸類到「history」這個 category 裡面,某種程度上來說破壞了一個 blog 文章的前後連貫性,沒辦法一次列出某個 blog 的已讀文章~
我想如果舊文的問題解決,那我可能會轉換成「在手機上用 MobileRSS,在 PC 上用 feedly」的閱讀方式了吧!
對於如何設定feedly網路上已經有很多好文章,有興趣的朋友請參考以下資料:
- [官網] how to optimize your Feedly experience (building Feedly)
- [MMDays] 簡約,但是不簡單-談 The Big Pictures 與 feedly 的感動,兼聊 iPad
- [重灌狂人] Feedly 取代 Google Reader、更好的閱讀介面 (Chrome 擴充套件)
更新:在 2010.06 Google Reader 終於推出 rename folder 功能,詳細說明請參考電腦玩物-可喜可賀!Google閱讀器終於加入資料夾、標記更名功能
2010年2月9日
World Community Grid – Facebook Integration
- Discovering Dengue Drugs: 研製對抗登革熱、C型肝炎、西尼羅熱、黃熱病等等的藥物
- The Clean Energy Project: 目標找出下一代太陽能電池的材料,可參考這篇介紹
- Influenza Antiviral Drug Search: 目標找出新的藥物,可阻止流感病毒在體內的散佈
這個 AP 提供了以下功能:
- 自動將 WCG 的最新消息與朋友分享
- 可以在FB個人首頁加上一個tab,顯示你對 WCG 的貢獻,以及 WCG 的新聞,如下圖:
另外補充一點,從去年中我開始用Win7 beta以後,WCG Client (BOINC Manager) 就無法正確運作,可以打開執行,但是永遠抓不到 task,開啟來也是在那邊發呆,所以後來就一直放著不管它。一直到前陣子測試,在 Win7 RTM (6.1.7600, x64) 上搭配 6.2.28 版的 client 就可以正確運作,所以現在我的 CPU
以下是目前WCG 的統計數字(2010/2/8):
項目 | 全球 | 台灣 |
Member 數 | 498,007 | 2,542 |
Total Run Time | 316,920 uears | 3861 years |
看來台灣區的member還蠻少的,希望未來可以越來越多,讓WCG計畫可以順利的持續運作下去,雖然 IBM 的東西很貴,但是他們願意支持這樣有意義的計畫,真的是很不錯阿!
2010年2月7日
[Excel VBA] 將重複的機械化工作自動化-自製「Mark Answers as Black」、「Mark Answers as White」按鈕
今天分享一下最近用 excel VBA 做的小功能,在整理題庫的時候發現,想要把原本有題目&解答的word檔拆成兩份,一份仍然維持原本的格式,有題目&解答:
另一份只要有題目就好:
這樣在練習解題的時候可以看第二份檔案,要查答案再看第一份檔案,那麼問題就來了:這份題庫一共有 15 章,每章有 60~80 題不等,總題數大約超過 1000 題!要怎樣在短時間內輕鬆的做出第二份檔案呢?
我想到幾個方法:
- 手動用滑鼠反白選取「Answer:」那行文字,然後用滑鼠點選文字顏色的設定,設成白色 –> 真的要這樣幹的話,大概直接點到中風比較快?!
- 手動用滑鼠移到「Answer:」那行文字之前,然後用「shift+end」選取整行文字,把顏色設成白色,之後再把滑鼠移到下一行「Answer:」文字之前,按F4重複上述設定顏色為白色的動作 –> 嗯,有用到 F4 來啟動 word 自動錄下的 macro,稍微有點進步,但是很不幸的,這份題庫的總題數大約超過 1000 題!所以還是放棄!
- 改進第二個作法,設法讓「再把滑鼠移到下一行「Answer:」文字之前,按F4重複上述設定顏色為白色的動作」可以自動化的對整份文件的內容執行,最好是可以按一個鍵就把整份文件的格式調整好,那麼就愉快了!
經過一番嘗試,完整的程式碼如下 (範例 word 檔可至這裡下載):
最後的成果,左邊是有答案的版本,右邊只剩下題目,超過1000題只花了我10分鐘左右:
要實作這樣的功能並不困難,可歸納為以下幾個步驟:
- 先觀察一下要做的事情,如果是不斷重複的機械化動作,就要想到:應該可以用 excel 內建的 function / VBA 來完成
- 整理出一個可重複執行的流程 (如上述第二點),以程式的觀點來看就是每次跑迴圈時要執行的動作
- 以錄製巨集 (macro) 的方式,錄下手動操作一次該流程所產生的程式碼
- (視情況) 清掉錄到的程式碼中沒有用的東西 (可能是不小心手殘多按到無關的功能等等)
- 在這段程式碼之外加上一個迴圈
- test、test、test
- 加上註解,讓下次有需要使用的時候可以快速回憶
follow以上的流程,就可以大大簡化繁瑣的重複性工作,節省可觀的時間,心情也會比較好!聽說日本的上班族很會用 excel 的 function /VBA 來簡化例行性的工作,與大家共勉之 :p
補充:設定讓 Developer (開發人員) Ribbon 永遠顯示在工具列 (以 Word 2010 為例)
在 File –> Options 中,勾選 Developer:
在 Developer 這個 ribbon 內就可以編修、錄製 macro 囉:
回頭爬了一下 blog 上面的文章,上一次寫跟 VBA 有關的文章居然已經是快要一年半之前了 (第一次認真寫 VBA - -> Report Generator),真是時光飛逝阿!
2010年2月6日
[Tips] 一些 CodeSnippets 的用法
發現了一些好用的 code snippets
於是上 MSDN 查了一下用法,順便分享一下心得 :)
I. 前言
以前坎尼在用 Intellisense 的時候,常會跳出些奇怪的字詞 ex. ctor, prop當時也沒深入研究,想說應該是就是一些沒用過的關鍵字吧
最近剛好在看一些影片,講師很神奇的建立了一些 method 及 屬性
坎尼一恍神不知道發生什麼事,只好使出倒轉,定格,放大再放大大法
總算是發現了講師用的小技巧:Code Snippet
II. 縮寫字 Code Snippets
下面來就介紹一些縮寫字的 Code Snippets(i) ctor = Constructor
只要鍵入 ctor,並按下 tab 鍵,visual studio 就會直接產生該 class 的建構式
(ii) ~ = 解構式,鍵入 ~,再按下 tab 鍵
(iii) cw = Console.WriteLine,cw+tab鍵,寫 Console 時要輸出文字很方便 :)
(iv) mbox = MessageBox.Show,mbox + tab 鍵
坎尼以前最討厭就是 key in MessageBox.Show 這個語法 (又臭又長....)
現在可以用 CodeSnippet 快速解決囉 :)
(v) prop = property 產生 property 的語法,坎尼覺得很實用!!! (嗯,真的沒抓圖
III. 小結
使用快捷語法可以加速自己的開發若是覺得用起來不礙手,坎尼建議可以背一下 CodeSnippet
但也不要忘了原本的語法,省的哪天 Visual Studio 不能用就麻煩了 XD
參考網址:MSDN Default Code Snippets
Google Spreadsheet 裡用規則運算式
最近因為工作關係,遇到要用 Google Form 及 Google Sheet 所以研究了 Google Sheet 裡的一些 function 怎麼用 首先,分享一下如何在 Google Sheet 裡用規則運算 :D
-
今天坎尼去上課老師講了一題很有趣的題目 所以回到家坎尼就順手試驗了一下 I. XOR (exclusive OR) XOR 是邏輯運算子之一,定義為: 當兩數的值不同才為 true,相同則為 false 其他相關說明可以參考 維基百科:XOR II. 程式 以往的做法會宣...
-
好久沒開 Chart Control 議題了 剛好前陣子 Codeplex 出現可以輕鬆建立 Excel 檔案的 Library- NPOI 於是坎尼想說研究一下,看能不能把 Chart Control 匯出圖片到 Excel 中 沒想到只花了不到1小時就研究...
-
上個週末打開一個影片檔,發現字幕檔是中英文混合的,造成字幕吃掉畫面很大的空間, 打開字幕檔一看,果然每一段時間都有先英文後中文的字幕: 因此我想要自己作成「只有中文」&「只有英文」兩個字幕檔,但這個檔案有6418 行,如果要手動一行一行的刪除...