SlideShare una empresa de Scribd logo
1 de 35
Descargar para leer sin conexión
MarsJust another world
martes 2 de noviembre de 2010
MarsJust another world
martes 2 de noviembre de 2010
Who I am?
martes 2 de noviembre de 2010
Who I am?
I really don’t know (yet)
martes 2 de noviembre de 2010
Once upon a time...
There was Squeak...
martes 2 de noviembre de 2010
martes 2 de noviembre de 2010
...and Squeak had a lot of colors
(yes... many people like them... just
not me)
martes 2 de noviembre de 2010
...and other not so good
things
• no good keybinding and manual handling of
tools.
• no cool widgets (like trees, etc.)
• no native user interface (of course, not
Polymorph either)
martes 2 de noviembre de 2010
Then came Pharo!
A profesional
open-source
Smalltalk
martes 2 de noviembre de 2010
martes 2 de noviembre de 2010
Pharo has good UI
improvements
• With time, it incorporates
• Polymorph!
• A good set of key binds (like cmd+w,
finally!)
• ...and most of this changes are now on
Squeak too.
martes 2 de noviembre de 2010
martes 2 de noviembre de 2010
So, why Mars?
• Because native applications rocks
• The mac experience matters
• We should be able to produce that
experience using Pharo.
martes 2 de noviembre de 2010
And what’s Mars?
An model, view, controller user interface
framework for building native applications for the
OSX, iPhone and iPad
martes 2 de noviembre de 2010
Architecture in a slide
• Cocoa/CocoaTouch
• The ObjectiveCBridge
• Model,View, Controller
martes 2 de noviembre de 2010
The bridge
martes 2 de noviembre de 2010
Objective-C bridge
• Made by John McIntosh
• Present by default in all the latest vm builds
• Used on real applications for the iPhone
martes 2 de noviembre de 2010
Objective-C bridge
• An object in Pharo forward mesages to
Objective-C
• A proxy in Objective-C side interacts with a
correspondent object in Pharo side.
• Everything is handled by semaphores waiting
to do something, at both sides
• Yes, the coordination of that interaction is
tricky, but the bridge does that for us.
martes 2 de noviembre de 2010
The architecture
martes 2 de noviembre de 2010
Architecture:View
• As said, any control has it’s corresponding ObjectiveC
object.
• Everything is inside an Application
• Everything is
• a Window,
• a child of a Window, or
• a Dialog
• There are lot’s of controls already made, and more to
come
martes 2 de noviembre de 2010
Architecture: Controller
• Mars handles it’s actions through callbacks
installed as a proxy between Pharo and
ObjectiveC
• Any callback installed is a independent
process in Pharo side
• Yes, there are lots of processes if you run
Mars right now.
martes 2 de noviembre de 2010
Architecture: Model
• It uses a standard “model” mechanism
• For malleability, we can use
MRModelAdaptor
• It “borrows” something I saw in Dolphin.
• It is an adaptor for any model I need
(well... at least any model I needed, but I
can grow it later)
martes 2 de noviembre de 2010
Really small demo
martes 2 de noviembre de 2010
Problems
martes 2 de noviembre de 2010
Problems found
• The “dead lock” problem
• Changed by changing theVM structure
• But now there are other problem: no
scheduled proccess
• Being worked on by John and Eliot.
Thanks!
martes 2 de noviembre de 2010
Texto
The future
martes 2 de noviembre de 2010
Next steps
• We are still someplace between “make it
work” and “make it right”... but we will
succeed! (and very soon)
• Needs testing (Maybe with FScript)
• Needs documentation
• Last minute addition: MRNibObject
Make it work, make it right, make it fast
martes 2 de noviembre de 2010
Far next steps
• Mars for Linux and Windows?
• There are design issues, and abstraction
layers are never a good idea (IMHO)
martes 2 de noviembre de 2010
I would like to see... (1)
Standard VM MarsPlugin
PharoKernel Mars
MarsWorld
Other packages
Modular pharo in a standard (and/or Cog)VM
martes 2 de noviembre de 2010
I would like to see (2)
• The “great and unique and fantastique tool
rebuilding call”
• Our tools are most of the times old
• And our tools are always ugly
• Yes, it is an heresy... but a needed one.
martes 2 de noviembre de 2010
Where is Mars?
http://www.squeaksource.com/Mars
http://code.google.com/p/marsonpharo
http://groups.google.com/group/marsonpharo
martes 2 de noviembre de 2010
Where is Mars?
http://www.squeaksource.com/Mars
(lots of garbage there, so be careful)
http://code.google.com/p/marsonpharo
http://groups.google.com/group/marsonpharo
martes 2 de noviembre de 2010
Where is Mars?
http://www.squeaksource.com/Mars
(lots of garbage there, so be careful)
http://code.google.com/p/marsonpharo
(Nothing right now there, but binaries and
oneclicks will be there in the future)
http://groups.google.com/group/marsonpharo
martes 2 de noviembre de 2010
Where is Mars?
http://www.squeaksource.com/Mars
(lots of garbage there, so be careful)
http://code.google.com/p/marsonpharo
(Nothing right now there, but binaries and
oneclicks will be there in the future)
http://groups.google.com/group/marsonpharo
(No trafic, but specific questions and etc. can be
sent there)
martes 2 de noviembre de 2010
Questions?
martes 2 de noviembre de 2010

Más contenido relacionado

Similar a Mars

Linked data and Muruca @ COST a32 - Munich
Linked data and Muruca @ COST a32 - MunichLinked data and Muruca @ COST a32 - Munich
Linked data and Muruca @ COST a32 - MunichChristian Morbidoni
 
Pythonic APIs - Anthony Baxter
Pythonic APIs - Anthony BaxterPythonic APIs - Anthony Baxter
Pythonic APIs - Anthony Baxterknappt
 
Pharo, Spec and GTK
Pharo, Spec and GTKPharo, Spec and GTK
Pharo, Spec and GTKESUG
 
Groovy to infinity and beyond - SpringOne2GX - 2010 - Guillaume Laforge
Groovy to infinity and beyond - SpringOne2GX - 2010 - Guillaume LaforgeGroovy to infinity and beyond - SpringOne2GX - 2010 - Guillaume Laforge
Groovy to infinity and beyond - SpringOne2GX - 2010 - Guillaume LaforgeGuillaume Laforge
 
Mozilla Research Party Talk
Mozilla Research Party TalkMozilla Research Party Talk
Mozilla Research Party TalkBrendan Eich
 
Polymer in the real life - Devoxx France - 2016 04-20
Polymer in the real life - Devoxx France - 2016 04-20Polymer in the real life - Devoxx France - 2016 04-20
Polymer in the real life - Devoxx France - 2016 04-20Horacio Gonzalez
 
Day 1 slides UNO summer 2010 robotics workshop
Day 1 slides UNO summer 2010 robotics workshop Day 1 slides UNO summer 2010 robotics workshop
Day 1 slides UNO summer 2010 robotics workshop Raj Dasgupta
 
Why Plone Will Die
Why Plone Will DieWhy Plone Will Die
Why Plone Will DieAndreas Jung
 
Introduction to-cocos2d
Introduction to-cocos2dIntroduction to-cocos2d
Introduction to-cocos2dsagaroceanic11
 
Leweb09 Building Wave Robots
Leweb09 Building Wave RobotsLeweb09 Building Wave Robots
Leweb09 Building Wave RobotsPatrick Chanezon
 
Golab.io
Golab.ioGolab.io
Golab.ior3vit
 
Plone Conference 2010 – Where we go from here
Plone Conference 2010 – Where we go from herePlone Conference 2010 – Where we go from here
Plone Conference 2010 – Where we go from hereEric Steele
 
Cloudstack collaboration conference Europe - SDN and Devops
Cloudstack collaboration conference Europe - SDN and DevopsCloudstack collaboration conference Europe - SDN and Devops
Cloudstack collaboration conference Europe - SDN and DevopsJohn Willis
 
State of Python (2010)
State of Python (2010)State of Python (2010)
State of Python (2010)Richard Jones
 
The Reluctant SysAdmin : 360|iDev Austin 2010
The Reluctant SysAdmin : 360|iDev Austin 2010The Reluctant SysAdmin : 360|iDev Austin 2010
The Reluctant SysAdmin : 360|iDev Austin 2010Voxilate
 
Lessons Learned from CityOpenSource
Lessons Learned from CityOpenSourceLessons Learned from CityOpenSource
Lessons Learned from CityOpenSourceMarco Montanari
 
Virtual Smalltalk Images - IWST - ESUG 2013
Virtual Smalltalk Images - IWST - ESUG 2013Virtual Smalltalk Images - IWST - ESUG 2013
Virtual Smalltalk Images - IWST - ESUG 2013Guille Polito
 
Unity: la shell di ubuntu
Unity: la shell di ubuntuUnity: la shell di ubuntu
Unity: la shell di ubuntuMarco Trevisan
 

Similar a Mars (20)

Linked data and Muruca @ COST a32 - Munich
Linked data and Muruca @ COST a32 - MunichLinked data and Muruca @ COST a32 - Munich
Linked data and Muruca @ COST a32 - Munich
 
Pythonic APIs - Anthony Baxter
Pythonic APIs - Anthony BaxterPythonic APIs - Anthony Baxter
Pythonic APIs - Anthony Baxter
 
Pharo, Spec and GTK
Pharo, Spec and GTKPharo, Spec and GTK
Pharo, Spec and GTK
 
Groovy to infinity and beyond - SpringOne2GX - 2010 - Guillaume Laforge
Groovy to infinity and beyond - SpringOne2GX - 2010 - Guillaume LaforgeGroovy to infinity and beyond - SpringOne2GX - 2010 - Guillaume Laforge
Groovy to infinity and beyond - SpringOne2GX - 2010 - Guillaume Laforge
 
Mozilla Research Party Talk
Mozilla Research Party TalkMozilla Research Party Talk
Mozilla Research Party Talk
 
Polymer in the real life - Devoxx France - 2016 04-20
Polymer in the real life - Devoxx France - 2016 04-20Polymer in the real life - Devoxx France - 2016 04-20
Polymer in the real life - Devoxx France - 2016 04-20
 
Day 1 slides UNO summer 2010 robotics workshop
Day 1 slides UNO summer 2010 robotics workshop Day 1 slides UNO summer 2010 robotics workshop
Day 1 slides UNO summer 2010 robotics workshop
 
Why Plone Will Die
Why Plone Will DieWhy Plone Will Die
Why Plone Will Die
 
Introduction to Cocos2d
Introduction to Cocos2dIntroduction to Cocos2d
Introduction to Cocos2d
 
Introduction to-cocos2d
Introduction to-cocos2dIntroduction to-cocos2d
Introduction to-cocos2d
 
Leweb09 Building Wave Robots
Leweb09 Building Wave RobotsLeweb09 Building Wave Robots
Leweb09 Building Wave Robots
 
Golab.io
Golab.ioGolab.io
Golab.io
 
Plone Conference 2010 – Where we go from here
Plone Conference 2010 – Where we go from herePlone Conference 2010 – Where we go from here
Plone Conference 2010 – Where we go from here
 
Cloudstack collaboration conference Europe - SDN and Devops
Cloudstack collaboration conference Europe - SDN and DevopsCloudstack collaboration conference Europe - SDN and Devops
Cloudstack collaboration conference Europe - SDN and Devops
 
State of Python (2010)
State of Python (2010)State of Python (2010)
State of Python (2010)
 
The Reluctant SysAdmin : 360|iDev Austin 2010
The Reluctant SysAdmin : 360|iDev Austin 2010The Reluctant SysAdmin : 360|iDev Austin 2010
The Reluctant SysAdmin : 360|iDev Austin 2010
 
Lessons Learned from CityOpenSource
Lessons Learned from CityOpenSourceLessons Learned from CityOpenSource
Lessons Learned from CityOpenSource
 
Virtual Smalltalk Images - IWST - ESUG 2013
Virtual Smalltalk Images - IWST - ESUG 2013Virtual Smalltalk Images - IWST - ESUG 2013
Virtual Smalltalk Images - IWST - ESUG 2013
 
ActiveRecord 2.3
ActiveRecord 2.3ActiveRecord 2.3
ActiveRecord 2.3
 
Unity: la shell di ubuntu
Unity: la shell di ubuntuUnity: la shell di ubuntu
Unity: la shell di ubuntu
 

Más de ESUG

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingESUG
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in PharoESUG
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapESUG
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoESUG
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...ESUG
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsESUG
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6ESUG
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationESUG
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingESUG
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesESUG
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportESUG
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsESUG
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector TuningESUG
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseESUG
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FutureESUG
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the DebuggerESUG
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing ScoreESUG
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptESUG
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocESUG
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsESUG
 

Más de ESUG (20)

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in Pharo
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and Roadmap
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in Pharo
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector Tuning
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the Debugger
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing Score
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design Mooc
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
 

Último

Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdfChristopherTHyatt
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 

Último (20)

Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 

Mars

  • 1. MarsJust another world martes 2 de noviembre de 2010
  • 2. MarsJust another world martes 2 de noviembre de 2010
  • 3. Who I am? martes 2 de noviembre de 2010
  • 4. Who I am? I really don’t know (yet) martes 2 de noviembre de 2010
  • 5. Once upon a time... There was Squeak... martes 2 de noviembre de 2010
  • 6. martes 2 de noviembre de 2010
  • 7. ...and Squeak had a lot of colors (yes... many people like them... just not me) martes 2 de noviembre de 2010
  • 8. ...and other not so good things • no good keybinding and manual handling of tools. • no cool widgets (like trees, etc.) • no native user interface (of course, not Polymorph either) martes 2 de noviembre de 2010
  • 9. Then came Pharo! A profesional open-source Smalltalk martes 2 de noviembre de 2010
  • 10. martes 2 de noviembre de 2010
  • 11. Pharo has good UI improvements • With time, it incorporates • Polymorph! • A good set of key binds (like cmd+w, finally!) • ...and most of this changes are now on Squeak too. martes 2 de noviembre de 2010
  • 12. martes 2 de noviembre de 2010
  • 13. So, why Mars? • Because native applications rocks • The mac experience matters • We should be able to produce that experience using Pharo. martes 2 de noviembre de 2010
  • 14. And what’s Mars? An model, view, controller user interface framework for building native applications for the OSX, iPhone and iPad martes 2 de noviembre de 2010
  • 15. Architecture in a slide • Cocoa/CocoaTouch • The ObjectiveCBridge • Model,View, Controller martes 2 de noviembre de 2010
  • 16. The bridge martes 2 de noviembre de 2010
  • 17. Objective-C bridge • Made by John McIntosh • Present by default in all the latest vm builds • Used on real applications for the iPhone martes 2 de noviembre de 2010
  • 18. Objective-C bridge • An object in Pharo forward mesages to Objective-C • A proxy in Objective-C side interacts with a correspondent object in Pharo side. • Everything is handled by semaphores waiting to do something, at both sides • Yes, the coordination of that interaction is tricky, but the bridge does that for us. martes 2 de noviembre de 2010
  • 19. The architecture martes 2 de noviembre de 2010
  • 20. Architecture:View • As said, any control has it’s corresponding ObjectiveC object. • Everything is inside an Application • Everything is • a Window, • a child of a Window, or • a Dialog • There are lot’s of controls already made, and more to come martes 2 de noviembre de 2010
  • 21. Architecture: Controller • Mars handles it’s actions through callbacks installed as a proxy between Pharo and ObjectiveC • Any callback installed is a independent process in Pharo side • Yes, there are lots of processes if you run Mars right now. martes 2 de noviembre de 2010
  • 22. Architecture: Model • It uses a standard “model” mechanism • For malleability, we can use MRModelAdaptor • It “borrows” something I saw in Dolphin. • It is an adaptor for any model I need (well... at least any model I needed, but I can grow it later) martes 2 de noviembre de 2010
  • 23. Really small demo martes 2 de noviembre de 2010
  • 24. Problems martes 2 de noviembre de 2010
  • 25. Problems found • The “dead lock” problem • Changed by changing theVM structure • But now there are other problem: no scheduled proccess • Being worked on by John and Eliot. Thanks! martes 2 de noviembre de 2010
  • 26. Texto The future martes 2 de noviembre de 2010
  • 27. Next steps • We are still someplace between “make it work” and “make it right”... but we will succeed! (and very soon) • Needs testing (Maybe with FScript) • Needs documentation • Last minute addition: MRNibObject Make it work, make it right, make it fast martes 2 de noviembre de 2010
  • 28. Far next steps • Mars for Linux and Windows? • There are design issues, and abstraction layers are never a good idea (IMHO) martes 2 de noviembre de 2010
  • 29. I would like to see... (1) Standard VM MarsPlugin PharoKernel Mars MarsWorld Other packages Modular pharo in a standard (and/or Cog)VM martes 2 de noviembre de 2010
  • 30. I would like to see (2) • The “great and unique and fantastique tool rebuilding call” • Our tools are most of the times old • And our tools are always ugly • Yes, it is an heresy... but a needed one. martes 2 de noviembre de 2010
  • 32. Where is Mars? http://www.squeaksource.com/Mars (lots of garbage there, so be careful) http://code.google.com/p/marsonpharo http://groups.google.com/group/marsonpharo martes 2 de noviembre de 2010
  • 33. Where is Mars? http://www.squeaksource.com/Mars (lots of garbage there, so be careful) http://code.google.com/p/marsonpharo (Nothing right now there, but binaries and oneclicks will be there in the future) http://groups.google.com/group/marsonpharo martes 2 de noviembre de 2010
  • 34. Where is Mars? http://www.squeaksource.com/Mars (lots of garbage there, so be careful) http://code.google.com/p/marsonpharo (Nothing right now there, but binaries and oneclicks will be there in the future) http://groups.google.com/group/marsonpharo (No trafic, but specific questions and etc. can be sent there) martes 2 de noviembre de 2010
  • 35. Questions? martes 2 de noviembre de 2010