SlideShare une entreprise Scribd logo
1  sur  49
Télécharger pour lire hors ligne
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.

Contenu connexe

Tendances

Android Library Projects
Android Library ProjectsAndroid Library Projects
Android Library ProjectsCommonsWare
 
Kitware: Qt and Scientific Computing
Kitware: Qt and Scientific ComputingKitware: Qt and Scientific Computing
Kitware: Qt and Scientific Computingaccount inactive
 
Velocity-EHF for Android
Velocity-EHF for AndroidVelocity-EHF for Android
Velocity-EHF for Androidmichaeljfawcett
 
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 GroovyPaul King
 
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 SourceIBM WebSphereIndia
 
Enterprise OSGi at eBay
Enterprise OSGi at eBayEnterprise OSGi at eBay
Enterprise OSGi at eBayTony Ng
 

Tendances (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
 

En vedette

Building the VM
Building the VMBuilding the VM
Building the VMESUG
 
VW Object Memory Management
VW Object Memory ManagementVW Object Memory Management
VW Object Memory ManagementESUG
 
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 AnalysisESUG
 
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 ASTsESUG
 
Mock Objects and Smalltalk
Mock Objects and SmalltalkMock Objects and Smalltalk
Mock Objects and SmalltalkESUG
 
Smalltalk on the JVM
Smalltalk on the JVMSmalltalk on the JVM
Smalltalk on the JVMESUG
 
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
 

En vedette (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
 

Similaire à VA Smalltalk Update

VA Smalltalk Update
VA Smalltalk UpdateVA Smalltalk Update
VA Smalltalk UpdateESUG
 
VA Smalltalk Update ESUG2014
VA Smalltalk Update ESUG2014VA Smalltalk Update ESUG2014
VA Smalltalk Update ESUG2014ESUG
 
VA Smalltalk Update
VA Smalltalk UpdateVA Smalltalk Update
VA Smalltalk UpdateESUG
 
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 EastAyman El-Hattab
 
Turmeric SOA Introduction
Turmeric SOA IntroductionTurmeric SOA Introduction
Turmeric SOA Introductionkingargyle
 
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, 2018AgileNetwork
 
Mantis Code Deployment Process
Mantis Code Deployment ProcessMantis Code Deployment Process
Mantis Code Deployment ProcessJen Wei Lee
 
Version Control, Writers, and Workflows
Version Control, Writers, and WorkflowsVersion Control, Writers, and Workflows
Version Control, Writers, and Workflowsstc-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
 
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 SolutionsJeff Potts
 

Similaire à 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
 

Plus de 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 programmingESUG
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in PharoESUG
 
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 RoadmapESUG
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoESUG
 
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 resultsESUG
 
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 6ESUG
 
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 GenerationESUG
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingESUG
 
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 ModesESUG
 
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 ReportESUG
 
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 APIsESUG
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector TuningESUG
 
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 CaseESUG
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FutureESUG
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the DebuggerESUG
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing ScoreESUG
 
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 JavaScriptESUG
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocESUG
 
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 TransformationsESUG
 

Plus de 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
 

Dernier

A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 

Dernier (20)

A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 

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.