小惡魔 - AppleBOY - 小惡魔 - AppleBOY

0.0

给小惡魔 - AppleBOY - 小惡魔 - AppleBOY打分

start start start start start

感谢您打了2

详情

全站展示位

Go 語言專案開發 Hot Reload 工具air小惡魔AppleBOY

大家都知道 Go 語言的開發環境是非常的快速,但是如果你想要在開發的時候,修改程式碼後,自動重新編譯並且執行,這時候就需要一個 Hot Reload 工具,這邊介紹一個 air,這個工具可以幫助你在開發的時候,自動重新編譯並且執行。安裝及設定方式非常簡單,不用 10 分鐘就可以打造自動編譯的開發環境。。。。

推荐

CodeIgniter 終於找到新東家 British Columbia Institute of Technology 英屬哥倫比亞理工學院小惡魔AppleBOY

自從去年 CodeIgniter 宣佈要開始找尋新東家,我就很期待下一個新東家會是誰,終於在今天公佈了新東家 British Columbia Institute of Technology 英屬哥倫比亞理工學院 (BCIT),官方也正式公佈一篇 Your Favorite PHP Framework, CodeIgniter, Has a New Home,去年到現在 EllisLab 就收到大量的候選人信件,但是困難的就是要從一堆候選人中選出一位最適合 CodeIgniter 新雇主,最後決定人選就是 BCIT,BCIT 是一間理工學院學校,裡面有超過 4 萬 8 千名學生,最重要的是,每年學校都會培養 150 名 CodeIgniter 學生,導入這套 PHP Framework 到業界。 最後會由該學校的 James Parry 擔任 CodeIgniter Project Leader,並且由每年訓練優秀的學生加入此 Project 並且持續貢獻原始碼。看到這裡應該很興奮,因為對於 CodeIgniter 3.0 看起來應該不久之後就可以問世了。新的 Repo 網址也變成

啟動 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 做設定,底下就來看看實做例子。

心灵鸡汤

  东汉时期,庐江太守羊续施政清平,为人俭朴,素有穷官之称。

  有一次,羊续的属下给他送了一条活鲤鱼,面对这条“礼鱼”,他收下后让人把鱼挂在庭檐下,没过几天,就成了一条枯鱼干,在屋檐下飘来荡去,羊续也不让人取掉,以此表达自己不收礼的决心,留下“悬鱼太守”的美名。

列表展示

主站展示位

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

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

[jQuery] 日曆時間外掛 timepicker CSS/Offset 問題 | Plugins小惡魔AppleBOY

最近把之前弄的 jQuery 日期外掛拿出來看看,筆記過兩篇:[jQuery筆記] 時間日期外掛:timepicker | jQuery Plugins 跟 [jQuery筆記] 好用的日期函式 datepicker,目前在寫活動的開始時間跟結束時間會用到這兩個外掛,網路上有找到整合日期跟時間的程式,不過效果都不是我很喜歡,因為在時間方面想要設定可以分隔5分鐘,或者是10分鐘間隔,有沒有網友可以提供更好的 jQuery 外掛,可以將日曆跟時間整合在一起,用單一 input 欄位就可以控制,也可以設定間隔時間,目前是搭配這兩個外掛同時使用,也可以達到同樣效果。 timepicker 作者網站,愈到了一個問題,只要網頁裡面有用到 jQuery Show 跟 hide 都會讓 timepicker 程式判斷 CSS/offset 發生錯誤,導致功能無法顯示在正確的地方,會跑到網頁其他位置,解決方法就是當滑鼠 click input 欄位時,再去呼叫取得目前 offset 的位置。 var elmOffset = $(elm).offset(); $tpDiv.appendTo('body').css({'top':elmOffset.top + 'px', 'left':elmOffset.left+ 'px'}).hide(); 這樣就可以正確顯示在 input 下方,連這個都可以遇到地雷 XD

[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

JavaScript in 2015小惡魔AppleBOY

在這幾年的趨勢看來,JavaScript 已經環繞在各領域了,不管在 Web 前端或後端,上層或下層,都充滿了 JavaScript,其實都是托 Node.js 的福,網路上看到這篇 JavaScript in 2015,裡面講到 JavaScript 所有的工具,不管前端到後端,每一年都有新的工具跟新的 Framework,從以前寫 Backbone 到 Angular.js 到現在 React.js 改變了整個 JavaScript View 的生態,工具流程整合從 Grunt.js 到 Gulp.js 的出現,整個生態又轉換了,大家陸續將工具全都轉到 Gulp,最後又出來一套 Webpack,Webpack 出現基本上不會影響 gulp 發展,因為 Webpack 還是有很多限制,在前端或後端在上 Production 前的一些流程像是 copy 檔案等,這些是 webpack 無法整合的,看到這些工具一一出現,也不知道明年或現在會不會又跑出一套新的玩具,讓整個 JavaScript 生態整個改變。寫上層的同時,看到同事在寫底層,同事就會跑過來拍拍我肩膀說:『好險我是搞 Kernel,搞上層就要跟你們一樣天天追新技術,永遠沒有停止的一天』。看一下全世界 Job Trends

[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

Using singleflight in Go language to solve Cache Hotspot Invalid小惡魔AppleBOY

The diagram above illustrates a commonly used architecture in implementing web services, which involves adding a cache between the service and the database to reduce the load on the database. However, when implementing service integration, three major cache problems are often encountered: Cache Avalanche, Hotspot Invalid, Cache Penetration. Among them, Cache Hotspot Invalid is a very common issue. When the data in the cache expires or disappears, a large number of requests will simultaneously hit the backend database, causing an excessive load on the database and even leading to database crashes, as shown in the diagram where the cache key of a certain article expires. This article will introduce how to use the singleflight built into the Go language to solve the Cache Hotspot Invalid problem. This is a feature in the sync package that can prevent duplicate requests from hitting the backend database simultaneously.

AWS 機器上 duplicated RPM 問題小惡魔AppleBOY

昨天幫忙升級全部 AWS RPM 套件,升級過程本來很順利,不過不知道哪一個 RPM 造成 SSH 全面斷線,接著我直接到 AWS Management Console 把機器 restart,登入系統之後下 yum update,直接給我噴出底下錯誤訊息 ---> Package zlib.i686 0:1.2.3-24.7.amzn1 will be updated ---> Package zlib.i686 0:1.2.3-25.8.amzn1 will be an update --> Finished Dependency Resolution You could try using --skip-broken to work around the problem ** Found 155 pre-existing rpmdb problem(s), 'yum check' output follows: audit-libs-2.1-5.15.amzn1.x86_64 is a duplicate with audit-libs-2.0.4-1.14.amzn1.x86_64 authconfig-6.1.12-5.14.amzn1.x86_64 is a duplicate with authconfig-6.1.4-6.13.amzn1.x86_64 basesystem-10.0-4.9.amzn1.noarch is a duplicate with basesystem-10.0-4.8.amzn1.noarch bash-4.1.2-8.14.amzn1.x86_64 is a duplicate with bash-4.1.2-3.13.amzn1.x86_64 binutils-2.20.51.0.2-5.20.17.amzn1.x86_64 is a duplicate with binutils-2.20.51.0.2-5.12.15.amzn1.x86_64 cloud-init-0.5.15-16.amzn1.noarch is a duplicate with cloud-init-0.5.15-8.amzn1.noarch coreutils-8.4-13.13.amzn1.x86_64 is a duplicate with coreutils-8.4-9.12.amzn1.x86_64 coreutils-libs-8.4-13.13.amzn1.x86_64 is a duplicate with coreutils-libs-8.4-9.12.amzn1.x86_64 cpp-4.4.5-6.35.amzn1.x86_64 is a duplicate with cpp-4.4.4-13.33.amzn1.x86_64

[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

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 內容。

[轉貼]程式設計師的格言小惡魔AppleBOY

轉貼自:程式設計師的格言 我覺得有些話真的還蠻中肯的。 程式設計師的格言(盜作不少) 譯自 囉。

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

Linode VPS 全面升級 Double RAM & SSD小惡魔AppleBOY

Linode 又來了驚人的舉動,現在開始支援 SSD 以及小時計費服務,可以參考官網最新發表的 The New Linode Cloud: SSDs, Double RAM & much more,內容講到硬碟現在全面升級為 SSD,而且是 native SSD servers。網路頻寬部份每個 Linode Host 都連接 40 Gbps 的頻寬,對外總頻寬為 160 Gbps,對內頻寬為 40 Gbps,當然根據個人買得 VPS 而有不同的對外頻寬。記憶體則是全面 Double 升級,原本最低的 1G 記憶體,現在都改為 2G 了,每個月才 20 美金,看起來又是被 DigitalOcean 刺激到,最小的 Linode 流量也改為 3 TB。來看看現在新的方案

[Mysql] 資料庫備份[big5]utf8轉換成utf-8小惡魔AppleBOY

其實在很多opensource底下的套裝軟體,資料庫預設都是用 utf8,我想這會造成在 phpMyAdmin 底下看到亂碼,然後自己之前也有遇到問題,然後又在網路上看到這篇 搶救 xdite.net 所用的奇技淫巧 裡面所寫的備份方式跟我在轉換 phpBB2 跟自己的 wordpress 一樣 大同小異,我還在想說有更好的解法說,看來是沒有,在 wordpress 底下,只能利用後台的資料庫備份,不然用phpMyAdmin的話,我想你備份出來也是沒用。

MongoDB 效能調校紀錄小惡魔AppleBOY

最近剛好在實作 Prometheus + Grafana 的時候,對 MongoDB 做了容器 CPU 使用率 (container_cpu_usage_seconds_total) 的監控,Metrics 寫法如下: 1 2 3 sum( rate(container_cpu_usage_seconds_total{name!~"(^$|^0_.*)"}[1m])) by (name) 從上面的 Metrics 可以拉長時間來看,會發現專案的 MongoDB 非常不穩定,起起伏伏,這時候就需要來看看資料庫到底哪邊慢,以及看看哪個語法造成 CPU 飆高? 接著為了看 MongoDB 的 Log 紀錄,把 Grafana 推出的 Loki,也導入專案系統,將容器所有的 Log 都導向 Loki,底下可以看看 docker-compose 將 Log 輸出到 loki 1 2 3 4 5 6 7 logging: driver: loki options: loki-url: "" loki-retries: "5" loki-batch-size: "400" loki-external-labels: "environment=production,project=mongo" 先看看結論,做法其實很簡單,找出相對應 Slow Query,把相關的欄位加上 Index,就可以解決了

利用 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.

今天考試兩科必修無線區域網路,TCP/IP小惡魔AppleBOY

今天真是很忙得一天,不過我自己認為是還好,早上一起床9點,我就要趕去meeting了,早上是大group meeting,所以蠻早起床的,加上今天要考兩科期中考,整個就是大爆炸,所以最近晚上都在實驗室,哈哈,早上好險計畫的教授沒來,所以我們meeting的時候沒有被電,不然就慘了,下午有一科是老闆的無線區域網路課程要考試,雖然是 open book 可是我好像沒有看,因為早上要meeting要準備阿,哈哈,下午一點考一科TCP/IP,因為幾乎都是考考古題,所以我寫10分鐘就交卷了,助教一整個傻眼,同學都嚇到了,回去lab,大家都說你考完試了喔,囧,我說對阿,大家被我驚奇的交卷速度嚇到,不過也還好吧,都是考考古題,會寫都寫好了,不會寫就空白了,再來呢,考我們老闆的科目,我一整個不會寫,然後我幾乎教空白卷吧,哈哈我看我又要拼期末project了。 有時後,我自己在想,我真的適合念研究所嗎?這裡的課程值得我學習嗎?我到底是為了什麼讀研究所?我成績這麼差,可以畢業嗎?在這門客裡面,雖然我成績很差,可是我覺得我學習到很多實做的東西,我理論真的很差,差到不行,隨便一個人都可以贏我,我寫考卷不是0就是1,也就是,答案只有會寫,跟不會寫,沒有在亂掰的,哈哈。

Debian 7.x Install PHP 5.5 或 5.6 版本小惡魔AppleBOY

Debian 目前預設的 PHP Stable 版本是 5.4.x,由於 Laravel PHP Framework 關係,所以希望升級到 PHP 5.5 或 5.6 版本,只要透過底下操作就可以直接裝 PHP 5.6 版本了

從 Nginx 換到 Caddy小惡魔AppleBOY

終於下定決心將 Nginx 換到 Caddy 這套用 Go 語言所撰寫的開源套件,大家一定會有所疑問『為什麼要換掉 Nginx 而改用 Caddy』,原因其實很簡單,你現在看的 Blog 安裝在 Linode 機器上面,之前跑的是 Nginx 搭配 letsencrypt,但是必須要寫一個 Scripts 來自動更新 letsencrypt 憑證,這機制最後不太運作,加上這一年來,每三個月就會有人丟我說『你的 Blog 憑證過期了』,所以就在這時間點,花點時間把 Nginx 設定調整到 Caddy,轉換的時間不會花超過一小時喔。

[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

博客寄语:

    博主很懒什么都没留下!

实时播报:

博客号-学习成长

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