november 8 - room 1403
9:30 - Research Track Opening
10:00 - Wandering in the blue. Using Smalltalk to create a new language - Agustin Rafael MartinezThe talk is about the creative process of developing a new language. The purpose is to present the fundamental characteristics of this declarative and general-purpose programming language. It works in two modes: visual and textual. In each mode it has its own tools for program definition and inspection. In visual mode, its expressiveness and simplicity allow the language to dispense with the use of text to give meaning to its elements. An original contribution to visual languages is a particular purely graphical program inspection tool. The talk will include details on how Smalltalk has helped and inspired the construction of the development and execution environment of this new language.
11:00 - Break
11:30 - Live Metacircular Runtimes: Evolving Smalltalk VMs - Javier PimásWith Bee we showed that it was possible to have a lively-programmable Smalltalk VM as fast as a traditional JIT-based one. We are now showing our work on its next iteration, making it leaner, faster, safer, more portable, approachable and live.
12:00 - Building a compiler in Smalltalk - Jan VranyFor few years now we have been building a compiler in Smalltalk - that would eventually serve as a compiler for Smalltalk 25. This compiler consist of several components, each is usable on its own. For example, we have used Pharo-ArchC, to port Cog to PowerPC and later we have outlined a RISC-Vport of Powerlang compiler.
In this talk we will give an overview of these components as well as short demo of Tinyrossa, our latest attempt to provide architecture-independent compiler backend.
12:30 - Lunch
14:00 - Speeding up Pharo with SIMD Instructions - Nicolás RainhartIn this talk, we'll go over recent work that has gone into the Pharo Virtual Machine to support Single Instruction, Multiple Data (SIMD) CPU instructions.
We'll learn how these instructions are being used to improve performance on existing primitive methods (i.e. methods implemented at the VM level).
We'll also talk about different strategies for letting Pharo programmers take advantage of these new instructions in the code they write:- add new primitive methods for common operations that can leverage SIMD instructions- extend the bytecode set with vector operations
We'll discuss the trade-offs that come with each of these strategies, and how we can find a sweet spot in between.
15:00 - Break
15:30 - 18:30 Newspeak Tutorial - Gilad BrachaNewspeak is an object-capability programming platform that lets you develop code in your web browser. The entire Newspeak IDE runs locally in the browser. It will run on desktop, tablet or phone. This is a tutorial on the Newspeak programming language, with an emphasis on how it relates to, but differs from, Smalltalk.
november 8 - room 1105
10:00 - 17:00 Camp Smalltalk
november 9 - room 1403
8:30 - Registration
9:30 - Opening
10:00 - PetroVR: simulating oil & gas projects with Smalltalk for more than 17 years - Carlos E. FerroPetroVR is a commercial product developed in Buenos Aires by a small group but it is being commercialized by a large, multi-national software company and the clients are the largest Oil & Gas producers in the world. It is entirely developed in Smalltalk since the beginning (in the past century) and now motivated the development of a new dialect, Bee Smalltalk, using a new VM also written in Smalltalk.
10:30 - The business of gaming assistants - Maximiliano TabacmanERA is a companion application for table top role playing games. What started as tooling to help with book keeping of a particular game, later gained rules computation, then web applications including mobile modules, and now is expanding to support more games.ERA is developed as a hobby, with a 1 person team. It is powered by the Smalltalk community, which provides excellence in software design and an ecosystem of open source projects to face the challenges of testing, deployment, versioning, UI-design, and more.ERA is a self-sustaining small business, providing enough income to cover the cost of more games and books, giving way to learning about new rules, and expand its user base one game at a time.
11:00 - Break
11:30 - Docucentric Programming - Gilad BrachaAmpleforth is an editor for rich text documents with embedded media, including arbitrary interactive user interface elements. These may themselves be transcluded Ampleforth documents. Ampleforth documents are Newspeak objects and therefore naturally have a dynamic scope which can be used to reference live objects within them. Documents then mesh naturally with exemplar support in the IDE, making it easy to write code in the scope of the document and evaluate it live at any point. A Document contains a markup program that runs in the document's scope. Executing the markup subsumes the concept of weaving a literate program. The structured view of code provided by a Smalltalk-style IDE likewise subsumes tangling.
The system allows for either WYSIWYG or markup editing (or a mix of both), and maintains a live bidirectional relation between the two. Ampleforth runs in the web browser, and has the potential to replace a wide variety of editing tools such as word processors, presentation managers, GUI builders, computational notebooks and more. The editor is written in the Newspeak programming language, and incorporates a complete Newspeak IDE, enabling Ampleforth to be scripted and modified live within itself. We discuss Ampleforth's design, implementation and use. We believe the design principles of Ampleforth extend beyond documents, to much more general virtual worlds.
12:30 - 14:00 - Lunch
14:30 - The design and evolution of a complex system with the benefit of Smalltalk - Inés SosaMaintaining a system over time involves being prepared for constant technological changes. In this talk we seek to tell about a use case in a complex and mutable domain, and how it has evolved throughout the years.
15:00 - An MQTT Client for the Enterprise - Seth BermanMQTT is a lightweight communication protocol that’s a close relative of IBM MQSeries. With many Instantiations customers already using MQSeries, it was a logical choice to bring the power of MQTT to VAST Platform 2023. Our new enterprise-grade and extensible MQTT client, written in pure Smalltalk, has support for version 3.1, 3.1.1, and 5 protocols. All protocol details are handled internally by the software and run over traditional TLS or non-TLS native sockets. Use MQTT with existing VAST frameworks to compress and/or encrypt payloads to enable end-to-end encryption over untrusted networks or brokers. Even VAST's new asynchronous streams are already integrated for easy consumption of publish/subscription updates.
Join us for live demos and a Q&A session about the VAST MQTT client implementation and learn how to get started when it releases early next year.
15:30 - Let’s deploy that Smalltalk project! - Mariano Martinez PeckYou’ve spent a lot of time developing your cool Smalltalk project, and now you’re finally happy with it. What’s next? It’s time for deployment.
Join us to learn how to generate a deployment-friendly Smalltalk runtime image for your project and how to tailor that runtime image for your own needs. You may be thinking: How small can the runtime image be? Can you deploy to a different OS or CPU architecture than what you’re developing on? How can the deployed image be debugged if there’s an error?
In this presentation, you’ll see how VAST addresses all of these topics, plus see some live deployment demos featuring some of the new technology coming to VAST Platform 2023!
16:00 - Break
16:30 - Marvel: a microservices ecosystem to power web based applications - Matías Fernandez & Iván BoarettoHow we build and maintain cloud based products. With a focus on smalltalk microservices using open source frameworks, working with industry standard solutions such as docker swarm, traefik, elastic.At Mercap, our main goal is to simplify the access to the financial world by providing software solutions for businesses and end users. Abbaco and Mercap Portfolio are web applications used for investment analysis and portfolio management that offer free trial plans and are currently in use by thousands of users locally.
17:00 - Thirty years teaching and learning with Smalltalk all the way - Maximo Prieto & Hernán WilkinsonWe’ve been teaching OOP and OOD for the last 30 years at several universities using Smalltalk and we can't even think of using anything else. We’d like to share with you how this experience began and has been evolving up to now. Smalltalk let us try out any pedagogical ideas and make them work so smoothly. And also students can learn programming and design using a professional environment without worrying about technological issues. In all this time we’ve been introducing techniques and tools such as TDD, automatic refactorings and Prototype based programming just because if they are right for building good programs they are also right for learning how to do it. This talk is our celebration of the 50th. Anniversary of what made everything possible. And you are invited.
17:30 - Automatic Refactorings with Live Typing - Fernando BalboaSoftware usually lasts a long time, and changes are expected to be needed frequently. Automatic refactorings are a powerful and efficient tool to aid programmers in dealing with large codebase changes, by taking care of small and common intermediate operations in a faster and less error-prone way.
This talk is aimed at providing an overview of the refactoring capabilities of Cuis University Smalltalk, and will focus on the presentation of two new refactorings that were recently added: Inline Temporary Variable and Inline Method. Furthermore, we'll see how the implementation of the latter can leverage the Live Typing module included in Cuis University to deal with common issues present when using refactorings in dynamically typed languages.
18:00 - Hablando de cosas modernas sin importancia (Smalltalk moderno) – in Spanish - Alejandro ReimondoSe presentará un conjunto de ideas y técnicas emergentes del uso de S8 Smalltalk durante la última década.Se pretende informar de contenidos que son de utilidad para quien hace su camino de forma abierta usando soportes de ejecución actuales.Haciendo foco en las actividades que realiza el smalltalker, cómo lo afecta su uso, y las claves para superar las limitaciones impuestas por el diseño original de Smalltalk'80 (y que aún hoy persiste en la mayoría de sus implementaciones).
november 10 - room 1403
9:30 - Company Update & VAST 2023 Preview - Greg SchultzInstantiations is committed to continuing investment in the VAST Platform and ongoing involvement with the Smalltalk community. Get an update on our progress over the past year towards those ends, and see where we’re headed in the near future. Plus, get an overview of the upcoming features coming to VAST Platform 2023!
10:00 - The Pharo Ecosystem - Guillermo PolitoDuring this talk you will discover the new features of Pharo X, the vision for Pharo XI, the Pharo consortium and how to contribute to the open source community!
We will present the key features of Pharo X. Pharo X saw
- the enhancement of Spec2,
- removal of Spec1,
- rewriting of most tools in Spec2
- a massive amount of classes removal (GT tools, Glamour, Spec1)
- new fluid class syntax ephemeron fixes many many bugs and enhancements
We will sketch the possible roadmap for Pharo 11 and the current development effort for this future version of Pharo. We will present the Pharo Consortium, the benefits of participating, and the relationship with the community.
Have you ever dream to get an impact and improve our lovely open-sourcesystem? In this talk we will show how easy is to contribute to Pharo.We will fix issues live showing each of the step.
10:30 - GemTalk Update and GemStone/S 64 Bit Roadmap - James FosterAn update on GemTalk Systems and the GemStone/64 product.
11:00 - Break
11:30 - Keynote - Lessons Learned - Dan Ingalls
12:30 - 14:00 - Lunch
14:30 - Cuis: The Smalltalk with a fully zoomable, vector graphics GUI - Juan VuletichThe Cuis project was started in 2004 with the goal of turning Morphic into a Zoomable User Interface, based on high quality Vector Graphics. While Cuis has always been the cleanest and most malleable Open Source Smalltalk, fulfilling the original goal had been delayed. This has changed in the last few years. Cuis is now making this dream come true.
15:30 - Launchpad 4, to infinity and beyond - Gabriel CotelliThis talk will present the version 4 of Launchpad; a Pharo CLI to start, list and explain end-user applications available in an image.
It provides abstractions so your application:
- can declare configuration parameters in a structured way
- provide its values by command-line arguments, environment variables or setting files
- set-up logging infrastructure and stack trace generation on errors
- provide inline help about the supported configuration
- can be containerized using a Launchpad Docker image as base
16:00 - Break
16:30 - Dr. Geo - Hilaire Fernandes
17:00 - Machine Learning in Smalltalk with Tensorflow - Juan VanecekAn introduction to a Python's Keras-like framework built on top of the TensorFlow C API: a tool to read datasets, build predictive models, train them to fit the set and use them to make predictions. We'll compare accuracy and performance against Keras metrics.
17:30 - Grafoscopio: Civic tech and how we change the tools that change us - Offray Vladimir Luna CárdenasWe will see how the Grafoscopio metatool and community are inquirying (since 2015) about the reciprocal modificationbetween grassroots communities and digital tools from several projects that fall under the umbrella of civic tech,including: performative writing and (re)publishing, agile data storytelling and visualization, data feminism, civic hacktivism, reproducible research, making "Big Data" approachable, hypertextual resilient community and interpersonal memory and presences, among other topics.
After presenting the prototypes and the project history we will have a glimpse about its future, with the recent developments in Glamorous Toolkit and Pharo based systems.
18:00 - From college to the industry: A tale of what Smalltalk taught me - Iván BoarettoTwo years ago I was a clueless college student, intent on beginning a journey into the software development industry.Now, at 22 years old, I work as a junior software developer at Mercap.This talk is about what I learned along the way, a tale of what the Smalltalk ecosystem has to offer and what to expect when starting to gain experience in the field.I want for newcomers to get a grasp of what a common workday looks like for a developer, to explain some useful software methodologies and show a few open source tools for Smalltalk development. In summary, to talk about things that I would have found interesting as a beginner and hopefully help others in the process.
november 11 - room 1403
9:30 - VEO - Towards a New Smalltalk Platform - Gamer World - Adrián SomáVEO is a live visual Smalltalk. It is technically a visual object-oriented environment for software development. It enables direct visual manipulation of all system objects and the creation of all kind of interactive visual interfaces.
My talk will be organized in three parts:I will first talk about the different "worlds" or areas of software development. They are: The gamer world, the mobile apps world, Middle school education (11 to 17 years old), the desktop world, and the web world.Afterwards I will present the capabilities a New Smalltalk Platform must have to really promote a technological change in the development of current industrial software, offering at the same time an attractive environment for young people in every education stage, from school to college. I will leave the Smalltalk project related to: “Aula Viva - Learning to Program in Schools” for another talk.Finally, I will show a VEO application with VEO multi-user objects, to generate SVG vector Seat Maps for event venues. If there is enough time, I will show some other capabilities of VEO and its powerful programming and visual interaction.The entire presentation will be done, as in the previous Smalltalks, using the VEO environment itself.
10:00 - VAST’s Unicode Transition: Developer Notes - Esteban A. MaringoloWith the release of VAST Platform 2022, the required building blocks for world-class Unicode support (similar to Rust and Swift) were in place, but that wasn’t the end of the story. Even when designed as a drop-in replacement for existing String classes, transitioning existing systems to have full Unicode support has its caveats and should be carefully considered.
In this talk, we’ll share lessons learned while we were migrating some of our frameworks to be "Unicode-ready". Get useful tips and tricks (and ways to avoid some pitfalls) when working on your future Unicode-related projects.
10:30 - PharoVM - News from the front - Guillermo PolitoDuring this talk you will discover the recent work and research on the Pharo Virtual Machine.Our JIT compiler got a new ARMv8 backend, and a RISC-V implementation is on the way.We are developing a fancy testing infrastructure to automatically discover bugs in the JIT compiler and the GC.We are experimenting with vectorial instructions, interpreter optimisations, JIT code collection.We are implementing a new image format to have faster snapshots and remove pressure from the GC.
The PharoVM is moving fast.
11:00 - Break
11:30 - Keynote Panel: Influence in the Past, Perspective for the next 50 years - Dan Ingalls, Gillad Bracha, Máximo Prieto & Hernán Wilkinson
12:30 - 14:00 - Lunch
14:30 - Adding TCR to Smalltalk - Facundo Javier Gelatti"Test && Commit || Revert", also known as TCR, is a programming workflow similar to TDD.
Since one of the best ways of learning something is by experiencing it, and doing it is cheap in this case, why not try it?
In this talk, we're going to explore some challenges of implementing a tool to program in TCR-style in Smalltalk, and what are some consequences of working following this workflow.
15:00 - Building a reflexive code-coverage tool - Nicolas Papagna MaldonadoIn this talk, I'll walk you through a journey to build a code-coverage tool that can analyze itself.
We'll do a quick recap on the types of code-coverage levels that can be implemented and review the current state of the tools available.Then I'll show you how to build a code-coverage tool, requiring no support from the VM, from scratch.After that we'll see how easy it is to build a code-coverage tool that can give you more information than most of the tools out there.
Finally, I'll show how to make this tool reflexive to allow it to analyze itself.
The talk will present the tool not as a finished product, but as a platform to run your own code-coverage experiments, inviting you to expand or even improve what we know about coverage so far.
15:30 - Análisis de la evolución del aprendizaje y uso de TDD - in Spanish - Gerardo FuentesActualmente si bien hay estudios sobre la aplicación de la técnica de Test Driven Development (de ahora en adelante TDD), ninguno se enfoca en la evolución de su aprendizaje. Debido a esto, no hay material empírico sobre el cual basarse para planificar estrategias de enseñanza de la técnica, o su evaluación.En el presente trabajo se analizó la aplicación de TDD y la progresión de su aprendizaje en el contexto de la cursada de la materia Ingeniería de Software I de la Facultad de Ciencias Exactas y Naturales de la UBA. Para este análisis se utilizó el modelo y la información que genera una herramienta de validación de uso de TDD. Como input de dicha herramienta se recolectaron datos de alumnos de dos cuatrimestres de la materia Ingeniería de Software I, puntualmente datos de ejercicios y parciales. Debido a algunas características de la información, debió realizarse una “curaduría” de datos previa a ser procesada por la herramienta de TDD.Una vez que se obtuvo la información del uso de TDD, se calcularon diversos indicadores con el fin de estudiar la evolución del aprendizaje de la técnica, su aplicación y detectar algún patrón entre los distintos valores calculados. Luego, se compararon los resultados obtenidos entre ejercicios y parciales para posteriormente cotejarlos entre ambos cuatrimestres analizados.Se realizó también una encuesta a los alumnos de los cuales se extrajeron datos con el fin de validar algunos indicadores obtenidos y obtener información de carácter más personal por parte de los estudiantes. Se elaboraron tablas y gráficos con toda la información para su mejor comprensión junto con las conclusiones arribadas. Se pudo observar que, si bien los alumnos aplicaron TDD en los ejercicios, no lograron hacerlo en todo su contexto, se mostrarán los motivos.
16:00 - Break
16:30 - Creating a Worldle with TDD and Artificial Intelligence - Maximiliano ContieriIn this talk, I will show how to create a wordle using artificial intelligence and automatic code generation in Smalltalk
17:00 - Simplicity and consistency of Smalltalk compared with other languages - Hernán WilkinsonAll Smalltalkers know how simple and consistent Smalltalk is, those are some of the reasons we love it but sometimes we take it for granted and forget about it. Do we really know how complicated and inconsistent are other programming languages? In this talk I'll show some traits of Smalltalk that make it unique and compared that with other programming languages, without any intention to rant other languages but to boost how beautiful is the Smalltalk design.
17:30 - Civic Tech via pocket infrastructures and agile data storytelling and visualization - Offray Vladimir Luna CárdenasInfrastructures organize/accumulate actions and embed contexts. So, by curating, interconnecting and deploying alternative digital infrastructures, we give account of different contexts and explore/inhabit alternative futures, resulting from accumulating/organizing actions in a different way.
Our pocket infrastructures are local first, simple, extensible, interconnected and executable in a huge range of hardware, from thumb drives to laptops and servers. They also embody a contrast/critique towards centralized, massive, resource hungry, “always connected” infrastructures from the Global North.
In this talk we will approach several of the techniques and tools showcasing how we use Pharo/Lepiter to deploy and interconnect several of our “pocket infrastructures” (Fossil, TiddlyWiki, Markdeep, among others) and how we use them to amplify interpersonal and grassroots memory and agency via metatools and data stories/visualization, with simpler apprach and less footprint that the most common known tools in such endeavors.
18:00 - Resurrecting Score11 in Siren: What ever happened to the 1980s score languages? - Stephen PopeThis paper describes a “software archaeology” project in which a new interpreter was cre- ated for the Score11 music representation, a popular 1980s music input language that was frequently used with the Music11 non-real-time software sound synthesis package. The new version runs within the Smalltalk-based Siren system, a library of software classes for mu- sic representation, algorithmic composition and live interactive performance. The project background is given, and the port of Score11 to the Siren environment is described and evaluated.