2020年參與的 #釜山雙年展 Busan Biennale : Words at an Exhibition 《열 장의 이야기와 다섯 편의 시》,由Gray Center for Arts and Inquiry策劃,5/22 - 6/14 在美國芝加哥大學的戶外Logan Center展出。
The Busan Biennale :
The Chicago Chapter presents: 11 Musicians for 11 Writers Outside at the University of Chicago's Logan Center for the Arts, May 22- June 14th, 2021.
~ Eleven musicians create discrete sound works responding to eleven texts~
Free and open daily.
Featuring original musical compositions from the 2020 Busan Biennale by Odæri, Say Sue Me, Kim Ildu, Choi Taehyun, Elias Bender Rønnenfelt, J-Tong and JinHah, Søren Kjærgaard, Astrid Sonne, 食品まつり a.k.a FOODMAN, Meuko! Meuko!, and a video work by Kim Gordon.
After premiering their first stanza on March 5 with a virtual conversation featuring artists Kim Gordon and Kim Heecheon, followed by the second stanza, a live-stream concert by Busan-based rock band Say Sue Me, the Busan Biennale: The Chicago Chapter presents 11 Musicians for 11 Writers Outside at the Logan Center for the Arts, an in-person series of eleven discrete sound works installed at the University of Chicago Logan Center for the Arts.
Displaced from its original site at the Busan Biennale, The Chicago Chapter brings eleven sound works to the Logan Center for the Arts to be enjoyed as one ambulates the grounds. Each musical piece was created in response to the city of Busan and commissioned text by authors also included in the biennale. 11 Musicians for 11 Writers Outside a hymnal of exchange between the two cities.
The Busan Biennale: Words at an Exhibition 《열 장의 이야기와 다섯 편의 시》 an exhibition in ten chapters and five poems was conceptualized and curated by Jacob Fabricius. The Chicago Chapter is organized by Stephanie Cristello, Curatorial Advisor to the 2020 Busan Biennale and the University of Chicago’s Richard and Mary L. Gray Center for Arts and Inquiry’s Zachary Cahill and Mike Schuh.
Presented by the Richard and Mary L. Gray Center for Arts and Inquiry at the University of Chicago, Busan Biennale, Kunsthal Aarhus, the Center for East Asian Studies, and The Empty Bottle. @busanbiennale @emptybottle KUNSTHAL AARHUS , UChicago Arts @ihouse_chicago @uchicagomusic @dova_uchi @porksaladpress @scristello 303 Gallery
同時也有110部Youtube影片,追蹤數超過10萬的網紅bobbyjudo,也在其Youtube影片中提到,That time someone tried to tell me that Japan invented the handjob on national television. Find Bobby at: https://www.buymeacoffee.com/bobbyjudo http...
「conversation exchange」的推薦目錄:
- 關於conversation exchange 在 Facebook 的最讚貼文
- 關於conversation exchange 在 Taipei Ethereum Meetup Facebook 的最佳貼文
- 關於conversation exchange 在 Facebook 的最讚貼文
- 關於conversation exchange 在 bobbyjudo Youtube 的精選貼文
- 關於conversation exchange 在 bobbyjudo Youtube 的精選貼文
- 關於conversation exchange 在 bobbyjudo Youtube 的精選貼文
- 關於conversation exchange 在 語言交換經驗談| How to Have a Successful Language Exchange 的評價
- 關於conversation exchange 在 Conversation Exchange - 首頁| Facebook 的評價
- 關於conversation exchange 在 Language learning with native speakers - Pinterest 的評價
conversation exchange 在 Taipei Ethereum Meetup Facebook 的最佳貼文
📜 [專欄新文章] 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.
👏 歡迎轉載分享鼓掌
conversation exchange 在 Facebook 的最讚貼文
聊英語學習線上資源
小風雖然兩歲就到了加拿大,但因為我們在家仍使用華語,小風上學以前英文的使用能力很有限,她聽得懂,但比較說不出口。當時的聽力是來自每天20-30分鐘的卡通,我們常去圖書館借卡通回來,她最愛的是PAW Patrol系列,這系列動畫是加拿大當地製作的影片,使用的語法、發音、價值觀等都非常道地。
她非常愛寫,逛街看到習寫的練習本都央求要買回家,最初我只同意幫她買運筆練習,但無法滿足她,我又蒐羅了林希陶與許正典的《提升孩子專注力》全系列,大大滿足了小風對於紙上活動的需求。
說的能力,大約到了念Preschool(中班)和Kindergarten(大班),才慢慢建構出來。Kindergarten下學期,由於COVID疫情爆發,全面改線上學習,學校要求孩子每天能至少花20分鐘在數學、20分鐘在英文,週一至週五導師還會派一些活動要小朋友完成後,錄音或錄影回傳。小風自我要求高,當時影片經常是一錄再錄,直到她滿意為止。(媽媽我常在一旁口吐白沫,有時候還得拜託她讓我幫她剪接。)
發音規則在Preschool和Kindergarten老師都略略教過,大約到Kindergarten,小風可以藉由拼讀念出書裡的文字來連結生活裡的語言,進而知道故事裡在說什麼,但是速度上非常卡,非常緩慢。那時連圖書館都因疫情關閉,我們只能從學校提供的英文線上學習網站閱讀英文書。
沒想到Epic這網站上的書是海量之多,不少受孩子歡迎的知名童書也讀得到,小風非常喜愛。有時候她會從適合她年齡的分級來選書,有時候她會從”Read to me”(讀給我聽)裡面來選書,適齡的童書每本文字量不多,只要上午讀三本、下午讀三本,一天下來就至少六本,三個多月就能讀六七百本。
到了學期末,我發現她的閱讀能力大大提升,因為腦子裡吸收了大量字彙,連帶說的能力也進步了。
進入一年級後,除了epic,老師又提供了小雨學EAL(英語為第二語言)時用過的學習網站Raz-kids,兩者並行。小風有時候會一邊和阿嬤視訊,一邊在線上讀英文書給阿嬤聽,同步翻譯。
epic和Raz-kids是學校認可的英語學習網站,都具有嚴謹的分級系統,能夠循序漸進有效率的學習,而且這些都是正版授權的網站,內容也有所把關。
最近讀者來信與我討論了孩子線上學英文的問題,我整理幾個線上資源,提供讀者參考:
1.Epic (需付費,可試用)
這個網站是我們家兩位女孩心中的第一名,數量龐大、分級清楚,提供Quiz(測驗題)測閱讀理解,可以讀、可以聽,也有影片,孩子說上面包含Fiction(虛構故事)與Non-fiction(非虛構主題),題材多元且有趣。
小風的英文閱讀能力得以大爆發,可說九成來自epic的貢獻。
非常推薦!
2. Raz-kids(需付費,可試用)
這個網站可以練讀、練聽、練說,也有Quiz(測驗題)測閱讀理解,是學習EAL小朋友必用的網站,以Non-fiction(非虛構主題)為主,是認認真真學英文的地方。
和Epic相比,多了對發音的要求,使用者必須跟著故事錄下自己的發音。
一般的孩子要花三至四年上EAL,小雨因為在臺灣就有不錯的基礎,上了兩年就從EAL畢業,那兩年Raz-kids是她很喜歡的網站。
小風因為自小在加拿大當地唸書,就不用再上EAL。這兩個網站相比,她更喜歡Epic。
3.conversation exchange(免費)
如何練習道地聽和說的能力?
現在線上直接和英文母語者學習的網站選擇很多,但說實話,多數都只是提供一個平台媒合老師和學生,老師是否適合或投緣,還是要試上看看比較準。
倘若不大確定,預算上也不太寬鬆,也許可以考慮使用”conversation exchange”,上頭來自世界各地的母語人士想學外語,正如我們想學道地英語,國外想學道地華語的人也不少,一位陪我練英文、我陪他練華語的美國朋友,就是在這個網站搭上線的。
值得提醒的是,美式、英式、澳洲紐西蘭的英語發音與用語都不一樣,您可能得先想想看,您想學的英語,是哪個地方的英語?就像中國的普通話和臺灣的華語,在發音和用語都有所不同。英語也是一樣。
還有讀者問我們家孩子喜歡的英文書?在海外怎麼學華語?小雨在臺灣時的英語學習經驗?且聽我下回分解。
===
延伸閱讀:
線上學習資源epic!
http://rainymom.com/epic/
===
相關網站:
Epic
https://www.getepic.com
Raz-kids
https://www.raz-kids.com
conversation exchange
https://www.conversationexchange.com/index.php?lg=en
conversation exchange 在 bobbyjudo Youtube 的精選貼文
That time someone tried to tell me that Japan invented the handjob on national television.
Find Bobby at:
https://www.buymeacoffee.com/bobbyjudo
https://twitter.com/BobbyJudo
and check out weekly podcasts about Japan at
https://japanbyrivercruise.com
LICENSE CERTIFICATE: Envato Elements Item
=================================================
This license certificate documents a license to use the item listed below
on a non-exclusive, commercial, worldwide and revokable basis, for
one Single Use for this Registered Project.
Item Title: Jazzy Soul Hip Hop
Item URL: https://elements.envato.com/jazzy-soul-hip-hop-VZ4TPFK
Item ID: VZ4TPFK
Author Username: LoopsLab
Licensee: Ollie Horn
Registered Project Name: Bobby's YouTube
License Date: September 4th, 2021
Item License Code: BQV8DPCWL2
conversation exchange 在 bobbyjudo Youtube 的精選貼文
Here's what's going to be happening on this channel!
Hear about being kind of famous in Japan with "Medium-size in Japan."
Puzzle through translation choices with "Learn Japanese w/Netflix."
Watch a generic jvlog with "Generic JVlog."
Make some jokes about Japanese stuff with "JBRC Presesents."
And meet some fascinating people with some cool insight into Japan on "Look! A Guest!"
Find Bobby at:
https://www.buymeacoffee.com/bobbyjudo
https://twitter.com/BobbyJudo
and check out weekly podcasts about Japan at
https://japanbyrivercruise.com
conversation exchange 在 bobbyjudo Youtube 的精選貼文
A comprehensive rundown of everything that went wrong on the way to the Tokyo 2020 Olympics, presented by Japan By River Cruise hosts, Bobby Judo and Ollie Horn.
More like this every week at:
https://japanbyrivercruise.com
Featuring Lying on the Olympic Bid, Buying Your Own Hype, Plagiarized Logos, Wacky Mascots, Bribery, Toilet Water, Heat Stroke, the Coronavirus, Coverups, Misogyny, Sexism, Racism, A Rapidly Aging Population, Zero Infrastructure, the Torch Relay, Evil IOC millionaires, Exploitative Contracts, DICK POUND, Thomas Bach, Poor Planning AND Poor Decision Making, Volunteers Quitting, Horrible Sponsorships, Infected Athletes, Super Mario Abe, Medical Worker Shortages, Anti-Japanese Sentiment, The Japanese People Turning Against the Olympics, Misallocated Vaccinations, Climate Crises, Alcohol Bans on everyone except The Olympics, Strong-arming Elementary School Children, a Missing Ugandan, a Fifth Wave, a FOURTH State of Emergency, a Spectatorless Olympics, AND MORE.
With contributions from:
Jake Adelstein
Dr. Alexandra Hambleton
Atsuro Tsujino
Rochelle Kopp
Brian in Fukuoka @mytwoyen
Graphics and Editing (except for the terrible parts, that was Bobby) by Luqman Hadi
Thanks to https://abandonedkansai.com for letting us use their toilet pictures.
conversation exchange 在 Conversation Exchange - 首頁| Facebook 的推薦與評價
Conversation Exchange 。 10567 個讚· 4 人正在談論這個。 Language Exchange CommunityThrough ConversationExchange.com you can have three types of language... ... <看更多>
conversation exchange 在 Language learning with native speakers - Pinterest 的推薦與評價
Apr 13, 2018 - Through Conversation Exchange you can have three types of language exchange: face to face conversation by meeting up with native speakers, ... ... <看更多>
conversation exchange 在 語言交換經驗談| How to Have a Successful Language Exchange 的推薦與評價
... <看更多>