SlideShare a Scribd company logo
1 of 14
github.com/ba-st
A Smalltalk project ecosystem based on Buenos Aires
Who?
BA-ST → Buenos Aires Smalltalk
18 people registered
7 presentations at Smalltalks
3 at ESUG, OOPSLA
2 external collaborators
Designated speaker:
Maximiliano Tabacman You
!
Where?
Buenos Aires, Argentina (and its surroundings)
https://ba-st.slack.com
Why?
Community
Shared Language
Centralized
academic projects
What?
● Aconcagua
● ApplicationStarter
● Boardwalk
● Buoy
● Cannon
● chalten
● Docker-pharo
● Evelyn
● GitHub-setup
● HighchartsSt
● Kepler
● Kepler-MongoDB
● Mole
● RenoirSt
● Stardust
● Stargate
● Willow
● Willow-Booklet
● Willow-Bootstrap
● Willow-JQueryUI
● Willow-Mixpanel
● Willow-Playground
● Willow-SemanticUI
● Willow-SpinKit 24 repositories
and counting!
What?
● Aconcagua
● ApplicationStarter
● Boardwalk
● Buoy
● Cannon
● chalten
● Docker-pharo
● Evelyn
● GitHub-setup
● HighchartsSt
● Kepler
● Kepler-MongoDB
● Mole
● RenoirSt
● Stardust
● Stargate
● Willow
● Willow-Booklet
● Willow-Bootstrap
● Willow-JQueryUI
● Willow-Mixpanel
● Willow-Playground
● Willow-SemanticUI
● Willow-SpinKit
Some have
already been
presented
What?
● Aconcagua
● ApplicationStarter
● Boardwalk
● Buoy
● Cannon
● chalten
● Docker-pharo
● Evelyn
● GitHub-setup
● HighchartsSt
● Kepler
● Kepler-MongoDB
● Mole
● RenoirSt
● Stardust
● Stargate
● Willow
● Willow-Booklet
● Willow-Bootstrap
● Willow-JQueryUI
● Willow-Mixpanel
● Willow-Playground
● Willow-SemanticUI
● Willow-SpinKit
Let’s review more of them
Buoy
A complement to Pharo
Math
(200 increasedBy: 10 percent)
decreasedBy: 10 percent
Assertions
| code |
code := 'AR'.
AssertionChecker enforce: [ code size = 2 ] because: 'Expected 2 letters'
Bindings & Optionals
countBinding := Binding undefinedExplainedBy: 'Please set
the default count.'.
countBinding := Binding to: 1.
fileOptional := Optional unused.
fileOptional := Optional containing: self uploadFile.
Boardwalk
Some facilities over Seaside
Javascript
Expression
Function call
Named function
TypeOf
Global namespace declaration
Non-Inlined If/Then/Else
Web applications
Identifier assigner
Deployment mode
Online library
Extensions
JSObject
JSStream
WAHtmlCanvas
WAFormTag
WAUrl
Mole
A model for Graphs
Directed / Undirected
GraphBuilder new
...
buildUndirected
buildDirectedGraph builder
GraphBuilder new
connect: 1 to: 2;
loopOn: 1;
connect: 4 to: 3;
addVertex: 8;
buildUndirected
Complex labels
anEdge
withLabelDo: [:function | function value:
evaluationContext ] ifUnlabeled: [ self defaultValue ]
Cannon
State Machine implementation
Willow examples
Functional web application with state transitions
State machine specification builder
Create valid machine specifications
Transitions
● Name
● Source / Destination
● Preconditions
● Execution on completion
● Triggers
States
● Name
● Execution on entry
● Execution on exit
Stardust
Descriptive model creation
● Define how to build complex
objects (from UI components)
● Graph composition (Mole)
● Failure collecting strategy
Single model
SingleModelPicker
named: 'Chosen dish'
obtainingSelectionFrom: platesView
Fixed model
FixedModelCreator creating:
Date today
Reflexive instance creation
(GenericModelCreatorBuilder
named: 'Menu'
building: DinnerMenu
accessedUsing: #(dishes
beverages))
serving: self dishesCreator
drining: self beveragesCreator
GitHub-setup
Easy construction of new Pharo projects in GitHub
setup.sh
Step-by-step usage instructions
Structure
assets/
docs/
source/
README.md
CONTRIBUTING.md
LICENSE
...
Time for questions
Thanks!
Made possible by:
- Collaborators
- Companies: Mercap, Debris Publishing
- Universities: UBA, UCA, UNQ

More Related Content

What's hot

Sprint Boot & Kotlin - Meetup.pdf
Sprint Boot & Kotlin - Meetup.pdfSprint Boot & Kotlin - Meetup.pdf
Sprint Boot & Kotlin - Meetup.pdfChristian Zellot
 
Documenting an API written in Django Rest Framework
Documenting an API written in Django Rest FrameworkDocumenting an API written in Django Rest Framework
Documenting an API written in Django Rest Frameworksmirolo
 
MeCab in docker action(OpenWhisk)
MeCab in docker action(OpenWhisk)MeCab in docker action(OpenWhisk)
MeCab in docker action(OpenWhisk)KUNITO Atsunori
 
Ancient To Modern: Upgrading nearly a decade of Plone in public radio
Ancient To Modern: Upgrading nearly a decade of Plone in public radioAncient To Modern: Upgrading nearly a decade of Plone in public radio
Ancient To Modern: Upgrading nearly a decade of Plone in public radioCristopher Ewing
 

What's hot (6)

24 uses for perl6
24 uses for perl624 uses for perl6
24 uses for perl6
 
Sprint Boot & Kotlin - Meetup.pdf
Sprint Boot & Kotlin - Meetup.pdfSprint Boot & Kotlin - Meetup.pdf
Sprint Boot & Kotlin - Meetup.pdf
 
Documenting an API written in Django Rest Framework
Documenting an API written in Django Rest FrameworkDocumenting an API written in Django Rest Framework
Documenting an API written in Django Rest Framework
 
MeCab in docker action(OpenWhisk)
MeCab in docker action(OpenWhisk)MeCab in docker action(OpenWhisk)
MeCab in docker action(OpenWhisk)
 
2017 01-24 mashcat
2017 01-24 mashcat2017 01-24 mashcat
2017 01-24 mashcat
 
Ancient To Modern: Upgrading nearly a decade of Plone in public radio
Ancient To Modern: Upgrading nearly a decade of Plone in public radioAncient To Modern: Upgrading nearly a decade of Plone in public radio
Ancient To Modern: Upgrading nearly a decade of Plone in public radio
 

Similar to BA-ST project ecosystem by Maxi Tabacman

BaseX user-group-talk XML Prague 2013
BaseX user-group-talk XML Prague 2013BaseX user-group-talk XML Prague 2013
BaseX user-group-talk XML Prague 2013Andy Bunce
 
Cluster management with Kubernetes
Cluster management with KubernetesCluster management with Kubernetes
Cluster management with KubernetesSatnam Singh
 
Getting-Started-with-Containers-and-Kubernetes_-March-2020-CNCF-Webinar.pdf
Getting-Started-with-Containers-and-Kubernetes_-March-2020-CNCF-Webinar.pdfGetting-Started-with-Containers-and-Kubernetes_-March-2020-CNCF-Webinar.pdf
Getting-Started-with-Containers-and-Kubernetes_-March-2020-CNCF-Webinar.pdfssuser348b1c
 
Ignacy Kowalczyk
Ignacy KowalczykIgnacy Kowalczyk
Ignacy KowalczykCodeFest
 
Cross the streams thanks to Kafka and Flink (Christophe Philemotte, Digazu) K...
Cross the streams thanks to Kafka and Flink (Christophe Philemotte, Digazu) K...Cross the streams thanks to Kafka and Flink (Christophe Philemotte, Digazu) K...
Cross the streams thanks to Kafka and Flink (Christophe Philemotte, Digazu) K...confluent
 
An Introduction to Play 2 Framework
An Introduction to Play 2 FrameworkAn Introduction to Play 2 Framework
An Introduction to Play 2 FrameworkPT.JUG
 
Highlights from Java 10, 11 and 12 and Future of Java at Javaland 2019 By Vad...
Highlights from Java 10, 11 and 12 and Future of Java at Javaland 2019 By Vad...Highlights from Java 10, 11 and 12 and Future of Java at Javaland 2019 By Vad...
Highlights from Java 10, 11 and 12 and Future of Java at Javaland 2019 By Vad...Vadym Kazulkin
 
JCConf 2016 - Google Dataflow 小試
JCConf 2016 - Google Dataflow 小試JCConf 2016 - Google Dataflow 小試
JCConf 2016 - Google Dataflow 小試Simon Su
 
Drools, jBPM OptaPlanner presentation
Drools, jBPM OptaPlanner presentationDrools, jBPM OptaPlanner presentation
Drools, jBPM OptaPlanner presentationMark Proctor
 
Package a PyApp as a Flatpak Package: An HTTP Server for Example @ PyCon APAC...
Package a PyApp as a Flatpak Package: An HTTP Server for Example @ PyCon APAC...Package a PyApp as a Flatpak Package: An HTTP Server for Example @ PyCon APAC...
Package a PyApp as a Flatpak Package: An HTTP Server for Example @ PyCon APAC...Jian-Hong Pan
 
Who needs containers in a serverless world
Who needs containers in a serverless worldWho needs containers in a serverless world
Who needs containers in a serverless worldMatthias Luebken
 
Apache Airflow in the Cloud: Programmatically orchestrating workloads with Py...
Apache Airflow in the Cloud: Programmatically orchestrating workloads with Py...Apache Airflow in the Cloud: Programmatically orchestrating workloads with Py...
Apache Airflow in the Cloud: Programmatically orchestrating workloads with Py...Kaxil Naik
 
Lecture 8 - Qooxdoo - Rap Course At The University Of Szeged
Lecture 8 - Qooxdoo - Rap Course At The University Of SzegedLecture 8 - Qooxdoo - Rap Course At The University Of Szeged
Lecture 8 - Qooxdoo - Rap Course At The University Of SzegedFabian Jakobs
 
Cape Cod Web Technology Meetup - 3
Cape Cod Web Technology Meetup - 3Cape Cod Web Technology Meetup - 3
Cape Cod Web Technology Meetup - 3Asher Martin
 
Keynote #Tech - Google : aperçu de la gestion des services distribués chez Go...
Keynote #Tech - Google : aperçu de la gestion des services distribués chez Go...Keynote #Tech - Google : aperçu de la gestion des services distribués chez Go...
Keynote #Tech - Google : aperçu de la gestion des services distribués chez Go...Paris Open Source Summit
 
Scaling docker with kubernetes
Scaling docker with kubernetesScaling docker with kubernetes
Scaling docker with kubernetesLiran Cohen
 
Highlights from Java 10-13 and Future of Java at JCON 2019 by Alukhanov and K...
Highlights from Java 10-13 and Future of Java at JCON 2019 by Alukhanov and K...Highlights from Java 10-13 and Future of Java at JCON 2019 by Alukhanov and K...
Highlights from Java 10-13 and Future of Java at JCON 2019 by Alukhanov and K...Vadym Kazulkin
 

Similar to BA-ST project ecosystem by Maxi Tabacman (20)

BaseX user-group-talk XML Prague 2013
BaseX user-group-talk XML Prague 2013BaseX user-group-talk XML Prague 2013
BaseX user-group-talk XML Prague 2013
 
Cluster management with Kubernetes
Cluster management with KubernetesCluster management with Kubernetes
Cluster management with Kubernetes
 
Getting-Started-with-Containers-and-Kubernetes_-March-2020-CNCF-Webinar.pdf
Getting-Started-with-Containers-and-Kubernetes_-March-2020-CNCF-Webinar.pdfGetting-Started-with-Containers-and-Kubernetes_-March-2020-CNCF-Webinar.pdf
Getting-Started-with-Containers-and-Kubernetes_-March-2020-CNCF-Webinar.pdf
 
Ignacy Kowalczyk
Ignacy KowalczykIgnacy Kowalczyk
Ignacy Kowalczyk
 
Cross the streams thanks to Kafka and Flink (Christophe Philemotte, Digazu) K...
Cross the streams thanks to Kafka and Flink (Christophe Philemotte, Digazu) K...Cross the streams thanks to Kafka and Flink (Christophe Philemotte, Digazu) K...
Cross the streams thanks to Kafka and Flink (Christophe Philemotte, Digazu) K...
 
An Introduction to Play 2 Framework
An Introduction to Play 2 FrameworkAn Introduction to Play 2 Framework
An Introduction to Play 2 Framework
 
Introduction to Tekton
Introduction to TektonIntroduction to Tekton
Introduction to Tekton
 
Highlights from Java 10, 11 and 12 and Future of Java at Javaland 2019 By Vad...
Highlights from Java 10, 11 and 12 and Future of Java at Javaland 2019 By Vad...Highlights from Java 10, 11 and 12 and Future of Java at Javaland 2019 By Vad...
Highlights from Java 10, 11 and 12 and Future of Java at Javaland 2019 By Vad...
 
JCConf 2016 - Google Dataflow 小試
JCConf 2016 - Google Dataflow 小試JCConf 2016 - Google Dataflow 小試
JCConf 2016 - Google Dataflow 小試
 
Drools, jBPM OptaPlanner presentation
Drools, jBPM OptaPlanner presentationDrools, jBPM OptaPlanner presentation
Drools, jBPM OptaPlanner presentation
 
Package a PyApp as a Flatpak Package: An HTTP Server for Example @ PyCon APAC...
Package a PyApp as a Flatpak Package: An HTTP Server for Example @ PyCon APAC...Package a PyApp as a Flatpak Package: An HTTP Server for Example @ PyCon APAC...
Package a PyApp as a Flatpak Package: An HTTP Server for Example @ PyCon APAC...
 
Who needs containers in a serverless world
Who needs containers in a serverless worldWho needs containers in a serverless world
Who needs containers in a serverless world
 
Apache Airflow in the Cloud: Programmatically orchestrating workloads with Py...
Apache Airflow in the Cloud: Programmatically orchestrating workloads with Py...Apache Airflow in the Cloud: Programmatically orchestrating workloads with Py...
Apache Airflow in the Cloud: Programmatically orchestrating workloads with Py...
 
Lecture 8 - Qooxdoo - Rap Course At The University Of Szeged
Lecture 8 - Qooxdoo - Rap Course At The University Of SzegedLecture 8 - Qooxdoo - Rap Course At The University Of Szeged
Lecture 8 - Qooxdoo - Rap Course At The University Of Szeged
 
Before & After Docker Init
Before & After Docker InitBefore & After Docker Init
Before & After Docker Init
 
Cape Cod Web Technology Meetup - 3
Cape Cod Web Technology Meetup - 3Cape Cod Web Technology Meetup - 3
Cape Cod Web Technology Meetup - 3
 
Play framework
Play frameworkPlay framework
Play framework
 
Keynote #Tech - Google : aperçu de la gestion des services distribués chez Go...
Keynote #Tech - Google : aperçu de la gestion des services distribués chez Go...Keynote #Tech - Google : aperçu de la gestion des services distribués chez Go...
Keynote #Tech - Google : aperçu de la gestion des services distribués chez Go...
 
Scaling docker with kubernetes
Scaling docker with kubernetesScaling docker with kubernetes
Scaling docker with kubernetes
 
Highlights from Java 10-13 and Future of Java at JCON 2019 by Alukhanov and K...
Highlights from Java 10-13 and Future of Java at JCON 2019 by Alukhanov and K...Highlights from Java 10-13 and Future of Java at JCON 2019 by Alukhanov and K...
Highlights from Java 10-13 and Future of Java at JCON 2019 by Alukhanov and K...
 

More from FAST

Threads, Critical Sections, and Termination
Threads, Critical Sections, and TerminationThreads, Critical Sections, and Termination
Threads, Critical Sections, and TerminationFAST
 
OOP with Smalltalk
OOP with SmalltalkOOP with Smalltalk
OOP with SmalltalkFAST
 
Powerlang: a Vehicle for Lively Implementing Programming Languages
Powerlang: a Vehicle for Lively Implementing Programming LanguagesPowerlang: a Vehicle for Lively Implementing Programming Languages
Powerlang: a Vehicle for Lively Implementing Programming LanguagesFAST
 
Constructing 3D scenes with Woden Engine
Constructing 3D scenes with Woden EngineConstructing 3D scenes with Woden Engine
Constructing 3D scenes with Woden EngineFAST
 
Demystifying the creation of coding tools
Demystifying the creation of coding toolsDemystifying the creation of coding tools
Demystifying the creation of coding toolsFAST
 
Application Starter: the entry point for your application
Application Starter: the entry point for your applicationApplication Starter: the entry point for your application
Application Starter: the entry point for your applicationFAST
 
Improving the Pharo VM
Improving the Pharo VMImproving the Pharo VM
Improving the Pharo VMFAST
 
What is (not) Pharo 8?
What is (not) Pharo 8?What is (not) Pharo 8?
What is (not) Pharo 8?FAST
 
Stargate: an interstellar journey to RESTful APIs
Stargate: an interstellar journey to RESTful APIsStargate: an interstellar journey to RESTful APIs
Stargate: an interstellar journey to RESTful APIsFAST
 
Opening Smalltalks 2019
Opening Smalltalks 2019Opening Smalltalks 2019
Opening Smalltalks 2019FAST
 
Smalltalk Computers, Past and Future by Jecel Mattos de Assumpção Jr
Smalltalk Computers, Past and Future by Jecel Mattos de Assumpção JrSmalltalk Computers, Past and Future by Jecel Mattos de Assumpção Jr
Smalltalk Computers, Past and Future by Jecel Mattos de Assumpção JrFAST
 
Adaptive Compilation by Jecel Mattos de Assumpção Jr
Adaptive Compilation by Jecel Mattos de Assumpção JrAdaptive Compilation by Jecel Mattos de Assumpção Jr
Adaptive Compilation by Jecel Mattos de Assumpção JrFAST
 
Choosing where to run our objects: the S8 Smalltalk approach by Description:F...
Choosing where to run our objects: the S8 Smalltalk approach by Description:F...Choosing where to run our objects: the S8 Smalltalk approach by Description:F...
Choosing where to run our objects: the S8 Smalltalk approach by Description:F...FAST
 
Using 128 GPU cores, Tensorflow and VASmalltalk to detect Kolsh beers with ES...
Using 128 GPU cores, Tensorflow and VASmalltalk to detect Kolsh beers with ES...Using 128 GPU cores, Tensorflow and VASmalltalk to detect Kolsh beers with ES...
Using 128 GPU cores, Tensorflow and VASmalltalk to detect Kolsh beers with ES...FAST
 
Improving VASmalltalk deployment, availability and scalability with Docker by...
Improving VASmalltalk deployment, availability and scalability with Docker by...Improving VASmalltalk deployment, availability and scalability with Docker by...
Improving VASmalltalk deployment, availability and scalability with Docker by...FAST
 
VASmalltalk and Raspberry Pi powering the largest MIDI instrument of the world
VASmalltalk and Raspberry Pi powering the largest MIDI instrument of the worldVASmalltalk and Raspberry Pi powering the largest MIDI instrument of the world
VASmalltalk and Raspberry Pi powering the largest MIDI instrument of the worldFAST
 
Hands-on Raspberry Pi and VA Smalltalk - Starting Workshop
Hands-on Raspberry Pi and VA Smalltalk - Starting WorkshopHands-on Raspberry Pi and VA Smalltalk - Starting Workshop
Hands-on Raspberry Pi and VA Smalltalk - Starting WorkshopFAST
 
Live typing: Update and what's next by Hernan Wilkinson
Live typing: Update and what's next by Hernan WilkinsonLive typing: Update and what's next by Hernan Wilkinson
Live typing: Update and what's next by Hernan WilkinsonFAST
 
Enhanced Email Protocol Framework for VAST by Seth Berman
Enhanced Email Protocol Framework for VAST by Seth BermanEnhanced Email Protocol Framework for VAST by Seth Berman
Enhanced Email Protocol Framework for VAST by Seth BermanFAST
 
VA Smalltalk Product Update by Seth Berman
VA Smalltalk Product Update by Seth BermanVA Smalltalk Product Update by Seth Berman
VA Smalltalk Product Update by Seth BermanFAST
 

More from FAST (20)

Threads, Critical Sections, and Termination
Threads, Critical Sections, and TerminationThreads, Critical Sections, and Termination
Threads, Critical Sections, and Termination
 
OOP with Smalltalk
OOP with SmalltalkOOP with Smalltalk
OOP with Smalltalk
 
Powerlang: a Vehicle for Lively Implementing Programming Languages
Powerlang: a Vehicle for Lively Implementing Programming LanguagesPowerlang: a Vehicle for Lively Implementing Programming Languages
Powerlang: a Vehicle for Lively Implementing Programming Languages
 
Constructing 3D scenes with Woden Engine
Constructing 3D scenes with Woden EngineConstructing 3D scenes with Woden Engine
Constructing 3D scenes with Woden Engine
 
Demystifying the creation of coding tools
Demystifying the creation of coding toolsDemystifying the creation of coding tools
Demystifying the creation of coding tools
 
Application Starter: the entry point for your application
Application Starter: the entry point for your applicationApplication Starter: the entry point for your application
Application Starter: the entry point for your application
 
Improving the Pharo VM
Improving the Pharo VMImproving the Pharo VM
Improving the Pharo VM
 
What is (not) Pharo 8?
What is (not) Pharo 8?What is (not) Pharo 8?
What is (not) Pharo 8?
 
Stargate: an interstellar journey to RESTful APIs
Stargate: an interstellar journey to RESTful APIsStargate: an interstellar journey to RESTful APIs
Stargate: an interstellar journey to RESTful APIs
 
Opening Smalltalks 2019
Opening Smalltalks 2019Opening Smalltalks 2019
Opening Smalltalks 2019
 
Smalltalk Computers, Past and Future by Jecel Mattos de Assumpção Jr
Smalltalk Computers, Past and Future by Jecel Mattos de Assumpção JrSmalltalk Computers, Past and Future by Jecel Mattos de Assumpção Jr
Smalltalk Computers, Past and Future by Jecel Mattos de Assumpção Jr
 
Adaptive Compilation by Jecel Mattos de Assumpção Jr
Adaptive Compilation by Jecel Mattos de Assumpção JrAdaptive Compilation by Jecel Mattos de Assumpção Jr
Adaptive Compilation by Jecel Mattos de Assumpção Jr
 
Choosing where to run our objects: the S8 Smalltalk approach by Description:F...
Choosing where to run our objects: the S8 Smalltalk approach by Description:F...Choosing where to run our objects: the S8 Smalltalk approach by Description:F...
Choosing where to run our objects: the S8 Smalltalk approach by Description:F...
 
Using 128 GPU cores, Tensorflow and VASmalltalk to detect Kolsh beers with ES...
Using 128 GPU cores, Tensorflow and VASmalltalk to detect Kolsh beers with ES...Using 128 GPU cores, Tensorflow and VASmalltalk to detect Kolsh beers with ES...
Using 128 GPU cores, Tensorflow and VASmalltalk to detect Kolsh beers with ES...
 
Improving VASmalltalk deployment, availability and scalability with Docker by...
Improving VASmalltalk deployment, availability and scalability with Docker by...Improving VASmalltalk deployment, availability and scalability with Docker by...
Improving VASmalltalk deployment, availability and scalability with Docker by...
 
VASmalltalk and Raspberry Pi powering the largest MIDI instrument of the world
VASmalltalk and Raspberry Pi powering the largest MIDI instrument of the worldVASmalltalk and Raspberry Pi powering the largest MIDI instrument of the world
VASmalltalk and Raspberry Pi powering the largest MIDI instrument of the world
 
Hands-on Raspberry Pi and VA Smalltalk - Starting Workshop
Hands-on Raspberry Pi and VA Smalltalk - Starting WorkshopHands-on Raspberry Pi and VA Smalltalk - Starting Workshop
Hands-on Raspberry Pi and VA Smalltalk - Starting Workshop
 
Live typing: Update and what's next by Hernan Wilkinson
Live typing: Update and what's next by Hernan WilkinsonLive typing: Update and what's next by Hernan Wilkinson
Live typing: Update and what's next by Hernan Wilkinson
 
Enhanced Email Protocol Framework for VAST by Seth Berman
Enhanced Email Protocol Framework for VAST by Seth BermanEnhanced Email Protocol Framework for VAST by Seth Berman
Enhanced Email Protocol Framework for VAST by Seth Berman
 
VA Smalltalk Product Update by Seth Berman
VA Smalltalk Product Update by Seth BermanVA Smalltalk Product Update by Seth Berman
VA Smalltalk Product Update by Seth Berman
 

Recently uploaded

Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
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
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Hyundai Motor Group
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines 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
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetEnjoy Anytime
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 

Recently uploaded (20)

Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
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
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines 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
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 

BA-ST project ecosystem by Maxi Tabacman

  • 1. github.com/ba-st A Smalltalk project ecosystem based on Buenos Aires
  • 2. Who? BA-ST → Buenos Aires Smalltalk 18 people registered 7 presentations at Smalltalks 3 at ESUG, OOPSLA 2 external collaborators Designated speaker: Maximiliano Tabacman You !
  • 3. Where? Buenos Aires, Argentina (and its surroundings) https://ba-st.slack.com
  • 5. What? ● Aconcagua ● ApplicationStarter ● Boardwalk ● Buoy ● Cannon ● chalten ● Docker-pharo ● Evelyn ● GitHub-setup ● HighchartsSt ● Kepler ● Kepler-MongoDB ● Mole ● RenoirSt ● Stardust ● Stargate ● Willow ● Willow-Booklet ● Willow-Bootstrap ● Willow-JQueryUI ● Willow-Mixpanel ● Willow-Playground ● Willow-SemanticUI ● Willow-SpinKit 24 repositories and counting!
  • 6. What? ● Aconcagua ● ApplicationStarter ● Boardwalk ● Buoy ● Cannon ● chalten ● Docker-pharo ● Evelyn ● GitHub-setup ● HighchartsSt ● Kepler ● Kepler-MongoDB ● Mole ● RenoirSt ● Stardust ● Stargate ● Willow ● Willow-Booklet ● Willow-Bootstrap ● Willow-JQueryUI ● Willow-Mixpanel ● Willow-Playground ● Willow-SemanticUI ● Willow-SpinKit Some have already been presented
  • 7. What? ● Aconcagua ● ApplicationStarter ● Boardwalk ● Buoy ● Cannon ● chalten ● Docker-pharo ● Evelyn ● GitHub-setup ● HighchartsSt ● Kepler ● Kepler-MongoDB ● Mole ● RenoirSt ● Stardust ● Stargate ● Willow ● Willow-Booklet ● Willow-Bootstrap ● Willow-JQueryUI ● Willow-Mixpanel ● Willow-Playground ● Willow-SemanticUI ● Willow-SpinKit Let’s review more of them
  • 8. Buoy A complement to Pharo Math (200 increasedBy: 10 percent) decreasedBy: 10 percent Assertions | code | code := 'AR'. AssertionChecker enforce: [ code size = 2 ] because: 'Expected 2 letters' Bindings & Optionals countBinding := Binding undefinedExplainedBy: 'Please set the default count.'. countBinding := Binding to: 1. fileOptional := Optional unused. fileOptional := Optional containing: self uploadFile.
  • 9. Boardwalk Some facilities over Seaside Javascript Expression Function call Named function TypeOf Global namespace declaration Non-Inlined If/Then/Else Web applications Identifier assigner Deployment mode Online library Extensions JSObject JSStream WAHtmlCanvas WAFormTag WAUrl
  • 10. Mole A model for Graphs Directed / Undirected GraphBuilder new ... buildUndirected buildDirectedGraph builder GraphBuilder new connect: 1 to: 2; loopOn: 1; connect: 4 to: 3; addVertex: 8; buildUndirected Complex labels anEdge withLabelDo: [:function | function value: evaluationContext ] ifUnlabeled: [ self defaultValue ]
  • 11. Cannon State Machine implementation Willow examples Functional web application with state transitions State machine specification builder Create valid machine specifications Transitions ● Name ● Source / Destination ● Preconditions ● Execution on completion ● Triggers States ● Name ● Execution on entry ● Execution on exit
  • 12. Stardust Descriptive model creation ● Define how to build complex objects (from UI components) ● Graph composition (Mole) ● Failure collecting strategy Single model SingleModelPicker named: 'Chosen dish' obtainingSelectionFrom: platesView Fixed model FixedModelCreator creating: Date today Reflexive instance creation (GenericModelCreatorBuilder named: 'Menu' building: DinnerMenu accessedUsing: #(dishes beverages)) serving: self dishesCreator drining: self beveragesCreator
  • 13. GitHub-setup Easy construction of new Pharo projects in GitHub setup.sh Step-by-step usage instructions Structure assets/ docs/ source/ README.md CONTRIBUTING.md LICENSE ...
  • 14. Time for questions Thanks! Made possible by: - Collaborators - Companies: Mercap, Debris Publishing - Universities: UBA, UCA, UNQ

Editor's Notes

  1. Welcome to the talk where I tell you about the work of a bunch of people, coding and adding their projects to a little corner of Github. I’ll tell you a little bit about what we’ve been up to, so you can come and comment on the commits, download the tools and use them, or even better: join us with your improvements and your own projects!
  2. We named the group BA-ST for Buenos Aires Smalltalk, but as you’ll see this has greatly exceeded the limits of that idea. We currently have 18 people registered to the group, and we also have the guest collaboration of Tim Mackinnon and Sean DeNigris, who joined up to collaborate as well. Check these avatars, the next time we give this talk, your own might be there as well! Also, if you’re one of the 3 people with default avatars, please change them to something more personal. You might recognize some of the people here, like Gabriel Cotelli, Hernan Wilkinson and Mariano Peck, who have presented in the past different projects that are currently part of the group.
  3. So where are we? Well, mostly in Buenos Aires. You’ll see that many of us work at Mercap, and indeed they are the ones who sent us here to spread the word. This is an open source, collaborative group, and they have agreed that any architecture solution internally developed in Pharo is to be uploaded here, and shared with the community. Whenever we find the time, we also try to port to Pharo (and so to Github) the different tools that we have developed for our VA Smalltalk environment over the years. We have also had the collaboration of Debris Publishing, who have allowed Mariano’s work to be shared and uploaded as well. Apart from the physical location, we are also located in the virtual world of Slack, at this URL. This is how Tim and Sean have been deep in talks about the details of some of our projects.
  4. So… why are we doing this? First of all, the Github group started as a way to make visible different separate projects we have been working on. Then we decided to add historical tools and projects that you have seen over the years at the conference. The slack was also added to allow for a shared space to talk with our fellow smalltalkers in the city of Buenos Aires and eventually the whole country, although of course we welcome the participation of people from abroad. Most of those registered can communicate fluently in english, so you can join and ask questions. We also wanted to offer a place for the university students to find useful tools, and upload them to the group once they are finished. It is also a place to strengthen the Smalltalk community.
  5. As you can see there is a lot of stuff here. There are currently 24 repositories, most of which are active and growing, and more are added as we make our way into the world of APIs, Web Apps, DevOps, and more. A lot of these projects have very high coverage with tests, since the idea is that you can read the tests to learn how to use them to the fullest.
  6. You might notice that some of these are the content of talks seen previously in the conference. Eventually we expect all projects to have a talk presented, and so with the video uploaded for each year, you should have a clear introduction to each component of the ecosystem.
  7. Since I’ve got your attention I wanted to show you some other projects uploaded to the BA-ST Github group. Most of these tools would likely require an entire talk just to give them a proper introduction, but either the person heading the development didn’t feel they were ready, or they didn’t have time this year. So I’ve decided to give you a glimpse of the projects that nobody is telling you about.
  8. Let’s start with Buoy. This is a complement to Pharo. Which means there’s a lot of stuff we were used to having around when developing at Mercap, and decided we desperately needed them in Pharo as well, or that we just though people would like it. As you can see here there’s some additional protocol for math stuff, easy objects to perform assertions in an orderly manner, and the very important concept of optionals. As I’ve said, I won’t go into details in this talk. The good news is that Buoy has a nice documentation in its Github page, so check it out, or ask us about it during the conference.
  9. Boardwalk is like Buoy, but for Seaside. Which means we wanted to have some useful protocol ready whenever working on Web Applications, and stored it here. Some of the stuff in Boardwalk was originally in Willow, of which you might have heard about, but eventually we started polishing the responsibilities and decided to extract it to Boardwalk as well. I’ve listed some of the extensions and utilities that it includes.
  10. Mole is for Graphs. If you need to create a Graph, you can use Mole. It has some straightforward documentation on its Github page, but you can check the tests for a quick and complete undestanding of its features.
  11. Cannon is the project to create, manage and execute state machines and their transitions. It has a very helpful builder to create valid instances. As a bonus, since we wanted to use Cannon for the handling of state transitions in the workflow of our applications, we added a little example of a workflow in a simple Willow web application, which you can find as part of the project.
  12. Stardust is a really interesting component extracted from the architecture in many of Mercap’s products. It allows the definition of instance creation and accessing, which in turn you can use to connect the view with the model of your application. It has support for error handling, metaprogramming facilities to create instances of any class in your model, observer support for change in visual components, to name a few. We have a lot of experience using it, although the migration of the documentation and examples to Github is still a work in progress. You can check the tests, and also ask us about some uses.
  13. Finally, we have a non-Smalltalk project that allows us to create new projects in Github. The nice thing of this addition to the tool collection is that it includes a step by step guide to use it, and we are also working on adding features to connect it with Continuous Deployment tools like Docker.
  14. I’ve taken enough of your time, so I’ll close thanking those who have made BA-ST the group it is today. We have reached the state of projects I’ve mentioned thanks to the time devoted by our collaborators, both by coding and by questioning how to best use the contents we have uploaded. We also have to thank the companies that have allowed us to use the time to code for open source projects, and share the result of hours of technical discussions with the community. I can’t stress enough the fact that some of the result of years of refinement are starting to show on the projects in the ecosystem I’ve told you about. Apart from the companies, we have to thank the different universities who continue to teach Smalltalk, and allow developers to improve their own development environment by adding tools and sharing them. Students and teachers at UBA, UCA and UNQui have participated in creating these projects and show them to their colleagues. If you like what you’ve seen, now you can show them too! Thanks for your time, and let me know if you have any questions.