Openshift上免費的Wordpress服務

更新:Openshift 的舊版 v2 平台已於 2016 年 8 月停止新帳號的註冊申請。新的 v3 平台開發者預覽版,註冊後只能使用 30 天,超過 30 天後帳號會被刪除。

如果想嘗試 Wordpress,但不想買外面的空間服務,也不想自己安裝的話,Openshift 上提供的 Wordpress 服務,是目前 PaaS 平台上,較划算的選擇。

Openshift 是 Red Hat 的 PaaS 平台,我曾經使用過一陣子,覺得非常穩定,速度也比其他家的 PaaS 平台快。

Openshift 的 WordPress 服務的免費方案有1 GB的空間,流量免費,可以綁定自己的網址,還支援 FTP 和 SSH,另外也可用 myPHPAdmin 來管理 PHP 和 MySQL。

以下說明在 Openshift 啟用 WordPress 的程序。

首先要在Openshift註冊帳號,註冊網址如下:
https://openshift.redhat.com/app/console/applications

完成註冊之後,回到Openshift Web Console,點選「Create your first application now」新增應用程式。

接下來是設定這個應用程式的公開網址,請自行取名。

然後選擇機房位置,預設選擇 aws-us-east-1(AWS美東機房),完成之後按下「Create Application」,開始創建應用程式。此時需要靜待幾分鐘,這段時間 Openshift 會自動安裝Wordpress程式,並完成後台相關設定。

最後完成的畫面如下,顯示 MySQL 的帳密和連線方式,以及欲修改程式時,git repo 的連線方式。

日後可以從 Openshift Web Console 做為應用程式維護的入口。

如果要安裝 phpMyAdmin,可以點選下方的「Add phpMyAdmon 4.0」進行安裝。從上方的應用程式連結可以開啟 Wordpress,一個全新的 Wordpress 就會開啟了。若要改成自訂網域名稱或使用 SSL,可以從「change」連結去設定。

首次開啟 Wordpress 連結,會進行應用程式的設定,此為 Wordpress 第一次安裝時的必要步驟,按照指示逐步設定即可完成。



分類: , , ,

IE 終止服務日:2016年1月12日

微軟終於決定在2016年1月12日起終止對舊版 IE 瀏覽器的支援,僅繼續支援 IE 11。這個決定也象徵 IE 時代正式結束。


這對網頁工程師是一個好消息,雖然還有 IE 11和新版 Edge 瀏覽器的相容性問題要處理,但至少在網頁設計時,不必再處理惱人的 IE 6, 7, 8 , 9 , 10 相容性。被客戶問到網站為何不支持 IE 時,終於可以名正言順的說出:「微軟不支援舊版 IE 了!」不爽不要用!

微軟官方網站的說明



分類: ,

Android Studio 升級後無法編譯的解決方法

Android Studio 1.5 版最近釋出,裝好後如果發生無法編譯,並出現以下錯誤訊息:
Android Studio: Error:/android-studio/gradle/gradle-2.4/lib/plugins/gradle-diagnostics-2.4.jar (No such file or directory)


解決方法:將 gradle 路徑指向最新版本

開啟 grade-wrapper.properties 檔案後(位置在 Project Folder > gradle > wrapper ),將最後一行置換為:
distributionUrl=https\://services.gradle.org/distributions/gradle-2.8-all.zip

然後重新 Sync,就可以正常編譯了。






分類:

[Android] TabLayout

Android 的 Tab 有很多實作方法,最早是用 TabHost,然後有 SlidingTab 的出現。之前的 Tab 實作方式都挺麻煩的,現在新版的 Android Support Design Library 直接多了一個 Tab 控件 TabLayout,簡化 Tab 的實作方式。

首先,Gradle 要先導入兩個 Android 函式庫。
compile 'com.android.support:appcompat-v7:23.1.0'
compile 'com.android.support:design:23.1.0'

頁面 Layout 加入 android.support.design.widget.TabLayout 和android.support.v4.view.ViewPager。tabMode 如為 fixed 表示 Tab 會固定延伸整個頁面,scrollable 則允許 Tab 超出頁面範圍時可以捲動。
這是 tabMode = fixed 的效果
這是 tabMode 沒有 fixed 的效果

這是 onCreate 事件的程式。
增加一個 ViewPagerAdapter,來處理 Tab 的內容。在第3行的陣列中再增加一個值,就會多增加一個 Tab。此由第21行的 Singleton 模式處理。

新增一個 class 來處理 ViewPagerAdapter 的 Tab Fragment,好處是不必每新增一個Tab還要增加一個 Fragment。
最終的成品,除可點選 Tab 切換之外,也可左右滑動切換 Tab。

本文的完整程式碼,請自行參考。

參考資料





分類: ,

[Android] Crosswalk: 取代 WebView 的函式庫

Android 原生的 WebView ,必須相依於 Android 底層作業系統。Android 的版本碎片化的情況,也使得 WebView 可能依賴於不同的版本,導致手機 Web App 的開發者不容易控制應用程式的品質。

Crosswalk 是一個由 Intel 支持的開源專案,旨在提供高效且一致的 WebView 函式庫,其背後的引擎使用的是 Chromium。相容於 Android ARM 和 x86 版本、iOS、Windows,也支援 Cordova。

依照 Intel 網站上的說法,Crosswalk for Android 在執行 HTML5 的效能,比 Android 原生的 WebView 更佳。
來源: https://software.intel.com/en-us/xdk/docs/why-use-crosswalk-for-android-builds

以下介紹如何在 Android Project 中使用 Crosswalk。


首先,從 Maven 取得 Crosswalk 函式庫。
這裡要先指定 Maven 的 Repository
repositories {
    maven {
        url 'https://download.01.org/crosswalk/releases/crosswalk/android/maven2'
    }
}

然後指定函式庫名稱及版本號,這裡的函式庫包含 ARM 和 X86 版本,函式庫約有 40 MB,因此會造成編譯後的 APK 檔案膨脹。
compile 'org.xwalk:xwalk_core_library:15.44.384.12'

在頁面 Layout處,加入以下區塊
<org.xwalk.core.XWalkView
    android:id="@+id/webView"
    android:layout_width="fill_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

最後,簡單加上兩行程式碼,就能顯示 Crosswalk 的 WebView。
XWalkView webView = (XWalkView) findViewById(R.id.webView);
webView.load("http://www.google.com", null);

使用 setUIClient,可以藉由複寫 onPageLoadStarted 和 onPageLoadStopped 兩個方法,來得知 WebView 開始載入頁面,和已完成頁面載入。
webView.setUIClient(new XWalkUIClient(webView) {

    @Override
    public void onPageLoadStarted(XWalkView view, String url) {
        super.onPageLoadStarted(view, url);
        Log.d(TAG, "onPageLoadStarted");
    }

    @Override
    public void onPageLoadStopped(XWalkView view, String url, LoadStatus status) {
        super.onPageLoadStopped(view, url, status);
        Log.d(TAG, "onPageLoadStopped");
    }
});

若複寫 onProgresChanged 方法,則可得知網頁載入的進度。
webView.setResourceClient(new XWalkResourceClient(webView) {
    @Override
    public void onProgressChanged(XWalkView view, int progressInPercent) {
        super.onProgressChanged(view, progressInPercent);
        Log.d(TAG, "onProgressChanged = " + progressInPercent);
    }
});

實測 Crosswalk 發現,載入網頁的效能確實比原生的 WebView 快不少,Crosswalk 也支援相當多 HTML5 多媒體 API 可供呼叫,但使用 Crosswalk 造成 APK 檔案過大則會是在使用上需要考量的問題。

最後,要在Activity結束後將WebView釋放,以避免記憶體泄漏的問題。

    @Override
    protected void onPause() {
        super.onPause();
        if (webView != null) {
            webView.pauseTimers();
            webView.onHide();
        }
    }

    @Override
    protected void onResume() {
        super.onResume();
        if (webView != null) {
            webView.resumeTimers();
            webView.onShow();
        }
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        if (webView != null) {
            webView.onDestroy();
        }

參考資料






分類:

鍋貼野球

十二強棒球賽正如火如荼進行中,但台灣隊又吃了鍋貼,聯合報的標題寫到「12強棒球賽-中華好強-但,沒進八強」,真是太貼切了。自從1992年之後開放職業球員打國際賽,台灣隊每次都相當悲情,雖然國際賽總是越打越好、漸入佳境,可是還是吃了好多次的雖敗猶榮四海遊龍鍋貼。如往常一樣,這次還是有好多鍵盤教練發文檢討、追討戰犯,但這些都是結果論,於事無補。網路上的檢討文已經夠多了,身為鍵盤球迷,這篇想寫些有建設性的文章。

分類:

如何使用Google查詢即時股價

Google搜尋框除了輸入關鍵字之外,其實還有許多不為人知的密技。例如可以用Google搜尋框來查詢世界各地上市公司的股價。

語法格式:[股市代碼]:[股票代碼]

舉例來說,要查詢蘋果股價,就輸入「NASDAQ:AAPL」,就會出現當日股價,如果過了收盤時間,還會顯示盤後走勢。除當日股價之外,也可查詢不同時間的股價趨勢。

台股的股市代碼是「TPE」,所以想知道台積電的股價,就搜尋「TPE:2330」。

手機上若已安裝Google Now,在Google Now顯示股價列表,點選個股資料,也會連結到Google,帶出這張個股趨勢圖。



分類:

[閱讀筆記] Becoming a Better Programmer

這本書的中文名稱是「成為卓越程式設計師的38項必修法則」,作者Pete Goodliffe是另一本經典書籍「Code Craft」(中文書「編程創藝:編寫出卓越的程式碼 」蔡學鏞 譯) 的作者。

這本書沒有一行程式碼,不是技術書籍,全書以作者的經驗,將工程師在工作中應具備的能力分為38個章節來論述。但不是如中文書名所述,有38項法則。書中花了很多篇幅的章節,介紹新人接手前人的工作後,在沒有後援,而程式碼一團混亂的情況下,要如何「在別人的污物中打滾」,才能因應困境與改善現況。

這本書非常值得閱讀,書中諸多觀點都和「The Clean Coder」一書不謀而合,值得工程師在職涯中參考與遵循。

真要挑惕的話,就是這本書的中文翻譯品質不佳,「單元測試」被譯為「單位測試」,譯者賴屹民翻譯了很多電腦書,卻犯了這樣的錯誤。一般來說,歐禮萊書籍的翻譯品質都不錯,而本書卻是少數的例外。另外,這本書在每個章節末,都附上一則小漫畫,可是翻成中文之後完全看不懂啊!



分類:

資料科學書單

資料科學(或大數據)這個議題最近一直很夯,以下列出最近幾個月我看過的六本相關書籍,以及一點點的閱讀心得,僅供參考。

1. 精準預測:如何從巨量雜訊中,看出重要的訊息?

博客來書店
可讀性 ★★★★★

非常推薦這本書!本書作者Nate Silver曾開發過棒球預測系統,也曾預精準預測2008年美國大選。這本書中,作者分享了他的預測思考方法。這本書原文的直譯書名是《訊號與雜訊》,現實生活中,存在一大堆資訊,這些資訊當中,很多都是沒有用、容易誤導人的雜訊。很多人容易把相關性和因果關係搞混,因此時常出現莫名的新聞和笑話。學習區別相關性和因果關係,可以過濾掉很多不必要的雜訊資訊。


2. 大數據


博客來書店
可讀性 ★★★☆☆

本書作者Mayer-Schonberber是牛津大學教授,上個月曾受邀來台灣演講。這本書主要在講述大數據的概念,適合入門者閱讀。

3. 魔球:逆境中致勝的智慧博客來書店 

博客來書店
可讀性 ★★★☆☆
魔球小說,本書的故事情節曾被翻拍成電影

4. 老虎、蛇和牧羊人的背後:如何在大數據時代破解網路騙局與專家迷思,善用個人力量做出聰明決定


博客來書店
可讀性 ★★★★★

大推這本書,本書書名雖有大數據,但實際內容和資料科學相關性不大,這本書列舉了非常多有趣的例子,說明數據是如何被扭曲和操弄,以至於出現很多的網路騙局和迷思。網路傳言難以分辨真假,不要全盤接受,信以為真,而要有自行判斷是非真假的能力。


5. 輕鬆搞懂數字爆的料:不需統計背景,也能練就數據解讀力


博客來書店
可讀性 ★★★☆☆

6. 如何用大數據強化人才力? Google、星巴克、Whole Foods都在用的解碼管理法則


博客來書店
可讀性 ★★★★☆

這是Klick Health這間公司的經營團隊寫的書,介紹這間公司以資訊系統來蒐集員工資料,並分析來作為專案管理、團隊合作、薪資調整、績效考核等用途,並引用了許多企業內部應用大數據的案例。這是少數大數據相關書籍中,以企業內部應用為案例的書籍。







分類:

新手如何自學一項新技術

投入高手如林的資訊界工作也有十多年了, 因為自己非資訊科系的背景,不但起跑點落後別人甚多,也沒有強者朋友的加持,所以在技術這條路上走的跌跌撞撞。我幾乎全部的技術都是自學的,有些技術雖然有去舫間的訓練中心上過課,可是成效不好,最後還是自己摸索才學會的。

這篇文章想分享自學技術的心得,資訊技術日新月異,也因為開發流程的進化,使得技術更新愈來愈快速,如果缺少「自學」的能力,將來勢必難以在競爭激烈的資訊業生存。

學習新技術可以分成:「學習」、「練習」、「分享」三個階段,分別說明如下。

分類:

Copyright © Andy Cheng

Distributed By My Blogger Themes | Blogger Theme By NewBloggerThemes Up ↑