機器人RD工程師仰天吶喊:老天鵝~~~請給我更高效的軟體戰鬥力!!
老天鵝回覆是.....:已將您的吶喊轉接給工研院課程精靈接聽
好喔,《#AI智能機器人ROS2開發實戰班》正為此而生!
👉立刻報名 https://bit.ly/3ggid8C
👉課程概述
本課程運用第二代機器人作業系統 ROS 2.0,驅動底層通訊技術DDS (Data Distribution Service,資料分散式服務軟體技術)使機器人只需要 #基礎網路架構,就能解決ROS 1.0在延遲性和擴充性等問題,是您躍升 #群機通訊 滿足企業客戶在後工業4.0時代下處理一對多、客製化等殷切需求 #最佳解決方案,和業界講師一起:
🗝以ROS 2.0解決方案為開發平台
🗝開發軟件包Middleware API
🗝鏈結開源社群
🗝掌握快速開發優勢
高效培訓ROS2.0人才,振興您家公司工程師開發戰鬥力 三倍提升
📌課程報名連結:https://bit.ly/3ggid8C
📌報名日期:即日起至8/10
📌8/10日前完成以下任務,享有戰鬥力振興優惠唷~
📌任務解鎖步驟:
step1. 進入報名頁面 https://bit.ly/313zAmG
step2. 報名留言處欄位填寫通關密語:「提升ROS開發戰鬥力」
step3. 課程精靈將直接從後台給您超驚訝 🐣彩蛋優惠價
更棒的是,
8/10前報名、完成任務解鎖不僅可享有驚喜彩蛋優惠價,
在產學Youtube頻道上留言給 #凌華科技Bill,將再同時享有專屬 #孜孜不驗券 600元學費折抵!!
‼請注意!!一定要到 #凌華科技Bill 影片處: https://youtu.be/Ll2iUH40ziE
留言填寫,才能享有此優惠;若忘記填寫無法享有此優惠,開點大膽說出對 #凌華科技Bill 的愛~💖
企業包班/專班客製需求請洽:04-25605409 吳小姐
data middleware 在 Kewang 的資訊進化論 Facebook 的最讚貼文
這一系列文總共有三篇,這是最後一篇。
Funliday 重磅推出新的 prerender 套件 pppr!這是一個 zero config 的 express middleware,只要 npm install pppr,然後在 app.js 裡面加一行 app.use(pppr()) 就可以直接拿來用了。
---
原本在使用 prerender.io 這個套件有時候會出現 504 timeout 的問題,後來發現這個套件用的是比較底層的 API (Chrome DevTools Protocol, CDP),研究它的原始碼後發現 render HTML 的 timeout 判斷上有些怪怪的,本來想試著去改這塊,但對 CDP 不熟,所以用 puppeteer 重寫一套 prerender service,pppr 也就應運而生。
簡單先解釋一下,puppeteer 是基於 CDP 封裝後成為比較容易使用的 API。因為 client side rendering (CSR) 的流行,所以現在要做網路爬蟲的話,愈來愈多會選擇用 puppeteer 來處理。這裡來分享一下在開發 pppr 的時候,有哪些東西要注意的。
1. 把 URL 放到像是 50 人的 LINE 熱門群組,prerender 會遭到大量的 request,因為每個使用者接收到這個訊息之後,因為要顯示 og data,所以就會去打一次 prerender。這裡姑且先稱之為 OG-DDoS 好了 XD,所以一定要做 cache,讓第一個 request 把 HTML 產生出來之後就放到 cache 裡面。然後可以用 LRU cache 來處理,因為這類 URL 都是短時間會被大量使用,之後就很少被用了,用 LRU cache 剛剛好。
1-1. 其實這一段實作還有一些問題,如果在第一個 request 還沒產生出 HTML 之前,第二個同樣 request 就進來了,這樣子 cache 可以說是根本沒作用,還要再找時間來處理 lock 機制才行。
2. 每一個 request 要新開一個 page 才行,如果沒有每個 request 都開新 page 的話,會造成 A request 還沒處理完,B request 就用同一個 page 做 render,這樣子 A request 就會 504 timeout 了。所以一定要記得每個 request 都要新開 page。
3. 因為 headless chrome 的 user agent 就叫做 HeadlessChrome,為了避免在 render 的時候會出現意料外的狀況,保險一點還是把 HeadlessChrome 改成 Chrome 會比較好。
4. 注意 redirect。因為 expressjs 跟 puppeter 是兩個不同的 context,對於 redirection 來說,expressjs 會回傳 3xx 系列的狀態碼,但 puppeteer 則會直接執行完成。所以把 puppeteer 放在 expressjs 裡面執行的話,必須要處理 redirect chain,讓 expressjs 能回給 client 正確的狀態碼才行。
5. pppr 因為是發想自 prerender.io,所以 interface 也一樣是 /render?url=https://example.com。 但有時候原始的 url 後面會包含 query string,所以 expressjs 要用 URLSearchParams 另外做些處理,才能取得完整的 url。
開發 pppr 基本要注意的事項大概就這樣,總之記得給星,有任何問題歡迎發 issue 跟 pr 喔!
#pppr #prerender #funliday
data middleware 在 TPIsoftware Global Facebook 的最佳貼文
Time for #Meettheteam! 🎉Today we are happy to introduce Karl 🇩🇪, our software developer with a special focus on mobile development and iOS. 📱
💻Which project are you working on currently?
I’m working on a push notification feature for a mobile banking APP. The challenging part is to connect the different components. Since the notification does not only take place locally on the device, we have to integrate the middleware with the Apple push notification service and our API.
💻What makes software development so exciting for you?
I think it's great to create something, like an APP, that I can touch, feel and share with others. I have always been fascinated by technology, both hardware and software. So it was obvious for me to enter the software field and to be able to develop cutting-edge technologies myself.
💻You had an interesting research topic for your master thesis: “Management of intellectual property with C-Chain” What brought you to this topic?
My professor, Rudolf Bayer, developed the idea of C-Chain as an alternative for the blockchain technology and gave me the chance to work on a prototype project for his idea. So I developed an APP that helped people to securely exchange files and to ensure that they haven’t been tampered.
💻What do you love most about working and living in Taiwan?
Food as long as it doesn’t come to stinky tofu and chicken feet. 🤣Traveling in Taiwan is awesome! You have a huge variety on such a small island: Bustling cities like Taipei, tropical beaches, amazing mountains, and a lot of Chinese traditional culture. Last but not least, Taiwanese people are just great.
💻How do you think your work at #ThinkPower will benefit you personally?
I think to work in an international environment and to be able to interact with different cultures and languages is getting more and more important. My international competence will help me for sure in future positions as well. Also, I see a lot of personal opportunities in ThinkPower as we are working on the latest topics like AI, blockchain and big data.