#中央社外文新聞中心FocusTaiwan徵才 Focus Taiwan
中央社外文新聞中心誠徵全職【英文編輯】和【英文改稿顧問】,歡迎對英文新聞有熱情的你,加入FocusTaiwan團隊!
履歷請寄:cnafnc2@gmail.com
薪資:4萬以上,面議
福利:比照勞基法規定
上班時段:日班/晚班/假日班,需輪班
上班地點:台北市中山區松江路209號7樓
其他:通過第一階段履歷篩選者,我們會以email通知筆試時間。
【徵才職位】
🔵英文編輯Writer
語言能力:精通中、英文,英文聽說讀寫能力近母語。
學歷要求:大學以上畢業,新聞系、外文科系尤佳。
工作經驗:具有英文新聞工作至少1年經驗者優先考慮。
工作內容:英文編輯需將中文新聞編譯成英文新聞,並撰寫圖說、替英文影音新聞過音、製作圖表,並協助管理FocusTaiwan網站後台及社群媒體平台。
工作要求:英文編輯須具備求證與求知的精神,除了編譯中文稿之外,也願意花心思查證新聞訊息,包括做電話採訪,或是上官方網站查詢數據或資料,以充實稿子內容。通訊社的發稿步調快速,英文編輯必須在短時間內掌握新聞重點,以外國讀者感興趣的角度撰寫文章。
🔵英文改稿顧問Copy Editor
語言能力:精通中、英文。以英語為母語的(外籍)人士,通曉中文,居住台灣者優先考慮。
學歷要求:大學以上畢業,新聞科系尤佳。
工作經驗:具有英文新聞工作至少3年經驗者優先考慮。
工作內容:英文改稿顧問主要負責編審英文編輯的稿件,包括檢查文法、拼字、標點符號和文章結構等。改稿顧問也需編審每日新聞頭條、圖說新聞和影音稿。
工作要求:英文改稿顧問需熟悉中央社英文新聞寫作體例和頭條寫作規則,確保文章使用正確的文法、拼字和標點符號,結構完整、內容詳實和平衡。
A. Writer Position:
Requirements:
-- Native or near native English and Chinese proficiency
-- A bachelor’s degree or higher in journalism, foreign languages or a related field
-- Experience writing English news stories
-- Willing to work night shifts and on weekends
-- Able to work in a fast-paced newsroom and meet tight deadlines.
The job:
The writer will be assigned Chinese news stories by the shift leaders and are required to rewrite the stories in English.
He/she will also be asked to write captions, do voiceovers for videos, create graphics, and manage the FocusTaiwan website’s backend and social media accounts.
The writer will specifically be expected to:
-- Ensure that all news stories have proper structure, content, clarity, accuracy and balance
-- Research and fact-check the information in the Chinese news stories by sometimes making calls, conducting interviews, or sifting through official information on government websites
B.Copy Editor Position:
Requirements:
-- A bachelor’s degree or higher in journalism or a related field
-- A background in English news writing and editing, preferably with some experience editing the work of non-native English writers.
-- Native English speaker; Chinese language proficiency a plus
-- Able to function efficiently under time and deadline pressure
-- Willing to work late night shifts and on some weekends
-- Flexible with regard to work hours and days off
-- Able to work as a team with shift leaders and other copy editors to ensure quality content
The job:
The editor will be required to edit news stories in the English language department, checking the grammar, punctuation, and structure and making other changes where necessary.
He/she will also be asked to write and edit headlines for the news stories, edit captions, and occasionally check video scripts.
The copy editor will specifically be expected to:
-- Become familiar with the style rules of CNA, as well as with the rules and restrictions associated with headline writing.
-- Ensure that all news stories have proper grammar, punctuation, structure, content, clarity, accuracy and balance.
-- Answer questions by writers and shift leaders about style, grammar and other aspects of English news writing.
#國際影音串流平台徵才 6/28更新
文化部補助、中央社承辦的國際影音串流平台誠徵以下職位專業人才,有志者請依以下徵才內容需求附上所需資料與我們聯繫。
請注意:來函應徵時,請在電郵主旨欄註明應徵類別,例如「應徵D1 社群媒體內容製作人」、「應徵E3 網路平台技術主管」或「應徵E5 數據工程師」
履歷請寄: personnel-video@mail.cna.com.tw
薪資:4萬以上,面議
福利:均比照勞基法規定
【公司介紹】
Taiwan Plus (Taiwan+) 國際影音串流平台,是台灣第一個以全球為目標族群的全英語新聞、節目平台。
本平台希望在全球舞台上呈現台灣觀點與聲音,同時在國際社會中提升台灣的能見度與影響力。我們將提供與台灣相關,以及超越一般視野的新聞與節目。無論是與台灣相關議題或是區域情勢,以及台灣高舉的普世價值:民主、人權、開放、創新等等,我們都期待在該領域的全球對話中成為最具影響力媒體。
我們以全球為範圍尋覓專業人才,希望打造一支世界級水準的團隊。如果您是專長領域的頂尖人才,同時堅信台灣所代表的多重價值,希望促成改變,您將是Taiwan Plus需要的夥伴。
【徵才職位】
🔵 B1 節目製作人
工作內容:
網路影音節目企劃規劃統籌,能產製外國受眾感興趣的網路影音內容。
1. 節目預算規劃與成本管控。
2. 節目主題發想與設定、外部資源整合洽談。
3. 影音節目行銷及文字撰寫。
4. 透過數據分析及判讀,並與社群數據相關部門緊密合作
學歷要求:大學以上畢業,不限科系,大眾傳播相關科系尤佳。
工作經驗:具網路影音相關節目製作5年以上工作經驗,熟悉新媒體作業。
工作技能:Office文書軟體,了解後製剪接、轉檔、字幕、ES、音效、配樂、調色等工作流程。
語言能力:精通中、英文。
其他條件:1、對台灣題材具熱情,可協調完成節目前製、後製工作。
2、請提供先前製作之節目連結。
🔵 B2 編導人員
工作內容:
1、網路節目發想/拍攝/製作。
2、協助主視覺及鏡面效果包裝設計。
3、短片內容拍攝。
4、其他主管交辦事項。
學歷要求:大學以上畢業,大眾傳播相關科系尤佳。
工作經驗:具節目製作3年以上工作經驗、網路影片拍攝、非線性剪輯3年以上經驗。
工作技能:Office文書軟體、After Effect、Final Cut、Premiere,會3D軟體尤佳。
語言能力:精通國台語、英語中等以上。
其他條件:
1. 對台灣題材有興趣、可以獨立完成節目前製與後製工作。
2. 請提供3∼5分鐘自製的影音作品及連結。
🔵 B3 節目企畫
工作內容:
1. 影音節目相關版權及IP洽談業務
2. 影音節目採購標案撰寫、執行與驗收
3. 重製影音節目發想、洽談與流程管控
4. 自製網路影音節目發想、規劃與執行
5. 密切與社群部門溝通,以利節目內容產生有效的國際傳播
學歷要求:大專以上畢業,不限科系。
工作經驗: 具2年以上傳播行銷、節目授權、專案開發等相關工作經驗。
工作技能:Office文書軟體
語言能力:精通中、英文。
其他條件:熟悉著作權相關法律,具備採購專業人員基本資格或進階資格者尤佳
🔵 D1 社群媒體內容製作人
工作內容:
1. 經營Facebook、YouTube、Instagram、Twitter等社群平台,以及
Line、What’s App等等通訊軟體。負責所有社群活動,包括內容排程、社群管理,以及最佳化貼文使用者互動經驗與搜尋。
2. 發想與製作能夠引起高度共鳴的社群圖文,同時密切與內容產製部門合作,達成內容傳遞最佳效益,將台灣題材透過創意社群轉譯給國際觀眾。
3. 管理全站及跨平台數位內容產品,包括主網站與手機應用程式(APP),主責新聞推播與電子報策略。
4. 監測互動與流量表現,並提出內容策略建議。
學歷要求:大學以上畢業,不限科系
工作經驗:具3年以上實際社群經營經驗(請提供相關工作經驗與成功案例)。
工作技能:具備影片、圖片製作思維與能力;社群平台數據分析、Google Analytics分析能力。
語言能力:精通中、英文。
🔵 E3 網路平台技術主管 Platform Technology Manager
工作內容:
1. 帶領並管理技術團隊,以充分掌握技術並達成產品開發或專案交付目標。
2. 依據專案需求,主導或協助專案管理。包含直接或協助專案經理帶領與管理技術團隊,能有效解決專案技術相關問題,確保專案如期如質交付。
3. 依據公司發展需求,負責建立開發技術團隊。內容包含人員面試、考核、技術帶領與管理等。
4. 針對新技術導入與知識管理需求,建立技術評估、技術分享辦法,協助團隊提升技術能力。
5. 其他主管交辦事項。
學歷要求:大學以上畢業,資訊或理工相關科系畢。
工作經驗:具備7年以上開發團隊主管經驗,5年以上C#、Python紮實技術基礎與開發經驗,具大型網路服務系統規畫建置經驗。
工作技能:熟悉C#/.net or Python/Django任一開發技術,熟悉AWS、GCP等雲端平台。具影音串流經驗尤佳。
語言能力:具備中等以上英語聽說讀寫能力。
其他條件:良好的溝通、團隊合作能力。
🔵 E4 DevOp工程師 DevOps Engineer
工作內容:
1. 負責內外部系統發佈、部署、調優、監控、日誌等系統和流程的維護和優化,確保系統的高可用性。
2. 負責雲端系統執行環境的建置與維護。
3. 負責突發問題處理並進行定位和處理。
4. 探索新的運維技術方向。
5. 其它主管交辦事項。
學歷要求:大學以上畢業,理工相關科系畢。
工作經驗:3年以上系統、應用運維經驗。
工作技能:熟悉linux系統,瞭解網路基本技術,熟悉TCP/IP協定原理,具AWS、GCP等雲端平台與服務維運經驗。熟悉網路安全者佳。
其他條件:良好的溝通、團隊合作、獨立作業的能力。
🔵 E5 數據工程師 Data Engineer
工作內容:
1. 執行資料處理、資料分析以及data lake、data mart的建立與維護。
2. 使用BI工具建立報表分析及數據探勘。
3. 因應業務需求,持續優化資料平台架構。
學歷要求:大學以上畢業,資訊或理工相關科系畢。
工作經驗:具備專案管理經驗,熟悉Agile軟體開發流程者佳。
工作技能:熟悉Python 或 Java,熟悉 Power BI或其他BI軟體工具,熟悉SQL。具數據分析與統計經驗。熟悉GCP者佳。
語言能力:具備基本英語溝通能力。
其他條件:良好的溝通協調能力。
🔵 E6 資訊安全暨系統維護主管 Information Security & System Maintenance Manager
工作內容:
1. 統籌公司內部資訊相關系統整合、部署、營運及維護 。
2. 確保資訊設備的可用性,因應公司營運發展所需改善現有資訊系統並預先規劃所需資源。
3. 機房規畫及運營。
4. 規劃辦公室網路環境。
5. 訂立資訊體制,改善資訊安全規範,落實資訊安全控管機制。
6. 定期對資訊風險進行評估以合乎公司安全策略及必要法規(包含ISO),確保系統運營的持續性與可回復。
7. 協助主管其他資訊專案推動。
學歷要求:大學以上畢業,資訊或理工相關科系畢。
工作經驗:7年以上資訊領域工作經驗,具資安經驗者佳。
工作技能:具軟體或平台開發經驗。具備資安相關證照者佳,具有導入ISO經驗者佳。
語言能力:具備中等英語聽說讀寫能力。
其他條件:良好的溝通協調能力。
🔵 E7 資訊安全主管 Information Security Lead
工作內容:
1. 帶領資安團隊、規劃與推動整體資安之目標與計畫。
2. 規劃/制定/執行整體資安治理流程管理。
3. 認證、稽核協調與管理。
4. 資安情資收集與資安事件應變處理。
5. 服務平台資安檢測、諮詢,與規範,持續強化系統資訊安全強度。
6. 辦公室資訊安全防禦建置與監控。
7. 研究與採購建置資安產品。
8. 對內對外資訊安全教育訓練規劃與推動。
學歷要求:大學以上畢業,資訊或理工相關科系畢。
工作經驗:3年以上資安工作經驗,具資安主管經驗者佳。
工作技能:具有AWS、GCP 等雲端環境經驗。具備OSCP,CEH等資安相關證照者佳。具有導入 ISO 經驗者佳。
語言能力:具備中等英語聽說讀寫能力。
其他條件:良好的溝通協調能力。
🔵 E8 資安工程師 Information Security Engineer
工作內容:
1. 協助資訊安全專案執行與維護工作。
2. 資訊安全解決方案(資安系統)專案規劃及建置、維護。
3. 週期性確認相關紀錄(Log),確認相關控制措施有效。
4. 研究資訊安全技術,如重大系統漏洞或惡意程式。
學歷要求:專科或大學以上,理工相關科系畢。
工作經驗:2年以上系統、應用開發或運營經驗。
工作技能:熟悉linux、windows系統,瞭解網路基本技術。具AWS等雲端平台與服務經驗者佳。具備OSCP,CEH等資案相關證照者佳。
其他條件:良好的溝通能力。
🔵 E9 網路暨維護主管/工程師 Network & System Maintenance Lead / Engineer
工作內容:
1. 負責公司與IDC 網路之規劃、建置、管理及維護。
2. 網路設備安裝、設定、管理及維護等。
3. 與分析網路資料傳輸與網路安全架構等特性,以設計、發展及維護網際網路系統之正常運作。
4. 網路解決方案研究與導入。
5. 網路系統進行監控與告警處理。
6. 一般告警處理流程、重大網路障礙排除。工作內容:
7. 機房監控、管理與一般障礙排除與處理。
8. 協助公司其他單位,提供相關的系統操作與技術支援。包含一般員工以及影音編輯人員的電腦故障排除,軟體安裝、設定、系統操作等。
9. 對突發狀況的緊急應變處理。
學歷要求:專科或大學以上,理工相關科系畢。
工作經驗:網管工作2年以上相關經驗。
工作技能:熟悉linux、windows系統。了解OSI架構、HTTP、TCP/IP、DNS、SMTP、CDN。具備Load-balancer/ Firewall/ Switch操作
經驗。具備CCNA優先考慮。
其他條件:能配合公司輪班制度者優先考慮。
🔵 E10 產品管理師
工作內容:
1. 負責OTT影音平台相關的產品功能設計、UI/UX設計。
2. 內部使用單位訪談及需求分析,協助提供內容部門產品端的解決方案。
3. 撰寫商業需求文件及負責產品UAT,執行產品功能上線前驗收測試。
4. 持續優化平台功能與使用者體驗。
學歷要求:大學以上畢業。
工作經驗:具備3年以上網路服務或者to-c系統運營經驗,對產品設計流程和解決問題抱有高度熱情及興趣。
工作技能:熟悉Web、App開發流程。具備專案管理方法以及流程設計的經驗。具UX思維規劃功能,改善使用者體驗。
語言能力:具備基本英語溝通能力。
其他條件:良好的溝通協調能力,個性耐心且細心者為佳。
🔵 E11 軟體開發主管 Software Development Lead
工作內容:
1. 負責影音平台網站、後台與API等相關功能開發。
2. 負責優化與維護既有網站與後台功能。
學歷要求:大學或專科以上畢業,理工相關科系畢。
工作經驗:具備5年以上C#.NET or Python開發經驗。具人員管理經驗。
工作經驗:
1. 具備5年以上C#.NET or Python開發經驗。
2. 具人員管理經驗。
工作技能:
1. http://xn--pcu439a.net/.net core 或 Django、Flask framework。
2. 熟悉JavaScript/CSS/HTML5。
3. 熟悉mySQL、PostgreSQL與mongo DB。
4. 熟悉版控軟體,如Git。
5. 熟悉CI/DC流程。
6. 熟悉Vue.js或React者佳。
其他條件:工作認真仔細,具良好的溝通、團隊合作、獨立作業的能力。
🔵 E12 軟體開發工程師 Software Development Engineer
工作內容:
1. 負責影音平台網站、後台與會員中心等相關功能開發。
2. 負責優化與維護既有網站與後台功能。
學歷要求:大學或專科以上畢業,理工相關科系畢。
工作經驗:具備3年以上C#.NET or Python開發經驗。
工作技能:
1. http://xn--pcu439a.net/.net core 或 Django、Flask framework。
2. 熟悉JavaScript/CSS/HTML5。
3. 熟悉mySQL、PostgreSQL與mongo DB。
4. 熟悉Vue.js或React者佳。
其他條件:工作認真仔細,具良好的溝通、團隊合作、獨立作業的能力。
程式流程圖符號 在 李開復 Kai-Fu Lee Facebook 的最佳貼文
分享好文,中學生要學電腦嗎?
作者:創新工場CTO、人工智慧工程院執行院長 王詠剛
文章来自半轻人微信公众号(ban-qing-ren)
………………………………
朋友的孩子高中剛畢業,已拿到美國頂尖大學(非電腦專業)的錄取通知。疫情影響,不知何時才能去學校報到。孩子想抓緊學習一下程式設計,為大學打好基礎。這孩子找我聊了一個多小時,從如何學程式設計,聊到非電腦專業和電腦專業的路徑差異,又聊到如何從不同角度認識電腦與程式設計。聊得比較寬泛,不知是否對這孩子有用。
回想我自己的高中時代:那時雖迷戀程式設計,卻完全沒有懂行的人指導。在我們那個四線城市的廠礦中學裡,開設電腦興趣課的老師知道的資訊還沒我多。我高一時跑到北京中關村逛街,卻完全沒意識到中國第一代頂尖程式師當時就在我身邊的低矮辦公樓裡寫代碼(這話說得並不準確,比如求伯君那年就主要是在珠海做開發),鼎鼎大名的UCDOS、WPS、CCED就出自他們之手……我在當時街邊的一家書店(位置似乎就在今天的鼎好大廈對面)買到了許多種印刷品質極低劣的電腦圖書。用今天的標準看,那就是一批盜版影印或未授權翻譯的國外圖書。可那批書竟成了我高中時代最寶貴的程式設計知識來源。
顯然,我在高中時根本就是野路子學電腦。現在後悔也沒用,當時我的眼界或能觸及的資源就那麼多。如果能穿越回30年前,我該對喜歡程式設計的自己說些什麼呢?這些年,我與世界上最好的一批程式師合作過,也參與過世界上最有價值的軟體系統研發——我所積累的一些粗淺經驗裡,有哪些可以分享給一個愛程式設計的中學生?
【問題1】中學生要不要學電腦?
當然要!
每個中學生都要學。只不過——建議大部分中學生使用“休閒模式”,小部分(不超過10%)中學生使用“探險模式”。
啊?兩個模式?那我該進入哪個模式?⟹請跳轉至【問題2】
【問題2】選哪個模式?
你癡迷電腦嗎?比如,你玩遊戲時會特別想知道這遊戲背後的代碼是如何編寫的嗎?再比如,就算老師家長不同意你學電腦,甚至當著你的面把電腦砸了,你也要堅持學電腦嗎?如果是,恭喜你進入“探險模式”⟹請跳轉至【問題200】
你對數學有興趣嗎?比如,你看到街邊建築的曲線,就會在腦子裡琢磨曲線對應的函數或方程嗎?每當手裡攥著幾粒骰子,你就會不由自主地計算概率嗎?如果是,歡迎進入“探險模式”⟹請跳轉至【問題200】;當然,如果有些猶豫,也可以先進入“休閒模式”⟹請跳轉至【問題100】
即便你對電腦和數學興趣不大,家長、老師還是強烈建議你學電腦嗎?就算你一百個沒時間一千個不願意,家長、老師還是會逼著你學電腦嗎?如果是,建議你主動進入“休閒模式”並向家長、老師彙報說“我已經按照前谷歌資深軟體工程師的專業建議在認真學程式設計了”⟹請跳轉至【問題100】
其他情況,一律進入“休閒模式”。⟹請跳轉至【問題100】
【問題100】休閒模式 | 主要學什麼?
“休閒模式”將電腦視為我們生活、工作中的必備工具,主要學習如何聰明、高效、優雅地使用計算設備。這裡說的計算設備,包括所有形式的電腦、手機、遊戲機、智慧家電以及未來一定會進入生活的自動駕駛汽車。
什麼什麼?你已經會用電腦、會玩手機、會打遊戲了?別著急,慢慢往下看。
【問題101】休閒模式 | 我會用搜尋引擎嗎?
我知道你會用百度搜習題答案。但,習題答案不是知識。你會用搜尋引擎來搜索和梳理知識嗎?請試著用電腦和你喜歡的搜尋引擎來解決如下兩個問題:
(1)圓周率𝜋的計算方法有多少種?每種不同的計算方法分別是由什麼人在什麼時代提出的?借助電腦,今天人們可以將圓周率𝜋計算到小數點後多少位?將圓周率𝜋計算到小數點這麼多位元,一次大概需要花掉多少度電?
(2)全球大約有多少個廁所?在發展程度不同的國家,分別有多少比例的人可以享用安裝了抽水馬桶的衛生廁所?為什麼比爾·蓋茨曾大力推動一個設計新型馬桶的研發專案?比爾·蓋茨的公益組織在這個專案上大約花費了多少資金,最終收到了多大的效果?
如果你沒法快速得到上述問題的全部答案,那就給自己設一個小目標:一個月內,學會用搜尋引擎系統地獲取、梳理一組知識點的全部技巧。
【問題102】休閒模式 | 接下來學什麼?
建議學好典型的工具軟體。比如,我知道你會用Office了,但用Office和用Office是很不一樣的。對生活、學習、工作來說,學好、學透一個工具軟體比鑽研程式設計技巧更實用。
你會用Excel來管理班級公益基金的預算和實際收支情況嗎?
你會用Excel做出過去20年裡全球大學排名的演變趨勢圖嗎?
你會用Word排版一篇中學生論文嗎?論文中的圖表和最後的參考文獻部分該如何排版?
你會用Word編排一份班級刊物,包含封面、扉頁、目錄、插圖頁、附錄、封底等部分,可以在列印後直接裝訂成冊嗎?
PowerPoint呢?你有沒有研究過蘋果公司發佈會上那些幻燈片的設計?當約伯斯(多年以前)或蒂姆·庫克站在幻燈片前的時候,他們的演講思路是如何與幻燈片完美結合的?
還有哦,別忘了學學如何為數碼照片做後期,如何用電腦或手機剪視頻,如何為剪輯好的視頻配字幕,如何將照片、音樂、視頻等素材結合起來,做出一段吸引人的快手/抖音短視頻。
最後,抽空玩玩那些設計精妙的遊戲吧,比如《紀念碑穀》、《塞爾達傳說:曠野之息》之類;同時,遠離那些滿屏廣告,或者一心騙你在遊戲裡充值花錢的垃圾。
【問題103】休閒模式 | 不學學知識嗎?
當然要學知識。下面每種實用的電腦知識都夠大家學一陣子了。
(1)色彩知識:你知道同一張數碼照片在不同品牌的手機螢幕上、不同的電腦螢幕上、不同的智慧電視上顯示時,為什麼經常有較大色差嗎?你知道有一些色彩只適合螢幕顯示,不適合列印輸出嗎?你知道軟體工具裡常用的RGB、HSL之類的色彩空間都是什麼意思嗎?如何在設計PowerPoint幻燈片時選擇一組和諧美觀的色彩?
(2)字體知識:你知道什麼是襯線字體,什麼是無襯線字體嗎?你知道網頁中常用的英文字體都有哪些嗎?你知道商務演講時最適用于幻燈片的英文字體有哪些嗎?你知道電腦和手機常用的黑體、宋體、仿宋體、楷體等中文字體分別適合哪些實際應用場合嗎?你會將不同字體混排成一個美觀的頁面嗎?
(3)網路知識:你知道5G是什麼嗎?你知道5G和4G在通信頻寬、通信距離上的具體區別嗎?你知道什麼是路由器,什麼是防火牆嗎?你知道如何配置路由器,如何配置防火牆嗎?微信或QQ聊天時,對方發的文字、語音或視頻是如何傳送到你的手機上的?
(4)應用知識:淘寶中搜索得到的商品資訊是從哪裡來的?商品是按什麼方式排序的?為什麼購物APP經常會推薦給你一些曾經買過、看過的商品?你知道如何為自己建立個人網站嗎?你知道如何管理微信公眾號嗎?
(5)安全知識:你知道網路上的釣魚攻擊是怎麼回事兒嗎?你知道什麼是電腦漏洞嗎?你知道駭客為什麼想把一大批受攻擊的電腦變成可以遠端操控的傀儡機嗎?你知道為什麼現在很多手機APP都要通過短信發送驗證碼嗎?如果驗證碼被壞人截獲,你會面臨哪些風險?
這裡只是舉例。實用的電腦知識還有很多。大家可以自己發掘。
【問題104】休閒模式 | 我需要學程式設計嗎?
可以學,但不是必須。即便學,也只需要根據自己的需要,學那些最能幫你解決現實問題的部分。
【問題105】休閒模式 | 我該學什麼程式設計語言?
在“休閒模式”裡,電腦就是工具,程式設計也是工具,夠用就好。學什麼程式設計語言,完全看你想要電腦幫你做什麼。
• 如果你想對資料處理有更多自主權,那不妨學學Python;
• 如果你想做簡單的交互演示程式,那就先把JavaScript學起來;
• 如果你想更好、更快地寫論文,那不妨學學LaTeX(什麼什麼,LaTeX不是程式設計語言?你太小看LaTeX了);
• 如果你想學做簡單的手機APP,那麼,Android手機就學Java,蘋果手機就學Swift好了;
• 如果你只想知道程式設計是怎麼回事,那……從Python或JavaScript開始就行。其實,跟五六歲的小朋友一起學學Scratch圖形程式設計也不錯。
【問題106】休閒模式 | 我需要學人工智慧嗎?
在“休閒模式”裡,最需要學的不是“人工智慧的實現原理”,而是“什麼是人工智慧”,以及“人工智慧能做什麼,不能做什麼”。
• 在手機上試一試,人工智慧做語音辨識時能做到什麼水準?哪些話容易識別,哪些話不容易識別?
• 打開機器翻譯軟體,試一試哪些資訊翻譯得好,哪些資訊翻譯得不好?
• 手機上的拍照軟體一般都有人臉識別功能。試一試人臉識別在什麼場景下做得好,什麼場景下做得不好?
• 找一部講人工智慧的科幻電影,用自己的判斷解讀一下,電影裡哪些技術有可能成為現實,哪些技術存在邏輯矛盾。
【問題107】休閒模式 | 推薦什麼參考書、參考文獻?
書不重要,豆瓣評分7分以上的電腦應用、程式設計甚至科普類圖書都可以拿來翻翻。
直接在知乎裡搜索你想瞭解或學習的知識點可能更有效率。
如果你意猶未盡,覺得自己剛活動開筋骨,還想挑戰更高層次,歡迎進入“探險模式”。⟹請跳轉至【問題200】
否則,“休閒模式”到此結束。⟹請離開此問答
【問題200】探險模式 | 主要學什麼?
“探險模式”需要有挑戰精神。電腦科學的世界技術演進快,脈絡複雜,要想在探索時不迷路,你得通過有順序、有系統地學習電腦知識,慢慢構建出一張可以在未來幫你走得更遠的思維地圖來。
在“探險模式”裡,電腦就不止是一件能快速計算的工具了。電腦更像是我們大腦的一種延伸。這既包括認知能力的延伸,也包括認知邏輯的延伸。隨著學習深入,大家會逐漸體會到電腦所具有的多維度能力:
電腦是一種可以表示不同類型資訊(數、符號、文字、語音、圖像、視頻、虛擬空間、抽象邏輯)的“資訊管理機”;
同時,電腦也是一種可以連續執行指令以完成特定的資訊處理任務的“指令處理機”;
同時,電腦還是一種可以在知識與邏輯層面完成特定推理任務的“知識推理機”;
同時,電腦也是一種可以從人類給定的資料或自我生成的資料中總結規律,建立模型,自主完成某些決策的“智慧學習機”。
“探險模式”的目標就是盡可能準確地認識電腦,掌握有關電腦運行的最基本規律。有了這些基礎。未來在大學期間或工作中,你就能更容易地設計電腦軟硬體系統,或是設計出碳基大腦(人類)與矽基大腦(機器智慧)之間的最佳協作方案。
【問題201】探險模式 | 我的英語水準足夠嗎?
蘋果每年秋季的新品發佈會,不加字幕的話,你能聽懂多少?
能聽懂大部分:建議在學習電腦的過程中,盡可能使用英文教材、英文文檔。
能聽懂小部分:建議將原來準備學電腦的時間,分出一部分來學英語。
只能聽懂“你好”“再見”之類:⟹請離開此問答。然後,把原來準備學電腦的時間用於學英語,六個月後再回來。
【問題202】探險模式 | 我的數學水準足夠嗎?
如果你是數學和數學應用小能手——較複雜的數學問題總能快速找到核心思路,或快速簡化為簡單問題;很容易就能將抽象概念映射到具體的數學圖形,或將數學問題與相應的現實問題關聯在一起:請繼續探險之旅。
如果你應付正常數學課程感到吃力:建議將原來準備學電腦的時間,分出一部分來學數學。
如果你還搞不清楚什麼是方程、函數、集合、概率……:⟹請離開此問答。然後,把原來準備學電腦的時間用於學數學,六個月後再回來。
【問題203】探險模式 | 為什麼強調英語和數學?
(1)統計上說,最好的電腦參考資料大都是英文寫的,最好的電腦課程大都是用英文講的,最新的電腦論文大都是用英文發表的。
(2)函數、方程、坐標系、標量、向量、排列組合、概率這些中學數學裡會初步學習到的數學知識,是電腦科學的基礎。
【問題204】探險模式 | 電腦知識那麼多,正確的學習順序是什麼?
最重要的順序有兩個。建議先從順序一開始,學有餘力時兼顧兩個順序。
順序一:自底向上,即,自底層原理向上層應用拓展的順序。
電腦原理的基礎知識:
為什麼每台電腦(包括手機)都有CPU、記憶體和外部設備?
(馮·諾依曼體系結構的)記憶體中為什麼既可以存儲資料,也可以存儲指令?
CPU是如何完成一次加法運算的?
程式設計語言的基礎知識:
資料類型,值,變數,作用域……
語句,流程控制語句……
過程、方法或函數,類,模組,程式,服務……
編譯系統的基本概念:
電腦程式是如何被解釋或編譯成目標代碼的?
演算法和資料結構的基礎知識:
陣列,向量,鏈表,堆,棧,二叉樹,樹和圖……
遞迴演算法,排序演算法,二叉樹搜索演算法,圖搜索演算法……
應用層的基礎知識:
為什麼電腦需要作業系統?設備驅動程式是做什麼的?
網路通信的基本原理是什麼?流覽器是怎麼找到並顯示一個網頁的?
資料庫是做什麼用的?
虛擬機器是怎麼回事?
人工智慧系統的基礎知識:
先熟悉些線性代數、概率和數學優化的基礎知識。
什麼是機器學習?從簡單的線性回歸中體會機器學習的基本概念、基本思路。
什麼是神經網路?什麼是深度神經網路?為什麼神經網路可以完成機器學習任務?
如何使用PyTorch或TensorFlow實現簡單的深度學習功能?
順序二:自頂向下,即,自頂層抽象邏輯向下層具體邏輯拓展的順序。
• 電腦的本質是什麼?
• 什麼是圖靈機?什麼是通用圖靈機?
• 什麼是讀取﹣求值﹣輸出迴圈(Read–eval–print Loop,REPL)?
如何用自頂向下的方式理解(解析、解釋、編譯)一段程式碼?
• 靜態語言和動態語言的區別?
如何理解變數與資料類型之間的綁定關係?
• 什麼是函數式程式設計?
程式設計語言中,函數的本質是什麼?
函數為什麼可以像一個值一樣被表示、存儲、傳遞和處理?
• 什麼是物件導向?
類的本質是什麼?
如何用物件導向的方式定義個功能介面?
如何依據介面實現具體功能?
• 什麼是事件驅動?
什麼是事件?事件如何分發到接收者?
如何在事件驅動的環境中理解代碼的狀態和執行順序?
【問題205】探險模式 | 如何提高程式設計水準?
在掌握基本知識體系的基礎上,學好程式設計只有一條路:多程式設計,多參加程式設計比賽,多做程式設計題,多做實驗項目,多找實習機會——其中,能參與真實專案是最有價值的。
【問題206】探險模式 | 該從哪一門程式設計語言學起?
我個人推薦的程式設計入門語言(可根據情況任選):
Python
Java
Swift
C#
JavaScript / TypeScript
Ruby
……
可能不適合入門,但適合後續深入學習的語言:
C
C++
Go
Objective-C
組合語言
機器語言(CPU指令集)
Shell Script
Lua
Haskell
OCaml
R
Julia
Erlang
MATLAB
……
【問題207】探險模式 | 如何選參考書和參考資料?
(1)強烈推薦的參考書和參考資料:
• MIT、Stanford、CMU、UC Berkeley這四所大學中任何一個電腦專業方向使用的教學參考書或參考資料。網上可以查到這些學校電腦專業方向的課程體系,有的學校甚至公開了課程視頻。其中往往會列舉參考書和參考資料連結。
• 維琪百科(英文)上的數學、電腦科學相關條目。
• Github上star數在1000以上的開原始程式碼和開來源文件。
(2)強烈推薦但須小心辨別的參考資料:
知乎上的數學、電腦科學相關條目。使用時需要格外注意三件事:
儘量只看高贊答案或高贊文章;
辨別並避開廣告軟文;
辨別並避開純抖機靈的故事或段子。
Stack Overflow上的程式設計問題解答:
自己動手實驗,辨別解答是否有效。
CSDN上的程式設計問題解答:
自己動手實驗,辨別解答是否有效。
(3)其他推薦的參考書和參考資料:
國內專業作者寫作的專業技術書籍(豆瓣評分7分以上的)。
大廠(Google、Facebook、Microsoft、Amazon、阿裡、騰訊、百度、頭條等)資深工程師的技術公號、專欄、博客等。
著名圖書系列:如O’Reilly的動物封面的系列圖書(請注意最新版本和時效性)。
國內翻譯的著名技術圖書(譯本在豆瓣評分7分以上的)。
(4)儘量避免的參考書和參考資料:
• 已經過時的圖書或參考資料。
• 作者或譯者人數比章節數還多的專業圖書。
• 百度百科上的數學或電腦科學相關資料。
什麼什麼?你這篇問答居然沒有推薦一本具體的圖書?是,沒錯。如果你覺得即便有了上面的線索,自己還是找不到好書好資料,那也許你還是適合“休閒模式”⟹請跳轉至【問題100】
程式流程圖符號 在 Taipei Ethereum Meetup Facebook 的精選貼文
📜 [專欄新文章] 類 Python 的合約語言 Vyper 開發入門:與 Solidity 差異、用 Truffle 部署、ERC20 賣幣合約實做
✍️ 田少谷 Shao
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
有鑒於個人近期關注的 Uniswap 及 Curve 皆用 Vyper 實作,索性瀏覽了官方文件並嘗試一些開發工具,希望此文能減少一些讀者初嘗 Vyper 會遇到的麻煩!
Vyper and Solidity
Outline
一. Vyper 極簡介二. 與 Solidity 語法差異三. 開發、開發環境設置 1. 語法高亮 2. 本地 Vyper compiler 安裝 3. 使用 Truffle 操作 ERC20 - 安裝 Truffle - 發幣 - 寫個簡易賣幣合約四. 已知 Remix 問題 五. 結語
一. Vyper 極簡介
Vyper 是除 Solidity 外,以太坊上的另一智能合約 (Smart contract) 語言。其語法和 Python 相近,但畢竟也是寫合約的語言,邏輯差異不大,所以若熟悉 Solidity 應該不難理解用 Vyper 寫出的合約!
Vyper 主要被設計和 Solidity 的區別是安全性及可讀性,這部分會在下一段落及後方的實作中舉例說明。
二. 與 Solidity 語法差異
Vyper 與 Solidity 的差異有許多,在本段只就個人認為感受較深的三點進行說明,其他差異只進行翻譯,有興趣的讀者可以到官方文件詳細了解:https://vyper.readthedocs.io/en/latest/index.html
1. 沒有 modifier
Solidity 常見的 onlyOwner() modifier; 由於 gist 沒有 Solidity 的語法高亮,故截圖
在 Vyper 中單純用 assert 及 assert_modifiable 來進行條件檢查,兩者差別為若要檢查函數執行後的返還值,要用後者,如下圖:
Vyper 寫法
2. 沒有 Class inheritance 繼承
繼承是物件導向程式設計 (OOP) 的核心概念,但各種繼承關係有時候確實很複雜。Vyper 沒有繼承,這無疑大幅地增加了程式可讀性及安全性,以及降低審計程式碼的難度。在此提供一個例子供不熟悉 OOP 複雜之處的讀者有個概念:
source: https://consensys.github.io/smart-contract-best-practices/recommendations/#multiple-inheritance-caution
在上例中,contract A 的 fee 值 (因繼承自 contract B 和 C,故有 fee 一值) 是 5、a 值也是 5 (因繼承自 contract Final,故有 a 一值)。原因是 A 先繼承 B 再繼承 C,因此 contract A 中的 setFee() 是使用了 contract C 的 setFee(),而 a 值是由於 C(5),這代表 contract C 的 constructor (舊版本中即 function C(),函式名稱同 contract 名稱) 被傳入的值為 5。
稍微延伸一下以上概念,將 contract A 改成:contract A is C, B。如此一來,a 值還有 fee 值都會是 3,因為這次 A 先繼承 C 再繼承 B,因此最終吃到的值是 contract B 的。
以上就是 OOP 繼承的複雜之處的簡單範例說明,應該能稍微感受到爲什麼除去繼承後會大幅提高可讀性及安全性,畢竟即使是熟悉 OOP 的人有時頭腦一混亂也會開始懷疑自己寫的程式碼繼承結構是否正確 …
3. 沒有 dynamic array 動態陣列
這應該是目前 Vyper 設計中爭議最大的部分。沒有動態陣列代表在宣告陣列時需要宣告其長度,也就是說 Solidity 中的寫法 uint[], bool[] 等等,這些是不會出現在 Vyper 的。在 Vyper 中只能出現諸如:
# Vyper 的變數宣告方式為 變數名稱: 存取範圍(變數型態(若為陣列給長度))
values: uint256[10]participants: public(address[20])
可以看到上方的 uint256 及 address 兩陣列皆需要宣告長度,不能不宣告而使其動態地配置空間。
沒有動態陣列固然可以確保執行運算的範圍、次數,但一來動態陣列真的很方便、二來在 Solidity 有此功能而 Vyper 卻沒有的情況下可能會造成麻煩,詳見此一討論串:點我。
4. 沒有 inline assembly,程式碼中不會有組合語言
5. 沒有 function overloading,函式不會因傳入的參數數目不同而結果不同
6. 沒有 operator overloading,運算符號不會有不同於預設的自定義功能
7. 沒有無限迴圈,可免於 gas limit attack
8. 十進位定點數 decimal fixed point 而非二進位 (binary) 定點數,詳見:點我
三. 開發、開發環境設置
結論先講
開發 Vyper 的最佳姿勢目前個人認為是在本地裝上 Vyper compiler、用 Truffle 部署,並在撰寫時將檔名後加上 .py 就能有 Python 的語法高亮👌
1. 語法高亮 (syntax highlighting)
有語法高亮絕對是舒服地寫程式的第一步。
Remix 有 Vyper 的語法高亮,但一來個人目前不推薦使用 Remix 來撰寫 Vyper,原因詳見下方 4. 已知 Remix 問題;二來 Remix 的語法高亮其實也沒有很清楚,因此個人推薦:在本地開發,將檔名後加上 .py 就會有 Python 的語法高亮。
2. 本地 Vyper compiler 安裝
照官方說明使用 Python 的虛擬環境 virtualenv:
source: https://vyper.readthedocs.io/en/latest/installing-vyper.html#installing-vyper
簡單兩點提醒:
如果中間那行報錯但確實已經有 Python,則可能是版本問題。依照自己電腦上的版本改成相應的即可,ex: python3.6 改成 python3
進入虛擬環境後(檔案路徑前方應有 vyper-venv 的提示),使用此指令: vyper {檔案名稱}.vy,即可編譯 .vy 檔;使用完畢後輸入 deactivate 即可退出
3. 使用 Truffle 操作 ERC20
安裝 Truffle
Truffle 雖有冗餘的 migration 但也別無他法,畢竟 Remix 目前仍不完善 :(
下載流程可以照官方文件,使用 vyper-example:
source: https://github.com/truffle-box/vyper-example-box
由於我們會接上測試網 Ropsten,因此還要下載 truffle-hdwallet-provider:
source: https://github.com/trufflesuite/truffle-hdwallet-provider
接者就可以開始使用 Vyper 寫合約了!
發幣
由於 Vyper 的官方文件中已經有許多優質範例,因此本文希望來點不一樣但大家卻又很熟悉的…以 ERC20 為例(這千篇一律的主題xD):
用 Curve 的 ERC20 程式碼為範本,發一個幣(又要發…)
寫一個簡易賣幣合約
選擇這個主題一方面畢竟 ERC20 是以太坊的最大宗應用之一,二來有興趣的讀者可以透過讀 ERC20 的程式碼來熟悉 Vyper,並在看過本文的流程後對於用 Vyper+Truffle 來操作 ERC20 有完整的概念!
好的,首先複製一份 Curve 的 ERC20 程式碼(看到就順手拿來用),並複製到 Truffle 所在路徑的 contracts 資料夾中:https://github.com/curvefi/curve-contract/blob/pool_compound/vyper/ERC20.vy
由於第一點希望著重在跑一次流程,因此不改動合約的程式碼。
將 ERC20.vy 複製到 contracts 資料夾中後,到 migrations 資料夾開啟 2_deploy_contracts.js,首先將 require() 中的參數改為 ERC20.vy 的檔名 ERC20,再來依照自己喜好決定幣的名稱、代號、小數點位數及發行總量,輸入於 deployer.deploy() 中。
接著,為了和測試網 Ropsten 互動,需要將以下程式碼寫入 truffle-config.js。
第二行的 privateKeys 是帳號的私鑰。以下實作需要兩個帳號來操作,因此請從錢包匯入兩組私鑰(並非助憶詞)。
在第 13 行中 HDWalletProvider 此函式的第三個參數代表要用第幾個帳號最為預設帳號(部署合約等),第四個函數代表總共匯入幾組帳號。而第二個參數則是需要至 Infura 申請一個 project 來得到串接 Ropsten 的連結。這兩步驟並非本文重點,因此不詳細解說步驟,Google 搜尋關鍵字應該就會找到方法!
接著,就可以輸入以下指令來將代幣發佈到 Ropsten:
truffle deploy --network ropsten
有進入虛擬環境才可以編譯 .vy 檔,若忘記就會收到如下的錯誤訊息:
記得打開虛擬環境才能編譯 .vy 檔
成功後就可以在 contract address 中看到代幣發佈的位置,加入到 Metamask 中就可以看到。本文的例子是維尼代幣 Winnie the Coin, WTC ;)
contract address 便是 ERC20 的所在
Winnie the Coin, WTC
好了,到此測試網上又多了一個測試用的垃圾廢幣。
寫個簡易賣幣合約
賣幣合約中我想要簡單有兩個功能就好:付錢買幣 、結束銷售,以下就是程式碼。買幣的部分就不寫太詳細,固定價格為 0.01 Ether 可以買 500 代幣。
簡單說明幾點:
Solidity 的 constructor() 在 Vyper 中為 Python 風的 __init__():
函式的屬性(public, private, payable 等等)放在函式上方,與 Python 的修飾器位置相同
總之寫法跟 Python 很像,次方也一樣是用兩次乘法代表:**
變數前加上 self 代表是當前合約的變數/全域變數,因此非常容易與函式中的變數/區域變數做區隔
由於已經在第一行匯入了 ERC20 那份合約,因此透過將地址傳入合約當參數,就可以呼叫在該地址的合約:ERC20(self.tokenAddress) 。並且,可以將部署的合約存成一個變數 erc20 較方便
寫完合約後一樣要更改 migrations 資料夾中的 2_deploy_contracts.js 如下,將代幣所在的地址作為參數輸入。
由於先前已經部署過一次了,因此要重置才能再部署第二次,輸入以下指令:
truffle deploy --reset --network ropsten
部署成功之後就要來試著買幣啦!輸入以下來進入 console:
truffle console --network ropsten
成功進入後應該會看到 truffle(ropsten)> 的字樣。接著,首先取得部署的兩合約,並查看是否有返回合約資訊:
# ERC20 及 SellToken 是先前在 2_deploy_contracts.js 中的變數名稱,代表被部署的合約
let instance1 = await ERC20.deployed()instance1 # 印出 instance1 的資訊
let instance2 = await SellToken.deployed()instance2 # 印出 instance2 的資訊
再來,為了讓 SellToken 可以賣幣,要先用 ERC20 的合約匯幣到 SellToken 的合約。因此,輸入以下指令:
instance1.transfer(instance2.address, 10000)
# 這裡數字只要設為 > 500 就可以
接著,我們要利用第二個帳號去買幣(第一個帳號為預設帳號,因此就是代幣擁有者)。將帳號的資訊存入變數 accounts 中,再指定送出交易的帳號是第二個帳號。由於我個人匯入私鑰的順序是將第一個帳號存在 truffle-config.js 的 privateKeys[0]、第二個帳號存在 privateKeys[1],因此第二個帳號的地址就會在 accounts[1] 的位置:
let accounts = await web3.eth.getAccounts()
instance2.buyToken({from: accounts[1], value: 10000000000000000})
# value 為 10^16 是因為在 SellToken 的 buyToken 函式中買一次要 0.01 Ether, 即為 10^16 wei
然後應該就會在自己的第二個帳號中看到匯入的幣了~
最後,由於合約中結束銷售就是一個自殺 selfdestruct 函式,因此可以呼叫看看,第一個帳戶錢包中的錢應該會增加,因為第二個帳戶有付款買幣;並且,可以到 Ropsten 上瀏覽,應該能看到相關提示:
中間 contract 的右上角有 Self Destruct 的樣式
四. 已知 Remix 問題
Remix 目前有兩個版本,只有新版有 Vyper 的編譯器。在此整理目前遇到的問題,如果有人也遇到可以對照一下本處,可以省去很多自我懷疑xD
不會報錯
Remix 的編譯結果有時會是錯的、和本地端編譯出來的結果不同
舉上方的 SellToken 合約為例,將其複製到 Remix 中使用左邊的 Remote Compiler 有錯,但又不報錯 q_q (ERC20 的合約有在同檔案目錄)
左方有紅色三角形,代表編譯失敗,但沒有報錯訊息可以看…
getter function 竟然要花錢
用 Solidity 寫的合約,查詢 public 變數的值應該是不用消耗 gas 的,但不知何故查詢 Vyper 寫的合約的 public 變數卻要消耗 gas,如下圖…
可以看到中下方有 22026 gas 的消耗
Local compiler 無法使用
圖中的 Local Compiler 此選項,個人雖照官方文件執行 vyper-serve 但卻失敗,因此若有讀者成功希望能留個言不吝分享!
五. 結語
Vyper 作為一個比 Solidity 更新的合約語言,在寫程式碼的方面沒什麼問題,但相關的開發工具、學習資源等都遠不及 Solidity。
Vyper 主打的兩個特色:可讀性的部分相信看完上面的讀者應該已經有些感覺;安全性…小白如作者我倒是沒有感受到顯著的不同。況且 Solidity 已經發展許久,很多錯誤的寫法、知名的安全漏洞大家應該也很熟悉了,還有 Openzeppelin 提供安全合約寫法的範本,因此有待以後高人解說安全性是否真的是 Vyper 較好。
有興趣者可以查看 Vyper 的安全報告:點我,大意是目前 Vyper 的編譯器仍有許多問題待改進! (感謝 Chih-Cheng Liang 的提供)
本文對 Vyper 的介紹及其與 Solidity 的差異只講了個大概,欲知更詳細的介紹還是要麻煩讀者前往官方文件了:https://vyper.readthedocs.io/en/latest/index.html
最後,如果本文有任何錯誤,請不吝提出,我會盡快做修正;而如果我的文章有幫助到你,可以看看我的其他文章,歡迎一起交流 :)
田少谷 Shao - Medium
類 Python 的合約語言 Vyper 開發入門:與 Solidity 差異、用 Truffle 部署、ERC20 賣幣合約實做 was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
👏 歡迎轉載分享鼓掌
程式流程圖符號 在 程式流程圖副程式及主程式操作說明601 - YouTube 的推薦與評價
程式流程圖 副 程式 及主 程式 操作說明601. 1.1K views · 3 years ago ...more. Try YouTube Kids. An app made just for kids. ... <看更多>
程式流程圖符號 在 紀老師程式教學網- [網文觀點] 李家同先生:不會畫流程圖 的推薦與評價
還是應該說,流程圖的最大用途是在幫我們能方便思索程式流程跟邏輯的合理性而不是它代表邏輯思考的全部? 5 yrs. 1. ... <看更多>
程式流程圖符號 在 流程圖形狀符號 的推薦與評價
決策符號, 某個事件做判斷. path, 路徑符號, 指向符號做什麼事. file, 文件符號, 輸入或輸出文件. files, 多重文件符號, 輸入或輸出數個文件. sub, 副程式符號, 執行多個 ... ... <看更多>