📜 [專欄新文章] Uniswap v3 Features Explained in Depth
✍️ 田少谷 Shao
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
Once again the game-changing DEX 🦄 👑
Image source: https://uniswap.org/blog/uniswap-v3/
Outline
0. Intro1. Uniswap & AMM recap2. Ticks 3. Concentrated liquidity4. Range orders: reversible limit orders5. Impacts of v36. Conclusion
0. Intro
The announcement of Uniswap v3 is no doubt one of the most exciting news in the DeFi place recently 🔥🔥🔥
While most have talked about the impact v3 can potentially bring on the market, seldom explain the delicate implementation techniques to realize all those amazing features, such as concentrated liquidity, limit-order-like range orders, etc.
Since I’ve covered Uniswap v1 & v2 (if you happen to know Mandarin, here are v1 & v2), there’s no reason for me to not cover v3 as well ✅
Thus, this article aims to guide readers through Uniswap v3, based on their official whitepaper and examples made on the announcement page. However, one needs not to be an engineer, as not many codes are involved, nor a math major, as the math involved is definitely taught in your high school, to fully understand the following content 😊😊😊
If you really make it through but still don’t get shxt, feedbacks are welcomed! 🙏
There should be another article focusing on the codebase, so stay tuned and let’s get started with some background noise!
1. Uniswap & AMM recap
Before diving in, we have to first recap the uniqueness of Uniswap and compare it to traditional order book exchanges.
Uniswap v1 & v2 are a kind of AMMs (automated market marker) that follow the constant product equation x * y = k, with x & y stand for the amount of two tokens X and Y in a pool and k as a constant.
Comparing to order book exchanges, AMMs, such as the previous versions of Uniswap, offer quite a distinct user experience:
AMMs have pricing functions that offer the price for the two tokens, which make their users always price takers, while users of order book exchanges can be both makers or takers.
Uniswap as well as most AMMs have infinite liquidity¹, while order book exchanges don’t. The liquidity of Uniswap v1 & v2 is provided throughout the price range [0,∞]².
Uniswap as well as most AMMs have price slippage³ and it’s due to the pricing function, while there isn’t always price slippage on order book exchanges as long as an order is fulfilled within one tick.
In an order book, each price (whether in green or red) is a tick. Image source: https://ftx.com/trade/BTC-PERP
¹ though the price gets worse over time; AMM of constant sum such as mStable does not have infinite liquidity
² the range is in fact [-∞,∞], while a price in most cases won’t be negative
³ AMM of constant sum does not have price slippage
2. Tick
The whole innovation of Uniswap v3 starts from ticks.
For those unfamiliar with what is a tick:
Source: https://www.investopedia.com/terms/t/tick.asp
By slicing the price range [0,∞] into numerous granular ticks, trading on v3 is highly similar to trading on order book exchanges, with only three differences:
The price range of each tick is predefined by the system instead of being proposed by users.
Trades that happen within a tick still follows the pricing function of the AMM, while the equation has to be updated once the price crosses the tick.
Orders can be executed with any price within the price range, instead of being fulfilled at the same one price on order book exchanges.
With the tick design, Uniswap v3 possesses most of the merits of both AMM and an order book exchange! 💯💯💯
So, how is the price range of a tick decided?
This question is actually somewhat related to the tick explanation above: the minimum tick size for stocks trading above 1$ is one cent.
The underlying meaning of a tick size traditionally being one cent is that one cent (1% of 1$) is the basis point of price changes between ticks, ex: 1.02 — 1.01 = 0.1.
Uniswap v3 employs a similar idea: compared to the previous/next price, the price change should always be 0.01% = 1 basis point.
However, notice the difference is that in the traditional basis point, the price change is defined with subtraction, while here in Uniswap it’s division.
This is how price ranges of ticks are decided⁴:
Image source: https://uniswap.org/whitepaper-v3.pdf
With the above equation, the tick/price range can be recorded in the index form [i, i+1], instead of some crazy numbers such as 1.0001¹⁰⁰ = 1.0100496621.
As each price is the multiplication of 1.0001 of the previous price, the price change is always 1.0001 — 1 = 0.0001 = 0.01%.
For example, when i=1, p(1) = 1.0001; when i=2, p(2) = 1.00020001.
p(2) / p(1) = 1.00020001 / 1.0001 = 1.0001
See the connection between the traditional basis point 1 cent (=1% of 1$) and Uniswap v3’s basis point 0.01%?
Image source: https://tenor.com/view/coin-master-cool-gif-19748052
But sir, are prices really granular enough? There are many shitcoins with prices less than 0.000001$. Will such prices be covered as well?
Price range: max & min
To know if an extremely small price is covered or not, we have to figure out the max & min price range of v3 by looking into the spec: there is a int24 tick state variable in UniswapV3Pool.sol.
Image source: https://uniswap.org/whitepaper-v3.pdf
The reason for a signed integer int instead of an uint is that negative power represents prices less than 1 but greater than 0.
24 bits can cover the range between 1.0001 ^ (2²³ — 1) and 1.0001 ^ -(2)²³. Even Google cannot calculate such numbers, so allow me to offer smaller values to have a rough idea of the whole price range:
1.0001 ^ (2¹⁸) = 242,214,459,604.341
1.0001 ^ -(2¹⁷) = 0.000002031888943
I think it’s safe to say that with a int24 the range can cover > 99.99% of the prices of all assets in the universe 👌
⁴ For implementation concern, however, a square root is added to both sides of the equation.
How about finding out which tick does a price belong to?
Tick index from price
The answer to this question is rather easy, as we know that p(i) = 1.0001^i, simply takes a log with base 1.0001 on both sides of the equation⁴:
Image source: https://www.codecogs.com/latex/eqneditor.php
Let’s try this out, say we wanna find out the tick index of 1000000.
Image source: https://ncalculators.com/number-conversion/log-logarithm-calculator.htm
Now, 1.0001¹³⁸¹⁶² = 999,998.678087146. Voila!
⁵ This formula is also slightly modified to fit the real implementation usage.
3. Concentrated liquidity
Now that we know how ticks and price ranges are decided, let’s talk about how orders are executed in a tick, what is concentrated liquidity and how it enables v3 to compete with stablecoin-specialized DEXs (decentralized exchange), such as Curve, by improving the capital efficiency.
Concentrated liquidity means LPs (liquidity providers) can provide liquidity to any price range/tick at their wish, which causes the liquidity to be imbalanced in ticks.
As each tick has a different liquidity depth, the corresponding pricing function x * y = k also won’t be the same!
Each tick has its own liquidity depth. Image source: https://uniswap.org/blog/uniswap-v3/
Mmm… examples are always helpful for abstract descriptions 😂
Say the original pricing function is 100(x) * 1000(y) = 100000(k), with the price of X token 1000 / 100 = 10 and we’re now in the price range [9.08, 11.08].
If the liquidity of the price range [11.08, 13.08] is the same as [9.08, 11.08], we don’t have to modify the pricing function if the price goes from 10 to 11.08, which is the boundary between two ticks.
The price of X is 1052.63 / 95 = 11.08 when the equation is 1052.63 * 95 = 100000.
However, if the liquidity of the price range [11.08, 13.08] is two times that of the current range [9.08, 11.08], balances of x and y should be doubled, which makes the equation become 2105.26 * 220 = 400000, which is (1052.63 * 2) * (110 * 2) = (100000 * 2 * 2).
We can observe the following two points from the above example:
Trades always follow the pricing function x * y = k, while once the price crosses the current price range/tick, the liquidity/equation has to be updated.
√(x * y) = √k = L is how we represent the liquidity, as I say the liquidity of x * y = 400000 is two times the liquidity of x * y = 100000, as √(400000 / 100000) = 2.
What’s more, compared to liquidity on v1 & v2 is always spread across [0,∞], liquidity on v3 can be concentrated within certain price ranges and thus results in higher capital efficiency from traders’ swapping fees!
Let’s say if I provide liquidity in the range [1200, 2800], the capital efficiency will then be 4.24x higher than v2 with the range [0,∞] 😮😮😮 There’s a capital efficiency comparison calculator, make sure to try it out!
Image source: https://uniswap.org/blog/uniswap-v3/
It’s worth noticing that the concept of concentrated liquidity was proposed and already implemented by Kyper, prior to Uniswap, which is called Automated Price Reserve in their case.⁵
⁶ Thanks to Yenwen Feng for the information.
4. Range orders: reversible limit orders
As explained in the above section, LPs of v3 can provide liquidity to any price range/tick at their wish. Depending on the current price and the targeted price range, there are three scenarios:
current price < the targeted price range
current price > the targeted price range
current price belongs to the targeted price range
The first two scenarios are called range orders. They have unique characteristics and are essentially fee-earning reversible limit orders, which will be explained later.
The last case is the exact same liquidity providing mechanism as the previous versions: LPs provide liquidity in both tokens of the same value (= amount * price).
There’s also an identical product to the case: grid trading, a very powerful investment tool for a time of consolidation. Dunno what’s grid trading? Check out Binance’s explanation on this, as this topic won’t be covered!
In fact, LPs of Uniswap v1 & v2 are grid trading with a range of [0,∞] and the entry price as the baseline.
Range orders
To understand range orders, we’d have to first revisit how price is discovered on Uniswap with the equation x * y = k, for x & y stand for the amount of two tokens X and Y and k as a constant.
The price of X compared to Y is y / x, which means how many Y one can get for 1 unit of X, and vice versa the price of Y compared to X is x / y.
For the price of X to go up, y has to increase and x decrease.
With this pricing mechanism in mind, it’s example time!
Say an LP plans to place liquidity in the price range [15.625, 17.313], higher than the current price of X 10, when 100(x) * 1000(y) = 100000(k).
The price of X is 1250 / 80 = 15.625 when the equation is 80 * 1250 = 100000.
The price of X is 1315.789 / 76 = 17.313 when the equation is 76 * 1315.789 = 100000.
If now the price of X reaches 15.625, the only way for the price of X to go even higher is to further increase y and decrease x, which means exchanging a certain amount of X for Y.
Thus, to provide liquidity in the range [15.625, 17.313], an LP needs only to prepare 80 — 76 = 4 of X. If the price exceeds 17.313, all 4 X of the LP is swapped into 1315.789 — 1250 = 65.798 Y, and then the LP has nothing more to do with the pool, as his/her liquidity is drained.
What if the price stays in the range? It’s exactly what LPs would love to see, as they can earn swapping fees for all transactions in the range! Also, the balance of X will swing between [76, 80] and the balance of Y between [1250, 1315.789].
This might not be obvious, but the example above shows an interesting insight: if the liquidity of one token is provided, only when the token becomes more valuable will it be exchanged for the less valuable one.
…wut? 🤔
Remember that if 4 X is provided within [15.625, 17.313], only when the price of X goes up from 15.625 to 17.313 is 4 X gradually swapped into Y, the less valuable one!
What if the price of X drops back immediately after reaching 17.313? As X becomes less valuable, others are going to exchange Y for X.
The below image illustrates the scenario of DAI/USDC pair with a price range of [1.001, 1.002] well: the pool is always composed entirely of one token on both sides of the tick, while in the middle 1.001499⁶ is of both tokens.
Image source: https://uniswap.org/blog/uniswap-v3/
Similarly, to provide liquidity in a price range < current price, an LP has to prepare a certain amount of Y for others to exchange Y for X within the range.
To wrap up such an interesting feature, we know that:
Only one token is required for range orders.
Only when the current price is within the range of the range order can LP earn trading fees. This is the main reason why most people believe LPs of v3 have to monitor the price more actively to maximize their income, which also means that LPs of v3 have become arbitrageurs 🤯
I will be discussing more the impacts of v3 in 5. Impacts of v3.
⁷ 1.001499988 = √(1.0001 * 1.0002) is the geometric mean of 1.0001 and 1.0002. The implication is that the geometric mean of two prices is the average execution price within the range of the two prices.
Reversible limit orders
As the example in the last section demonstrates, if there is 4 X in range [15.625, 17.313], the 4 X will be completely converted into 65.798 Y when the price goes over 17.313.
We all know that a price can stay in a wide range such as [10, 11] for quite some time, while it’s unlikely so in a narrow range such as [15.625, 15.626].
Thus, if an LP provides liquidity in [15.625, 15.626], we can expect that once the price of X goes over 15.625 and immediately also 15.626, and does not drop back, all X are then forever converted into Y.
The concept of having a targeted price and the order will be executed after the price is crossed is exactly the concept of limit orders! The only difference is that if the range of a range order is not narrow enough, it’s highly possible that the conversion of tokens will be reverted once the price falls back to the range.
As price ranges follow the equation p(i) = 1.0001 ^ i, the range can be quite narrow and a range order can thus effectively serve as a limit order:
When i = 27490, 1.0001²⁷⁴⁹⁰ = 15.6248.⁸
When i = 27491, 1.0001²⁷⁴⁹¹ = 15.6264.⁸
A range of 0.0016 is not THAT narrow but can certainly satisfy most limit order use cases!
⁸ As mentioned previously in note #4, there is a square root in the equation of the price and index, thus the numbers here are for explantion only.
5. Impacts of v3
Higher capital efficiency, LPs become arbitrageurs… as v3 has made tons of radical changes, I’d like to summarize my personal takes of the impacts of v3:
Higher capital efficiency makes one of the most frequently considered indices in DeFi: TVL, total value locked, becomes less meaningful, as 1$ on Uniswap v3 might have the same effect as 100$ or even 2000$ on v2.
The ease of spot exchanging between spot exchanges used to be a huge advantage of spot markets over derivative markets. As LPs will take up the role of arbitrageurs and arbitraging is more likely to happen on v3 itself other than between DEXs, this gap is narrowed … to what extent? No idea though.
LP strategies and the aggregation of NFT of Uniswap v3 liquidity token are becoming the blue ocean for new DeFi startups: see Visor and Lixir. In fact, this might be the turning point for both DeFi and NFT: the two main reasons of blockchain going mainstream now come to the alignment of interest: solving the $$ problem 😏😏😏
In the right venue, which means a place where transaction fees are low enough, such as Optimism, we might see Algo trading firms coming in to share the market of designing LP strategies on Uniswap v3, as I believe Algo trading is way stronger than on-chain strategies or DAO voting to add liquidity that sort of thing.
After reading this article by Parsec.finance: The Dex to Rule Them All, I cannot help but wonder: maybe there is going to be centralized crypto exchanges adopting v3’s approach. The reason is that since orders of LPs in the same tick are executed pro-rata, the endless front-running speeding-competition issue in the Algo trading world, to some degree, is… solved? 🤔
Anyway, personal opinions can be biased and seriously wrong 🙈 I’m merely throwing out a sprat to catch a whale. Having a different voice? Leave your comment down below!
6. Conclusion
That was kinda tough, isn’t it? Glad you make it through here 🥂🥂🥂
There are actually many more details and also a huge section of Oracle yet to be covered. However, since this article is more about features and targeting normal DeFi users, I’ll leave those to the next one; hope there is one 😅
If you have any doubt or find any mistake, please feel free to reach out to me and I’d try to reply AFAP!
Stay tuned and in the meantime let’s wait and see how Uniswap v3 is again pioneering the innovation of DeFi 🌟
Uniswap v3 Features Explained in Depth was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
👏 歡迎轉載分享鼓掌
同時也有2部Youtube影片,追蹤數超過16萬的網紅林子安 AnViolin,也在其Youtube影片中提到,■ 更多林子安: INSTAGRAM:https://www.instagram.com/an__official/ FACEBOOK:https://www.facebook.com/Anviolin/ WEIBO:http://weibo.com/u/6511795600 Spotify:htt...
「taipei times front page」的推薦目錄:
- 關於taipei times front page 在 Taipei Ethereum Meetup Facebook 的精選貼文
- 關於taipei times front page 在 新聞人 黃旭昇 Facebook 的最佳解答
- 關於taipei times front page 在 新聞人 黃旭昇 Facebook 的最讚貼文
- 關於taipei times front page 在 林子安 AnViolin Youtube 的最佳解答
- 關於taipei times front page 在 林子安 AnViolin Youtube 的最佳解答
- 關於taipei times front page 在 Taipei Times | Facebook 的評價
taipei times front page 在 新聞人 黃旭昇 Facebook 的最佳解答
【台灣人物誌 054 生態工法基金會】
我們正在寫歷史
財團法人台灣生態工法發展基金會 副執行長 邱銘源
節氣大雪的那天早上,我還困在工作的泥沼,只能利用短短的一個小時,準備行李和攝影器材,行色匆匆的趕往機場,準備前往中國江西的鄱陽湖,和保護區管理單位、當地白鶴研究學者以及國際鶴類基金會(ICF)的專家,進行一場關於小白鶴未來的請益與對談。
這一年來,國內外的奔波,已經讓我已經養成備戰的狀態,總有一個背包,隨時準備出發遠行打仗,我們就像小白鶴的地球防衛隊。
我們搭著渡輪,穿著雨鞋腳踩著泥濘,走了十多公里的草澤與灘地,在一片迷霧與寒風中抵達鄱陽湖的保護區,江西省永修縣吳城鎮的荷溪村周邊,一個面積一萬倍於金山清水濕地的保護區,一個比台北市大十倍的候鳥王國,全世界百分之九十九點九的白鶴,都在這裡渡冬。
我帶了張尋鶴啟事給當地的管理單位,我想小白鶴的爸爸媽媽一定也在這裡,白鶴都是成鳥與幼鳥組成飛行單位,空中飛翔著總是三鳥成伍的戰鬥編隊,我拿著望遠鏡,竭盡眼力,搜尋少了一隻亞成鳥的家庭,期待能告訴他們,在台灣還有一個白鶴孤兒,離家六千里,但他在台灣過得很好,請大家放心。
今年的鄱陽湖雨水太多,造成白鶴渡冬的主食「苦草」淹在水面下,無法供白鶴食用,這群八十多隻的白鶴,只能辛苦的回到休耕的農地,一顆一顆的找尋掉落的稻穀,研究的學者告訴我們,因為這樣的氣候變遷,造成白鶴覓食的時間拉長,每天至少要花近十二個小時覓食,也因此特別怕人。
離我們最近的白鶴族群,距離也有三百公尺,這天,因為我們的出現,害他們不斷的起飛警戒,浪費更多的體力,拉長覓食的時間,讓我深感愧疚。也讓我更感同身受小白鶴在台灣的幸福,距離那麼的近,吃得那麼的好。
小白鶴抵台的週年,心裡頭有很多的感動,這一年來,雖然不斷和公部門對談與拉扯,但總算能感動少數有心的公務人員,一起擘劃願景,找出解決問題的方法,減少農民與地主的餘慮,向有俠義之風的中央社黃旭昇先生,在我們與公部門一路的折衝與困境中,總能貼心的適時出手,讓事情往對的方前進,雖然改變還是很慢,雖然政府對於執法的決心總讓人有更多的期待。
但很高興農業局的李玟局長,是一個有擔當願意做事的好長官,讓我們一路走來有最棒的支持。 過去我也在公職服務近二十年,心裡頭一直很清楚一個重要的價值,「懲惡揚善」才能帶領民心走向未來,對於基層公務人員,我總是不斷的鼓勵他們,如何從「屢戰屢敗」的消極心態,轉換成「屢敗屢戰」積極作為,因為,我們都在寫歷史,我們都在實踐「人在公門好修行」的傳統價值。
野生動物保育法實施這麼多年以來,我們還沒看到任何一宗,因為騷擾瀕危鳥類而執法確認的案例,只因為「騷擾」兩字,太主觀判定,缺乏更明確的法令條文定義,以致無法移送。導致惡人仍然橫行,而誣衊了大多數守法的拍鳥人。
有了判例,在第一線執法的同仁,才能更有尊嚴的執法。 公部門過去的無力感,讓我想起台灣的食安危機,所有問題的源頭,都因為公民的漠視,造成公部門的顢頇無能,所有的問題都因為,大家自掃門前雪,而終究受害的是我們自己。
於是傻瓜基金會不願當網路的酸民,我們站出來扛重擔,我們自己善盡公民的角色,讓一隻來自西伯利亞的孤兒,在台灣受到最好的照顧,因為一隻鳥,改變了一個老農,改變了一塊土地的未來,鼓勵了更多勇於任事的公務人員,這個美麗的故事,甚至登上了俄國西伯利亞時報的頭版,標題大字清楚的寫著「Thanks people of Taiwan」,感謝我們照顧來自他們故鄉的孤兒,這是多麼動人的一刻,民間的努力,讓台灣的愛心登上了國際新聞的頭版。
只要有心,只要老實的實踐,我們都在為台灣寫歷史,難道政府還要花大筆預算,買媒體公關行銷台灣嗎?
這一年來感謝很多貴人的幫忙,在小白鶴抵台週年的前夕,老天爺又派來一隻丹頂鶴,告訴我們功不唐捐,這一段走來的努力沒有白費,民心望治,最後一里路,就只差急待「打掉重練」的政府心態。
要感謝的人很多,實在無法逐一列名,更何況還有許多知名不具的俠客與女俠,但我要特別提出來的是,我人生的貴人「緯創人文基金會」的長期支持,在我們最關鍵的時刻,雪中送炭,給我們最溫暖的鼓勵,感謝林憲銘董事長,除了財務上的支持之外,更讓我們感動的是他們還派出一整團的「地球防衛隊」志工,無條件的付出,協助所有的農務;地方上,最讓我感動的則是金山區的李偉人區長和賴建興先生,區長到任之後,揚棄過去的官僚作風,用同理心幫民眾解決各種問題,劍及履及,讓我感受到他的誠意與熱誠。
建興兄則是地主黃老伯的公子,他看到傻瓜基金會的努力,也捐出自己的所得,出錢出力,有了在的年輕人的支持,讓我銘感五內,當然在週年的前夕,最辛苦的應該是守護員莊國樑先生,小白鶴白了,莊先生黑了,小白鶴胖了,莊先生瘦了,小白鶴樂得到處飛,莊先生就更苦了。
這一切的改變,讓我更清楚的體認,台灣要好,需要各位熱情的支持與鼓勵,問題的源頭,在於公民的力量的凝聚,讓我們一起寫下這歷史不朽的一頁,就從支持台灣的環境復興運動開始。
這本攝影集的出版,除了專業的飛羽攝影之外,我們更想留下來的是這一年多來,人的努力與走過的痕跡,這本書更是鳥人們與NGO團體合作的最佳典範,我們不再是過去對立的兩邊,只要有心,專業攝影者的資料,更是絕佳的研究紀錄,台灣很小,我非常期待大家捐棄成見,一起為這塊土地努力。
這本書的出版,不僅見證台灣人的愛心,更開創了鳥人間合作的新典範,只要有心,只要大家願意存異求同,一起攜手向前,在這裡我特別感謝所有願意無償提供精彩紀錄的鳥友們,我們正在寫歷史!
邱大俠於江西鄱陽湖保護區
2015.12.11 小白鶴抵台週年前夕
We are writing the history
Taiwan Ecological Engineering Development Foundation
Chiu, Ming-Yuan/Deputy CEO
The feast snow day of the morning on the lunar calendar, I was still trapped in mud during work. With only one hour time, I got to pack my baggage and photographic equipments. Rushing to the airport, I was ready to go to Poyang Lake in Jiangxi of China to meet the management team of protected area, local crane researchers, and specialists of International Crane Foundation (ICF) for a discussion of the future for a small crane. The past year, coming back and forth from Taiwan to overseas, I have been preparing myself in a standby position with a backpack always. We are just like the Earth Defense Force for the small crane and ready to go on a fight.
We took ferry and were wearing rubber boots in the mud to walk through marshes and beaches for more than ten kilometers. With cold and fog, we arrived in the protected area of Poyang Lake, Dutch Village of Yongxiu County in Jiangxi Province. This is the wetland protected area for cranes with the size about ten thousand times of Jinshan wetland and ten times bigger than Taipei City. 99.9% of the cranes in the world will be spending the winter here. I took a crane searching notice to the local management unit. I think this small crane’s parents should be in here. Cranes usually group themselves with grown birds and little birds as a flying unit in the sky. They are always composed by 3 birds into a flying formation. I took the binoculars and tried to look for the family missing a member. I wanted to tell them that their missing kid, six thousand miles away from home, is doing fine in Taiwan now and they don’t need to worry.
Too much rain in Poyang Lake this year caused their main food-Vallisneria natans to be covered by water that it’s not enough for the cranes. More than eighty cranes could just go back to the rest farms to look for falling rice. Research scholars told us that the climate change causes the extension for cranes to look for food. They have to spend at least 12 hours to find food everyday, therefore, they are afraid of people particularly. The nearest crane ethic group is about 300 meters away from us. Because of our presence, they have been alert and kept on taking off. Wasting more physical energy and lengthening foraging time due to our visit has made me feel guilty. It also made me feel the happiness of the small crane in Taiwan since its closer and it eats so well.
Upon the anniversary of the small crane’s arrival, I have so much sensation in my heart. For the past one year, despite of constant discussion and talk with public sector, we could be able to find the solution and map out the vision to reduce the doubts from farmers and landlords with some kind-hearted government servants. For example, chivalrous reporter, Mr. Xusheng Huang from CAN always extend his hands to move the things to the right direction while we were in the hardship. Although the change is very slow, and we have more expectation on the government’s determination of law enforcement, it’s so grateful that we get the best support along the way from a very responsible government official, Mr. Li Wen, the bureau chief of Agricultural Department of New Taipei City Government.
I have been working in the public sector for nearly two decades. I understand a very important value “Punish evil and propagate good” that would lead the people into the future. For those government servants on the basic level, I always encourage them to convert the negative attitude as “repeating defeats after each fight “ to “keep on fighting”. That’s because we are writing the history and in the practice of traditional value-Practice good in the public sector. Many years of implementation of Wildlife Conservation Law, there is no one law enforcement confirmed case seen caused by harassing endangered birds. “Harassment” is a subjective word that people can’t be sued due to lacking of clearer definition of the provisions of the Act. It also made the wicked rampant and slander most law-abiding bird photographers. Only with the real seen case, the first line of law enforcement officials can be more dignified to do their job.
The sense of powerless from the public sector over the past years reminds me of food security crisis in Taiwan. All the source of problems is from people’s indifference that causes the powerless of the government. Everyone is minding their own business, which makes everyone the victim eventually. Therefore, we the silly foundation does not want to be troll on the internet, instead, we stand out to carry the burden and fulfill the role as good citizen. We make the orphan from Siberia to be well taken care of in Taiwan. A bird has changed an old farmer and the future of a land, furthermore, it also encourages more government servants to be more bold. This beautiful story is even published in the front page of Russian Siberia Times. The title stated “Thanks people of Taiwan”. They appreciate us caring for orphans from their home. It’s such a touching moment. The effort from the private sector made Taiwan’s love to be published on the front page of international news.
If we truly want it to happen and practice in action, we are all writing the history. Does the government really need to spend large budget to pay for media to promote Taiwan? We thank very much for many people’s help for the past one year. On the eve of anniversary of the small crane’s arrival, there is another red-crowned crane came. It’s just like a sign delivered from God saying our effort is not in vain. Toward the last mile trip to the destination for making it happen, the only element we are waiting is the government’s mentality “Tear down and start again”. There are so many people we are so thankful for that can’t be listed one by one, and not to talk about some well-known chivalrous ladies and gentlemen. I want to mention especially the long term support from Wistron Foundation. We appreciate the chairman, Lin, Xian-Ming for his warm encouragement during our critical moment. They not only support us financially, but also send a group of volunteers “Earth Defense Force” to assist all the agricultural services unconditionally. Most impressive help I got locally is from the mayor of Jinshan District, Li Wei and Mr. Jianxing Lai. After the mayor’s arrival on his duty, he abandons the past bureaucracy and helps people to solve many issues with sympathy. I truly feel his sincerity and enthusiasm.
Jianxin is the son of the landlord, Mr. Huang. He has seen our effort and even donated his income. With the support from the young man, I feel so touched and grateful. Of course, Mr. Kuoliang Jhuang, the guardian has been through the most difficult time through the whole year. The crane gets more white and choppy, while Mr. Jhuang gets more black and thin. The crane flies all over happily, and Mr. Jhuang is even more bitter with it.
All the changes had made me realized that we need everyone’s passionate support and encouragement to make Taiwan better. The source of the problem lies in the power of united citizen. Let’s write this immortal history together and start from supporting environmental revival movement in Taiwan. The publication of this photographic collection is not only to provide professional photos, but also to leave the trace of people’s effort for this past year. This book also set up a great example for the cooperation between NGOs and bird shooting photographers. We are no more the opposing sides each other as in the past. For those professional photographers looking for detail resources, this is the best research record. Taiwan is a small place and I very much look forward to see everyone’s hardworking together for this piece of land. The book’s publication not only witnesses the love of Taiwanese people, but also creates a new model of cooperation of the bird world. In here, I especially want to thank the friends providing their precious collection for free. As long as everyone could join hands and move forward with same goal, we are writing the history!
2015.12.11 The eve of anniversary of the small crane’s arrival
Mr. Chiu, Protected Area of Poyang Lake in Jiangxi Province
taipei times front page 在 新聞人 黃旭昇 Facebook 的最讚貼文
【台灣人物誌 054 台灣生態工法基金會】
我們正在寫歷史
財團法人台灣生態工法發展基金會 副執行長 邱銘源
節氣大雪的那天早上,我還困在工作的泥沼,只能利用短短的一個小時,準備行李和攝影器材,行色匆匆的趕往機場,準備前往中國江西的鄱陽湖,和保護區管理單位、當地白鶴研究學者以及國際鶴類基金會(ICF)的專家,進行一場關於小白鶴未來的請益與對談。
這一年來,國內外的奔波,已經讓我已經養成備戰的狀態,總有一個背包,隨時準備出發遠行打仗,我們就像小白鶴的地球防衛隊。
我們搭著渡輪,穿著雨鞋腳踩著泥濘,走了十多公里的草澤與灘地,在一片迷霧與寒風中抵達鄱陽湖的保護區,江西省永修縣吳城鎮的荷溪村周邊,一個面積一萬倍於金山清水濕地的保護區,一個比台北市大十倍的候鳥王國,全世界百分之九十九點九的白鶴,都在這裡渡冬。
我帶了張尋鶴啟事給當地的管理單位,我想小白鶴的爸爸媽媽一定也在這裡,白鶴都是成鳥與幼鳥組成飛行單位,空中飛翔著總是三鳥成伍的戰鬥編隊,我拿著望遠鏡,竭盡眼力,搜尋少了一隻亞成鳥的家庭,期待能告訴他們,在台灣還有一個白鶴孤兒,離家六千里,但他在台灣過得很好,請大家放心。
今年的鄱陽湖雨水太多,造成白鶴渡冬的主食「苦草」淹在水面下,無法供白鶴食用,這群八十多隻的白鶴,只能辛苦的回到休耕的農地,一顆一顆的找尋掉落的稻穀,研究的學者告訴我們,因為這樣的氣候變遷,造成白鶴覓食的時間拉長,每天至少要花近十二個小時覓食,也因此特別怕人。
離我們最近的白鶴族群,距離也有三百公尺,這天,因為我們的出現,害他們不斷的起飛警戒,浪費更多的體力,拉長覓食的時間,讓我深感愧疚。也讓我更感同身受小白鶴在台灣的幸福,距離那麼的近,吃得那麼的好。
小白鶴抵台的週年,心裡頭有很多的感動,這一年來,雖然不斷和公部門對談與拉扯,但總算能感動少數有心的公務人員,一起擘劃願景,找出解決問題的方法,減少農民與地主的餘慮,向有俠義之風的中央社黃旭昇先生,在我們與公部門一路的折衝與困境中,總能貼心的適時出手,讓事情往對的方前進,雖然改變還是很慢,雖然政府對於執法的決心總讓人有更多的期待。
但很高興農業局的李玟局長,是一個有擔當願意做事的好長官,讓我們一路走來有最棒的支持。 過去我也在公職服務近二十年,心裡頭一直很清楚一個重要的價值,「懲惡揚善」才能帶領民心走向未來,對於基層公務人員,我總是不斷的鼓勵他們,如何從「屢戰屢敗」的消極心態,轉換成「屢敗屢戰」積極作為,因為,我們都在寫歷史,我們都在實踐「人在公門好修行」的傳統價值。
野生動物保育法實施這麼多年以來,我們還沒看到任何一宗,因為騷擾瀕危鳥類而執法確認的案例,只因為「騷擾」兩字,太主觀判定,缺乏更明確的法令條文定義,以致無法移送。導致惡人仍然橫行,而誣衊了大多數守法的拍鳥人。
有了判例,在第一線執法的同仁,才能更有尊嚴的執法。 公部門過去的無力感,讓我想起台灣的食安危機,所有問題的源頭,都因為公民的漠視,造成公部門的顢頇無能,所有的問題都因為,大家自掃門前雪,而終究受害的是我們自己。
於是傻瓜基金會不願當網路的酸民,我們站出來扛重擔,我們自己善盡公民的角色,讓一隻來自西伯利亞的孤兒,在台灣受到最好的照顧,因為一隻鳥,改變了一個老農,改變了一塊土地的未來,鼓勵了更多勇於任事的公務人員,這個美麗的故事,甚至登上了俄國西伯利亞時報的頭版,標題大字清楚的寫著「Thanks people of Taiwan」,感謝我們照顧來自他們故鄉的孤兒,這是多麼動人的一刻,民間的努力,讓台灣的愛心登上了國際新聞的頭版。
只要有心,只要老實的實踐,我們都在為台灣寫歷史,難道政府還要花大筆預算,買媒體公關行銷台灣嗎?
這一年來感謝很多貴人的幫忙,在小白鶴抵台週年的前夕,老天爺又派來一隻丹頂鶴,告訴我們功不唐捐,這一段走來的努力沒有白費,民心望治,最後一里路,就只差急待「打掉重練」的政府心態。
要感謝的人很多,實在無法逐一列名,更何況還有許多知名不具的俠客與女俠,但我要特別提出來的是,我人生的貴人「緯創人文基金會」的長期支持,在我們最關鍵的時刻,雪中送炭,給我們最溫暖的鼓勵,感謝林憲銘董事長,除了財務上的支持之外,更讓我們感動的是他們還派出一整團的「地球防衛隊」志工,無條件的付出,協助所有的農務;地方上,最讓我感動的則是金山區的李偉人區長和賴建興先生,區長到任之後,揚棄過去的官僚作風,用同理心幫民眾解決各種問題,劍及履及,讓我感受到他的誠意與熱誠。
建興兄則是地主黃老伯的公子,他看到傻瓜基金會的努力,也捐出自己的所得,出錢出力,有了在的年輕人的支持,讓我銘感五內,當然在週年的前夕,最辛苦的應該是守護員莊國樑先生,小白鶴白了,莊先生黑了,小白鶴胖了,莊先生瘦了,小白鶴樂得到處飛,莊先生就更苦了。
這一切的改變,讓我更清楚的體認,台灣要好,需要各位熱情的支持與鼓勵,問題的源頭,在於公民的力量的凝聚,讓我們一起寫下這歷史不朽的一頁,就從支持台灣的環境復興運動開始。
這本攝影集的出版,除了專業的飛羽攝影之外,我們更想留下來的是這一年多來,人的努力與走過的痕跡,這本書更是鳥人們與NGO團體合作的最佳典範,我們不再是過去對立的兩邊,只要有心,專業攝影者的資料,更是絕佳的研究紀錄,台灣很小,我非常期待大家捐棄成見,一起為這塊土地努力。
這本書的出版,不僅見證台灣人的愛心,更開創了鳥人間合作的新典範,只要有心,只要大家願意存異求同,一起攜手向前,在這裡我特別感謝所有願意無償提供精彩紀錄的鳥友們,我們正在寫歷史!
邱大俠於江西鄱陽湖保護區
2015.12.11 小白鶴抵台週年前夕
We are writing the history
Taiwan Ecological Engineering Development Foundation
Chiu, Ming-Yuan/Deputy CEO
The feast snow day of the morning on the lunar calendar, I was still trapped in mud during work. With only one hour time, I got to pack my baggage and photographic equipments. Rushing to the airport, I was ready to go to Poyang Lake in Jiangxi of China to meet the management team of protected area, local crane researchers, and specialists of International Crane Foundation (ICF) for a discussion of the future for a small crane. The past year, coming back and forth from Taiwan to overseas, I have been preparing myself in a standby position with a backpack always. We are just like the Earth Defense Force for the small crane and ready to go on a fight.
We took ferry and were wearing rubber boots in the mud to walk through marshes and beaches for more than ten kilometers. With cold and fog, we arrived in the protected area of Poyang Lake, Dutch Village of Yongxiu County in Jiangxi Province. This is the wetland protected area for cranes with the size about ten thousand times of Jinshan wetland and ten times bigger than Taipei City. 99.9% of the cranes in the world will be spending the winter here. I took a crane searching notice to the local management unit. I think this small crane’s parents should be in here. Cranes usually group themselves with grown birds and little birds as a flying unit in the sky. They are always composed by 3 birds into a flying formation. I took the binoculars and tried to look for the family missing a member. I wanted to tell them that their missing kid, six thousand miles away from home, is doing fine in Taiwan now and they don’t need to worry.
Too much rain in Poyang Lake this year caused their main food-Vallisneria natans to be covered by water that it’s not enough for the cranes. More than eighty cranes could just go back to the rest farms to look for falling rice. Research scholars told us that the climate change causes the extension for cranes to look for food. They have to spend at least 12 hours to find food everyday, therefore, they are afraid of people particularly. The nearest crane ethic group is about 300 meters away from us. Because of our presence, they have been alert and kept on taking off. Wasting more physical energy and lengthening foraging time due to our visit has made me feel guilty. It also made me feel the happiness of the small crane in Taiwan since its closer and it eats so well.
Upon the anniversary of the small crane’s arrival, I have so much sensation in my heart. For the past one year, despite of constant discussion and talk with public sector, we could be able to find the solution and map out the vision to reduce the doubts from farmers and landlords with some kind-hearted government servants. For example, chivalrous reporter, Mr. Xusheng Huang from CAN always extend his hands to move the things to the right direction while we were in the hardship. Although the change is very slow, and we have more expectation on the government’s determination of law enforcement, it’s so grateful that we get the best support along the way from a very responsible government official, Mr. Li Wen, the bureau chief of Agricultural Department of New Taipei City Government.
I have been working in the public sector for nearly two decades. I understand a very important value “Punish evil and propagate good” that would lead the people into the future. For those government servants on the basic level, I always encourage them to convert the negative attitude as “repeating defeats after each fight “ to “keep on fighting”. That’s because we are writing the history and in the practice of traditional value-Practice good in the public sector. Many years of implementation of Wildlife Conservation Law, there is no one law enforcement confirmed case seen caused by harassing endangered birds. “Harassment” is a subjective word that people can’t be sued due to lacking of clearer definition of the provisions of the Act. It also made the wicked rampant and slander most law-abiding bird photographers. Only with the real seen case, the first line of law enforcement officials can be more dignified to do their job.
The sense of powerless from the public sector over the past years reminds me of food security crisis in Taiwan. All the source of problems is from people’s indifference that causes the powerless of the government. Everyone is minding their own business, which makes everyone the victim eventually. Therefore, we the silly foundation does not want to be troll on the internet, instead, we stand out to carry the burden and fulfill the role as good citizen. We make the orphan from Siberia to be well taken care of in Taiwan. A bird has changed an old farmer and the future of a land, furthermore, it also encourages more government servants to be more bold. This beautiful story is even published in the front page of Russian Siberia Times. The title stated “Thanks people of Taiwan”. They appreciate us caring for orphans from their home. It’s such a touching moment. The effort from the private sector made Taiwan’s love to be published on the front page of international news.
If we truly want it to happen and practice in action, we are all writing the history. Does the government really need to spend large budget to pay for media to promote Taiwan? We thank very much for many people’s help for the past one year. On the eve of anniversary of the small crane’s arrival, there is another red-crowned crane came. It’s just like a sign delivered from God saying our effort is not in vain. Toward the last mile trip to the destination for making it happen, the only element we are waiting is the government’s mentality “Tear down and start again”. There are so many people we are so thankful for that can’t be listed one by one, and not to talk about some well-known chivalrous ladies and gentlemen. I want to mention especially the long term support from Wistron Foundation. We appreciate the chairman, Lin, Xian-Ming for his warm encouragement during our critical moment. They not only support us financially, but also send a group of volunteers “Earth Defense Force” to assist all the agricultural services unconditionally. Most impressive help I got locally is from the mayor of Jinshan District, Li Wei and Mr. Jianxing Lai. After the mayor’s arrival on his duty, he abandons the past bureaucracy and helps people to solve many issues with sympathy. I truly feel his sincerity and enthusiasm.
Jianxin is the son of the landlord, Mr. Huang. He has seen our effort and even donated his income. With the support from the young man, I feel so touched and grateful. Of course, Mr. Kuoliang Jhuang, the guardian has been through the most difficult time through the whole year. The crane gets more white and choppy, while Mr. Jhuang gets more black and thin. The crane flies all over happily, and Mr. Jhuang is even more bitter with it.
All the changes had made me realized that we need everyone’s passionate support and encouragement to make Taiwan better. The source of the problem lies in the power of united citizen. Let’s write this immortal history together and start from supporting environmental revival movement in Taiwan. The publication of this photographic collection is not only to provide professional photos, but also to leave the trace of people’s effort for this past year. This book also set up a great example for the cooperation between NGOs and bird shooting photographers. We are no more the opposing sides each other as in the past. For those professional photographers looking for detail resources, this is the best research record. Taiwan is a small place and I very much look forward to see everyone’s hardworking together for this piece of land. The book’s publication not only witnesses the love of Taiwanese people, but also creates a new model of cooperation of the bird world. In here, I especially want to thank the friends providing their precious collection for free. As long as everyone could join hands and move forward with same goal, we are writing the history!
2015.12.11 The eve of anniversary of the small crane’s arrival
Mr. Chiu, Protected Area of Poyang Lake in Jiangxi Province
taipei times front page 在 林子安 AnViolin Youtube 的最佳解答
■ 更多林子安:
INSTAGRAM:https://www.instagram.com/an__official/
FACEBOOK:https://www.facebook.com/Anviolin/
WEIBO:http://weibo.com/u/6511795600
Spotify:https://spoti.fi/2XmfcLw
各式工作演出邀約請私訊IG或臉書專頁
For business, please send private message to my Instagram or Facebook fan page.
■ 更多【Cover by AnViolin】:https://bit.ly/2vWVtF5
■ 更多【AnViolin Vlog】:https://bit.ly/326J9Q9
🎶樂譜連結 Sheet Music🎶
https://gumroad.com/anviolin
(台灣請用蝦皮)https://shopee.tw/anviolin
--
大家喜歡的一日系列❤️
今天帶大家直擊我之前去參加TEDxNCU演講的幕後花絮!
這次演講真的非常認真準備,回顧了一路走來的點滴,看到當初想創造自己舞台的那股心動。
初次登上八三夭的萬人演唱會擔任開場solo,聽著底下的粉絲熱情尖叫,確定了自己想要的舞台。
去年差不多這時候,我準備著到法國亞維儂藝術節接受挑戰!
印象最深的是,在街頭沒有雜念地用音樂訴說著我的故事,張開眼睛發現被滿滿滿滿觀眾包圍。
感謝TEDxNCU讓我有機會回頭看看那個曾以為是人生休止符,其實是自己用音樂轉動出的日常,而再度開啟的樂章。最後~~~也謝謝一路以來陪我到10萬訂閱的各位😗
歡迎大家在沒有下雨的週末到信義區香堤大道,聽cover歌曲的live版!詳細演出相關資訊,我都會更新在我的Instagram 限時動態!
--
Here comes my vlog #AnViolinTimes !!!
Let's go to the behind stories of my TEDxNCU.
I took the TEDxNCU event sooo seriously. When preparing for the lecture on Sunday, I was like throwing back to those tiny pieces moments that make me stand in front of the audience and the heartbeats calling me to stand on my own stage.
Also, I was reminded of the moment when being the opening solo violinist for 831's concert and listening to the fans screaming and yelling and cheering enthusiastically.That was exactly the moment I decided and knew that it's the stage I always long for.
For last year around July, I was preparing the 2019 Festival d'Avignon in France!
What impressed me the most was that when telling my story to the audience there with my eyes closed and only through my strings , I found out I was surrounded by the audience later.
Thank TEDxNCU for the opportunity to look back at the once thought the rest in my life, but actually it was another chapter created by myself with my own stage playing the violin for people.
Last but not least, thank you all of course for the 100K subscriptions 😗
Should you have any request regarding cover songs, just comment below and let me know.
Also please share the video and subscribe to my channel https://bit.ly/2EsTGMQ.
Don't forget to click the 🔔 bell to be notified when my videos come out!
Visit me at Taipei Shin Kong Mitsukoshi Xinyi Plaza to enjoy more my live cover songs. Check it out details on my Instagram stories!
--
小提琴 Violin: 林子安 Lin Tzu An
攝影師剪接師 Photographer & Film editor: Santon.W
文字編輯 Social media editor/manager: Lily Wu
--
🎻Sponsor AnViolin🎻
如果你喜歡我的影片的話,歡迎贊助我,讓我有更多資源去提升畫面與音樂。
贊助連結:
(台灣請用歐付寶)歐付寶:https://p.opay.tw/77sBF
(Via Paypal)Sponsorship:https://www.paypal.me/Anviolin
--
【Cover by AnViolin】每週上傳新的小提琴cover影片,
喜歡的話請訂閱我的頻道 https://bit.ly/2EsTGMQ
也記得開啟🔔訂閱通知,按讚留言分享給你家人朋友看!
還想看子安cover什麼歌?留言跟我說 !
--
#一日系列
#AnViolinTimes
#DaywithAnViolin
#AnViolinBehind
#AnViolin
#CoverSong
#ViolinCover
#CoverByAn
#林子安
#林子安小提琴
taipei times front page 在 林子安 AnViolin Youtube 的最佳解答
■ 更多林子安:
INSTAGRAM:https://www.instagram.com/an__official/
FACEBOOK:https://www.facebook.com/Anviolin/
WEIBO:http://weibo.com/u/6511795600
Spotify:https://spoti.fi/2XmfcLw
各式工作演出邀約請私訊IG或臉書專頁
For business, please send private message to my Instagram or Facebook fan page.
■ 更多【Cover by AnViolin】:https://bit.ly/2vWVtF5
🎶樂譜連結 Sheet Music🎶
https://gumroad.com/anviolin
(台灣請用蝦皮)https://shopee.tw/anviolin
--
灌籃高手《想大聲說我喜歡你 君が好きだと叫びたい》小提琴版本
| Violin cover by Lin Tzu An of Want to Shout out I Love You, Slam Dunk OST
週日去演講的時候,回顧了一路走來的點滴,好像又看到當初想創造自己舞台的那股心動。
所以今天就決定cover這首熱血歌了!
說到籃球經典漫畫或動畫,一定會提到灌籃高手;
那這首片頭曲應該就是經典中的經典了,就算沒看過漫畫或動畫也一定聽過(只是不知道歌名)。
在爆笑又淚流滿面中有著青春的悸動,在汗水中跌倒爬起,熱情和執著是永恆的。
有夢想的人要繼續有夢想,無論是什麼,希望接下來的日子都能活成自己想要的樣子最愛的樣子。
歡迎大家在沒有下雨的週末到信義區香堤大道,聽cover歌曲的live版!詳細演出相關資訊,我都會更新在我的Instagram 限時動態!
--
When preparing for the lecture on Sunday, I was like throwing back to those tiny pieces moments that make me stand in front of the audience and the heartbeats calling me to stand on my own stage. The music of today's cover kept playing in my brain so here it is !!!!
When it comes to classic basketball comics or animations, Slam Dunk is definitely mentioned;
so you can say this OST should be the classic of the classics, even for those who haven’t read the comics or watched animations (you just don’t know the name of this song).
There are tears in the midst of laughters in our young times.
We fell but we stood up again with our enthusiasm and perseverance.
Therefore, have your dreams in your heart, and whatever the dreams are, just live in the way we love the most, the way we want to live in the future, without regret.
Should you have any request regarding cover songs, just comment below and let me know.
Also please share the video and subscribe to my channel https://bit.ly/2EsTGMQ.
Don't forget to click the 🔔 bell to be notified when my videos come out!
Visit me at Taipei Shin Kong Mitsukoshi Xinyi Plaza to enjoy more my live cover songs. Check it out details on my Instagram stories!
--
編曲Arrange:林子安 Lin Tzu An
混音Remix:林子安 Lin Tzu An
小提琴 Violin: 林子安 Lin Tzu An
攝影師剪接師 Photographer & Film editor: Santon.W
文字編輯 Social media editor/manager: Lily Wu
--
🎻Sponsor AnViolin🎻
如果你喜歡我的影片的話,歡迎贊助我,讓我有更多資源去提升畫面與音樂。
贊助連結:
(台灣請用歐付寶)歐付寶:https://p.opay.tw/77sBF
(Via Paypal)Sponsorship:https://www.paypal.me/Anviolin
--
【Cover by AnViolin】每週上傳新的小提琴cover影片,
喜歡的話請訂閱我的頻道 https://bit.ly/2EsTGMQ
也記得開啟🔔訂閱通知,按讚留言分享給你家人朋友看!
還想看子安cover什麼歌?留言跟我說 !
--
#想大聲說我喜歡你
#SlamDunkOST
#君が好きだと叫びたい
#BAAD
#SlamDunkViolin
#灌籃高手小提琴
#AnViolin
#CoverSong
#ViolinCover
#CoverByAn
#林子安
#林子安小提琴
taipei times front page 在 Taipei Times | Facebook 的推薦與評價
Taipei Times, Taipei, Taiwan. ... The Taipei Times covers the entire spectrum of life in Taiwan,... ... Cover Photo: Taipei Times's photo. ... <看更多>