Hackpads are smart collaborative documents. Join Hackpad Now.

tmonk

170 days ago
Unfiled. Edited by tmonk 170 days ago
  • Peace:現在想講的主題大概有三個:1.一個公民討論法律的平台可能的流程,這個流程需要多少時間跟專業的人。2.討論任何一個法規,在場應該要有那些人,有甚麼考量。3.一個開放的法律討論平台,是要自己去找人來提案,還是要等待別人來提案。4.政府該如何回應民間對法律的提案,民間對法律的提案要到甚麼樣的標準才是一個完整的。
 
535 days ago
Unfiled. Edited by Peace , tmonk , 仔魚 535 days ago
桌遊王/博庠(桌遊王同事)
 
仔魚
  • 一鍵去識別化小工具?
 
仔魚 Ronny
政府開放諮詢小組決議效力&執行力
諮詢小組會議法定頻率降低(名單被批評:https://data.gov.tw/node/15622
數位典藏(政權交換時可能被消除的資料該如何保存)
 
  • 政府資料開放諮詢小組設置要點
一、為配合政府資料開放政策,建立跨域合作溝通平臺,擴大推動資料開放, 達成施政便民及公開透明之目的,於行政院及各中央二級機關設政府資料 開放諮詢小組(以下統稱各級諮詢小組),特訂定本要點。 
 
二、行政院數位國家創新經濟推動小組之數位國家分組下設行政院政府資料開 放諮詢小組(以下簡稱行政院諮詢小組),各中央二級機關設中央二級機 關政府資料開放諮詢小組(以下簡稱中央二級機關諮詢小組)。各級諮詢小組之任務分別如下:
(一)行政院諮詢小組:
  • 1.擬訂資料開放推動政策。
  • 2.跨域合作溝通協調平臺。
  • 3.督導資料開放推動成效。 
(二)中央二級機關諮詢小組:
  • 1.擬訂該機關與所屬機關資料開放行動策略,強化政府資料開放質與量 、建立推廣及績效管理機制。
  • 2.規劃指導所屬機關資料開放,推動資料集分級、收費疑義之諮詢及協調。
  • 3.建立政府與民間溝通管道,促進多元領域代表參與資料開放諮詢及協調,共商解決方案。 
 
三、各級諮詢小組運作架構如下:
(一)行政院諮詢小組:
置召集人一人,由行政院資訊長兼任,置委員八人至十一人。除召集人為當然委員外,其餘委員由行政院院長就下列人員派 (聘)兼之;民間代表人數不得少於委員總數三分之一
  • 1.機關代表:由國家發展委員會、法務部、經濟部及財政部等機關資訊長擔任。
  • 2.民間代表:由公(協)會、社會團體代表、具相關學術專長或實務經驗之學者專家擔任。
  • 3.行政院諮詢小組之幕僚作業,由國家發展委員會派員兼辦。 
 
(二)中央二級機關諮詢小組:置召集人一人,由各該機關資訊長兼任,委員 十一人至二十一人。除召集人為當然委員外,其餘委員由各該機關首長就下列人員派(聘)兼之;民間代表人數不得少於委員總數三分之一:
  • 1.機關代表:由法制、業務、主計及資訊等單位主管及所屬機關主任秘書層級以上人員擔任。
  • 2.民間代表:由業務領域代表、公(協)會、社會團體代表、具相關學術專長或實務經驗之學者專家擔任。
 
四、各級諮詢小組召開會議方式如下:
(一)行政院諮詢小組:每年以召開二次為原則,並得視需要召開臨時會議。 
(二)中央二級機關諮詢小組:每季以召開一次為原則,每年不低於二次,並得視需要召開臨時會議。 
(三)各級諮詢小組召開會議時,由召集人召集並擔任會議主席。召集人因故未能出席會議時,得指定委員一人代理之。
(四)各級諮詢小組應有委員總數二分之一以上出席,出席委員中之民間代表應至少二人,且不得少於出席人數之三分之一,始得開會。 
 
五、各級諮詢小組開會時,得邀請有關人士列席提供意見、報告或說明。
 
六、各級諮詢小組政府機關代表之委員,應隨其本職進退。 各級諮詢小組民間代表之委員任期為一年,期滿得續聘一次,並得隨 同召集人異動改聘之。 前項委員由公(協)會或社會團體代表出任者,應隨其本職進退;其 為學者專家者,於任期間因故出缺時,由召集人所屬機關補聘之,補聘委員之任期至原任期屆滿之日止。
 
七、各級諮詢小組委員應親自出席會議。但代表政府機關出任之委員,因故未能親自出席時,得指派代表出席,並參與發言及表決。
 
八、各級諮詢小組委員均為無給職。
 
九、各級諮詢小組委員名單應公開於機關網站。
 
  • 十、中央二級機關諮詢小組應按開會頻率檢視該機關與所屬機關提報之盤點資料及民間需求之回應說明,涉機關主管法規疑義者,應會同機關法制單位檢討修正,並確認回應說明之適切性;涉機關業務流程或資訊系統問題者,應排定改善期程,定期追蹤列管;涉跨部會法規疑義者,應提報行政院諮詢小組。
 
十一、中央二級機關諮詢小組應按開會頻率提報該機關與所屬機關資料開放推動成果送行政院諮詢小組備查,並按開會頻率於政府資料開放平臺(data.gov.tw)公開審查結果及說明未能開放之依據,並更新預計開放 資料集清單。
 
 十二、各級諮詢小組會議紀錄,應載明各方意見,並公開於政府資料開放平臺。
 
十三、中央二級機關於本要點生效前,已設有資料管理諮詢或審議機制者,得依其原有機制辦理,且應定期檢視適時增列民間代表,共商平衡敏感資料保護及開放應用解決方案,並依第九點至第十二點規定辦理。 
 
十四、行政院諮詢小組相關工作所需經費,由國家發展委員會循預算程序編列預算支應;中央二級機關諮詢小組相關工作所需經費,由各該機關循預算程序編列預算支應。
 
 十五、各級諮詢小組不對外行文;其決議事項以機關名義行之。
 
 
 
目前有檔案法、政府公開資料法,希望能以現行的法規修正去調適資料整合的議題,
 
 
 
。pdf/沒有超連結/沒有ID/中心沒有放好/資料管理/schema亂七八糟(共用語彙)/license不清楚/沒有公開/活動單一窗口/(農業、big 5 Utf-8)
 
tmonk 開放資料推動現況:(訪談小彭  -- 彭盛韶/時代力量智庫副執行長 )
Shu L 1.機制:過去行政院院長有下令,各單位都必須跟民間委員共同組成開放資料諮詢小組,開會的頻率是兩個月一次,這個機制是有固定在進行。
2.國發會跟民間社群同時在擬定開放資料品質的評鑑,目前主要以「可取得」(資料是否能夠直接取得,或是提供 API 等方式),「易於被處理」(重點一直都不是「機器可讀」,而是「結構化資料」,所以資料的結構化,編碼說明等),「易於理解」(資料資源是否提供 data schema,meta data 的描述式否清楚,依照公佈的標準 - 目前有不少資料集的描述都直接把資料集標題複製貼上)以這三個方向來評比資料的「實用性」與「可用性」。
3.民間合作的幾個案例:
(4)空氣pm2.5地圖:https://airmap.g0v.asper.tw
(5)地方311系統(高雄):https://wcc723.github.io/KStyphon/
(6)交通分析(公車、捷運、Youbike):http://demo.datarget.com.tw/TripTaipei/
 
仔魚
  • 參考資料
(一)政府資料開放進階行動方案 – 引領政府機關深化推動資料開放,建立民間協作改善政府治理模式,運用資料輔助施政及創新經濟量能,使我國成為國際開放標竿。
(二)行政院及所屬各級機關政府資料開放作業原則 – 推動行政院及所屬各級機關政府資料開放,結合民間資源及創意,達成施政便民及公開透明之目的。
(三)政府資料開放諮詢小組設置要點 – 配合政府資料開放政策,建立跨域合作溝通平臺,擴大推動資料開放,達成施政便民及公開透明之目的,於行政院及各中央二級機關設政府資料開放諮詢小組。
(四)政府資料開放授權條款 – 便利民眾共享及應用政府資料、促進及活化政府資料應用、結合民間創意提升政府資料品質及價值、優化政府服務品質。
(五)行政院及所屬各機關政府資料分類及授權利用收費原則– 為利行政院及所屬各機關(構)就政府資料之分類及以民事契約約定其授權利用之收費項目有所依據,以擴大推廣政府資料活化應用。
(六)政府資料開放資料集管理要項 – 為利行政院及所屬各級機關辦理政府資料開放資料集管理。
(七)資料集詮釋資料標準規範 – 方便資料使用者可便利、有效、快速地找到所需的政府開放資料,以達成跨機關各類資訊資源交換作業及資料加值應用。
(八)政府資料開放跨平臺介接規範 – 提供統一依據架構和原則,讓任一資料開放平臺之資料集詮釋資料可依本規範同步至其他資料開放平臺。
(九)各機關資通訊應用管理要點 – 為期行政院所屬各級機關、附屬機構、學校、國營事業及行政法人之資通訊應用有其經濟效能,特訂定本要點。
(十)政府機關資訊採購建議書徵求文件參考 – 參考建議書徵求文件(Request for Proposal, RFP)相關參考指引與文件,及較佳實務案例,研提RFP撰寫建議,供各機關參考以提升資訊採購作業效率與品質。
(十一) 政府資料品質提升機制運作指引 - 為提升政府資料開放內容之正確性、易用性、即時性及採適當格式開放,使政府資料開放邁向結構化,爰訂定本運作指引,以期協助各機關建立資料品質概念、逐步提升政府資料之可用性
(十二) 行政院所屬二級機關資料開放諮詢小組運作指引 -為落實行政院所屬二級機關政府資料開放諮詢小組功能,發揮其運作效益,爰訂定本參考指引,以協助各部會施行。
(十三) 政府資料開放優質標章暨深化應用獎勵措施 - 為強化與永續發展政府資料開放,並提升政府資料品質及其加值應用效益,爰規劃標章認證及民眾投票等機制,鼓勵各機關優化資料開放作業,以期各機關共同提供高品質、便於各界利用之資料集。
(十四) 政府資料開放平臺API專區  - 擴充政府資料開放平臺API功能,提供第3方使用者可透過API取得本平臺動態產生之各式結構化資料。
 
184 days ago
  • 出席榮尼王、tmonk、柏均、詩婷、子絜、乙潔、佳辰、雨蒼、au、anpu、怡孜、仔魚、peace、scott
  • WifiPDIS_Public_5G/ji394pdis、startup99/306306306
  • 主持人(facilitator)tmonk
 
  • 教學:怎麼使用vTaiwan的KKTIX、hackfoldr/仔魚
Audrey T
  • 政府對媒體的影響
  • 本地政府
  • 開放空間會議(Open Space Technology)
 
 
205 days ago
Unfiled. Edited by Gavin Chang , 謝長恩 , Ronny Wang , tmonk , Jennie Kao , che wei liu 205 days ago
  • 出席Gavin、Tasha、Ronny、子絜、Allen、Wellson、孟翰、佳辰
 
tmonk
  • 第四章 - 學科、術科、考試樣機
Jennie K
  • 第四章中的主要問題:
  1. 證照考試所採用的樣機規格與國際標準值差距過大,與目前主流市場所使用的規格也有相當的落差。(ex起飛重量不少於10kg)
  1. 術科考試項目中有部分涉及「特技飛行」的項目,如過框飛行,此部分不僅與飛安無關,且毫無必要;
tmonk
  • 附件十四 - 目前有無人飛機、無人直升機、無人多旋翼機、缺少飛機及多旋翼的混和型
  • 以術科項目都以無人飛機的角度出發訂定考試項目 - 例如:迫降航線
  • 高級術科的分類 - 視線限制、噴灑物件、人群上空但缺少多機群飛
  • 私人土地上飛無人機 - 仍需符合民航法、天空是遮罩的(小巨蛋)就不是用民航法
  • 無人機需要操作人員及觀測員(國際規範)
  • AI 操控無人機不在民航法規範裡
  • 八大除外條款 99-14 
 
  • 2/6 要不要開小松
  • 關於標案開放的進度
tmonk
  • 空總釣魚網站
Gavin C
謝長恩
  • 之前應該是空總的網域,後來遷走沒續約被買走拿來當釣魚網站使用
che l
  • [遠端]「資料申請小幫手」專案構想
  • 致力於將開放資料平台上的「我想要更多」的願力,轉化成「真的變更多」的實例
 
仔魚
  • 分享(請提案人自由填寫)
 
621 days ago
Unfiled. Edited by Cheng En Hsieh 621 days ago
王映筑 CUFP @ FLOLAC'14
 
 
(scm 開場)
 
Guest 那我們下午的演講要開始囉。今天很高興可以請到唐鳳來做這個主題的演講。唐鳳,大家知道他非常有名,做過很多很多事情。不過對我們這個圈子,讓大家印象最深刻的是那個 Perl 6 ,*,其實當時我知道的情形大概是那個語言定出來了,但是沒有人知道怎樣實作它。到最後呢,她先用 Haskell 做了一個 implementation 出來,在我們這個圈子,其實是非常轟動的事情。「 Functional language 有用了!」這樣。所以她今天會談一談 functional language 的用處。此外*她也*很多非常有趣的計畫,像零時政府啊,等等其他*。待會兒可以留下來跟我們聊聊。謝謝。
 
(開始)
 
王映筑 大家好,很高興可以來這裡分享「函數程式設計的商業應用」這個主題。
 
以前我在給演講的時候,常常因為簡報太多、時間不夠用,而講得太快,造成文字紀錄朋友的困擾,也壓縮到問答的時間。
 
這次很感謝 FLOLAC 幫忙為一小時的演講,訂了三小時的場地,所以有很充足的時間可以討論,而我也「自己的逐字稿自己打」,把內容先貼到 [Wiki](http://flolac.iis.sinica.edu.tw/flolac14/doku.php?id=zh-tw:talk1) 上了。這次演講完之後,共筆的逐字稿和錄音、錄影都會用 CC BY 4.0 授權釋出。
 
演講中如果有任何問題,可以到剛才的 http://tinyurl.com/flolac 頁面上的 #haskell.tw IRC 聊天室。如果沒有用過 IRC,也許可以旁邊的同學幫忙。任何時候有問題時,都歡迎留言或舉手發問。今天帶兩台電腦來,就是為了要一面看聊天室的。
 
這次演講的題目是 Commercial Uses of Functional Programming,它也是一個國際會議的名字,也就是 CUFP。2005 年第二屆是在愛沙尼亞舉辦,那時我給過一個演講。今年是第十屆了,我也在議程組 (Program Committee) 幫忙規劃內容。
 
這張照片是瑞典哥德堡 (Gothenburg),今年九月 CUFP 舉辦的地方,風景非常漂亮。
 
CUFP 在當初辦的時候,就有個口號叫做 Functional Programming as a means, not an end,就是剛才穆老師說的「拿函數程式設計來用、當作工具,而不是只是鑽研它本身」,就是說拿它來做實際的事情。
 
哥德堡是個工業城,也是瑞典的第二大城、Volvo 汽車就是從這裡出來的。九月一號,世界上最大的一個函數程式設計的年會 ICFP 會在這裡舉辦三天,接下來三天就是我們的 CUFP。
 
哥德堡最近在新聞上有出現,它在今天(也就是演講的這個時候)開始了一個為期一年的實驗,就是哥德堡的所有公務員從今天開始,到明年的這個時侯,每天只需要上班六小時。
 
這個實驗非常有趣。如果成功的話,他們就要推廣到全市,包含商業界,所有人都是上班六小時。他們也挑了一些特定的產業,像是居家照顧之類,把全市分成「對照組」和「實驗組」。對照組保持本來的工時,實驗組每天只要上班六小時,領一樣的薪水,一年結束之後來比較,看對生產力有沒有影響。如果沒有影響就推行到全部產業,如果效果良好,也許就會推行到全瑞典,真是太爽了。[笑聲]
 
為什麼他們會敢做這個實驗,是因為從 2002 年開始,Toyota 車廠在哥德堡就已經率先採用了六小時的工時。畫面上這位技術人員正在組裝一台 Prius,他的工作是從中午十二點開始,也就是說起床、吃個早飯、騎自行車去上班,一路工作到六點,非常認真工作之後打卡下班,然後就沒事了。他的月薪是新台幣十二萬,比一般的汽車工人要稍微高一些。
 
這是因為 Toyota 他們發現說,縮成六小時、中間不休息,這樣的方式下,產能其實是提高的,所以他們反而可以給更高的待遇。下圖可能看不太清楚,是 OECD 統計 GDP 和工作時數的關係,我們可以把它放大來看...
 
放大後就可以看出來,工作時數越少、越偏左邊,每小時產出的 GDP 就越高,這是非常標準的一個曲線。台灣在這邊,工作時數還蠻長的,但至少相對比平均來說要有效率,落在曲線上面。但是我們可以看到台灣右邊有一整排國家,上班工作的時間愈來愈長,一天十、十二、十四小時,可是對 GDP 來說,乘起來卻完全沒有影響。花這麼多時間工作,但是 GDP 沒有什麼差別。
 
為什麼這樣,還有地方要制定標準工時是十小時、十二小時呢?我想是因為「低效率的工作」這件事本身,是會讓人習慣的。長時間消耗在辦公室裡面、即使什麼事也沒做,但是感覺上還是有在做事,其實也是蠻舒服的一件事情...[笑聲]
 
這就讓我想到,在 1970 年代,C 語言剛出來時,那些原本寫 Lisp 函數程式語言的大師們,都覺得很奇怪:這個表達力很弱、容易出錯、動不動就 buffer overflow、要花非常多力氣來維護的語言,為什麼大家都一窩蜂跑去寫?它寫的作業系統 Unix 那麼多人用,我們花那麼多時間研究出的 Lisp Machine 為什麼沒有人用呢?
 
當時,一位很有名的 Lisp 黑客 Richard Gabriel,他就寫了一篇 paper,叫做「Worse is Better」,來說表達力弱、容易出錯,這些都不是問題。只要很容易上手,然後讓人覺得一開始寫起來蠻輕鬆的,然後陷入一個習慣當中,之後大家就不會想要去學別的語言了。他就用這個方式,來解釋為什麼 C 語言這麼流行的原因。
 
到了這個世紀,我們可以看到 JavaScript 是一個非常類似的情況:表達力弱、容易出錯,需要大量時間維護,可是大家都一窩蜂跑去學,不知道為什麼。「Worse is Better」翻成中文,我把它翻成「劣即是夯」,就是說很爛的反而會很流行... [笑聲]
 
不過「劣即是夯」還可以從另外一個方向來看,我們可以把它讀成「少力就是大力」,在英文叫做「Less is More」。就像 Haskell 這種語言,一開始學的時候有一個陡峭的曲線,還蠻辛苦的,但一旦掌握它之後,就可以用非常少的篇幅,做出非常多的事情,然後效率又很高。所以熟練之後,它就能創造出相當了不起的價值,就是「大力」的意思。這可以看作曲線的最左端,就是瑞典現在的位置。
 
拿這個比喻切入,我們就可以來講「函數程式設計」的商業應用。要講這個之前,應該要先定義一下,什麼是「函數式的程式語言」。一般來講,如果我們去 Wikipedia 或教科書上看,它指的是「支援 Closure 閉包函數,作為參數跟傳回值」,也就是 closures as first-class values,就可以叫做「函數式語言」。
 
這是什麼意思呢?我們直接來看 code。各位上了兩天課,應該看得懂這段 code… 這是 Haskell 裡面,可能是最重要的一個高階函數(用別的函數當參數的函數),就是 「結合函數」,寫成一個點。這個函數有兩個參數,就是 f 跟 g。它把 f 跟 g 拿進來之後,自己傳回另外一個函數。
 
這個傳回值是 λx,就是「有一個參數叫做 x」的某個函數,它的定義是 f(g(x))。舉例來講,如果我們結合 (+1) 和 (*2) 的話,它傳回的函數就是「先乘以二、再加一」,如果套用到 3 上面的話,結果就是 3 * 2 + 1,就是 7 嘛。
 
在這裡,我們要注意的是說,在 λx 的定義裡面除了提到 x,它也是提到 f 和 g,可是並沒有給出 f 跟 g 的定義。f 跟 g 在 λx 沒有定義,這叫作 free variable,就是「自由變數」,它們的定義是從上層函數那邊去給的。也就是說,每次跑到這裡的時候,就會用上層函提供的環境把它「封閉」起來(「close over」它們),把 f 和 g 當時傳進 (.) 結合函數的值,「包」進 λx 函數裡面。這就是為什麼 Closure 翻譯成「閉包」。
 
IRC 上說剛才的內容都有上到,所以我不用特別多講,那太好了... 但是我要講的是說,這並不是 Haskell 特有的功能,在 JavaScript 裡面,我們也可以寫完全一樣的東西。
 
這是 JavaScript,我們同樣也可以定義一個 function 叫 compose,吃兩個函數當作參數,然自己傳回另外一個函數 λx(只是這裡的 λ 要寫成 function),該函數的傳回值是 f(g(x))。除了要多打一些字,可能手會比較痛之外,這兩個是完全一模一樣的事情。
 
用結合函數,把問題拆成各自獨立的一些小部份,再用結合、filter、map 這些高階函數來架構程式,這就是「functional programming 的直覺」。有了這個直覺,就可以看到任何問題的時候,都把它想成一系列小函數,組合起來的結果。如果能夠充份掌握這個方法,就可以達到一個境界:「大事化小、小事化無、以無事取天下」,一切的東西,都化成非常簡單的、吃一個參數傳回一個值的函數,把它們全部組合起來,就可以變成一個非常複雜的程式。
 
好,傳教到這裡為止。[笑聲]
 
當然這並不是 Haskell 首創,而是 1958 年從 Lisp 開始的一個想法。到了 1970 年,出現了所謂的「物件導向」語言 Smalltalk,它有很多很有趣的特性,像是「繼承」、「封裝」、「類別」這些大家耳熟能詳的特性。
 
之後就有兩個傢伙,Steele & Sussman,本來是寫 Lisp 的,他們就在想要怎麼改造 Lisp 語言,讓它有物件導向的特性呢?他們本來以為要加一大堆功能,但是在研究兩年之後,他們就發現不對,只需要加一個功能,就是「由外層函數提供裡面自由變數的閉包」這個功能,因為這是從 lambda calculus 來的,所以稱做 λ(lambda)。
 
只要有 λ 的功能,就可以實現所有物件導向所提出,看起來非常複雜的功能,這實在是太厲害了。所以他們就寫了一系列「Lambda the Ultimate」的 paper:「λ無上命令式」「λ無上宣告式」「λ無上跳轉式」「λ無上指令集」之類,聽起來很像六字真言的 paper,當然它們非常值得一看。
 
整個重點是,別的語言能夠做的,我們這邊只要用一個 λ 就可以做完了。他們發明的語言叫 Scheme,它的標誌就是 λ。後來所謂血統純正的「函數式程式語言」,在 logo 裡一定都會放一個 λ。我們可以看到,Haskell 標誌的中間就是一個 λ。左邊是最近很流行的 Clojure,它也是一個 λ。右邊是 Objective Caml,那隻駱駝身上可能有四、五個 λ… [笑聲]
 
Guest 那到了八零年代的時候,所謂的腳本語言 scripting language ,就是以 Perl 為首Python 、 Lua 、 Ruby 、  JavaScript 、 Perl 6 ,通通都覺得 λ 是個非常好的主意,所以它們都用各自的方法,把 λ  加進自己的語言裡面,本來沒有的,也都變成有了。
 
那接下來呢,就是工業界的 D 、 Erlang ,或者是我們在學界比較常用的 Mathematica 、 Matlab 跟最近非常紅的 Julia ,這些都是直接把 λ 當成它們語言建構的基礎。
 
到了新世紀, 2001 年的時候,微軟發現,再不支援 λ 就完了,就沒有人要用他們家的平台了,所以他們只好開發了 .Net  這套系統,把他們本來的系統語言變成 C# 、 Visual Basic .Net ,以及直接從 OCaml 全部抄過來,高達九成九九相似的 F#  語言,這些語言,也都是函數式程式語言,都支援 λ 。
 
再過了四五年,突然之間大家發現 JavaScript  到處都是,所以就出現了一系列,讓 JavaScript 當作執行引擎,我們編譯到 JavaScript 的簡寫語言包含 CoffeeScript  、 LiveScript 、 TypeScript 跟 Dart ,這些當然都讓寫 λ 變得非常容易。
 
最近的一些工業用語言,像 Go 、 Rust 、 Scala ,也全數是函數程式設計語言。終於到了最近兩年,因為 Facebook 把 PHP 改造成 Hack 語言的關係,連 PHP 自己都不得不採用了 λ ,這還是去年的事情。
 
接下來, C 的徒子徒孫們, Objective-C 的 block , C++11 以及最近剛出的 Swift ,當然也都是用 λ  ,每一個都是函數式程式設計語言。終於到了今年三月,最後一個,大家以為永遠不會淪陷的物件導向語言,叫做 Java 的,也淪陷了。[笑聲]
 
因為 Project Lambda ,從 Java 8 開始,完全支援 λ ,函數程式設計。所以除了底下那四個,語言界的活化石之外(投影片下方從右到左: Ada 、Cobol 、 ANSI C 、 Fortran  ),這年頭所謂「函數式程式設計語言」,就是「程式設計語言」,這兩者完全沒有什麼差別。唯一的差別只是你要用多少 λ你要怎麼用 λ  ,而不是說你的語言支不支援 λ 。除非你很不幸地在用這四個活化石語言,不然你的語言,一定都支援 λ 。
 
所以我想今天我想講的並不是 λ calculus ,而是這十年來左右函數式程式語言在這上面再加上去,用 λ 構築出的一些功能。這些功能,可能沒有 closure 那麼普及,但是按照技術輸出的程度,我們可以想像,它們接下來四五年,也會變成主流語言的功能。
 
第一個,叫做 generator ,如果有寫 Python 的朋友,應該滿熟悉 generator 的。這裡我們可以看到 Haskell 裡面,這裡是個滿經典的範例(投影片 31 到 33 頁),就是我們要定義斐波那契數列的時候,我們可以定義一個無限長的串列,它需要無限多的記憶體,才能夠表示......沒有啦(笑),它需要無限長的記憶體,才能夠全部印出來。
 
它 的第一項是 1 ,第二項是 1 ,它的第三項開始是 x + y ,其中 x 是從它自己給, y 是從它自己的第二項開始給,所以它的第三項就是 2  = 1 + 1 ,接下來 + 2 = 3 ,所以就 1 1 2 3 5 8 ...  這樣子,沒有問題吧?所以這個串列是個無限長的串列,我們就可以對它做一些操作。好比像說在這裡,我們可以說要把 fibs 這無限多個,每個都先 * 2  ,接下來出來的這個串列,每個再 * 5 ,接下來我要拿前 6 個,然後把它印出來。丟進 Haskell 裡面,它就會很高興地告訴你是 10  10 20 30 50 80 。
 
在一個沒有 generator 特性的語言裡面,例如像說 C 裡面,在第一步 map (* 2) fibs ,其實它就已經會卡住了。因為一個無限長的串列,你要對它每一個逐項 * 2 ,需要無限久的時間跟無限多的記憶體,這兩個可能都是一些問題。
 
但是在 Haskell 裡面,這並不是問題,是因為在 Haskell ,我們不需要像在 Python 或別的語言裡面,用 yield 這個語法來定義  generator , Haskell 裡面,任何時候寫出來的任何函數,自動就是 generator ,所有寫的 List  ,它自動因為惰性求值的關係,它需要這個值的時候,才會去算它的關係,每次需要拿六個的時候,就會先拿一個,發現是 1 ,再 * 2 * 5 ,然後 1  2 3 5 8 就停了,第七個事實上沒有用到,所以永遠不會去計算。這是 Haskell 一個有別於幾乎所有其他語言的特性。Haskell 的 GHC 這個大家都在用的編譯器,有一個特性就是 list fusion。list fusion 是這樣一個概念,就是當編譯器看到你寫了兩個 map ,連續寫,就是把某個東西的每一項做某個操作,再做另一個操作的時候,它會自動把兩個 map 改寫成一個 map。改過的 map 裡面就是左右兩邊結合起來。這樣我們不需要額外一個中繼的迴圈,而只要一個迴圈-這個迴圈對這個無限串列的每一項都直接乘以二,乘以五。這個在最佳化上面很重要,因為有些編譯器看到這樣就可以知道是乘十的意思之類這樣子。所以就可以用非常少的記憶體做無限多的操作。
...
212 days ago
Unfiled. Edited by 仔魚 , Ronny Wang , Jiachen Jiang , allenlinli , tmonk , fiorella 212 days ago
  • 出席Ronny、tmonk、Fiorella、Allen、仔魚、佳辰、孟翰、Tasha
  • WifiPDIS_Public_5G/ji394pdis、startup99/306306306
  • 主持人(facilitator)Ronny Wang
 
  • 下個禮拜有一個法國國會議員叫Paula Forteza會來台北他在法國負責open data開放政府公民參與數位政府與數位民主的議題. 法國在臺協會的人讓我幫他們安排一些meetings, 給他們ideas, 因此我要求社群的幫忙, 幫我找ideas.... 可以問誰關於甚麼議題或專案? 比如JOIN平台, 數讀政治獻金2.0, 等等
Ronny W
  • g0v-talks [at] googlegroups.com 可以寄信到這邊大概說一下需求,這邊 g0v 社群內有演講經驗的人很多都在裡面。
仔魚
  • 目的:交換數位政府、開放政府的經驗
  • 推薦參訪單位:
  • 政治獻金
  • 預算視覺化
  • 投票指南
  • cofact
  • 直接 general slack、Intl 問
  • 週三~六
 
  • 食物組
  • 是否要用科法預算支出

  • 法國黃背心與民主的挑戰
  • 貼到懂法文的社群(ex 翻譯與譯者、法國相關的社群)
  • 文案
  • 說明
  • 對於專有名詞的翻譯原則
  • hackfoldr
  • 推坑會講法文的朋友
  • 專門跑外國線的記者
  • 整理完之後把網址寄給已經在寫相關深入報導的記者
fiorella
  • Fio 推薦法國獨立媒體:Médiapart, AOC, La vie des idées (也有英文), Next INpact (關於數位科技, e政府, 透明化與網路), La Quadrature du Net (關於數位科技與網路, 支持自由[軟體]文化), Mr Propagande, Usbek & Rica
  • 可靠的大眾媒體 : Le Monde, France Culture, Huffingtonpost, (Libération)
仔魚
  • 有很多民間組織想要分析資料給大家看、或自己開一個辯論平台
  • 法國全國大辯論的問題:
  • 政府對於能夠討論的議題有諸多限制
  • 政府沒有合法組織全國辯論
 
 
  • 不實資訊澄清
allenlinli
  • Allen:分享你今天關心長輩了
仔魚
  • 推薦Line chatbot:你今天關心長輩了沒
仔魚
  • 子魚:分享上週偉庭參加vTaiwan討論感想
  • 呱吉:政治葉佩雯
  • 佳辰:分享 2016 美國大選
  • 各種不同的社群媒體有不同的操作手法
  • facebook 會讓人感覺互動的對象是人,傳 fake news 會比 twitter 快,讓人相信的成功率也比較高
  • 年輕人漸漸不使用 facebook 了
  • Twitter 是單向的宣傳,通常源頭不會看到回應
  • 訊息會越來越極端:極端的人比較會留言,大部分的人看都只會看到最極端的東西
  • Nyhan Brendan
 
 
  • 分享
  • 土豆鳥大調查/tmonk
  • 農委會特生中心:小辮鴴普查@雲林
仔魚
  • Taiwan Can Help(上) — 開放政府可以怎麼做議題釐清對焦?
  • Taiwan Can Help(下) — 在多倫多開一場 vTaiwan 的多邊利害關係人諮詢會議
  •  
 

Contact Support



Please check out our How-to Guide and FAQ first to see if your question is already answered! :)

If you have a feature request, please add it to this pad. Thanks!


Log in / Sign up