Blog

讓圍棋AI作為覆盤老師的好夥伴-Go Review Partner

看到對岸「百度圍棋吧」的文章:「围棋开源AI棋谱分析工具Goreviewpartner中」與「复盘神器,史上最强!」,得知原來國外有個超棒的免費開源圍棋AI覆盤工具-Go Review Partner。截至目前的版本 (0.11.2),支援了 AQ, Leela, Ray, Leela Zero 等圍棋AI引擎,可以協助玩家對奕後所自行儲存的 .sgf 檔格式 (大都圍棋對奕平台均支援該標準棋譜格式),作完整的棋譜掃描分析後,再儲存為 .rsgf 格式,可以一一檢視每一步圍棋AI所分析的勝率,以及建議的著點。

哇喔~ 我雖然擁有了多套圍棋AI,但實在不想與之對奕,棋力相差太多了。!^^
但是若能讓 AI 作為協助覆盤的工具,那才確實得以發揮真正的用處!對玩者本身棋力的提昇學習,肯定會有相當大的助益。

GRP (Go Review Partner)官網可下載搭配不同種類的 AI。我個人是下載 Leela Zero 64bit 版本,這個版本是支援玩家電腦有中高階以上的顯卡 (最好是 GTX 1080,我個人的顯卡是 GTX 970,運算處理差了些);也可以另外下載純 CPU 版本,但我想 AI 棋力可能會比 GPU 版本差許多吧。

下載回來解壓縮至任一資料夾,直接執行 .exe 主程式即可。
Go Review Partner Screenshot-01

閱讀全文 »

WordPress 自行客製化 Sidebar Widget (隨機瀏覽/最新迴響) Plugin

原來我部落格右側 Sidebar 有使用對岸開發的「WP-RecentComments」plugin 所製成的 Widget,可以採 Tab 標籤方式切換「最近迴響 (recent comments)」與「隨機文章 (random posts)」,內容展示相當具彈性且不會佔據過長的版面。可惜該作者已停止維護,如使用在最新版本的 WordPress (4.9+) 啟用後在後台會有些錯誤訊息,是還可以使用,但總覺得不太妥當。

嗯,乾脆就自行實作類似的功能來撰寫屬於自己的第一支 wordpress plugin 小插件。整整花了一天,算是採以硬寫的方式,不是那麼具有客製化的設定,但起碼確實運行幾乎與原來上述的插件功能一般。尚差在沒有提供上下頁採 AJAX 的導覽功能,那比較麻煩些,可能就留待後續版本再來補充進來。

嗯,我是打算自行使用即可,所以並沒有公佈至 WordPress 官方的 plugin 儲庫內。不過為了後續的維護便利,我給上傳至 GitHub,並命名為「wp-plugin-tabbed-content-widget」 專案。若有部落格有興趣採用或研究者,歡迎自行下載即可。

先瞧瞧啟用該 Widget 後所展現的 Screentshot 效果:

閱讀全文 »

論述軟體三大基礎觀念-封裝、一般/特殊化 (繼承)、介面/多型

這是看到 PTT Soft_Job 版區一位網友的貼文:[請益] 我這樣解釋OOP對嗎?。原來我已在「FB-軟體設計鮮思維社群」針對此貼文已寫一篇文論述,在此邊我也把回文作個備存,然後再加上一些些心得分享。

剛入門所謂 OO → 連帶等同所謂「物件導向」觀念實作與設計觀念時,幾乎各類 OOP 入門書籍均會談論到此三大術語:封裝 (encapsulation)、繼承 (inheritence)、介面 (interface)/多型 (polymorphism)。看似簡單的術語,卻可能連多數鑽研多年實作的程式開發人員,還不容易真正體會這些觀念的意涵與作用。

即使入這軟體開發行業多年,仍會發現到,軟體大師們的著作,從最早期的 GoF 四人幫「設計模式 (Design Pattern)」,至近幾年「重構 (refactoring)」、「Clean Code」等著作,幾乎都是含繞在上述三大觀念的解釋與實踐。所以也就是說,這三大觀念可以說是要窮究一輩子的研究、思考與實踐力行的,它沒有絕對的標準答案,但也不見得好像很虛妄抓不到。每一段時期的經歷與學習,就可能會對其有著不同的想法與心得體會。

以現在個人入行軟體開發這行業約莫10來年,主要專職於軟體顧問輔導與教學,就以現階段綜合學習、觀察、反思與經驗等,來對這三大術語發表純文字的論述。可能又等 5~10 年後,當又有不同的體認時,再來對比現在的論述,作心得的補充或修正了。 :)


花了三個多小時撰寫這篇 PO 在 PTT soft_job 版,關於 OOP 的三個主要觀念:封裝, 繼承, 介面/多型。

這裡特別提醒下,程序語言用書很喜歡用「繼承」這字眼來解釋 OOP,其實那很容易誤導,常會用 父母生子 這種觀念看待。適切的用語用 "擴展 (extend)" 較適合。UML 稱之為 一般化/特殊化更是合理。

閱讀全文 »

WordPress 系統暨版面大更新 (2018/04)-Bootstrap 4 based 框架

我的 WordPress Blog 系統第一次改版是在約 7年多前,詳見 - 重新設計本站 WordPress Theme 版面

當年是從無到有自行 "硬刻" CSS Layout,也不懂得如何運用如 Bootstrap UI 框架,讓版面可以隨不同裝置而能更具有彈性的調整。不過即使這樣,最多透過一些挺好用的 Plugin 工具,倒是只單純撰寫 Blog,卻是足足有餘了。

不過今年初 (其實去年底就有這打算),我就決定採基於以 Bootstrap 4 框架來重新設計整個網站的版面。我並不打算採買一些花炫的佈景主題 (Theme),而是採以較基本的 Starter Theme,再整合包括 Bootstrap + Fontawesome 等具UI框架與豐富的圖示等當為網站建置的基礎建設。可參考先前寫的這篇:關於建構 WordPress Starter Them-整合 Underscore 與 Bootstrap/FontAwesome

我把這自行所已整合的 Starter Theme,命名為「SimplicityZen」專案,並放置於 Github,而後可以持續更新上述的套件版本,透過 Git 版本管控維護。

這算是基底佈景主題的基礎建設。我把它當成「parent theme」,然後再從其 extend child theme,這是 WordPress 官方建議的作法,好處就是客製化全在 child theme 這邊修改,而 parent theme 則可以另行維護。

因為我打算把 WordPress 首頁 (frontpage) 設計為聚合性資訊的首頁。包括個人擔任軟體顧問、講師相關的課程、產品與輔導等資訊,再整合原來 Blog 日常的內容文章,以及軟體專欄文章等,所以我必須自行利用 PHP 撰寫這個首頁的 Layout,完全是重頭開始刻寫的,著實花了不少時間。

我現在是把軟體課程與產品資訊等內容,設計為客製化的文章類型 (custom post type),並各為其再新增客製化的欄位 (custom field),這些都有賴於 WordPress 提供了非常豐富實用的 Plugin,擇選普遍評價較高,且有持續更新的來使用即可,這節省了太多功夫了。

所以現在首頁是聚合型 (aggregation)的整合資訊。至於「部落格」內容,則是點選選單列 (或單選首頁最新文章)進入;「軟體課程內容」也是透過選單列進入,可以查看年度所有課程列表,或者單一課程詳細內容資訊等。後續包括「產品資訊」、「顧問輔導」等,也都是個別獨立於選單列 (Menu, NavBar)。
Kenming's Website FrontPage

閱讀全文 »

關於建構 WordPress Starter Them-整合 Underscore 與 Bootstrap/FontAwesome

其實整合 UnderscoreBootstrapFontAwesome 原理並不困難,簡單的說就是以 Underscore 所創建的 Starter Theme 為基底,具有基本的檔案結構與基本的 PHP 檔案的關聯,然後再逐一調整 PHP 檔案內容 (例如 index.php),加入 Bootstrap 與 FontAwesome 的 CSS排版/Javascript動態效果。

雖說原理不難,但也花了一些時間弄懂這些套件之間的關係,然後再查詢相關整合的文章,底下是我大概找出比較實際的 How-to 文與影片:

o how to create bootstrap underscore wordpress theme step by step guide
o Combining Bootstrap with Underscores
o WordPress Theme Development Tutorial with Bootstrap & Underscores WP Starter Theme

在設計 Starter Theme 的過程,強烈建議下載 WordPress Theme Unit Test Data,甚至最好是創建一個專屬開發測試的 WordPress 網站,只放上與佈景主題設計相關的 Plugin,例如「Theme Check」、「Show Current Template」等,這些都對開發過程中相當有幫助。

閱讀全文 »

聊聊 WordPress 佈景主題與 Starter Theme 的設計

近日準備要把我原來從空白佈景所建構的 WordPress 部落格來個大幅度的版面變更。

起碼花了一兩個星期時間來了解關於 WordPress 佈景主題 (Theme)這個領域的相關資訊。老實說,還挺有趣的,我才知道原來有諸多國內外的工作室專門在開發佈景主題並當成產品販售的。尤其若上架到 ThemeForest 這個平台,比較熱門的產品可以賣到多達上萬套以上,而每套價錢大約從 US$30~99 美金的都有,而且大都還是只有提供一年的免費服務更新與諮詢。難怪乎這市場已經可以大到養活許多專事開發 Web 端佈景主題開發的設計公司了。

我現在輔導的客戶單位其中有一家就是花了上百美金購買了一套可以應用在企業網站建構的佈景主題,所以可以就近觀摩。不過我發現到,似乎不太適合我,因為用了某一家的 Theme 後,雖然可以快速的建構網站與內容,但會被「綁架」,因為網站的基礎建設/工具幾乎都依賴這套佈景主題,極難抽換掉。

原來這些佈景主題的對象比較偏向是完全不用 Coding,連 HTML/CSS 等都不用了解 (但其實我發現還是需要有些基礎知識),只要專注利用其工具與所提供的元件,快速的「兜」起來頁面,組成豐富的內容就可。

所以光是所謂的「Page Builder」就相當講究,而且真的很容易短短幾分鐘內就可以組出排版相當豐富的頁面出來。我自己也安裝了一套免費且相當簡潔許多的「SiteOrigin」,真的比從無到有自行排版的方式簡單太多太多了。

閱讀全文 »

軟體思維顧問

專職軟體輔導與教育訓練的獨立顧問。輔導企業資訊單位如何有效組織系統開發與維護;輔導開發人員達成有效的專業分工。傳授如何把軟體作軟 (Keeping Software Soft)的技能,得以提昇系統的彈性/延展,並進而創造系統的再利用價值。

Personal