EExcel 丞燕快速查詢2

EExcel 丞燕快速查詢2
EExcel 丞燕快速查詢2 https://sandk.ffbizs.com/

IF sails.js + (ng-admin and Angular Schema Form < sails.js-Model.Validations.json ) perfacet !!!

Why is perfacet~~  Because ONLY write one time validations then RESTFUL API can use. Front Angular Form can use.


So maybe sails.js have output Model Validations JSON

or write use jsonschema (A fast and easy to use JSON Schema validator)

JSON Schema

http://json-schema.org/

http://jsonschema.net/#/


https://www.npmjs.com/package/jsonschema

Angular Schema Form

use   JSON Schema + Form definition  (condition)



http://schemaform.io/
https://github.com/Textalk/angular-schema-form

seedjs = sails.js + ember.js + ......

This is same sails + ng-admin but different is ng-admin have gui.


This is good idea for sails.js  RESTFUL.

sails.js & ng-admin

sails.js

https://github.com/marmelab/ng-admin


put together is very good. easy to use CRUD by GUI.



https://github.com/zvesp/sails-generate-ng-admin

ghettoVCB

http://www.mobile01.com/topicdetail.php?f=300&t=4438446


https://github.com/lamw/ghettoVCB





HOPE000

VMDK Thin Provision Type Copy
vmkfstools -i /vmfs/volumes/VMBackup/0.vmdk /vmfs/volumes/datastore1/Test/0.vmdk -d thin &


或是用現成的 ghettoVCB Backup Script ... VM 免停機就能備份
Export OVA / OVF 都太慢啦

[轉]The Best Notebook Displays As Reviewed By Notebookcheck

http://www.notebookcheck.net/The-Best-Notebook-Displays-As-Reviewed-By-Notebookcheck.120541.0.html






Dell Latitude E5550
Samsung SDC4C48
IPS LED
Color Gamut AdobeRGB   84%

notebook Dell Latitude E5550 Samsung SDC4C48 IPS LED 廣色域70以上



http://www.mobile01.com/topicdetail.php?f=159&t=4294631


依據樓主需求 , 非蘋果 , 廣色域70以上 , 外出需求 , 2~4萬 , 德國有個專業網站 , 答案是Dell Latitude E5550 , 15.6吋 , FHD , 採用Samsung SDC4C48 IPS LED




http://www.ebay.com/itm/2015-Dell-Latitude-E5550-Laptop-Notebook-15-6-FHD-1080p-i5-8GB-128GB-SSD-VPRO-/301731192384?hash=item4640949e40

[轉]What is the best way to Shrink a Thin Provisioned Disk?

https://community.spiceworks.com/topic/461716-what-is-the-best-way-to-shrink-a-thin-provisioned-disk



==========
http://pubs.vmware.com/vsphere-51/index.jsp?topic=%2Fcom.vmware.vsphere.storage.doc%2FGUID-CBF31A6B-B36F-4552-B512-CC92B1943902.html



Removing Zeroed Blocks


Use the vmkfstools command to convert any thin, zeroedthick, or eagerzeroedthick virtual disk to a thin disk with zeroed blocks removed.-K --punchzero


This option deallocates all zeroed out blocks and leaves only those blocks that were allocated previously and contain valid data. The resulting virtual disk is in thin format.

=======

Poblano

Gabrielle,

I did the sdelete -z and this cleared up the space on one of my drives. Which worked awesome for this particular issue I ended up just added a new drive to the system copied the 5 GB of data over changed the drive letter, rebooted and brought my application back online. Worked great. Thanks for the information.

========
http://www.virten.net/2014/11/howto-shrink-a-thin-provisioned-virtual-disk-vmdk/





nakivo vmware

backup and restore  for free   備份還原免費

backup
1、免費的功能有限
2、有限在,backup只能在local 空間上,但可以在vmware上掛新的HDD
3、記得 NAKIVO 的vm,還是在原本的機器上,所以建議,直接用在nakivo的網站上,下載ova,直接掛而新的地方,這樣就能備份了


recovery
recovery -> recovery vm
netwrok 選一下

重點要注意:


1、選 Create only thin disks on recovered VMs

2、Levave VM name is

[轉]jQuery 之 checkbox 及 radio 設定值的

http://note.tc.edu.tw/175.html








[radio 取值]

以下範例示範當使用者按下 submit ( id=sb1 ) 時的檢查動作,其中 radio 的 name=doway

$("#sb1").click(function(){
var method =$("input[name='doway']:checked").val(); //radio 取值,注意寫法
if( typeof(method) == "undefined"){ // 注意檢查完全沒有選取的寫法,這行是精華
alert( "請選取操作方式!");
return false;
}

用框架時,要注意

StrongLoop 和 Dreamfactory


1、比較複雜的SQL能不能自定議?  
基本上兩者目前都還在開發中,StrongLoop是beta吧


2、能不能在資料CRUD時,Model自訂檢查?
 這樣後端檢查完就送回前端,雖然最好是前端就要檢查,但實際上,前端檢查完畢後,後端還是要再檢查一次,不然駭客之類可以模擬crul方式送資料,繞過前端檢查,所以最後後端還要檢查,那到不如直接在後端檢查完畢後,送回訊息。

當然如果真的要即時性非常重的話,那還是要先在前端檢查了~~~

3、登入、帳號管理、token?
Dreamfactory一直來都非常的清楚,而StrongLoop現在也清楚多了

4、效能、API、Restful使用?
這只能租主機,然後掛上去,試試看,才能知道,到底效能如何

strongloop now is more better for document

底下是strongloop相關操作

Managing users 管理使用者
https://docs.strongloop.com/display/public/LB/Managing+users



Getting started with LoopBack 怎麼使用loopback
https://docs.strongloop.com/display/public/LB/Getting+started+with+LoopBack



Getting started part II  怎麼使用loopback II
https://docs.strongloop.com/display/public/LB/Getting+started+part+II



Validating model data  資料進資料庫前的驗証
https://docs.strongloop.com/display/public/LB/Validating+model+data


Executing native SQL  自訂義SQL,但還在測試中,不能保障正常運行
--This feature has not been fully tested and is not officially supported: the API may change in future releases.

https://docs.strongloop.com/display/public/LB/Executing+native+SQL

node.js 書 推薦 找網路上的

http://www.books.com.tw/products/0010644512

書名:深入淺出Node.js  2014/07/29 必買的
作者: 朴靈


http://www.books.com.tw/products/0010679787
書名:Node.js的九堂實作課  2015/06/24
作者: 趙坤, 寸志, 雷宗民, 吳中驊
譯者:許郁文


http://www.books.com.tw/products/0010671565
書名:Node.js模組參考手冊  2015/04/15
作者:作者: 錢逢祥, 蔡政崇, 楊傑文

自已整理的資料,不知道準不準 vps 虛擬主機

arvixe
http://www.arvixe.com/awards

.Best Web Hosting for Budget Focused Small Businesses in 2015 等,都是2015年

inmotion
https://www.inmotionhosting.com/partners-and-awards
.Best Web Hosting for Budget Focused Small Businesses in 2015 等,都是2015年
.CNET 12年來滿三星推薦
.管理McAfee防毒夥伴


資料來源:
http://www.pcmag.com/article2/0,2817,2424725,00.asp
http://webhosting2go.com/

1、線上直接排bootstrap layout 2、程式排bootstrap layout 3、線上測bootstrap

http://pingendo.com/ 免費
http://mobirise.com/ 免費
http://keynotopia.com/bootstrap/  好像免費
http://www.frontenda.com/snipped/  好像免費


http://www.layoutit.com/build  Beta,只有簡單區塊
http://shoelace.io/ 簡單拉colum

http://www.bootply.com/new#  更圖形化,但註冊無效! 無圖形化,但可測試bootstrap程式碼

http://scripteden.com/builder/bootstrap/ 好像免費


收費:
http://pinegrow.com/  好
http://macaw.co/ 好
https://www.boottheme.com/app/#page  要錢-不能商用
https://app.brix.io/brix/preview.html?p=811#self  只有試用
http://www.bootstrapdesigner.com/ 要註冊,存在遠端

http://demo.bootstraptor.com/blocks.html#  讚
PRO us$44  http://www.mightydeals.com/deal/blocks.html

php pdo [轉]Useful database helper class to generate CRUD statements using PHP and MySQL

http://www.angularcode.com/useful-database-helper-class-to-generate-crud-statements-using-php-and-mysql/

這個看起來更好,滿足我的問題,不用再進crud class中,一個一個改欄位,直接帶什麼改什麼,這樣更快。

Integration blueimp fileupload in ckeditor 實例範例

Integration blueimp fileupload in ckeditor

http://stackoverflow.com/questions/14013418/integration-blueimp-fileupload-in-ckeditor

https://github.com/blueimp/jQuery-File-Upload

------
檔案下載 file download


1、index.php 是 建立ckeditor,主要是多一個function triggerUploadImages(url){
2、在ckeditor目錄下的config.js,補上網頁上的程式碼,要注意html : ' <iframe src=  需要給正確

2.1、index.html 是非常基本的,basic-plus.html是取jquery file uploder的範例來用,上傳完後,點選該圖或文字,就能會回傳

2.2、index.html 和 basic-plus.html兩支程式都有呼叫 parent.triggerUploadImages,把url傳回ckeditor

2.3、注意index.html的data-url="server/php/" 路徑是否正確;basic-plus.html 這段

var url = window.location.hostname === 'blueimp.github.io' ?
                '//jquery-file-upload.appspot.com/' : 'server/php/'

路徑是否正確


基本上較麻煩的是,上傳完畢後,會回傳url,再送到CKEitor裡面。


圖片上傳在server/php/files  ,會自動做縮圖

[轉]HOW TO MAKE UPLOAD IMAGE IN CKEDITOR.



http://www.dukaweb.net/2014/01/how-to-make-upload-image-in-ckeditor.html


In script tag, which we call CKEditor put one more code:

CKEDITOR.replace( 'editor1', {
  filebrowserUploadUrl: "upload/upload.php"
} );


In upload.php

if (file_exists("img/"; . $_FILES["upload"]["name"]))
{
echo $_FILES["upload"]["name"] . " already exists please choose another image.";
}
else
{
move_uploaded_file($_FILES["upload"]["tmp_name"],
"img/" . $_FILES["upload"]["name"]);
echo "Stored in: " . "img/" . $_FILES["upload"]["name"];
}


If you get an error “image source url is missing“, that means the url of the image doesn’t pass to the image info tab, you can fix this error by adding the php code to pass the image url.

In upload.php file

Add the following code in the else function


// Required: anonymous function reference number as explained above.
$funcNum = $_GET['CKEditorFuncNum'] ;
// Optional: instance name (might be used to load a specific configuration file or anything else).
$CKEditor = $_GET['CKEditor'] ;
// Optional: might be used to provide localized messages.
$langCode = $_GET['langCode'] ;

// Check the $_FILES array and save the file. Assign the correct path to a variable ($url).
$url = "img/" . $_FILES["upload"]["name"];
// Usually you will only assign something here if the file could not be uploaded.
$message = '';

echo "<script type='text/javascript'> window.parent.CKEDITOR.tools.callFunction($funcNum, '$url', '$message');</script>";





http://www.paulfp.net/blog/2010/10/how-to-add-and-upload-an-image-using-ckeditor/

----------
http://bittyferrari.blogspot.tw/2015/03/ckeditor-image-upload.html

做法就是用個jquery的ajax檔案upload功能

我是包了這個 jquery-fileupload.min.js

function addImg(v) {

CKEDITOR.instances.content.insertHtml('<img src="' + baseUrl + '/upload/news/' + v + '" />');

}

==========

Integration blueimp fileupload in ckeditor

http://stackoverflow.com/questions/14013418/integration-blueimp-fileupload-in-ckeditor

https://github.com/blueimp/jQuery-File-Upload


jquery file upload 后台收到的文件名中文乱码, filename中文乱码
http://blog.csdn.net/zhouyingge1104/article/details/38322403


CRUD jquery free datatable jtable

以前開發的經驗,用過兩個算是功能最多最好用的

https://datatables.net/    MIT license
在六七年前有回覆過bug,在某間公司開發網頁時,有套用,前台顯示+後台MSSQL Storeprocess,在search按下任何一個字元,直接在後台的DB抓資料出來,速度非常的快,幾萬幾都沒問題。

https://editor.datatables.net/ 要付費,但付一次,無限站台,無限使用者
三、四年前有套過一次,上馬很快,但15天後到期,沒付費,轉找別的…

http://www.jtable.org/ MIT license
三、四年最後用這套,很快就套起來,CRUD全有了

以上很快的意思是,網站的demo含php,基本上,table column設好,就新、修、刪全有了,而且可以設定顯不顯示等等。

這些套件只有一個問題,就是css在修改上需要蠻多時間熟悉,不過有的是套jquery ui,可以用jquery ui產生器,也許會更快套色。


======

Evolutility 1.1.2  AGPL v3http://evoluteur.github.io/evolutility/


jsGrid   MIThttp://js-grid.com/


X-editable  MIT
https://vitalets.github.io/x-editable/


=====
手寫
https://github.com/sitepoint-editors/SCRUD   修改、刪除是在server輸出

php pdo

https://www.codeofaninja.com/2013/05/crud-with-php-jquery.html


while ($row = $stmt->fetch(PDO::FETCH_ASSOC)){
// extract row
// this will make $row['name'] to
// just $name only
  extract($row);

這樣就能直接引用

例: 原本是用$row['id'],現在直接$id

如果有重覆變數,請看
http://pydoing.blogspot.tw/2013/03/PHP-extract.html




[轉]Top 12 Best PHP RESTful Micro Frameworks (Pro/Con)



http://www.gajotres.net/best-available-php-restful-micro-frameworks/




I will recommend these 4 frameworks:

Silex
**Slim
Lumen
Phalcon

node.js

一但重開機,要執行npm,就要執行底下


nvm use stable

應該是自己那沒設好


http://learn.bevry.me/node/install/

git clone git://github.com/creationix/nvm.git ~/.nvm
printf "\n\n# NVM\nif [ -s ~/.nvm/nvm.sh ]; then\n\tNVM_DIR=~/.nvm\n\tsource ~/.nvm/nvm.sh\nfi" >> ~/.bashrc
NVM_DIR=~/.nvm
source ~/.nvm/nvm.sh



nvm use stable

nvm list





[轉]

直接用github for windows 在gitlab上

https://www.youtube.com/watch?v=fGiQIJczdFc

[轉]不會不專業!只要懂這五題你就是 Pro 級的 JavaScript 工程師

http://buzzorange.com/techorange/2015/08/18/humans-create-softwarehow-do-you-judge-a-javascript-programmer-by-only-5-questions/



Q1:你能解釋出什麼是 apply 函數嗎?

當之後你在建立 Library 時你一定要記得最常使用的 apply 函數




Q2:你能跟我解釋一下什麼是 map 嗎?不仿就再問問有關 reduce 方法。如果你不懂什麼是 map ,這代表著你在功能性撰寫程式程度是零!但千萬別放棄治療,建議你從這快開始你的學習之旅:A dirt simple introduction to higher order functions in JavaScript.

Q3:能解釋什麼是 bind 嗎?
Q4:解釋一下什麼是 closures ?

node js



https://cnodejs.org/topic/55651bf07d4c64752effb4b1




Node.js最新Web技术栈(2015年5月)

-----
https://cnodejs.org/topic/5059ce39fd37ea6b2f07e1a3

阿里云主机Nginx下配置NodeJS、Express和Forever

forever 和 pm2 大家推荐用哪个呢?

-----
https://cnodejs.org/topic/5338c5db7cbade005b023c98



快速搭建 Node.js 开发环境以及加速 npm

-----
https://cnodejs.org/topic/55c2b29b5965fe2c74f4787c


easyui 或者 jgrid + ztree 或者bootstarp


表格和tab貌似都是前端的东西啊,跟 express 这个后端没关系。express 作为后端说白了就是提供 api ,作数据交换,至于数据要怎么展示,通过什么展示那就是另外的框架做的事件了。很很多JS框架可以做相关的事件,推荐 bootstrap 。用 ui.bootstrap 把它跟 angular 整合起来,一般 web 界面不在话下。


angular 属于前端框架,bootstrap 属于界面框架, express 属于后端框架


----

https://cnodejs.org/topic/55c44356b98f51142b367b30


javascript, nodejs, express, mongodb

我觉得还是先打基础把, 不然知其然不知其所以然. javascript, nodejs, express, mongodb 的官方文档或者经典书看一遍, 其间动手练练里面的例子. 然后找个小项目上手, 是水到渠成的事. 欲速不达.


https://github.com/madhums/node-express-mongoose-demo


-----

http://nodejs.tw/t/53689557c7991d0000199e6c






剛好看到....

呵呵...... 是不是遇到什麼挫折了?

我覺得 1-3 點,不跳坑的理由,完全不成立耶...我覺得是這樣:


1.假設你還不會 js,那寫 node.js 可能會有些辛苦,最好要能體會 js 的精神,擺脫 class 的語言,不要再去想介面,方法, 抽象類,包裝,及各種設計方法,忘掉它們,至少寫 js 時,忘掉它們。function 就是物件!!
node.js 是single thread 的,美就美在這裡。它的創造者 Ryan,故意這麼設計的。意思就是,即便很多人建議 multi-thread,他仍堅持 single thread,而後來證明這是對的。因為 Node.js 用的是 event loop 。所以,可以再仔細看看下面的程式:


setTimeout( function(){

console.log('world');

}, 1000); // 告訴 event loop 一秒後執行它, 然後繼續執行下去....是不是有點像太極拳...


console.log('hello');


Node.js 因為使用 js, 完全沒有沉重舊 lib 的負擔,也是 Ryan 選擇 js 的原因,Ryan 打造 Node.js ,是希望找出一個方法,可以擺脫 I/O blocking, 建立各種 net application。在這面這程式裡,就是擺脫的方法,去讀你的檔案吧,我先去做其它的事了,好了你再叫我。


明白了上面幾點後,應該就能進去 Node.js 的世界了。


如果你要用 node.js 寫網站,搞懂 express, 搞懂 express, 其它 mvc 架構框架,像 restify ...等,大同小異,你也會懂了。


你會需要做單元測試, 可以用 mocha


即便會了 js, 你還會陷入 callback hell,就是瘋狂無止盡的巢狀 callback,千萬別那樣寫。搞清楚, async.js 或 q 的 promise 可以幫你。不過,我建議 async.js ,它是最普遍的。

- See more at: http://nodejs.tw/t/53689557c7991d0000199e6c#sthash.icKddbqZ.dpuf

李敖 反課綱學運



※李敖大師終於出手了 :

反課綱學運時,大家都想學歷史的李敖大師為什麼沒開口,今天他終於大開金口,而且是噴的體無完膚:




在過去的幾十年,臺灣學生都是躲在後面,“太陽花學運”時他們突然跑到前面,可他們洩底了:『竟然要求以“一邊一國”的“兩國論”來與大陸談判。』他們完全不知道自己是老幾。




這次“反課綱”的高中生,一下子就讓人看出了他們的軟弱。你看,『他們從一開始的“我來了”,到後來的“我說了”、“我抗爭了”,結果不到10天,8月5日就說“我累了”,準備撤離。而且,他們談判時講理講不贏就下跪,甚至還哭哭啼啼;或者忽然被媽媽叫走,不再參加“反課綱”了。』這說明什麼?他們根本就是一群軟弱的高中生,世界上從來沒有這樣軟弱的“革命家”,“反課綱”根本就是一個笑話。




臺灣目前的高中歷史課綱是有問題,但不是這些學生所認為的那些問題,而是馬英九和臺灣“教育部”不敢正視真正歷史的問題。




大家要明白,陳水扁和前“教育部長”杜正勝把臺灣高中歷史課本一分為二,即分為《中國史》和《臺灣史》;目前這些高中生所鬧的部分只是針對一分為二後的《中國史》,對《臺灣史》又絕不允許馬英九去碰,馬當局也不敢撥亂反正,重新合二為一。




“反課綱”人士糾纏的一個問題,是要求課綱中不可刪除“二二八事件”,因為不可忘了國民黨殺了臺灣人。好,既然如此,那台當局有兩個真正關鍵的問題為什麼不寫?!




第一,日本人總共殺了多少臺灣人?當初一個“霧社事件”,日本人見臺灣人就殺,把整個村莊的人都殺光了,國民黨來台是不敢這麼殺的。關於日本人殺臺灣人,如今在課綱中已刪除,這些“反課綱”的人為何不要求寫這段歷史呢?




第二,400年前,當多數臺灣人的祖先從廣東和福建來台後,殺了多少原住民?這些原住民原來住在平地,被漢人打殺後逃到山裡變成了如今的高山族。《宜蘭縣誌》裡記載,有的高山族逃到山上後,一哭就是一個多月。這些歷史為什麼不要求寫?這些高中生根本不瞭解這些歷史,民進黨則故意隱瞞,國民黨卻不敢據理力爭。




日本福島核洩漏事故發生後,臺灣各界向日本捐款共66億元,這比全世界的其他國家和地區向日本捐款的總和還多。可是,日本當地學校複課後,在校學生中唯一得不到助學金的卻是臺灣學生,可見日本人根本就是把臺灣人當作賤骨頭來看待。

關於慰安婦問題,1990年代日本被揭露後,想給她們每人50萬元私了。日本為什麼要給錢和解?因為他們覺得對不起這些慰安婦呀!但臺灣的慰安婦對日本人說,這個錢不能要。50萬元現金對這些慰安婦其實很重要,可她們說不可以拿,為的是不讓人篡改這段歷史。最終,我李敖站出來,給臺灣慰安婦每人發了50萬。




可如今這些“反課綱”的高中生,竟然同意陳水扁時期課綱中有關“慰安婦是自願的”說法,而反對微調後的“被迫”說法,可見臺灣新一代的年輕人更加混蛋。日本統治過韓國,如今在首爾基本很難看到日本車,可見韓國人對日本人是什麼態度;日本統治臺灣的時間更長,可臺灣人如今卻是如此媚日。

臺灣社會如今沒有任何一個力量敢去譴責這些年輕人,年輕人都被慣壞了,沒事就上街胡鬧。




就說“洪仲丘事件”吧,事情發生了,輿論的整個風向就是全部怪罪臺灣軍方,批評軍方虐待士兵。可沒有人去問,按理軍中訓練是高強度的,為何洪仲丘還能長胖30多公斤?說明是在養尊處優嘛。結果,整個事件就按“刑法”論處,臺灣的“軍法”形同被取消,軍隊自然也就完蛋了。




現在這些“反課綱”的學生,不認真做學問,對歷史也完全不瞭解,輿論竟然也不敢批評,結果他們就胡鬧了,這當然也是國民黨文化教育的失敗。




“文化台獨”根本是假的,是不成立的,根本就是胡鬧。這些所謂“搞台獨”的人,敢改“中華民國國號”嗎?敢改“中華民國國歌”嗎?當然不敢!他們對於威脅和嚇唬似乎並不怕,但要是拳頭打到臉上,他們就真怕了。這就是說“台獨”的基礎根本不牢靠,因為海島上的臺灣人,性格上是很現實的。




前有李登輝說“釣魚島是日本的”,後有高中生說“慰安婦是自願的”,這根本就是一脈相承,一丘之貉。當然,釣魚島問題的爭端,有其歷史原因,但不管怎樣,當初美國只是把治權交給日本,主權並不屬於日本。

自架 vmware esxi 6

原價屋

Intel XEON E-1231 v3 (1150腳位/Haswell Refresh)   x1     7,770
超微 Super micro  X10SLL-F-O   x1   5,699
金士頓 Kingstom HyperX FURY 120G (SHFS37A/120G)  x1   1,630
金士頓 Kingstom 8G DDR3-1600 ECC (KVR16E11/8)  x2   4,780

總共  19,879

用非常一般的機殼,cpu溫度非常低,可能沒跑什麼系統吧。目前主力跑 couchbase server。

sudo -i | sudo -

有時候sudo - 會不能用,要補上i

sudo -i 基本上都能過

在root被關掉情況下,又要有root的操作

[轉]How do i restart nginx only after the config test

nginx -t


after the test ran successful, I can restart the service/etc/init.d/nginx restart


or only reload the nignx site configs without a restartnginx -s reload

[轉]LINUX VPS VESTACP



http://zhaozhao.info/archives/150416













Apache模版有default、basedir、hosting、phpcgi、phpfcgid和wsgi。default模版没有额外的设置,适合自用的朋友。basedir模版直译是反对使用openbasedir指令的PHP脚本,我理解是防止PHP脚本试图绕过openbasedir指令限制。hosting模版适用于虚拟主机,各个网站会相对独立,可能更适合要外包的同学。phpcgi模版则是使用CGI方式运行PHP,个人认为没什么意思。phpfcgid模版则使用FastCGI方式运行PHP。wsgi模版则是为了运行python脚本。







Nginx模版有default、hosting、сaching和force-https。default模版提供静态服务。hosting模版禁用了symlink,适用于虚拟主机,更安全。сaching模版适用于追求高性能的朋友,Nginx将发挥其强大的缓存功能,而Apache和php真正成了后台。force-https模版则是访问HTTP会跳转到HTTPS。







DNS模版有default、gmail、child-ns。gmail模版适用于使用Google App邮件托管。child-ns模版比default模版多了ns1和ns2的A记录,大家差不多就明白是什么意思了吧。

模版在/usr/local/vesta/data/templates/目录下,可以很方便地自定义模版,可以先参考官方怎么写的。个人自用我推荐default+default,虚拟主机外包我推荐hosting+hosting或者phpfcgid+hosting。







另外一点,就是软件包中有一项SSH访问,其中有sh、bash、nologin、tcsh、csh与rssh。nologin就是禁止SSH访问,sh、bash、tcsh与csh都是shell,具体区别就不谈了。rssh特别重要,rssh是指restricted secure shell,受限制的Shell,只能使用sftp与scp(一个基于SFTP的文件拷贝命令)。FTP其实是一种很不安全的传输协议,全明文,连密码也是明文。SFTP则是一个很棒的东西。因此使用VestaCP开虚拟主机推荐使用rssh,当然直接给用户bash就更好了。







所以之后我习惯在新主机安装好基本环境后,先丢 PHP 探针到主机上做一下浮点运算能力检测,检测出的数值要在0.8以下才会快速的开启网页(之前在 Linode 测出来的是2点多,在白天时还会更慢,你说扯不扯!?)。






如果你很在乎网站的效能的话,那么应该知道要利用 cache 的方式让网站提升速度,而在 Vesta 里很容易的就可以设定好 Varnish cache(https://www.varnish-cache.org/),只要进入 WEB 里,在 Nginx Template 的下拉选单指定 caching 就完成了。







网站的安全防护也是很重要的部份,如果是租一般的分享空间的话,基本上主机商都已经做好防火墙之类的设定了。但我租的是 VPS,所以向主机商租到的只有硬件、传输量、DNS 跟支持服务而已,需要防卫的话就要自己处理,建议可以安装 CSF 防火墙来保护主机的安全


用 SSH 与主机联机安装 CSF:




wget http://www.configserver.com/free/csf.tgz




tar xzvf csf.tgz


安装


ufw disable


进到 CSF 文件夹


cd csf


执行安装脚本


sh install.sh


安装完成后再测试一下 iptables 模块看有没有问题


perl /usr/local/csf/bin/csftest.pl


接着编辑需要要开放的 Port


nano /etc/csf/csf.conf


因为 Vesta 的后台是走 Port 8083,所以也要开启这个阜号才能进入后台


# Allow incoming TCP ports




TCP_IN = "20,21,22,25,53,80,110,143,443,465,587,993,995,8083"


# Allow outgoing TCP ports




TCP_OUT = "20,21,22,25,53,80,110,113,443,8083"


若是还需要其它的设定,可以参考这篇教学:https://www.digitalocean.com/community/articles/how-to-install-and-configure-config-server-firewall-csf-on-ubuntu




http://configserver.com/cp/csf.html







硬碟耐用

http://technews.tw/2015/07/30/hard-drive-reliability-stats-for-q2-2015/







最好的是 HGST

預付卡

台星 是 黑心油,大家都不支持,只好用中華如意卡


http://www.mobile01.com/topicdetail.php?f=18&t=4222189&p=1







中華預付卡:撥打508申請網路吃到飽499元

補充:

撥打508後~

選語言1.印尼2.菲律賓3.越南4.泰國~

按1~申請30天無限上網499 確定申請按1~收到簡訊後~重新開機

按3~申請計量型~(100mb再按1) (1GB按2) (2GB按3) ~確定申請按1~收到簡訊後~重新開機

按4~申請計日型~(1日按1) (3日按2) (5日按3) (7日按4) (10日按5) 確定申請按1~收到簡訊後~重新開機

按5~申請30日語音優惠450元~確定申請按1~收到簡訊後~重新開機

按6~服務說明~(1)30天無限上網(2)計量型(3)計日型(4)30日語音優惠

按7~查詢已申請的服務(到期日 查詢用量 剩餘金額)

按9~轉接客服

按0~重聽

[轉]管理的能與不能

http://www.projectup.net/blog/index.php?option=com_content&view=article&id=8480:2012-03-13-08-52-54&catid=8:pmp-pm&Itemid=18

[轉] Reddit 起義:美版 PTT 開除一名「高級」員工,慘遭上百位版主關站抗議

http://buzzorange.com/techorange/2015/07/06/reddit/

單月不重複造訪者達 1.7 億的份上

因此在去年 9 月時,我們都知道 Reddit 才又融資估值上看 5 億。



現階段我們對於 Reddit 的溢美之詞,不管是他們的流量、AMA 活動的成功,甚至是言論自由、成為「網路的首頁」等等,都直指他們網站中內容的展演與呈現的方式,但這些卻都不是 Reddit 管理階層能夠控制的。

[轉]一帶一路和希臘 美元 黃金 脫勾

http://www.caizischool.com/blog/33408/%E4%B8%80%E5%B8%B6%E4%B8%80%E8%B7%AF%E5%92%8C%E5%B8%8C%E8%87%98.html

[轉]Couchbase Lite stops syncing when an app resumes from background

http://stackoverflow.com/questions/20822285/couchbase-lite-stops-syncing-when-an-app-resumes-from-background



answered Dec 30 '13 at 12:55

MonkeyBonkey


Looks like if I set the replication to "persistent" it resumes on app backgrounding

e.g._pull.persistent = YES;

couchbase todolist get database sync part

https://github.com/couchbaselabs/ToDoLite-Android


 Write ToDoLite database sync  guy  is very good.

OK, take out.

android studio:new project   then


  • Copy todolist four java :

             Application.java、BaseActivity.java、Preferences.java、Synchronize.java


  • Edit  java : MainActivityjava、AndroidManifes.xml 

           1、app/src/main/AndroidManifest.xml
            <application 
     add        android:name="com.sandk.groupaccountbook.Application"


           2、app/src/main/java/com/sandk/groupaccountbook/MainActivity.java
  change     public class MainActivity extends ActionBarActivity  => 
                  public class MainActivity extends BaseActivity {


If have new activity, just change extends to BaseActivity, then can use application.getDatabase().

four java : any use facebook just // or delete

now database = application.getDatabase()  is ok~~

==========
主要是新增四支java和二個設定

從todolist copy 四支為:
Application.java、BaseActivity.java、Preferences.java、Synchronize.java 

變更設定為:MainActivityjava、AndroidManifes.xml 

差別閱github版本差異 官方寫的非常漂亮,可以切開來

  • app/src/main/AndroidManifest.xml
            <application 
     add        android:name="com.sandk.groupaccountbook.Application"


  • app/src/main/java/com/sandk/groupaccountbook/MainActivity.java
  change     public class MainActivity extends ActionBarActivity  => 
                  public class MainActivity extends BaseActivity {

別忘記最重要的, MainActivity extends 要改成 BaseActivity
將來有新的Activity extends BaseActivity 就行用了!


把四支新增 java,裡面有facebook 部份註解掉,基本上就能使用了


寫程式就可以用 database = application.getDatabase()


android & couchbase app -- ok, now can share little

1. activity_main.xml   =>   tools:context=".MainActivity"  => MainActivity.java


.......I try first... is more better  then post.

=========
=========
===== suggestion newbie =====
https://github.com/couchbaselabs/CouchbaseLite-DevDay-StarterKit
https://github.com/couchbaselabs/GrocerySync-Android
https://github.com/couchbaselabs/ToDoLite-Android        (Hard Understand) SO see this first:
http://sueboy.blogspot.com/2015/06/couchbase-todolist-get-database-sync.html
=========

MainActivity.java

  BuildConfig -- 來自 build.gradle ( Module.app ) 目錄app -- build.gradle

  extends ActionBarActivity -- http://blog.tonycube.com/2014/02/android-actionbarcompat-1.html

  Intent -- http://www.imyukin.com/?p=183
         -- http://kezeodsnx.pixnet.net/blog/post/27072894-android-----%E6%87%89%E7%94%A8%E7%A8%8B%E5%BC%8F%E8%87%AA%E6%88%91%E4%BB%8B%E7%B4%B9%E4%B9%8Bintent-resolution

  startService -- http://blog.maxkit.com.tw/2014/01/android-serviceintentservice.html
               -- http://blog.kenyang.net/2012/11/android-startservice-vs-bindservice.html
               -- http://blog.csdn.net/biezhihua/article/details/44439897
    context.bindService() <==> context.startService()
    context.startService() ==> Service <==> IntentService

  AsyncTask -- http://a-can.logdown.com/blog/201623/android-asynctask-asynchronous-functions-are-carefully

  Observer -- http://www.apkbus.com/android-112815-1-1.html

  runOnUiThread -- http://lak4cyut.blogspot.com/2011/03/android-tip-activityrunonuithread.html
                -- http://blog.csdn.net/zhang_yanye/article/details/40794629

  getApplication Application.java -- http://www.cnblogs.com/duanxz/p/4379800.html

  Replication 同步local到remote -- http://developer.couchbase.com/mobile/develop/references/couchbase-lite/couchbase-lite/replication/index.html

  application.getOnSyncProgressChangeObservable() --
    onSyncProgressChangeObservable --
      addObserver -- http://www.apkbus.com/android-112815-1-1.html

  application.getOnSyncUnauthorizedObservable().addObserver(new Observer()

  application.startReplicationSyncWithCustomCookie 開始同步到remote

  DrawerLayout -- http://ikevin.tw/?p=277


===== command see database =====
http://xxxx.xxxx.com:4985/_admin
http://xxxx.xxxx.com:4985/groupaccountingbooks/_session
http://xxxx.xxxx.com:4985/groupaccountingbooks/_user/
http://xxxx.xxxx.com:4985/groupaccountingbooks/_persona
http://xxxx.xxxx.com:4985/groupaccountingbooks/_changes
http://xxxx.xxxx.com:4985/groupaccountingbooks/_all_docs

open Sync Gateway GUEST account
http://xxxx.xxxx.com:4985/default/_user/GUEST --data  '{"disabled":false, "admin_channels":["public"]}

add sync_gateway user (basic auth : user must exist on Sync Gateway.)
https://forums.couchbase.com/t/couchbase-lite-and-couchbase-sync-gate-way-authentication-failed/3993
https://forums.couchbase.com/t/user-authentication-document-best-practices/3086
http://sueboy.blogspot.com/2015/06/couchbase-basic-auth-basicauth.html
==========

===== couchbase todolist =====

getDeviceToken  ==> AsyncTask ==> doInBackground ==> GoogleCloudMessaging gcm

Synchronize.java <== Application.java <== Many use


===== android adapter view listen best way =====
http://androidadapternotifiydatasetchanged.blogspot.com/2013/02/android-notifydatasetchanged.html
http://stackoverflow.com/questions/4198425/updating-the-list-view-when-the-adapter-data-changes
https://developer.android.com/training/material/lists-cards.html

===== RecyclerView  =====
http://blog.csdn.net/guxiao1201/article/details/40423361
http://hmkcode.com/android-simple-recyclerview-widget-example/
http://blog.csdn.net/li396858359/article/details/40270921
http://www.eoeandroid.com/thread-535701-1-1.html
https://blog.nraboy.com/2015/04/create-a-couchbase-lite-todo-list-with-native-android/


===== RecyclerView onClick =====
http://stackoverflow.com/questions/24885223/why-doesnt-recyclerview-have-onitemclicklistener-and-how-recyclerview-is-dif
http://sueboy.blogspot.com/2015/06/recyclerview-onclick.html


===== Write your own Android Sync Adapter =====
http://blog.udinic.com/2013/07/24/write-your-own-android-sync-adapter/


==== Easy start new activity on button click =====
http://stackoverflow.com/questions/4186021/how-to-start-new-activity-on-button-click


===== How to add Secure Sync to your mobile apps =====
https://github.com/couchbaselabs/sg-live-demo


=====  save document =====
Map<String, Object> properties = new HashMap<String, Object>();
properties.put["type", "List"];
properties.put["title", title];
properties.put["created_at", currentTimeString];
properties.put["owner", "profile:"+ userId];
properties.put["members",, new ArrayList<String>()];

//save to database
Document document = database.cretaeDocument();
document.putProperties(properties);


===== read document =====
Document document = database.getDocumnet(mDocId);
String title = document.getProperty("title");

Map<String, Objectt> properties = doc.getProperties();
String owner = (String) properties.get("owner");


===== Push Pull =====
Push => Server or couchbase SyncGateway
Pull <= Server or couchbase SyncGateway


===== cookie auth =====
app calls my server which POST to SyncGateway's _session
https://groups.google.com/forum/?utm_medium=email&utm_source=footer#!msg/mobile-couchbase/83srQTNmXj0/sPOW61ZWNtkJ



couchbase basic auth basicAuth startReplicationSyncWithBasicAuth --- How To Do

突然想到,他的basic auth,其實不是用來給系統用的,是給app用的
也就是app每一支都是用同樣的basicAuth id/pwd登入,區分 管理者和一般使用者

而一般使用者註冊後,帳密是另外開一個doucment,之後所有的文件管理是自己要控制的
跟mysql的一樣,不會給每個人有basic auth,權限管理,也是在sql下的時候,抓出資料做判斷

所以才會在 add user時,用restful curd,使用者代表不同的專案

==========
This is my think:

couchbase basic auth is not for every body login. It is app connect to sync_gateway for auth. Example is have normal user and Admin user. Maybe login sync_gateway, that get different document、channel、sync.

Normal user registered. The register data put in document, Maybe document name is "members" then system programmer need to control document show or not by permit. Like sql not everybody register, then get login mysql account. Only one account connect. After login, everythings is by program control.

So add user is use restful curd to sync_gateway. Like different project <= user.


 (basic auth : user must exist on Sync Gateway.)
https://forums.couchbase.com/t/couchbase-lite-and-couchbase-sync-gate-way-authentication-failed/3993
https://forums.couchbase.com/t/user-authentication-document-best-practices/3086

==========

curl -vX     POST
-H     'Content-Type: application/json'
-d     '{"name": "guest",   "password": "xxxooo"}'
http://xxx.xxx.com:4985/db_name xxx ooo/_user/

use method POST
db_name xxx ooo is your db name



==========
when user login use basic auth website  (If sync_gateway guest disable)

http://sandk.mkinweb.com:4984/groupaccountingbooks/    This is login, you need to login by aa : aaa
http://sandk.mkinweb.com:4984/groupaccountingbooks/_session   If login ok, you can see this have

{"authentication_handlers":["default","cookie"],"ok":true,"userCtx":{"channels":{"!":1},"name":"aa"}}


==========
See best new couchbase android todolite
ok~ see java    ui.login/LoginActivity

mBasicAuthButton = (Button)findViewById(R.id.basicAuthLoginButton);
then see layout : activity_login.xml   ok,find this:
android:id="@+id/basicAuthLoginButton"  

then you see 
android:visibility="invisible" />  just remove  "invisible".  When you login,  now you can see button.

But click no anythings.  Ok~ go back  ui.login/LoginActivity  find this:
private void promptUserForBasicAuthAndStartSync() {

see commit, now you can understand.  add user / pwd

curl -X POST http://localhost:4985/${db}/_user/ -d '{"name":"foo", "password":"bar"}'


For Session

key point:  create one session
curl -X POST -H "Content-type: application/json" -d '{"name": "your-user-id"}' localhost:4985/todolite/_session

then sync_getway renturn session_id

{"session_id":"03bdd7f1be83f035a7298924f9a28270feac7f4c","expires":"2015-03-17T21:39:16.076186179Z","cookie_name":"SyncGatewaySession"}

then chang session_id to 
private void loginWithCustomCookieAndStartSync() {



==========
sync_gate have username, password , this username, password for couchbae server, new bucket setting username, password

{
  "log": ["CRUD", "REST+", "Access"],
  "interface":":4984",
  "adminInterface":"192.168.0.00:4985",
  "databases": {
     "groupaccountingbooks": {
       "username": "xxxxoooo",
       "password": "xxxxoooo",

       "server": "http://192.168.0.00:8091/",
       "users": {
          "GUEST": {"disabled": true, "admin_channels": ["*"] }
        },
        "sync": function(doc, oldDoc) { channel("all_docs"); }
      }
    }
}


graphical http client restful

https://code.google.com/p/im-only-resting/
http://www.swensensoftware.com/im-only-resting


https://github.com/wiztools/rest-client


RecyclerView onclick

RecyclerView step 3

step1
public class xxxxxxxx extends RecyclerView.Adapter<MyAdapter.ViewHolder> implements View.OnClickListener {



step2

public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, int position
viewHolder.textView.setOnClickListener(this);

textView is findViewById(R.id.xxxxxxxxx)


step3


@Override
public void onClick(View view) {
  int viewId = view.getId();
   if (viewId == R.id.xxxxxxxxx) {  //which item click
      if (onItemClickListener != null) {
         onItemClickListener.onItemClick(view, (Integer) view.getTag());
      }
  }
}



view.getTag() maybe null

about RecyclerView error: android.widget.LinearLayout cannot be cast to android.widget.TextView

https://developer.android.com/training/material/lists-cards.html


I think many people, try to do this demo. But this demo is not good, because some things no show.
like:

RecyclerView .xml to a layout:.......only little, but ok, this not import.
MyAdapter .xml no layout: this is bad. Get error in here.

so, follow this do is better
http://stackoverflow.com/questions/28407768/android-widget-linearlayout-cannot-be-cast-to-android-widget-textview-in-recycle

Gorcyn  is good guy~~ ^ ^

But what different with android demo (fxxxxxxxxxxxxxx)

android:
  • public ViewHolder(TextView v) {
  • mTextView = v;

good guy:
  • public ViewHolder(View v) {
  • mTextView = v.findViewById(R.id.textView));

so Now I think you understand what happen, if you lean java.

Why android developer not put full demo, than everybody get right demo. I search this issue, wast 3 hours. And on internet many people get this problem. Really miss Delphi~~

write java let me feel back ten years ago. that time write can use jbuilder 2. But now ...........

powerbuilder is good for demo, too.


[轉]Google 出手尝试解决 Android WebView 的碎片化

https://typeblog.net/tech/2015/04/06/google-released-seperate-webview.html




Google Play Store 上发现了一个新的App: Android System WebView
用來更新 WebView

但只限官方的rom,因為

指向到 com.android.webview 和  com.google.android.webview
後者才有用

所以作者用  Xposed 處理

[轉]Etsy 用 SSD 的故事 ssd 使用情況



https://blog.gslin.org/







Intel 的評價很不錯:


Okay, bad start, we’ve actually had no issues with Intel. This seems to be common across other companies we’ve spoken to.




Samsung 的評價不錯,C/P 值很高,而且有 S.M.A.R.T.:

Samsung saved the day and picked up from OCZ with a ludicrously cheap 960GB offering, the 840 EVO. A consumer drive, so very limited warranty, but for the price (~$400-500) you got great IOPS and they were reliable. They had better SMART info, and seemed to play nicely with our hardware.

sometime have couchbase.lite error, how to do



change build.gradle


  • use old couchbase.lite  then ok


compile 'com.couchbase.lite:couchbase-lite-android:1.1.0-516'

use 
1.3.0
1.4.0 
but get error, some method go away~

[轉]Android app has error: Execution failed task':app:preDexDebug' trying to test parse but can't run app with this error

https://teamtreehouse.com/forum/android-app-has-error-execution-failed-taskapppredexdebug-trying-to-test-parse-but-cant-run-app-with-this-error

http://stackoverflow.com/questions/25529155/android-studio-gradle-error-predexdebug



Try this : File ----> Invalidate caches/restart



couchbase sync gateway Edit data save

http://xxx.xxx.xxx.xx:4985/admin/

click   Documents

click left documents, then show data on top.  then can see two button

"Save Doc"   "Revert DOC"

Now you can change data in  { ................. }

Changed finish, click  "Save Doc",   now document be change.


I think sync to app right now.




[轉]Svetlin Stanchev: Couchbase Lite, Sync Gateway and Server 1-2

https://www.youtube.com/watch?v=hzeeENTRjlc

https://www.youtube.com/watch?v=3Zl7bJXqYJU
6:10 start demo



======
..........don't show import.

[轉]網路科技是救星!地段超差餐廳如何用訂餐 O2O 年賺 3000 萬台幣?



http://buzzorange.com/techorange/2015/06/03/restaurant-o2o/








100 單雖然不多,但這是顧客意識的轉變,我覺得肯定是互聯網在改變了人的思維。從一開始你要他網上訂,他不肯訂,到現在天天通過網絡訂,到現在都有了預定的意識。其實是顧客、商戶、平台這些年都在共同進步。


現在,我開始加收 1 塊錢外送費,客戶也願意買這個單,單量不但沒有下降,還上升了。我覺得,把事情做到極致了,就可以坐地收錢了。

Velocity.js Accelerated JavaScript animation. jQuery's $.animate()

http://julian.com/research/velocity/

http://julian.com/research/velocity/demo.html

http://zencode.in/19.CSS-vs-JS%E5%8A%A8%E7%94%BB%EF%BC%9A%E8%B0%81%E6%9B%B4%E5%BF%AB%EF%BC%9F.html

http://www.devoxx.com/display/DV12/Faster+Websites++Crash+Course+on+Frontend+Performance


圖片 自動嶞尺寸放大縮小 picturefill responsiveimages

http://scottjehl.github.io/picturefill/

http://responsiveimages.org/


PayPal 教學 -- 有點舊,不過能參考



http://calos-tw.blogspot.com/2012/09/paypal.html
























[來源]:http://fxc86.blog.hexun.com.tw/44899711_d.html
PayPal 快速、安全而又方便,是跨國交易的首選在線付款方式。現在PayPal可以和國內大部分信用卡關聯,可以實現國人的跨國交易收支。
申請PayPal註冊網址:https://www.paypal.com/
paypal接口與其它接口有些不同,稍微復雜一點。 其實銀行接口也算是一個站點的插件。
所謂paypal ipn(Instant Payment Notification),就是Paypal開發的一種能主動通知第三方賣家系統交易狀態的一種機制。IPN的原理很簡單,就是當產生了一個交易之後, 交易狀態發生變化時,如用戶已經付款、或者退款、撤銷時,Paypal利用常用的HTTP POST方式,將交易的一些變量提交給網站的某個頁面(稱之為IPN Handler),當這個頁面接受到請求時候,將這些數據原封不動加上一個指示驗證的cmd=_notify-validate,POST回Paypal 的接口地址,如果數據正確,那麽Paypal返回字符串VERIFIED,否則為INVALID,如果結果為VERIFIED,那麽你的程序就可以使用這 些數據進行操作。
開設Sandbox帳號
但代碼的調試是一件很痛苦的事情,因為作為第三方開發人員,不可能開兩個帳號,每次測試還要 之間交易一些錢,所以Paypal專門開發了Sandbox給開發人員進行開發,首先到https://developer.paypal.com/ 註冊一個開發帳號,好了之後再進入Sandbox建立測試用的Paypal虛擬帳號(至少應該建立一個Business的和一個Personal的),這 種賬號註冊方法和Paypal的流程一樣,信息可以是假的,包括銀行帳號、信用卡(其實Paypal Sandbox會自動生成一些隨機的號碼)。接下來需要激活Paypal Sandbox的虛擬帳號,註意,這裏不管你在Paypal Sanbox註冊時填什麽郵件地址,有任何發送到虛擬帳號所填郵箱的郵件都存會在開發帳號的管理界面中的Email頁(導航欄上有)中。登錄 Sandbox的虛擬Paypal環境,還需要驗證虛擬帳號的銀行,這裏可以隨便填,然後通過Add Funds來給賬戶充值(想填多少填多少 920-203 920-533 )。然後,還需要激活IPN的選項,在Business的那個賬戶的Profile設置頁面中,點擊,然後點擊Edit按鈕,打開IPN,這裏如果你使用的是固定的IPN Handle,可以直接將地址填入。
接下來,我們測試的時候,應該將Paypal接口的地址設置為 https://www.sandbox.paypal.com/cgi-bin/webscr
基本的流程
當客戶向您付款時,PayPal將向位於指定 URL (type=”hidden” name=”notify_url” value=” “)的服務器發送一個通知。此通知中將包括您的客戶的所有付款信息(例如,客戶名稱、金額),以及一段加密代碼。當服務器收到通知時,它隨後會將該信息 (包括加密代碼)發送回安全的PayPal URL。PayPal將通過檢查加密字符串對交易進行身份驗證。這種將 IPN 數據傳回PayPal的操作防止了“欺騙”,因此您可以確保 IPN 來自PayPal。在進行驗證時,PayPal會將其合法性的確認信息發送回您的服務器。
提示:要啟用即時付款通知,您將需要輸入一個 URL,通過它您可以接收到來自您的用戶信息的通知。
啟用了即時付款通知後,每次當您接收付款時您的服務器都會收到一個通知,此通知將以隱藏的“FORM POST”的方式發送到指定的 URL,並將包括所有付款信息。此頁面的底部列出了通知的 FORM 變量。
每次收到來自PayPal的 IPN 時,您必須在實施訂單之前完成如下所述的通知確認過程。確認列出的信息將可確保交易合法。
通知確認IPN
為了確保付款已進入您的PayPal賬戶,您必須驗證用作“receiver_email”的電子郵件地址是否已在您的PayPal賬戶中註冊並得到確認。
服務器收到即時付款通知後,您將需要通過構建一個發送到PayPal的 HTTP POST 對其進行確認。您的 POST 應發送到 https://www.paypal.com/cgi-bin/webscr
您必須完全按照收到表單變量時的原樣發送所有收到的表單變量。您還需要將一個值為“_notify-validate”的名為“cmd”變量(例如,cmd=_notify-validate)附加到 POST 字符串。
PayPal將回復該 POST,並在回復的正文中包含一個單詞“VERIFIED”或“INVALID”。當您收到 VERIFIED 回復時,您需要在實施訂單之前執行若幹檢查:
確認“payment_status”為“Completed”,因為系統也會為其他結果(如“Pending”或“Failed”)發送 IPN。
檢查“txn_id”是否未重復,以防止欺詐者重復使用舊的已完成的交易。
驗證“receiver_email”是已在您的PayPal賬戶中註冊的電子郵件地址,以防止將付款發送到欺詐者的賬戶 。
檢查其他交易詳情(如物品號和價格),以確認價格未改變完成了以上檢查後,您可以使用 IPN 數據更新您的數據庫,並處理購物。

如果收到“無效”通知,則應將其視為可疑通知,並應對其進行調查。
主要參數:
向PayPal提交粘貼代碼時,應包括以下 4 個隱藏變量及一張圖片,這就是說,您粘貼到PayPal的最短必需代碼應如下:




1
2
3
4
5
6
7
8

ion="https://www.paypal.com/row/cgi-bin/webscr" method="post">
// "_xclick" 立即購買
//PayPal賬戶上的電子郵件地址
//物品名稱(或購物車名稱)
de" value="USD"> //定義幣種以標示貨幣變量 值可以為 "USD"、"EUR"、"GBP"、"CAD"、"JPY"。
//物品的價格(購物車中所有物品的總價格,因為是_Xclick模式)




可用變量
business 您的PayPal賬戶上的電子郵件地址
quantity 物品數量。大於 1 時,會與金額相乘
item_name 物品名稱(或購物車名稱)。必須是字母數字字符,最多為 127 個字符
item_number 用於跟蹤付款的可選傳遞變量。必須是字母數字字符,最多為 127 個字符
amount 物品的價格(購物車中所有物品的總價格)
shipping 該物品的運送成本
shipping2 每增加一件物品所需的運送成本
handling 手續費
tax 基於交易的稅額。如果使用該變量,傳遞值將覆蓋所有用戶信息稅收設置(不管買家所在位置)。
no_shipping 送貨地址。如果設為 "1",則不會要求您的客戶提供送貨地址。該變量為可選項;如果省略或設為 "0",將提示您的客戶輸入送貨地址
cn 可選標簽,會在提示欄上顯示(最多 40 個字符)
no_note 為付款加入提示。如果設為 "1",則不會提示您的客戶輸入提示。該變量為可選項;如果省略或設為 "0",將提示您的客戶輸入提示。
on0 第一選項欄名稱。最多 64 個字符
os0 第一組選項值。最多 200 個字符。"on0" 必須定義,以便識別 "os0"。
on1 第二選項欄名稱。最多 64 個字符
os1 第二組選項值。最多 200 個字符。"on1" 必須定義,以便識別 "os1"。
custom 決不會向您的客戶顯示的可選轉遞變量。可用於跟蹤存貨
invoice 決不會向您的客戶顯示的可選轉遞變量。可用於跟蹤賬單號
notify_url 僅與 IPN 一起使用。發送 IPN Form Post 的互聯網 URL
return 您的客戶完成付款後將返回的互聯網 URL
cancel_return 您的客戶取消付款後將返回的互聯網 URL
image_url 您要用作圖標的圖片的互聯網 URL,圖片大小為 150 X 50 像素
cs 設置您的付款頁面的背景色。如果設為 "1",背景色將為黑色。該變量為可選項;如果省略或設為 "0",背景色將為白色
擴展變量
PayPal 允許您粘貼擴展變量,條件是將改變以下 "cmd" 值:
到:
通過上述 “cmd” 值修改,您還可使用以下變量:
擴展變量
email 客戶的電子郵件地址
first_name 客戶的名。必須是字母數字字符,最多為 32 個字符
last_name 客戶的姓。必須是字母數字字符,最多為 64 個字符
address1 客戶地址所在國家或地區。必須是字母數字字符,最多為 100 個字符
address2 客戶地址第二行。必須是字母數字字符,最多為 100 個字符
city 客戶地址所在城市。必須是字母數字字符,最多為 100 個字符
state 客戶地址所在州。必須是正式的 2 個字母縮寫
zip 客戶地址的郵政編碼
night_phone_a 客戶夜間聯系電話號碼的區號
night_phone_b 客戶夜間聯系電話號碼前三位
day_phone_a 客戶白天聯系電話號碼的區號
day_phone_b 客戶白天聯系電話號碼前三位
提示:若要更改”用戶信息”中的默認運費和手續費設置,請轉至您的用戶信息,編輯您的運費計算,然後點擊”允許采用基於交易的運費”復選框。
將單個物品傳遞給PayPal
如果您的第三方購物車可設置成向PayPal傳遞單個物品,有關物品的信息將加入買家和賣家 的記錄日誌和系統通知中。要加入該物品的信息,您需要將 HTML 格式元素粘貼至PayPal購物車流程的新版本。該過程與 #1 節"將總購物車數量傳遞給PayPal"描述的非常相似,不同之處在於:
將 "cmd" 變量設置到 "_cart"
更換必要的 HTML 行與
添加稱為 “upload” 的新變量
在 <表格> 和 標簽之間新增以下行:
定義物品明細
對於以下各特定物品參數,定義與通過您的合作商購物車購買的各物品對應的一組新值。將 “_x” 附加到變量名稱,其中 x 是物品號碼,從 1 開始,每加入一物品增加一。
item_name_x (物品 #x 需要)購物車中物品 #x 的名稱。必須是字母數字字符,最多為 127 個字符
item_number_x 與購物車中物品 #x 關聯的可選傳遞變量。必須是字母數字字符,最多為 127 個字符
amount_x (物品 #x 需要)物品 #x 的價格
shipping_x 運送物品 #x 的第一件(數量 1)的成本
shipping2_x 每增加一件運送物品 #x(數量 2 或更多)所需的運送成本
handling_x 物品 #x 的處理成本
on0_x 物品 #x 的第一選項欄名稱。最多 64 個字符
os0_x 物品 #x 的第一組選項值。最多 200 個字符。”on0_x” 必須定義,以便識別 “os0_x”。
on1_x 物品 #x 的第二選項欄名稱。最多 64 個字符
os1_x 物品 #x 的第二組選項值。最多 200 個字符。”on1_x” 必須定義,以便識別 “os1_x”。
為購物車中每件物品重復此設定
為您的買家購物車中的各物品加入以上表格中的一組必需的變量和任何選項變量。購物車中的第一 物品必須用以 “_1″ 結束的參數定義,如 “item_name_1″、”amount_1″ 等。同樣,第二物品應用變量 “item_name_2″、”amount_2″ 等命名。提示:”_x” 值必須以一為單位按序遞增,以便識別。如果從 item #1 跳到 item #3 而不定義 item #2,則第三個物品會被忽略。
要指定幣種:所有貨幣變量(金額、運費、運費 2、手續費、稅款)將以粘貼在付款上的 “currency_code” 變量指定的幣種顯示。因為其不是隨物品不同的,無需向變量名稱附加 “_x”。如果沒有粘貼 “currency_code” 變量,我們將假定所有貨幣變量值為美元。
PayPay API
PayPal提供了多個API接口供開發者使用。在使用API之前,你必須先申請一個高級個人賬戶或者企業賬戶,同時你必須獲取API 憑證供每次調用API 時使用。
一旦你獲取了API憑證,您就可以調用相關的API接口了。目前,我們提供兩種API接口方式,NVP和SOAP。一般來說我們推薦您使用 NVP 接口。
? Name-Value Pair(NVP)接口 – 請求和響應都是使用簡單的HTTP。該接口簡單易實現,適合於初級開發者和需要快速完成集成的人員;
? SOAP接口 - 請求和響應都是通過SOAP來完成。該接口適合於面向對象工程的開發;
PayPal API:NVP(名稱/值對)接口
通過NVP API接口, 您只需給PayPal發送一個HTTP請求,並通過“名稱=值”的形式指定請求參數,即可充分利用PayPal的API功能。
NVP API 是 PayPal 的業務功能、風險管理和業務邏輯的簡單接口。NVP API 最基本的使用方法是通過到 PayPal 服務器的 HTTPS 連接發送一個 NVP 字符串,然後處理響應(也是一個 NVP 字符串)。執行 NVP API 調用的基本步驟如下:
? 為特定的 API 方法構造一個請求參數字符串。
? 通過 HTTPS 連接向 PayPal 服務器發送這個參數字符串。
? 處理服務器響應中的 NVP。
每個NVP API請求字符串包含有API用戶名、API密碼、所要調用API的名稱及用來標識交易的令牌,如: USER=someone@unknowncompany.com&PWD=mypassword &METHOD=GetExpressCheckoutDetails&TOKEN=EC-23T233ZP3DFB...
成功的應答包含以下要素:ACK=Success ,以及一個用來標識交易的唯一令牌。 ACK=Success&TIMESTAMP=date/timeOfResponse &CORRELATIONID=debuggingToken&VERSION=2.300000&BUILD=buildNumber &TOKEN=EC-3DJ78083ES565113B&EMAIL=abcdef@anyemail.com &PAYERID=95HR9CM6D56Q2&PAYERSTATUS=verified &FIRSTNAME=John&LASTNAME=Smith...
您可以使用NVP API完成以下操作:
? 搜索已完成的交易記錄,以及查詢交易詳情;
? 自動化後端功能,例如,捕獲授權,以及處理退款等;
API Profile
進入商家賬號得到相應的APIProfile,如果是以中文語言查看,在-用戶信息-API 訪問-中得到,其中裏面申請API時,有兩個選項,第一個是用簽名的方式,第二種是以證書的方式來認證商家身份,當你選擇下載數字證時,可以到 www.paypaltech.com/tools/pem2p12.php轉換為.p12文件,也可以采用OpenSSL的命令完成,一句話搞定,要輸 入密碼喔~。這裏的鏈接有詳細說明www.paypal.com/IntegrationCenter/ic_certificate.html
相應參考資料請參考連接www.paypal.com/IntegrationCenter/ic_expresscheckout.html 了解關於Express Checkout的原理;
在此基礎上,你可以訪問www.paypal.com/IntegrationCenter/ic_nvp.html 獲取相關測試代碼;
關於PayPal的測試環境你可以訪問www.paypal.com/IntegrationCenter/ic_sandbox.html,
API Reference https://www.paypal.com/IntegrationCenter/ic_api-reference.html

stripe checkout success callback redirect

無法查看此摘要。請 按這裡查看文章。

Redirect Buyers to Your Site After PayPal Purchase

http://blogandretire.com/blog/2012/02/redirect-buyers-to-your-site-after.html



1. Turn Auto Return On
http://stackoverflow.com/questions/25829476/paypal-auto-redirect-after-successful-payment


2. Add the Proper Redirect Code to Your PayPal Button Code - See more at: 

<form action=”https://www.paypal.com/cgi-bin/webscr” method=”post”>
<input name=”cmd” type=”hidden” value=”_s-xclick” />
<input name=”hosted_button_id” type=”hidden” value=”1AAAA111AAA1A” />
<input name=”return” type=”hidden” value=”http://www.yourwebsite.com/yoursuccesspage” />


====

You can see first url. Have some people test and answer. And in StackOverflow some answer.

when you pay money, login or not that have problem. Some people is login paypal, then have redirect, but no login people can't redirect.


namesilo domain domains

https://www.namesilo.com/index.php

com  8.99美金

  • Promotion Code  可以再減1美金  7.99美金
  • Privacy Setting have WHOIS Privacy

http://markustenghamn.com/where-to-register-your-domains-in-2015
http://markustenghamn.com/best-and-worst-domain-registrars-my-review-2014

CSS Sprite Generator

http://spritegen.website-performance.org/

maxcdn fontawesome webfont.woff2 has been blocked from loading No 'Access-Control-Allow-Origin' header

https://www.maxcdn.com/one/tutorial/htaccess-example-collection//


# ---------------------------------------------------------------------- # Webfont access
# ----------------------------------------------------------------------
# Allow access from all domains for webfonts.
# Alternatively you could only whitelist your
# subdomains like "subdomain.example.com".

<IfModule mod_headers.c>
  <FilesMatch "\.(ttf|ttc|otf|eot|woff|font.css|css)$>
     Header set Access-Control-Allow-Origin "*" 
  </FilesMatch> 
</IfModule>

[轉]Ubuntu Server 安裝 Unity 圖型界面



http://www.arthurtoday.com/2012/11/ubuntu-server-install-unity-gui.html







阿舍上網查了一下,發現,要在 Ubuntu Server 上安裝 Unity 的話,有二種方式可以選,第一種方式是直接安裝 Ubuntu Desktop 的完整套件,操作指令如下,這種方式會需要高達 1.5GB 的容間來安裝,所以,下完指令就可以去晃晃了哩 !

sudo apt-get install ubuntu-desktop



而第二種方式則是會安裝比較精簡的 Ubuntu Desktop 套件,如果只是要在 Ubuntu Server 上有個圖型界面來方便操作的話,就可以選用這種安裝方式,安裝的指令如下,而這種方式所安裝的東西只有 500 MB 多而已,安裝起來會快不少哩 ! 不過,也不會太快就是哩 !

sudo apt-get install --no-install-recommends ubuntu-desktop



上面這二個指令都會把 Ubuntu 預設的 Unity 界面給安裝起來,安裝完成後,重開機就會出現熟悉的登人畫面,而在登入後,就會看到 Unity 了,不過,用第二個指令裝好的畫面會有點怪(如上圖),是因為少了幾個常見的軟體的圖示的關係吧 ! 但是,這樣應該會比較好吧 ! 因為之後想要用的時候再裝,就不用事先裝一堆,然後,更新的時候,也就跟著要常更新了哩 !




另外,阿舍有點小懷疑,該不會這樣安裝後,阿舍裝好的 Ubuntu Server 就被亂成 Ubunut Desktop 了吧 ! 所以,阿舍就用了下面的指令來查了一下,結果 ... 是阿舍多想了哩 ! 呵 !

dpkg --list | grep linux-image

整個無言 ***揭開台灣低薪真相*** 到底在寫什麼鬼東西?!

http://www.businesstoday.com.tw/article-content-80392-115697?page=2

難得發表一篇無關電腦的心得


>>台灣的產業結構,沒有跟上全球頂尖產業。這造成基層勞工的技術水準,相當容易被替代。

沒跟上全球頂尖產業?!!? 什麼叫頂尖產業??!!



>>低薪問題不在盈餘分配上!

就是在盈餘分配上嘛!有分配到基層員工身上,誰又會抱怨!



>>員工薪資,有跟著企業同步成長。
鬼扯蛋,明明薪水就沒有增加,說有....


>>在錯誤的基準修法,未來將引起紛爭
>>減稅補貼花的是人民的錢!整體稅收將因此減少,結果還是全民買單

不知道修什麼,不批評


>>公司獲利員工分得甚至比股東多

這一樣是公司的問題,為什麼不多發給員工,只發給高階主管?!導致員工薪水不提高。
整個放屁是:即然高階主管提高了3.5倍,這些高層主管就代表 帶公司進入了頂尖產業,又何來說基層員工、公司不是頂尖產業!如果說 公司不是在頂尖產業,也代表高層主管無法領導走向頂尖產業,那為什麼又能多拿3.5倍,而基層員工拿不到!!


>>從二○○三年的一兆二五八五億元,成長至一三年的二兆二二七三億元,成長約七七%。而分給員工的總薪(薪資、分紅,以及企業幫員工出的勞、健保費用等),在同一時間,則成長了七三%。也就是說,員工薪資,有跟著企業同步成長


明明實際沒有,但硬說有,經理人薪水調整也算在七三%中,那基層員工沒調?!
--後面圖中有說經理人提高,從7.83 -> 11.16倍,多了約3.5倍



至於基層員工被M型化,這更是狗屁

容易被取代,所以薪水低? 這是什麼邏輯!立法要保障的就是基層員工啊!這些容易被取代的。
談到容易取代,請問誰不能被取代?公司裡面的那個人重要到無法被取代?服務業中又有誰不能被取代,整篇文章就是狗屁。包含寫這篇文章的人,難道也不能被取代!!


所以政府立法要給這些公司基層員工薪水增加!!!至於公司要不要高階主管薪水,砍回7.8x倍,各公司看著辦,然後把3.5倍的薪水分給基層員工。


問題的解決很簡單:就是請把賺到的錢多發給基層員工就對了!



[轉]免開虛擬機免切雙系統安卓 app win 平板測試



http://www.mobile01.com/topicdetail.php?f=163&t=4368942




有些 app 是方向設置問題

改成手機模式輸出後這幾個 app 可正常使用


jquery mobile Adsense Uncaught Error: Cannot find a responsive size for a container of width=0px and data-ad-format=auto

http://javahow.net/questions/21237164/uncaught-error-cannot-find-a-responsive-size-for-a-container-of-width-0px-and-d/26775991

When use div footer, add more red word

<div data-role="footer">
  <script async="" src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
  <!-- stfes -->
  <ins class="adsbygoogle"
       data-ad-client="ca-pub-07742"
       data-ad-format="auto"
       data-ad-slot="307"
       style="display: block;">
  </ins>
  <script>
      window.onload = function() {
        (adsbygoogle = window.adsbygoogle || []).push({});
      };
    </script>
</div>

[轉]這 10 個免費的新微軟工作術,和你想的不一樣!

http://www.playpcesor.com/2015/05/microsoft-web-work-top-10.html#more






  1.  紙本數位化: Office Lens 微軟專業 OCR 中文辨識掃描軟體 App 版免費下載
  2.  PDF 轉 Word :OneDrive: PDF 轉 Word 支援中文的最佳線上免費軟體
  3. 行動文書辦公室:微軟開放 Office App 免費編輯!
  4.  雲端文書辦公室:微軟 Office Online 免費支援線上即時多人編輯 Office 文件
  5. 跨服務整合工作:免安裝 Office! Dropbox 內建 Office Online 即時編輯
  6. 桌面軟體雲端化:Office 2016 免費下載預覽!從桌面挑戰 Google Drive
  7.  個人知識庫筆記:微軟 OneNote 全平台免費! Mac版推出 Windows版免費下載
  8.  全新高效率郵件軟體:Outlook Android iOS App 下載!解密微軟暗藏六特色
  9.  多人視訊會議:Skype 三人以上群組視訊通話功能即日起免費開放!
  10.  創新的簡報方式:Sway 微軟 Office 新成員:雲端創意簡報開放測試心得

markdown

Finaly
use  

  • ruby gem  "redcarpet"

then  online edit

  • https://stackedit.io/
css file
  • <link rel="stylesheet" href="https://stackedit.io/res-min/themes/base.css">


use on website
https://github.com/chjj/marked/
http://strapdownjs.com/

https://github.com/showdownjs/showdown
https://github.com/showdownjs/showdown/tree/master/compressed
https://github.com/showdownjs/showdown/tree/master/compressed/extensions

https://code.google.com/p/pagedown/wiki/PageDown
https://code.google.com/p/pagedown/source/browse/

online editor
http://daringfireball.net/projects/markdown/
http://daringfireball.net/projects/markdown/dingus

online editor
https://stackedit.io/
https://stackedit.io/editor#


http://strapdownjs.com/

https://github.com/evilstreak/markdown-js
http://markdownlivepreview.com/

http://www.codingdrama.com/bootstrap-markdown/

http://demo.neutrinoboy.jp/jquery-markdown/

bootstrap template

http://getbootstrap.com/getting-started/#examples

http://bootswatch.com/

http://startbootstrap.com/

$
https://wrapbootstrap.com/

google fonts Webfont

http://tt5.org/google-fonts-%E6%8F%90%E4%BE%9B%E4%BA%94%E7%A8%AE%E4%B8%AD%E6%96%87-wenfont%EF%BC%8C%E6%97%A9%E8%B5%B7%E7%9A%84%E9%B3%A5%E5%85%92%E6%9C%89%E7%9A%84%E7%8E%A9/


https://www.google.com/fonts/earlyaccess


Google 黑體字測試
http://tt5.org/test/google-webfonts-hei.htm

promote free and open source software on the Android platform

https://fossdroid.com/

cwtex

http://homepage.ntu.edu.tw/~ntut019/cwtex/cwtex.html

http://homepage.ntu.edu.tw/~ntut019/cwtex/cwtex4.pdf



怎麼才能在網頁上顯示像這樣的排版呢?



markdown

justhost ruby sinatra activerecord

2015/05/10   快吐死!!被搞死!!

突然有一天,發現不能運作,查了老半天,發現是activerecord好像不能運作,但明明程式沒改,自行就不能連了.......

解決方式:請在database.yml  補上 socket: /tmp/mysql.sock

http://stackoverflow.com/questions/5499035/ruby-on-rails-3-cant-connect-to-local-mysql-server-through-socket-tmp-mysql-s

為何要這樣?不能理解,有人能告訴我嗎?

另外
用排程 Cron Jobs,每三十分鐘   touch ~/rails_apps/xxxxxxxxx/tmp/restart.txt
因為 有時候它會自動停止運作!



2014/08/21
====justhost===
第一步:先按官方的做
https://my.justhost.com/hosting/help/rails

重點一:請加subdomain,然後home目錄會有subdomain目錄,砍了,改成用ln,詳細請參考上面官方範例。記得做完要多確定路徑。

重點二:記得因為是用passenger,所以要在你的rails_app/xxxapp目錄下,建立兩個目錄:public和tmp目錄,tmp目錄下放restart.txt;

public不用管,上網查,只是passenger用
tmp很重要,你上傳更新後,要用ssh登入到app目錄下,執行touch ./tmp/restart.txt 這樣等五秒,更新的程式才會更新

如果覺得麻煩,可以放always_restart.txt,執行一次以後,就每次都會更新;取消方式,把檔案刪除即可。

重點三:請把.htaccess檔案放到public目錄,這超級重要!!

其它按上面的官方說明,把它做完就行了!

====sinatra=====
底下網站參考和準備
http://www.danneu.com/posts/15-a-simple-blog-with-sinatra-and-active-record-some-useful-tools/
http://stackoverflow.com/questions/16683903/sinatra-mysql-and-activerecord
http://www.sinatrarb.com/intro.html
http://qiita.com/u1_fukui/items/88c10d4d530ec6fbaaa1
http://recipes.sinatrarb.com/p/models/active_record

底下檔案放在同一個目錄底下:
1. Gemfile
# Gemfile
source :rubygems
gem "sinatra"
gem "activerecord"
gem "mysql2"
gem "shotgun"  --這無用**開發測試有用
gem "tux"  --超重要,但只限一開始,db確定連上就沒什麼用,但可以做db操作 **開發測試用


bundle install

2. database.yml 填一填
production:
  adapter: mysql2
  database:
  host: localhost
  username:
  password:
  encoding: utf8
  socket: /tmp/mysql.sock

3. config.ru
ENV['GEM_PATH'] = '/homex/xxxxxxx/ruby/gems:/lib/ruby/gems/1.9.3'

require File.expand_path '../app.rb', __FILE__
run Sinatra::Application

重點一:/homex/xxxx   請改成你申請的
重點二:要 ..  為什麼,因為passenger抓到是public,所以要退回上一層才看得到你寫的app.rb

4. app.rb 為什麼用這名字,記得跟你的目錄無關,跟在config.ru指定有關

http://sueboy.blogspot.com/2014/08/ruby-sinatra-activerecord.html
有說明了,直接用mysql2

require "sinatra"
require "active_record"
require 'mysql2'

ActiveRecord::Base.configurations = YAML.load_file('database.yml')
ActiveRecord::Base.establish_connection('production')

class Article < ActiveRecord::Base      
end

get '/' do
  content_type :json, :charset => 'utf-8'
  articles = Article.order("created_at DESC")
  articles.to_json(:root => false)
end

先用tux測是否有連到db,有錯誤訊息就是有設錯。
========以上完畢============

請輸入你的網址:xxxapp.xxx.com,有看到json輸出就是ok了!

因為是在遠端,ruby的語法錯誤會抓到,但是gem套件出錯的話,是看不到錯誤訊息......要用大腦算出來,或是在本地端測,但因為設定不太一樣,要先改一下

改那:
重點1:mysql設定.....改成development
重點2:config.ru 因為不是用passenger,所以../app.rb改成./app.rb
重點3:bundle install

先用tux測是否有連到db

ok,之後就開shotgun,這個在遠端執行後,試過是連不上。

tux非常好用,如果它是sinatra的套件,當執行時,他會對應activerecord,所以連不到就代表資料庫設定有錯了。



======RailsEnv====
設在.htaccess
RailsEnv production

設了之後,在程式內是拿不到值的.........

[轉]國外工程師整理的系統管理員資源大全



http://buzzorange.com/techorange/2015/05/07/data/


https://github.com/kahun/awesome-sysadmin

https://github.com/kahun/awesome-sysadmin/blob/master/CONTRIBUTING.md








受其他工程師彙編 PHP 資源,kahun 在 Github 發起系統管理員相關的開源資源整理。

內容分類包括:備份 / 克隆軟體、雲計算 / 雲存儲、協作軟體、配置管理、日誌管理、監控、項目管理…… 當然也有系統管理員相關書籍。
備份軟體

·Amanda – 客戶端 – 服務器模型備份工具
·Bacula – 另一個客戶端 – 服務器模型備份工具
·Backupninja – 輕量級,可擴展的元數據備份系統
·Backuppc – 客戶端 – 服務器模型備份工具和文件共享方案。
·Burp – 網絡備份和還原程序
·Duplicity – 使用 rsync 算法加密的帶寬 – 效率備份
·Lsyncd – 監控一個本地目錄樹的變化, 然後產生一個進程去同步變化。默認使用 rsync。
·Rsnapshot – 文件系統快照工具
·SafeKeep – 使用 rdiff-backup,集中的,基於 pull 的備份
·TarSnap – 具有一個開源客戶端的安全備份服務
·UrBackup – 另一個客戶端 – 服務器備份系統
·DREBS – AWS EBS 支持策略的備份腳本
克隆軟體

·Clonezilla – 分區和磁盤鏡像 / 克隆程序
·Fog – 另一個計算機克隆解決方案
·Redo Backup – 簡單的備份,恢復和還原
雲計算

·AppScale – 兼容 Google App 引擎的開源雲計算軟體
·Archipel – 使用 Libvirt 管理和監視虛擬機
·CloudStack – 創建,管理和部署基礎雲服務的雲計算軟體
·Cobbler -Cobbler 是一個 Linux 安裝服務器,允許快速地構建網絡安裝環境
·Eucalyptus – 兼容 AWS 的開源私有雲軟體
·Mesos – 開發和運行能效高的分佈式系統
·OpenNebula – 一個用於系統管理員和研發運維的用戶驅動的雲管理平台
·OpenStack – 構建私有和開放雲的開源軟體
·The Foreman -Foreman 是一個用於物理和虛擬服務器的全生命週期管理工具.FOSS.
雲業務流程

·BOSH -IaaS 業務流程平台,最初用於部署和管理雲計算平台 PaaS,但也用於通用的分佈式系統。
·Cloudify – 使用 Python 和 YAML 編寫的開源 TOSCA-based 雲業務流程軟體平台。
·Juju – 雲業務流程工具用於管理服務,比如 charms,YAML 配置和部署腳本集
·MCollective – 來自 Puppet 實驗室的管理服務器業務流程和開發的 Ruby 框架
·Overcast – 在不同的雲提供商上部署 VMs,並在任何或所有(VM)上通過 SSH 並行運行命令行和腳本
·Rundeck – 簡單的業務流程工具
·Salt -Python 編寫
雲存儲

·git-annex assistant – 在你的每一個 OSX 和 Linux 電腦,Android 設備,可移動驅動,NAS 電器和雲服務上一個同步文件夾
·ownCloud – 提供你的文件的統一訪問,通過 web,你的電腦和你的移動設備
·Seafile – 另一個開源的雲存儲解決方案
·SparkleShare – 提供雲存儲和文件同步服務。它默認使用 Git 作為存儲後端
·Swift – 一個高可用,分佈式,最終一致的對象 / 大數據存儲
·Syncthing – 一個用於私有,加密和身份認證數據的開源系統
代碼審查

基於 Web 的協作式代碼審查系統

·Gerrit – 基於 Git 版本控制,它促進軟體開發人員審查源代碼修改和批准或拒絕這些變更。
·Review Board – 基於 MIT License 的可用自由軟體
協作軟體

協作軟體和群件套件

·Citadel/UX – 協同套件(消息和群件)繼承於 Citadel 家族程序
·EGroupware -PHP 編寫的群件軟體
·Horde Groupware – 基於 PHP 的協作軟體套件,包括郵件,日曆,wiki,時間跟踪和文件管理
·Kolab – 另一個群件套件
·SOGo – 協作軟體服務器,專注簡單性和可伸縮性
·Zimbra – 協作軟體套件,包括郵件服務和 web 客戶端
配置管理數據庫

配置管理數據庫(CMDB)軟體

·i-doit – 開源的 IT 文檔管理和 CMDB
·iTop – 一個完全開源的,ITIL, 基於 web 的服務管理工具
·Ralph – 用於大型數據中心或較小本地網絡的資產管理,DICM 和 CMDB 系統
·Clusto – 幫助跟踪你的庫存,在哪,如何連接,同時提供一個和基礎架構元素交互的抽象接口
配置管理

配置管理工具

·Ansible -Python 編寫的,通過 SSH 管理節點
·CFEngine – 輕量級代理系統。通過申明語言配置狀態。
·Chef -Rbuy 和 Erlang 編寫,使用純 RubyDSL
·Fabric – Python 庫和 cli 工具,為應用程序部署或系統管理任務簡化使用 SSH。
·Pallet – 通過 Clojure DSL 進行架構定義,配置和管理
·Puppet – Ruby 編寫,使用 Puppet 聲明語言或 Rbuy DSL
·Salt – Python 編寫
·Slaughter – Perl 編寫
持續繼承和持續部署

持續集成 / 部署軟體

·Buildbot – 基於 Python 的持續集成工具
·Drone – 構建在 Docker,使用 YAML 文件配置的的持續集成服務器
·GitLab CI – 基於 rbuy。他們也提供 GitLab 用於管理 git 存儲庫
·Go – 開源的持續交付服務器
·Jenkins – 一個可擴展的開源持續集成服務器
·Vlad the Deployer – 自動化部署
分佈式文件系統

網絡分佈式文件系統

·Ceph – 分佈式對象存儲和文件系統
·DRBD – 分佈式塊設備複製
·LeoFS – 非結構化對象 / 數據存儲和高可用性,分佈, 最終一致的存儲系統。
·GlusterFS – 可擴展,網絡附加存儲文件系統。
·HDFS – Java 編寫的,用於 Hadoop 框架的分佈式、可伸縮、可移植文件系統
·Lustre – 一種並行分佈式文件系統, 一般用於大規模集群計算。
·MooseFS – 容錯、網絡分佈式文件系統。
·MogileFS – 應用程序級別、網絡分佈式文件系統。
·OpenAFS – 只讀副本和多操作系統支持的分佈式網絡文件系統
·TahoeLAFS – 安全、分散、容錯、點對點分佈式數據存儲和分佈式文件系統。
·XtreemFS -XtreemFS 是一個用於存儲需求的容錯式分佈式文件系統。

DNS

DNS 服務器

·Bind – 最廣泛使用的域名服務軟體
·djbdns -DNS 應用集合,包括 tinydns
·Designate – DNS REST API, 支持多種 DNS 服務器的後端
·dnsmasq – 為小規模網絡提供 DNS,DHCP 和 TFTP 服務的輕量級服務
·Knot – 高性能,權威的 DNS 服務器
·NSD – 權威的、高性能的、簡單的域名服務器。
·PowerDNS – 具有各種數據存儲後端和負載平衡功能的 DNS 服務器。
·Unbound – 驗證、遞歸和緩存 DNS 解析器。
·Yadifa – 具有 DNSSEC 兼容的輕量級的權威域名服務器,支持.eu 的頂級域名。
主機控制面板

Web 主機控制面板

·Ajenti -Linux 和 BSD 控制面板
·Feathur – VPS 供應和管理軟體
·ISPConfig -Linux 主機控制面板
·VestaCP – 用於 Linux 和 Nginx 的主機面板
·Virtualmin – 基於 webmin 的 Linux 控制面板
·ZPanel -Linux BSD 和 Windows 控制面板
IMAP/POP3

IMAP/POP3 郵件服務器

·Courier IMAP/POP3 – 快速,可伸縮,企業級 IMAP 和 POP3 服務器
·Cyrus IMAP/POP3 – 運行在密封服務器上, 普通用戶不允許登錄
·Dovecot – 主要考慮安全而編寫的 IMAP 和 POP3 服務器
·Qpopper – 一個古老且流行的 POP3 服務器實現
IT 資產管理軟體

·GLPI – 帶有額外管理接口的信息資源管理器
·OCS Inventory NG – 允許用戶清算 IT 資產
·RackTables – 數據中心和服務器房間資產,比如將硬件資產, 網絡地址, 在貨架空間, 網絡配置文檔化。
·Ralph – 針對大型數據中心系統以及小型局域網網絡的資產管理、DCIM 和 CMDB。
·Snipe IT – 資產和許可證管理軟體
LDAP

LDAP 服務器

·389 Directory Server – 通過 Red Hat 部署
·Apache Directory Server – 用 Java 編寫的 Apache 軟體基金會項目
·Fusion Directory – 基於 OpenLDAP 改善服務和公司目錄的管理
·OpenDJ – OpenDS 分支
·OpenDS – 另一個用 Java 編寫的目錄服務器
·OpenLDAP – 由 OpenLDAP 項目開發
日誌管理

日誌管理工具:收集,解析,可視化

·Elasticsearch – 一個基於 Lucene 的文檔存儲,主要用於日誌索引、存儲和分析。
·Fluentd – 日誌收集和發出
·Flume – 分佈式日誌收集和聚合系統
·Graylog2 – 具有報警選項的可插入日誌和事件分析服務器
·Heka – 流處理系統,可用於日誌聚合
·Kibana – 可視化日誌和時間戳數據
·Logstash – 管理事件和日誌的工具
·Octopussy – 日誌管理解決方案(可視化 / 報警 / 報告)
監控軟體

·Cacti – 基於 Web 的網絡監控和圖形工具
·Cabot – 監控和報警,類似 PagerDuty
·check_mk -Nagios 的擴展集合
·Dash – 一個用於 GNU/Linux 機器的低開銷 web 儀表板監控。
·Icinga – Nagios 分支
·LibreNMS – Observium 分支
·Monit – 管理和監控 Unix 系統的小型開源工具
·Munin – 網絡資源監控工具
·Naemon – 基於 Nagios4 內核的網絡監控工具,具有性能加強和新功能
·Nagios – 計算機系統,網絡和基礎架構監控軟體
·Observium – 服務器和網絡設備的 SNMP 監控,運行在 linux
·OMD – 開放的監控分佈
·Opsview – 基於 Nagios4,Opsview 核心,用於小型 IT 和測試環境
·Riemann – 靈活和快速的事件處理器,允許負責時間和度量分析
·Sensu – 開源的監控框架
·Sentry – 應用監控,事件記錄和聚合
·Shinken – 另一個監控框架
·Thruk – 多後台監控的 web 接口,支持 Naemon,Nagios,Icinga 和 Shinken
·Xymon – 靈感來自 Big Brother 的網絡監控
·Zabbix – Enterprise-class software for monitoring of networks and applications.
·Zabbix – 監控網絡和應用的企業級軟體
·Zenoss – 基於 Zope 的應用,服務器和網絡管理平台
度量和度量收集

度量收集和顯示軟體

·Collectd – 系統統計收集守護進程
·Collectl – 高精度系統性能指標收集工具。
·Dashing -Ruby gem, 允許快速統計儀表板的開發。基於 HTML5,允許在數據中心或會議室進行大屏幕顯示。
·Diamond – 基於 Python 的統計收集守護進程
·Ganglia – 基於 RRD 用於網格和 / 或集群的服務器的高性能、可伸縮監控設備。兼容 Graphite,使用一個單一的收集進程。
·Grafana – 一個 Graphite 或 InfluxDB 儀錶盤和圖形編輯器
開源的可伸縮繪圖服務器

·I nfluxDB – 開源的分佈式時間序列數據庫,沒有外部依賴。
·KairosDB – 快速分佈式可擴展的時間序列數據庫,OpenTSDB 1. x 的分支。
·OpenTSDB – 存儲和服務大量的時間序列數據,不丟失粒度。
·RRDtool – 開源企業標準,用於時間序列數據的高性能數據記錄和繪圖系統
·Statsd – 應用統計監聽
網絡配置管理工具

·GestióIP – 一個自動的基於 web 的 IPV4/IPV6 地址管理工具
·RANCID – 監控網絡設備配置和維護歷史變更
·rConfig – 另一個網絡配置管理工具
時事通訊軟體

·DadaMail -Perl 編寫的郵件列表管理器
·phpList -PHP 編寫的時事通訊管理器
NOSQL 數據庫

列族

·Apache HBase – Hadoop 數據庫,一個分佈式的大數據存儲
·Cassandra – 分佈式數據庫管理系統,設計用於處理大量數據跨多個服務器。
·Hypertable – 基於 c++ 的 bigtable DBMS, 節省通信,可獨立或在 Hadoop 類似的分佈式 FS 上運行。

文檔存儲

·CouchDB – 易於使用, 多主機複製的面向文檔的數據庫系統。
·ElasticSearch – 基於 Java 的數據庫, 受歡迎的日誌聚合, 和電子郵件歸檔項目。
·MongoDB – 另一個面向文檔的數據庫系統
·RavenDB – 具有 ACID/ 事物功能的基於文檔的數據庫
·RethinkDB – 開源分佈式文檔存儲數據庫,關注 JSON



·FlockDB -Twitter 分佈式,容錯圖數據庫
·Neo4j – 開源圖數據庫

鍵值

·LevelDB -Google 高性能鍵值數據庫
·Redis – 支持網絡,基於內存,鍵值,亦可持久化數據庫
·Riak – 另一個容錯的鍵值 NoSQL 數據庫


NoSQL 服務器比較: http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis

打包

·f pm – 萬能的多格式包創建器
·omnibus-ruby – 全棧,跨發行版的包管理軟體(Ruby)
·packman – 全棧,跨發行版的包管理軟體(Python)
·tito – 為 git 項目構建 RPM

隊列

·BeanstalkD – A simple, fast work queue.
·BeanstalkD – 一個簡單快速的工作隊列
·Gearman – 快速的多語言隊列或任務處理平台
·NSQ – 實時分發的消息平台
·RabbitMQ – 健壯的,全功能,跨發行版的隊列系統
·ZeroMQ – 輕量級隊列系統
RDBMS

關係數據庫管理系統

·Firebird – 真正的全球開源數據庫
·Galera -Galera MySQL 集群是一個易於使用的高可用性解決方案,具有很高的系統正常運行時間, 沒有數據丟失, 為未來的增長提供可伸縮性。
·MariaDB -MySQL 的社區開發分支
·MySQL – 非常流行的 RDBMS 服務器
·Percona Server – 增強的,可替換 MySQL
·PostgreSQL – 對象關係數據庫管理系統(ORDBMS)
·PostgreSQL-XL – 基於 PostgreSQL 的可伸縮開源數據庫集群
·SQLite – 自包容,弱服務器,零配置,支持事務的 SQL DBS 實現庫
安全

安全工具

·Denyhosts – 阻止 SSH 字典攻擊和暴力攻擊
·Fail2Ban – 掃描日誌文件,並對具有惡意行為顯示的 IP 採取措施
·SpamAssassin – 一個強大的和受歡迎的垃圾郵件過濾器,它採用多種檢測技術。
服務發現

·Consul – Consule 是伊戈爾服務發現,監控和配置的工具
·Doozerd – Doozer 是一個高可用,完全一致的存儲,用於少量非常重要的數據
·ZooKeeper – ZooKeeper 是一個集中的服務,用於維護配置信息,命名,提供分佈式同步和組服務
SMTP

SMTP 服務器

·Exim – 由劍橋大學開發的消息傳輸代理(MTA)
·Haraka – 用 JavaScirpt 編寫的高性能,可插入的 SMTP 服務器
·MailCatcher -Ruby gem 部署一個簡單的 SMTP MTA 網關,接收所有郵件並在 web 接口顯示。對調試和開發有用。
·Maildrop – 開源的一次性郵件服務器,對開發也很有用
·OpenSMTPD – 從 OpenBSD 項目實現的安全的 SMTP 服務器
·Postfix – 快速,易於管理和安全的 Sendmail 替代品
·Qmail – 安全的 Sendmail 替代品
·Sendmail – 消息傳輸代理(MTA)
軟體容器

操作系統級別的虛擬化

·Bitnami – 為 web 應用,開發棧和虛擬設備生產開源軟體安裝器或軟體包
·Docker – 給開發者和系統管理員構建,發布和運行分佈式應用程序的開放平台
·OpenVZ -Linux 平台基於容器的虛擬化
SSH 工具

·autossh – 網絡中斷後自動復位 ssh 會話。
·Cluster SSH – 通過一個圖形化控制台控制多個 xterm 窗口。
·DSH -Dancer 的 shell/ 分佈式 shell- 從一個命令行包裝執行多個遠程 shell 命令。
·Mosh – 移動 shell
·parallel-ssh – 提供並行的 OpenSSH 版本和相關工具
·SSH Power Tool – 不使用 pre-shared 鑰匙的情況下對多個服務器同時執行命令和上傳文件
統計

分析軟體

·Analog – 世界上最流行 ​​的日誌分析工具
·GoAccess – 在終端運行的開源的實時 web 日誌分析和交互視圖
·Piwik – 免費和開源的 web 分析應用
·Webalizer – F 快速免費的 web 服務器日誌文件分析程序
工單系統

基於 web 的工單系統

·Bugzilla – 由 Mozilla 項目開發和使用過的通用缺陷跟踪和測試工具
·Cerb – 基於商業開源許可的基於組的郵件管理項目
·Flyspray – 使用 PHP 編寫的缺陷跟踪系統
·MantisBT – 另一個基於 web 的缺陷跟踪系統
·osTicket – 開源的技術支持工單系統
·Otrs – 免費和開源故障通知單系統軟體包, 公司, 組織, 或其他實體可以使用它來基於詢問分配工單並跟踪進一步的溝通。
·Request Tracker – 使用 Perl 編寫的工單跟踪系統
·TheBugGenie – 開源的工單系統,具有非常完備的用戶權限分配
故障排除工具

·mitmproxy -ython 工具,用於攔截, 查看和修改網絡流量。在排除某些問題是非常重要的。
·Sysdig – 從一個運行的 linux 實例上捕獲系統狀態和活動,之後保存,過濾和分析
·Wireshark – 世界上著名的網絡協議分析工具
項目管理

基於 web 的項目管理和缺陷跟踪系統

·ChiliProject – Redmine 分支
·GitBucket 用 Scala 編寫的 GitHub 的克隆,單獨 jar 安裝
·GitLab – 用 Rbuy 編寫的 GitHub 的克隆
·Gogs – 用 Go 編寫
·OpenProject – 開源的項目協作項目
·Phabricator PHP 編寫
·Redmine – 基於 rails 在 rbuy 編寫
·The Bug Genie -PHP 編寫
·Trac -python 編寫
軟體版本和版本控制

·Fossil – 分佈式版本控制,內建 wiki 和缺陷跟踪
·Git – 速度很快的分佈式版本控制和源代碼管理
·GNU Bazaar – 由 Cannoicalzi 贊助的分佈式版本控制系統
·Mercurial – 另一個版本控制
·Subversion – 客戶端 – 服務器版本控制系統
虛擬化

虛擬化軟體

·Ganeti – 在 KVM 和 Xen 上構建的集群虛擬服務器管理軟體
·KVM -Linux 內核虛擬化架構
·oVirt – 管理虛擬機,存儲和虛擬網絡
·Packer – 從單個源配置為多個平台創建相同的機器鏡像
·Vagrant – 創建完整開發環境的工具
·VirtualBox – 來自 Oracle 公司的虛擬化產品
·Xen – 用於 32/64 位 Intel/AMD(IA 64)和 PowerPC 970 架構的虛擬機監控器
VPN

VPN 軟體

·OpenVPN – 使用一個定制的安全密鑰交換協議, 利用 SSL / TLS。
·Pritunl – 基於 OpenVPN 的方案,易於設置
·SoftEther – 具有高級特性的多協議 VPN 軟體
·sshuttle – 窮人的 VPN
·strongSwan – Linux 下完整的 IPsec 實現
·tinc – 分佈式點對點 VPN
XMPP

XMPP 服務器

·ejabberd – 用 Erlang/OTP 編寫的 XMPP 短信服務器
·Metronome IM -Prosody IM 分支
·MongooseIM -ejabberd 分支
·Openfire – 實時協作(RTC)服務器
·Prosody IM -Lua 編寫的 XMPP 服務器
·Tigase -java 實現的 XMPP 服務器
Webmail 應用

·Mailpile – 一個先進,快速的 web-mail 客戶端,具有用戶友好的加密的私有個性
·Roundcube – 基於瀏覽器的 IMAP 客戶端,具有應用類似的用戶界面
Web 服務器

·Apache – 最流行 ​​的 web 服務器
·Cherokee – 輕量級,高性能的 web 服務器 / 反向代理
·Lighttpd – speed-critical 環境下更優化的 web 服務器
·Nginx – 反向代理,負載均衡器,HTTP 緩存和 web 服務器
·uWSGI -uWSGI 項目,目標在開發一個構建主機服務的全棧
Web 性能

·HAProxy – 負載均衡,SSL 卸載和性能優化,壓縮和通用 web 路由
·Varnish – 基於 HTTP 的 web 應用加速器,關注內存優化和壓縮
Wiki 軟體

·DokuWiki – 使用簡單和高度通用的 wiki, 這並不需要一個數據庫。
·Gollum – 一個簡單,Git-powered wiki,具有不錯的 API 和本地前端。
·ikiwiki – 一個 wiki 編譯器
·Mediawiki – 加強 Wikipedia
·MoinMoin – 一個高級的易用的擴展性強的 Wiki 引擎,具有大量的社區用戶TiddlyWiki – JavaScript 的完整交互 wiki
·Ōlelo Wiki – 在 Git 存儲上保存頁面的 wiki
各種資源,比如書籍、網站和文章,用於提升技能和知識

部落格

·Code as Craft – Etsy 的運維部落格,大量的技術部落格
·DevOpsGuys – Devops 顧問,運維部落格
·Rackspace Developers – 具有大量 Devops 主題的部落格

書籍:Sysadmin 相關書籍

The Linux Command Line – William Shotts 的書,關於 Linux 命令行
The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win -DevOps 技術如何修復發生在 IT 組織的問題
The Practice of System and Network Administration – 第一和第二版本描述系統和網絡管理的最佳實踐, 獨立於特定平台或技術。
The Visible Ops Handbook: Implementing ITIL in 4 Practical and Auditable Steps – 一個方法論, 旨在啟動實施控制和過程改進。
UNIX and Linux System Administration Handbook – 從使用的角度走進系統管理

編輯器:開源的代碼編輯器

·Atom – 來自 Github 的文本編輯器
·Brackets – 用於 web 設計和前端開發的開源代碼編輯器
·Eclipse – 用 Java 編寫的 IDE,具有可擴展的插件系統
·Geany -GTK2 文本編輯器
·GNU Emacs – 一個可擴展,自定義的文本編輯器
·Haroopad -Markdown 編輯器,具有實時預覽
·ICEcoder – 非常棒的代碼編輯器,內建常見的 web 語言
·jotgit -Git 支持的實時協作代碼編輯
·Light Table – 下一代代碼編輯器
·Lime – 旨在提供一個 Sublime Text 的開源替代方案
·TextMate -OS X 下的圖形文本編輯器
·Vim – 一個高可配置的文本編輯器,用於高效編輯

時事通訊

·Servers for Hackers – 程序員的時事通訊,發現他們需要知道的服務器相關內容。

存儲:軟體包存儲

·Dotdeb – Debian 下 LAMP 更新包的存儲
·Remi – RHEL/Centos/Fedora 下 LAMP 更新包的存儲

網站:有用的系統管理員相關的網站

·Ops School – 全面的計劃, 將幫助你成為一名運維工程師。
·Digital Ocean Tutorials – 一個非常龐大資源,獲得基本的應用程序,工具, 甚至是系統管理主題。