西語口譯費用(2)可以自由的利用,點竄原始碼,也能夠將點竄後的原始碼作為開放原始碼或專有軟體再發佈。
(3)因為逼迫繼承的關係,GPL 也引來一些攻讦,所以在 PTT 才會引發想要規避的討論翻譯畢竟公司發售軟體,目標當然是為了賺錢;在碰到這種有「沾染性」的授權方式時,不免會感應困擾...
alert(eval(foo));
var foo = 'bar';// javascript 版本的 nl2br2. PHP 伺服端回傳變數,由 JavaScript 寫入 cookie:
其他還有很多撰寫 PHP 程式時增進效能的小技巧,請參考 Tsung's Blog 有更詳實的申明翻譯
以 AJAX 設定 cookie 時,假如沒有指定 $path 參數程式會主動指定一個虛擬目次給它,但遵照 cookie 的特征:「唯一它的目錄和以下的子目次可以或許存取」;所以未指定 $path 參數的 cookie 可能會造成在其他目錄下的程式沒法存取。一勞永逸的體例就是直接指定 $path 參數為根目錄「/」:
?>
}
$dbtype_sql = 'mysql';
string = string.replace(/</g, '<');
<?php
$typeId = (int) $typeId;
'type_id = :typeId'
以 jQuery 這個 JavaScript Library 為例,它利用的授權協議為 GPL 和 MIT 雙和談,故在使用上吻合自由軟體的精力,並且限制也很寬鬆;在客歲微軟也曾發布要將 jQuery 插手 Visual Studio的相幹新聞。
$row = Yii::app()->db->createCommand()
P.S 後來拜讀 OSSF::自由軟體鍛造場【軟體的授權觀念與自由軟體授權類別】投影片(by 自由軟體鍛造場 2008 林誠夏)後,又獲得更明確的一些觀念:
2. 用 isset($var[0]) 取代 0 < strlen($var):
};
set3: {
set2: {
$sth = $dbh->prepare('SELECT * FROM table WHERE id = :id AND name = :name');
使用預載的體式格局:(推薦利用)
}翻譯社
set1: {
string = string.replace(/&/g翻譯社 '&');
if (quote_style == 'ENT_QUOTES') {
} else if (quote_style != 'ENT_NOQUOTES') {
[FTP] 在 AWS EC2 ubuntu 上安裝 vsftpd
vsftpd
Info
https://security.appspot.com/vsftpd.html Probably the most secure and fastest FTP server for UNIX-like systems.Install on AWS EC2
更新套件並安裝 vsftpd
foreach ($dbh->query($query) as $row) {
$host_sql = 'localhost';
var re_nlchar = /%0D/g ;
alert($.extend(foo, bar).toSource());
具體看了 Wiki 以及網路上一些先輩們的介紹,發現這些分歧的軟體授權體式格局其實還蠻複雜的...就我理解的部分,稍微介紹一些經常使用的授權許可證;紛歧定准確,只是簡單記載一下(全部想要逃避責任的口吻):
基本的使用方式是: ->select('username, password')
?> 此中 where 的用法是需要希奇申明的處所,因為 Yii 在底層也是利用 PDO 實作,為了避免 SQL Injection 的發生,提供非常類似的利用方法;where() 函式可以援用二個參數:$conditions、$params。$conditions 是 array 型態時,包括貫穿連接體式格局、欄位、值;也能夠利用純真 string 型態的字串翻譯$params 非必填,是 array 型態,對應 $conditions 設定的值做 quote 的處理。範例如下:3. Apache License:
->where('id = :id'翻譯社 array(':id' => 1))
// 獲得 tbl_user 資料表中,id = 1 的資料列
taikobo0揭曉於 樂多 │10:21 │回應(1) │引用(0) │PHP
December 2,2011
[PHP] AJAX 與 cookie
喔~大概有八百年沒有寫文章了...(汗)比來碰到一個需求,需要用到 cookie 記載;不過在實作的過程中,發現明明以 AJAX 在 PHP 中 setcookie(),重新整理後卻沒法取得 $_COOKIE 資訊的問題。後來以關鍵字餵了 google 大神今後,才找到解決的方式:
} else if (string.indexOf('%0A') > -1) {
}
連線的體式格局:
// 組合 SQL 語法,獲得符合 id = 2、name = 'John' 的資料
比來遇到需要連系二個設定的環境,在,在 PHP 時 array 是 key-value 的形式,所以可以使用 array_merge() 連系二個 array;不外在 JavaScript 中 key-value 算是物件。要怎樣連系二個物件呢?後來在網路上蒐尋到 jQuery 就有提供很好用的函式 $.extend()。簡單的使用體例以下:
(?<logdate>%{MONTHDAY}[-]%{MONTH}[-]%{YEAR} %{TIME}) 是自訂 pattern,因為原始 pattern 沒有符合 query.log 的日期花樣,參考來源是 logstash-patterns-core 其他關於 grok 寫法的判定與模擬,可以透過 Grok Debugger 測試 filter > date 是將自訂參數 logdate 庖代預設 timestamp 的寫法翻譯因為預設 timestamp 是指 Logstash 分析匯入的時候,而不是 log 記載的時候,所以要迥殊替換後才輕易給 Kibana 分析利用 如果紀錄檔 EC2 機器時區有別的設定,timezone 也要設定
'and',
} catch (PDOException $e) {
?>
} else if (string.indexOf('%0A') > -1) {
}
連線的體式格局:
// 組合 SQL 語法,獲得符合 id = 2、name = 'John' 的資料
比來遇到需要連系二個設定的環境,在,在 PHP 時 array 是 key-value 的形式,所以可以使用 array_merge() 連系二個 array;不外在 JavaScript 中 key-value 算是物件。要怎樣連系二個物件呢?後來在網路上蒐尋到 jQuery 就有提供很好用的函式 $.extend()。簡單的使用體例以下:
{
"_index": "logstash-2017.08.03"翻譯社
"_type": "BIND_DNS"翻譯社
"_id": "AV2nF6AFU4gS5SfvUHc1",
"_version": 1,
"_score": null翻譯社
"_source": {
"path": "/var/log/named/query.log",
"@timestamp": "2017-08-03T00:55:29.005Z",
"logdate": "03-Aug-2017 00:55:29.005",
"clientip": "203.75.167.229",
"query1": "www.google.com",
"query2": "www.google.com",
"@version": "1",
"host": "690ab8796350",
"dns": "172.31.10.132",
"message": "03-Aug-2017 00:55:29.005 client 203.75.167.229#54501 (www.google.com): query: www.google.com IN A + (172.31.10.132)"翻譯社
"type": "BIND_DNS",
"clientport": "54501",
"querytype": "A +"
}
}
'and',
} catch (PDOException $e) {
?>
Reference
- Ubuntu Server 建構 vsftpd 實體帳戶
- 潮潮的Ghost + AWS EC2 佈置
- [翻译]在 Ubuntu 中使用 SSL/TLS 加密 FTP 连接
February 8翻譯社2018
[Service] UltraHook
UltraHook
Info
- http://www.ultrahook.com/
- UltraHook makes it super easy to connect public webhook endpoints with development environments
- support GitHub, Stripe翻譯社 ActiveCampaign, Papertrail
Usage
- 以串接 Stripe 為例,先註冊獲得一組 API key
- Webhook Namespace 的名稱會成為之後 Stripe 的 Endpoint,e.g. http://stripe.taikobotest123.ultrahook.com/
- 在本機安裝 UltraHook
gem install ultrahook
- 寫入 UltraHook API key 到利用者家目次
echo "api_key: xxxxxx" > ~/.ultrahook
- 啟動 UltraHook 服務
# ultrahook [-k] ultrahook stripe http://dev.test.com/webhook, API key 之前假如有設定可省略
假如是 virtual host 要記得在 /etc/hosts 先設定好 IP
- 如果成功就會最先轉發
Authenticated as taikobotest123 Forwarding activated... http://stripe.taikobotest123.ultrahook.com -> http://dev.test.com/webhook
- 到 Stripe 後台,API/Webhooks 新增 Endpoint:http://stripe.taikobotest123.ultrahook.com
- Send test webhook 檢查本機程式是不是有接收到訊息
Reference
- UltraHook Frequently Asked Questions
taikobo0揭橥於
樂多
│16:45
│回應(0)
│援用(0)
│Service
│標籤:UltraHook
February 6,2018
January 19翻譯社2018
[AWS] Amazon CloudSearch
Amazon CloudSearch
Info
- AWS 的雲端搜尋辦事
- 官網:https://aws.amazon.com/tw/cloudsearch/
- 訂價:https://aws.amazon.com/tw/cloudsearch/pricing/
Installation
- 建立 Amazon CloudSearch Domain 教授教養
- Create a New Domain
- NAME YOUR DOMAIN
- Search Domain Name, 設定名稱
- Desired Instance Type翻譯社 設定機械品級,預設 small
- Desired Replication Count, 設定 Replication 數量,預設 1
- CONFIGURE INDEX
- Manual configuration翻譯社 手動設定
- REVIEW INDEX CONFIGURATION
- 這邊可以設定 index,除 Name 以外,必須決議欄位的 Type
- 一般文字設定 text 即可,若是有多個單詞時(ex. 分類名稱)可以設定 text-array
- 別的 literal 也是一種文字類型,但是巨細寫敏感,並且以後可以 group
- 其他類型請參考文件
- 以後可以透過程式成立,所以也能夠略過不建立
- SETUP ACCESS POLICIES
- 設定權限,建議選擇 “Allow access to all services from specific IP(s)“,設定許可對外的 IP,多個 IP 時以逗號分隔
- CONFIRM
- 最後確認並完成確立,豎立大概會需要 10 分鐘
Usage
- 現實操作需要透過 AWS SDK,PHP 請參考「初探 Amazon CloudSearch (使用當 PHP 範例)」
Laravel Package
Info
- torann/laravel-cloudsearch
- 整合 Laravel 與 Amazon CloudSearch,安裝流程請參考 GitHub 說明
Settings
- .env 設定參數
- /project/.env
AWS_KEY=xxx AWS_SECRET=xxx # 之前創設的 Domain Name CLOUDSEARCH_DOMAIN=xxx # Dashboard 顯示的 Document Endpoint,必需包含 http CLOUDSEARCH_ENDPOINT=http://doc-xxx-xxx-xxx.us-west-2.cloudsearch.amazonaws.com # 不太清楚這個設定是什麼,我是填 AWS 區域 CLOUDSEARCH_REGION=us-west-2
- config/cloud-search.php 設定
- /project/config/cloud-search.php
// 修改從 .env 取得 'domain_name' => env('CLOUDSEARCH_DOMAIN'), // 設定 index 欄位 Name 與 Type 'fields' => [ 'title' => 'text'翻譯社 'author' => 'text-array', 'type' => 'literal', ], // 設定 Eloquent 地點位置,ex. App/Models/Book.php 'model_namespace' => '\\App\\Models'翻譯社
- 透過 Command 成立 index
php artisan search:fields
- 設定 Eloquent
- /project/app/Models/Book.php
<?php namespace App\Models; use LaravelCloudSearch\Eloquent\Searchable; class Book extends Model { // 利用 Searchable use Searchable; // 必需實作這個方式,回傳 index 的值 public function getSearchDocument() { return [ 'title' => $this->title, 'author' => $this->authors->pluck('name')->toArray(), 'type' => $this->type, ]; } }
- 建立 index
php artisan search:index Book
Searching
- 最基本的搜尋
// search "Kitten fluff" $books = App\Models\Book::search('Kitten fluff')->get();
要留意的是根基搜索只會找 Type 是 text翻譯社 text-array 的欄位,如果需要尋找其他 Type 的欄位必須自建 searchBuilder
- 新增額外設定,其他參數請參考文件
// search "Kitten fluff", default operator "or", add fields and weight $books = App\Models\Book::searchBuilder() ->options('defaultOperator'翻譯社 'or') ->options('fields', [ 'type^10', 'title^5', 'author'翻譯社 ])->term('Kitten fluff')->get();
Reference
- Developer Guide
- 初探 Amazon CloudSearch (利用當 PHP 典範榜樣)
November 10翻譯社2017
September 29,2017
[MongoDB] 安裝創設環境與 Laravel Package jenssegers/laravel-mongodb
Info
- 一種文件導向的資料庫管理系統
Installation
- Install MongoDB Community Edition on Ubuntu
Setting
設定可連入的 ip 與 port
- MongoDB 預設只開放給 localhost,必需點竄設定檔
sudo vi /etc/mongod.conf
net:
port: 27017
# 0.0.0.0 對所有 ip 開放
bindIp: 0.0.0.0
# 從新啟動
sudo service mongod restart
建立權限
- MongoDB 預設沒有權限,不需要登入帳號暗碼即可操作資料
- 若是需要建立權限,必須先創設管理者(admin DB 的 Users)
# 進入 mongo
mongo
# 進入 admin DB
use admin
# 建立經管者,回覆 Successfully added user: 表示成功
db.createUser(
{
user: "帳號",
pwd: "密碼",
roles: [ { role: "root", db: "admin" } ]
}
)
# 利用治理者權限,答複 1 表示成功
db.auth("帳號", "暗碼");
- 或是在進入 mongo 前登入
mongo -u "帳號" -p "暗碼" --authenticationDatabase "admin"
預設開啟帳號驗證
sudo vi /etc/mongod.conf
#security:
security.authorization: enabled
# 從頭啟動
sudo service mongod restart
Management Tool
- Robo 3T
PHP Driver
- MongoDB 與 PHP 的版本關係
- PHP 7.0 以上只能利用 mongodb
phpbrew
- 直接安裝 ext 即可
# PHP 7.0 以上
phpbrew ext install mongodb
原生 php
- Installing the MongoDB PHP Driver with PECL
# 按照主機利用的 PHP 版本選擇安裝 dev 版本
sudo apt install php-pear php7.1-dev
# 更新 pecl
sudo pecl channel-update pecl.php
# 安裝 mongodb
sudo pecl install mongodb
- 安裝成功後會顯示 so 檔位置
Build process completed successfully
Installing '/usr/lib/php/20160303/mongodb.so'
install ok: channel://pecl.php.net/mongodb-1.3.0
configuration option "php_ini" is not set to php.ini location
You should add "extension=mongodb.so" to php.ini
- 新增至 php.ini(apache & cli)
sudo vi /etc/php/7.1/apache2/php.ini
sudo vi /etc/php/7.1/cli/php.ini
;extension=php_xsl.dll
extension=mongodb.so
Laravel Package
- jenssegers/laravel-mongodb
- /project/config/database.php
// mongodb
'mongodb' => [
'driver' => 'mongodb',
'host' => env('MONGODB_HOST')翻譯社
'port' => env('MONGODB_PORT'),
'database' => env('MONGODB_DATABASE'),
'username' => env('MONGODB_USERNAME'),
'password' => env('MONGODB_PASSWORD')翻譯社
'options' => [
'database' => env('MONGODB_DATABASE'),
]
],
- Query Builder
// 需要指定連線與調集
$r = DB::connection('mongodb')->collection(MONGODB_COLLECTION_NAME)->get();
dd($r);
- Model
- /project/App/Models/Mongo/Test.php
<?php
namespace App\Models\Mongo;
use Jenssegers\Mongodb\Eloquent\Model as Eloquent;
class Test extends Eloquent
{
/**
* guarded attributes
*
* @var array
*/
protected $guarded = [];
/**
* collection name
*
* @var string
*/
// protected $collection = 'tests';
/**
* connection name
*
* @var string
*/
protected $connection = 'mongodb';
}
// 跟一般 model 利用沒有不同
$r = $this->model->where('time'翻譯社 '=', '2017-09-14 19:21')->take(3)->get();
dd($r);
Reference
- MongoDB Docs
- MongoDB 完全新手教學 -5 對外開放問題[allow remote access]
- Mongodb 3.2 - 安裝與設定權限
September 19,2017
[WordPress] 修改 wp_enqueue_scripts,插手自訂的 js, css 檔案
Info
- 加入 js 檔案時,也可以同時設定援用 jQuery 等 lib
add_action('wp_enqueue_scripts'翻譯社 'gtm_scripts');
function gtm_scripts() {
// product category page
if (is_product_category()) {
wp_enqueue_script('product-category', get_stylesheet_directory_uri() . "/js/gtm/product_category.js", array('jquery'));
return;
}
}
jQuery(function() {
console.log('GTM product-category page');
dataLayer.push({'event': 'catpg'});
});
Reference
- https://codex.wordpress.org/Plugin_API/Action_Reference/wp_enqueue_scripts
- https://developer.wordpress.org/reference/functions/wp_enqueue_script/
[系統闡明] ELK 實作,以 BIND9 log 分析為例
Logstash
- 此次的目的是要剖析 BIND9 的 query.log 檔,主要需要點竄的地方是 Logstash 構造化 log 的設定
- 先將 log 檔案所在的目次 volume 到 docker container,在 volumes 區塊新增
- ~/docker-elk/docker-compose.yml
/var/log/named:/var/log/named
sudo vi ~/docker-elk/logstash/pipeline/bind.conf
input {
file {
type => "BIND_DNS"
path => [ "/var/log/named/query.log" ]
start_position => "beginning"
}
}
filter {
if [type] == "BIND_DNS" {
grok {
match => ["message"翻譯社 "(?%{MONTHDAY}[-]%{MONTH}[-]%{YEAR} %{TIME}) client %{IPV4:clientip}#%{POSINT:clientport} \(%{GREEDYDATA:query1}\): query: %{GREEDYDATA:query2} IN %{GREEDYDATA:querytype} \(%{IPV4:dns}\)"]
}
date {
match => ["logdate", "dd-MMM-yyyy HH:mm:ss.SSS"]
timezone => "America/Los_Angeles"
}
}
}
output {
elasticsearch {
hosts => "elasticsearch:9200"
}
}
03-Aug-2017 00:55:29.005 client XXX.XXX.XXX.XXX#54501(www.google.com): query: www.google.com IN A + (XXX.XXX.XXX.XXX)
into// javascript 版本的 htmlspecialchars
->from('tbl_table')
P.S 這個影片全部很有《魔鬼終結者》的 fu...墨鏡才是本體啊!(噗)
taikobo0揭曉於
樂多
│17:07
│回應(0)
│援用(0)
│新知
│標籤:Augmented Reality,AR
May 22翻譯社2009
[新知] OpenSource 與授權方式
從出社會工作以來,常常接觸到的幾近所有的程式,都是開放原始碼。不外對於它的定義與其衍生的自由軟體所採用的授權方式,一向以來都是一知半解翻譯頭幾天在 PTT Soft_Job 版看到一篇討論【[請益] 請問要若何規避GPL?】,引發天成翻譯公司想要弄清楚的樂趣;這些分歧的授權體例各自到底代表著什麼意義呢?
?> 其他關於 where 更具體的用法,請參考 casahama 熱情的翻譯文章(簡體)。
同一採用物件的體式格局來操作資料庫,不但增加系統的彈性,透過溝通的 quote() 方式,便可針對不同的資料庫情勢進行 SQL Injection 的預防;真的非常便利!固然於其他專業的 ORM(如:Doctrine)對照,仍有不足;然則在比較簡單的功能的實作上,PHP5 內建的 PDO 簡直供給良好的資料庫操作模式~保舉使用!^^
?> 其他關於 where 更具體的用法,請參考 casahama 熱情的翻譯文章(簡體)。
同一採用物件的體式格局來操作資料庫,不但增加系統的彈性,透過溝通的 quote() 方式,便可針對不同的資料庫情勢進行 SQL Injection 的預防;真的非常便利!固然於其他專業的 ORM(如:Doctrine)對照,仍有不足;然則在比較簡單的功能的實作上,PHP5 內建的 PDO 簡直供給良好的資料庫操作模式~保舉使用!^^
taikobo0揭曉於
樂多
│15:17
│回應(2)
│援用(0)
│PHP
│標籤:PDO
December 29,2009
[新知] Augmented Reality 擴增實境
今天發現了一個我之前就知道的器材(天成翻譯公司在說什麼啊...?):Augmented Reality 擴增實境翻譯最早看到應用近似技術的商品是在日本的遊戲 AR-FIGURE 中:利用 Web Cam 與遊戲廠商供給的實體方塊,創設一個存在電腦螢幕中真實環境裡的虛擬人偶(好繞口...)。第一次看到這玩藝兒的時候真是嚇死我了,原來遊戲也能夠如許玩!擴增實境其實也是 Virtual Reality 虛擬實境的一種;但分歧於 VR 中所有器材都是虛擬的,AR 是一種與實際情況連系的虛擬翻譯隨著現代科技的前進,開麥拉手藝已被普遍應用生涯中;也因為如斯,以往印象中虛擬實境所需的厚重眼鏡與手套,已可以藉由天成翻譯公司們糊口中常見的手機:攝影鏡頭與觸控螢幕來實現!
':id' => $id,
PHP 是一種弱型其它語言,所以在面臨外部傳進來的變數時,我們每每會在作一次型其它轉換處置懲罰;PHP 內建提供型另外強迫轉換,如:(int)、(string)、(array),強迫型別轉換比函式如:intval()、strval() 來的有效率。
(1)在利用此授權方式的軟體或程式碼時,必需保存版權宣告、三條件表列和免責聲明。
$dbh = new PDO($dbtype_sql . ':host=' . $host_sql . ';dbname=' . $dbname_sql翻譯社 $username_sql翻譯社 $password_sql);
經過公司的 jQuery 教育練習,Jace 介紹了一個超讚的 jQuery Plugin:Select box manipulation。透過這個外掛的幫助,可以更輕鬆的實現多重下拉式選單的功能唷,乃至連 cascade 不容易做到的「預設值」也完全沒問題,所需要撰寫的程式碼也少於 cascade,全部就是夢幻的 Plugin!這麼神奇的外掛要怎麼用呢?以下簡單的類型,給有需要的人參考吧:規範是三階層的聯系關系式多重下拉式選單,分為index.php(出現頁)、action.php(Ajax 後端資料處理頁)、index.js(JavaScript 處置懲罰)、和 selectboxes ...繼續浏覽
':id' => $id,
PHP 是一種弱型其它語言,所以在面臨外部傳進來的變數時,我們每每會在作一次型其它轉換處置懲罰;PHP 內建提供型另外強迫轉換,如:(int)、(string)、(array),強迫型別轉換比函式如:intval()、strval() 來的有效率。
(1)在利用此授權方式的軟體或程式碼時,必需保存版權宣告、三條件表列和免責聲明。
$dbh = new PDO($dbtype_sql . ':host=' . $host_sql . ';dbname=' . $dbname_sql翻譯社 $username_sql翻譯社 $password_sql);
經過公司的 jQuery 教育練習,Jace 介紹了一個超讚的 jQuery Plugin:Select box manipulation。透過這個外掛的幫助,可以更輕鬆的實現多重下拉式選單的功能唷,乃至連 cascade 不容易做到的「預設值」也完全沒問題,所需要撰寫的程式碼也少於 cascade,全部就是夢幻的 Plugin!這麼神奇的外掛要怎麼用呢?以下簡單的類型,給有需要的人參考吧:規範是三階層的聯系關系式多重下拉式選單,分為index.php(出現頁)、action.php(Ajax 後端資料處理頁)、index.js(JavaScript 處置懲罰)、和 selectboxes ...繼續浏覽
taikobo0揭曉於
樂多
│12:05
│回應(72)
│引用(1)
│AJAX
March 3翻譯社2009
更多文章 │ 回頁首▲