🌻
美國聯準會(Fed)在美東時間22日下午2時(台灣23日凌晨2時)宣布利率維持在趨近零的水準,但暗示升息可能會比預期來得快一些,同時也大幅下修今年的經濟展望。
https://udn.com/news/story/6811/5764746
🌻Adobe(ADBE)電話會議內容讀後感
ADBE前兩天發表財報了.
這次ADBE在財報後下跌, 主要是兩個原因(如下). 不過個人覺得是瑕不掩瑜:
1. 因為之前已經漲了不少(投資人期望太高)
2. 因為Digital Marketing這部分的業務受到季節性的影響, 所以表現不是很突出(沒有比預期高出很多)
a. net new Digital Media ARR (3% beat vs guide, vs 15% beat in 2Q21 vs 35% beat in 3Q20).
b. 有分析師在問(“Maybe just -- can we double-click on the seasonality commentary in the quarter? Because if we look at the beat versus guidance on net new digital media ARR, it looks, at the same time you had the weakest beat, but then the strongest guide in the last three years, which kind of speaks to and confirm some of those seasonality comments that you made.)
i. 高層對此的回答是, 主要是疫情後, 加上正值夏季, 大家的日子回復到正常&放假外出, 所以這部分的業務有受到影響(I think going into the quarter, we had expected that the consumer with a little bit more return to normalcy as what's happening in the environment.)
ii. 高層又說了一些話, 不過重點就是他不認為這是甚麼大事”So, net-net, I would say that the growth prospects for that particular business and the growth drivers remain intact. But again, very much in line. And this is what we feel good about the insights that we're getting on the business.”
iii. 也提到, Q4通常會是digital marketing業務的旺季(表現會不俗的意思)
另外, 覺得這次令我印象深刻的是, 當高層與分析師提到這些事情:
• 常在一些公司的電話會議中提到omnichannel這個字(疫情後, 更明顯了). 這次高層也有提到. ADBE可說是omnichannel概念股:
o “I mean, a big part of that is more and more companies are thirdly doing the multi-channel omnichannel, whatever they want to call it. And I think that's only going to continue to be a driver of our Digital Experience Solutions. Because today that stable stakes and so we just look at it and say whether you're shopping in-store over they are shopping online. You need a solution that treats you like a customer that we know of.”
• 網路上影片(video)的興起, 以及串流影音, 有提高了Adobe的營收天花板(用句分析師的術語, 就是TAM (total addressable market) expansion.
• 當使用者製作了越來越多的內容, 內容管理(content management)的能力就越顯重要, 內容上的流程管理(workflow)也越顯重要. Adobe的產品能夠幫內容製作者解決這樣的問題.
• 而Adobe各產品間的相容性, 標準化, 整合能力, 是它的競爭優勢之一:
o And one of the things we did really well is what we called our named user deployment and how, you know, when we have these enterprise licensing agreements, we offer enterprises the ability to download and distribute within the companies. And the more we do training and evangelism of the products, that leads to adoption. So, I would say there's an element of standardization, there's an element of more content.
而最近ADBE有個新聞, 引起了我的注意, 就是它即將在自己的平台上, 提供付款服務(payment service). 根據之前研究SHOP的經驗, 這有可能會對股價造成一定的漲幅:
On Sept. 15, Adobe announced that it will add payment services to its e-commerce platform this year to help merchants accept credit cards and other ways of paying. The move will deepen Adobe's rivalry with e-commerce firm Shopify (SHOP).
For the service, Adobe has partnered with PayPal (PYPL), which will process a variety of payment types, including credit and debit cards as well as PayPal's own payment and buy-now-pay-later offerings.
https://www.investors.com/news/technology/adbe-stock-adobe-beats-fiscal-q3-targets/
接下來該怎麼辦? 對於基本面良好的公司如ADBE, 我能說的就是buy the dip(逢低買進)了. 供參.
🌻The Facebook Files
一個星期前, WSJ上面有個關於FB的大篇幅調查報導. 有興趣的可以看看.
The Facebook Files
https://www.wsj.com/articles/the-facebook-files-11631713039
這篇文章挺長, 也沒有看到華爾街中文版本的完整翻譯, 不過可以看看這篇:
https://on.wsj.com/2ZmFimp
"《華爾街日報》的相關調查顯示,這家社交媒體巨頭心知肚明,其平台會傷害用戶,而且是以該公司常常完全了解的方式造成傷害。目前,全球近半數人口都是Facebook旗下平台的用戶。其中一些證據尤其令人不安:據《華爾街日報》報導,Facebook的內部研究顯示,在報告稱有過自殺念頭的青少年中當中,有13%的英國用戶和6%的美國用戶把這種念頭歸結於Instagram。"
另一篇相關新聞:
https://www.thenewslens.com/article/156683
"《華爾街日報》於13日揭露Facebook的XCheck系統,也就是內部系統中的VIP名單,數百萬名人、政治人物與記者等知名公眾人物都在特別的一份「白名單」之內。"
"這些「貴賓」在社群上發布的內容可以躲過一般的審查系統,即使發布明顯的不當內容,也不會立即被刪除。《衛報》報導,Facebook的獨立監督委員會表示,在閱讀該篇報導後,決定要審查XCheck系統,並要求Facebook對其進行報告與解釋。"
🌻我喜歡的Apple TV影集, "Ted Lasso", 是這次艾美獎的大贏家, 很多主要演員都得獎了.
很高興這兩年, 因為有這部戲的陪伴, 讓我撐過了疫情, 家人離世, 以及一些烏煙瘴氣的事情.
前幾天看演員的得獎影片, 一位娛樂記者問得獎的男配角(也是編劇之一)說, 你覺得這部片的核心思想是甚麼. 他說, be curious, not judgemental.
就像得獎的女演員在劇中一開始是很鴨霸很壞心的球隊主人, 但這樣做是因為被前夫傷透了心, 所以想要弄垮離婚後分到的財產(也是前夫的最愛--球隊); 外表看起來永遠陽光燦爛做啦啦隊的男主角, 在青少年時父親自殺, 造成了他心裡永遠的痛&障礙(讓他在球賽時, 會有突發恐懼症).
我們每個人其實都有很多面, 很多個故事. 尤其在社群, 大家都是萍水相逢, 對彼此的了解都是非常片面的; 而有時候在社群裡, 看到有人會因為只看到一個面向, 就去下斷語. 這其實是人之常情很難避免, 所以我們需要常用第二層思考去提醒自己. 社群裡需要更多的同理心.
“Be curious, not judgmental” – Walt Whitman(惠特曼)(美國詩人)
Picture來源:
https://www.apple.com/newsroom/2021/09/apples-global-hit-comedy-series-ted-lasso-sweeps-the-2021-primetime-emmy-awards-scoring-history-making-win-for-outstanding-comedy-series/
同時也有278部Youtube影片,追蹤數超過11萬的網紅Lukas Engström,也在其Youtube影片中提到,The first 1,000 people to use this link will get a 1 month free trial of Skillshare: https://skl.sh/lukasengstrm09211 Do you want to see MORE videos ...
「kind of中文」的推薦目錄:
- 關於kind of中文 在 貓的成長美股異想世界 Facebook 的最佳解答
- 關於kind of中文 在 Eric's English Lounge Facebook 的最讚貼文
- 關於kind of中文 在 D.A. Facebook 的最佳解答
- 關於kind of中文 在 Lukas Engström Youtube 的精選貼文
- 關於kind of中文 在 Lukas Engström Youtube 的最佳貼文
- 關於kind of中文 在 Lukas Engström Youtube 的最佳貼文
- 關於kind of中文 在 TOEIC OK News, profile picture - Facebook 的評價
- 關於kind of中文 在 電影『比悲傷更悲傷的故事More Than Blue 』主題曲 - YouTube 的評價
- 關於kind of中文 在 YouTube Data API Overview | Google Developers 的評價
kind of中文 在 Eric's English Lounge Facebook 的最讚貼文
翻轉視界 18 Changing Perspective
There's not just one road to the destination, but many roads. You just need to take the little step that’s right in front of you, and then the next one, and a few years down the track, they will seem like massive achievements.
通往目的地的路不止一條,有很多路可走。你只需要邁出眼前這一小步,然後再邁出下一步,幾年下來,將會成為巨大成就。
文章來自於New Humans of Australia (有取得授權)
★★★★★★★★★★★★
I didn’t meet my father until I was 6 years old. My parents had a comfortable, middle-class life in Shanghai, or as close as you could get under communism. But they always wanted to live overseas, and just before I was born, my dad came to Sydney to set things up. I don’t know why, but in the end, my mother and I didn’t join him until I was 6.
•a middle-class life 中產階級生活
•set things up 打點一切
•live overseas 往海外生活
•in the end 最後 (表達在經過一段時間或一連串事件之後的結果)
直到六歲前我都未曾見過父親。我的雙親在上海過著舒適的中產階級生活,或著說,在共產階級下所能得到的最接近的生活。他們一直響往海外生活,就在我出生前,我父親來到雪梨打點一切。但不知何故,直到六歲那年我與母親才終於與父親團聚。
★★★★★★★★★★★★
Unfortunately, half a year after we arrived, he left us. That was a huge shock. Our transition had already been quite difficult, as we both didn't speak English. Also, as Shanghai was such a big bustling city, Sydney felt a bit like the countryside, especially on the weekends, as no shops were open back then!
•shock 令人震驚的事件(或經歷);驚愕,震驚 (come as a great shock 讓人倍感震驚)
•transition 轉變;過渡
•a bustling city 繁華都會
不幸的是,就在我跟母親抵達半年後,父親離開了我們。這是個巨大的打擊,因爲我們不會說英文,在適應過渡期本就已過得相當艱辛。此外,不同於上海的繁華都會,雪梨更像鄉下,尤其在週末,那時連商店都不開門。
★★★★★★★★★★★★
We were very much reliant on my dad, not only financially, but also as a conduit into the wider community. So to have that broken was quite distressing. I remember Mum crying a lot. As we had become socially isolated, we didn’t find out anything about Centrelink, so we survived on her savings for a while, and then got some help from her family back in China.
•be reliant on… 依賴...
•a conduit into 進入...的渠道
•distressing (adj.) 令人苦惱的,令人擔憂的
•become socially isolated 變得孤立於社會
•survive on her savings 僅靠的她積蓄過日子
我們相當依賴我父親,不僅是經濟,他也是我們進入更廣泛社區的渠道。因此,當局面被打破時令人相當痛苦,我還記得母親時常哭泣。由於我們孤立於社會,所以我們並不知道澳洲社會福利聯絡中心 (Centrelink)的任何資訊,僅靠母親的積蓄支撐了一段時間,然後從母親在中國的娘家得到一些幫助。
★★★★★★★★★★★★
Eventually, Mum moved us down to Melbourne, where we were able to make some new networks and family friendships. But I was bullied a bit at school about things like my food and clothing! Whenever someone bullied me, I would defend myself, but because I didn’t have the language skills to explain to the teacher why, I got in trouble quite a bit. I ended up having to move school 3 times before I came to Balwyn Primary School, which was relatively multicultural.
•be able to 能夠
•make new networks 建立新的人脈,關係網
•be bullied 被霸凌
•language skills 語言能力
•get in trouble 惹上麻煩
•end up 最後處於;最後成爲;以…告終
•relatively 相對地
•multicultural 多元文化的
最後,母親帶著我搬遷到墨爾本,在那我們能夠建立起新的網絡與家庭情誼。然而。我在學校飽受霸凌,例如我的食物及衣物。每當有人霸凌我,我會自我防衛,但我的語言技巧不足以向老師解釋事發原因,因此常常陷入麻煩。後來我不得不再三轉學,直到就讀相對多元文化的博文小學(Balwyn Primary School)。
★★★★★★★★★★★★
After that, I did alright. Music featured very prominently in my life. I had started learning the violin from the age of 2.5 years old and even with all the troubles that were going on in my life, had somehow still kept up with it. As a result, I got a music scholarship to Trinity Grammar School. But even there I used to get into quite a lot of mischief, and would often skip school to go to the movies.
•do alight 過得不錯,做的不錯
•feature (v.) 以…為特色;給…以顯著的地位
•prominently 重要地;著名地;突出地,顯眼地
之後,我便過得不錯。音樂在我生活中佔有重要的一席之地,我從兩歲半開始學習小提琴,儘管生活中事事不如意,我依然堅持不輟。因此,我獲得三一文法學校( Trinity Grammar School)的音樂獎學金。但即使在那,我也常惡作劇、逃學看電影。
★★★★★★★★★★★★
By the end of year 11, I was told I would have to either repeat the year, or consider going to another school, which was quite humiliating for my mum. I decided to move school and surprisingly, I ended up doing quite well in year 12! As a result, I ended up getting into a double degree in Law and Music at Monash.
•repeat the year 留級 ; 重唸一年
•humiliating 令人感到恥辱的,丟臉的
11年級結束時,我被告知要麽被留級,要麼考慮轉學,這對我母親來說相當丟人。我決定轉學,而令人驚訝的是,我在12年級的時候表現優異,最後錄取蒙納士大學法律與音樂雙學位。
★★★★★★★★★★★★
When I started, my first thought was that I didn’t belong because I had done so badly in school up to year 11 and everyone else seemed so smart. But I put my head down, got through it, and ended up getting a job in the legal department of a major manufacturing company, which was a different approach to what most law students do.
•do not belong 不屬於這
•put my head down 埋頭苦幹
•the legal department of ...的法律部門
•a different approach 不同途徑
•approach (思考問題的)方式,方法,態度
當我開始進入大學,最初的想法是我不屬於這,因為我在11年級前都表現不佳,而這裡的人似乎都聰明絕頂。但我埋頭苦幹,咬牙撐過,最後在一家大型製造公司的法律部門找到工作,這與多數法律系學生的途徑不同。
★★★★★★★★★★★★
I really enjoyed it. It was hard work, but I learned a lot of foundational business, legal and corporate communication skills. After that I worked in corporate governance in RMIT, then started to moonlight as a lecturer in the Law Faculty. Eventually, they asked me if I wanted to do a PhD and I blindly said yes! I next worked at Swinburne University, and then was head-hunted to lead the corporate legal team at the Commercial Passenger Vehicles Commission.
•foundational 基礎的
•communication skills 溝通技巧
•corporate governance
•moonlight (v.) (尤指瞞著僱主)從事第二職業,兼職
•headhunt (v.) 物色(人才); 挖角
•legal team 法律團隊
我非常喜歡這份工作,這是份辛苦的工作,但我學習了很多基礎商業、法律以及公司溝通技巧。之後我在皇家墨爾本理工大學( RMIT)從事公司治理工作,並開始兼職擔任法律系講師。後來他們問我是否想要讀博士,我便盲目地答應了。接下來,我在斯威本大學(Swinburne University)工作,再被挖角到商用小客車委員會領導法律團隊。
★★★★★★★★★★★★
I had a good life, but after a while, I realised I wanted a different kind of job. I could see my seniors were making a lot of money but that their family life was not that good. And looking at my own upbringing, I wanted to be the kind of father who could be present in my own kids’ lives. So I decided on dentistry. It would not only allow me to use the hand skills that I had developed from playing the violin, but also the analytical and reasoning skills that I'd developed in law. Plus it would be flexible, and offer me a stable income and the chance to meet different people every day!
•upbringing 教養
•decide on sth 決定某事或東西
•analytical and reasoning skills 分析和推理能力
•offer a stable income 提供穩定收入
我的生活很不錯,但一段時間後,我意識到自己想要一份不同的工作。我知道前輩們賺了很多錢,但他們的家庭生活並不美滿。看著自己的成長經歷,我想要成為可以在孩子生活中出席的父親,所以我決定改行當牙醫。這項職業能讓我使用從拉小提琴中發展出的手部技巧,也能運用我在法律中發展出的分析與推理技能。此外,這個職業相當靈活,能為我提供穩定收入,並有機會每天與不同的人見面。
★★★★★★★★★★★★
My now fiancée, who was my girlfriend at the time, was also applying for further study, and coincidentally we both got into university in South Australia, so we moved to Adelaide together a few years ago.
•fiancée 未婚妻
•at the time 當時
•apply for 申請
•further study 繼續教育,進修;進一步研究;深造
•coincidentally 碰巧地;巧合地
我的未婚妻,當時的女友,也申請繼續深造,巧的是我們都考上南澳大學(University of South Australia),所以幾年前一起搬到阿得雷德( Adelaide)。
★★★★★★★★★★★★
I was lucky to get a university job at Flinders University. Initially, I started out as a casual lecturer in the law school, but I’ve since transitioned into teaching health law and research, and I’m currently writing a few books on the intersection between law and medicine. And also, obviously, trying to finish my dentistry degree!
•start out as… 起初擔任...
•transition into… 轉變到...
我很幸運的在福林德斯大學(Flinders University)找到工作,起初我在法學院擔任臨時講師,但我後來轉換到醫事法教學及研究。目前我正撰寫幾本關於法律與醫學相接的書籍,並努力完成我的牙醫學位。
★★★★★★★★★★★★
Mum eventually retrained as a Chinese high school teacher, and she’s still teaching to this day. Like most first generation migrants, she struggled quite a lot, and invested heavily in my success. After we’re married, my fiancée and I are planning to have children, and I’m sure they will have it much easier than I did.
•retrain 重新培養;再培訓;再訓練
•to this day 至今
•first generation migrants 第一代移民
•struggle a lot 掙扎奮鬥許久
•have it much easier 過的比較輕鬆
我的母親最終重新接受培訓,成為一名中文高中老師並執教至今。如同大多數第一代移民,她掙扎奮鬥許久,並為我的成功投資甚多。我與未婚妻打算婚後生孩子,我確信孩子會過的比我輕鬆得多。
★★★★★★★★★★★★
Still, a lot of the failures that I’ve had in my life have really informed a lot of my successes. Looking back, I wouldn't really want to change that to have a smoother life.
•inform [正式] 影響某人的態度或意見
https://www.ldoceonline.com/dictionary/inform
•have a smoother life 有一個更順遂的人生
我的生活中的種種失敗確實為我的成功提供借鑑。回首過去,我不會想要改變那些坎坷經歷去擁有一個更順遂的人生。
★★★★★★★★★★★★
Over the years, I've learned that perseverance is very important. I hope that through telling my story, I can be an example to others who might be in a similar position as I was: to show that there's not just one road to the destination, but many roads. You just need to take the little step that’s right in front of you, and then the next one, and a few years down the track, they will seem like massive achievements.
•over the years 多年來
•perseverance 不屈不撓,堅持不懈
•be an example 成為榜樣
•be in a similar position 處於相似的處境
•down the road/line/track 將來(的路)
多年來,我學到堅持不懈是至關重要的。我希望透過講述自己的故事,能成為其他可能與我有相似處境的人的榜樣:向他們展示通往目的地的路不止一條,有很多路可走。你只需要邁出眼前這一小步,然後再邁出下一步,幾年下來,將會成為巨大成就。
有興趣的同學可以支持New Humans of Australia
www.patreon.com/newhumansofaustralia
Photographer: Paul Heinrich instagram.com/paulfheinrich
文章與圖片出處: https://bit.ly/2XJsciq
★★★★★★★★★★★★
翻轉視界: http://bit.ly/3fPvKUs
批判性思考問題大全: http://bit.ly/34rdtJ7
kind of中文 在 D.A. Facebook 的最佳解答
-(中文版本往下滑!)
@lauramercier base makeup for the day!
💯Pure canvas primer hydrating
It’s the new version! I love the old one already 😍! What I look for primers is nothing but hydration, and this definitely gets the job done ✔️! Has a great scent!
💯Tinted moisturizer 1W1
The shade is too dark and orange on me🤣🤣but I like that it can be blend out by my fingers, without using brushes or sponges. Has a coverage that tinted moisturizer should be, I like more coverage so I’ll add some concealer after applying this. Super moisturized by itself that I barely need to put any skincare on before this. Oxidized a bit!
💯Translucent loose setting powder
It’s a classic that I finally get to have the chance to put my hands on it! I was kind of worried if it’s going to be too dry for me, but it’s not!!! The parts where I get oil still tends to get oil after a day 🤣 But I do like this product! ❤️
Have you tried any of their products before? What are thoughts on them?
Let me know in the comments below:)
Wish you all a lovely day!☺️
More pics👉👉👉
-
蘿拉蜜思底妝特輯!
#鎖水藍管 煥顏凝露保濕款
舊版就是我的愛用~以我一個不常使用狀前產品的人來說,妝前對我最重要的目的就是保濕!畢竟妝前保濕的重要性真的不可或缺!底妝成敗的關鍵常常要看保濕做的好不好!如果奢侈一點也可以當保養品用啦🤣有好聞的香味,肌膚可以快速吸收並且留下保濕的觸感!
#懶人霜 保濕潤色美妝蜜清爽型1W1
色號對我來說偏深偏橘🍊了一點(雖然是我自己挑的🤣,會稍微氧化,大家可以的話還是靠櫃試一下顏色啊🥺)
有化妝品原料的味道,對味道敏感的人可以去聞看看~
我最喜歡的地方是用手就可以推均勻!
不用刷具或美妝蛋~因為很保濕、延展力也很好~保濕程度是可以乾肌不用上妝前的那種🥰上完就有一種自然的光澤感~
妝感屬於自然,想打造偽素顏或是好皮膚、只想均勻膚色的人很適合!一些痘疤跟暗沈斑點沒辦法遮住,不過局部再加遮瑕就可以完成很乾淨又自然的妝容!
如果想和高遮瑕的粉底混合使用也是可以的❤️
#冠軍蜜粉 煥顏透明蜜粉
這真的無人不知無人不曉吧!
經典產品!不會改變底妝顏色!
用之前有一點點擔心乾肌會不會太乾,但完!全!不!會!
粉真的超級細會飄~的那種~
妝感很美可以很完善的定妝!
乾肌真的一點也不用擔心!(尤其現在都戴口罩很悶熱蜜粉真的不可少!)
你們有用過lauramercier的彩妝嗎?
歡迎在留言區和我分享❤️
祝大家有美好的一天~~💕
更多照片👉👉👉
#makeupklever #化粧 #アイメイク #motd💋 #dailymakeup #아이메이크업 #메이크업아티스트 #오늘의화장 #눈화장 #makeupkontent #makeupidea #makeuptoday #100daysofmakeupchallenge #wakeupandmakeupsweeps #美妝 #美妝分享 #蘿拉蜜思 #夏日鎖水運動會 #煥顏凝露 #保濕潤色美妝蜜 #煥顏透明蜜粉 #lauramercier #settingpowder #tintedmoisturizer #primer #oilfree
kind of中文 在 Lukas Engström Youtube 的精選貼文
The first 1,000 people to use this link will get a 1 month free trial of Skillshare: https://skl.sh/lukasengstrm09211
Do you want to see MORE videos like this one?
Please consider joining my YouTube channel to get access to exclusive perks and also support me as all my income will go directly back into the channel: https://www.youtube.com/channel/UCJQ4cxWeJk2eM4vVRRC9cbg/join
Don't forget to also check out the Lukas in Taiwan podcast:
Apple Podcasts:
https://podcasts.apple.com/us/podcast/lukas-in-taiwan-外國人介紹台灣/id1577985574
Spotify:
https://open.spotify.com/show/7mNfSG9wMVEP1NTI33scky?si=WhTOsIYDQv2oYQ6TRQKLzw&dl_branch=1
Please note that my Patreon now is inactive, but that you are welcome to support me there as well if my YouTube membership is not enough: https://www.patreon.com/LukasEngstrom
Please also follow me on:
Facebook: www.facebook.com/LukasTaiwan
Instagram: www.instagram.com/LukasEngstrom
If you want to send my something that might be shown in a future video, please send it to:
ATT: Lukas
RM. 2, 6F., NO.201, FUHE RD.,
YONGHE DIST., NEW TAIPEI CITY 23450,
TAIWAN (R.O.C.)
Business inquiries:
中文/English
創作者經紀人/Contact person: - Maggie
Line ID: @redi
Email: contact@lukasengstrom.com
The following is the gear I’m using when making my videos. I’m part of Amazon Services LLC Associates Program which means that I will get a small commission if you purchase anything via my links. Any commission I’ll be getting will go straight back into buying new gear for my future videos, so any kind of support is highly appreciated!
Cameras:
Canon EOS R (main camera): https://amzn.to/3fCbINR
Canon M50 (B-cam): https://amzn.to/2Tf998r
Insta360 One X 2 (Best 360 camera): https://www.insta360.com/sal/one_x2?insrc=INRAIR0
Insta 360 One R (Best 360/action cam combo): https://www.insta360.com/sal/one_r?insrc=INRAIR0
Lenses:
Canon RF 15-35mm F2.8 L IS USM: https://amzn.to/3o4N8YZ
Canon RF 24-70mm F2.8 L IS USM: https://amzn.to/34RDy1V
Canon EF 24mm f/1.4L II USM: https://amzn.to/2O0a62Y
Canon EF 50mm f/1.8 STM https://amzn.to/2O5DJA0
Canon EF-S 10-18mm f/4.5-5.6 IS STM: https://amzn.to/2X88oR7
Studio equipment:
2x Rode NT2A Microphone set: https://amzn.to/3fBoOuK
Ninja V recorder: https://amzn.to/36azTzR
SanDisk Ultra 3D 1TB SSD: https://amzn.to/36f1pfH
SanDisk Ultra 3D 2TB SSD: https://amzn.to/3fErckb
DJI:
Drone: DJI Mavic 2 Zoom: https://amzn.to/2Sak4CX
Mavic 2 Fly More Kit: https://amzn.to/2TlpLLT
Gimbal: DJI Ronin-S Handheld 3-Axis: https://amzn.to/2NG4L20
Other:
Microphone: RØDE VideoMic Pro+: https://amzn.to/2Tg9mbx
2x SanDisk Extreme Pro Memory Card (128GB): https://amzn.to/2Oi0CQX
Bag: Lowepro ProTactic BP 450 AW II:https://amzn.to/2NDbCsN
Canon EOS M Mount Adapter: https://amzn.to/2O1jH9I
Canon EF-EOS R Mount Adapter: https://amzn.to/2NDak0V
JOBY Gorillapod 3K: https://amzn.to/2S3GQfR
ADATA SD600Q SSD (240GB): https://amzn.to/2Wp28Tf
ADATA D8000L LED Power Bank: https://amzn.to/34MrlLY
Transcend ESD240C Portable SSD (480GB): https://amzn.to/2X5L7xW
Transcend ESD350C Portable SSD (480GB): https://amzn.to/32LBzeg
Transcend StoreJet 25MC HDD (1TB): https://amzn.to/2KekmUd
Transcend 128GB microSD: https://amzn.to/2tCkOmw
MacBook Pro 16”: https://amzn.to/3fElb77 Asus VP28UQG 28" 4K/UHD monitor: https://amzn.to/2CE5eeI
kind of中文 在 Lukas Engström Youtube 的最佳貼文
Check out our newly arrived Ginger shot and other drinks at: https://jbw.tw/lukas
YouTube fans get 10% off the entire store!
Do you want to see MORE videos like this one?
Please consider joining my YouTube channel to get access to exclusive perks and also support me as all my income will go directly back into the channel: https://www.youtube.com/channel/UCJQ4cxWeJk2eM4vVRRC9cbg/join
Don't forget to also check out the Lukas in Taiwan podcast:
Apple Podcasts:
https://podcasts.apple.com/us/podcast/lukas-in-taiwan-外國人介紹台灣/id1577985574
Spotify:
https://open.spotify.com/show/7mNfSG9wMVEP1NTI33scky?si=WhTOsIYDQv2oYQ6TRQKLzw&dl_branch=1
Please note that my Patreon now is inactive, but that you are welcome to support me there as well if my YouTube membership is not enough: https://www.patreon.com/LukasEngstrom
Please also follow me on:
Facebook: www.facebook.com/LukasTaiwan
Instagram: www.instagram.com/LukasEngstrom
If you want to send my something that might be shown in a future video, please send it to:
ATT: Lukas
RM. 2, 6F., NO.201, FUHE RD.,
YONGHE DIST., NEW TAIPEI CITY 23450,
TAIWAN (R.O.C.)
Business inquiries:
中文/English
創作者經紀人/Contact person: - Maggie
Line ID: @redi
Email: contact@lukasengstrom.com
The following is the gear I’m using when making my videos. I’m part of Amazon Services LLC Associates Program which means that I will get a small commission if you purchase anything via my links. Any commission I’ll be getting will go straight back into buying new gear for my future videos, so any kind of support is highly appreciated!
Cameras:
Canon EOS R (main camera): https://amzn.to/3fCbINR
Canon M50 (B-cam): https://amzn.to/2Tf998r
Insta360 One X 2 (Best 360 camera): https://www.insta360.com/sal/one_x2?insrc=INRAIR0
Insta 360 One R (Best 360/action cam combo): https://www.insta360.com/sal/one_r?insrc=INRAIR0
Lenses:
Canon RF 15-35mm F2.8 L IS USM: https://amzn.to/3o4N8YZ
Canon RF 24-70mm F2.8 L IS USM: https://amzn.to/34RDy1V
Canon EF 24mm f/1.4L II USM: https://amzn.to/2O0a62Y
Canon EF 50mm f/1.8 STM https://amzn.to/2O5DJA0
Canon EF-S 10-18mm f/4.5-5.6 IS STM: https://amzn.to/2X88oR7
Studio equipment:
2x Rode NT2A Microphone set: https://amzn.to/3fBoOuK
Ninja V recorder: https://amzn.to/36azTzR
SanDisk Ultra 3D 1TB SSD: https://amzn.to/36f1pfH
SanDisk Ultra 3D 2TB SSD: https://amzn.to/3fErckb
DJI:
Drone: DJI Mavic 2 Zoom: https://amzn.to/2Sak4CX
Mavic 2 Fly More Kit: https://amzn.to/2TlpLLT
Gimbal: DJI Ronin-S Handheld 3-Axis: https://amzn.to/2NG4L20
Other:
Microphone: RØDE VideoMic Pro+: https://amzn.to/2Tg9mbx
2x SanDisk Extreme Pro Memory Card (128GB): https://amzn.to/2Oi0CQX
Bag: Lowepro ProTactic BP 450 AW II:https://amzn.to/2NDbCsN
Canon EOS M Mount Adapter: https://amzn.to/2O1jH9I
Canon EF-EOS R Mount Adapter: https://amzn.to/2NDak0V
JOBY Gorillapod 3K: https://amzn.to/2S3GQfR
ADATA SD600Q SSD (240GB): https://amzn.to/2Wp28Tf
ADATA D8000L LED Power Bank: https://amzn.to/34MrlLY
Transcend ESD240C Portable SSD (480GB): https://amzn.to/2X5L7xW
Transcend ESD350C Portable SSD (480GB): https://amzn.to/32LBzeg
Transcend StoreJet 25MC HDD (1TB): https://amzn.to/2KekmUd
Transcend 128GB microSD: https://amzn.to/2tCkOmw
MacBook Pro 16”: https://amzn.to/3fElb77 Asus VP28UQG 28" 4K/UHD monitor: https://amzn.to/2CE5eeI
kind of中文 在 Lukas Engström Youtube 的最佳貼文
Huge thank you to @lifeintaiwan and https://www.youtube.com/c/annieaiyo for joining this video podcast talking about everything from teaching in the US, raising kids in South Africa and being recognized in Taiwan!
#Podcast #外國人介紹台灣 #HotOnes
Do you want to see MORE videos like this one?
Please consider joining my YouTube channel to get access to exclusive perks and also support me as all my income will go directly back into the channel: https://www.youtube.com/channel/UCJQ4cxWeJk2eM4vVRRC9cbg/join
Don't forget to also check out the Lukas in Taiwan podcast:
Apple Podcasts:
https://podcasts.apple.com/us/podcast/lukas-in-taiwan-外國人介紹台灣/id1577985574
Spotify:
https://open.spotify.com/show/7mNfSG9wMVEP1NTI33scky?si=WhTOsIYDQv2oYQ6TRQKLzw&dl_branch=1
Please note that my Patreon now is inactive, but that you are welcome to support me there as well if my YouTube membership is not enough: https://www.patreon.com/LukasEngstrom
Please also follow me on:
Facebook: www.facebook.com/LukasTaiwan
Instagram: www.instagram.com/LukasEngstrom
If you want to send my something that might be shown in a future video, please send it to:
ATT: Lukas
RM. 2, 6F., NO.201, FUHE RD.,
YONGHE DIST., NEW TAIPEI CITY 23450,
TAIWAN (R.O.C.)
Business inquiries:
中文/English
創作者經紀人/Contact person: - Maggie
Line ID: @redi
Email: contact@lukasengstrom.com
The following is the gear I’m using when making my videos. I’m part of Amazon Services LLC Associates Program which means that I will get a small commission if you purchase anything via my links. Any commission I’ll be getting will go straight back into buying new gear for my future videos, so any kind of support is highly appreciated!
Cameras:
Canon EOS R (main camera): https://amzn.to/3fCbINR
Canon M50 (B-cam): https://amzn.to/2Tf998r
Insta360 One X 2 (Best 360 camera): https://www.insta360.com/sal/one_x2?insrc=INRAIR0
Insta 360 One R (Best 360/action cam combo): https://www.insta360.com/sal/one_r?insrc=INRAIR0
Lenses:
Canon RF 15-35mm F2.8 L IS USM: https://amzn.to/3o4N8YZ
Canon RF 24-70mm F2.8 L IS USM: https://amzn.to/34RDy1V
Canon EF 24mm f/1.4L II USM: https://amzn.to/2O0a62Y
Canon EF 50mm f/1.8 STM https://amzn.to/2O5DJA0
Canon EF-S 10-18mm f/4.5-5.6 IS STM: https://amzn.to/2X88oR7
Studio equipment:
2x Rode NT2A Microphone set: https://amzn.to/3fBoOuK
Ninja V recorder: https://amzn.to/36azTzR
SanDisk Ultra 3D 1TB SSD: https://amzn.to/36f1pfH
SanDisk Ultra 3D 2TB SSD: https://amzn.to/3fErckb
DJI:
Drone: DJI Mavic 2 Zoom: https://amzn.to/2Sak4CX
Mavic 2 Fly More Kit: https://amzn.to/2TlpLLT
Gimbal: DJI Ronin-S Handheld 3-Axis: https://amzn.to/2NG4L20
Other:
Microphone: RØDE VideoMic Pro+: https://amzn.to/2Tg9mbx
2x SanDisk Extreme Pro Memory Card (128GB): https://amzn.to/2Oi0CQX
Bag: Lowepro ProTactic BP 450 AW II:https://amzn.to/2NDbCsN
Canon EOS M Mount Adapter: https://amzn.to/2O1jH9I
Canon EF-EOS R Mount Adapter: https://amzn.to/2NDak0V
JOBY Gorillapod 3K: https://amzn.to/2S3GQfR
ADATA SD600Q SSD (240GB): https://amzn.to/2Wp28Tf
ADATA D8000L LED Power Bank: https://amzn.to/34MrlLY
Transcend ESD240C Portable SSD (480GB): https://amzn.to/2X5L7xW
Transcend ESD350C Portable SSD (480GB): https://amzn.to/32LBzeg
Transcend StoreJet 25MC HDD (1TB): https://amzn.to/2KekmUd
Transcend 128GB microSD: https://amzn.to/2tCkOmw
MacBook Pro 16”: https://amzn.to/3fElb77 Asus VP28UQG 28" 4K/UHD monitor: https://amzn.to/2CE5eeI
kind of中文 在 YouTube Data API Overview | Google Developers 的推薦與評價
Introduction
This document is intended for developers who want to write applications that interact with YouTube. It explains basic concepts of YouTube and of the API itself. It also provides an overview of the different functions that the API supports.
Before you startYou need a Google Account to access the Google API Console, request an API key, and register your application.
Create a project in the Google Developers Console and obtain authorization credentials so your application can submit API requests.
After creating your project, make sure the YouTube Data API is one of the services that your application is registered to use:
Go to the API Console and select the project that you just registered.
Visit the Enabled APIs page.
In the list of APIs, make sure the status is ON for the YouTube Data API v3.
If your application will use any API methods that require user authorization, read the authentication guide to learn how to implement OAuth 2.0 authorization.
Select a client library to simplify your API implementation.
Familiarize yourself with the core concepts of the JSON (JavaScript Object Notation) data format. JSON is a common, language-independent data format that provides a simple text representation of arbitrary data structures. For more information, see json.org.
Resources and resource types
A resource is an individual data entity with a unique identifier. The table below describes the different types of resources that you can interact with using the API.
Resources
activity
Contains information about an action that a particular user has taken on the YouTube site. User actions that are reported in activity feeds include rating a video, sharing a video, marking a video as a favorite, and posting a channel bulletin, among others.
channel
Contains information about a single YouTube channel.
channelBanner
Identifies the URL to use to set a newly uploaded image as the banner image for a channel.
channelSection
Contains information about a set of videos that a channel has chosen to feature. For example, a section could feature a channel's latest uploads, most popular uploads, or videos from one or more playlists.
guideCategory
Identifies a category that YouTube associates with channels based on their content or other indicators, such as popularity. Guide categories seek to organize channels in a way that makes it easier for YouTube users to find the content they're looking for. While channels could be associated with one or more guide categories, they are not guaranteed to be in any guide categories.
i18nLanguage
Identifies an application language that the YouTube website supports. The application language can also be referred to as a UI language.
i18nRegion
Identifies a geographic area that a YouTube user can select as the preferred content region. The content region can also be referred to as a content locale.
playlist
Represents a single YouTube playlist. A playlist is a collection of videos that can be viewed sequentially and shared with other users.
playlistItem
Identifies a resource, such as a video, that is part of a playlist. The playlistItem resource also contains details that explain how the included resource is used in the playlist.
search result
Contains information about a YouTube video, channel, or playlist that matches the search parameters specified in an API request. While a search result points to a uniquely identifiable resource, like a video, it does not have its own persistent data.
subscription
Contains information about a YouTube user subscription. A subscription notifies a user when new videos are added to a channel or when another user takes one of several actions on YouTube, such as uploading a video, rating a video, or commenting on a video.
thumbnail
Identifies thumbnail images associated with a resource.
video
Represents a single YouTube video.
videoCategory
Identifies a category that has been or could be associated with uploaded videos.
watermark
Identifies an image that displays during playbacks of a specified channel's videos. The channel owner can also specify a target channel to which the image links as well as timing details that determine when the watermark appears during video playbacks and then length of time it is visible.
Note that, in many cases, a resource contains references to other resources. For example, a playlistItem
resource's snippet.resourceId.videoId
property identifies a video resource that, in turn, contains complete information about the video. As another example, a search result contains either a videoId
, playlistId
, or channelId
property that identifies a particular video, playlist, or channel resource.
The following table shows the most common methods that the API supports. Some resources also support other methods that perform functions more specific to those resources. For example, the videos.rate
method associates a user rating with a video, and the thumbnails.set
method uploads a video thumbnail image to YouTube and associates it with a video.
Operations
list
Retrieves (
GET
) a list of zero or more resources.insert
Creates (
POST
) a new resource.update
Modifies (
PUT
) an existing resource to reflect data in your request.delete
Removes (
DELETE
) a specific resource.The API currently supports methods to list each of the supported resource types, and it supports write operations for many resources as well.
The table below identifies the operations that are supported for different types of resources. Operations that insert, update, or delete resources always require user authorization. In some cases, list
methods support both authorized and unauthorized requests, where unauthorized requests only retrieve public data while authorized requests can also retrieve information about or private to the currently authenticated user.
Supported Operations
list
insert
update
delete
activity
caption
channel
channelBanner
channelSection
comment
commentThread
guideCategory
i18nLanguage
i18nRegion
playlist
playlistItem
search result
subscription
thumbnail
video
videoCategory
watermark
Quota usage
The YouTube Data API uses a quota to ensure that developers use the service as intended and do not create applications that unfairly reduce service quality or limit access for others. All API requests, including invalid requests, incur at least a one-point quota cost. You can find the quota available to your application in the API Console.
Projects that enable the YouTube Data API have a default quota allocation of 10,000 units per day, an amount sufficient for the overwhelming majority of our API users. Default quota, which is subject to change, helps us optimize quota allocations and scale our infrastructure in a way that is more meaningful to our API users. You can see your quota usage on the Quotas page in the API Console.
Note: If you reach the quota limit, you can request additional quota by
completing the Quota extension
request form for YouTube API Services.
Google calculates your quota usage by assigning a cost to each request. Different types of
operations have different quota costs. For example:
A read operation that retrieves a list of resources -- channels, videos, playlists -- usually
costs 1 unit.
A write operation that creates, updates, or deletes a resource usually has costs
50
units.A search request costs
100
units.A video upload costs
1600
units.The Quota costs for API requests table shows the
quota cost of each API method. With these rules in mind, you can estimate the number of requests
that your application could send per day without exceeding your quota.
The API allows, and actually requires, the retrieval of partial resources so that applications avoid transferring, parsing, and storing unneeded data. This approach also ensures that the API uses network, CPU, and memory resources more efficiently.
The API supports two request parameters, which are explained in the following sections, that enable you to identify the resource properties that should be included in API responses.
The part
parameter identifies groups of properties that should be returned for a resource.
The fields
parameter filters the API response to only return specific properties within the requested resource parts.
part
parameterThe part
parameter is a required parameter for any API request that retrieves or returns a resource. The parameter identifies one or more top-level (non-nested) resource properties that should be included in an API response. For example, a video
resource has the following parts:
snippet
contentDetails
fileDetails
player
processingDetails
recordingDetails
statistics
status
suggestions
topicDetails
All of these parts are objects that contain nested properties, and you can think of these objects as groups of metadata fields that the API server might (or might not) retrieve. As such, the part
parameter requires you to select the resource components that your application actually uses. This requirement serves two key purposes:
It reduces latency by preventing the API server from spending time retrieving metadata fields that your application doesn't use.
It reduces bandwidth usage by reducing (or eliminating) the amount of unnecessary data that your application might retrieve.
Over time, as resources add more parts, these benefits will only increase since your application will not be requesting newly introduced properties that it doesn't support.
How to use thefields
parameterThe fields
parameter filters the API response, which only contains the resource parts identified in the part
parameter value, so that the response only includes a specific set of fields. The fields
parameter lets you remove nested properties from an API response and thereby further reduce your bandwidth usage. (The part
parameter cannot be used to filter nested properties from a response.)
The following rules explain the supported syntax for the fields
parameter value, which is loosely based on XPath syntax:
Use a comma-separated list (fields=a,b
) to select multiple fields.
Use an asterisk (fields=*
) as a wildcard to identify all fields.
Use parentheses (fields=a(b,c)
) to specify a group of nested properties that will be included in the API response.
Use a forward slash (fields=a/b
) to identify a nested property.
In practice, these rules often allow several different fields
parameter values to retrieve the same API response. For example, if you want to retrieve the playlist item ID, title, and position for every item in a playlist, you could use any of the following values:
fields=items/id,playlistItems/snippet/title,playlistItems/snippet/position
fields=items(id,snippet/title,snippet/position)
fields=items(id,snippet(title,position))
Note: As with all query parameter values, the fields
parameter value must be URL encoded. For better readability, the examples in this document omit the encoding.
The examples below demonstrate how you can use the part
and fields
parameters to ensure that API responses only include the data that your application uses:
Example 1 returns a video resource that includes four parts as well as
kind
and etag
properties.Example 2 returns a video resource that includes two parts as well as
kind
and etag
properties.Example 3 returns a video resource that includes two parts but excludes
kind
and etag
properties.Example 4 returns a video resource that includes two parts but excludes
kind
and etag
as well as some nested properties in the resource's snippet
object.Example 1
URL: https://www.googleapis.com/youtube/v3/videos?id=7lCDEYXw3mM&key=YOUR_API_KEY
&part=snippet,contentDetails,statistics,statusDescription: This example retrieves avideo
resource and identifies several
resource parts that should be included in the API response.API response:
{
"kind": "youtube#videoListResponse",
"etag": "\"UCBpFjp2h75_b92t44sqraUcyu0/sDAlsG9NGKfr6v5AlPZKSEZdtqA\"",
"videos": [
{
"id": "7lCDEYXw3mM",
"kind": "youtube#video",
"etag": "\"UCBpFjp2h75_b92t44sqraUcyu0/iYynQR8AtacsFUwWmrVaw4Smb_Q\"",
"snippet": {
"publishedAt": "2012-06-20T22:45:24.000Z",
"channelId": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
"title": "Google I/O 101: Q&A On Using Google APIs",
"description": "Antonio Fuentes speaks to us and takes questions on working with Google APIs and OAuth 2.0.",
"thumbnails": {
"default": {
"url": "https://i.ytimg.com/vi/7lCDEYXw3mM/default.jpg"
},
"medium": {
"url": "https://i.ytimg.com/vi/7lCDEYXw3mM/mqdefault.jpg"
},
"high": {
"url": "https://i.ytimg.com/vi/7lCDEYXw3mM/hqdefault.jpg"
}
},
"categoryId": "28"
},
"contentDetails": {
"duration": "PT15M51S",
"aspectRatio": "RATIO_16_9"
},
"statistics": {
"viewCount": "3057",
"likeCount": "25",
"dislikeCount": "0",
"favoriteCount": "17",
"commentCount": "12"
},
"status": {
"uploadStatus": "STATUS_PROCESSED",
"privacyStatus": "PRIVACY_PUBLIC"
}
}
]
}
Example 2
URL: https://www.googleapis.com/youtube/v3/videos?id=7lCDEYXw3mM&key=YOUR_API_KEY
&part=snippet,statisticsDescription: This example modifies thepart
parameter value so that the
contentDetails
andstatus
properties are not included
in the response.API response:
{
"kind": "youtube#videoListResponse",
"etag": "\"UCBpFjp2h75_b92t44sqraUcyu0/sDAlsG9NGKfr6v5AlPZKSEZdtqA\"",
"videos": [
{
"id": "7lCDEYXw3mM",
"kind": "youtube#video",
"etag": "\"UCBpFjp2h75_b92t44sqraUcyu0/iYynQR8AtacsFUwWmrVaw4Smb_Q\"",
"snippet": {
"publishedAt": "2012-06-20T22:45:24.000Z",
"channelId": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
"title": "Google I/O 101: Q&A On Using Google APIs",
"description": "Antonio Fuentes speaks to us and takes questions on working with Google APIs and OAuth 2.0.",
"thumbnails": {
"default": {
"url": "https://i.ytimg.com/vi/7lCDEYXw3mM/default.jpg"
},
"medium": {
"url": "https://i.ytimg.com/vi/7lCDEYXw3mM/mqdefault.jpg"
},
"high": {
"url": "https://i.ytimg.com/vi/7lCDEYXw3mM/hqdefault.jpg"
}
},
"categoryId": "28"
},
"statistics": {
"viewCount": "3057",
"likeCount": "25",
"dislikeCount": "0",
"favoriteCount": "17",
"commentCount": "12"
}
}
]
}
Example 3
URL: https://www.googleapis.com/youtube/v3/videos?id=7lCDEYXw3mM&key=YOUR_API_KEY
&part=snippet,statistics&fields=items(id,snippet,statistics)Description: This example adds thefields
parameter to remove all
kind
andetag
properties from the API response.API response:
{
"videos": [
{
"id": "7lCDEYXw3mM",
"snippet": {
"publishedAt": "2012-06-20T22:45:24.000Z",
"channelId": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
"title": "Google I/O 101: Q&A On Using Google APIs",
"description": "Antonio Fuentes speaks to us and takes questions on working with Google APIs and OAuth 2.0.",
"thumbnails": {
"default": {
"url": "https://i.ytimg.com/vi/7lCDEYXw3mM/default.jpg"
},
"medium": {
"url": "https://i.ytimg.com/vi/7lCDEYXw3mM/mqdefault.jpg"
},
"high": {
"url": "https://i.ytimg.com/vi/7lCDEYXw3mM/hqdefault.jpg"
}
},
"categoryId": "28"
},
"statistics": {
"viewCount": "3057",
"likeCount": "25",
"dislikeCount": "0",
"favoriteCount": "17",
"commentCount": "12"
}
}
]
}
Example 4
URL: https://www.googleapis.com/youtube/v3/videos?id=7lCDEYXw3mM&key=YOUR_API_KEY
&fields=items(id,snippet(channelId,title,categoryId),statistics)&part=snippet,statisticsDescription: This example modifies thefields
parameter from example 3
so that in the API response, each video resource'ssnippet
object only includes thechannelId
,title
,
andcategoryId
properties.API response:
{
"videos": [
{
"id": "7lCDEYXw3mM",
"snippet": {
"channelId": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
"title": "Google I/O 101: Q&A On Using Google APIs",
"categoryId": "28"
},
"statistics": {
"viewCount": "3057",
"likeCount": "25",
"dislikeCount": "0",
"favoriteCount": "17",
"commentCount": "12"
}
}
]
}
Optimizing performance
Using ETags
ETags, a standard part of the HTTP protocol, allow applications to refer to a specific version of a particular API resource. The resource could be an entire feed or an item in that feed. This functionality supports the following use cases:
Caching and conditional retrieval – Your application can cache API resources and their ETags. Then, when your application requests a stored resource again, it specifies the ETag associated with that resource. If the resource has changed, the API returns the modified resource and the ETag associated with that version of the resource. If the resource has not changed, the API returns an HTTP 304 response (Not Modified
), which indicates that the resource has not changed. Your application can reduce latency and bandwidth usage by serving cached resources in this manner.
The client libraries for Google APIs differ in their support of ETags. For example, the JavaScript client library supports ETags via a whitelist for allowed request headers that includes If-Match
and If-None-Match
. The whitelist allows normal browser caching to occur so that if a resource's ETag has not changed, the resource can be served from the browser cache. The Obj-C client, on the other hand, does not support ETags.
Protecting against inadvertent overwrites of changes – ETags help to ensure that multiple API clients don't inadvertently overwrite each other's changes. When updating or deleting a resource, your application can specify the resource's ETag. If the ETag doesn't match the most recent version of that resource, then the API request fails.
Using ETags in your application provides several benefits:
The API responds more quickly to requests for cached but unchanged resources, yielding lower latency and lower bandwidth usage.Your application will not inadvertently overwrite changes to a resource that were made from another API client.
The Google APIs Client Library for JavaScript supports If-Match
and If-None-Match
HTTP request headers, thereby enabling ETags to work within the context of normal browser caching.
Using gzip
You can also reduce the bandwidth needed for each API response by enabling gzip compression. While your application will need additional CPU time to uncompress API responses, the benefit of consuming fewer network resources usually outweighs that cost.
To receive a gzip-encoded response you must do two things:
Set the Accept-Encoding
HTTP request header to gzip
.
Modify your user agent to contain the string gzip
.
The sample HTTP headers below demonstrate these requirements for enabling gzip compression:
Accept-Encoding: gzip
User-Agent: my program (gzip)
... <看更多>
kind of中文 在 TOEIC OK News, profile picture - Facebook 的推薦與評價
kind of 用中文講就是「有點…」,或是放在句尾的「吧」,透露出不大確定的意思~ (source: http://bit.ly/1dhAO2h) 想與外國人聊天只能用HELLO開頭嗎? ... <看更多>