SlideShare a Scribd company logo
VA Smalltalk Update

                                                 John O’Keefe
                                         Principal Smalltalk Architect
                                              Instantiations, Inc.




Copyright © 2011, Instantiations, Inc.
Recent Events

      •     Completed first year as pure Smalltalk company
              •   # of users and revenues continue to grow
      •     Growing Engineering staff
              • 4 engineers joined since ESUG 2010
              • Using contractors for additional capacity




Copyright © 2011, Instantiations, Inc.
Recent Events
                                             Continued


      •     University Outreach
              •   Hasso Plattner Institute Bachelor Project
                     •   GTK+ Bindings for Linux
              •   Interested in more
      •     User Outreach
              •   Conference participation
                     •   ESUG, Smalltalk Solutions, Smalltalks
              •   VA Smalltalk Forum -> VA Smalltalk Google Group
                     • Aggregated on [Smalltalk] http://forum.world.st
                     • Previous forum content still available (static)

      •     New “Videos and Podcasts” pages on website


Copyright © 2011, Instantiations, Inc.
Previous Releases

      •     V8.0 (May 2009)
              •   Seaside, Tabbed Browsers, Documentation delivery system

      •     V8.0.1 (November 2009)
              •   Seaside update, ‘cdecl’ calling convention

      •     V8.0.2 (May 2010)
              •   Seaside update, GLORP

      •     V8.0.3 (February 2011)
              •   Seaside update, GUI improvements, added documentation




Copyright © 2011, Instantiations, Inc.
VA Smalltalk V8.5
                                             August 2011

      •     Development Tools
              •   Code Assist (code completion)
      •     Infrastructure
              • Logging Framework
              • Preference Settings Framework
              • Deprecation Exception
      •     Graphics and Windowing
              • Rebar Control
              • TIFF CCITT T.4 bi-level encoding
      •     Web Interface
              • Grease 1.0.5+ / Seaside 3.0.5+
              • HTTP Chunked Transfer Encoding


Copyright © 2011, Instantiations, Inc.
Development Tools
                                         Code Assist

      •     Problem: Developers can create many more
            classes and methods than we can hold names for
            in our minds
      •     Solution: Use the computer’s calculating
            capabilities to predict names as they are being
            entered in the code editor




Copyright © 2011, Instantiations, Inc.
Development Tools
                                         Code Assist

            General and extensible content assist framework
                  Customizable popup list displays actionable suggestions
                  Layout management functions control popup placement
                  APIs and Extension Points allow for customization
            Numerous Configuration Options
                  Enable and configure auto-popup of completion
                  suggestions
                  Visibility settings (i.e. Show only Public method
                  suggestions)
                  <Tab> or <Enter> to accept completion suggestions
                  Automatic completion if single available suggestion




Copyright © 2011, Instantiations, Inc.
Development Tools
                                         Code Assist

      •     Context-Sensitive Auto-Completion
                Supported in Browsers, Workspaces and Debuggers
              • Suggestions for Methods, Symbols/Atoms, and Variables
              • Uses parse tree analysis and type reconstruction to
                provide most relevant suggestions
      •     Smart Suggestion Sorting
              • Variable Suggestions: Locals before pseudo variables
                before pool variables
                Method Suggestions: Public before Private
              • Class Suggestions: Classes that extend SubApplication
                after other classes



Copyright © 2011, Instantiations, Inc.
Development Tools
                                         Code Assist

            Suggestion descriptions provide additional details
                  Methods: Class in which the method is defined or
                  common superclass
                  Scoped Pool Variables: Value of the pool variable
                  Unscoped Pool Variables: Pool Dictionary in which it is
                  defined
            Suggestions offered for ambiguous receivers
                  OrderedCollection new add: #(1 2) be<Activate CA>
                     Does the user want to complete before: for the
                     receiver: #(1 2)?
                     Does the user want to complete add:before: for the
                     receiver: OrderedCollection new?
                     Only the user knows; both suggestions are offered




Copyright © 2011, Instantiations, Inc.
Development Tools
                                         Code Assist

      •     Parentheses auto-inserted for method
            completions
      •     Method override suggestions
              • Requesting Code Assistance at the top of a code browser
                will offer methods available to be overridden
              • Arguments are automatically inserted upon completion
                of an overridden method




Copyright © 2011, Instantiations, Inc.
Demo




Copyright © 2011, Instantiations, Inc.
Infrastructure
                                         Logging Framework

      •     Problem: The product currently contains many
            one-off logging solutions, but no centralized
            facility useable by product developers and
            customers.
      •     Solution: Provide a Logging Framework to
            standardize the definition, use, and output
            formats of logging.




Copyright © 2011, Instantiations, Inc.
Infrastructure
                                         Logging Framework

     Log4s is a port of the popular Java logging framework log4j




Copyright © 2011, Instantiations, Inc.
Infrastructure
                                         Logging Framework

      •     Example of application logging requirement
              •   A banking company is required to keep monthly logs of
                  all foreign transactions and weekly logs of all foreign
                  transactions greater than $10000




Copyright © 2011, Instantiations, Inc.
Infrastructure
                                         Logging Framework

      •     Example of application logging solution
              •   Make .ini file entries
                  [log4s]
                  createLogger=('vast')

                  dailyRollingFileAppender=(ForeignTxns, root,
                  c:logsforeignTxns.log, false, info,
                  EsPatternLayout, '%d [%c] %o', true, topOfMonth)

                  dailyRollingFileAppender=(BigForeignTxns, vast,
                  c:logsbigForeignTxns.log, false, warn,
                  EsPatternLayout, '%d %c %o', true, topOfWeek)

                  The pattern of %d %c %o will log the time, the logger
                  name, and the transaction object.

Copyright © 2011, Instantiations, Inc.
Infrastructure
                                         Logging Framework

              •   Define Transaction>>printLog4s
                  ^ String streamContent: [ :stream |
                     stream nextPutAll: self payee; space; nextPutAll:
                  self amount printString ]

              •   The application code might look like this:
                  logIfNeeded: aTransaction

                     aTransaction isForeign ifTrue: [
                      EsLogManager
                       info: 'Foreign txn‘
                       object: aTransaction. "goes to root logger"
                      aTransaction amount > 10000 ifTrue: [
                       EsLogManager
                        loggerNamed: 'vast‘
                        warn: 'Large Foreign txn‘
                        object: aTransaction ] ].

Copyright © 2011, Instantiations, Inc.
Infrastructure
                                         Logging Framework

      •     Result
              • foreignTxns.log will have output like this:
                 '28 Aug 2011 08:15:07,000 [root] Mark Twain 13.67‘
              • bigForeignTxns.log will have output like this:
                 '28 Aug 2011 08:15:07,000 vast Fred Smith 23645.23'




Copyright © 2011, Instantiations, Inc.
Infrastructure
                            Preference Settings Framework

      •     Problem: Existing customization preference
            settings are not well-managed or well-
            documented. In some cases, they are completely
            hidden.
      •     Solution: Provide a Preference Settings
            Framework to standardize the management and
            documentation of preferences.




Copyright © 2011, Instantiations, Inc.
Infrastructure
                            Preference Settings Framework

      •     Preferences are held in .ini file
              • Major groupings are stanzas -- generally named the
                same as the application they relate to
              • keyword=value entries hold the settings
              • Values are typed
                     • Simple: boolean, decimal, directory, file, fraction, integer,
                       multiLineString, number, point, string
                     • Complex: array, range




Copyright © 2011, Instantiations, Inc.
Infrastructure
                            Preference Settings Framework

      •     Preference settings are managed by subclasses of
            Application
      •     Preference settings are read from the .ini file
      •     The user implements 3 methods to provide
            preference settings for an application
              • validSettings
              • currentSettings
              • setCurrentSettings




Copyright © 2011, Instantiations, Inc.
Infrastructure
                            Preference Settings Framework

      •     validSettings
              • Provides valid element types for keywords within
                stanzas
              • Example

                  validSettings
                  ^ LookupTable new
                    at: self symbol asString
                    put: (LookupTable with: 'fplevel' ->(0 inclusiveTo:
                  9) elementType: self integerType));
                    at: 'VAST 5.0 Compatibility'
                    put: (LookupTable with: 'installPath' -> self
                  directoryType);
                    yourself


Copyright © 2011, Instantiations, Inc.
Infrastructure
                            Preference Settings Framework

      •     currentSettings
              • Provides current and default setting values for keywords
                within stanzas
              • Example

                  currentSettings
                  ^ LookupTable new
                     at: self symbol asString
                      put: (LookupTable with: 'bitmapPath' -> (Array
                  with: CgScreen bitmapPath with: #()));
                      yourself




Copyright © 2011, Instantiations, Inc.
Infrastructure
                            Preference Settings Framework

      •     setCurrentSettings
              • Transfers setting values to their ‘used’ location for the
                application
              • Example

                  setCurrentSettings
                  | addr |
                  addr := self settingFor: 'ServerAddress'.
                  addr isEmpty ifTrue: [ addr := nil ].
                  EmLibrary
                    defaultName: (self settingFor: 'DefaultName');
                    serverAddress: addr;
                    openReadOnly: (self settingFor: 'OpenReadOnly')



Copyright © 2011, Instantiations, Inc.
Infrastructure
                                         Deprecation Exception

      •     Problem: Frameworks evolve and some API
            methods are destined to be removed in favor of
            replacement methods, but customers may have
            code dependencies.
      •     Solution: Mark methods as deprecated and
            gather usage information




Copyright © 2011, Instantiations, Inc.
Infrastructure
                                         Deprecation Exception

      •     Technique
              • Categorize method as ‘Deprecated’
              • Replace method content with:

                  self
                   deprecated: ‘explanation string’
                   in: ‘version string’.
                  ^ …invocation of alternate implementation…
      •     Example
            asDecimal
             ^ self
                deprecated: 'Replaced by #asScaledDecimal‘
                in: ‘V8.5';
                asScaledDecimal


Copyright © 2011, Instantiations, Inc.
Infrastructure
                                         Deprecation Exception

      •     Deprecation is subclass of Warning
      •     Default handling based on preference
              • Logging: write message to in-memory log
              • Showing: write message to Transcript (TranscriptTTY in
                runtime)
              • Raising: open MessagePrompter allowing continue or
                terminate
      •     Documentation provides sample code to dump in-
            memory log




Copyright © 2011, Instantiations, Inc.
Graphics and Windowing
                                         Rebar Control

      •     Problem: Windows customers want Toolbars
            with adjustable content.
      •     Solution: Add support for Rebar control




Copyright © 2011, Instantiations, Inc.
Graphics and Windowing
                                         Rebar Control

      •     Specialized container for widgets
      •     Holds bands
              • Bands may be moved and resized
              • Band may hold
                     • Gripper (for resizing)
                     • Child widget
                     • Label
                     • Bitmap




Copyright © 2011, Instantiations, Inc.
Graphics and Windowing
                           TIFF CCITT T.4 bi-level encoding

      •     Problem: Customers are receiving FAX
            documents encoded as CCITT T.4 that they can’t
            process
      •     Solution: Add support for CCITT T.4 bi-level
            encoding (read and write) to existing TIFF
            support




Copyright © 2011, Instantiations, Inc.
Web Interface
                            Seaside 3.0.5+ / Grease 1.0.5+

      •     Problem: Seaside and Grease development has
            progressed since VA Smalltalk V8.0.3
      •     Solution: Port Seaside 3.0.5 and Grease 1.0.5
            (both with updates through 8/9/2011 – exact
            level identified in configuration maps)




Copyright © 2011, Instantiations, Inc.
Web Interface
                          HTTP Chunked Transfer Encoding

      •     Problem: Customers need to maintain persistent
            connections for HTTP with dynamically generated
            content (size not known when connection
            established).
      •     Solution: Add support for HTTP Chunked
            Transfer Encoding. Chunked HTTPRequests and
            HTTPResponses (including web services) can be
            processed.




Copyright © 2011, Instantiations, Inc.
Support

      •     60+ bug fixes and minor enhancements




Copyright © 2011, Instantiations, Inc.
Looking to the Future




Copyright © 2011, Instantiations, Inc.
Future Releases

      •     Release schedule is about twice a year
              • Next release is planned for end of Q1/2012
              • Current information available in Product Roadmap
                     •   http://www.instantiations.com/products/roadmap.html

      •     Content based on requirements from:
              • Direct customer interactions
              • Forums
              • Support cases
              • Internals




Copyright © 2011, Instantiations, Inc.
Priority Technologies

      •     Internationalization
      •     Web interface
      •     Middleware
      •     GUI Look and Feel
      •     Development Tools
      •     Security
      •     Performance and Scalability
      •     Platforms
      •     External Interfaces
      •     Other

Copyright © 2011, Instantiations, Inc.
Future Releases
                                          Candidate Items

      •     Internationalization
              •   Full Unicode/UTF-8 (including VM)
      •     Web interface
              •   Seaside 3.x
              •   Continuation support
              •   SST Servlet multipart forms
              •   Web services tooling improvements
              •   Web services debugging tools/doc
              •   Validating XML parser




Copyright © 2011, Instantiations, Inc.
Future Releases
                                          Candidate Items

      •     GUI Look and Feel
              • GTK+ 2.x on Linux
              • Windows Common Controls additions
              • Icon/image support additions
              • Backport widgets from add-ons

      •     Development Tools
              • Improved Changes Browser & Merge Tool
              • Code Assist additions
              • Monticello importer




Copyright © 2011, Instantiations, Inc.
Future Releases
                                          Candidate Items

      •     Infrastructure
              • Settings Dialogs to complement Settings Framework
              • Consolidate most settings using Settings Framework
              • Logging Framework improvements
              • Windows Services control moved to Smalltalk

      •     Middleware
              •   DB2 Stored Procedures improvements
              •   GLORP infrastructure improvements
              •   GLORP Programmer’s Reference
              •   Active Records built on GLORP
              •   TCP/IP V6


Copyright © 2011, Instantiations, Inc.
Future Releases
                                          Candidate Items

      •     Security
              • “Basic” security framework (consolidate existing
                OpenSSL wrappers)
              • “Full” security framework -- OpenSSL 1.0 wrappers

      •     Performance and Scalability
              • Incremental garbage collection
              • 64-bit Smalltalk
              • Class library performance hotspots
              • Integrate KES/Stats tool for object monitoring




Copyright © 2011, Instantiations, Inc.
Future Releases
                                          Candidate Items

      •     External Interfaces
              • JNIPort
              • .NET/C# Other

      •     Installation
              • Single installer for Client and Manager
              • Seamless with Windows UAC (User Account Control)
              • Install/Repair/Uninstall (no manual Registry edit)
              • Silent installer for Unix

      •     Class Libraries
              • Collection hashing policies
              • Collection sorting policies


Copyright © 2011, Instantiations, Inc.
How Do You Get VA Smalltalk?

      •     Download evaluation copy
              •   http://www.instantiations.com/products/vasmalltalk/download.html

      •     Buy development licenses
              •   http://www.instantiations.com/products/purchase.html

      •     Download development build
              •   Announced in VA Smalltalk Google Group
      •     Be a committer on an Open Source project
              •   http://www.instantiations.com/company/open-source.html

      •     Work for an educational institution
              •   http://www.instantiations.com/products/academic-license-
                  program.html




Copyright © 2011, Instantiations, Inc.
Contact us

      •     General information
              •   info@instantiations.com
      •     Sales
              •   sales@instantiations.com
      •     Support
              •   support@instantiations.com
      •     Me
              •   john_okeefe@instantiations.com




Copyright © 2011, Instantiations, Inc.
Backup




Copyright © 2011, Instantiations, Inc.
Development Tools
                                         Code Assist




Copyright © 2011, Instantiations, Inc.
Development Tools
                                         Code Assist




Copyright © 2011, Instantiations, Inc.
Development Tools
                                         Code Assist




Copyright © 2011, Instantiations, Inc.
Development Tools
                                         Code Assist




Copyright © 2011, Instantiations, Inc.
Development Tools
                                         Code Assist




Copyright © 2011, Instantiations, Inc.
Development Tools
                                             Code Assist




Copyright © 2011, Instantiations, Inc.

More Related Content

What's hot

Android Library Projects
Android Library ProjectsAndroid Library Projects
Android Library Projects
CommonsWare
 
Kitware: Qt and Scientific Computing
Kitware: Qt and Scientific ComputingKitware: Qt and Scientific Computing
Kitware: Qt and Scientific Computing
account inactive
 
Velocity-EHF for Android
Velocity-EHF for AndroidVelocity-EHF for Android
Velocity-EHF for Android
michaeljfawcett
 
But We're Already Open Source! Why Would I Want To Bring My Code To Apache?
But We're Already Open Source! Why Would I Want To Bring My Code To Apache?But We're Already Open Source! Why Would I Want To Bring My Code To Apache?
But We're Already Open Source! Why Would I Want To Bring My Code To Apache?
gagravarr
 
Make Your Builds More Groovy
Make Your Builds More GroovyMake Your Builds More Groovy
Make Your Builds More Groovy
Paul King
 
GroovyDSLs
GroovyDSLsGroovyDSLs
GroovyDSLs
Paul King
 
Dependency Injection Styles
Dependency Injection StylesDependency Injection Styles
Dependency Injection Styles
Spring User Group France
 
Websphere Application Server: Much more than Open Source
Websphere Application Server: Much more than Open SourceWebsphere Application Server: Much more than Open Source
Websphere Application Server: Much more than Open Source
IBM WebSphereIndia
 
Enterprise OSGi at eBay
Enterprise OSGi at eBayEnterprise OSGi at eBay
Enterprise OSGi at eBayTony Ng
 
Basic Selenium Training
Basic Selenium TrainingBasic Selenium Training
Basic Selenium Training
Dipesh Bhatewara
 

What's hot (11)

Android Library Projects
Android Library ProjectsAndroid Library Projects
Android Library Projects
 
Kitware: Qt and Scientific Computing
Kitware: Qt and Scientific ComputingKitware: Qt and Scientific Computing
Kitware: Qt and Scientific Computing
 
Velocity-EHF for Android
Velocity-EHF for AndroidVelocity-EHF for Android
Velocity-EHF for Android
 
But We're Already Open Source! Why Would I Want To Bring My Code To Apache?
But We're Already Open Source! Why Would I Want To Bring My Code To Apache?But We're Already Open Source! Why Would I Want To Bring My Code To Apache?
But We're Already Open Source! Why Would I Want To Bring My Code To Apache?
 
Make Your Builds More Groovy
Make Your Builds More GroovyMake Your Builds More Groovy
Make Your Builds More Groovy
 
GroovyDSLs
GroovyDSLsGroovyDSLs
GroovyDSLs
 
Dependency Injection Styles
Dependency Injection StylesDependency Injection Styles
Dependency Injection Styles
 
OpenStack Extensions
OpenStack ExtensionsOpenStack Extensions
OpenStack Extensions
 
Websphere Application Server: Much more than Open Source
Websphere Application Server: Much more than Open SourceWebsphere Application Server: Much more than Open Source
Websphere Application Server: Much more than Open Source
 
Enterprise OSGi at eBay
Enterprise OSGi at eBayEnterprise OSGi at eBay
Enterprise OSGi at eBay
 
Basic Selenium Training
Basic Selenium TrainingBasic Selenium Training
Basic Selenium Training
 

Viewers also liked

Building the VM
Building the VMBuilding the VM
Building the VM
ESUG
 
VW Object Memory Management
VW Object Memory ManagementVW Object Memory Management
VW Object Memory Management
ESUG
 
DeltaImpact: Assessing semantic merge conflicts with Dependency Analysis
DeltaImpact: Assessing semantic merge conflicts with Dependency AnalysisDeltaImpact: Assessing semantic merge conflicts with Dependency Analysis
DeltaImpact: Assessing semantic merge conflicts with Dependency Analysis
ESUG
 
Code Transformation by Direct Transformation of ASTs
Code Transformation by Direct Transformation of ASTsCode Transformation by Direct Transformation of ASTs
Code Transformation by Direct Transformation of ASTs
ESUG
 
Mock Objects and Smalltalk
Mock Objects and SmalltalkMock Objects and Smalltalk
Mock Objects and Smalltalk
ESUG
 
Smalltalk on the JVM
Smalltalk on the JVMSmalltalk on the JVM
Smalltalk on the JVM
ESUG
 
Pasos para escanear una imagen o documento
Pasos para escanear una imagen o documentoPasos para escanear una imagen o documento
Pasos para escanear una imagen o documentoana_palacio12
 

Viewers also liked (7)

Building the VM
Building the VMBuilding the VM
Building the VM
 
VW Object Memory Management
VW Object Memory ManagementVW Object Memory Management
VW Object Memory Management
 
DeltaImpact: Assessing semantic merge conflicts with Dependency Analysis
DeltaImpact: Assessing semantic merge conflicts with Dependency AnalysisDeltaImpact: Assessing semantic merge conflicts with Dependency Analysis
DeltaImpact: Assessing semantic merge conflicts with Dependency Analysis
 
Code Transformation by Direct Transformation of ASTs
Code Transformation by Direct Transformation of ASTsCode Transformation by Direct Transformation of ASTs
Code Transformation by Direct Transformation of ASTs
 
Mock Objects and Smalltalk
Mock Objects and SmalltalkMock Objects and Smalltalk
Mock Objects and Smalltalk
 
Smalltalk on the JVM
Smalltalk on the JVMSmalltalk on the JVM
Smalltalk on the JVM
 
Pasos para escanear una imagen o documento
Pasos para escanear una imagen o documentoPasos para escanear una imagen o documento
Pasos para escanear una imagen o documento
 

Similar to VA Smalltalk Update

VA Smalltalk Update
VA Smalltalk UpdateVA Smalltalk Update
VA Smalltalk Update
ESUG
 
VA Smalltalk Update ESUG2014
VA Smalltalk Update ESUG2014VA Smalltalk Update ESUG2014
VA Smalltalk Update ESUG2014
ESUG
 
VA Smalltalk Update
VA Smalltalk UpdateVA Smalltalk Update
VA Smalltalk Update
ESUG
 
Application Quality with Visual Studio 2010
Application Quality with Visual Studio 2010Application Quality with Visual Studio 2010
Application Quality with Visual Studio 2010Anna Russo
 
SharePoint Sandboxed Solutions and InfoPath - TechEd Middle East
SharePoint Sandboxed Solutions and InfoPath - TechEd Middle EastSharePoint Sandboxed Solutions and InfoPath - TechEd Middle East
SharePoint Sandboxed Solutions and InfoPath - TechEd Middle East
Ayman El-Hattab
 
Turmeric SOA Introduction
Turmeric SOA IntroductionTurmeric SOA Introduction
Turmeric SOA Introduction
kingargyle
 
DevOps - IaC | Talk | AGILE GURUGRAM 2018 | 23 - 24 March, 2018
DevOps - IaC | Talk | AGILE GURUGRAM 2018 | 23 - 24 March, 2018DevOps - IaC | Talk | AGILE GURUGRAM 2018 | 23 - 24 March, 2018
DevOps - IaC | Talk | AGILE GURUGRAM 2018 | 23 - 24 March, 2018
AgileNetwork
 
Mantis Code Deployment Process
Mantis Code Deployment ProcessMantis Code Deployment Process
Mantis Code Deployment Process
Jen Wei Lee
 
Lift Introduction
Lift IntroductionLift Introduction
Lift Introduction
Indrajit Raychaudhuri
 
Case study
Case studyCase study
Case study
karan saini
 
Version Control, Writers, and Workflows
Version Control, Writers, and WorkflowsVersion Control, Writers, and Workflows
Version Control, Writers, and Workflows
stc-siliconvalley
 
Android application development
Android application developmentAndroid application development
Android application developmentLinh Vi Tường
 
Facilitating continuous delivery in a FinTech world with Salt, Jenkins, Nexus...
Facilitating continuous delivery in a FinTech world with Salt, Jenkins, Nexus...Facilitating continuous delivery in a FinTech world with Salt, Jenkins, Nexus...
Facilitating continuous delivery in a FinTech world with Salt, Jenkins, Nexus...
Chocolatey Software
 
Facilitating continuous delivery in a FinTech world with Salt, Jenkins, Nexus...
Facilitating continuous delivery in a FinTech world with Salt, Jenkins, Nexus...Facilitating continuous delivery in a FinTech world with Salt, Jenkins, Nexus...
Facilitating continuous delivery in a FinTech world with Salt, Jenkins, Nexus...
Michel Buczynski
 
Prueba ppt
Prueba pptPrueba ppt
Prueba ppt
Ulises Torelli
 
Html5v1
Html5v1Html5v1
ECM and Open Source Software: A Disruptive Force in ECM Solutions
ECM and Open Source Software: A Disruptive Force in ECM SolutionsECM and Open Source Software: A Disruptive Force in ECM Solutions
ECM and Open Source Software: A Disruptive Force in ECM Solutions
Jeff Potts
 

Similar to VA Smalltalk Update (20)

VA Smalltalk Update
VA Smalltalk UpdateVA Smalltalk Update
VA Smalltalk Update
 
VA Smalltalk Update ESUG2014
VA Smalltalk Update ESUG2014VA Smalltalk Update ESUG2014
VA Smalltalk Update ESUG2014
 
VA Smalltalk Update
VA Smalltalk UpdateVA Smalltalk Update
VA Smalltalk Update
 
Application Quality with Visual Studio 2010
Application Quality with Visual Studio 2010Application Quality with Visual Studio 2010
Application Quality with Visual Studio 2010
 
Arif_Shaik_CV
Arif_Shaik_CVArif_Shaik_CV
Arif_Shaik_CV
 
SharePoint Sandboxed Solutions and InfoPath - TechEd Middle East
SharePoint Sandboxed Solutions and InfoPath - TechEd Middle EastSharePoint Sandboxed Solutions and InfoPath - TechEd Middle East
SharePoint Sandboxed Solutions and InfoPath - TechEd Middle East
 
caseywest
caseywestcaseywest
caseywest
 
caseywest
caseywestcaseywest
caseywest
 
Turmeric SOA Introduction
Turmeric SOA IntroductionTurmeric SOA Introduction
Turmeric SOA Introduction
 
DevOps - IaC | Talk | AGILE GURUGRAM 2018 | 23 - 24 March, 2018
DevOps - IaC | Talk | AGILE GURUGRAM 2018 | 23 - 24 March, 2018DevOps - IaC | Talk | AGILE GURUGRAM 2018 | 23 - 24 March, 2018
DevOps - IaC | Talk | AGILE GURUGRAM 2018 | 23 - 24 March, 2018
 
Mantis Code Deployment Process
Mantis Code Deployment ProcessMantis Code Deployment Process
Mantis Code Deployment Process
 
Lift Introduction
Lift IntroductionLift Introduction
Lift Introduction
 
Case study
Case studyCase study
Case study
 
Version Control, Writers, and Workflows
Version Control, Writers, and WorkflowsVersion Control, Writers, and Workflows
Version Control, Writers, and Workflows
 
Android application development
Android application developmentAndroid application development
Android application development
 
Facilitating continuous delivery in a FinTech world with Salt, Jenkins, Nexus...
Facilitating continuous delivery in a FinTech world with Salt, Jenkins, Nexus...Facilitating continuous delivery in a FinTech world with Salt, Jenkins, Nexus...
Facilitating continuous delivery in a FinTech world with Salt, Jenkins, Nexus...
 
Facilitating continuous delivery in a FinTech world with Salt, Jenkins, Nexus...
Facilitating continuous delivery in a FinTech world with Salt, Jenkins, Nexus...Facilitating continuous delivery in a FinTech world with Salt, Jenkins, Nexus...
Facilitating continuous delivery in a FinTech world with Salt, Jenkins, Nexus...
 
Prueba ppt
Prueba pptPrueba ppt
Prueba ppt
 
Html5v1
Html5v1Html5v1
Html5v1
 
ECM and Open Source Software: A Disruptive Force in ECM Solutions
ECM and Open Source Software: A Disruptive Force in ECM SolutionsECM and Open Source Software: A Disruptive Force in ECM Solutions
ECM and Open Source Software: A Disruptive Force in ECM Solutions
 

More from 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
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in Pharo
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
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in Pharo
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
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector Tuning
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
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the Debugger
ESUG
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing Score
ESUG
 
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
ESUG
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design Mooc
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
 

More from 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
 

Recently uploaded

PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
Abida Shariff
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 

Recently uploaded (20)

PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 

VA Smalltalk Update

  • 1. VA Smalltalk Update John O’Keefe Principal Smalltalk Architect Instantiations, Inc. Copyright © 2011, Instantiations, Inc.
  • 2. Recent Events • Completed first year as pure Smalltalk company • # of users and revenues continue to grow • Growing Engineering staff • 4 engineers joined since ESUG 2010 • Using contractors for additional capacity Copyright © 2011, Instantiations, Inc.
  • 3. Recent Events Continued • University Outreach • Hasso Plattner Institute Bachelor Project • GTK+ Bindings for Linux • Interested in more • User Outreach • Conference participation • ESUG, Smalltalk Solutions, Smalltalks • VA Smalltalk Forum -> VA Smalltalk Google Group • Aggregated on [Smalltalk] http://forum.world.st • Previous forum content still available (static) • New “Videos and Podcasts” pages on website Copyright © 2011, Instantiations, Inc.
  • 4. Previous Releases • V8.0 (May 2009) • Seaside, Tabbed Browsers, Documentation delivery system • V8.0.1 (November 2009) • Seaside update, ‘cdecl’ calling convention • V8.0.2 (May 2010) • Seaside update, GLORP • V8.0.3 (February 2011) • Seaside update, GUI improvements, added documentation Copyright © 2011, Instantiations, Inc.
  • 5. VA Smalltalk V8.5 August 2011 • Development Tools • Code Assist (code completion) • Infrastructure • Logging Framework • Preference Settings Framework • Deprecation Exception • Graphics and Windowing • Rebar Control • TIFF CCITT T.4 bi-level encoding • Web Interface • Grease 1.0.5+ / Seaside 3.0.5+ • HTTP Chunked Transfer Encoding Copyright © 2011, Instantiations, Inc.
  • 6. Development Tools Code Assist • Problem: Developers can create many more classes and methods than we can hold names for in our minds • Solution: Use the computer’s calculating capabilities to predict names as they are being entered in the code editor Copyright © 2011, Instantiations, Inc.
  • 7. Development Tools Code Assist General and extensible content assist framework Customizable popup list displays actionable suggestions Layout management functions control popup placement APIs and Extension Points allow for customization Numerous Configuration Options Enable and configure auto-popup of completion suggestions Visibility settings (i.e. Show only Public method suggestions) <Tab> or <Enter> to accept completion suggestions Automatic completion if single available suggestion Copyright © 2011, Instantiations, Inc.
  • 8. Development Tools Code Assist • Context-Sensitive Auto-Completion Supported in Browsers, Workspaces and Debuggers • Suggestions for Methods, Symbols/Atoms, and Variables • Uses parse tree analysis and type reconstruction to provide most relevant suggestions • Smart Suggestion Sorting • Variable Suggestions: Locals before pseudo variables before pool variables Method Suggestions: Public before Private • Class Suggestions: Classes that extend SubApplication after other classes Copyright © 2011, Instantiations, Inc.
  • 9. Development Tools Code Assist Suggestion descriptions provide additional details Methods: Class in which the method is defined or common superclass Scoped Pool Variables: Value of the pool variable Unscoped Pool Variables: Pool Dictionary in which it is defined Suggestions offered for ambiguous receivers OrderedCollection new add: #(1 2) be<Activate CA> Does the user want to complete before: for the receiver: #(1 2)? Does the user want to complete add:before: for the receiver: OrderedCollection new? Only the user knows; both suggestions are offered Copyright © 2011, Instantiations, Inc.
  • 10. Development Tools Code Assist • Parentheses auto-inserted for method completions • Method override suggestions • Requesting Code Assistance at the top of a code browser will offer methods available to be overridden • Arguments are automatically inserted upon completion of an overridden method Copyright © 2011, Instantiations, Inc.
  • 11. Demo Copyright © 2011, Instantiations, Inc.
  • 12. Infrastructure Logging Framework • Problem: The product currently contains many one-off logging solutions, but no centralized facility useable by product developers and customers. • Solution: Provide a Logging Framework to standardize the definition, use, and output formats of logging. Copyright © 2011, Instantiations, Inc.
  • 13. Infrastructure Logging Framework Log4s is a port of the popular Java logging framework log4j Copyright © 2011, Instantiations, Inc.
  • 14. Infrastructure Logging Framework • Example of application logging requirement • A banking company is required to keep monthly logs of all foreign transactions and weekly logs of all foreign transactions greater than $10000 Copyright © 2011, Instantiations, Inc.
  • 15. Infrastructure Logging Framework • Example of application logging solution • Make .ini file entries [log4s] createLogger=('vast') dailyRollingFileAppender=(ForeignTxns, root, c:logsforeignTxns.log, false, info, EsPatternLayout, '%d [%c] %o', true, topOfMonth) dailyRollingFileAppender=(BigForeignTxns, vast, c:logsbigForeignTxns.log, false, warn, EsPatternLayout, '%d %c %o', true, topOfWeek) The pattern of %d %c %o will log the time, the logger name, and the transaction object. Copyright © 2011, Instantiations, Inc.
  • 16. Infrastructure Logging Framework • Define Transaction>>printLog4s ^ String streamContent: [ :stream | stream nextPutAll: self payee; space; nextPutAll: self amount printString ] • The application code might look like this: logIfNeeded: aTransaction aTransaction isForeign ifTrue: [ EsLogManager info: 'Foreign txn‘ object: aTransaction. "goes to root logger" aTransaction amount > 10000 ifTrue: [ EsLogManager loggerNamed: 'vast‘ warn: 'Large Foreign txn‘ object: aTransaction ] ]. Copyright © 2011, Instantiations, Inc.
  • 17. Infrastructure Logging Framework • Result • foreignTxns.log will have output like this: '28 Aug 2011 08:15:07,000 [root] Mark Twain 13.67‘ • bigForeignTxns.log will have output like this: '28 Aug 2011 08:15:07,000 vast Fred Smith 23645.23' Copyright © 2011, Instantiations, Inc.
  • 18. Infrastructure Preference Settings Framework • Problem: Existing customization preference settings are not well-managed or well- documented. In some cases, they are completely hidden. • Solution: Provide a Preference Settings Framework to standardize the management and documentation of preferences. Copyright © 2011, Instantiations, Inc.
  • 19. Infrastructure Preference Settings Framework • Preferences are held in .ini file • Major groupings are stanzas -- generally named the same as the application they relate to • keyword=value entries hold the settings • Values are typed • Simple: boolean, decimal, directory, file, fraction, integer, multiLineString, number, point, string • Complex: array, range Copyright © 2011, Instantiations, Inc.
  • 20. Infrastructure Preference Settings Framework • Preference settings are managed by subclasses of Application • Preference settings are read from the .ini file • The user implements 3 methods to provide preference settings for an application • validSettings • currentSettings • setCurrentSettings Copyright © 2011, Instantiations, Inc.
  • 21. Infrastructure Preference Settings Framework • validSettings • Provides valid element types for keywords within stanzas • Example validSettings ^ LookupTable new at: self symbol asString put: (LookupTable with: 'fplevel' ->(0 inclusiveTo: 9) elementType: self integerType)); at: 'VAST 5.0 Compatibility' put: (LookupTable with: 'installPath' -> self directoryType); yourself Copyright © 2011, Instantiations, Inc.
  • 22. Infrastructure Preference Settings Framework • currentSettings • Provides current and default setting values for keywords within stanzas • Example currentSettings ^ LookupTable new at: self symbol asString put: (LookupTable with: 'bitmapPath' -> (Array with: CgScreen bitmapPath with: #())); yourself Copyright © 2011, Instantiations, Inc.
  • 23. Infrastructure Preference Settings Framework • setCurrentSettings • Transfers setting values to their ‘used’ location for the application • Example setCurrentSettings | addr | addr := self settingFor: 'ServerAddress'. addr isEmpty ifTrue: [ addr := nil ]. EmLibrary defaultName: (self settingFor: 'DefaultName'); serverAddress: addr; openReadOnly: (self settingFor: 'OpenReadOnly') Copyright © 2011, Instantiations, Inc.
  • 24. Infrastructure Deprecation Exception • Problem: Frameworks evolve and some API methods are destined to be removed in favor of replacement methods, but customers may have code dependencies. • Solution: Mark methods as deprecated and gather usage information Copyright © 2011, Instantiations, Inc.
  • 25. Infrastructure Deprecation Exception • Technique • Categorize method as ‘Deprecated’ • Replace method content with: self deprecated: ‘explanation string’ in: ‘version string’. ^ …invocation of alternate implementation… • Example asDecimal ^ self deprecated: 'Replaced by #asScaledDecimal‘ in: ‘V8.5'; asScaledDecimal Copyright © 2011, Instantiations, Inc.
  • 26. Infrastructure Deprecation Exception • Deprecation is subclass of Warning • Default handling based on preference • Logging: write message to in-memory log • Showing: write message to Transcript (TranscriptTTY in runtime) • Raising: open MessagePrompter allowing continue or terminate • Documentation provides sample code to dump in- memory log Copyright © 2011, Instantiations, Inc.
  • 27. Graphics and Windowing Rebar Control • Problem: Windows customers want Toolbars with adjustable content. • Solution: Add support for Rebar control Copyright © 2011, Instantiations, Inc.
  • 28. Graphics and Windowing Rebar Control • Specialized container for widgets • Holds bands • Bands may be moved and resized • Band may hold • Gripper (for resizing) • Child widget • Label • Bitmap Copyright © 2011, Instantiations, Inc.
  • 29. Graphics and Windowing TIFF CCITT T.4 bi-level encoding • Problem: Customers are receiving FAX documents encoded as CCITT T.4 that they can’t process • Solution: Add support for CCITT T.4 bi-level encoding (read and write) to existing TIFF support Copyright © 2011, Instantiations, Inc.
  • 30. Web Interface Seaside 3.0.5+ / Grease 1.0.5+ • Problem: Seaside and Grease development has progressed since VA Smalltalk V8.0.3 • Solution: Port Seaside 3.0.5 and Grease 1.0.5 (both with updates through 8/9/2011 – exact level identified in configuration maps) Copyright © 2011, Instantiations, Inc.
  • 31. Web Interface HTTP Chunked Transfer Encoding • Problem: Customers need to maintain persistent connections for HTTP with dynamically generated content (size not known when connection established). • Solution: Add support for HTTP Chunked Transfer Encoding. Chunked HTTPRequests and HTTPResponses (including web services) can be processed. Copyright © 2011, Instantiations, Inc.
  • 32. Support • 60+ bug fixes and minor enhancements Copyright © 2011, Instantiations, Inc.
  • 33. Looking to the Future Copyright © 2011, Instantiations, Inc.
  • 34. Future Releases • Release schedule is about twice a year • Next release is planned for end of Q1/2012 • Current information available in Product Roadmap • http://www.instantiations.com/products/roadmap.html • Content based on requirements from: • Direct customer interactions • Forums • Support cases • Internals Copyright © 2011, Instantiations, Inc.
  • 35. Priority Technologies • Internationalization • Web interface • Middleware • GUI Look and Feel • Development Tools • Security • Performance and Scalability • Platforms • External Interfaces • Other Copyright © 2011, Instantiations, Inc.
  • 36. Future Releases Candidate Items • Internationalization • Full Unicode/UTF-8 (including VM) • Web interface • Seaside 3.x • Continuation support • SST Servlet multipart forms • Web services tooling improvements • Web services debugging tools/doc • Validating XML parser Copyright © 2011, Instantiations, Inc.
  • 37. Future Releases Candidate Items • GUI Look and Feel • GTK+ 2.x on Linux • Windows Common Controls additions • Icon/image support additions • Backport widgets from add-ons • Development Tools • Improved Changes Browser & Merge Tool • Code Assist additions • Monticello importer Copyright © 2011, Instantiations, Inc.
  • 38. Future Releases Candidate Items • Infrastructure • Settings Dialogs to complement Settings Framework • Consolidate most settings using Settings Framework • Logging Framework improvements • Windows Services control moved to Smalltalk • Middleware • DB2 Stored Procedures improvements • GLORP infrastructure improvements • GLORP Programmer’s Reference • Active Records built on GLORP • TCP/IP V6 Copyright © 2011, Instantiations, Inc.
  • 39. Future Releases Candidate Items • Security • “Basic” security framework (consolidate existing OpenSSL wrappers) • “Full” security framework -- OpenSSL 1.0 wrappers • Performance and Scalability • Incremental garbage collection • 64-bit Smalltalk • Class library performance hotspots • Integrate KES/Stats tool for object monitoring Copyright © 2011, Instantiations, Inc.
  • 40. Future Releases Candidate Items • External Interfaces • JNIPort • .NET/C# Other • Installation • Single installer for Client and Manager • Seamless with Windows UAC (User Account Control) • Install/Repair/Uninstall (no manual Registry edit) • Silent installer for Unix • Class Libraries • Collection hashing policies • Collection sorting policies Copyright © 2011, Instantiations, Inc.
  • 41. How Do You Get VA Smalltalk? • Download evaluation copy • http://www.instantiations.com/products/vasmalltalk/download.html • Buy development licenses • http://www.instantiations.com/products/purchase.html • Download development build • Announced in VA Smalltalk Google Group • Be a committer on an Open Source project • http://www.instantiations.com/company/open-source.html • Work for an educational institution • http://www.instantiations.com/products/academic-license- program.html Copyright © 2011, Instantiations, Inc.
  • 42. Contact us • General information • info@instantiations.com • Sales • sales@instantiations.com • Support • support@instantiations.com • Me • john_okeefe@instantiations.com Copyright © 2011, Instantiations, Inc.
  • 43. Backup Copyright © 2011, Instantiations, Inc.
  • 44. Development Tools Code Assist Copyright © 2011, Instantiations, Inc.
  • 45. Development Tools Code Assist Copyright © 2011, Instantiations, Inc.
  • 46. Development Tools Code Assist Copyright © 2011, Instantiations, Inc.
  • 47. Development Tools Code Assist Copyright © 2011, Instantiations, Inc.
  • 48. Development Tools Code Assist Copyright © 2011, Instantiations, Inc.
  • 49. Development Tools Code Assist Copyright © 2011, Instantiations, Inc.