2014年碰過的Perl + Dancer2 with DBIx, 很快的馬上就又需要恢復記憶,快速來組合一下該怎麼用:
Laravel 5 Multiple Database Connection 設定
Laravel 5.5 (或以上) 設定多資料庫設定需要處理幾個地方。
MySQL(MariaDB)相關複製table語法注意
不小心踩到的雷~ 該記一下:
1 | create table `new_table` like `table_name`; |
會把原來要備份的table的屬性一併寫到建立的新table,像是primiry key, auto_increment之類的。但如果是以下的語法建立備份table的話
1 | create table `new_table` select * from `table_name`; |
雖然會幫忙把要備份的table也一併塞入資料,但是原有的屬性,像是primiry key或是auto_increment也都會不見。連預設的charset也會變成是預設的charset,不會把原來要備份的table的encoding也一併設定好。這點要特別注意。
前端基本環境建置 gulp + gulp-cli + broswer-sync + gulp-less 變更自動同步瀏覽器
因為開發需要,希望可以自動監控專案底下的HTML/CSS/JavaScript,只要有變更即更新瀏覽器,就不用手動自己重新整理了。而且寫Less的時候,也可以在存檔的時候自動compile成css使用,很方便的處理方式~ 接下來就開始把環境設定一下:
初始化專案並且建立package.json
npm init --yes
建立node.js的虛擬環境:(先請安裝nodeenv)
nodeenv .env
後面的.env可以置換成想要置放的資料夾名稱
將環境換成剛剛建好的node.js虛擬環境(此做法在於如果不小心出了問題,比較不會影響到整個電腦的node.js環境
source .env/bin/actiave
到時候有需要退出環境的時候,只需要直接執行
deactivate_node
就可以退出環境了。
安裝所需要的套件:
這個安裝的目的是希望能夠監控專案裡面的HTML/LESS/JavaScript檔案,有變更的時候就會編譯LESS或是重新整理正在開發的瀏覽器(即Livereload的功能),基本上來說,需要先利用npm安裝以下幾個套件:
- gulp 這邊個人會使用gulp來處理,其實也可以使用grunt,但因為沒玩過就是了。(記得要安裝在global)
- gulp-cli (在terminal使用gulp,記得要裝在global)
- gulp-less
- browser-sync (檔案改變的時候可以將結果同步瀏覽器,不用再另外安裝extension)
接下來就示專案需求可以安裝webpack或是babel之類的工具了。
- 設定gulpfile.js
因為gulp吃的是gulpfile.js,請先在專案根目錄中設定gulpfile.js,接下來準備設定gulpfile.js的部分:
這邊是先在gulpfile.js上設定載入使用的library
var gulp = require("gulp");
var less = require("gulp-less");
var browsersync = require("browser-sync").create();
下方的部分是設定less file compile
gulp.task('less',function(){
gulp.src('./less/*.less')
.pipe(less())
.pipe(gulp.dest('./css/'))
});
設定監控檔案,有變動即利用rowsersync重新整理瀏髡器
gulp.task('watch',function(){
gulp.watch('./less/.less',['less']).on("change", browsersync.reload)
gulp.watch('./js/.js').on("change", browsersync.reload)
gulp.watch("./*.html").on("change", browsersync.reload)
});
browser sync configuration
gulp.task('browser-sync', function(){
browsersync.init({
server: {
baseDir: "./",
proxy: "test.dev"
},
ui: {
port: 3000,
weinre:{
port: 3001
}
}
})
})
這個是最後一行需要放上的部分,default startup的設定
gulp.task('default',['less','watch', 'browser-sync']);
以上檔案處理完畢後,就可以回到專案資料夾根目錄的地方,直接用gulp
即可以執行我們設定好的環境並且進行開發了。
Mac OS 預設zsh
(結果Mac os 10.15 Catalina預設為zsh囉)
其實用了超久結果每次電腦重灌都要再挖一次記錄,直接簡單記錄改用zsh做為基本使用的shell。不過首先,要先裝好homebrew:
- brew install zsh
- 設定oh-my-zsh: 以下擇一即可,一個是用wget來安裝,另一個是curl來處理
- sh -c “$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
- sh -c “$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)”
- sh -c “$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
(設定使用https://github.com/robbyrussell/oh-my-zsh)
3. brew install zsh-completions
基本上應該這樣就可以完成基本設定,而且預設會把bash改成zsh。另外,如果想修改theme的話,預設系統的theme是放在:~/.oh-my-zsh/themes (theme是由oh-my-zsh提供的),基本上來說,可以透過這篇官方說明來設定。這樣就大功告成了。
AWS CloudSearch 入門
因為之前公司需求,研究了AWS的cloudsaerch以及Elastic search二套。這篇就之前研究的cloudsearch的部分做一個簡單的筆記。Amazon AWS的cloudsearch是一個讓人能夠簡單建立一個搜尋的服務。在中文分詞的部分是已建立了…但倒是有一件很重要的事情就是,中文搜尋的部分,基本上一定要建入「二個中文字」才能進行搜尋。因為一個中文字,在搜尋中是不被認成是一個詞,這點是在使用上最重要要注意的部分,接下來就細節建議進一步說明。
在一開始要建立一個cloudsearch的時候,我們必需要先建立一個domain。在cloudsearch中,一個domain,我們當成是一個大的table。所有的資料都是在這個table中搜尋。接下來每一個在cloudsearch中的index則為一個欄位。這點會方便我們在一開始進入使用cloudsearch的時候不清楚該如何操作時,利用了一點RMDB的觀點來理解(但這並非完全對或錯)。這個方式和之前在看Elastic search的時候有一個對照在理解操作方式:
RMDB | DB | Table | rowcolumn | |
---|---|---|---|---|
ES | Index | Type | document | fields |
** ES指的是Eastic Search
接下來在觀念較為清楚的狀態下,我們要再注意一點,就是在search的條件。我們一般在做搜尋是資料精確度由最精準到愈不精準排序下來的。在AWS中也是有地方可以調整自己的ranking pattern的,這個部分要另外再做研究了。
在Cloudsearch中可以使用輸入search的方法照官方文件中有幾種:
- simple - 籍由較簡單的url parameter的方式把想搜尋的資料丟進去搜尋。
- structured - 除了simple的方式外另外加上可以特別指定搜尋的欄位以及一些綜合條件。
- lucene - 不用多說,就是提供和Apache Lucene的語法條件方式讓使用者使用
- dismax - 除了使用Apache Lucene的解析方式以及dismax的語法
這幾個方式並沒有特別的好或是不好,以自己在開發時所需要的方式使用。最後二個因為是提供lucene的語法,在AWS的文件上並沒有特別說明,這個部分就要去Apache Lucene去查語法來使用。
以最基本來說,能夠將資料完整倒進去,就可以完成一個很簡單的搜尋功能,其餘就要看怎麼發揮了….
在mac上建立python開發的虛擬環境virtualenv
python virtualenv configuration。(參照:virtualenv官網)
目前環境:Mac OS 10.11.3 (EI capitan)
原生Python Version: 2.7.10
Mac上如何建立Rails的開發環境
太久沒玩Ruby很多東西也整個忘的很乾淨了。這次試著將一些東西撿回來(主要是想使用Ruby on Rails)。所以重新整理了環境建置的筆記。(主要的intruction是參照:ihower的Ruby on Rails 實戰聖經)
目前環境:Mac OS 10.10 (Yosemite)
原生Ruby Version: 2.0.0p481