SlideShare ist ein Scribd-Unternehmen logo
1 von 39
Downloaden Sie, um offline zu lesen
VA Smalltalk Update
        John O’Keefe
Principal Smalltalk Architect
     Instantiations, Inc.


         Copyright, Instantiations, Inc.
But first, the rebirth of
             Instantiations
• Instantiations roots are in Smalltalk development
  tools
• The company licensed Smalltalk technology and
  grew
• The Smalltalk tools were very good, so the
  company redid them for Java and grew
    and redid them again for Eclipse and grew
• Google liked the Java tools, so they bought that
  part of Instantiations
    and Instantiations took the money and went back to its
    roots
• VA Smalltalk...Onward and Upward!
                       Copyright, Instantiations, Inc.
Copyright, Instantiations, Inc.
VA Smalltalk V8.0.2
                 May 2010

•   Seaside 3.0 update
•   GLORP initial release
•   Platform currency and enhancements
•   Database currency and enhancements
•   Class library enhancements
•   SUnit 4.0 release
•   Documentation updates



                  Copyright, Instantiations, Inc.
Seaside 3.0
• Seaside is an open source framework for
  developing sophisticated web applications
    Layered abstraction over HTTP and HTML
     • HTML concepts exposed in Smalltalk
     • HTML markup hidden
    Base for higher-function frameworks
    Quickly build highly interactive applications
• Scriptaculous and jQuery frameworks
    JavaScript Ajax libraries
    Programmed through Smalltalk artifacts


                      Copyright, Instantiations, Inc.
Copyright, Instantiations, Inc.
Copyright, Instantiations, Inc.
Seaside Cautions

• Seaside Flow (currently) unsupported by
  VA Smalltalk
   No #wait: because no continuations
    • <some code>.
      r := self call: aComponent. “NO, does self
      wait:”
      <more code using r>.

    • <some code>.
      self show: aComponent onAnswer: [ :r |
       <more code using r ]. “YES”



                   Copyright, Instantiations, Inc.
GLORP Initial Release
                0.3.178+
• Generic Lightweight Object-Relational
  Persistence
    Open Source framework for Object/Relational
    database access
    With concepts reminiscent of popular TOPLink
    product
    Provides:
     •   Mapping of objects into relational databases
     •   Transactions for change grouping
     •   Non-intrusive implementation
     •   Support for queries based on objects and data
     •   High performance through optimized database access
    Documented in Database Guide

                        Copyright, Instantiations, Inc.
Platform Currency and
            Enhancements
• Support added for:
    Ubuntu 9.04 (32- and 64-bit)
    Windows Server 2008 R2 (64-bit)
• Windows executables are digitally signed
    Enhanced security
    Windows Logo Certification requirements




                   Copyright, Instantiations, Inc.
Platform Currency and
       Enhancements (cont.)
• Windows power management events
  supported
   GUI apps can react to Sleep/Hibernate and
   Resume
   New protocol on Subapplication class
    • #suspending
    • #resume
   Useful for resetting sockets, reconnecting
   development manager, etc.
   Documented in Smalltalk User's Guide


                    Copyright, Instantiations, Inc.
Database Currency and
            Enhancements
• Support added for Oracle 11g
    Compatibility mode
    No code changes
• Support added for Oracle function calls
    Eliminates need to wrap function calls in stored
    procedures
    Examples of usage shown in Database Guide




                    Copyright, Instantiations, Inc.
Database Currency and
       Enhancements (cont.)
• Support added for Anonymous SQL blocks
   Provides ability to send user-defined data
   types
   Provides ability to retrieve user-defined data
   types
   Supported in Oracle
   Examples of usage shown in Database Guide




                   Copyright, Instantiations, Inc.
Class Library Enhancements

• Method pragmas
   Allow you to annotate methods with user-
   defined processing information
   Stored as literals in instances of
   CompiledMethod
   Pragma class has protocol for finding and
   processing annotations
   Provided for Pier Content Management System
   Documented in Programmer’s Reference



                  Copyright, Instantiations, Inc.
Class Library Enhancements
               (cont.)
• Instance- and class-based exceptions are
  now polymorphic
    Providing clearer and more efficient handling
    of errors
    Brings back function dropped in VAST 6.0.1
    Example:
    ^ [ (Array new: 3) at: 4 ]
         on: Error do: [ :ex |
              Transcript cr; show: ex
    messageText. ex return ]

    Primitive failed in: Object>>#at: due to Index
    out of range in argument 1

                    Copyright, Instantiations, Inc.
SUnit 4.0
        Just in Time Resources
• Resources made available just-in-time:
    First test that needs it prompts setup
    Later tests that need it can see whether it has
    been (or failed to be) setup
    Tear down guaranteed at end of run; can be
    done anytime
• Resource-processing is ordered
    A test’s resources are setup in order and torn
    down in reverse order
    A resource’s resources are setup before it is
    setup and torn down after it is torn down

                    Copyright, Instantiations, Inc.
SUnit 4.0
                 Class Changes

• First there were three classes ...
   TestCase, TestSuite and TestResult
• And then there was a fourth ...
   TestResource to manage resources
• And now a fifth ...
  TestAsserter - abstract superclass of
     TestCase
     TestResource
     any user-created TestCase delegate class

• Resources understand #assert:… protocol
    #setUp and #isAvailable run inside the handler

                       Copyright, Instantiations, Inc.
SUnit 4.0
       Class Changes (cont.)
• Logging
   TestCase methods moved to the class-side
   #isLogging, and #failureLog (and
   #logFailure: is now on both sides)




                  Copyright, Instantiations, Inc.
Documentation Updates
• Web Services Guide
    Added Getting Started: Web Services in a Day
    Added Cookbook with debugging hints, XML de-
    serialization tips, and guidance on securing a Web
    service
• Smalltalk User’s Guide
    Added Application behavior when Windows Power
    Management events occur
    Moved Namespace support to the Programmer’s
    Reference
• Programmer’s Reference
    Added Pragmas, Namespace pragmas, and Annotation
    pragmas
• Database Guide
    Added GLORP Tutorial, Anonymous PL/SQL Blocks, and
    Function Calls using Native Oracle

                       Copyright, Instantiations, Inc.
Looking to the Future




      Copyright, Instantiations, Inc.
Future Releases

• Release schedule is twice a year
    Usually May and November
• Next release is November 2010
    Web interface
     • Seaside 3.0
    Development Tools
     • Message extraction tool
    Platform
     • Ubuntu 10.04
     • Fedora Core 13



                        Copyright, Instantiations, Inc.
Priority Technologies

•   Internationalization
•   Web interface
•   Database
•   GUI Look and Feel
•   Development Tools
•   Security
•   Performance and Scalability
•   Platforms
•   Other
                   Copyright, Instantiations, Inc.
Future Releases
              Candidates
• Internationalization
    Unicode/UTF-8
• Web interface
    Seaside 3.1
    SST Servlet multipart forms
    Web services tooling improvements
    Web services debugging tools/doc
    Validating XML parser



                    Copyright, Instantiations, Inc.
Future Releases
          Candidates (cont.)
• GUI Look and Feel
   GTK+ 2.x on Linux
   Additional Windows Common Controls
   Additional icon/image support
• Development Tools
   New ‘Settings’ framework and dialogs
   Improved Changes Browser
• Database
   GLORP infrastructure improvements
   GLORP Programmer’s Reference
   Active Records built on GLORP

                  Copyright, Instantiations, Inc.
Future Releases
             Candidates (cont.)
• Security
    “Basic” security framework -- current OpenSSL
    “Full” security framework -- OpenSSL 1.0
• Performance and Scalability
    Incremental garbage collection
    64-bit Smalltalk
    Class library performance hotspots
• Platform
    Windows Services control moved to Smalltalk


                    Copyright, Instantiations, Inc.
Future Releases
          Candidates (cont.)
• Installation
   Single installer for Client and Manager
   Install/Repair/Uninstall
   Seamless with User Account Control
   (UAC)
• Class Libraries
   Collection hashing policies
   Collection sorting policies

                 Copyright, Instantiations, Inc.
How Do I Get VA Smalltalk?

• Download evaluation copy
• Buy development licenses




                Copyright, Instantiations, Inc.
How Do I Get VA Smalltalk?

• Download evaluation copy
• Buy development licenses
• Download development build




                Copyright, Instantiations, Inc.
Development Builds

• An experiment in
    Early delivery
    Continuous integration
    1 for V8.0.1, 2 for V8.0.2, 2 for V8.0.3
• Availability
    Announced on VA Smalltalk Forum and
    comp.lang.smalltalk
    Download from VA Smalltalk website
    Irregular schedule
    Documentation updated to match build
    Windows and Linux only
• Fix-list for build on VA Smalltalk forum

                        Copyright, Instantiations, Inc.
How Do I Get VA Smalltalk?

•   Download evaluation copy
•   Buy development licenses
•   Download development build
•   Be a committer on an Open Source project




                   Copyright, Instantiations, Inc.
Open Source Project Committer

• Instantiations will donate a perpetual VA
  Smalltalk license
    to committers
    working on non-commercial open source
    project
    Hint: release something to VAStGoodies.com
• No charge
• Details: Instantiations' Donations to Open
  Source Projects page

                   Copyright, Instantiations, Inc.
How Do I Get VA Smalltalk?

•   Download evaluation copy
•   Buy development licenses
•   Download development build
•   Be a committer on an Open Source project
•   Be an educational institution




                   Copyright, Instantiations, Inc.
Academic Licenses

• Accredited educational institutions
    Teaching staff
    Students
• No charge
• Details: Academic License Program page




                     Copyright, Instantiations, Inc.
Backup




Copyright, Instantiations, Inc.
GLORP Basics

• Create a session object
    Made from an accessor object
    Which is made from a connection object
    Which is made from a login object
• Within a unit of work, make changes
• Use session to query existing data
• Create new objects and add them
    Sub-objects are automatically noted
• Commit or rollback the unit of work



                       Copyright, Instantiations, Inc.
GLORP Mapping

• Simple mapping is one-to-one
    Describe a table
    Create an object that looks like a row
    Describe that object and its mapping
• Complex mappings
    One row becomes variant object type
    Multiple rows combine for one value
• Can map existing objects to RDB




                        Copyright, Instantiations, Inc.
GLORP Descriptor

•   What a table contains
•   What objects will participate
•   How to map them
•   Very flexible system
•   When in doubt, refer to the unit tests for
    examples




                       Copyright, Instantiations, Inc.
VA Smalltalk V8.0.1

•   Seaside 3.0 alpha5
•   Continued Web Services enhancements
•   Additional enhancements for tabbed browsers
•   Windows 7 (32-/64-bit)
•   “cdecl” calling convention on Windows
•   Improved error diagnostics for memory allocation
•   Enhanced SST resource management for faster
    execution using less memory




                    Copyright, Instantiations, Inc.
VA Smalltalk V8.0

• Seaside 2.9 alpha3 Core, jQuery, Scriptaculous,
  RSS, porting layer and development tools
• Enhanced Web Services supporting “Document
  Literal/Document Literal Wrapped” style
• Enhanced IDE with tabbed browsers, native
  Windows widgets, inspector improvements, a
  new Method List Pane, Text Pane, Version Graph
  Tab, more
• New documentation delivery system (web or
  local) with improved navigation, formatting and
  updated content


                    Copyright, Instantiations, Inc.

Weitere ähnliche Inhalte

Was ist angesagt?

BYOP: Custom Processor Development with Apache NiFi
BYOP: Custom Processor Development with Apache NiFiBYOP: Custom Processor Development with Apache NiFi
BYOP: Custom Processor Development with Apache NiFi
DataWorks Summit
 
Oracle WebLogic Server 12.2.1 Do More with Less
Oracle WebLogic Server 12.2.1 Do More with LessOracle WebLogic Server 12.2.1 Do More with Less
Oracle WebLogic Server 12.2.1 Do More with Less
Ed Burns
 
Acceleration Technology: Taking Media File Transfers From Days to Minutes
Acceleration Technology: Taking Media File Transfers From Days to MinutesAcceleration Technology: Taking Media File Transfers From Days to Minutes
Acceleration Technology: Taking Media File Transfers From Days to Minutes
FileCatalyst
 
The View - Leveraging Lotuscript for Database Connectivity
The View - Leveraging Lotuscript for Database ConnectivityThe View - Leveraging Lotuscript for Database Connectivity
The View - Leveraging Lotuscript for Database Connectivity
Bill Buchan
 
Thick Application Penetration Testing - A Crash Course
Thick Application Penetration Testing - A Crash CourseThick Application Penetration Testing - A Crash Course
Thick Application Penetration Testing - A Crash Course
NetSPI
 
How APIs are Transforming Cisco Solutions and Catalyzing an Innovation Ecosystem
How APIs are Transforming Cisco Solutions and Catalyzing an Innovation EcosystemHow APIs are Transforming Cisco Solutions and Catalyzing an Innovation Ecosystem
How APIs are Transforming Cisco Solutions and Catalyzing an Innovation Ecosystem
Cisco DevNet
 

Was ist angesagt? (20)

Oracle WebLogic Server 12c: Seamless Oracle Database Integration (with NEC, O...
Oracle WebLogic Server 12c: Seamless Oracle Database Integration (with NEC, O...Oracle WebLogic Server 12c: Seamless Oracle Database Integration (with NEC, O...
Oracle WebLogic Server 12c: Seamless Oracle Database Integration (with NEC, O...
 
BYOP: Custom Processor Development with Apache NiFi
BYOP: Custom Processor Development with Apache NiFiBYOP: Custom Processor Development with Apache NiFi
BYOP: Custom Processor Development with Apache NiFi
 
Oracle WebLogic Server 12.2.1 Do More with Less
Oracle WebLogic Server 12.2.1 Do More with LessOracle WebLogic Server 12.2.1 Do More with Less
Oracle WebLogic Server 12.2.1 Do More with Less
 
(ATS3-APP14) Troubleshooting Symyx Notebook client performance
(ATS3-APP14) Troubleshooting Symyx Notebook client performance(ATS3-APP14) Troubleshooting Symyx Notebook client performance
(ATS3-APP14) Troubleshooting Symyx Notebook client performance
 
Kace & SQL
Kace & SQLKace & SQL
Kace & SQL
 
Introduction
IntroductionIntroduction
Introduction
 
Bridging Oracle Database and Hadoop by Alex Gorbachev, Pythian from Oracle Op...
Bridging Oracle Database and Hadoop by Alex Gorbachev, Pythian from Oracle Op...Bridging Oracle Database and Hadoop by Alex Gorbachev, Pythian from Oracle Op...
Bridging Oracle Database and Hadoop by Alex Gorbachev, Pythian from Oracle Op...
 
Acceleration Technology: Taking Media File Transfers From Days to Minutes
Acceleration Technology: Taking Media File Transfers From Days to MinutesAcceleration Technology: Taking Media File Transfers From Days to Minutes
Acceleration Technology: Taking Media File Transfers From Days to Minutes
 
Building Streaming Data Applications Using Apache Kafka
Building Streaming Data Applications Using Apache KafkaBuilding Streaming Data Applications Using Apache Kafka
Building Streaming Data Applications Using Apache Kafka
 
The View - Leveraging Lotuscript for Database Connectivity
The View - Leveraging Lotuscript for Database ConnectivityThe View - Leveraging Lotuscript for Database Connectivity
The View - Leveraging Lotuscript for Database Connectivity
 
Functional reactive programming
Functional reactive programmingFunctional reactive programming
Functional reactive programming
 
KACE Agent Architecture and Troubleshooting Overview
KACE Agent Architecture and Troubleshooting OverviewKACE Agent Architecture and Troubleshooting Overview
KACE Agent Architecture and Troubleshooting Overview
 
GDPR- The Buck Stops Here
GDPR-  The Buck Stops HereGDPR-  The Buck Stops Here
GDPR- The Buck Stops Here
 
What’s New In Cincom Smalltalk
What’s New In Cincom SmalltalkWhat’s New In Cincom Smalltalk
What’s New In Cincom Smalltalk
 
Case Study: Credit Card Core System with Exalogic, Exadata, Oracle Cloud Mach...
Case Study: Credit Card Core System with Exalogic, Exadata, Oracle Cloud Mach...Case Study: Credit Card Core System with Exalogic, Exadata, Oracle Cloud Mach...
Case Study: Credit Card Core System with Exalogic, Exadata, Oracle Cloud Mach...
 
Thick Application Penetration Testing - A Crash Course
Thick Application Penetration Testing - A Crash CourseThick Application Penetration Testing - A Crash Course
Thick Application Penetration Testing - A Crash Course
 
How APIs are Transforming Cisco Solutions and Catalyzing an Innovation Ecosystem
How APIs are Transforming Cisco Solutions and Catalyzing an Innovation EcosystemHow APIs are Transforming Cisco Solutions and Catalyzing an Innovation Ecosystem
How APIs are Transforming Cisco Solutions and Catalyzing an Innovation Ecosystem
 
(ATS4-APP09)Tips and tricks for Managing Symyx Notebook Server Performance
(ATS4-APP09)Tips and tricks for Managing Symyx Notebook Server Performance(ATS4-APP09)Tips and tricks for Managing Symyx Notebook Server Performance
(ATS4-APP09)Tips and tricks for Managing Symyx Notebook Server Performance
 
Java Library for High Speed Streaming Data
Java Library for High Speed Streaming Data Java Library for High Speed Streaming Data
Java Library for High Speed Streaming Data
 
Putting Kafka Into Overdrive
Putting Kafka Into OverdrivePutting Kafka Into Overdrive
Putting Kafka Into Overdrive
 

Andere mochten auch

Bytecode Optimizations
Bytecode OptimizationsBytecode Optimizations
Bytecode Optimizations
ESUG
 
0 coisas de-celular
0  coisas de-celular0  coisas de-celular
0 coisas de-celular
luzberto
 
0 segurança dos-pneus
0    segurança dos-pneus0    segurança dos-pneus
0 segurança dos-pneus
luzberto
 

Andere mochten auch (20)

A Parser in my Pocket
A Parser in my PocketA Parser in my Pocket
A Parser in my Pocket
 
Changeboxes
ChangeboxesChangeboxes
Changeboxes
 
ESUG 2006 Welcome
ESUG 2006 WelcomeESUG 2006 Welcome
ESUG 2006 Welcome
 
Open Aspects
Open AspectsOpen Aspects
Open Aspects
 
DSL, the absolute weapon for the development
DSL, the absolute weapon for the developmentDSL, the absolute weapon for the development
DSL, the absolute weapon for the development
 
Agile Seaside
Agile SeasideAgile Seaside
Agile Seaside
 
Application Frameworks an Experience Report
Application Frameworks an Experience ReportApplication Frameworks an Experience Report
Application Frameworks an Experience Report
 
VAST 7.5 and Beyond
VAST 7.5 and BeyondVAST 7.5 and Beyond
VAST 7.5 and Beyond
 
ESUG 2007 Welcome
ESUG 2007 WelcomeESUG 2007 Welcome
ESUG 2007 Welcome
 
EasyMorphicGUI
EasyMorphicGUIEasyMorphicGUI
EasyMorphicGUI
 
Cincom® ObjectStudio® New Native GUI Implementation Preview
Cincom® ObjectStudio® New Native GUI Implementation PreviewCincom® ObjectStudio® New Native GUI Implementation Preview
Cincom® ObjectStudio® New Native GUI Implementation Preview
 
GemTalk Systems Overview
GemTalk Systems OverviewGemTalk Systems Overview
GemTalk Systems Overview
 
Bytecode Optimizations
Bytecode OptimizationsBytecode Optimizations
Bytecode Optimizations
 
Classes in the Mist
Classes in the MistClasses in the Mist
Classes in the Mist
 
Multimedia Presentation in Köthen Castle
Multimedia Presentation in Köthen CastleMultimedia Presentation in Köthen Castle
Multimedia Presentation in Köthen Castle
 
Language-side Foreign Function Interfaces with NativeBoost
Language-side Foreign Function Interfaces with NativeBoostLanguage-side Foreign Function Interfaces with NativeBoost
Language-side Foreign Function Interfaces with NativeBoost
 
Lightweight Classifications
Lightweight ClassificationsLightweight Classifications
Lightweight Classifications
 
0 coisas de-celular
0  coisas de-celular0  coisas de-celular
0 coisas de-celular
 
Emilyscollage
EmilyscollageEmilyscollage
Emilyscollage
 
0 segurança dos-pneus
0    segurança dos-pneus0    segurança dos-pneus
0 segurança dos-pneus
 

Ähnlich wie VA Smalltalk Update

VA Smalltalk Update
VA Smalltalk UpdateVA Smalltalk Update
VA Smalltalk Update
ESUG
 
UKLUG 2012 - XPages, Beyond the basics
UKLUG 2012 - XPages, Beyond the basicsUKLUG 2012 - XPages, Beyond the basics
UKLUG 2012 - XPages, Beyond the basics
Ulrich Krause
 

Ähnlich wie VA Smalltalk Update (20)

StarlingX - A Platform for the Distributed Edge | Ildiko Vancsa
StarlingX - A Platform for the Distributed Edge | Ildiko VancsaStarlingX - A Platform for the Distributed Edge | Ildiko Vancsa
StarlingX - A Platform for the Distributed Edge | Ildiko Vancsa
 
VA Smalltalk Update
VA Smalltalk UpdateVA Smalltalk Update
VA Smalltalk Update
 
Delivering Developer Tools at Scale
Delivering Developer Tools at ScaleDelivering Developer Tools at Scale
Delivering Developer Tools at Scale
 
Case study
Case studyCase study
Case study
 
7 Apache Process Cloudstack Developer Day
7 Apache Process Cloudstack Developer Day7 Apache Process Cloudstack Developer Day
7 Apache Process Cloudstack Developer Day
 
Docker for the enterprise
Docker for the enterpriseDocker for the enterprise
Docker for the enterprise
 
[DanNotes] XPages - Beyound the Basics
[DanNotes] XPages - Beyound the Basics[DanNotes] XPages - Beyound the Basics
[DanNotes] XPages - Beyound the Basics
 
Continuous Localisation On A Massive Scale
Continuous Localisation On A Massive ScaleContinuous Localisation On A Massive Scale
Continuous Localisation On A Massive Scale
 
Windows 2012 R2 Multi Server Management
Windows 2012 R2 Multi Server ManagementWindows 2012 R2 Multi Server Management
Windows 2012 R2 Multi Server Management
 
Extension Library - Viagra for XPages
Extension Library - Viagra for XPagesExtension Library - Viagra for XPages
Extension Library - Viagra for XPages
 
Performance testing material
Performance testing materialPerformance testing material
Performance testing material
 
Stay productive_while_slicing_up_the_monolith
Stay productive_while_slicing_up_the_monolithStay productive_while_slicing_up_the_monolith
Stay productive_while_slicing_up_the_monolith
 
Continuous Integration with Amazon ECS and Docker
Continuous Integration with Amazon ECS and DockerContinuous Integration with Amazon ECS and Docker
Continuous Integration with Amazon ECS and Docker
 
UKLUG 2012 - XPages, Beyond the basics
UKLUG 2012 - XPages, Beyond the basicsUKLUG 2012 - XPages, Beyond the basics
UKLUG 2012 - XPages, Beyond the basics
 
Asynchronous Frameworks.pptx
Asynchronous Frameworks.pptxAsynchronous Frameworks.pptx
Asynchronous Frameworks.pptx
 
Migrate from Oracle to Aurora PostgreSQL: Best Practices, Design Patterns, & ...
Migrate from Oracle to Aurora PostgreSQL: Best Practices, Design Patterns, & ...Migrate from Oracle to Aurora PostgreSQL: Best Practices, Design Patterns, & ...
Migrate from Oracle to Aurora PostgreSQL: Best Practices, Design Patterns, & ...
 
Immutable Infrastructure: Rise of the Machine Images
Immutable Infrastructure: Rise of the Machine ImagesImmutable Infrastructure: Rise of the Machine Images
Immutable Infrastructure: Rise of the Machine Images
 
Reactive Development: Commands, Actors and Events. Oh My!!
Reactive Development: Commands, Actors and Events.  Oh My!!Reactive Development: Commands, Actors and Events.  Oh My!!
Reactive Development: Commands, Actors and Events. Oh My!!
 
Apache Sever Technology By Greg Williams
Apache Sever Technology By Greg WilliamsApache Sever Technology By Greg Williams
Apache Sever Technology By Greg Williams
 
Application Streaming is dead. A smart way to choose an alternative
Application Streaming is dead. A smart way to choose an alternativeApplication Streaming is dead. A smart way to choose an alternative
Application Streaming is dead. A smart way to choose an alternative
 

Mehr von ESUG

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
ESUG
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and Roadmap
ESUG
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...
ESUG
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
ESUG
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
ESUG
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
ESUG
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
ESUG
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
ESUG
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
ESUG
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
ESUG
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
ESUG
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
ESUG
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
ESUG
 

Mehr von ESUG (20)

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

Kürzlich hochgeladen

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Kürzlich hochgeladen (20)

Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 

VA Smalltalk Update

  • 1. VA Smalltalk Update John O’Keefe Principal Smalltalk Architect Instantiations, Inc. Copyright, Instantiations, Inc.
  • 2. But first, the rebirth of Instantiations • Instantiations roots are in Smalltalk development tools • The company licensed Smalltalk technology and grew • The Smalltalk tools were very good, so the company redid them for Java and grew and redid them again for Eclipse and grew • Google liked the Java tools, so they bought that part of Instantiations and Instantiations took the money and went back to its roots • VA Smalltalk...Onward and Upward! Copyright, Instantiations, Inc.
  • 4. VA Smalltalk V8.0.2 May 2010 • Seaside 3.0 update • GLORP initial release • Platform currency and enhancements • Database currency and enhancements • Class library enhancements • SUnit 4.0 release • Documentation updates Copyright, Instantiations, Inc.
  • 5. Seaside 3.0 • Seaside is an open source framework for developing sophisticated web applications Layered abstraction over HTTP and HTML • HTML concepts exposed in Smalltalk • HTML markup hidden Base for higher-function frameworks Quickly build highly interactive applications • Scriptaculous and jQuery frameworks JavaScript Ajax libraries Programmed through Smalltalk artifacts Copyright, Instantiations, Inc.
  • 8. Seaside Cautions • Seaside Flow (currently) unsupported by VA Smalltalk No #wait: because no continuations • <some code>. r := self call: aComponent. “NO, does self wait:” <more code using r>. • <some code>. self show: aComponent onAnswer: [ :r | <more code using r ]. “YES” Copyright, Instantiations, Inc.
  • 9. GLORP Initial Release 0.3.178+ • Generic Lightweight Object-Relational Persistence Open Source framework for Object/Relational database access With concepts reminiscent of popular TOPLink product Provides: • Mapping of objects into relational databases • Transactions for change grouping • Non-intrusive implementation • Support for queries based on objects and data • High performance through optimized database access Documented in Database Guide Copyright, Instantiations, Inc.
  • 10. Platform Currency and Enhancements • Support added for: Ubuntu 9.04 (32- and 64-bit) Windows Server 2008 R2 (64-bit) • Windows executables are digitally signed Enhanced security Windows Logo Certification requirements Copyright, Instantiations, Inc.
  • 11. Platform Currency and Enhancements (cont.) • Windows power management events supported GUI apps can react to Sleep/Hibernate and Resume New protocol on Subapplication class • #suspending • #resume Useful for resetting sockets, reconnecting development manager, etc. Documented in Smalltalk User's Guide Copyright, Instantiations, Inc.
  • 12. Database Currency and Enhancements • Support added for Oracle 11g Compatibility mode No code changes • Support added for Oracle function calls Eliminates need to wrap function calls in stored procedures Examples of usage shown in Database Guide Copyright, Instantiations, Inc.
  • 13. Database Currency and Enhancements (cont.) • Support added for Anonymous SQL blocks Provides ability to send user-defined data types Provides ability to retrieve user-defined data types Supported in Oracle Examples of usage shown in Database Guide Copyright, Instantiations, Inc.
  • 14. Class Library Enhancements • Method pragmas Allow you to annotate methods with user- defined processing information Stored as literals in instances of CompiledMethod Pragma class has protocol for finding and processing annotations Provided for Pier Content Management System Documented in Programmer’s Reference Copyright, Instantiations, Inc.
  • 15. Class Library Enhancements (cont.) • Instance- and class-based exceptions are now polymorphic Providing clearer and more efficient handling of errors Brings back function dropped in VAST 6.0.1 Example: ^ [ (Array new: 3) at: 4 ] on: Error do: [ :ex | Transcript cr; show: ex messageText. ex return ] Primitive failed in: Object>>#at: due to Index out of range in argument 1 Copyright, Instantiations, Inc.
  • 16. SUnit 4.0 Just in Time Resources • Resources made available just-in-time: First test that needs it prompts setup Later tests that need it can see whether it has been (or failed to be) setup Tear down guaranteed at end of run; can be done anytime • Resource-processing is ordered A test’s resources are setup in order and torn down in reverse order A resource’s resources are setup before it is setup and torn down after it is torn down Copyright, Instantiations, Inc.
  • 17. SUnit 4.0 Class Changes • First there were three classes ... TestCase, TestSuite and TestResult • And then there was a fourth ... TestResource to manage resources • And now a fifth ... TestAsserter - abstract superclass of TestCase TestResource any user-created TestCase delegate class • Resources understand #assert:… protocol #setUp and #isAvailable run inside the handler Copyright, Instantiations, Inc.
  • 18. SUnit 4.0 Class Changes (cont.) • Logging TestCase methods moved to the class-side #isLogging, and #failureLog (and #logFailure: is now on both sides) Copyright, Instantiations, Inc.
  • 19. Documentation Updates • Web Services Guide Added Getting Started: Web Services in a Day Added Cookbook with debugging hints, XML de- serialization tips, and guidance on securing a Web service • Smalltalk User’s Guide Added Application behavior when Windows Power Management events occur Moved Namespace support to the Programmer’s Reference • Programmer’s Reference Added Pragmas, Namespace pragmas, and Annotation pragmas • Database Guide Added GLORP Tutorial, Anonymous PL/SQL Blocks, and Function Calls using Native Oracle Copyright, Instantiations, Inc.
  • 20. Looking to the Future Copyright, Instantiations, Inc.
  • 21. Future Releases • Release schedule is twice a year Usually May and November • Next release is November 2010 Web interface • Seaside 3.0 Development Tools • Message extraction tool Platform • Ubuntu 10.04 • Fedora Core 13 Copyright, Instantiations, Inc.
  • 22. Priority Technologies • Internationalization • Web interface • Database • GUI Look and Feel • Development Tools • Security • Performance and Scalability • Platforms • Other Copyright, Instantiations, Inc.
  • 23. Future Releases Candidates • Internationalization Unicode/UTF-8 • Web interface Seaside 3.1 SST Servlet multipart forms Web services tooling improvements Web services debugging tools/doc Validating XML parser Copyright, Instantiations, Inc.
  • 24. Future Releases Candidates (cont.) • GUI Look and Feel GTK+ 2.x on Linux Additional Windows Common Controls Additional icon/image support • Development Tools New ‘Settings’ framework and dialogs Improved Changes Browser • Database GLORP infrastructure improvements GLORP Programmer’s Reference Active Records built on GLORP Copyright, Instantiations, Inc.
  • 25. Future Releases Candidates (cont.) • Security “Basic” security framework -- current OpenSSL “Full” security framework -- OpenSSL 1.0 • Performance and Scalability Incremental garbage collection 64-bit Smalltalk Class library performance hotspots • Platform Windows Services control moved to Smalltalk Copyright, Instantiations, Inc.
  • 26. Future Releases Candidates (cont.) • Installation Single installer for Client and Manager Install/Repair/Uninstall Seamless with User Account Control (UAC) • Class Libraries Collection hashing policies Collection sorting policies Copyright, Instantiations, Inc.
  • 27. How Do I Get VA Smalltalk? • Download evaluation copy • Buy development licenses Copyright, Instantiations, Inc.
  • 28. How Do I Get VA Smalltalk? • Download evaluation copy • Buy development licenses • Download development build Copyright, Instantiations, Inc.
  • 29. Development Builds • An experiment in Early delivery Continuous integration 1 for V8.0.1, 2 for V8.0.2, 2 for V8.0.3 • Availability Announced on VA Smalltalk Forum and comp.lang.smalltalk Download from VA Smalltalk website Irregular schedule Documentation updated to match build Windows and Linux only • Fix-list for build on VA Smalltalk forum Copyright, Instantiations, Inc.
  • 30. How Do I Get VA Smalltalk? • Download evaluation copy • Buy development licenses • Download development build • Be a committer on an Open Source project Copyright, Instantiations, Inc.
  • 31. Open Source Project Committer • Instantiations will donate a perpetual VA Smalltalk license to committers working on non-commercial open source project Hint: release something to VAStGoodies.com • No charge • Details: Instantiations' Donations to Open Source Projects page Copyright, Instantiations, Inc.
  • 32. How Do I Get VA Smalltalk? • Download evaluation copy • Buy development licenses • Download development build • Be a committer on an Open Source project • Be an educational institution Copyright, Instantiations, Inc.
  • 33. Academic Licenses • Accredited educational institutions Teaching staff Students • No charge • Details: Academic License Program page Copyright, Instantiations, Inc.
  • 35. GLORP Basics • Create a session object Made from an accessor object Which is made from a connection object Which is made from a login object • Within a unit of work, make changes • Use session to query existing data • Create new objects and add them Sub-objects are automatically noted • Commit or rollback the unit of work Copyright, Instantiations, Inc.
  • 36. GLORP Mapping • Simple mapping is one-to-one Describe a table Create an object that looks like a row Describe that object and its mapping • Complex mappings One row becomes variant object type Multiple rows combine for one value • Can map existing objects to RDB Copyright, Instantiations, Inc.
  • 37. GLORP Descriptor • What a table contains • What objects will participate • How to map them • Very flexible system • When in doubt, refer to the unit tests for examples Copyright, Instantiations, Inc.
  • 38. VA Smalltalk V8.0.1 • Seaside 3.0 alpha5 • Continued Web Services enhancements • Additional enhancements for tabbed browsers • Windows 7 (32-/64-bit) • “cdecl” calling convention on Windows • Improved error diagnostics for memory allocation • Enhanced SST resource management for faster execution using less memory Copyright, Instantiations, Inc.
  • 39. VA Smalltalk V8.0 • Seaside 2.9 alpha3 Core, jQuery, Scriptaculous, RSS, porting layer and development tools • Enhanced Web Services supporting “Document Literal/Document Literal Wrapped” style • Enhanced IDE with tabbed browsers, native Windows widgets, inspector improvements, a new Method List Pane, Text Pane, Version Graph Tab, more • New documentation delivery system (web or local) with improved navigation, formatting and updated content Copyright, Instantiations, Inc.