ModernWeb
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Owners
        • Signed-in users
        • Everyone
        Owners Signed-in users Everyone
      • Write
        • Owners
        • Signed-in users
        • Everyone
        Owners Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
    • Invite by email
      Invitee

      This note has no invitees

    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Note Insights New
    • Engagement control
    • Transfer ownership
    • Delete this note
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Note Insights Versions and GitHub Sync Sharing URL Help
Menu
Options
Engagement control Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Owners
  • Owners
  • Signed-in users
  • Everyone
Owners Signed-in users Everyone
Write
Owners
  • Owners
  • Signed-in users
  • Everyone
Owners Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
  • Invite by email
    Invitee

    This note has no invitees

  • Publish Note

    Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

    Your note will be visible on your profile and discoverable by anyone.
    Your note is now live.
    This note is visible on your profile and discoverable online.
    Everyone on the web can find and read all notes of this public team.
    See published notes
    Unpublish note
    Please check the box to agree to the Community Guidelines.
    View profile
    Engagement control
    Commenting
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    • Everyone
    Suggest edit
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    Emoji Reply
    Enable
    Import from Dropbox Google Drive Gist Clipboard
       Owned this note    Owned this note      
    Published Linked with GitHub
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    # 用人工智慧助軟體開發 / 蔡學鏞 {%hackmd @ModernWeb/SyA2U6SmT %} > 共筆請從這開始 ## 程式設計師的養成 工具雖然多,不過需要大量的經驗累積。 改變:LLM 生成式AI 有 AI 還是要 coding 知識 現在也有人使用 ChatGPT 做 pair coding - 程式師 -> 開發工具/Chatbot - Chatbot -> 生成式 AI/程式師 - 開發工具 -> 程式師 / MVC - MVC -> 開發工具 / 生成式 AI/用戶 - 用戶 -> MVC 《Pair Programming with ChatGPT AI-Enhanced Coding for the Modern Developer (Covers ChatGPT 4)》 ## 接下來呢?用汽車作為思考的引子 自駕車等級表 | Column 1 | Column 2 | | -------- | -------- | | Level 1 | Text | | Level 2 | Text | | Level 3 | Text | | Level 4 | Text | | level 5 | | -> 思考「自動編程」等級表 -> 原始目標 ## 在自動駕駛 L5 之後,會怎樣 > 提示:回歸原始目的 舉例:你想要從A點到B點,目的是到B點 多拉A夢摸著百寶袋 不要只想著會出現竹蜻蜓,代表你只想著交通工具 有可能可以拿出任意門 transpotation ---> teleportation ## 在chatGPT L5以後 ChatGPT <-> Application ActGPT <-> Invocation ### Application VS. Invoation application - 用戶 - 應用應用應用...(開發不完的applications) - 核心 invocation - 用戶 - **AI** - **Invocation (讓AI把意圖實現出來)** - 核心 Application ---> Invoation 問題:核心是什麼? ## My vision1: Anyone as a Programmer 編程門檻降低,任何人都可以自己描述最基礎的需求,避免和程式 ## My vision2: Invocation 根據使用者意圖,系統動態組合基礎功能,不需事先編寫應用。 ## My vision3: Emergant User Interactions 根據執行過程 系統動態生成ui,不需事先編寫。 ## My vision4: You got a twin(數位分身) 許多時候可以由系統代替使用者決策、行事、讓使用者省心。 ## 架構差異(當前vs願景) 兩者差異 1. 不需要工程師 2. 不需要 Chat 3. 成為系統隱含的一部分,不需要和程式設計師對話 4. UI 不需要人設計 => 是浮現出來的 5. 新增 Agent ## 大綱 - A 重新設計軟體開發工具 - B 重新設計Runtime - C 重新設計編程語言. - D 重新設計資料庫管理系統 - E 重新設計查詢語言 - F 動態生成用戶介面 - G 為使用者意圖建模 - H 自動生成系統調用 - I 智慧代理人的設計 ### A 重新設計軟體開發工具 A的改變是為了CDEF - 程式一大坨(要拆細) -> 對應 C - 資料格式僵化 -> 對應 D - 程式和資料庫之間有阻抗(SQL語言溝通) -> 對應 E - UI 沒彈性 -> 對應 F (沒彈性不是指自適應) 極致抽象 solution: graph 利用Graph來組織程式的一切, 程式設計就變得...一致? 步驟1:建立節點 步驟2:選擇一個框架,套用之 步驟3:針對框架所需要節點,連結之 程式整體是個網 安裝程式就變成了 應用被融入系統中(no process no application ) - [系統網 聯集 應用網] graph 缺點:不適合直接編輯與展示 解法:轉換成 list graph -> list - node -> item - link -> content 用 graph 寫程式,APP demo - 節點清單 - 創建清單 - 節點內容 達成可執行的語意網 (Semantic Web) ### B 重新設計 runtime Graph 如何執行 在runtime是Tree ### C 重新設計編程語言 領域特化 Control Flow(eg.if-else) procedure flow operation condition expression query resource ```mermaid flowchart LR p(procedure) --> f(flow) f --> o(opration) o --> e(expression) o --> r(resource) c(condition) --> e --> q(query) --> r p --> r ``` - procedure 可以接收到 Resource - procedure 執行 control flow (eg. if else) - 有了control 他可以根據 condition 來去執行動作 operation - operation 真正產生行為 影響 Expression Resource - Expression 舉例 加減乘除 - Expression 可以進行 Query - Query 會用到 Resource 這7個點合起來叫 **Object** Clean Code 第三章類似 ### 重新設計資料庫 DDL Event Sourcing + Associative Model of Data Event Sourcing: - 事件累積 (e.g 規範化的Log) - 要敘述成發生過的事件 - 不要寫屬性 (生日是 xxxx/xx/xx),是事件 (出生於 xxxx/xx/xx) >> 主詞 動詞 名詞 >> ㄧ切都是變化的累積 例子 - Jerry 生日是 xxxx/xx/xx -> Jerry 出生於 xxxx/xx/xx - Jerry 地址是 xxx -> Jerry 搬到 xx 推書 - The Order of Time, Rovelli, Carlo ### E 重新設計查詢語言 DDL(Data Definition Language)、DQL(查詢語言)、DML(資料的處理語言) - 編織一張查詢網,內容有許多空缺 - 在「程式網」中尋找符合這張「查詢網」的空缺結組合 - 如果沒有,或者有多個且只需要一個,可以向用戶詢問 > 一樣是個 graph 概念 ### F 動態生成用戶介面 還沒研究完成 ### G+H 兩個相關,要一起講 P - F - O - R - Q - E - C 讓用戶表達意圖 What,而非 How 的兩種方式 - 把意圖表達成事件 - 從Resource節點逆推回 P - 表達希望發生但還未發生的事情 - 表達狀態(Condition):希望保持、變化的狀態 - 太多狀態,依重要/緊急分類 ### I 智慧代理人的設計 智慧代理人(Agent) 是在 Cloud 智慧代理人的作用 - 繪製一張查詢網,內容有許多空缺 - 在程式網中尋找浮合這張網的空缺節點組合 - 如果沒有,或者有多個且只需要一個,可以向用戶詢問 - 如果用戶不在,可以向用戶的數位分身詢問 eg. 買機票,如果使用者沒有選擇要哪個座位,Agent根據user過去的選擇,直接挑最便宜的。 關於應用心智模型的三個關鍵問題 - 心智模型的表達方式 - 如何透過用戶行為推測其心智,並更新到模型 - 心智模型如何接受提問,如何回答 推書 - [A thousand brains - A new Theory of Intelligence, Jeff Hawkins](https://www.books.com.tw/products/F017099908) ### 新皮質層的知識結構 - 建立一個節點,為其命名 - 選擇節點所使用的框架,至少一個 - 填寫框架所需要連結的接點 - 回到第一步驟 #### 感到熟悉嗎? 目的: Agent是用戶的分身,要盡量接近用戶,而不是接近應用或理想 人有誤區,會掉入陷阱 推書 - 思考的藝術,52 個非受迫性思考錯誤 - 行為的藝術,52 個非受迫性行為偏誤 不是給他最好的決定,是要給最符合使用者的決定 ### 回顧願景 1. **編程門檻降低**,任何人描述程式,避免和程式設計師等人溝通的損耗 2. 根據使用者意圖,系統... 3. 根據執行過程的需要,系統能**動態生成用戶介面**,不需要事先編寫 4. **智慧代理人**可以代替用戶行事 ### 更遠的未來 ### QA 推影片 - [Large Language Models and The End of Programming - CS50 Tech Talk with Dr. Matt Welsh - YouTube](https://www.youtube.com/watch?v=JhCl-GeT4jw) --- > 聊天區 有切分聊天區我覺得很讚! AI 是輔助工具,還是... > 對於初學的人來說是好的?深怕外面的課程開始教你入門用AI 後續沒AI 什麼都不會了 >> 就講師說的,你還是需要懂相關知識,不然你只是一個複製貼上的人類介面(yes) >> 以前某些工程師也只是stackflow上copy paste >> 現在 copy paste 的速度變快了 (x) xd >>> 但工程師本來就要會自學,AI 只是幫助快速拿到你想要的資料,資料的識讀是最大問題?感覺對初學者會越來越辛苦 >>> 書的存在還是有意義的xd >>> 整理跟驗證過的知識 (完全認同) >>>> 但現在已經有很多書是純叫 AI 寫的了... >>>>> 至少有具名可以挑xdd >>>> 確實但可以想像得到之後大教育環境來說可能會都教你問 ai ?? www >>>> 而且現在的人怎區分是非都是問題,如果都完全依賴 ai 給的資訊可想而知... >>>> ai很多都是錯誤的 >>>>> 現在熟 ChatGPT 的人都知道它是在一本正經的胡說八道 >>>>> 有研究說chatGPT講的比資深講的還容易被相信 >>>>> 我也超擔心大家都不驗證AI給的資訊,未來會有更多奇怪的東西氾濫 > 個人認為 Copilot 是越資深的工程師越有幫助,因為你需要去理解 Copilot 產生的內容,而不能照單全收(即使結果看起來是對的) > 我也是覺得對資深工程師應該會是助力,但對JR會不會造成依賴 > 這也要看 資深工程師 真的資深?還是套件工程師? >> 加速資深工程師生產力的工具 > 其實我是蠻反對 Junior 使用 Copilot > 公司蠻多 Junior 在使用 > 覺得初期用太多 > 讓他們的成長受限 > 反而變成無情任務完成機 tab工程師 以後鍵盤的tab鍵消耗量大增 > XD > 以後只要一個麥克風 + 一個 tab 鍵就好 > 腳踩tab鍵 一手漢堡一手可樂 LEVEL 5之後 -> 任意門 XD > 版權警告 > 神預測 ~~只有我注意到叫小叮噹嗎~~ > 透露年齡(X > 我也小叮噹 >> 技安 vs 胖虎 >> 小夫我要進.... 我都叫神奇寶貝啦 Invocation > 聖杯啊 願望機 >> 聖杯戰爭開打 >> 已經變髒杯惹 >> 大家都是caster >> Saber 我婆 >> やっちゃえバーサーカーー 把編程門檻降低 ==> 我光BDD都推不了了 (+1) >>> 請chatgpt幫你用BDD設計就推得了了 > 一起來詠唱好了[vscode-speech](https://marketplace.visualstudio.com/items?itemName=ms-vscode.vscode-speech) 我都叫數位替身,噢啦噢啦! > 這是替身攻擊!!! > 數位替身是什麼意思?意識轉移到雲端?好像黑鏡 用 AI 寫程式就不用訓練是不是搞錯了什麼? > AI夠強,要能描述足夠的spec問題會出在 "算力" > 工程師已經跟業務員放在同一層了 > 連UI設計師都要失業了嗎 >訓練工程師寫註解的能力 XD >寫得好 tab生出來的東西正確率大增 >> 訓練業務把需求說清楚的能力 >>> 先來學 DDD 吧 >>> 來人啊 開一場 event storming 我是來聽創新的,不是來聽做夢的 > 你講的那麼會創新,怎麼不自己投稿講一場? > 批評很容易,Show, don't talk >> Talk is cheap, show me the code >> 阿都自動生成了,怎麼還有code > XD > 畢竟是願景 > WOW~右邊那個內容 > 我很久沒作夢了 感謝帶來一個好夢 > 還是架構師就是做這些事的阿, 先有願景架構, 再來實踐? >> 可以參考講者在 iThome 的文章 [蔡學鏞 | iThome](https://www.ithome.com.tw/users/%E8%94%A1%E5%AD%B8%E9%8F%9E) > > 他後面說他要來實踐了XD我來期待一下 > 夢到失業 哭到半夜 > 夢醒滿身汗 > 開始畫圖了 工程師失業 > 而且是工程師自己造成自己失業的 >工程師變成跟小七店員一樣?? >小七店員很厲害的 要會一堆東西還要面對一堆奧客xddd >小七現在也在推自助結帳了,也許以後不會需要學那麼多東西 >還要會壓車 跑台7乙(?) >(會壓車跑台七乙的是全家店員? >(FAMILY FART) >>ㄏㄞˊ錢 >工程師終於走到把自己搞失業的地步了 >>SA文件丟GPT 成品就馬上出來ー >>樓上的情況好似曾相似 >>>老闆跟GPT許願 SA文件就生出來了 所以SA也失業了 >>>客戶也跟GPT許願 老闆也失業了 (X) 這些工具不是現存的No Code方案嗎? >為何今年沒有no code分享 >昨天去逛唐吉也推自動結帳了 超方便 >> 在國外都好幾年了 >> 自助真的讚 >>> 但是我上次在迪卡儂要自助結帳被店員搶過去幫我刷xddd >>> 迪卡儂結帳只要把商品倒到洞裡就完成 >>> 國外人力貴,自助結帳效益高 >>> 的確,偷竊也很多XD 在澳洲自助結帳 拿高級蔬菜結帳結紅蘿波 >>> 人性啊 (捏爆 UI 完了要引戰了? > 極致抽象怎麼感覺像是... > Hyper Abstract > 一種物件導向的 X Max Pro+ > 需要把抽象化再做強力抽象化 > 最後看不懂在幹嘛 >> 我抽象化你的抽象化 >>> cyberpunk conf 2023 >>>> 我開始神機錯亂惹 ~~節點式編譯不是有一段歷史了?~~(當我沒說) > 我不知道,求大佬帶 > 不知道+1 Graph 可怕 > ~~是不是在幫 Heptabase 鋪路,把每一個想法化成一組卡片~~ > 不是DAG的話算力不夠,有物理極限 > > 突然又像 low code 了 > 跟現在的flow-xxx類似的no code/low code工具一樣啊 lol > 不會有搜尋速度問題ㄇ > 如果還是人類在介入Flow的設計,那還叫聖杯嗎? 要勇敢的做夢R > 聖杯還是要有人許願r > 看起來好像 apple 的捷徑喔 「反正程式寫出來是可以run的」 > 這句話深得我心 +1 > 必須給讚 > > 坐等開源 GitHub 的網址 > > 不可以用坐的 我們用跪的 請收下我們的膝蓋 write only 語言要來了嗎 > 領域展開囉 >> 領域特化 -> 捏繭利,改造領域 > 昨天看到有個 Conf 有在徵稿 -> 什麼 -> 2024 臺灣雲端大會 > 問個問題,投稿有甚麼訣竅嗎? > 雖然我想投 > 但是我能解決的問題似乎不太進階 >>>題目訂出來 接不接受是他們的事 不是啥都要很深的 >>>> MWC 這次有些我也覺得不是很深.... >> 先去對應的社群的 meetup 試水溫 > > 2024 臺灣雲端大會,感覺就沒有專一的 meetup >> 雲端大會可能廠商~~工商~~議程還比較多 >>> 好吧 QQ > 只能找自己擅長的技術去試試看 請AI去讀clean Code/clean architect XDDD 要玩clean code建議先買個jetbrain的IDE (+1) > 為啥 >> 重構抽離重命名移動之類的工具都很方便 會幫你檢查連帶會影響到那些東西 >>> 為啥是買不是試用 因為試用通常就擺在那邊沒去玩的動力 花錢才會逼自己用XDDD > 然後會建議一些比較好的practice > 還在等怎麼實踐 Event Sourcing > 成本問題很大,不考慮scalibility都沒差 > 其實是關注點不同,Teddy在ddd的演講有比較 > data sourcing一樣會有成本 好奇這邊有架構師嗎 身為前端有點聽不懂(身為後端也聽不太懂...+3) (身為架構師也聽不懂+1) 太抽象了 > 我做過前後端和 DevOps,勉強算是架構師吧 > 我寫過html和c#,勉強算是全端工程師吧 >> 笑爛哈哈哈哈哈 > 我的理解啦,還是要先做語意分析 > 然後每個事件需要分別存進資料庫 > 存進去後再去做關聯 > 這個關聯是用 Graph 組出來的 >>> 看起來還是要組好工具,生成式AI只是語意分析的工具之一 >>上面再問了 可以舉手XDDD >弱弱的問,哪裡可以拿PPT呢 >通常晚點會放在網頁跟共筆 > 我這邊嘗試白話的說一下 > 今天你來參加 MWC 有幾種方式 > 可能是盲鳥票、可能是早鳥票、可能是一般票、也可能是講者、還有公關票 > 每一年度參加的方式不同 > 雖然參加的方式、交通方式、餐點是個 Tree > 因為每個是事情是獨立事件 > 不過實際上有些節點是可以 Share 的 > 感覺就像是 Grpah 一樣 > 像是便當都吃老三便當 > 接著你要把這些參與方式、餐點、交通方式全部存進 Graph > 這每個事件組合起來就是你 > 甚至到每個人來參與的方式 > 你把這些丟進資料庫去 Training > 有可能透過自動生成告訴你你是要去台大參加 MWC > 不過午餐可能訓練不出東西 > 只會給你老三便當 >> 你的舉例很不錯,也貼近大家一定會接觸到的經驗 >> 這樣上班族的最大難題,午餐吃什麼是不是有機會被解決了 >>> 如果你無法決定,你訓練出來的代理人可能也會說他決定不了XD >>>> 這件事情就跟早期在討論 ML 一樣,其實你只需要 SQL >>>> 如果只是要解決午餐問題 >>>> 其實只需要 Slot Machine >>>>> 我都玩 Arcade > 不確定這樣的解釋是不是更清楚 > 如果大家覺得更模糊,那是我功力不夠 >> 像是記住行為,然後去推敲事件? >>> 我的理解是這樣沒錯,不過要去記住每個事件 >>> 其實也不是一件容易的事情 >>> 尤其你要拆解每個有意義的事件 >>>> 就跟現在 db table 要記什麼東西一樣,也是要取捨的,只是從屬性改成事件。 有幫助,感謝樓上 (+1) 他講的好玄喔. 要來去修玄學了,先從築基開始 > 通靈101 > 通靈王 > 不用練氣嗎 > 極致的科學就像魔法一樣 >> 他說的其實蠻... 學術的 數位分身好像黑鏡的某一集 [Digital immortality: would you upload your mind to a computer?](https://www.dazeddigital.com/life-cultu啊re/article/60341/1/mind-uploading-key-to-eternal-life-or-terrifying-dystopia-neuralink-elon-musk) > 這集我總覺得是不是分身還要定時更新啊 不然人的口味是會變的 夏日大作戰好看 真人的代理人已經常常很多爭議,數位代理人太夢幻了 一直莫名想到event driven,感覺這場乾貨很多,但又有點抓不到核心,是我太菜了嗎QQ > 你不孤單 我也聽某 >> 感覺需要看回放 > 他在講底層概念,整個架構大改。真的用這套的話會有一大串的新語言/工具出現 >>> 剛剛重新回顧了上面突然發現,他似乎的確是在重新定義整個開發相關概念,資料庫的部分就有點像是過去式關聯式,後來出現了非關聯式,甚至是向量型資料庫,他提出了一個新的資料庫形式? >>> 其實蠻佩服可以理出一整個抽象概念,然後還有把一些實現的理念講出來 >>> 要訓練AI之前要先訓練自己的腦 >>>> 感覺像是某部電影 >>>> 感謝這段分享,突然get到了 >>> 讓電腦學會通靈的意思 今天這場推薦了好多書(可是感覺都好玄) > Clean code > A Thousand Brains > The Order of Time > 思考的藝術:52 個非受迫性思考錯誤 > 行為的藝術:52個非受迫性行為偏誤 > 進化思考──生き残るコンセプトをつくる「変異と適応」 > 這場大腦消耗有點多 餓了 >> 快放飯了,再撐一下 自己都聽不懂了回公司怎麼跟同事分享QQ > 給他看共筆啊 證明你不是唯一一個 > XD > 你不要試著理解它,去感受它。 >> (跳 > 不要跟他拚拳,嘗試切他中路(誤) >> 切網路 >>> 給他一瓶啤酒(開司) > 智慧代理人真的能反應用戶真實行為嗎 >> 如果能把你的一切歷史決策都丟進去訓練,或許可以吧 (願景) >>> 然後就踩到 GDPR 惹 原來人類的進化是蟲族嗎 > R-TYPE都演過了 > 最後願景的那張圖,沒有工程師 (誤 >> 願景就是讓這個世界不再需要工程師(誤 >> 糟糕,突破盲點ww >> 前面就有聊到了,工程師自己讓自己失業了 >> 剛剛去看他的適合聽眾還有PM,我好想聽聽PM的想法,有沒有PM可以現身說法XD? >> 要先洗老闆的腦 >> 老闆:WOW~這個(願景)好!人力成本....(以下略) >> 做出來就可以省工程師成本了(O >>> 老闆:很好,下週告訴我時程,什麼時候能完成 問答的概念完全不一樣 (+1) 問答的根本思維不一樣 > 給AI樂高蓋東西的概念 (good idea) > 他不是來回答的,是來分享理念的 一直被斷xddd 是不是在各說各的阿??(4 > 個人的觀點: > - 詢問的人是認為直接把 ChatGPT 當作應用(讓 ChatGPT 做角色扮演) > - 講者的觀點是如何去產生提供給客戶的應用(需要有人去闡述需求,類似寫程式過程) > 關於GPT剛好今天程世嘉fb有一篇很呼應的,可以找來看看 簽書會開始 > 老師會在天瓏坐到2點 人因夢想而偉大,我覺得概念滿好的,系統化解構問題,再逐一打破,但他需要一個各領域專精的團隊,最終小團隊通常也會遇到資料、模型和算力問題,更可能發生的是Big Tech把概念拿走自己做...成功的話,工程師真的會大量消失,能自我修正程式的天網也不遠了 不要卡最後一行 後面不好新增

    Import from clipboard

    Paste your markdown or webpage here...

    Advanced permission required

    Your current role can only read. Ask the system administrator to acquire write and comment permission.

    This team is disabled

    Sorry, this team is disabled. You can't edit this note.

    This note is locked

    Sorry, only owner can edit this note.

    Reach the limit

    Sorry, you've reached the max length this note can be.
    Please reduce the content or divide it to more notes, thank you!

    Import from Gist

    Import from Snippet

    or

    Export to Snippet

    Are you sure?

    Do you really want to delete this note?
    All users will lose their connection.

    Create a note from template

    Create a note from template

    Oops...
    This template has been removed or transferred.
    Upgrade
    All
    • All
    • Team
    No template.

    Create a template

    Upgrade

    Delete template

    Do you really want to delete this template?
    Turn this template into a regular note and keep its content, versions, and comments.

    This page need refresh

    You have an incompatible client version.
    Refresh to update.
    New version available!
    See releases notes here
    Refresh to enjoy new features.
    Your user state has changed.
    Refresh to load new user state.

    Sign in

    Forgot password

    or

    By clicking below, you agree to our terms of service.

    Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
    Wallet ( )
    Connect another wallet

    New to HackMD? Sign up

    Help

    • English
    • 中文
    • Français
    • Deutsch
    • 日本語
    • Español
    • Català
    • Ελληνικά
    • Português
    • italiano
    • Türkçe
    • Русский
    • Nederlands
    • hrvatski jezik
    • język polski
    • Українська
    • हिन्दी
    • svenska
    • Esperanto
    • dansk

    Documents

    Help & Tutorial

    How to use Book mode

    Slide Example

    API Docs

    Edit in VSCode

    Install browser extension

    Contacts

    Feedback

    Discord

    Send us email

    Resources

    Releases

    Pricing

    Blog

    Policy

    Terms

    Privacy

    Cheatsheet

    Syntax Example Reference
    # Header Header 基本排版
    - Unordered List
    • Unordered List
    1. Ordered List
    1. Ordered List
    - [ ] Todo List
    • Todo List
    > Blockquote
    Blockquote
    **Bold font** Bold font
    *Italics font* Italics font
    ~~Strikethrough~~ Strikethrough
    19^th^ 19th
    H~2~O H2O
    ++Inserted text++ Inserted text
    ==Marked text== Marked text
    [link text](https:// "title") Link
    ![image alt](https:// "title") Image
    `Code` Code 在筆記中貼入程式碼
    ```javascript
    var i = 0;
    ```
    var i = 0;
    :smile: :smile: Emoji list
    {%youtube youtube_id %} Externals
    $L^aT_eX$ LaTeX
    :::info
    This is a alert area.
    :::

    This is a alert area.

    Versions and GitHub Sync
    Get Full History Access

    • Edit version name
    • Delete

    revision author avatar     named on  

    More Less

    Note content is identical to the latest version.
    Compare
      Choose a version
      No search result
      Version not found
    Sign in to link this note to GitHub
    Learn more
    This note is not linked with GitHub
     

    Feedback

    Submission failed, please try again

    Thanks for your support.

    On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

    Please give us some advice and help us improve HackMD.

     

    Thanks for your feedback

    Remove version name

    Do you want to remove this version name and description?

    Transfer ownership

    Transfer to
      Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

        Link with GitHub

        Please authorize HackMD on GitHub
        • Please sign in to GitHub and install the HackMD app on your GitHub repo.
        • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
        Learn more  Sign in to GitHub

        Push the note to GitHub Push to GitHub Pull a file from GitHub

          Authorize again
         

        Choose which file to push to

        Select repo
        Refresh Authorize more repos
        Select branch
        Select file
        Select branch
        Choose version(s) to push
        • Save a new version and push
        • Choose from existing versions
        Include title and tags
        Available push count

        Pull from GitHub

         
        File from GitHub
        File from HackMD

        GitHub Link Settings

        File linked

        Linked by
        File path
        Last synced branch
        Available push count

        Danger Zone

        Unlink
        You will no longer receive notification when GitHub file changes after unlink.

        Syncing

        Push failed

        Push successfully