This document provides a summary of a presentation on updates to the GemStone Smalltalk environment. It discusses recent releases of GemStone/S including performance improvements, new platform support, and additional features. It also covers an upcoming MagLev Ruby demo, ways to get started with GemStone, current Seaside support, and an overview of the Metacello package management system. The presentation aims to inform attendees about new GemStone capabilities and tools.
COMPLETE GUIDE: Gem Stone Information- Manual-Chart- Handling- CareHamilton Jewelers
Β
Complete guide to gemstones and precious stones including care and handling instructions
Hamilton Jewelers is proud of our adherence to socially responsible and highly ethical business practices, evidenced by our membership and association with the industry's most prestigious organizations, including:
The Gemological Institute of America
The Jewelers Vigilance Committee
The Jewelers Board of Trade
The American Gem Society
The Jewelers of America
The Council for Responsible Jewelry Practices
The foundation of a family business, and the basis on which our company has grown. An emphasis on personalization and strong ties to our clients, industry, and communities. Personal involvement.
We embrace socially, environmentally, and ethically sound business practices and wholly support the United Nations' efforts to ensure Conflict Free diamonds in our industry. Hamilton Jewelers is committed to best practice diamond trading principles, including:
Procuring all gemstones and diamonds only through legitimate sources that ensures a non-conflict region of origin.
Support of the international trade policy, the Kimberley Process System, which works closely with governmental organizations to eliminate illegally traded diamonds.
Ongoing membership and participation in the Jewelers Vigilance Committee, the guardian of ethics and integrity in the jewelry trade.
Hamilton Jewelers also maintains many philanthropic and civic affiliations with organizations and nonprofit causes in our communities. Through many charitable vehicles, we are proud to support important organizations that help to provide healthcare, education, cultural growth, and civic awareness to our region.
SERVICE
Recognizing our obligation to find new and better ways to exceed our client's expectations on a daily basis.
COMMUNICATION
The freedom to make suggestions and the open mindedness to accept them. Providing a potential solution along with constructive criticism.
ENTREPRENEURSHIP
The ability to think and perform as one who has a stake in the company.
TEAMWORK
Recognizing the merit and respecting the dignity of all team members.
COMMUNITY
Supporting our Corporate commitment to give back to the communities which, through their support, have allowed us to grow and prosper for over three quarters of a century.
INTEGRITY
Unquestioned honesty and adherence to ethical behavior in business dealings, including proper disclosure and accurate representation of products and information to our clients.
PROFESSIONAL CONDUCT
Professionalism in appearance and conduct. Personal responsibility, accountability and courtesy.
VALUE
Providing our clients with more than they imagined for less than they anticipate. No matter what the budget, offer the finest items - well manufactured, well designed, properly represented by a knowledgeable staff, and beautifully wrapped.
#online #fine #jewelry #stores
Video: https://youtu.be/H43_FUghz7k
Abstract: DynaCASE is a software and business modeling platform aimed at supporting many aspects involved in the process of software and business
engineering, such as modeling, source code generation and model reengineering, validations, and more. One of our aims is to provide a platform that is not
only easy to use, but also easy to extend by end-user-developers to support their specific domain needs. We will present the current state of the tool on
a range of models: UML Class Diagrams in the context of Cormas β an agent-based simulation platform, OntoUML used for conceptual modeling, and BORM and
DEMO for business and enterprise engineering.
Bio: I am a student at FIT CTU (Faculty of Information Technology at Czech Technical University), and also a member of CCMi (Centre for Conceputal
Modelling and Implementations) β resarch group concerned with software and business modeling, ontological conceptualizations, and implementation. I am
also the author/main developer of DynaCASE. Apart of DynaCASE I contribute to Roassal visualization library, Spec GUI framework, and Pharo itself.
COMPLETE GUIDE: Gem Stone Information- Manual-Chart- Handling- CareHamilton Jewelers
Β
Complete guide to gemstones and precious stones including care and handling instructions
Hamilton Jewelers is proud of our adherence to socially responsible and highly ethical business practices, evidenced by our membership and association with the industry's most prestigious organizations, including:
The Gemological Institute of America
The Jewelers Vigilance Committee
The Jewelers Board of Trade
The American Gem Society
The Jewelers of America
The Council for Responsible Jewelry Practices
The foundation of a family business, and the basis on which our company has grown. An emphasis on personalization and strong ties to our clients, industry, and communities. Personal involvement.
We embrace socially, environmentally, and ethically sound business practices and wholly support the United Nations' efforts to ensure Conflict Free diamonds in our industry. Hamilton Jewelers is committed to best practice diamond trading principles, including:
Procuring all gemstones and diamonds only through legitimate sources that ensures a non-conflict region of origin.
Support of the international trade policy, the Kimberley Process System, which works closely with governmental organizations to eliminate illegally traded diamonds.
Ongoing membership and participation in the Jewelers Vigilance Committee, the guardian of ethics and integrity in the jewelry trade.
Hamilton Jewelers also maintains many philanthropic and civic affiliations with organizations and nonprofit causes in our communities. Through many charitable vehicles, we are proud to support important organizations that help to provide healthcare, education, cultural growth, and civic awareness to our region.
SERVICE
Recognizing our obligation to find new and better ways to exceed our client's expectations on a daily basis.
COMMUNICATION
The freedom to make suggestions and the open mindedness to accept them. Providing a potential solution along with constructive criticism.
ENTREPRENEURSHIP
The ability to think and perform as one who has a stake in the company.
TEAMWORK
Recognizing the merit and respecting the dignity of all team members.
COMMUNITY
Supporting our Corporate commitment to give back to the communities which, through their support, have allowed us to grow and prosper for over three quarters of a century.
INTEGRITY
Unquestioned honesty and adherence to ethical behavior in business dealings, including proper disclosure and accurate representation of products and information to our clients.
PROFESSIONAL CONDUCT
Professionalism in appearance and conduct. Personal responsibility, accountability and courtesy.
VALUE
Providing our clients with more than they imagined for less than they anticipate. No matter what the budget, offer the finest items - well manufactured, well designed, properly represented by a knowledgeable staff, and beautifully wrapped.
#online #fine #jewelry #stores
Video: https://youtu.be/H43_FUghz7k
Abstract: DynaCASE is a software and business modeling platform aimed at supporting many aspects involved in the process of software and business
engineering, such as modeling, source code generation and model reengineering, validations, and more. One of our aims is to provide a platform that is not
only easy to use, but also easy to extend by end-user-developers to support their specific domain needs. We will present the current state of the tool on
a range of models: UML Class Diagrams in the context of Cormas β an agent-based simulation platform, OntoUML used for conceptual modeling, and BORM and
DEMO for business and enterprise engineering.
Bio: I am a student at FIT CTU (Faculty of Information Technology at Czech Technical University), and also a member of CCMi (Centre for Conceputal
Modelling and Implementations) β resarch group concerned with software and business modeling, ontological conceptualizations, and implementation. I am
also the author/main developer of DynaCASE. Apart of DynaCASE I contribute to Roassal visualization library, Spec GUI framework, and Pharo itself.
Learning, Analyzing and Protecting Android with TOMOYO Linux (JLS2009)Toshiharu Harada, Ph.D
Β
TOMOYO Linux is a MAC (Mandatory Access Control) implementation which gives support to protect Linux systems as well as to learn, understand and analyze system behavior. Being lightweight, it results suitable for embedded systems too. This tutorial aims to show in a practical way how to make the best use of TOMOYO Linux potentials in order to study and protect embedded Linux systems, taking Android as a specific study case. Though Android is amazingly expanding its target to various kinds of devices, it was designed mainly for mobile phones. Then, unlike other embedded operating systems, it presents some peculiar characteristics which require a particular attention to apply MAC effectively. The session is directed to those who want to learn how to use TOMOYO Linux, to managers or developers interested in security concerning embedded Linux and Android, and even to anyone just wishing to take a closer glance at Android internals.
This talk is about how the Open University installs and manages the STACK mathematical online assessment system so that it works reliably for our students and teachers. We are probably one of the largest users of STACK, in terms of questions answered per year.
The talk was give at The International STACK User Group Meeting in Edinburgh on Tuesday 30 April 2019.
Application performance is critical to a usable user interface. Learn about the tools and techniques that Ext GWT developers can use to tune client-side code. Get detailed instructions on how to use the available performance profiling tools including Speed Tracer, Firebug, and Visual Studio.
The core of the second generation Topic Maps standards (TMDM, XTM2.0) has been finalized, yet the uptake is still slow. In this paper, we highlight engineering considerations for a novel backend for the TM4J open source topic maps engine, which is currently in development, but already usable for some purposes. As the name suggests, the βTMDMβ backend is designed to reflect the TMDM specification closely. In fact, it is much closer to the TMDM than to the internal legacy TM4J data model (which is based on the XTM 1.0 data model). This motivates a bridging layer between the TMDM and the XTM 1.0 data model. We emphasize how merging is implemented in the βTMDMβ backend and conclude with some synthetic merging benchmarks of the current βTMDMβ backend prototype.
First Name: James
Last Name: Foster
Email: james.foster@wallawalla.edu
Title: A Browser-based IDE for Cloud-hosted GemStone
Abstract: While Smalltalk has been an innovator in many ways, hosted development tools has not been a notable area of leadership.
Smalltalkβs ecosystem tends to have a more challenging install process (particularly for GemStone) and this may limit its ability to attract attention.
Tools like Cloud9 and Jupyter make it very easy to experiment with C++ or Python using just a web browser.
In this presentation we look at an approach to using GemStone in the cloud with only a web browser.
Bio: As a junior-high student in 1971, James discovered the local universityβs computer center and a life-long obsession with computers began.
He was introduced to Smalltalk/V for the Mac in the mid-90s, and became a Smalltalk bigot.
James is teaching undergraduate computer science classes and also serves as VP of Finance & Operations for GemTalk Systems.
He is a passionate advocate for GemStone and all things Smalltalk.
Learning, Analyzing and Protecting Android with TOMOYO Linux (JLS2009)Toshiharu Harada, Ph.D
Β
TOMOYO Linux is a MAC (Mandatory Access Control) implementation which gives support to protect Linux systems as well as to learn, understand and analyze system behavior. Being lightweight, it results suitable for embedded systems too. This tutorial aims to show in a practical way how to make the best use of TOMOYO Linux potentials in order to study and protect embedded Linux systems, taking Android as a specific study case. Though Android is amazingly expanding its target to various kinds of devices, it was designed mainly for mobile phones. Then, unlike other embedded operating systems, it presents some peculiar characteristics which require a particular attention to apply MAC effectively. The session is directed to those who want to learn how to use TOMOYO Linux, to managers or developers interested in security concerning embedded Linux and Android, and even to anyone just wishing to take a closer glance at Android internals.
This talk is about how the Open University installs and manages the STACK mathematical online assessment system so that it works reliably for our students and teachers. We are probably one of the largest users of STACK, in terms of questions answered per year.
The talk was give at The International STACK User Group Meeting in Edinburgh on Tuesday 30 April 2019.
Application performance is critical to a usable user interface. Learn about the tools and techniques that Ext GWT developers can use to tune client-side code. Get detailed instructions on how to use the available performance profiling tools including Speed Tracer, Firebug, and Visual Studio.
The core of the second generation Topic Maps standards (TMDM, XTM2.0) has been finalized, yet the uptake is still slow. In this paper, we highlight engineering considerations for a novel backend for the TM4J open source topic maps engine, which is currently in development, but already usable for some purposes. As the name suggests, the βTMDMβ backend is designed to reflect the TMDM specification closely. In fact, it is much closer to the TMDM than to the internal legacy TM4J data model (which is based on the XTM 1.0 data model). This motivates a bridging layer between the TMDM and the XTM 1.0 data model. We emphasize how merging is implemented in the βTMDMβ backend and conclude with some synthetic merging benchmarks of the current βTMDMβ backend prototype.
First Name: James
Last Name: Foster
Email: james.foster@wallawalla.edu
Title: A Browser-based IDE for Cloud-hosted GemStone
Abstract: While Smalltalk has been an innovator in many ways, hosted development tools has not been a notable area of leadership.
Smalltalkβs ecosystem tends to have a more challenging install process (particularly for GemStone) and this may limit its ability to attract attention.
Tools like Cloud9 and Jupyter make it very easy to experiment with C++ or Python using just a web browser.
In this presentation we look at an approach to using GemStone in the cloud with only a web browser.
Bio: As a junior-high student in 1971, James discovered the local universityβs computer center and a life-long obsession with computers began.
He was introduced to Smalltalk/V for the Mac in the mid-90s, and became a Smalltalk bigot.
James is teaching undergraduate computer science classes and also serves as VP of Finance & Operations for GemTalk Systems.
He is a passionate advocate for GemStone and all things Smalltalk.
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
Β
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Β
Clients donβt know what they donβt know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clientsβ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilotβ’UiPathCommunity
Β
In questo evento online gratuito, organizzato dalla Community Italiana di UiPath, potrai esplorare le nuove funzionalitΓ di Autopilot, il tool che integra l'Intelligenza Artificiale nei processi di sviluppo e utilizzo delle Automazioni.
π Vedremo insieme alcuni esempi dell'utilizzo di Autopilot in diversi tool della Suite UiPath:
Autopilot per Studio Web
Autopilot per Studio
Autopilot per Apps
Clipboard AI
GenAI applicata alla Document Understanding
π¨βπ«π¨βπ» Speakers:
Stefano Negro, UiPath MVPx3, RPA Tech Lead @ BSP Consultant
Flavio Martinelli, UiPath MVP 2023, Technical Account Manager @UiPath
Andrei Tasca, RPA Solutions Team Lead @NTT Data
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Β
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
Β
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. Whatβs changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Β
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Welocme to ViralQR, your best QR code generator.ViralQR
Β
Welcome to ViralQR, your best QR code generator available on the market!
At ViralQR, we design static and dynamic QR codes. Our mission is to make business operations easier and customer engagement more powerful through the use of QR technology. Be it a small-scale business or a huge enterprise, our easy-to-use platform provides multiple choices that can be tailored according to your company's branding and marketing strategies.
Our Vision
We are here to make the process of creating QR codes easy and smooth, thus enhancing customer interaction and making business more fluid. We very strongly believe in the ability of QR codes to change the world for businesses in their interaction with customers and are set on making that technology accessible and usable far and wide.
Our Achievements
Ever since its inception, we have successfully served many clients by offering QR codes in their marketing, service delivery, and collection of feedback across various industries. Our platform has been recognized for its ease of use and amazing features, which helped a business to make QR codes.
Our Services
At ViralQR, here is a comprehensive suite of services that caters to your very needs:
Static QR Codes: Create free static QR codes. These QR codes are able to store significant information such as URLs, vCards, plain text, emails and SMS, Wi-Fi credentials, and Bitcoin addresses.
Dynamic QR codes: These also have all the advanced features but are subscription-based. They can directly link to PDF files, images, micro-landing pages, social accounts, review forms, business pages, and applications. In addition, they can be branded with CTAs, frames, patterns, colors, and logos to enhance your branding.
Pricing and Packages
Additionally, there is a 14-day free offer to ViralQR, which is an exceptional opportunity for new users to take a feel of this platform. One can easily subscribe from there and experience the full dynamic of using QR codes. The subscription plans are not only meant for business; they are priced very flexibly so that literally every business could afford to benefit from our service.
Why choose us?
ViralQR will provide services for marketing, advertising, catering, retail, and the like. The QR codes can be posted on fliers, packaging, merchandise, and banners, as well as to substitute for cash and cards in a restaurant or coffee shop. With QR codes integrated into your business, improve customer engagement and streamline operations.
Comprehensive Analytics
Subscribers of ViralQR receive detailed analytics and tracking tools in light of having a view of the core values of QR code performance. Our analytics dashboard shows aggregate views and unique views, as well as detailed information about each impression, including time, device, browser, and estimated location by city and country.
So, thank you for choosing ViralQR; we have an offer of nothing but the best in terms of QR code services to meet business diversity!
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
Β
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Β
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
Β
In this presentation, we examine the challenges and limitations of relying too heavily on PHP frameworks in web development. We discuss the history of PHP and its frameworks to understand how this dependence has evolved. The focus will be on providing concrete tips and strategies to reduce reliance on these frameworks, based on real-world examples and practical considerations. The goal is to equip developers with the skills and knowledge to create more flexible and future-proof web applications. We'll explore the importance of maintaining autonomy in a rapidly changing tech landscape and how to make informed decisions in PHP development.
This talk is aimed at encouraging a more independent approach to using PHP frameworks, moving towards a more flexible and future-proof approach to PHP development.
2. Introductions James Foster QA, Seaside, Consulting, Training Dale Henrichs Seaside Lead Martin McClure GBS Lead Monty Williams MagLev, Business Development 8/30/2009 OOPSLA T39 β GemStone β James Foster 2
3. Agenda What is GemStone? Smalltalk Product Releases MagLev (Ruby) Demo Getting Started with GemStone Seaside Metacello Questions 8/30/2009 3 OOPSLA T39 β GemStone β James Foster
4. What is GemStone/S? A Smalltalk environment? A database system? Two in one! 8/30/2009 OOPSLA T39 β GemStone β James Foster 4
5. GS/S: Smalltalk Environment Virtual Machine (VM) compiles source code to machine code and executes it using Just-In-Time compiler (JIT) Object manager treats entire repository as object space (or image) In-memory garbage collection (GC) reclaims space used by unreferenced new objects 8/30/2009 OOPSLA T39 β GemStone β James Foster 5
6. GS/S: Database System Transactional persistence Multi-user Multi-machine Garbage collection for persistent objects which are no longer referenced 8/30/2009 OOPSLA T39 β GemStone β James Foster 6
7. Agenda What is GemStone? Smalltalk Product Releases MagLev (Ruby) Demo Getting Started with GemStone Seaside Metacello Questions 8/30/2009 7 OOPSLA T39 β GemStone β James Foster
8. Smalltalk Product Releases GS/S 6.5.x GS/S 64 Bit 2.3.x GS/S 64 Bit 2.4.0 8/30/2009 8 OOPSLA T39 β GemStone β James Foster
10. GS/S 64 Bit 2.3.x Supported Platforms Solaris (Sparc & x86) HP-UX (PA RISC & Itanium) AIX (RS/6000 with Power5 or Power6) Linux (SuSE Linux ES 10 & Red Hat Linux ES 5.0) Macintosh (Intel OS 10.5.5) 8/30/2009 OOPSLA T39 β GemStone β James Foster 10
11. GS/S 64 Bit 2.3.x Improved Performance Mark/sweep Direct I/O (AIX) Commit record disposal 64% faster UnorderedCollection difference & intersection 8/30/2009 OOPSLA T39 β GemStone β James Foster 11
12. GS/S 64 Bit 2.3.x Extended characters β QuadByteString Character codePoint maximum is 16r7FFFFFFF UTF8 encoding primitives String >> encodeAsUTF8 String >> decodeFromUTF8 String >> decodeIntoDoubleByteStringFromUTF8 MultiByteString >> decodeFromUTF8 MultiByteString >> encodeAsUTF8 8/30/2009 OOPSLA T39 β GemStone β James Foster 12
14. GS/S 64 Bit 2.4.0 (September) Performance improvements Parallel transaction log recovery/restore (5x) Reduced network round trips During login System class >> currentSessionNames Repository >> fileSizeReport Parallel index creation Repository profiling Class count & size 8/30/2009 OOPSLA T39 β GemStone β James Foster 14
15. GS/S 64 Bit 2.4.0 (September) Various new methods Rename file Time since stone startup String formatting (centering) ANSI Stream methods Session login and last transaction time List instances in page order ProfMonitor now has tree output 8/30/2009 OOPSLA T39 β GemStone β James Foster 15
16. GS/S 64 Bit 2.4.0 (September) Extended character set collation support ANSI-compliant Stream position option Reflection API ANSI Exception improvements More statistics Many bug fixes 8/30/2009 OOPSLA T39 β GemStone β James Foster 16
17. GS/S 64 Bit 2.4.0 (September) Seaside 2.8.3 Work on Seaside 2.9 Partial continuations Metacello 8/30/2009 OOPSLA T39 β GemStone β James Foster 17
18. GS/S 64 Bit 3.0 (next year) Major VM rewrite Significant performance improvements FFI (C callout to DLL) Ruby support Sandbox methods 8/30/2009 OOPSLA T39 β GemStone β James Foster 18
19. Agenda What is GemStone? Smalltalk Product Releases MagLev (Ruby) Demo Getting Started with GemStone Seaside Metacello Questions 8/30/2009 19 OOPSLA T39 β GemStone β James Foster
20. MagLev (Ruby) Demo Simple Hello World! More complex Ruby Gems Rack Sinatra Martin will discuss technology on Thursday Ask Monty questions about Ruby 8/30/2009 OOPSLA T39 β GemStone β James Foster 20
21. Agenda What is GemStone? Smalltalk Product Releases MagLev (Ruby) Demo Getting Started with GemStone Seaside Metacello Questions 8/30/2009 21 OOPSLA T39 β GemStone β James Foster
22. Getting Started with GemStone VMWare virtual appliance Native Cocoa Application 8/30/2009 OOPSLA T39 β GemStone β James Foster 22
23. Virtual Appliance GLASS GemStone, Linux, Apache, Seaside, Smalltalk Or: GemStone, Linux, Aida, Scribo, Smalltalk Virtual Appliance VMware Server on Windows & Linux Fusion on Macintosh Demo 8/30/2009 OOPSLA T39 β GemStone β James Foster 23
24. Native Install Linux Macintosh Demo 8/30/2009 OOPSLA T39 β GemStone β James Foster 24
25. Cocoa Application GemStoneApp.dmg (78 MB disk image) GemStone.app (291 MB) Manages stone & gems Workspace Start Hyper web server Launch web browser Launch GemTools Demo 8/30/2009 OOPSLA T39 β GemStone β James Foster 25
26. Agenda What is GemStone? Smalltalk Product Releases MagLev (Ruby) Demo Getting Started with GemStone Seaside Metacello Questions 8/30/2009 26 OOPSLA T39 β GemStone β James Foster
27. Seaside Tutorial βLearning Web Development with Seasideβ Scaffolding Demo Support 2.9 development 8/30/2009 OOPSLA T39 β GemStone β James Foster 27
28. Agenda What is GemStone? Smalltalk Product Releases MagLev (Ruby) Demo Getting Started with GemStone Seaside Metacello Questions 8/30/2009 28 OOPSLA T39 β GemStone β James Foster
29. Metacello Monticello provides code management Atomic loading of code in a package Comparison of changes between two packages Metacello is a package management system Packages are still Monticello Packages are managed as projects & configurations 8/30/2009 OOPSLA T39 β GemStone β James Foster 29
30. Metacello: Declarative Modeling A Metacelloproject has named versions consisting of lists of explicit Monticello package versions. Dependencies are explicitly expressed in terms of named versions of required projects. A required project is a reference to another Metacello project. 8/30/2009 OOPSLA T39 β GemStone β James Foster 30
31. Metacello: Distributed Repositories Project metadata is represented as instance methods in a class. Metacello project metadata is just code stored in a Monticello package. As a result, it is easy for distributed groups of developers to collaborate on ad hoc projects. 8/30/2009 OOPSLA T39 β GemStone β James Foster 31
32. Metacello: Optimistic Development With Monticello-based packages, concurrent updates to the project metadata can be easily managed. Parallel versions of the metadata can be merged just like parallel versions of the code base itself. 8/30/2009 OOPSLA T39 β GemStone β James Foster 32
33. Metacello: Cross Platform Metacello must run on all platforms that support Monticello: Squeak Pharo GemStone ??? 8/30/2009 OOPSLA T39 β GemStone β James Foster 33
34. Metacello: Conditional Monticello Package Loading Platform-specific Monticello packages can be conditionally loaded. #common. Code that is common across all platforms. #squeakCommon. Code that is common to Squeak and Pharo. #squeak. Code that is specific to Squeak. #pharo. Code that is specific to Pharo. #gemstone. Code that is specific to GemStone. Project-specific attributes (GS 2.x vs. 3.x) 8/30/2009 OOPSLA T39 β GemStone β James Foster 34
35. Metacello: Support MC2 It should be possible to manage Metacello projects that are based on alternate Distributed Source Code Management systems like Monticello2. 8/30/2009 OOPSLA T39 β GemStone β James Foster 35
40. VersionSpec - 1 blessing A version can be tagged with a blessing like #alpha, #beta, #release, #development (or any other tag that is deemed useful). The blessing is used as a version filter. For example the latest version of a Metacello project is currently defined as the latest version whose blessing is not #development. 8/30/2009 OOPSLA T39 β GemStone β James Foster 40
41. VersionSpec - 2 description Useful information about the version. packages A list of Monticello package versions (or project references via required projects) that make up the project. repositories A list of Monticello repositories from which the packages can be loaded. 8/30/2009 OOPSLA T39 β GemStone β James Foster 41
42. VersionSpec - 3 groups An alias for a collection of packages. doits A collection of blocks associated with a Monticello package that are evaluated before and/or after a package is loaded. project package A definition of the Monticello package name and Monticello repository from which the latest project metadata is be loaded. 8/30/2009 OOPSLA T39 β GemStone β James Foster 42
43. VersionSpec - 4 required projects A list of projects that the Metacello project depends upon. A required project spec includes the version of the project the name of the Metacello project classs the package and repository from which the project metadata is loaded (note the similarity to the project package specification). 8/30/2009 OOPSLA T39 β GemStone β James Foster 43
44. VersionSpec - 5 Any one of the versionSpec attributes may be conditionally modified. Hereβs an example package specification that addsΒ a new Monticello package version for the package βExample-Coreβ when the #testPlatform attribute is present: 8/30/2009 OOPSLA T39 β GemStone β James Foster 44
45. Integrated Tools - 1 Save Packages Finds the dirty Monticello packages that are members of the selected version of the Metacello project and saves them, prompting you for version name and commit comment. After the packages are saved you are prompted to Update Package Methods. 8/30/2009 OOPSLA T39 β GemStone β James Foster 45
46. Integrated Tools - 2 Update Package Methods Automatically updates the package spec metadata for the selected version. Modifies and compiles the methods with the #packages:attribute: pragma for the appropriate version to match the currently loaded Monticello package versions. After the methods are update you are prompted to Save Project. 8/30/2009 OOPSLA T39 β GemStone β James Foster 46
47. Integrated Tools - 3 Update Package Repositories Updates the repository group for each Monitcello package associated with the selected version of the Metacello project to include the repository for that package as specified in the version spec. Scans every package and adds the project repository to the repositoryGroup for each package, so that one doesnβt have to manually do so. 8/30/2009 OOPSLA T39 β GemStone β James Foster 47
48. Integrated Tools - 4 Current Project Version Displays the current version of the selected Metacello project. The version is calculated by comparing the currently loaded Monticello packages to those specified in the version spec. A leading β~β means that the version is partially loaded (i.e., not all of the packages associated with the project have been loaded into the image). 8/30/2009 OOPSLA T39 β GemStone β James Foster 48
49. Integrated Tools - 5 Load Project Version Prompts for the version of the selected Metacello project to be loaded. If there are groups associated with the selected version, you are prompted for the group that you would like loaded. When in doubt choose βALLβ. 8/30/2009 OOPSLA T39 β GemStone β James Foster 49
50. Integrated Tools - 6 Save Project Saves the selected Metacello project to the repository specified by the project package of the selected version. You are prompted for version name and commit comment. 8/30/2009 OOPSLA T39 β GemStone β James Foster 50
51. Integrated Tools - 7 Update Project Loads the latest Monticello package version from the repository specified in the project package of the selected version of the Metacello project. Remember that you are simply loading the Metacello project metadata, so it doesnβt hurt to have the latest metadata loaded. Once the latest version is loaded, you are prompted to Load Project Version. 8/30/2009 OOPSLA T39 β GemStone β James Foster 51
52. Metacello Example: Pier - 1 Best of all, it becomes possible to load a project like Pier into a minimal base image (with only Monticello, Metacllo and OB loaded) using something like the following expression: (GsPierMetacelloProjectversion: '1.2') load: { 'Pier Core'. 'Pier AddOns'. } 8/30/2009 OOPSLA T39 β GemStone β James Foster 52
53. Metacello Example: Pier - 2 Not only does Pier get loaded, but all of the projects that Pier depends upon (i.e., Magritte, Seaside, Scriptaculous, etc.) get loaded along with the projects that they depend upon. 8/30/2009 OOPSLA T39 β GemStone β James Foster 53
54. Metacello Example: Pier - 3 Definitions of βPier Coreβ and βPier AddOnsβ GsPierMetacelloProject>>#βgroups0233β 8/30/2009 OOPSLA T39 β GemStone β James Foster 54
55. Agenda What is GemStone? Smalltalk Product Releases MagLev (Ruby) Demo Getting Started with GemStone Seaside Metacello Questions 8/30/2009 55 OOPSLA T39 β GemStone β James Foster