正所謂 「獻醜不如藏拙」
1. 「一念之間」的意思:
「一念之間」是指基於同一事實或思考方式
但因為在一瞬間出現思想上的微小差異
因此產生截然不同的結果
例如你一直思考前途的選擇
一念之間 你決定到海外升學追夢
這張圖一看就知道兩者的思考方式懸殊
何來「一念之間」?
2. 「真相與謊言」從來都不是一念之間:
一念之間是個人主動產生的選擇
而不是被動事件本身的真與假
3. 關於設計:
沒有人會在腦的頂部開始(接收訊息)進行思考
如果你說:
「帖文最重要是表達的訊息 而非斟酌設計本身」
那可真是侮辱了設計
這張圖並非警方原創
而是拿別人的設計隨意改改便算
沒有思考整個設計本身是否合理
或可呈現正確的訊息
要強調真相與謊言
倒不如用「媒體選擇性報導真相」的圖片更直截了當
(見回覆圖)
~~~~~~~~~~~~~~~~~~~~~
還有太多其他問題
例如「真相」的「真」字使用了日本漢字
"you are what you sent" 的文法錯誤等
我便不詳細說了...
最後我想說
但凡有思考能力的人
都會懂得分析與分辨
現今所謂的新聞
是對還是錯
作為需要政治中立的專業團隊
與其花時間擅自拿別人網上設計
借顏色暗諷立場
作低品質二次創作
以及瘋狂禁止及刪除留言
倒不如踏實一點
不徇私、不濫權、做該做的事、
讓大家說想說的話、
正視自己的過錯
警隊的民望還是有機會回升的
警隊IG原post:
https://www.instagram.com/p/B_T0B0lA7ar/
原圖:
https://media.istockphoto.com/vectors/brain-maze-creative-idea-concept-outline-of-cerebrum-cerebellum-and-vector-id1132542557?b=1&k=6&m=1132542557&s=612x612&h=-t8-ikrEHEQ6pA3LnOrSzheNSLWMIcBzjsWnjbIzsIM=
同時也有2部Youtube影片,追蹤數超過5萬的網紅秋天剩旅行【cts.travel】,也在其Youtube影片中提到,【台東 | 轆轆溫泉】 📝「轆轆」溫泉名稱由來,係指布農族語中的「Laku Laku」,意思是指溫泉水沸騰冒泡,之後由漢人音譯為「轆轆」 📝轆轆溫泉屬碳酸氫納泉,溫度約40℃~65℃,某些沸騰溫泉露頭高達95℃以上,可以水煮蛋了。 📝轆轆溫泉:轆轆溫泉位於台東縣海端鄉的大崙溪上游,只要見有煙的...
「outline意思」的推薦目錄:
- 關於outline意思 在 Carl Ho 卡爾 Facebook 的最佳貼文
- 關於outline意思 在 Taipei Ethereum Meetup Facebook 的最佳貼文
- 關於outline意思 在 艾咪王【東京§生活日誌】 Facebook 的最佳貼文
- 關於outline意思 在 秋天剩旅行【cts.travel】 Youtube 的最佳解答
- 關於outline意思 在 EVALIN Youtube 的最讚貼文
- 關於outline意思 在 Flatten、Outline Stroke 区别- Figma 的2 种转曲 - YouTube 的評價
- 關於outline意思 在 haoel/haoel.github.io - 科学上网 的評價
outline意思 在 Taipei Ethereum Meetup Facebook 的最佳貼文
📜 [專欄新文章] Uniswap 解析:恆定乘積做市商模型 Constant Product Market Maker Model 的 Vyper 實作
✍️ 田少谷 Shao
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
在 🦄 Uniswap v2 到來之前徹底了解 v1 的設計與演算法!
Image source: https://uniswap.org/
Outline
一. 前言二. 恆定乘積做市商模型 Constant Product Market Maker Model 1. 計入手續費 2. 程式碼結構 3. 演算法核心與實作 4. 段落小結三. 流動性 Liquidity 1. 第一筆流動性注入、決定k值 2. 除了第一筆以外的情況四. 結語
一. 前言
暨上一篇開始接觸了 Vyper 後,我找了 Uniswap 的程式碼來更加熟悉 Vyper 的實作方法,順便研究了其演算法,然後就又寫了一篇 xD
類 Python 的合約語言 Vyper 開發入門:與 Solidity 差異、用 Truffle 部署、ERC20 賣幣合約實做
Uniswap 是以太坊上非常成功的自動做市商 Automated Market Maker (AMM)。本次我將用的 Uniswap 的程式碼搭配由 Runtime Verification 這家審計公司對 Uniswap 所做的形式化驗證結果來解釋恆定乘積做市商模型的 Vyper 實作 (2018 審計時 Uniswap 就已經是用 Vyper 而非 Solidity 了):
智能合約程式碼:https://github.com/Uniswap/uniswap-v1/blob/master/contracts/uniswap_exchange.vy
合約審計結果:https://github.com/runtimeverification/verified-smart-contracts/blob/master/uniswap/x-y-k.pdf
本文將以講解實作概念及數學推導為重點,程式碼的部分只是輔助。審計結果將恆定乘積做市商模型演算法的數學推導寫得非常清楚而有趣(?),建議有興趣者可以整份看過一遍,相信得到很多收穫!
至於更多 Uniswap 的介紹有興趣者可以參考 吳冠融 Roger Wu 所撰寫的簡介與使用流程:
解析 DeFi 項目《Uniswap》(一)Uniswap 是什麼?
解析 DeFi 項目《Uniswap》(二)Uniswap 如何使用?
在開始前的最後,先預告本文頗長,所以來播個被 Youtube 推薦的歌吧:
二. 恆定乘積做市商模型 Constant Product Market Maker Model
交易所如果要去中心化、也不使用掛單 order book,就需要靠演算法自動算出交易標的的數量與價格,而 Uniswap 使用名為恆定乘積的演算法,其來源可追溯自 Vitalik 的這篇文章:點我。
公式非常的簡單:x * y = k。令交易的兩虛擬貨幣為 X 和 Y,各自數量為 x 和 y,兩貨幣數量的乘積 x * y 恆等於 k,k 值是由第一筆注入的流動性所決定 (於 三. 流動性 Liquidity 解釋)。
因此,用 ∆x 數量的 X 幣來購買 Y 幣所能得到的數量 ∆y、或是為了購買 ∆y 需要付出的 ∆x 數量,依照此公式進行計算:(x+∆x)(y-∆y) = k,而交易的價格就是兩幣量 ∆x 和 ∆y 的比。
以下公式用 α = ∆x / x 和 β = ∆y / y 來表示 ∆x 和 ∆y 及 X Y 兩幣在交易發生後的新均衡數量:
圖一
1. 計入手續費
在 Uniswap 進行的每一筆交易都會被收取 ρ = 0.003 / 0.3% 的手續費回饋給流動性提供者 liquidity provider ,因此要將手續費納入公式的考量:
圖二
上圖的公式或許不太直覺,我建議不要從 x’ρ 及 y’ρ 開始理解,而是從 ∆x 和 ∆y 兩值開始:手續費 ρ = 0.3% 的意思是會從付款中扣掉 0.3 %,也就是從 ∆x 扣。在有手續費的情況下 ∆x 就變成了 (1-ρ)∆x ,若令 γ = 1-ρ 則為 γ∆x。因此,將圖一中的 ∆x 換成 γ∆x,就會得到以下式子:
source: https://www.codecogs.com/latex/eqneditor.php
將等號左方的 γ 移到右方後就得到了圖二中的 ∆x。同理,由於 ∆y 中的 α = ∆x / x ,用 γ∆x 代換 ∆x 就會得到圖二中的 ∆y (有 α 的地方乘上 γ )。而 x’ 還有 y’ 就可以由 ∆x 和 ∆y 推出來了!
然而,將圖二中得到的 x’ 和 y’ 相乘,會得到:
source: https://www.codecogs.com/latex/eqneditor.php
也就是說,當有手續費使得 γ != 1 /ρ != 0,x’ρ * y’ρ 的值其實會稍微和 xy = k 不同:在實作上 γ = 0.997 / ρ = 0.003,因此 1/γ-1 ≒ 0.003。β = ∆y / y 代表的是換得的 Y 幣佔總量的比例,即使最大值為 1,誤差也只有 1 * 0.003,故可知手續費 = 0.3% 對於 k 值的影響極小。
2. 程式碼結構
了解了基本的公式後,就可以開始研究程式碼是怎麼撰寫的。首先來看各個函式的功能:
addLiquidity() 及 removeLiquidity():轉入與轉出資金,留到 三. 流動性 Liquidity 中說明
getInputPrice() 及 getOutputPrice():最主要的函式,用以計算給 ∆x 所能換得的 ∆y 數量、以及為了得到 ∆y 所要支付 ∆x 的數量。此兩函式會被其他負責進行交易、匯幣的函式使用
三組 (eth->Token, Token->eth, Token->Token) 的 swap() 及 transfer():swap() 的收幣人就是付款人、transfer() 的收幣人不是付款人而是指定的對象。基本上這兩函式就是呼叫 getInputPrice() 或是 getOutputPrice() 後進行匯幣的動作,因此不再多做解釋
3. 演算法核心與實作
在研讀程式碼前,先回顧一下 ∆x 和 ∆y 的公式:
首先我們考慮用 ∆x 所能購買到的 ∆y 的 getInputPrice():
什麼…就這幾行程式碼?是的。
以上的程式碼和公式表達方式不同,因此先將 α = ∆x / x 和 β = ∆y / y 代換回來並將上下同乘 x:
source: https://www.codecogs.com/latex/eqneditor.php
由於 γ = 0.003,可以將上下同乘 1000 後得到:
source: https://www.codecogs.com/latex/eqneditor.php
接著就能來對照程式碼了:
(109行) numerator: input_amount 是欲支付的 X 幣數量 ∆x、output_reserve 是 Y 幣數量 y,再乘上 997 後就是等式右邊的上方 (= 997∆xy)
(110行) denominator: input_reserve 是 X 幣的數量,乘上 1000 再加上剛剛算過的 997∆x,就得到了等式右邊的下方 (= 1000x + 997∆x)
此處要注意的是 Vyper 的除法是無條件捨去,等同於 floor() 函式。這會不會造成嚴重的影響呢?如果熟悉 ERC20 的人應該記得,在發幣時輸入的四個參數中有一個參數代表小數點的位數,如同下方程式碼中的 2 代表最後兩位在小數點後。舉例來說,當 getInputPrice() 收到 1234567 為這個幣的 input_amount 時,代表使用者擁有的幣的數目實際上是 12345.67。因此,即使將結果捨去 0.67 後的數字,影響真的不大,況且如果不捨去而選擇無條件進位,那代表交易所反而要虧損一點點啦,太佛心了吧 xD 有興趣者可以看看審計報告的內容,有更詳細地去定義這些誤差所影響的範圍!
再來我們看若要購買 ∆y 需要付出多少 ∆x 的 getOutputPrice()。
一樣先將 α = ∆x / x 、β = ∆y / y 和 γ = 0.003 代換並上下同乘 1000y 得到:
source: https://www.codecogs.com/latex/eqneditor.php
我們已經看過 getInputPrice() 一次了,所以應該能發現第 122–124 行得出的結果和上式相同。要注意的是這邊的結果反而是無條件捨去後直接 +1,因為這是在計算使用者要付多少 ∆x 才能購買到 ∆y,為了不讓交易所虧只能選擇請使用者多付一點點。
4. 段落小結
以上就是撇除匯幣等函示,恆定乘積做市商的 Vyper 實作,沒錯就這樣而已!Uniswap 之所以可以做到低 gas 消耗就是因為這個演算法本身就非常簡單,所需的運算也就是兩三次乘除法而已!
不過我們還沒結束,接下來要談談如何投入資金/注入流動性,而這部分也包含了決定 k 值的精妙機制!
三. 流動性 Liquidity
流動性指的是交易市場中能夠交易的資金/標的物的量。使用自動做市商 (AMM) 而非掛單的最大好處就是市場一定會有流動性,而缺點就是如果交易量越大就會造成越大的滑點 Slippage,意思就是交易價格變動會越大、得到的價格越差 。
source: https://ethresear.ch/t/improving-front-running-resistance-of-x-y-k-market-makers/1281
我們可以用上面提到的 V 文章中的圖片來迅速帶過,畢竟有關注 Uniswap 的讀者大概都已經看過這圖很多次了。
當要兌換的幣的數量越大/占比越重,例如:20% Y 幣的流動性,就會造成要付出比兌換少量時極為不對稱的高額 X 幣。
接著我們要來探討注入流動性的原則,依照市場是否已經有流動性而區分為兩種情形:
1. 第一筆流動性注入、決定 k 值
以下程式碼是 addLiquidity() 函式中 46-48, 51, 及 64-74 行。當市場上還沒有任何流動性時,不會滿足第 51 行而是進入 64 行的 else。
在第 65 行我們可以看到 msg.value ≥ 10¹⁰,以及在 67 行 token_amount 就是其中一個輸入值 max_tokens。這邊代表的是第一個注入流動性的使用者可以自行決定要注入多少 Ether (≥ 10¹⁰) (= x) 以及相應的幣的數量 (= y),也就是上方提到的 k 值 (= x* y),在本例的 X 幣就是 Ether。(本處先不解釋剩餘的程式碼,留到 2. 除了第一筆以外的情況)
那麼問題來了:第一個注入流動性的人要怎麼決定提供各自多少的兩種幣呢?最好的辦法是依照當時兩幣的市價比,讓兩者的價值 (數量 * 價格) 相同,例如:當 1 Ether 的價格為 100 Dai,注入 1 Ether 以及 100 Dai 是最好的,因為兩種幣的總價值是一樣的,以下舉例說明原因。
當 1 Ether 市價為 100 Dai 時,假設第一人決定注入 1 Ether 和 50 Dai (k = 50),總價值為 150 Dai,我們考慮兩種兌換方法:
Ether -> Dai:用 0.1 Ether 來購買 Dai,依照上方公式 (1+0.1)(50-y) = 50 可得 y ≒ 4.55,也就是說得到的價格是 0.1 Ether = 4.55 Dai,遠低於市價 0.1 Ether = 10 Dai,相信沒有人這麼傻~
Dai -> Ether:用 2 Dai 來購買 Ether,依照上方公式 (1-x)(50+2) = 50 可得 x ≒ 0.038,也就是說得到的價格是 2 Dai = 0.038 Ether,高於市價 2 Dai = 0.02 Ether,那麼眼尖的人就會立刻衝來套利了xD
那麼即使如此,第一人有所損失嗎?當然有!假設路人 A 手上有 30 Dai (= 0.3 Ether),A 看到機會後就把 30 Dai 全換成 Ether:(1-x)(50+30) = 50 可得 x = 0.375,大於原本持有的 Dai 的價值 0.3 Ether。此時,第一人即使立刻抽出現存的全部資金 Ether = 0.625 及 Dai = 80,總價值也只剩下 142.5 Dai,比起原本的 150 Dai 還少。以上的計算還有手續費沒有納入考量,但也只有 30 Dai 的 0.3% = 0.09 Dai。
由上例可知,第一位提供流動性的人為了避免自己的損失,確實得依照當時兩幣的市價比去提供相應的數量。傑克,這真是太神奇了0…0
2. 除了第一筆以外的情況
如果市場已經有流動性,使用 addLiquidity() 來注入流動性就會進入第 51 行的 if。
source: https://github.com/Uniswap/uniswap-v1/blob/master/contracts/uniswap_exchange.vy
(53行) eth_reserve: 由於使用者已經透過函式 addLiquidity() 將錢匯入了合約,因此將合約所擁有的 Ether 數量 self.balance (= x + ∆x) 減去使用者匯入的錢 msg.value (= ∆x),得到使用者匯錢之前合約內所擁有的 Ether 數量 (= x)
(54行) token_reserve: self.token 是一個餵入幣地址的 ERC20 instance;透過呼叫 ERC20 的函式 balanceOf() 即可查出合約所擁有的 Y 幣的數量 (= y)
(55行) token_amount: 透過將合約所擁有的 Y 幣的數量 token_reserve (= y) 乘上使用者匯入的錢 msg.value (= ∆x) 對合約原本擁有的Ether 數量 eth_reserve (= x) 的比例,代表使用者應該相應地注入多少 Y 幣 (∆y = y * ∆x / x)。除法一樣是無條件捨去
(56行) liquidity_minted: 將原本交易所中的總流動性 total_liquidity 乘上增加的比率 msg.value / eth_reserve (= ∆x / x) ,代表增加的流動性,隨後會在第 58 行記錄下來
(60行) transferFrom() 函式將使用者應付的 Y 幣數量 token_amount (= ∆y) 匯入當前合約,就完成了流動性的注入。小提示:智能合約中的 assert() 會確保函式內的條件如果失敗就整筆交易 transaction 直接取消,因此只要傳入的參數已經被計算好,於 60 行再進行 transferFrom() 其實與放在前面並沒有太大的差別
以上就是注入流動性的大致實作內容。取出資金 removeLiquidity() 其實與 addLiquidity() 的做法大同小異,因此就不再贅述。
四. 結語
呼,真的累。恆定乘積做市商模型的概念雖然簡單,但解釋起來還是挺複雜的!其實本文並未著墨於審計報告中的主要議題:評估因為整數除法 (不使用浮點數) 而造成的誤差範圍,因為講起來非常複雜、也不是真的這麼需要知道。不過,恰巧就是這些程式碼的細節有可能讓程式產生預期之外的結果!因此,對於有興趣了解該如何去分析智能合約整數除法的讀者,可以研究一下;而 Uniswap 的程式碼因為是用 Vyper 實作,可讀性非常高、同時也不難,因此也非常值得打開來看看、甚至動手實作自己的版本!
最後,如果本文有任何錯誤,請不吝提出,我會盡快做修正;而如果我的文章有幫助到你,可以看看我的其他文章,歡迎一起交流 :)
田少谷 Shao - Medium
Uniswap 解析:恆定乘積做市商模型 Constant Product Market Maker Model 的 Vyper 實作 was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
👏 歡迎轉載分享鼓掌
outline意思 在 艾咪王【東京§生活日誌】 Facebook 的最佳貼文
歐嗨唷~
今天跟大家分享金魚腦的日文XD(大誤)
請讓我發洩一下~
因為每個月都一直在配合進出口貿易事宜的北京同事
每過幾個月就會來表演金魚腦記憶喪失的戲碼
今早又來揮~揮~揮~🤦🏻♀️
只好跟BOSS討論日文有沒有金魚腦這個詞降一下火氣
很可惜的日文沒有「妳真是金魚腦耶」這種用法
😏
・
但學到一個和金魚相關的諺語 也覺得很貼切分享給大家
「金魚の糞」(きんぎょのふん )
直譯不害羞就是金魚的便便
大家可以想像 金魚的便便是不是好長一條貼在金魚的屁屁上 任金魚拖來拖去
而「金魚の糞」的意思就是切不斷、甩不掉
通常用來比喻只會跟在一些有權有勢有地位的人的後面遊走、拍馬屁,像跟屁蟲一樣
多用來嘲諷帶有貶抑的意思
什麼時候用大家就自己斟酌了喔!
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
剛好講到金魚 最近有一個藝術金魚展分享給大家
各式各樣奇異造型水族箱結合金魚和燈光的藝術展
體驗彷彿進入不同時光的世界觀
看到好多朋友去拍了很夢幻的照片
有興趣的朋友可以去看喔!
特定日晚上還有DJ藝妓、花魁等特別的演出
(需要另外追加付費)
每周四晚上還有人気の日本酒『獺祭』night
可以在獺祭bar喝到”「精碾二割三分」、「純米大吟醸 精碾三割九分」、「獺祭 發泡濁酒」
入場時間到晚上22:00
下班完都還可以去放鬆一下!
⬇️⬇️⬇️⬇️⬇️
〈2018年藝術金魚展〉
・地址:日本橋三井ホール
(東京都中央区日本橋室町2-2-1 コレド室町1 5F[エントランス4F])
・展期:2018年7月6日(金)-9月24日(月・祝)
・展會時間:日-金曜日 11:00-22:30(最終入場:22:00)
土・祝前日 11:00-23:30(最終入場:23:00)
・門票:¥1000 (7-11 ticket網站或店內POS機都可購買)
・URL:http://artaquarium.jp/nihonbashi2018/#outline
以上 發洩完畢可以繼續正常的工作了(眨眼)
#艾咪王東京生活日誌 #日本 #日本金魚展 #金魚 #東京 #網美打卡地點
outline意思 在 秋天剩旅行【cts.travel】 Youtube 的最佳解答
【台東 | 轆轆溫泉】
📝「轆轆」溫泉名稱由來,係指布農族語中的「Laku Laku」,意思是指溫泉水沸騰冒泡,之後由漢人音譯為「轆轆」
📝轆轆溫泉屬碳酸氫納泉,溫度約40℃~65℃,某些沸騰溫泉露頭高達95℃以上,可以水煮蛋了。
📝轆轆溫泉:轆轆溫泉位於台東縣海端鄉的大崙溪上游,只要見有煙的地方挖一個池子溫泉就會冒出來形成一個溫泉池。沿溪上溯溪大約半小時,可到溫泉源頭,有一處相當壯觀的峽谷瀑布
📝轆轆溫泉先至關山分局辦理入山證,入山前於霧鹿派出所辦理登記
📍活動地點:台東縣海端鄉南橫路段大崙溪谷
📍高度落差:830公尺
🕐活動流程與時間:2019年02月28日
📝Day 1:
台北→池上→下馬
19:00 台北火車站東三門集合出發→
20:30 蘇澳→
22:20 新城→
01:20 池上→
01:50 下馬
Day 2:
下馬民宿→嘉寶隧道~水泥路盡頭~最後工寮登山口~轆轆溫泉
06:30 起床、早餐
07:30 開車→
07:45 嘉寶隧道,整理裝備
08:15 重裝出發~
09:15 水泥路盡頭~
10:05 最後工寮登山口~
11:05 隘口~
11:25 警備道下切點~
12:05 崩壁頂點~
13:05 石洞營地~
13:35 石板屋遺址~
14:15 大崙溪底,過溪~
14:35 轆轆溫泉,整理營地 (晚餐,宿)
Day 3:
轆轆溫泉~溫泉源頭~轆轆溫泉
07:00 起床、早餐
08:00 輕裝出發、沿溪上溯→
10:30 溫泉源頭
11:00 原路折返~
13:00 轆轆溫泉,整理營地 (晚餐,宿)
Day 4:
轆轆溫泉~最後工寮~嘉寶隧道→池上→台北
06:00 起床.早餐
08:00 重裝出發~
11:30 警備道下切點~
11:50 隘口~
12:30 最後工寮登山口~
13:20 水泥路盡頭,整理裝備~
14:20 嘉寶隧道,整理裝備
14:45 開車 →
15:15 池上→
18:15 新城→
20:25 蘇澳,休息
20:50 開車→
22:20 台北
--------------------------------------------------------------------------------------------------------
👉更多有關於【秋天剩旅行cts.travel】此旅行的照片
🔥https://www.instagram.com/cts.travel/🔥
👉歡迎商業合作與邀約
🔥bokas3kas3@gmail.com🔥
--------------------------------------------------------------------------
外層 | 防水外套:始祖鳥 Arc'teryx BETA AR
https://idragon.info/2ggee
中層 | 軟殼外套:始祖鳥 Arc'teryx Gamma MX Hoody
https://whitehippo.net/2gghY
中層 | 保暖羽絨衣:始祖鳥 Arcteryx Cerium LT Hoody 850FP
https://shopsquare.co/2gghf
中層 | 輕量保暖外套:Fjällräven Keb Fleece Hoodie M
http://www.fjallraven.tw/clothes53.0.404
底層 | 透氣快乾襯衫: Fjällräven Abisko Hike Shirt LS
http://www.fjallraven.tw/clothes53.0.128
下肢 | 軟殼軟殼長褲:Arcteryx 始祖鳥 SIGMA FL Pants
https://igrape.net/2gghp
https://igrape.net/2gghp
下肢 | 軟殼軟殼長褲:Fjällräven Abisko Keb Trousers M
http://www.fjallraven.tw/clothes53.0.175
鞋子 | 重裝高筒防水登山鞋:ZAMBERLAN 1014 LYNX MID GTX WL
https://www1.gamepark.com.tw/2gghx
鞋子 | 輕裝低筒防水健行鞋:SALOMON GORETEX X ULTRA 3
https://easyfun.biz/2ggi3
鞋子 | 輕裝低筒防水健行鞋:SALOMON OUTLINE GTX
https://igrape.net/2ggi6
背包 | 重裝登山背包:Gregory Baltoro 75 Goal Zero 太陽能登山背包(2017版)
https://product.mchannles.com/2ggi9(2019薄暮藍)
https://ibanana.biz/2ggiC(2019瑪瑙黑)
背包 | 中裝登山背包:神秘農場Mystery Ranch EX Coulee 40(2019版)
https://adcenter.conn.tw/2ggiI
配件 | 相機快夾系統:PEAK DESIGN Capture V3
https://shoppingfun.co/2ggmB
配件 | 相機背帶:PEAK DESIGN 快裝神奇背帶 Slide
https://igamepark.biz/2ggib
配件 | 相機手腕帶:PEAK DESIGN 快裝潮流腕帶 Cuff 手腕帶 快拆
https://product.mchannles.com/2ggiw
配件 | 防水圓盤帽:Black Yak GTX
https://reurl.cc/d0qjv6
配件 | 墨鏡:ROAV Eyewear Taiwan
#溫泉
#野溪溫泉
#轆轆溫泉
outline意思 在 EVALIN Youtube 的最讚貼文
希望今天的影片可以幫助到想體驗滑雪的初雪者,耶
今天影片outline~~~
滑雪怎麼穿 0:57
花多少錢 9:03
第一次滑雪的心得 11:56
▋購買滑雪裝備的店
王子登山戶外滑雪用品 http://bit.ly/2VmGAGF
▋訂閱eva !!! http://bit.ly/2m7ZqUn
▋繼續看前一部影片
輕井澤滑雪VLOG http://bit.ly/2ExiuU6
旅行保養品帶什麼? http://bit.ly/2VmCpL0
行李怎麼收納?http://bit.ly/2Vixt9W
▋看完影片後想跟我分享你的生活可以留言在下方,或是在instagram上tag @evalin555 or #showevalin 我就會看到囉
▋follow更多eva的日常跟最新消息
日常依法 INSTAGRAM: http://instagram.com/evalin555/
最新依法 FB : https://www.facebook.com/kellywitheva
文字依法 BLOG: http://kellyeva.pixnet.net/blog
snapchat : EVALIN555
商業合作 Business Inquiries:[email protected]
▋今日妝容
隱眼/richbaby melty brown
底妝/
媚點 零瑕美肌粧前乳 綠色
SUQQU 保濕款粉餅霜
眉毛/
KATE 雙用立體眉彩筆N 扁平 BR-3
KATE 3D造型眉彩餅 EX-4
KATE 3D時尚眉彩膏
眼妝/
KATE 懷舊摩登眼影盒 RD-1
腮紅/
ESPRIQUE 幻粧 怦然戀色頰彩 PK-1
唇膏/
媚點 水灩光唇膏 OR-1
▋現在開始~我的影片可以上字幕囉,
希望來自各方的上字幕好友、達人可以幫我的影片上字幕
讓影片可以讓更多國家、更多人了解到台灣的文化
請先到eva800526@gmail.com 來信預約字幕及語言eva800526@gmail.com ,確定後會為你開啟字幕編輯功能,另外我會準備小禮物送給你們!
p.s. 每支影片的每種語言只需要一個人唷,如果重複到會害你們做白工這樣就很不好意思了 謝謝你們!
▋影片工具
攝影 CANON M50/ iPhone 7plus
剪輯 FCPX
♫ MUSIC TODAY♬
epidemicsound 從網站付費授權使用
FTC: This video is NOT sponsored.
outline意思 在 haoel/haoel.github.io - 科学上网 的推薦與評價
意思 是,屏蔽你获得信息能力的不是墙,而很大一部分则是我们自己的语言能力! 2. 购买VPS. 然后,你需要一个VPS。 在这里,强烈建议通过自建的方式,可能 ... ... <看更多>
outline意思 在 Flatten、Outline Stroke 区别- Figma 的2 种转曲 - YouTube 的推薦與評價
本期视频给大家介绍Figma 关于转曲的两个功能:Flatten、 Outline Stroke,这两个功能有什么区别,什么情况下用哪个,视频讲给你听。 ... <看更多>