這種叫做「魔點」的神秘生物會走迷宮、切兩半只需2分鐘就能重生...
「它沒有腦,卻能學習,這讓我們很驚訝,如果把兩個魔點放在一起,學習過的一方會把知識傳遞給另一方」
這是不是外星生物呢?
#外星生物 #魔點 #巴黎動物園
---------------------------------
㊙LINE好友獨家全新服務
http://bit.ly/3bTyVIZ
🌊加入﹝風傳媒Telegram﹞,獨家內幕搶先看
http://bit.ly/2Ta3nWR
♞國際政經強強聯手,風傳媒x華爾街日報,給您最權威的中英日全球新聞!https://bit.ly/2tehBg1
🔥下載﹝風傳媒APP﹞,更多熱門資訊一手掌握
http://bit.ly/2P4VOzg
同時也有1部Youtube影片,追蹤數超過11萬的網紅GreatKidsLearning,也在其Youtube影片中提到,Python學習09 如何下載Blob影音伺服器的影片 (Download the video files from the video server.)...
「blob下載」的推薦目錄:
- 關於blob下載 在 風傳媒 Facebook 的最讚貼文
- 關於blob下載 在 Taipei Ethereum Meetup Facebook 的最佳解答
- 關於blob下載 在 鄭龜煮碗麵 Facebook 的精選貼文
- 關於blob下載 在 GreatKidsLearning Youtube 的精選貼文
- 關於blob下載 在 [GC] Chrome如何下載blob加密影片? - 看板Google - 批踢踢 ... 的評價
- 關於blob下載 在 有人知道怎麼破解Blob嗎? - 3C板 | Dcard 的評價
- 關於blob下載 在 blob video download online的影片第1集 - YouTube 線上影音 ... 的評價
blob下載 在 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.
👏 歡迎轉載分享鼓掌
blob下載 在 鄭龜煮碗麵 Facebook 的精選貼文
上禮拜,雖然大家(包括我)都比較關心學姊說 #統獨是假議題,但其實有件算是重要的事情發生。
那就是 3/26 號的時候,歐盟的立法機關之一歐洲議會 ( European Parliament ) ,通過新的著作權規範。
( European Parliament 歐洲議會自己的新聞稿:
https://www.europarl.europa.eu/news/en/press-room/20190321IPR32110/european-parliament-approves-new-copyright-rules-for-the-internet )
PNN 公視新聞網 新聞的報導:
https://news.pts.org.tw/article/427017
雖然還得經過歐盟理事會,但修法的方向不會有太大改變。這次的重點雖然是放在著作權,不過我認為更核心的轉變,其實是「#平台需要為上傳者上傳的內容負責」。
在民主開放國家市場成長起來的網路公司,如 Google、Facebook、Amazon 等等,一個一個成為巨頭之後,引發了許多你我都知道的負面效應。這些公司的規模已經太大,大到已經不是他們避不避得開槍口的問題,而是槍口避不開他們。從選舉結果到經濟停滯到家庭失和,都找得到理由可以怪這些平台,而且很難說是污衊。
雖然,我們還是不能說各種問題「都是平台的錯」,但未來平台顯然必須負起越來越重的內容管制責任,這樣的轉變關鍵,在於公眾也越來越同意,時候到了,是該對平台施以更高的要求了。這一趨勢,醞釀了很長一段時間。
( 歐洲議會有點像是歐盟的下議院
https://en.wikipedia.org/wiki/European_Parliament )
大家都知道,著作權的議題在網路上一直是備受關注的,像是 2011 年在美國吵得很兇,台灣也很多人討論的 SOPA 跟 PIPA 法案。
( 關於 SOPA 停止網路盜版法案
https://en.wikipedia.org/wiki/Stop_Online_Piracy_Act )
( 關於 PIPA 保護知識產權法
https://en.wikipedia.org/wiki/PROTECT_IP_Act )
在台灣,也有好幾次爭議。最近一次我比較有印象的應該是 2016 年立委打算增加「邊境管制」,也就是要封鎖(或停止解析)侵權網站的 IP,後來因為網路輿論反對,就沒有繼續立法了。
( 當時的各方意見很多,章忠信律師的分析我個人比較認同:
http://www.copyrightnote.org/ArticleContent.aspx?ID=54&aid=2836 )
最近可能很快就要通過的著作權修法,則是針對眾多像是「安博盒子」之類的機上盒,不管是販售還是協助安裝,都要課以刑責。
( 經濟日報的報導:https://money.udn.com/money/story/5613/3721506 )
這些事情其實背後當然也是有各種角力,例如外國的商會、政府、本地的內容業者、一般使用者、倡議組織、平台公司,甚至國家。
總之,現在整個風向轉了。早幾年,保障高度言論自由,鼓勵網路科技創新,是主流,但最近幾年,加強管制成為顯學。可能是因為負面效應已經動搖國本,可能是因為科技公司不斷擴張到新領域,搶走利潤,讓市場既有的其他玩家反彈;可能是因為中國管制模式輸出。儘管對於強度過高的政府監管我站在反對方,但美國的科技巨頭總算開始面對現實。
在侵犯隱私、助長仇恨、影響選舉等批評聲浪下,臉書執行長馬克佐克伯到過美國國會聽證,也被歐洲議會叫去(但叫不動)。上個月初,美國下屆總統參選人,民主黨的參議員華倫則正式提出「拆解數位科技巨頭公司」的倡議,也將是接下來持續加熱的議題。
( 我之前對華倫這個倡議的簡要討論:
https://www.facebook.com/noodleswithturtle/posts/565115280650509 )
而陸續透過個人網誌,表明要改變臉書的馬克,前天竟然投書給華盛頓郵報,表示:大家都說要管那就來好好管一管吧。
請見華盛頓郵報:
https://www.washingtonpost.com/opinions/mark-zuckerberg-the-internet-needs-new-rules-lets-start-in-these-four-areas/2019/03/29/9e6f0504-521a-11e9-a3f7-78b7525a8d5f_story.html
投書很短,寫得很清楚,建議自己看一下。簡單來說,他建議針對 #有害內容,#選舉公正性,#隱私,和 #數據可攜性 四個項目,建立一個公私協力管控的機制。
而其中我覺得最關鍵的項目,是「數據可攜性」(data portability) 。
可攜性的概念,大家應該很熟悉了,最簡單的例子就是我們現在換電信公司,例如從台灣大哥大換成中華電信,不用換手機號碼。在台灣,號碼可攜其實是在 2005 年開始實行的,從此之後大大降低了門號使用者轉移的成本,加強了電信公司之間的競爭。
馬克在他的投書中,關於數據可攜性的部分也寫到:
「(對平台)的管制,應保證數據可攜帶性原則。如果你與一項服務共享數據,你應該能夠將其移動到另一項服務。這為人們提供了選擇,使開發人員能夠進行創新和競爭。
這對於網路本身,和創建人們想要的服務,非常重要。這就是我們構建開發平台的原因。真正的數據可攜性應該更像是人們使用我們的平台登錄應用程序(App)的方式,而不是現有的下載信息存檔的方式。但這需要明確規定誰在服務之間移動時負責保護信息。
這也需要通用標準,這就是我們支持標準數據傳輸格式和開源的『數據傳輸計畫』(Data Transfer Project) 的原因。」
( 關於這個由微軟、Google、FB、Twitter 共同支持的 「數據傳輸計畫」:https://datatransferproject.dev/ )
在上個月 14 號, Facebook 有一次大規模的當機,那天我不禁覺得,這種大社交平台當機,就像是銀行提款機出問題一樣,使得儲存在裡面的 #社交資本無法被提領。不管是工作或生活上要聯絡的人、要發的訊息,都因此受到影響。
社交資本,就是由我們上傳的數據跟使用行為建構出的關係網絡,並不是虛幻難以掌握的,而是可以定義、更是可以定價的。畢竟許多網路公司就是透過網絡效應才能讓價值水漲船高,快速成長。他們就像是大家都信任的社交資本銀行。
然而,當遇到大規模當機、或是傳出資料外洩、被盜,這時候就會想:
1. 自己是不是把社交資本都存在同一個社交平台/銀行?
2. 為什麼只能在 FB 銀行領錢?當 FB 銀行的提款機故障, 為什麼不能在 LINE 銀行或 TENCENT 銀行的提款機領出來?為什麼 GOOG 銀行可以說關就關、把錢都沒收了?
3. 為什麼儲存在這些社交銀行裡的社交資本,那麼難轉移?轉帳跟匯款那麼難?
4. 以及為什麼這些可被視為社交資本銀行的平台病不像是真的銀行,當我們的社交資本如今屢屢被大規模盜竊、被濫用時,他們鮮少需要賠償跟負責?
其實我以前就跟網路上的朋友討論過,要解決社群媒體帶來的壞處(例如假新聞等等),而不減損其好處的作法,其中之一就是降低這些平台的 #套牢效應。
一個辦法就是成立 #公共的社群平台,基本功能完全複製大型平台,讓用戶可以輕易從商業社群平台,透過數據可攜性,打包資料跟 #社交資本 ,轉換到公共的平台上。
過程必須要很簡單,數據轉移必須要很安全,就像是在這個還不存在的公共社群平台點一下「FB 登入」,然後兩秒後,完成了。
重要的是,透過數據可攜性轉移出來的不能只是帳號,而是所有我們放在社群媒體上的數據,跟編織出來的關係。
其實也可以想像成是中央存款保險公司的概念。
https://www.cdic.gov.tw/main_deposit/faq.aspx?uid=59&pid=59%20
只要數據可攜性存在,加上一個堪用的公共化備品,我認為商業平台就會比較謹慎,不那麼貪婪,連帶產生的問題就會少很多。
這點子完全不是首創。之前早有類似的失敗案例,例如 Diaspora、或是工研院的通訊軟體 Juiker ,區塊鏈出現之後也有很多新的社交網站,讓大家可以「社交挖礦」。
我想問題在於,社交資本被套牢已經太嚴重,所以第一步其實是讓社交資本可以被匯出。就像電信公司為了套牢用戶,手機號碼本來不可攜,後來可攜從概念變成規範,競爭於是更激烈,消費者因此獲益。
之前在個人帳號上討論這個想法的時候,有朋友認為其不可行之處:就是政府是做不出可用的公共化備品的。
如果是政府發包做網站,要做出一個能成為商業科技公司備品的社交網站,這件事我也不相信。
但如果是採取「公共媒體」的角度,我認為就是一個選擇要不要做的問題。
有些人認為英國的 BBC、日本的 NHK 很棒,促進了整體媒體品質、提升了公民素質、建立社會公共討論的基礎,但也有些人認為公共媒體拿太多錢,做得太好,反而讓商業媒體無法發展。
像台灣早期發展公共電視,一開始走小蝦米路線,公共電視曾被視為雞肋,沒競爭力,不過一直走到現在,反而成為廢鐵鎮僅存的救贖。現任文化部長 鄭麗君 有意推動大公共媒體,把央廣、中央社等等都結合在一起,有人認為這是唯一能夠重振台灣文化的機會,有人覺得沒競爭力,浪費錢。但總之,就是一種選擇。
所以讓我們想像一下:如果如馬克投書所建議的,接下來新的法規要求社交平台需要讓用戶可以自由匯出所有資料,轉移社交資本,社交平台就會必須做出改變,例如要求工程師讓資料架構更簡單,就跟歐盟 GDPR 的規定出來之後一樣。
當然,成功的平台都會讓我們覺得不需要做這件事,畢竟我們的時間跟精力有限,投入在少數甚至單一平台上比較合理,就像我們也不會三不五時就把存在一個銀行的錢全部領出來,存到另一個銀行......除非這家銀行讓我們覺得問題很大,就像現在這樣。
當然,我認為 FB 等社交平台的自然壟斷在資料、數據、社交資本可自由匯出之後就會降低。所以重點或許不是一定要有公共化的社交平台存在,而是只要有了可以自由匯出的前提,會有很多很多套自然出現。
但從公共媒體的目標與實踐傳播權的角度來看,社交媒體既然已經如此關鍵,若公共媒體接下來還是只是停留在創造內容上,而不趁這個全球都在檢討商業社交媒體平台的時機,來開始探索「公共化社交媒體平台」的可能性,我覺得就太可惜了。
能夠合作的對象其實很多。舉例來說,網路之父 Tim Berners-Lee發起分散式網路專案Solid,將資料「還權於民」,就是同樣的概念。
報導:
https://www.ithome.com.tw/news/126188
而很關注科技巨頭壟斷議題的 PTT 創世神 杜奕瑾 (Ethan Tu) 也提出 PTT.ai 的計畫,我個人也很期待。
Github 上的計畫連結:
https://github.com/ailabstw/PIPs/blob/master/PIP-0001.md
當然,馬克倡議的公私協力機制,其實也有很多先例可循,也就是 Internet Governance Forum 網路治理論壇。
https://www.intgovforum.org/multilingual/
台灣也有 @台灣網路治理論壇 Taiwan IGF
https://www.facebook.com/groups/1757842584459069/
總結來說,我認為在台灣,社群媒體如 FB、IG、Google、Youtube 等的好壞影響力非常大,因此關於馬克提出的四個項目--有害內容、選舉公正性、隱私、數據可攜性--我們不該只是等著歐盟或美國跟這些公司把問題解決,而是該更主動提出改革的做法。
我個人認為,優先從「數據可攜性」這個偏「結構管制」而非「內容管制」的項目切入,比較不具爭議;而以「公共化社交媒體平台」為探索的方向,也比較有進步性跟未來性。
如果民主自由是我們信仰的故事,但具有影響力的媒體或社交媒體平台,卻開始讓這個故事再也講不下去,公民就不該再袖手旁觀了。
要不然,或許是該向年輕人學習,開始用無廣告、無農場文、可輕易匯出的 Google Doc 當作社交平台了。
延伸閱讀:
Daodu Tech 科技島讀 的好文:社交資本論
https://daodu.tech/03-05-2019-social-capitalism
截圖來自:
https://www.facebook.com/zuck/posts/10107013839885441
blob下載 在 GreatKidsLearning Youtube 的精選貼文
Python學習09 如何下載Blob影音伺服器的影片 (Download the video files from the video server.)
blob下載 在 有人知道怎麼破解Blob嗎? - 3C板 | Dcard 的必吃
Can anyone crack the video link of source code "Blob:url" on the FB ... 就可以直接開分頁或下載原始檔但是就只有Bolb的方式寫的網頁沒辦法這樣 ... ... <看更多>
blob下載 在 blob video download online的影片第1集 - YouTube 線上影音 ... 的必吃
AntikytheraFragment#3-AncientToolTechnology-HandCutPrecisionFiles,Python學習09如何下載Blob影音伺服器的影片(Downloadthevideofilefromvideoserver.) ... ... <看更多>
blob下載 在 [GC] Chrome如何下載blob加密影片? - 看板Google - 批踢踢 ... 的必吃
因事務上需要
影片只有騰訊上找到
用Freedownload無法抓到影片
試著看網頁元素
影片卻是blod加密
blob影片,如何Chrome下載?
--
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.13.197.246
※ 文章網址: https://www.ptt.cc/bbs/Google/M.1557905072.A.B97.html
※ 編輯: neil136 (101.13.197.246), 05/15/2019 15:41:31
※ 編輯: neil136 (101.13.197.246), 05/15/2019 22:19:37
... <看更多>