2019年8月1日 星期四

[java]地址隱碼

/**
* 地址隱碼
 * @param address
* @return
*/
public static String addressToMaskFormat(final String address)
{
if (StringUtils.isEmpty(address))
{
return "";
}
//郵政信箱不隱碼:臺北北門郵局第○○號信箱
if (address.contains("信箱"))
{
return address;
}
//地址自路段後全隱
final String zoneValue = address.replaceAll("^(.*[鄉|鎮|市|區])(.*)$", "$1"); //鄉鎮市區資訊
final String fullRoadValue = address.replaceAll("^(.*[鄉|鎮|市|區])(.*)$", "$2"); //路段之後的資訊
System.out.println("zoneValue="+zoneValue);
System.out.println("fullRoadValue="+fullRoadValue);
if (StringUtils.isNotEmpty(zoneValue) && StringUtils.isNotEmpty(fullRoadValue))
{
String laneValue = fullRoadValue;//預設巷弄號樓資訊
String roadValue = fullRoadValue.replaceAll("^(.*[路|段|街])(.*)$", "$1");//截取正常路段名資訊
if (StringUtils.isNotEmpty(roadValue) && !roadValue.equals(laneValue))
{
laneValue = fullRoadValue.replaceAll("^(.*[路|段|街])(.*)$", "$2"); //有正常路段名資訊 XX路 XX段 XX街 時,再截取巷弄號樓資訊
}else{
roadValue="";
}

final String visibleLaneValue = laneValue.replaceAll("([0-9|0|1|2|3|4|5|6|7|8|9|一|二|三|四|五|六|七|八|九|十]*[巷|弄|號].*)$", "");
final String hiddenLaneValue = laneValue.replaceAll(visibleLaneValue, "");

if (StringUtils.isNotEmpty(hiddenLaneValue) && hiddenLaneValue.length() > 1)
{
//hiddenLaneValue不超過1碼時,代表地址不全,全隱
return zoneValue + roadValue + visibleLaneValue + addStar("", hiddenLaneValue.length());
}
}

//上面地址格式不對時
if (address.length() > 10)
{
final String hiddenValue = address.replaceAll("^(.{10})(.*)$", "$2");
return address.replaceAll(hiddenValue, addStar("", hiddenValue.length()));
}

//若地址不足10碼,則直接出******
return "******";

}

/**
*
* @param str 欲格式化的字串
* @param len  格式化長度
* @param fillchar 想補齊的字元
* @return
*/
public static String addStar(final String str, final int len)
{
final String fillchar = "*";
final StringBuffer sb = new StringBuffer();
if (str == null)
{
for (int i = 0; i < len; i++)
{
sb.append(fillchar);
}
}
else
{
final int strLen = str.length();
if (strLen < len)
{
for (int i = 0; i < (len - strLen); i++)
{
sb.append(fillchar);
}
return str + sb.toString();
}
else
{
if (str.length() == len)
{
return str;
}
else
{
return str.substring(0, len);
}
}
}
return sb.toString();
}

2019年7月31日 星期三

[java]電話號碼/手機號碼隱碼

public static String phoneNumberToMaskFormat(final String phoneNumber)
{
if (StringUtils.isEmpty(phoneNumber))
{
return "";
}
final String cleanNumber = phoneNumber.replaceAll("[\\(\\)\\- ]*", "");//去除符號()-
if (StringUtils.isNotEmpty(cleanNumber) && cleanNumber.length() > 4)
{
//去符號讓第2-5個數字替換成星
//例:(02)2960-3456=>0****03456
//例:(037)364220=>0****4220
return cleanNumber.replaceAll("^(\\d{1})(\\d{4})(.*)$", "$1****$3");
}
//cleanNumber不超過4碼時
return "******";

}

public static String mobileNumberToMaskFormat(final String mobileNumber)
{
if (StringUtils.isEmpty(mobileNumber))
{
return "";
}
//留頭4字及尾3字,中間3字替換成星
//例:0912123456=>0912***456
if (mobileNumber.length() == 10)
{
return mobileNumber.replaceAll("^(.{4})(.*)(.{3})$", "$1***$3");
}
//mobileNumber不為10碼時
return "******";

}

[java]日期的年份隱碼

public static String yearToMaskFormat(final Date date)
{
if (date == null)
{
return "";
}
//將年換成星,例:1955/04/01=>****/04/01
final DateFormat df = new SimpleDateFormat("yyyyMMdd");
try
{
return df.format(date).replaceAll("^(\\d{4})(\\d{2})(\\d{2})$", "**** /$2/$3");
}
catch (final Exception e)
{
e.printStackTrace();
}
return "******";

}

[java]身分證號隱碼

public static String idToMaskEnd4Format(final String id)
{
if (StringUtils.isEmpty(id))
{
return "";
}
//尾4字替換成星
//例:A123456789=>A12345****
if (id.length() == 10)
{
return id.replaceAll("^(.*)(\\d{4})$", "$1****");
}
//id不為10碼時
return "******";
}

2019年4月18日 星期四

[金融]洗錢防制法

2)  洗錢防制法規定金融機構對於達一定金額以上之通貨交易,應確認客戶身分及留存交易紀錄憑證,並應向指定之機構申報。所稱之一定金額係指新台幣多少之單筆現金或換鈔交易? (1)25萬元 (2)50萬元 (3)75萬元 (4)100萬元

4)  下列何者不屬於金融機構防制洗錢措施,訂定內部控制、稽核及法令遵行之事項? (1)確認客戶身分之程序及留存交易紀錄憑證之方式與期限 (2)申報流程及程序及保密規定 (3)定期檢討及辦理在職訓練 (4)無需專責人員負責協調監督

2)  下列何者不屬於金融機構防制洗錢措施所稱之金融機構? (1)辦理儲金匯兌之郵政機構 (2)銀樓業 (3)證券集中保管事業 (4)信託業


出處

目前金融機構需要依 洗錢防制法 程序向客戶確認身分的情形如下:
1.客戶與金融機構建立業務關係(例如辦理開戶)時。
2.客戶以現金辦理新臺幣 50 萬元以上之臨時性交易時。
3.客戶辦理新臺幣 3 萬元(含等值外幣)以上跨境匯款之臨時性交易時。
4.金融機構認為客戶的交易有異常情形時。
5.金融機構對於過去所取得客戶身分資料有疑問時(例如客戶資料久未更新)。

金融機構執行確認客戶身分程序,應確認下列事項,並請客戶提供相關文件:
1.確認客戶本人身分。
2.確認代理人(如有)身分,及查證代理事實(例如取得委託授權書)。
3.確認客戶的實質受益人。
4.確認客戶與金融機構業務往來的目的及性質。

[金融]期貨商客戶保證金專戶之管理

1)  期貨商客戶保證金專戶之管理,下列敘述何者不正確? (1)兼營期貨業務之金融機構得將其客戶保證金專戶開設於其所經營之金融機構 (2)期貨商應將所開設客戶保證金專戶之機構名稱及帳號於營業場所顯著位置公告 (3)客戶保證金專戶內所有款項之提取作業應以轉帳方式辦理,同時應有詳實之紀錄及收付憑證 (4)期貨商對客戶在客戶保證金專戶內之存款或有價證券,不得進行透支、設定擔保或他項權利,且不得挪用為其他客戶保證金、權利金、結算交割費用、佣金、手續費或不足款項之代墊


出處

期貨商依本法第七十條第一項向本會指定之機構開設客戶保證金專戶時,
該帳戶應標明係客戶保證金專戶
期貨商應將所開設客戶保證金專戶之機構名稱及帳號於營業場所顯著位置
公告
,變更或註銷時亦同。
期貨商同時經營本國期貨經紀及國外期貨經紀業務時,應分別設置客戶保
證金專戶。
第一項之指定機構,以下列各款為限:
一、經本會核准經營外匯或收受存款業務,並符合本會所定條件之銀行。
二、證券集中保管事業。
三、經中央銀行委託辦理中央登錄公債登記業務,並符合本會所定條件之
清算銀行。
兼營期貨業務之金融機構不得將其客戶保證金專戶開設於其所經營之金融
機構
期貨商受託從事期貨交易時,所收付之款項應以新臺幣或該結算機構所接
受之外幣為之。
前項款項之收付,應透過客戶保證金專戶辦理之,該專戶內所有款項之提
取作業應以轉帳方式辦理,同時應有詳實之紀錄及收付憑證。
期貨商受託從事期貨交易,經委託人授權代辦結匯手續者,於辦理結匯時
,應依外匯收支或交易申報辦法規定辦理。
期貨商對客戶在客戶保證金專戶內之存款或有價證券,不得進行透支、設
定擔保或他項權利,且不得挪用為其他客戶保證金、權利金、結算交割費
用、佣金、手續費或不足款項之代墊
期貨商應設置客戶明細帳,逐日計算每一客戶保證金專戶存款與有價證券
餘額及有價證券抵繳金額之變動情形,並編製所有客戶保證金專戶明細表

期貨商為前項之計算後,應依下列方式處理。但於從事國外期貨交易時,
國外期貨交易所另有規定者,得依其規定辦理。
一、期貨交易人之期貨交易虧損金額保證金專戶扣除
二、期貨交易人之期貨交易盈餘金額,應存入保證金專戶
三、客戶保證金專戶之存款餘額與有價證券抵繳金額合計數低於維持保證
金之數額時,應即通知其繳交追加保證金至原始保證金額度。
四、客戶保證金專戶之存款餘額與有價證券抵繳金額合計數超過原始保證
金者,依期貨交易人指示提領及交付。
前項第三款所指之追加保證金,應依受託契約所定期限繳交。
期貨商應按月編製對帳單一式二份,並於次月五日前填製,一份送交期貨
交易人,一份由期貨商保存。
前項對帳單之內容應包括下列事項:
一、期貨交易人姓名及帳號。
二、當月所有成交交易之種類、數量、單價、日期。
三、當月期貨交易保證金、權利金交付明細。
四、期貨交易人在客戶保證金專戶內存款與有價證券之提存情形、月底餘
額及有價證券抵繳金額。
五、期貨交易人之期貨交易明細、總額、交割月份。
六、交易手續、稅捐之明細及總數。
七、交易盈虧之明細及總數。
八、其他有關期貨交易之事項。
期貨商應保存對帳單二年,其資料得以媒體保存。
期貨商遇有破產、解散、停業或依法令應停止收受期貨交易人訂單時,除
期貨商為結算會員,依本法第五十四條規定處理者外,本會得命令其將所
屬期貨交易人之相關帳戶,移轉於與該期貨商訂有承受契約之其他期貨商

期貨商於接受本會前項之命令時,除有正當理由報經本會核准者外,應於
二個營業日內,將委託人交易保證金專戶內存款與有價證券餘額、有價證
券抵繳金額及所屬期貨交易人之交易明細表,移交前項之其他期貨商,因
移轉所生之費用,應由移轉之期貨商負擔。
期貨商應於開業後二個月內,將其他期貨商同意於第一項所定情事發生時
,承受所屬期貨交易人相關帳戶之契約書影本,報本會備查。


















2019年4月17日 星期三

[金融]店頭衍生性金融商品簡介

店頭衍生性金融商品簡介
(一)        店頭衍生性金融商品之種類與特性
1.  什麼是店頭衍生性金融商品
店頭衍生性金融商品係指依國內外櫃檯買賣市場(Over-the-counter)之規則或實務,其價值衍生自有價證券、利率、貨幣、指數、商品、信用或其他利益所衍生的交易契約。
2.  店頭衍生性金融商品之種類
基本型的店頭衍生性商品可分為遠期契約(Forwards)、交換契約(Swap)及選擇權契約(Options),亦可上述二種以上契約之組合,或結合固定收益商品之結構型商品。
3.  店頭衍生性金融商品之特性
(1)  沒有標準化合約,一般採店頭逐筆議價方式交易。
(2)  交易雙方都必須承擔交易對手的信用風險,即不履約風險。
(3)  因為有買賣價差,一般無須支付額外費用。
(二)        常見店頭衍生性金融商品的應用
1.    遠期契約(Forwards
買賣雙方約定在未來特定日期,以約定價格買賣一定數量之標的資產的合約。常見的有匯率遠期契約(FX Forwards)、遠期利率協定(FRA)。
2.    交換契約(Swap
買賣雙方約定在未來某一段期間內,互換一系列的現金流量。常見的有換匯換利(CCS)、利率交換(IRS)、資產交換(Asset Swap)及信用違約交換(CDS)。
3.    選擇權契約(Options
選擇權買方支付一定的權利金給賣方,有權利依約定價格,在某特定日期,買入(買權)或賣出(賣權)標的資產,而選擇權賣方有義務履約的合約。常見的有匯率選擇權(FX Options)、債券選擇權(Bond Options)及資產交換選擇權(Asset Swap Options)。
4.    結構型商品
結構型商品是結合固定收益商品(Fixed Income Instruments)及衍生性金融商品(Derivatives)的創新理財工具,透過固定收益商品與衍生性金融商品之組合,使投資報酬與連結標的資產表現產生連動效應。常見的有保本型商品、股權連結型商品、雙元貨幣結構型商品。
(三)  與投資人權益相關規範
1.  投資人分級管理制度
證券商提供衍生性金融商品交易服務時,應該將客戶區分為專業客戶及一般客戶,對一般客戶在得承作之商品種類、商品適合度、風險告知、書面契約及交易糾紛處理等要求較高。
2.  投資人分類
(1)  專業客戶:
A.    專業機構投資人:指國內外之銀行、保險公司、票券金融公司、證券商、基金管理公司、政府投資機構、政府基金、退休基金、共同基金、單位信託、證券投資信託公司、證券投資顧問公司、信託業、期貨商、期貨服務事業及其他經主管機關核准之機構。
B.    最近一期經會計師查核或核閱之財務報告總資產超過新臺幣五千萬元之法人或基金。
C.    同時符合下列條件,並以書面向證券商申請為專業客戶之自然人:
l  提出資產達3,000萬以上的財力證明;或單筆交易金額超過300萬,且在該證券商往來總資產超過1,500萬元,並提供總資產超過3,000萬元以上之財力聲明書。
l  具備充分之金融商品專業知識或交易經驗。
l  充分瞭解證券商與其交易得免除之責任。
(2)  一般客戶:專業客戶以外者,即非高資產或具備專業投資知識與經驗的一般民眾。
3.  商品適合度
證券商應該根據客戶之投資經驗、財產狀況、交易目的、商品理解及風險承受度等,進行瞭解客戶評估作業(KYC);並根據商品特性、本金虧損之風險與機率、流動性、結構複雜度、商品年期等,進行評估商品屬性作業(KYP),證券商應向客戶銷售適合其等級之衍生性金融商品。
4.  投資衍生性金融商品應注意事項
(1)  確認該證券商是否取得各項衍生性金融商品交易之業務經營資格。
(2)  店頭衍生性金融商品交易須承擔證券商之信用風險,投資人交易前應審慎評估往來證券商之財務業務狀況。
(3)  衍生性金融商品係相當複雜度的投資工具,承作前應確認自己對該商品有一定程度的瞭解,並確認自己能承擔最差狀況發生時的損失。
(4)  應仔細閱讀證券商提供之書面契約,例如「產品說明書」及「風險預告書」等,並由專人解說。交易完成後,應自證券商取得交易確認之書面文件。
(5)  一般客戶與證券商從事結構型商品交易,證券商應盡告知義務,對於預計銷售對象超過十人以上,且商品期間六個月以上之商品,應有七天以上的審閱期。此外,應該由該證券商向客戶宣讀客戶須知之重要內容,並以錄音方式保留紀錄。
5.  查詢往來證券商是否取得業務經營資格
投資人可於本中心網站查詢已取得資格之證券商名單,網址為www.gretai.org.tw,路徑為首頁 > 衍生性商品 > 店頭衍生性商品 > 投資人園地 > 取得衍生性商品業務資格證券商名單。
6.  投資人有交易糾紛應如何申訴
投資人如遇有交易爭議,可先透過往來證券商提供的紛爭處理及申訴管道,進行溝通、協調或申訴,如無法獲得滿意的解決,則可向中華民國證券商業同業公會、財團法人金融消費評議中心及金融監督管理委員會申訴。


2019年4月16日 星期二

[金融]保險相關

CM=金融市場常識與職業道德
PA=人身保險業務員資格測驗
CPA=財產保險業務員資格測驗
IPA=投資型保險商品業務員資格測驗
FCP=外幣收付之非投資型人身保險資格測驗
TPA=信託業業務人員信託業務專業測驗
TIR=投信投顧相關法規
FPA=理財諮詢師證照

CFA=美國特許金融分析師(L1~L3)
CFP=美國財務規劃師


會計師考試及保險代理人(分人身及財產)、經紀人(分人身及財產)、公證人(分一般及海事)因已由考選部辦理相關考試,故不列入模組化考照。另精算師考試因考試科目較具異質性及特殊性且目前及格人數十分稀少,故暫不列入模組化考照。其餘 13 種金融相關證照依執行業務性質,適用不同之 Modules 組合測驗,
其應考科目有如下 20 種:
1. 金融市場常識與職業道德。(由台灣金融研訓院、證券發展基金會、保險事業發展中心等相關測驗單位共同整理題庫上網公告週知,以供測驗單位及應考人免費使用。)
2. 證券交易相關法規與實務。(分 A、B 卷)(測驗單位:證券發展基金會)
3. 證券投資與財務分析。(分 A、B、C 卷,C 卷含會計學)(測驗單位:證券發展基金會)
4. 總體經濟及金融市場。(測驗單位:證券發展基金會)
5. 期貨交易法規。(分 A、B 卷)(測驗單位:證券發展基金會)
6. 期貨交易理論與實務。(測驗單位:證券發展基金會)
7. 期貨、選擇權與其他衍生性商品。(測驗單位:證券發展基金會)
8. 衍生性商品之風險管理。(測驗單位:證券發展基金會)
9. 投信投顧相關法規。(測驗單位:證券發展基金會)
10. 股務作業法規與實務。(測驗單位:證券發展基金會)
11. 票券金融法規。(測驗單位:證券發展基金會)
12. 票券金融實務。(測驗單位:證券發展基金會)
13. 信託法規。(測驗單位:台灣金融研訓院)
14. 信託實務。(測驗單位:台灣金融研訓院)
15. 銀行內部控制法規。(測驗單位:台灣金融研訓院)
16. 銀行內部控制制度(測驗單位:台灣金融研訓院)
17.人身保險法規與實務。(測驗單位:壽險公會)
18.財產保險法規與實務。(測驗單位:產物保險公會)
19.投資型保險商品概要、金融體系概述。(測驗單位:保險事業發展中心)
20.投資學概要、債券與證券之評價分析、投資組合管理。(測驗單位:保險事業發展中心)

2019年3月26日 星期二

[程式]兩個資料比較,找出相同且不重複的資料

How to convert List to Set (ArrayList to HashSet)

List<TestObject> list1 = new ArrayList<TestObject>();
List<String> list2 = new ArrayList<>();
List<String> filtedlist = new ArrayList<>();

TestObject to = new TestObject();
to.setCode("a1");
list1.add(to);
to = new TestObject();
to.setCode("a2");
list1.add(to);
to = new TestObject();
to.setCode("a3");
list1.add(to);
to = new TestObject();
to.setCode("a4");
list1.add(to);
to = new TestObject();
to.setCode("a5");
list1.add(to);


list2.add("a2");
list2.add("a4");
list2.add("a2");
list2.add("a4");
list2.add("a2");
list2.add("a4");

//寫法一
for (TestObject testo : list1) {
if(list2.contains(testo.getCode())) {
filtedlist.add(testo.getCode());
}
}

//寫法二
Set<String> set = new HashSet<String>(list2);//Convert List to Set
for (TestObject testo : list1) {
if(set.contains(testo.getCode())) {
filtedlist.add(testo.getCode());
}
}

for (TestObject testo : list1) {
System.out.println("all==>"+testo.getCode());
}
for (String string : list2) {
System.out.println("override==>"+string);
}
for (String string : filtedlist) {
System.out.println("filted==>"+string);
}

2019年2月17日 星期日

[攝影]攝影主題

重覆曝光
剪影
街拍
風光攝影
雨天
建築
雲海攝影
飛機攝影
鐵道攝影

人像攝影
美食攝影
旅行攝影
空中攝影
紀實攝影
商業攝影
廢墟攝影
婚紗攝影
光軌攝影(light trail)
抽色
黑白

2019年1月23日 星期三

[攝影]富士各系列的主題(差異)?

最近對富士微單感興趣了,但型號系列有點多,整理一下

Xpro系列是復古旁軸旗艦
xe系列是Xpro的縮水版
Xt系列是類單反旗艦
Xt x0系列Xt的縮水版
Xm系列是無取景器xtrans入門
Xa系列是無取景器非xtrans入門
X100是不可換鏡頭旁軸系列

2019年1月18日 星期五

[攝影][學習]如何拍大樓

最近在ig上看到幾張大樓林立的照片,自己卻拍不出這樣的照片
在google 搜尋"大樓 拍照 練習"後
找到這一篇文章:練習拍照首選,信義區拍攝芭樂點整理:台北 101、空橋、ATT4Fun、Bellavita
提供了一些拍攝信義區大樓的視角

[攝影][學習]365攝影計畫

365 日攝影計畫(365 days project),意思是一天一張照片,每天都強迫自己至少拍一張照片,為了拍下這張照片,會留心觀察環境、光影、跩摩技巧、嚐試新的拍攝主題,在這樣的模仿學習過程中,得到寶貴的經驗進而進步

宗旨是每天拍一張照片,可以沒有主題留心生活的每個小細節,也可以每天給自己一個拍攝主題,有目標性的練習
拍攝主題的方向
時間限定的大自然風光、建築、人像、美食、街拍、活動紀實
以技法作為練習題材,例:長曝、微距、美食、散景、追焦、重複曝光、黑白、盲拍..等
組圖來敘述影中故事

同樣的主題重覆拍,不同角度方法拍攝,構圖觀察力的培養,一方面讓攝影技巧更為熟捻,一方面要小心別被自己框住了

最重要的是:不要放棄
通常最困難執行的日子往往就是上班日:幾乎要花一整天的時間在工作上,而且還有許許多多想像不到的阻礙。往往都到晚上11點了,卻沒有辦法生出任何一張能看的照片…但還是不能放棄這一天的作業,就算再差還是要上傳完成今日的作業。

著名的365 日攝影計畫的執行者之一,德國攝影師Marius Vieth
美國攝影師Stephen Wilkes的重複曝光作品
Start your photo journal today! · 365 Project
攝影30天挑戰


部分資料來源
來源一
來源二

[攝影][學習]攝影新手的自我練習計畫

參考來源

●訂定拍攝學習計畫
●與同好交流討論求進步
●研究後製手法 讓影像更臻完美
●長期關注優秀攝影師作品(觀察),培養美感和嘗試思考
●多閱讀些色彩相關的知識
●增廣見聞,大量的閱讀、看電影

[生活][健康]生酮計畫實行紀錄 by 20190118

前陣子陪著另一半吃些他想吃的東西導致破酮
生酮計畫也就暫時擱置了

這個禮拜又重新開始生酮
但是這次入酮的進展一直不順
今天檢討了一下

一昧的高脂,但忘記蛋白質的比例,導致蛋白質的攝取比例太低
因為還沒入酮,而熱量又攝取不夠,導致身體處於非常飢餓的狀態
副作用:身體非常疲倦、非常的飢餓

tips:碳水化合物與蛋白質的攝取量維持在個人耐受度的門檻之下,這樣才能在生酮飲食之路上成功順利。

[生活]高麗菜料理

高麗菜料理
眷村蕃茄高麗菜
*高麗菜、蕃茄、蕃茄醬、糖、醋

鐵板豆芽高麗菜
*高麗菜、洋蔥、豆芽、奶油、黑胡椒、蠔油

培根高麗菜
*高麗菜、培根、辣椒、糖
建議高麗菜先川燙過(水裡加一點油)

豆豉高麗菜
*高麗菜、香菇、薑絲、豆豉、辣椒、蠔油

蝦醬什錦高麗菜
*高麗菜、蝦米、辣椒、蝦醬、魚露

什錦高麗菜
*高麗菜、紅蘿蔔、玉米筍、黑木耳、肉絲、香菇、豆皮、辣椒





[程式]找出對應的補色\對比色

介紹一個網站,輸入指定顏色colorhexa
可以找到對應的補色\對比色
而這個顏色的色號也在上面

2019年1月8日 星期二

[攝影]趙培均攝影師使用的APP

出處

趙培均(Paddy Chao)常用的相片類App,包括Snapseed、VSCO、Prisma、Lightroom CC、AfterFocus、NightCap、美圖秀秀等7個。

1. Snapseed
「局部」工具可以在圖片上放置最多8個控制點,指定並調整效果強度(如亮度、對比及飽和),適合用於突顯主體或者補救人物背光的照片。
「展開」工具適用於當照片的背景為規則性或素色時可延伸照片長寬。
「戲劇效果」工具可讓照片更富張力,一鍵套用的模式對於攝影初學者來說是不錯的選擇,不過要注意的就是戲劇效果會讓照片的雜訊非常多,且過度浮誇的風格容易使成像失真。

2. NightCap
方便夜間拍攝

3. Lightroom CC,可以精細地調整照片的色彩表現

4.AfterFocus
透過App中的智慧套索以及筆刷,後製出有景深的照片。

5. Prisma
含有各種繪畫風格濾鏡。

6.  VSCO
為目前手機修圖最廣為使用的App之一,其操作介面簡單易懂,且有多款濾鏡以及強度可以調整。

7. 美圖秀秀
輕鬆地為人像遮瑕及修容,建議用低強度的效果。

[攝影]歐豆老師使用的CPL

買了偏光鏡跟著歐豆老師去外拍
同樣的場景,老師拍出來的藍天就是更藍

請教老師秘訣,老師說kenko新出的CPL,可以反射更多的偏振光,光線也沒有之前的CPL減損多
老師使用的CPL為 kenko ZX C-PL




















[程式]Spring NoSuchBeanDefinitionException原因分析

WARN  [localhost-startStop-1] [CloseAwareApplicationContext] Exception encountered during context initialization - cancelling refresh attempt
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'generalSyncService': Injection of resource dependencies failed;
nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'acountLoader': Injection of resource dependencies failed;
nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'acountDao': Injection of resource dependencies failed;
nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataLoadService': Injection of resource dependencies failed;
nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'commonService': Injection of resource dependencies failed;
nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dbDataService' defined in class path resource [project-spring.xml]: Cannot resolve reference to bean '#{configurationService.configuration.getProperty('DbDataStrategy.impl')}'while setting bean property 'DbDataStrategy';
nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'null' is defined
        at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:308)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1210)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:537)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476)
        at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:303)
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:299)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:755)
        at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:757)
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:480)


^