caasi Huang

@caasih

還想和你談論型別和轉譯,或是沙灘裡的紅石和人生

Joined on Jan 23, 2017

  • 這個議程會使用 TypeScript 介紹 functional programming 中的常見概念與在 web front-end 中的應用。選用 TypeScript 是因為它的 type system 雖然不夠好,但已經足夠讓我們以 type 為出發點思考問題。同時它也有 JavaScript 的靈活性。 Sum Type 和 Product Type 在像 Haskell 或是 OCaml 這種 ML 系的 FP 語言中,常會看到由 sum type 和 product type 組合而成的 algebraic data type ,例如: data List a = Nil | Cons a (List a) 在 JS 裡我們沒有 sum type 和 product type ,但我們可以模擬一下,並用 TypeScript 描述它們: interface Nil {
     Like  Bookmark
  • 函數式程式設計在網頁前端開發的入門應用 caasih Sum Type 和 Product Type ML 系 data List a = Nil | Cons a (List a) TypeScript interface Nil {
     Like  Bookmark
  • callback 用 node.js 讀檔時,得提供一個 callback function ,好取得結果: fs.access('./webpack.config.js', fs.constants.F_OK, (err) => { console.log(`${file} ${err ? 'does not exist' : 'exists'}`); }); 如果要讀好幾次檔才能決定該怎麼做: fs.access(filepath1, fs.constants.F_OK, (err) => {
     Like  Bookmark
  • by caasi Huang 十一月底在台中教育大學圖書館翻到這本由 Paul Hudak 寫於 2000 年的 the Haskell School of Expression 。乍看之下以為它不適合(像我這樣的)初學者,但作者在前言中寫道: More importantly, there was a need for a book that described how to solve problems using a functional language such as Haskell. 此書先介紹語言特性,接著逐步示範如何在 functional language 中描述繪圖需要的資料。順著實作時遇上的問題,自然地介紹 general type, higher-order function, type classes ,偷渡 Behavior ,順勢介紹 FRP(Functional Reactive Programming) ...! 讓我想大喊:(為什麼幾年前不知道這本書啊!)
     Like  Bookmark
  • [19:30 ~ 19:45] 摩茲工寮介紹 [19:45 ~ ] Probabilistic Logic Programming by Hank Hwang (黃煜翔) 現代符號邏輯在電腦科學的發展扮演著至關重要的角色;在此次的演講中,我將會簡介現代電腦科學的邏輯基礎,與其在電腦科學個領域的應用。此外,我將會介紹傳統邏輯式程式設計的變種:機率邏輯式程式設計 (probabilistic logic programming),並介紹此領域在機器學習、人工智慧與業界的相關應用。 講者介紹: Hank Hwang(黃煜翔) is the founder of 杏雅各生醫科技股份有限公司籌備處, a startup company focusing on developing medical AI. He received his bachelor's degree in computer science and mathematics from National Taiwan University. Formerly a member of the Software Validation and Verification Research Laboratory at National Taiwan University, he and colleagues designed the Graphical Tool for Omega-Automata and Logics and applied formal methods to improve the security of control system of nuclear power plants. He won First Prize at National Taiwan University Cloud Application and Startup Competition in 2012. 筆記 reasoning
     Like  Bookmark
  • [19:30 ~ 19:45] 摩茲工寮介紹 [19:45 ~ ] 另一個型別系統的應用:「故事」的計算模型 by 蘇健元 互動敘事(interactive storytelling)是另一個屬於人工智慧範疇的研究領域,其中核心的問題是關於如何設計敘事、互動兼具的媒體,以達到娛樂、教育的目旳。具體的技術議題則有:如何讓電腦輔助寫作、讓電腦寫故事、分析故事、如何設計互動性高卻又不失故事性的遊戲...等等。很明顯的,這些技術需要自然語言處理的支持,但又不止於此;不同於「翻譯一句話」或是「進行有目的性的對話」等上下文關係較淺的需求,一個故事裡的每一句話幾乎都與貫串整體的主題有關,那麼要利用電腦來組織一個故事,就需要應用有某種程度抽象能力的邏輯模型。而在這次分享裡,我會介紹一個尚在研究中的構想:利用型別理論來描述敘事結構。 亂七八糟筆記 Funth 強力徵稿中 主持人提到分享醜到爆炸的語言也沒關係... XD
     Like  Bookmark
  • 讀完 CanvasDesigner 了。還有不明白的地方,但學到很多。 CanvasDesigner 設計了一個小語言,該語言中的值(數字 num 和點 pt )都是隨時間變化的值,於是寫的人可以簡單地敘述複雜的關係。 在 Planets system 這個例子中: _A = O + (cos(tha), sin(tha)) * ar _B = O + (cos(thb), sin(thb)) * br _C = B + (cos(thc), sin(thc)) * cr
     Like  Bookmark
  • Try to force myself to focus on monochrom's article. Continuation-Passing Style The continuation-passing style means your program does not give its answer directly ("the direct style", what you've always done); instead, your program takes one more parameter, a function parameter k, and your program's last job is to call k with the answer. We say that k is the continuation, and this is why we say this style continuation-passing -- you user passes a continuation to your program. (And your program may be using a subprogram, and so you may be paasing some continuation to that, too.) If you ask what's the difference from callbacks? Right, same difference! What happened here was that this same idea was cool amnog researchers, who coined "continuation", before it was cool among programmers, who coined "callback". same difference XDDD
     Like  Bookmark
  • 在忘記之前貼一下,又怕太 low 所以就不貼聊天室洗版。 今天在 FunTh#79 聽 Ash Manning 講 F* 和 dependent types 。大意是在 dependent type system 中,會把 type 分成一層一層的,高層的 type 可以從低層的 type 組合出來。 例如: type vector 'a : nat -> Type = | VNil : vector 'a 0 | VCons : hd:'a -> #n:nat
     Like  Bookmark
  • 幾年前,科幻作家姜峯楠的短篇小說《你一生的故事》改編成了電影《異星入境》。故事中提到沙皮爾-沃爾夫假說,沙皮爾-沃爾夫假說認為,語言決定了人的世界觀與認知能力。 雖然假說終究是假說,但在寫程式時,用不同的方式描述問題,常常可以幫助我們改變看問題的角度。 大家老是說 JavaScript 的函數是一級函數 (first-class function) ,到底把函數傳來傳去,可以給我們怎樣的新觀點? 簡單的 CSV 今天有一張 CSV ,內容是: Death Stranding, 1790, Kojima Productions
     Like 1 Bookmark
  • 現代網頁前端與型別系統 caasih 型別系統讓我們可以⋯⋯ a + b const add = (a, b) => a + b; const add : (a: number, b: number) => number
     Like  Bookmark
  • I am Kuanling Huang(a.k.a caasi or caasih), a web frontend programmer who has focused on JavaScript and the React ecosystem since 2014. I like to build rapid prototyping tools to help myself. And contribute to some open source projects on GitHub. Skills HTML HTML5 HTML5 2D Canvas SVG
     Like  Bookmark
  • 如果不堅持一定得用 combineReducers 的話, Redux action 還可以做到些奇怪的事。 例如平常寫 action 時為了讓 action 可以被 dispatch 到正確的地方,會寫: const POST_REQUEST = 'POST_REQUEST'; const POST_SUCCESS = 'POST_SUCCESS'; const POST_FAILURE = 'POST_FAILURE'; const PRODUCT_LIST_REQUEST = 'PRODUCT_LIST_REQUEST'; const PRODUCT_LIST_SUCCESS = 'PRODUCT_LIST_SUCCESS';
     Like  Bookmark
  • # 如何修改 Material UI Theme 在 [Material UI][material-ui] 這套 Material Design 的 React 組件實作中, theme 是怎麼運作的呢? ## TL;DR 在設計新的組件,選擇配色時,可以跟我說要用色盤中的哪些顏色,或者是要長得像哪個 Material UI 提供的官方 component ,這樣我可以在 `getStyles` 函式中直接寫明白,也方便未來修改。 如果指定要長得像一個以上的 components ,那我會人工反查出那些 components 用到色盤中的哪些顏色。 ## 技術細節 在其文件中,提到客製化 theme 的[方法][material-ui-theme-doc]是: ```javascript import React from 'react'; import darkBaseTheme from 'material-ui/styles/baseThemes/darkBaseTheme'; import MuiThemeProvider from 'material-ui/st
     Like  Bookmark
  • # On Matthew Fuller's "Data Structures as Spatial Structures" Ilya 前年介紹了 Matthew Fuller 在 caa-ins 上的一場,有關數據結構與空間結構的演講。那時沒辦法到場聽,但最近發現有[錄影與逐字稿](http://caa-ins.org/archives/1213)。 開場就引用 Kurt Gödel 的不完備定理,接著說明編碼、轉譯、解碼這樣的過程,在我們的社會、文化中隨處可見。將各種程式語言的表現方式視為紋理、物料,好像混凝土、陶土那樣,有各自的特質和使用方式。這點有很有意思。 但我不懂,拿 [Gödel numbering](https://en.wikipedia.org/wiki/G%C3%B6del_numbering) 來類比之後所有的編碼、解碼方式,是不是有點牽強? Gödel 編碼的是一個公理系統中的命題,雖然最後以自然數來表現,但不會用到所有自然數的性質,目的是用它來完成證明。而後面提到的編碼、解碼(例如 Shannon 在訊息理論上的工作)牽扯到的是把自然界連續的訊號轉換成
     Like  Bookmark
  • # 路邊野餐 > Well. Good Hunting, Stalker. 過了那麼多年,終於讀了《路邊野餐》。讀得有點急,沒能在第一時間體會結局的醍醐味。於是找了找評論,有趣的是的確有人問過作者結局的意義。 vace117 找到兩則關於結局的[提問](https://funkyturtle.livejournal.com/421328.html?thread=1077200#t1077200),二手翻譯如下: > 敬愛的 Boris Natanovich !幾十年來我都是您的書迷。不管是在我一生中最壞的或是最好的時刻,您書中的想法給了我很多幫助。但《野餐》中,配角的一句話讓我衝擊至今:「但願每個人都快樂、自由,願所有人都興致勃勃、滿載而歸」。是不是可以說它總結了《野餐》所代表的意義? > [name=Сергей] > > 也許。或者說那句標語實際上太美好,同時又模糊、空洞。試想:每個人都有他自己的幸福;而一個人的幸福,是另外一個人的麻煩;如果這些都不須代價,會變成怎樣的幸福呢?就算是 Red Schuhart 也瞭解這點,但他(和作者們)都想不出其他願望。 > [name=
     Like  Bookmark
  • # 斷網可用分散式社交軟體 Patchwork :::danger 此文件已不再維護,請至[公民通訊工具](https://g0v.hackmd.io/c/H1Bv6ZJNS/) ::: {%vimeo 236358264 %} **TL;DR: Patchwork 是個斷網可用,一對一訊息可加密的臉書 / Twitter 替代品。** * 哪裡抓?請到 [ssbc/patchwork](https://github.com/ssbc/patchwork/releases) * 手機版?請到 [Manyverse](https://www.manyver.se/) * 怎麼運作的?請讀 [Scuttlebutt Protocol Guide](https://ssbc.github.io/scuttlebutt-protocol-guide/) * 更多介紹?請讀 [官方 GitBook](https://www.scuttlebutt.nz/) 👉 如果只是想先建立訊息廣播站,請看[在無手機訊號的環境下,如何建立資訊中心點](https://hackmd.io/0fHXz
     Like  Bookmark