详情

全站展示位

Youtube IFrame API Unable to post message Issue小惡魔AppleBOY

YouTube IFrame Player API 提供了簡單的介面及方法,讓網站可以快速整合 Youtube 影片,但是不得不說 Google 針對 Youtube API 時常改版,所以就會常常碰道友時候可以動,有時後不可以動。Youtube 在 2011 公告開始支援 時,都會使用底下寫法 。。。

推荐

啟動 Percona XtraDB Cluster 注意事項小惡魔AppleBOY

在 Percona XtraDB Cluster 推出 5.5.28 以前,最簡單的啟動方式就是打開 my.cnf 設定 wsrep_urls 在 [mysqld_safe] section 內。假設我們有三台 Node 分別為底下 IP: node1 = 192.168.1.100 node2 = 192.168.1.101 node3 = 192.168.1.102

MySQL 預設儲存引擎: InnoDB 介紹小惡魔AppleBOY

MySQL 是一套眾所皆知的 Database System,今天來簡介 InnoDB 儲存引擎,在 MySQL 5.5.5 之前預設的儲存引擎是 MyISAM,但是為什麼在 5.5 之後官方要將預設儲存引擎換成 InnoDB 呢?大家都知道 InnoDB 用來交易管理非常方便,因為 InnoDB 透過 row lock,相對於 MyISAM 透過 table lock 來的有效率,也避免大量寫入的時候,造成無法讀取資料,這就是 row lock 的優勢,當然用 InnoDB 最主要的原因還有 Full-text search indexes 功能,但是別擔心 MySQL 5.6.4 之後(含此版本) InnoDB 開始支援 Full-text search 功能,另外在使用 MyISAM 時候,如果資料突然出問題,還必須使用 MySQL Binary Log 來恢復資料,如果用 InnoDB 這就沒關係了。大家還在用 MyISAM 嘛?開始升級伺服器,一起體驗 InnoDB 的功能,如果已經上線很久的網站,作者不建議轉換,因為可能會遇到很多雷。

[CSS] IE 6, 7, 8 FireFox hack 支援透明背景圖 background or img javascript小惡魔AppleBOY

先前在國外部落格發現一篇非常好用的教學:Quick Tip: How to Target IE6, IE7, and IE8 Uniquely with 4 Characters,裡面有提供一部教學影片,非常好用,也很實在,底下可以先看影片,看完大概就可以針對 IE, FireFox, Chrome 進行 CSS Hack。 目前網頁製作,要符合多瀏覽器跨平台(IE, Safari, Chrome, FireFox…等),就必須動到 CSS Hack,雖然 Google 已經宣稱不支援 IE6,但是很多單位,很多學校跟客戶都是使用 IE6 瀏覽器,不只國內這樣,國外大廠也都希望支援 IE 系列,包含 IE6, IE7, IE8,這時候就必須知道如何分別針對各種不同 IE 做設定,底下就來看看實做例子。

如何使用 PPA 升級 Ubunut Firefox 瀏覽器到 4.0小惡魔AppleBOY

作者目前使用 Ubuntu 10.10 (maverick) 桌面環境,也是台灣 MozTW 成員之一,這次 FireFox 4.0 Release 介面有些改變,使用上來也非常順手,記憶體好像吃的比較少了?(有待商榷),現在就來升級 FireFox 吧,兩種升級方式,如果不熟悉 Command Line 就用 GUI 升級,另一種升級方式就是用 apt-get upgrade 啦。 如果用 Windows 請到這裡下載 利用 GUI 介面升級 (Install firefox 4 using GUI) 我的環境是英文,所以底下寫的是英文安裝方式: 按照底下步驟進行 Applications > Ubuntu Software Center > Edit > Software Sources 之後點選 "Other Software" 選擇左下角 "Add" 按鈕,接著把底下文字輸入 ppa:mozillateam/firefox-stable 最後到底下升級,就可以開始使用 FireFox 4 了 System > Administration > Update Manager 文字介面升級 (Install firefox 4 using terminal) 只要鍵入三行指令即可 $ sudo add-apt-repository ppa:mozillateam/firefox-stable $ sudo apt-get update $ sudo apt-get upgrade 沒圖沒真相啦,底下附上桌面截圖 Reference: How to install firefox 4 in ubuntu using PPA Firefox 4 正式版現已推出,帶給您更棒的網路體驗

心灵鸡汤

  三国时期,东吴名臣陆绩乘船渡河,遇到大风浪,需要东西压船,陆绩身无长物,更没有钱财等,最终只寻得一块巨石,度过了风浪。

  这块“压舱石”如今还矗立在苏州古城内文庙府学明伦堂前,石面正中刻有“廉石”两个大字,左下方落款:“赐进士弟,文林郎巡按直隶苏松等府监察御史河南胙城樊祉立,弘治九年,岁在丙辰夏六月吉旦。”

  廉石承载了郁林太守陆绩为官清廉、为民造福的高尚品质。

列表展示

主站展示位

[Linux] CentOS 5.1 安裝 Lighttpd + PHP5 + FastCgi + eaccelerator小惡魔AppleBOY

昨天網站無緣無故被擋掉,原因是我的流量網站太大,囧,因為是架設 web site,測試一下效能,我發現 = 這個東西,這樣才可以找到。 首先先看你的版本再來抓: RHEL5 / CentOS-5 i386:

[Linux] CentOS 4.4 安裝 Openwebmail + spamassassin 擋垃圾信的設定方法小惡魔AppleBOY

其實以現在linux安裝方式已經相當容易了,不像以前都要tarball安裝,相當複雜,昨天安裝 openwebmail 只花了幾分鐘的時間,目前系統CentOS4.4 主機相當好,所以安裝起來特別快 想利用 yum install 的安裝方式,不過發現沒有 openwebmail 的套件,所以上網找了rpm 注意:要架設 Open Webmail 前,請務必先將 postfix(架設mail伺服器)、dovecot(POP3伺服器) 架設好

有效率的用 jsonnet 撰寫 Drone CI/CD 設定檔小惡魔AppleBOY

Drone 在 1.0 版本推出了用 jsonnet 來撰寫 YAML 設定檔,方便開發者可以維護多個專案設定。不知道大家有無遇過在啟動新的專案後,需要從舊的專案複製設定到新專案,或者是在 .drone.yml 內有非常多重複性的設定,假設 Go 語言的開源專案需要將執行檔包成 ARM64 及 AMD64 的映像檔,並且上傳到 Docker Hub,底下是 AMD64 的設定檔範例。剛好在 Udemy 課程內有學員詢問到相關問題。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 --- kind: pipeline name: linux-arm64 platform: os: linux arch: arm64 steps: - name: build-push pull: always image: golang:1.11 commands: - "go build -v -ldflags \"-X main.build=${DRONE_BUILD_NUMBER}\" -a -o release/linux/arm64/drone-discord" environment: CGO_ENABLED: 0 GO111MODULE: on when: event: - push - pull_request - name: build-tag pull: always image: golang:1.11 commands: - "go build -v -ldflags \"-X main.version=${DRONE_TAG##v} -X main.build=${DRONE_BUILD_NUMBER}\" -a -o release/linux/arm64/drone-discord" environment: CGO_ENABLED: 0 GO111MODULE: on when: event: - tag - name: executable pull: always image: golang:1.11 commands: - ./release/linux/arm64/drone-discord --help - name: dryrun pull: always image: plugins/docker:linux-arm64 settings: dockerfile: docker/Dockerfile.linux.arm64 dry_run: true password: from_secret: docker_password repo: appleboy/drone-discord tags: linux-arm64 username: from_secret: docker_username when: event: - pull_request - name: publish pull: always image: plugins/docker:linux-arm64 settings: auto_tag: true auto_tag_suffix: linux-arm64 dockerfile: docker/Dockerfile.linux.arm64 password: from_secret: docker_password repo: appleboy/drone-discord username: from_secret: docker_username when: event: - push - tag trigger: branch: - master

[FreeBSD] 利用 portmaster 升級 PHP 5.26 -> 5.28小惡魔AppleBOY

之前在 大神 那邊看到一篇 升級 PHP 5.2.8 的一些小細節,就來把我的機器升級一下,發現 php 5.2.7 之後已經把 pcre extension 納入在裡面,參考 /usr/ports/UPDATING 裡面的  20081211 這個項目,可以利用 portupgrade 或者是 portmaster 來升級,之前都是利用 ruby 寫的 portupgrade 來升級系統或者是更新安全性,現在利用 portmaster 這一套也是不錯用,portmaster 是用 sh 寫出來的,在 gslin 大神這一篇:portupgrade、portmaster、portconf 說到速度方面比 portupgrade 還要好,這我沒有實際測試過,自己在實際用了一下,還蠻方便的。 安裝 portmaster 跟 portconf 搭配: cd /usr/ports/ports-mgmt/portconf make install clean cd /usr/ports/ports-mgmt/portmaster make install clean

在 Go 語言用 singleflight 解決快取擊穿 (Cache Hotspot Invalid)小惡魔AppleBOY

上圖是在實作 Web 服務時常用的架構,會在服務跟資料庫之間加上快取,以減少資料庫的負載。然而在實作服務串接時,常常會遇到快取三大問題:雪崩、擊穿、穿透,其中 Cache Hotspot Invalid (快取擊穿) 是一個非常常見的問題,當快取中的資料過期或消失時,大量的請求會同時打到後端資料庫,這會導致資料庫的負載過大,甚至會導致資料庫掛掉,如下圖某篇文章的 cache key 過期。這篇文章將會介紹如何使用 Go 語言內建的 singleflight 來解決快取擊穿的問題,這是 sync 套件中的一個功能,可以避免重複的請求同時打到後端資料庫。

[PHP] 如何更正系統時間 timezone_set小惡魔AppleBOY

相信很多虛擬主機都會碰到時間的問題,比如說少 8 小時,或者是多 8 小時,現在只要在執行 php 的前端加上 date_default_timezone_set("Asia/Taipei"); 這樣就會更新到正確時間了,這樣在使用 mktime() 就沒啥問題了 或者去系統改 php.ini 檔案 ;Defines the default timezone used by the date functions date.timezone = Asia/Taipei Linux 系統校正時間,可以執行底下 Script: # check if link file [ -L /etc/localtime ] && unlink /etc/localtime # update time zone ln -sf /usr/share/zoneinfo/Asia/Taipei /etc/localtime aptitude -y install ntpdate ntpdate time.stdtime.gov.tw # write time to clock. hwclock -w

關於 PHP FIG Group 所制定的 PSR-0, PSR-1, PSR-2小惡魔AppleBOY

上禮拜寫了一篇 寫出好維護的 PHP 程式碼,看到 gslin 大神回應了一篇 關於可維護的 PHP 專案:PHP-FIG 的 PSR-0、PSR-1、PSR-2,其實我已經關注 PHP FIG 有一陣子了,FIG 所定義的三份文件 PSR-0 (Auto loading Standard), PSR-1 (Basic Coding Standard), PSR-2 (Coding Style Standard) 寫的非常清楚,目的就是讓 PHP Open Source 專案有共同的 Coding Standard,方便大家共同開發。所以上禮拜提到的投影片內容有大部份參考了這份文件,裏面的內容比較不同的地方就差於 Control Structures 部份,舉個簡單例子: 寫 if 條件式,網路上只有兩種寫法 <?php if ($a == $b) { …… }[/code] 另外一種寫法 [code lang=“php”]<?php if ($a == $b) { …… }[/code]

SSH SCP 速度小惡魔AppleBOY

好快阿 這是我用過最快的了~ snapshot2 Hosted on Zooomr 哈哈,雖然說在同一個hub底下 這算是蠻正常的 哈哈~ 11.1MB的速度在跑 不是蓋的

[Ubuntu & java] java JDBC and MySQL小惡魔AppleBOY

最近開始要摸 java 了,目前大概先實做 java with JDBC 連接 MySQL,所以在 JavaWorld@TW 這裡找了一些相關的文件,目前我在 Linux 底下實做,還沒找到一套很適合的 IDE Tool 來撰寫程式碼,大家好像都很推 netbeans 跟 eclipse,不過我目前還是使用 PSPad 來撰寫 java 程式碼,然後透過 FTP 的方式編輯,這不是重點,重點是要透過 jdbc 來連接 MySQL,目前是在 Ubuntu 7.04 這一版本上面實做,底下是實做方法: 1. 首先先安裝 deb 檔案:透過 apt-get 的方式 # # 首先尋找 java lib with mysql apt-get install libmysql-java 2. 安裝好之後尋找 jar 檔案,加入到 class path 裡面 # # 首先 echo $CLASSPAT # # java mysql jar 檔案如下 /usr/share/java/mysql.jar # 加入 CLASSPATH,修改 /etc/bash.bashrc export CLASSPATH=$CLASSPATH:/usr/share/java/mysql.jar # 然後在 source /etc/bash.bashrc

Upgrading to CodeIgniter 2.0 (升級 CI 到 2.0 版本)小惡魔AppleBOY

2011.02.09 Update: 由於官方推出 2.0.0 的升級方式,請參考升級版本 1.7.3 到 2.0.0 在國外文章看到 Phil Sturgeon 已在今年三月發佈了一篇如何將目前 CodeIgniter 版本升級到 2.0 開發版本,轉移的經驗會在底下做介紹,PyroCMS 是該作者產品之一,也升級到 2.0 了,大家可以參考看看。

Laravel Homestead 2.1.5 版本將不再刪除舊有資料庫小惡魔AppleBOY

Laravel Homestead 提供一套虛擬機器,讓開發者可以快速將 Laravel 環境架設起來。在 2.1.5 版本以前,要新增新的 Site 都會透過修改 yaml 設定檔後,直接下 homestead provision 來重新啟動 VM,問題就來了,此指令會將現有的 Database 全部刪除,重先建立一次,這樣開發者就要重新跑 DB Migration 才有資料。此問題作者聽到了,所以在 2.1.5 版本作者拿掉 Drop Database 指令,而是透過 CREATE DATABASE IF NOT EXISTS 來取代原有指令 (下面程式碼),這樣開發者就不用擔心資料會被刪除。當然作者也很貼心,如果開發者想要清除整個資料庫,一樣可以透過指令 homestead destroy 來將整個 VM 刪除即可。 // 取代原有 mysql -uhomestead -psecret -e "DROP DATABASE IF EXISTS \`$DB\`"; mysql -uhomestead -psecret -e "CREATE DATABASE IF NOT EXISTS \`$DB\` DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_unicode_ci"; 詳細的資訊可以參考 official documentation,或參考最近修改的 commit 內容。

Gitlab CE + Gitlab CI 打造版本控制及自動測試流程小惡魔AppleBOY

Git 版本控制不管在嵌入式或 Web 領域都是很受歡迎的工具,尤其是不會遇到像 svn 搞爛 source tree,然後又要 Google 一堆解法。一般公司入門大概就是買 Github 服務,一個月才五美金,可以提供五個 Private Project,當然你也可以不付錢,而去使用 Bitbucket,好處就是無限的 Private Project,唯一的限制就是開發者數量,只能在五個以內,設定超過五個,就不給 push 或 pull 了,完成版本控制後,接著就是專案的自動測試,在 github 上面,推的就是 travis-ci,這也是全部 open source 專案的喜好,你會發現大部分的專案都會放上 .travis.yml,來告訴 travis 需要的測試步驟,測試步驟完成後,就要將 source code deploy 到 Amazone 或其他雲端服務,到這個服務基本上都要收費了,所以上一篇有介紹 Drone.io 服務,可以自動測試加上 Deploy 到遠端機器,不過缺點就是不支援 Private Project,要的話就是要收費。

[高雄美食]安德列廚房 法式簡約小館小惡魔AppleBOY

這是看過 ptt 的高雄版找到的一篇美食: 安德列廚房 法式簡約小館,然後就去吃了啦,這一間在高雄五福路新崛江附近這邊,我跟小蚊子是衝著甜點過去吃的,哈哈,這間的店面不會說很大,有點小間,不過還蠻好找的啦。

用 Terraform 初始化 GCP 環境小惡魔AppleBOY

我們將使用 Terraform 來初始化 GCP 環境。從建立 Service Account 到 GCS 並且將 Terraform State 儲存做版本控制,這篇文章將會一步一步帶領您完成。

[生活日記]今天來到中正了~ 真開心小惡魔AppleBOY

哈哈~今天跟我爸跟我媽還有跟我姑姑一起來中正大學,我又是開車的主角,不過我爸媽一直在念我~說我開車很快之類的,我爸還很怕我紅燈還加速,所以一直提醒我看到紅燈要滑行,不要在加速了,不過這些事情我都知道,我也很小心開,不過今天開高速公路有一段有照相測速,我好像120公里衝過去了,不知道有沒有被照相,哈哈下次小心一點好了,那一段是下坡,害我沒採啥油門就破120了,囧~下次要小心一點了~ 話說我一來到中正,我還蠻興奮的,好久沒有回到學校感覺真不賴,我已經脫離學校一年半了,已經差不多忘記那感覺了,不過回到學校感覺都回來了,而且中正大學也變得還蠻漂亮的,由其是正門前面還有人形步道,哈哈還不錯很多閃光都在那邊,哈哈,今天也把宿舍整理乾淨了,話說都是我爸我媽跟我姑姑在整理,我只能一邊納涼,擦擦桌子,囧 稿稿我的電腦跟伺服器,後來終於搞定,我跟我姑姑開車去民雄火車站拿我的腳踏車,沒看錯,是腳踏車,用汽車把他載回來,哈哈,我摩托車放高雄,這樣我回高雄比較方便,哈哈,再來呢,我爸媽就跟我姑姑回家了,然後我就去重量訓練室了,囧之前有在那邊認識朋友,他們說幾百年沒看過我了,然後我就解釋我跑去當兵,然後一個人就說,最好你看起來像當兵完,看起來跟高中生一樣,囧~~~~裡面還有一個高中生,聽到我碩一了又當完兵,當場傻眼,囧了一下,哈哈沒辦法我也不想阿,一直被誤會,噗噗。 下一階段來練個游泳好了,哈哈,好像還不錯~晨泳好像是免費的,拿學生證就可以進去了,不錯不錯

利用 mb_strwidth 取代 mb_strlen 計算 Multi-byte 字數小惡魔AppleBOY

之前寫了一篇如何切割中文標題,裡面計算中文字數,這樣才不會直接切到中文字,但是 PHP 有很多函式可以算出字串有多少字元,我們看看底下例子,使用了 strlen、mb_strlen、mb_strwidth 分別下去測試,看看會把中文字算成幾個字元: <?php echo strlen("測試ABC") . " "; # 輸出 9 echo mb_strlen("測試ABC", 'UTF-8') . " "; # 輸出 5 echo mb_strwidth("測試ABC") . " "; #輸出 7 ?> 看到這結果並不意外,大家可以看到 strlen 把中文字元算成3個字元,mb\_strlen 不管是中文還是英文就都算成單一字元,mb\_strwidth 則是把中文算成 2 字元,mb_strwidth 算出來正是我想要的,如果是想要在 Web 上面切割中文,建議大家用 mb_substr 即可。因為作者本人在弄跟 BBS 相關技術,所以必須江中文字算成2字元,底下節錄 mb_strwidth 如何算字元長度: Chars => Width U+0000 - U+0019 => 0 U+0020 - U+1FFF => 1 U+2000 - U+FF60 => 2 U+FF61 - U+FF9F => 1 U+FFA0 - => 2 PS: 測試環境 PHP 5.

解決 Ubuntu MP3 亂碼小惡魔AppleBOY

在 Ubuntu 底下使用 Rhythmbox Music Player 來聽音樂,但是 import 整個 MP3 目錄之後,會看到全部都是亂碼的列表,解決方式就是用 EasyTag 軟體先將 MP3 標題轉碼,方式也很簡單,底下跟著操作就可以了。 安裝 EasyTag 透過 apt-get 方式安裝 $ sudo aptitude -y install easytag 轉馬步驟 打開偏好設定(Alt+P) 看到左下角(Character Set for reading ID3 Tag3),先選擇您的語言,看是中文歌單,還是日文,選完之後先將程式關閉,關閉之前如果系統通知說要轉換,請務必先取消,之後再打開此軟體,直到看到歌單 Tags 可以正確顯示,才進行轉換。 參考網站: [Ubuntu]MP3 tag亂碼解決—不用任何指令

用 15 分鐘快速打造 Laravel 開發環境小惡魔AppleBOY

相信大家對 Laravel 都很熟悉,但是初學者或是新進同事要快速入門 Laravel 最大的門檻就是該如何在短時間內在本機電腦快速安裝好公司專案。這時候使用 Laradock 就是一個最佳時機,透過 Docker 容器話,快速切換 PHP 版本,或者是安裝額外的服務像是 MySQL, MariaDB, phpMyAdmin 或 nginx 等服務,讓本機端不受到自訂安裝套件的困擾,用完隨時關閉,完全不會影響到電腦環境。底下我會介紹使用 Laradock 該注意的事情。完整詳細的操作步驟可以直接看 Youtube 影片。

用 10 分鐘了解 Go 語言 context package 使用場景及介紹小惡魔AppleBOY

context 是在 Go 語言 1.7 版才正式被納入官方標準庫內,為什麼今天要介紹 context 使用方式呢?原因很簡單,在初學 Go 時,寫 API 時,常常不時就會看到在 的原始碼,而是用幾個實際例子來了解。

[FreeBSD]快速利用 cvsup-mirror 架設 CVSup Server (mirror site)小惡魔AppleBOY

今天看到一篇:[教學]用 cvsup-mirror 架設 CVSup Server (mirror site),自己就來架設一下,其實還蠻容易的,因為 FreeBSD Ports 都已經包好,所以安裝起來也不困難,利用 cvsup-mirror 這個軟體就可以架設完成了,那如何在台灣找尋一台最佳連線速度的 mirror 伺服器呢,利用 fastest_cvsup 這個 ports 軟體,就可以了,當 FreeBSD 剛安裝完成,就是要先設定 cvsup mirror 的站台,我自己都是用 cvsup.tw.freebsd.org,這伺服器是交大資工架設,domain 同 freebsd.csie.nctu.edu.tw,我們利用 fastest_cvsup 可以另外找尋更好的伺服器。 # # ports 安裝 # cd /usr/ports/sysutils/fastest_cvsup make install clean 說明如何使用指令: # # 找尋台灣區最佳的伺服器 # fastest_cvsup -c tw # # 找尋最上層 cvsup 伺服器,如 cvsup.freebsd.org # fastest_cvsup -c tld

博客寄语:

    博主很懒什么都没留下!

实时播报:

博客号-学习成长

相信每一分耕耘都有每一分收获,致力帮助博客主所创作的博客能更快的被收录! 如果有其它需求,可联系下方邮箱。