SlideShare a Scribd company logo
1 of 27
Download to read offline
MadButterfly 的架構




          Thinker <thinker@branda.to>


1 of 27
What is?
           一種開發模式
           一種 GUI framework
           一套開發工具




2 of 27
Embedded
           主要目標是提供 Embedded System 一套 GUI 工具
           但,我不能阻止我們
            WEB
            Desktop
           因為
            Weblize 是趨勢




3 of 27
WEB 化
           MadButterfly 是 WEB 化的靈感
            但 WEB browser 是大象,是鯨魚




4 of 27
5 of 27
SVG
           弱水三千,只取一瓢。
           Scalable Vector Graphics
             W3C standard
             XML
             Scalable




6 of 27
繪圖
           為何選 SVG
               所有 GUI 都是一種圖形的呈現




7 of 27
Programming Model




8 of 27
外觀
           把 GUI 的外貌畫出來




9 of 27
行為
            透過 MadSwatter 定義 UI 的行為
            行為 --> 動畫
                儲存在 SVG 檔案裡的 metadata




10 of 27
Drop down list




11 of 27
Button




12 of 27
svg2code
             將「外觀」和「行為」轉換成程式碼




13 of 27
Host App
             link
               svg2code.py 產生的 code
               MadButterfly library




14 of 27
MadBuilder
            以 Firefox 為執行環境
            以 Javascript 為主
            整合
              Inkscape
              MadSwatter
              editor
              build system




15 of 27
Inkscape




16 of 27
MadSwatter
             動畫編輯工具
              完全以 Javascript + SVG + HTML 完成的軟體




17 of 27
MadButterfly
            base on
              C
              cairo
            提供和 SVG 對映的 object tree
              類似 DOM
              容易操作/控制




18 of 27
主要架構




19 of 27
redraw manager
             Determine
               Where to redraw
               Who to redraw
               When to redraw




20 of 27
21 of 27
coord_t
             It knows as group in SVG
               collect a set of shape objects and sub-groups.




22 of 27
Observer Pattern
             subject
             observer




23 of 27
24 of 27
Tiny
             MadButterfly is an tiny/concious engine to
               manage graphics,
               draw graphics, and
               redraw graphics
             It is target to small and embedded device.
               with fixed screen size.




25 of 27
急
               Javascript programmers
               UI designer
               C programmers
               Documentation




26 of 27
最後
            http://www.assembla.com/spaces/MadButterfly
            http://www.assembla.com/spaces/MadSwatter




27 of 27

More Related Content

Similar to MadButterfly Programming Model

Web Design Tools
Web Design ToolsWeb Design Tools
Web Design Toolslillianabe
 
2. Windows Azure
2. Windows Azure2. Windows Azure
2. Windows AzureGaryYoung
 
SVG For Web Designers (and Developers)
SVG For Web Designers (and Developers) SVG For Web Designers (and Developers)
SVG For Web Designers (and Developers) Sara Soueidan
 
Blueprint & Drafter JS
Blueprint & Drafter JSBlueprint & Drafter JS
Blueprint & Drafter JSPrateek Saxena
 
Clearspring Widgetsphere
Clearspring WidgetsphereClearspring Widgetsphere
Clearspring Widgetsphereeraz
 
Internet Explorer 10とマイクロソフトにとってのHTML5 in 岡山
Internet Explorer 10とマイクロソフトにとってのHTML5 in 岡山Internet Explorer 10とマイクロソフトにとってのHTML5 in 岡山
Internet Explorer 10とマイクロソフトにとってのHTML5 in 岡山Microsoft
 
SWeG: Lossless and Lossy Summarization of Web-Scale Graphs
SWeG: Lossless and Lossy Summarization of Web-Scale Graphs SWeG: Lossless and Lossy Summarization of Web-Scale Graphs
SWeG: Lossless and Lossy Summarization of Web-Scale Graphs DataMiningLabKAIST
 
Back To The Future
Back To The FutureBack To The Future
Back To The FutureBill Scott
 
3D Design with OpenSCAD
3D Design with OpenSCAD3D Design with OpenSCAD
3D Design with OpenSCADVickyTGAW
 
Conquering Gef Part 1: Effectively creating a well designed graphical editor
Conquering Gef Part 1: Effectively creating a well designed graphical editorConquering Gef Part 1: Effectively creating a well designed graphical editor
Conquering Gef Part 1: Effectively creating a well designed graphical editorVineet Sinha
 
Web Design Workshop
Web Design WorkshopWeb Design Workshop
Web Design WorkshopSuseZ
 
Wide Open Spaces Using My Sql As A Web Mapping Service Backend
Wide Open Spaces Using My Sql As A Web Mapping Service BackendWide Open Spaces Using My Sql As A Web Mapping Service Backend
Wide Open Spaces Using My Sql As A Web Mapping Service BackendMySQLConference
 
Úvod do programování 7
Úvod do programování 7Úvod do programování 7
Úvod do programování 7Karel Minarik
 
Rapid Prototyping With J Query
Rapid Prototyping With J QueryRapid Prototyping With J Query
Rapid Prototyping With J QueryBootstrap
 
Best Practices - By Lofi Dewanto
Best Practices - By Lofi DewantoBest Practices - By Lofi Dewanto
Best Practices - By Lofi DewantoGWTcon
 

Similar to MadButterfly Programming Model (20)

Web Design Tools
Web Design ToolsWeb Design Tools
Web Design Tools
 
2. Windows Azure
2. Windows Azure2. Windows Azure
2. Windows Azure
 
SVG For Web Designers (and Developers)
SVG For Web Designers (and Developers) SVG For Web Designers (and Developers)
SVG For Web Designers (and Developers)
 
Base2
Base2Base2
Base2
 
Blueprint & Drafter JS
Blueprint & Drafter JSBlueprint & Drafter JS
Blueprint & Drafter JS
 
Clearspring Widgetsphere
Clearspring WidgetsphereClearspring Widgetsphere
Clearspring Widgetsphere
 
Internet Explorer 10とマイクロソフトにとってのHTML5 in 岡山
Internet Explorer 10とマイクロソフトにとってのHTML5 in 岡山Internet Explorer 10とマイクロソフトにとってのHTML5 in 岡山
Internet Explorer 10とマイクロソフトにとってのHTML5 in 岡山
 
SWeG: Lossless and Lossy Summarization of Web-Scale Graphs
SWeG: Lossless and Lossy Summarization of Web-Scale Graphs SWeG: Lossless and Lossy Summarization of Web-Scale Graphs
SWeG: Lossless and Lossy Summarization of Web-Scale Graphs
 
Back To The Future
Back To The FutureBack To The Future
Back To The Future
 
3D Design with OpenSCAD
3D Design with OpenSCAD3D Design with OpenSCAD
3D Design with OpenSCAD
 
Conquering Gef Part 1: Effectively creating a well designed graphical editor
Conquering Gef Part 1: Effectively creating a well designed graphical editorConquering Gef Part 1: Effectively creating a well designed graphical editor
Conquering Gef Part 1: Effectively creating a well designed graphical editor
 
Web Design Workshop
Web Design WorkshopWeb Design Workshop
Web Design Workshop
 
Test-proof CSS
Test-proof CSSTest-proof CSS
Test-proof CSS
 
Wide Open Spaces Using My Sql As A Web Mapping Service Backend
Wide Open Spaces Using My Sql As A Web Mapping Service BackendWide Open Spaces Using My Sql As A Web Mapping Service Backend
Wide Open Spaces Using My Sql As A Web Mapping Service Backend
 
Úvod do programování 7
Úvod do programování 7Úvod do programování 7
Úvod do programování 7
 
Javascript
JavascriptJavascript
Javascript
 
Rapid Prototyping With J Query
Rapid Prototyping With J QueryRapid Prototyping With J Query
Rapid Prototyping With J Query
 
Best Practices - By Lofi Dewanto
Best Practices - By Lofi DewantoBest Practices - By Lofi Dewanto
Best Practices - By Lofi Dewanto
 
Html5
Html5Html5
Html5
 
The Role Of Java Script
The Role Of Java ScriptThe Role Of Java Script
The Role Of Java Script
 

Recently uploaded

Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfjimielynbastida
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 

Recently uploaded (20)

Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdf
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 

MadButterfly Programming Model

  • 1. MadButterfly 的架構 Thinker <thinker@branda.to> 1 of 27
  • 2. What is? 一種開發模式 一種 GUI framework 一套開發工具 2 of 27
  • 3. Embedded 主要目標是提供 Embedded System 一套 GUI 工具 但,我不能阻止我們 WEB Desktop 因為 Weblize 是趨勢 3 of 27
  • 4. WEB 化 MadButterfly 是 WEB 化的靈感 但 WEB browser 是大象,是鯨魚 4 of 27
  • 6. SVG 弱水三千,只取一瓢。 Scalable Vector Graphics W3C standard XML Scalable 6 of 27
  • 7. 繪圖 為何選 SVG 所有 GUI 都是一種圖形的呈現 7 of 27
  • 9. 外觀 把 GUI 的外貌畫出來 9 of 27
  • 10. 行為 透過 MadSwatter 定義 UI 的行為 行為 --> 動畫 儲存在 SVG 檔案裡的 metadata 10 of 27
  • 13. svg2code 將「外觀」和「行為」轉換成程式碼 13 of 27
  • 14. Host App link svg2code.py 產生的 code MadButterfly library 14 of 27
  • 15. MadBuilder 以 Firefox 為執行環境 以 Javascript 為主 整合 Inkscape MadSwatter editor build system 15 of 27
  • 17. MadSwatter 動畫編輯工具 完全以 Javascript + SVG + HTML 完成的軟體 17 of 27
  • 18. MadButterfly base on C cairo 提供和 SVG 對映的 object tree 類似 DOM 容易操作/控制 18 of 27
  • 20. redraw manager Determine Where to redraw Who to redraw When to redraw 20 of 27
  • 22. coord_t It knows as group in SVG collect a set of shape objects and sub-groups. 22 of 27
  • 23. Observer Pattern subject observer 23 of 27
  • 25. Tiny MadButterfly is an tiny/concious engine to manage graphics, draw graphics, and redraw graphics It is target to small and embedded device. with fixed screen size. 25 of 27
  • 26. Javascript programmers UI designer C programmers Documentation 26 of 27
  • 27. 最後 http://www.assembla.com/spaces/MadButterfly http://www.assembla.com/spaces/MadSwatter 27 of 27