hothero's TechNote

Will be sharing troubleshooting experiences, findings, tutorials, ...

logdown

Migrate from octopress/logdown to ghost

醞釀許久要從 logdown 搬離的能量,總算在前幾天花一個下午嘗試架起 ghost 丟到 heroku 上(免費!),並將文章等等無縫 migrate 到 ghost 上,真是太開燻了~~ 其實 logdown 是個很棒的 blogging platform (那你幹嘛搬==),尤其那個 editor 好用~。但因有客製化 domain 跟 static page 的需求,所以要花錢... 加上最關鍵的就是,花了錢還要免費一直幫 logdown 增加 rank 著實不開心,因為 logdown 在文章單頁的 keywords meta tag 竟然文章一個

  • hothero
    hothero
subdomain

Cross-SubDomain Cookie for Laravel

許多時候一個團隊會 hosting 許多平台,且往往各平台間都是有所關聯,像是 flyingv 還有 VShop, VEvent。其會員資料庫都是共用,且同樣的登入方式。若在平台間瀏覽操作需要一直重新登入,是否也太令人不悅了~ 因此可以設定這些平台的 cookie (通常登入判斷的資訊都會存於此)為同樣的 Domain,不同的 Sub Domain。例如 domain name 為 example.com,其他平台是 shop.example.com, event.example.com, ... 此處在 Laravel 的設定主要相關三個檔案 app/config/app.php, app/config/cache.

  • hothero
    hothero
php

PHP5-FPM with Nginx 效能調教 (1)

在開始前建議先去安裝 htop 這個 linux 即時監控軟體。主要因應不同的 # of process core 與 memory size,可以調整 php5-fpm 與 nginx 中兩個部分的設定。 Nginx 在 /etc/nginx/nginx.conf 下約莫第二行有個 worker_processes 參數。 worker_processes 4; 根據運行機器的 cpu 核心數填入即可,可用 htop 或輸入以下 shell command 取得 cat /proc/cpuinfo| grep processor

  • hothero
    hothero
php

[Snippet] AES 加密 with CBC & PKCS7 on PHP

AES (Advanced Encryption Standard) 進階加密標準,目前已成為流行的對稱式加密法之一,也是美國國家安全局 NSA 批准可用在最高機密資訊上的加密方式(聽起來敲厲害的啊~~),當然隨著密鑰的長度越長(128, 192, 256 bits),安全性就越高。更多詳細介紹可參考 wiki 這裡分享的 Snippets 是固定的 128 bits密鑰,並且針對要加密的資料做 base64 encode。 public function aesDecrypt() { $encryptedData = "6lbH0qa6J1Sl5/I5C2YeGg=="; $cipher = MCRYPT_RIJNDAEL_128; $mode = MCRYPT_MODE_CBC; $key = "

  • hothero
    hothero
Amazon

[Note] Laravel 使用 sqs 做 Queue Server 寄 Email

此篇目的在於使用 Amazon SQS (Simple Queue Service) 作為 Queue Server,以另一台機器作為 Queue Worker 來寄送 Email,使 Production Server 能更專注在服務網站,使用者體驗也會更好(若沒使用 Queue Server 使用 sync 模式寄送 Email,會讓使用者操作停住等待發送完成才能繼續動作)。 第一步:設定 app/config/queue.php 將 default 改成 sqs('default' => 'sqs') 設定 sqs 'sqs' =>

  • hothero
    hothero
aws

How to use AWS Reserved Instance

AWS 的 Reserved Instance 白話說就是一個下單長期打折的概念,如果是高使用量的最多一次買三年可省上65%,詳情可參考官網。 看似很棒,不知道為什麼的網路上幾乎沒文章教說怎使用 Reserved Instance...或許是因為太簡單惹~ 這是一堆 RIs 關鍵是 Instance Type 跟 Zone 在創建 Instance 時跟 RIs 一樣即可,從帳單上就可以看到沒有 charge 的 Instance (因為帳在 RIs 上 XDDD

  • hothero
    hothero
FTP

[Note] Setup FTP server on Opensuse

本文是採用pure-ftpd作為我們的ftp server,有試過常見的vftpd,但權限等問題難以釐清,故捨棄。 安裝步驟 於terminal鍵入"yast2" 選擇"軟體" -> "軟體管理" 輸入"pure-ftpd"做搜尋 -> 按下enter選擇 -> 按下F10接受並開始安裝 設定開機啟動 chkconfig pure-ftpd 35 # 設定開機時啟動pure-ftpd服務 FTP設定 1. 修改設定檔案 vi /etc/pure-ftpd/pure-ftpd.conf 找到以下屬性設定值做修改(

  • hothero
    hothero
remote

[Note] Setup VNC server on Opensuse

主題:安裝vnc server於opensuse 12.3上,並透過mac上safari內建的vnc viewer作遠端控制 安裝步驟如下: 於terminal內鍵入"yast2",透過opensuse內建的installation and configuration tool來安裝vnc 選擇"網路服務" -> "遠端管理 (VNC)",按下ente進入安裝設定畫面 將"Allow Remote Administration"勾選後按下F10套用設定即完成安裝動作 vnc密碼設定 切換至root帳號(指令為:su root) 於terminal鍵入"vncpasswd"設定vnc遠端連線密碼,

  • hothero
    hothero
php

Keeping your heroku server awake

最近發現heroku server休眠的速度實在快的嚇屎人,記得去年還只要一天有人連上去就OK,沒想到現在大概1分鐘沒人連就會休眠server… 以前似乎可以用個addon,叫做"New Relic",去一直ping,進而記錄伺服器的狀態,讓server一直是醒著的狀態,但經測試後發現沒用! 最後還是用了最笨的方法,仿造crawler的方式,設定cronjobs每分鐘去拜訪一次網頁,抓取內容使伺服器一直保持醒著的狀態。程式碼如下: <?php $urls = array("http://webcontest.mirlab.org", "http://webprogramming.mirlab.org"); for ($i=0; $i<count($urls); $i++) { getContent(

  • hothero
    hothero
wordpress

Migrating from WordPress to Octopress With Trouble Solution Painlessly

O.S.: 欠超久的wordpress轉到octopress的筆記文章…從2013/1/1正式轉戰octopress一直欠到現在T_T 要說為什麼從wordpress轉戰octopress麻,大概幾個原因點: wordpress玩膩了,而且過於方便,沒有hacker的感覺 wordpress容易安裝套件導致網站速度變慢 octopress是由script產生靜態網頁,鐵定在速度上的使用者體驗很好 繼續跟ruby保持一定的聯繫 學習撰寫markdown 省去hosting blog的麻煩與花費 嘗試新事物 這篇文章將著重在如何無痛的將wordpress轉至octopress,至於ruby, octopress, git等等的安裝說明,網路上很多教學文章,就不詳加贅述,或可參考此篇文章:Hello Octopress! Mirgration有幾個必要check的項目 Post(若使用外國開發者寫的script需注意中文編碼問題) Page(同Post) Comments(若使用Disqus便沒問題) File/Images(下文會講解Octopress URI組成,便可無痛解決) Code Format(這需端看讀者們用的wordpress程式碼上色plugin來對下方的convertor

  • hothero
    hothero
TroubleShooting

Matlab Mex Setup Solution

在MATLAB上用mex編譯C/C++檔案是稀鬆平常,但卻又常困擾著開發者。不外乎就是找不到gcc或是找不到Standard Library中的header file,像是stdlib.h, stddef.h等等。諸如以下發生的錯誤訊息: /Applications/MATLAB_R2011b.app/bin/mex: line 305: gcc-4.2: command not found /Applications/MATLAB_R2012a.app/extern/include/matrix.h:852:20: error: stdlib.h: No such file or directory 筆者的開發環境:

  • hothero
    hothero
php

架設discuz與ucenter應用同步登入筆記

Discuz!是個可免費下載的PHP網絡論壇程式,簡稱DZ,由戴志康(Crossday)所創立,目前最新版本是X2.5。[2] 前身為Crossday Bulletin(CDB),最初改自XMB,爾後改寫成為現今的Discuz!社群論壇程式,由康盛創想所有。現在Discuz!已成為大中華地區最多用戶使用的論壇程序。 Discuz!的原始碼可免費下載,但它并不是開源軟件,因為其許可證不符合開放原始碼的定義。from wiki discuz論壇的架設只要參照官方論壇的說明就沒有問題了,這裡將著重在第三方php網站整合ucenter。ucenter在與其他php應用整合上的流程與架構示意圖大概如下圖: 在所有ucenter的應用中,都是透過uc.php這個檔案來做listening,再根據指示做相對應的動作(如:登入、登出等)。流程大概是,假設ucenter共有A, B這兩個應用,當A透過client.php發出同步登入成功指示給ucenter,接著uc service再去發出登入的指示給下面所有應用(A, B),透過呼叫每個應用的uc.

  • hothero
    hothero
remote

How To Create a Remote Shared Git Repository

本文參考、翻譯此篇文章。 這篇文章著重在如何建立一個私人(private)且可透過SSH遠端控制、分享(remote, shared)的Git Repository,而非講解什麼是Git和怎麼使用,環境是Ubuntu 10.10 & 10.04。 Step 1: Preparation & Accounts Setup 假設我們有一個小型開發團隊,成員有:John, Andrew & Robert。首先要幫他們創建帳號,並加到開發者(developers)的群組內 $ sudo groupadd developers $ sudo useradd -G developers -d /home/john -m

  • hothero
    hothero
TroubleShooting

[Troubleshooting] MATLAB mex file running error &quot;The specified module could not be found.&quot;

MATLAB是MATrix LABoratory的縮寫,是一款由美國The MathWorks公司出品的商業數學軟件。MATLAB是一種用於算法開發、數據可視化、數據分析以及數值計算的高級技術計算語言和交互式環境。除了矩陣運算、繪製函數/數據圖像等常用功能外,MATLAB還可以用來創建用戶界面及與調用其它語言(包括C,C++和FORTRAN)編寫的程序。(from wiki.) MATLAB不只矩陣運算處理快速、方便,也有許多toolbox可以使用,但伴隨而來就是肥大的開發環境,與執行效率的問題。因MATLAB本身是由c語言架構而成,故可將需要較佳處理效能的函式以c語言撰寫,並透過g++編成MEX-file供MATLAB使用。 ??? Invalid MEX-file 'D:\machineLearning\private\distSqrPairwiseMex.mexw64': The specified module could not be found. 很多時候這些MEX-file不只是自己使用,也會publish給其他人使用,但每台電腦的環境都不同,有些人就會出現上述的錯誤訊息&

  • hothero
    hothero
OpenCV

OpenCV haartraining (Rapid Object Detection With A Cascade of Boosted Classifiers Based on Haar-like Features)

延續上一篇Manually Compiling and Installing OpenCV on Mac / Windows Without Package Manager,假設讀者已安裝OpenCV開發環境與command line指令設定。此篇以 Tutorial: OpenCV haartraining (Rapid Object Detection With A Cascade of Boosted Classifiers Based on Haar-like Features) 和 Creating a haar cascade classifier aka haar training 為基礎撰寫。 偵測物圖片蒐集 首先,要偵測的物體圖片是少不了的。假設我們要偵測的是一個原子筆,

  • hothero
    hothero
mac

Manually Compiling and Installing OpenCV on Mac / Windows Without Package Manager

OpenCV的全稱是Open Source Computer Vision Library,是一個跨平台的計算機視覺庫。OpenCV是由英特爾公司發起並參與開發,以BSD許可證授權發行,可以在商業和研究領域中免費使用。OpenCV可用於開發實時的圖像處理、計算機視覺以及模式識別程序。 (from wiki) 這篇將帶領讀者編譯OpenCV並且安裝相關執行檔與開發所用的標頭檔(如:確保pkg-config --cflags opencv, pkg-config --libs opencv正常),若是用"brew install opencv"則不會安裝cv.h等c/cpp開發用標頭檔。 Environments: Mac OSX 10.7.* ( & Windows 7 32/64 bits) (Visual Studio 2010)

  • hothero
    hothero
php

Memcached Server & Client Installation on MAMP & Ubuntu

memcached是一套分布式的高速缓存系統,通常只是當作快取系統使用,所以使用memcached的應用程式在寫回較慢的系統時(像是後端的資料庫)需要額外的程式碼更新memcached內的資料。(reference from wiki) 預計完成的安裝環境 libevent (memcached requirement) Memcached 1.4.15 Server, download it PHP Memcached extension 2.10, download it Memcached Server In MAMP: brew install libevent tar -zxvf memcached-1.4.15.tar.gz cd memcached-1.4.15/

  • hothero
    hothero
You've successfully subscribed to hothero's TechNote!