SlideShare a Scribd company logo
1 of 41
Itemscript A declarative language based on JSON
Vision Simple   schema  data store application markup Applications from components De-couple technical details Lean development Business agility
Itemscript is Declarative ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
 
 
Itemscript Philosophy ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Core Configuration User settings
Itemscript is JSON ,[object Object],[object Object],[object Object]
JSON easily maps to native objects ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Extending JSON ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Semantics ,[object Object],[object Object],[object Object]
Itemscript schema Dog Type "com.example.petstore.SCHEMA" : { "Dog" : { "ID name" : "", "weight" : 0, "REQUIRED owner" : "", "breed" : "", "isFixed" : true, } } item of type Dog: "com.example.petstore.dogs.Bella" : { "TYPE" : "com.example.petstore.SCHEMA.Dog", "name" : "Bella", "weight" : 9.2, "owner" : "Vera", "breed" : "Cavalier King Charles", "isFixed" : true } http://itemscript.org/ItemscriptSchema.html
Itemscript JAM {            "widget" : "GWT.Image",            "title" : "Itemscript Logo",            "width" : "100px",            "height" : "100px",            "url" : "./itemscript-logo.jpg"          }
 
Business agility ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Proof of Concept ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
 
Itemscript execution Itemscript Item Lens Item Store Schema JAM Item Store Protocol SQL MQ Cache XML
Itemscript Applications ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],http://www. smallpieces .com
How we built it ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Itemscript System ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
The Item ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Item Lens applications ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Item Lens bootstrap ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Item Store ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Item Store ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Developing Itemscript applications ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Item Hash ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Item Hash Page Nesting
New Case Page Nesting
Editing the Form                    {                                 &quot;widget&quot; : &quot;GWT.VerticalPanel&quot;,                                     &quot;contents&quot; : [                         {                           &quot;widget&quot; : &quot;GWT.Html&quot;,                           &quot;html&quot; : &quot;<small>Priority</small>&quot;                           &quot;id&quot; : &quot;Priority&quot;                         },                         {                          &quot;widget&quot; : &quot;GWT.ListBox&quot;,                          &quot;width&quot; : &quot;200px&quot;,                          &quot;height&quot; : &quot;20px&quot;                          &quot;data&quot; : &quot;ItemHash.db/priorities&quot;                          }                      ]                   }
Item Lens &quot;Can I set the date picker to tomorrow?&quot;
Changing the Date Picker What would the JSON look like? {      &quot;widget&quot; : &quot;ItemLens.DatePickerTextBox&quot;      &quot;width&quot; : &quot;200px&quot;,      &quot;height&quot; : &quot;25px&quot;,     &quot;date&quot; : &quot;tomorrow&quot; }
Changing the Date Picker When the &quot;date&quot; declaration says &quot;tomorrow&quot;,  what logic do we need to add? if  (params.hasOptionalString( &quot;date&quot; )) {      String dateStr = params.getString( &quot;date&quot; );      if  (dateStr.equalsIgnoreCase( &quot;tomorrow&quot; )) {          Date tomorrow =  new  Date( new              Date().getTime()+ DAY_AS_MILLISECONDS );          box.setValue(tomorrow);      } }
Event Handling &quot;Let's make the login box pop up.&quot;
Event Handling What would the JSON look like? {      &quot;widget&quot; : &quot;GWT.Html&quot;         &quot;cellHorizontalAlignment&quot; : &quot;right&quot;         &quot;html&quot; : &quot;<small><b>login</b></small>&quot;         &quot;clickHandlers&quot; : {           &quot;clickHandler&quot; : &quot;ItemLens.PopupPanelShowClickHandler&quot;,           &quot;popup&quot; : &quot;loginPrompt&quot;    } }
Event Handling Implementing a &quot;clickHandler&quot; ,[object Object],Animating &quot;popup&quot; : &quot;loginPrompt&quot; ,[object Object],[object Object],[object Object]
Event Handling &quot;popups&quot;: {      &quot;loginPrompt&quot; : {        &quot;widget&quot; : &quot;GWT.DialogBox&quot;,        &quot;id&quot; : &quot;Login&quot;,        &quot;title&quot; : &quot;user login&quot;,        &quot;showRelativeTo&quot; : &quot;searchbox&quot;,        &quot;width&quot; : &quot;100px&quot;,        &quot;cellHorizontalAlignment&quot; : &quot;center&quot;,        &quot;cellVerticalAlignment&quot; : &quot;bottom&quot;,        &quot;html&quot; : &quot;<strong>User Login</strong>&quot;,        &quot;autohide&quot; : false,        &quot;contents&quot; : {        &quot;widget&quot; : &quot;GWT.VerticalPanel&quot;,        &quot;cellSpacing&quot; : 5        &quot;contents&quot; : [                ...
Adding Widget Libraries ,[object Object],{    &quot;widget&quot;  :  &quot;GChart.Chart&quot; ,    &quot;canvas&quot;  :  true ,    &quot;chartHeight&quot;  : 200,    &quot;chartWidth&quot;  : 300,    &quot;chartTitle&quot;  :  &quot;&lt;h3&gt;2008 Sales by Pie    Flavor&lt;br&gt;(Puny Pies, Inc.) &lt;/h3&gt;&quot; ,    &quot;legendVisible&quot;  :  false ,    &quot;initialPieSliceOrientation&quot;  : 0.425,    &quot;curves&quot;  : [       {        &quot;symbol&quot;  :  &quot;pieSliceOptimalShading&quot; ,        &quot;modelWidth&quot;  : 6,        &quot;backgroundColor&quot;  :  &quot;green&quot; ,        &quot;borderColor&quot;  :  &quot;white&quot; ,        &quot;height&quot;  : 0,        &quot;fillSpacing&quot;  : 0,        &quot;fillThickness&quot;  : 3,        &quot;hoverText&quot;  :  &quot;Apple, 65%&quot; ,        &quot;pieSliceSize&quot;  : 0.65,        &quot;points&quot;  : [          {            &quot;point&quot;  :  &quot;5,5&quot; ,            &quot;annotationText&quot;  :  &quot;Apple&quot; ,            &quot;annotationLocation&quot;  :  &quot;outsidePieArc&quot;          }          ... ,[object Object],[object Object]
Downloads ,[object Object],[object Object],[object Object],[object Object],[object Object]
What's Next? ,[object Object],[object Object],[object Object],[object Object],[object Object]
Working with Itemscript Project pages http://itemscript.org http://code.google.com/p/itemscript/ Twitter updates http://twitter.com/itemscript FAQ http://code.google.com/p/itemscript/wiki/itemscriptfaq

More Related Content

What's hot

Introduction to SharePoint 2013 REST API
Introduction to SharePoint 2013 REST APIIntroduction to SharePoint 2013 REST API
Introduction to SharePoint 2013 REST APIQUONTRASOLUTIONS
 
Introducing AWS AppSync: serverless data driven apps with real-time and offli...
Introducing AWS AppSync: serverless data driven apps with real-time and offli...Introducing AWS AppSync: serverless data driven apps with real-time and offli...
Introducing AWS AppSync: serverless data driven apps with real-time and offli...Amazon Web Services
 
2005 - .NET Chaostage: 1st class data driven applications with ASP.NET 2.0
2005 - .NET Chaostage: 1st class data driven applications with ASP.NET 2.02005 - .NET Chaostage: 1st class data driven applications with ASP.NET 2.0
2005 - .NET Chaostage: 1st class data driven applications with ASP.NET 2.0Daniel Fisher
 
Asp.Net The Data List Control
Asp.Net   The Data List ControlAsp.Net   The Data List Control
Asp.Net The Data List ControlRam Sagar Mourya
 
Search engine optimization (seo) from Endeca & ATG
Search engine optimization (seo) from Endeca & ATGSearch engine optimization (seo) from Endeca & ATG
Search engine optimization (seo) from Endeca & ATGVignesh sitaraman
 
Are you getting Sleepy. REST in SharePoint Apps
Are you getting Sleepy. REST in SharePoint AppsAre you getting Sleepy. REST in SharePoint Apps
Are you getting Sleepy. REST in SharePoint AppsLiam Cleary [MVP]
 
Making connected apps with BaaS (Droidcon Bangalore 2014)
Making connected apps with BaaS (Droidcon Bangalore 2014)Making connected apps with BaaS (Droidcon Bangalore 2014)
Making connected apps with BaaS (Droidcon Bangalore 2014)Varun Torka
 
Polymer 3.0 by Michele Gallotti
Polymer 3.0 by Michele GallottiPolymer 3.0 by Michele Gallotti
Polymer 3.0 by Michele GallottiThinkOpen
 
Data Synchronization Patterns in Mobile Application Design
Data Synchronization Patterns in Mobile Application DesignData Synchronization Patterns in Mobile Application Design
Data Synchronization Patterns in Mobile Application DesignEric Maxwell
 
SQL for Web APIs - Simplifying Data Access for API Consumers
SQL for Web APIs - Simplifying Data Access for API ConsumersSQL for Web APIs - Simplifying Data Access for API Consumers
SQL for Web APIs - Simplifying Data Access for API ConsumersJerod Johnson
 
Accelerating distributed joins in Apache Hive: Runtime filtering enhancements
Accelerating distributed joins in Apache Hive: Runtime filtering enhancementsAccelerating distributed joins in Apache Hive: Runtime filtering enhancements
Accelerating distributed joins in Apache Hive: Runtime filtering enhancementsPanagiotis Garefalakis
 
AppSync.org: open-source patterns and code for data synchronization in mobile...
AppSync.org: open-source patterns and code for data synchronization in mobile...AppSync.org: open-source patterns and code for data synchronization in mobile...
AppSync.org: open-source patterns and code for data synchronization in mobile...Niko Nelissen
 
Learning How to Shape and Configure an OData Service for High Performing Web ...
Learning How to Shape and Configure an OData Service for High Performing Web ...Learning How to Shape and Configure an OData Service for High Performing Web ...
Learning How to Shape and Configure an OData Service for High Performing Web ...Woodruff Solutions LLC
 
Learning How to Shape and Configure an OData Feed for High Performing Web Sit...
Learning How to Shape and Configure an OData Feed for High Performing Web Sit...Learning How to Shape and Configure an OData Feed for High Performing Web Sit...
Learning How to Shape and Configure an OData Feed for High Performing Web Sit...Woodruff Solutions LLC
 
Gaining the Knowledge of the Open Data Protocol (OData)
Gaining the Knowledge of the Open Data Protocol (OData)Gaining the Knowledge of the Open Data Protocol (OData)
Gaining the Knowledge of the Open Data Protocol (OData)Woodruff Solutions LLC
 
asp.net data controls
asp.net data controlsasp.net data controls
asp.net data controlssubakrish
 
Taking Apex and Visualforce Above and Beyond
Taking Apex and Visualforce Above and BeyondTaking Apex and Visualforce Above and Beyond
Taking Apex and Visualforce Above and BeyondSalesforce Developers
 

What's hot (20)

Introduction to SharePoint 2013 REST API
Introduction to SharePoint 2013 REST APIIntroduction to SharePoint 2013 REST API
Introduction to SharePoint 2013 REST API
 
B_110500002
B_110500002B_110500002
B_110500002
 
Introducing AWS AppSync: serverless data driven apps with real-time and offli...
Introducing AWS AppSync: serverless data driven apps with real-time and offli...Introducing AWS AppSync: serverless data driven apps with real-time and offli...
Introducing AWS AppSync: serverless data driven apps with real-time and offli...
 
2005 - .NET Chaostage: 1st class data driven applications with ASP.NET 2.0
2005 - .NET Chaostage: 1st class data driven applications with ASP.NET 2.02005 - .NET Chaostage: 1st class data driven applications with ASP.NET 2.0
2005 - .NET Chaostage: 1st class data driven applications with ASP.NET 2.0
 
Asp.Net The Data List Control
Asp.Net   The Data List ControlAsp.Net   The Data List Control
Asp.Net The Data List Control
 
Search engine optimization (seo) from Endeca & ATG
Search engine optimization (seo) from Endeca & ATGSearch engine optimization (seo) from Endeca & ATG
Search engine optimization (seo) from Endeca & ATG
 
Are you getting Sleepy. REST in SharePoint Apps
Are you getting Sleepy. REST in SharePoint AppsAre you getting Sleepy. REST in SharePoint Apps
Are you getting Sleepy. REST in SharePoint Apps
 
Making connected apps with BaaS (Droidcon Bangalore 2014)
Making connected apps with BaaS (Droidcon Bangalore 2014)Making connected apps with BaaS (Droidcon Bangalore 2014)
Making connected apps with BaaS (Droidcon Bangalore 2014)
 
Polymer 3.0 by Michele Gallotti
Polymer 3.0 by Michele GallottiPolymer 3.0 by Michele Gallotti
Polymer 3.0 by Michele Gallotti
 
Data Synchronization Patterns in Mobile Application Design
Data Synchronization Patterns in Mobile Application DesignData Synchronization Patterns in Mobile Application Design
Data Synchronization Patterns in Mobile Application Design
 
SQL for Web APIs - Simplifying Data Access for API Consumers
SQL for Web APIs - Simplifying Data Access for API ConsumersSQL for Web APIs - Simplifying Data Access for API Consumers
SQL for Web APIs - Simplifying Data Access for API Consumers
 
Accelerating distributed joins in Apache Hive: Runtime filtering enhancements
Accelerating distributed joins in Apache Hive: Runtime filtering enhancementsAccelerating distributed joins in Apache Hive: Runtime filtering enhancements
Accelerating distributed joins in Apache Hive: Runtime filtering enhancements
 
Rego Deep Dive
Rego Deep DiveRego Deep Dive
Rego Deep Dive
 
AppSync.org: open-source patterns and code for data synchronization in mobile...
AppSync.org: open-source patterns and code for data synchronization in mobile...AppSync.org: open-source patterns and code for data synchronization in mobile...
AppSync.org: open-source patterns and code for data synchronization in mobile...
 
Learning How to Shape and Configure an OData Service for High Performing Web ...
Learning How to Shape and Configure an OData Service for High Performing Web ...Learning How to Shape and Configure an OData Service for High Performing Web ...
Learning How to Shape and Configure an OData Service for High Performing Web ...
 
Learning How to Shape and Configure an OData Feed for High Performing Web Sit...
Learning How to Shape and Configure an OData Feed for High Performing Web Sit...Learning How to Shape and Configure an OData Feed for High Performing Web Sit...
Learning How to Shape and Configure an OData Feed for High Performing Web Sit...
 
Gaining the Knowledge of the Open Data Protocol (OData)
Gaining the Knowledge of the Open Data Protocol (OData)Gaining the Knowledge of the Open Data Protocol (OData)
Gaining the Knowledge of the Open Data Protocol (OData)
 
asp.net data controls
asp.net data controlsasp.net data controls
asp.net data controls
 
JavaEE Spring Seam
JavaEE Spring SeamJavaEE Spring Seam
JavaEE Spring Seam
 
Taking Apex and Visualforce Above and Beyond
Taking Apex and Visualforce Above and BeyondTaking Apex and Visualforce Above and Beyond
Taking Apex and Visualforce Above and Beyond
 

Similar to Itemscript, a specification for RESTful JSON integration

Boston Computing Review - Java Server Pages
Boston Computing Review - Java Server PagesBoston Computing Review - Java Server Pages
Boston Computing Review - Java Server PagesJohn Brunswick
 
Building AOL's High Performance, Enterprise Wide Mail Application With Silver...
Building AOL's High Performance, Enterprise Wide Mail Application With Silver...Building AOL's High Performance, Enterprise Wide Mail Application With Silver...
Building AOL's High Performance, Enterprise Wide Mail Application With Silver...goodfriday
 
Ellerslie User Group - ReST Presentation
Ellerslie User Group - ReST PresentationEllerslie User Group - ReST Presentation
Ellerslie User Group - ReST PresentationAlex Henderson
 
CiklumJavaSat_15112011:Alex Kruk VMForce
CiklumJavaSat_15112011:Alex Kruk VMForceCiklumJavaSat_15112011:Alex Kruk VMForce
CiklumJavaSat_15112011:Alex Kruk VMForceCiklum Ukraine
 
Introducing Struts 2
Introducing Struts 2Introducing Struts 2
Introducing Struts 2wiradikusuma
 
Why Java Needs Hierarchical Data
Why Java Needs Hierarchical DataWhy Java Needs Hierarchical Data
Why Java Needs Hierarchical DataMarakana Inc.
 
Create a mobile web app with Sencha Touch
Create a mobile web app with Sencha TouchCreate a mobile web app with Sencha Touch
Create a mobile web app with Sencha TouchJames Pearce
 
CTS Conference Web 2.0 Tutorial Part 2
CTS Conference Web 2.0 Tutorial Part 2CTS Conference Web 2.0 Tutorial Part 2
CTS Conference Web 2.0 Tutorial Part 2Geoffrey Fox
 
Migration testing framework
Migration testing frameworkMigration testing framework
Migration testing frameworkIndicThreads
 
Advanced Web Development
Advanced Web DevelopmentAdvanced Web Development
Advanced Web DevelopmentRobert J. Stein
 
IBM Lotus Notes Domino XPages and XPages for Mobile
IBM Lotus Notes Domino XPages and XPages for MobileIBM Lotus Notes Domino XPages and XPages for Mobile
IBM Lotus Notes Domino XPages and XPages for MobileChris Toohey
 
HTML5 and web technology update
HTML5 and web technology updateHTML5 and web technology update
HTML5 and web technology updateDoug Domeny
 
OpenSocial Intro
OpenSocial IntroOpenSocial Intro
OpenSocial IntroPamela Fox
 
A mobile web app for Android in 75 minutes
A mobile web app for Android in 75 minutesA mobile web app for Android in 75 minutes
A mobile web app for Android in 75 minutesJames Pearce
 
Javascript Templating
Javascript TemplatingJavascript Templating
Javascript Templatingbcruhl
 

Similar to Itemscript, a specification for RESTful JSON integration (20)

I Feel Pretty
I Feel PrettyI Feel Pretty
I Feel Pretty
 
Boston Computing Review - Java Server Pages
Boston Computing Review - Java Server PagesBoston Computing Review - Java Server Pages
Boston Computing Review - Java Server Pages
 
Building AOL's High Performance, Enterprise Wide Mail Application With Silver...
Building AOL's High Performance, Enterprise Wide Mail Application With Silver...Building AOL's High Performance, Enterprise Wide Mail Application With Silver...
Building AOL's High Performance, Enterprise Wide Mail Application With Silver...
 
Javascript
JavascriptJavascript
Javascript
 
REST dojo Comet
REST dojo CometREST dojo Comet
REST dojo Comet
 
HTML5
HTML5HTML5
HTML5
 
Ellerslie User Group - ReST Presentation
Ellerslie User Group - ReST PresentationEllerslie User Group - ReST Presentation
Ellerslie User Group - ReST Presentation
 
CiklumJavaSat_15112011:Alex Kruk VMForce
CiklumJavaSat_15112011:Alex Kruk VMForceCiklumJavaSat_15112011:Alex Kruk VMForce
CiklumJavaSat_15112011:Alex Kruk VMForce
 
Introducing Struts 2
Introducing Struts 2Introducing Struts 2
Introducing Struts 2
 
Wpf Introduction
Wpf IntroductionWpf Introduction
Wpf Introduction
 
Why Java Needs Hierarchical Data
Why Java Needs Hierarchical DataWhy Java Needs Hierarchical Data
Why Java Needs Hierarchical Data
 
Create a mobile web app with Sencha Touch
Create a mobile web app with Sencha TouchCreate a mobile web app with Sencha Touch
Create a mobile web app with Sencha Touch
 
CTS Conference Web 2.0 Tutorial Part 2
CTS Conference Web 2.0 Tutorial Part 2CTS Conference Web 2.0 Tutorial Part 2
CTS Conference Web 2.0 Tutorial Part 2
 
Migration testing framework
Migration testing frameworkMigration testing framework
Migration testing framework
 
Advanced Web Development
Advanced Web DevelopmentAdvanced Web Development
Advanced Web Development
 
IBM Lotus Notes Domino XPages and XPages for Mobile
IBM Lotus Notes Domino XPages and XPages for MobileIBM Lotus Notes Domino XPages and XPages for Mobile
IBM Lotus Notes Domino XPages and XPages for Mobile
 
HTML5 and web technology update
HTML5 and web technology updateHTML5 and web technology update
HTML5 and web technology update
 
OpenSocial Intro
OpenSocial IntroOpenSocial Intro
OpenSocial Intro
 
A mobile web app for Android in 75 minutes
A mobile web app for Android in 75 minutesA mobile web app for Android in 75 minutes
A mobile web app for Android in 75 minutes
 
Javascript Templating
Javascript TemplatingJavascript Templating
Javascript Templating
 

Recently uploaded

Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 

Recently uploaded (20)

Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 

Itemscript, a specification for RESTful JSON integration

  • 1. Itemscript A declarative language based on JSON
  • 2. Vision Simple schema  data store application markup Applications from components De-couple technical details Lean development Business agility
  • 3.
  • 4.  
  • 5.  
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11. Itemscript schema Dog Type &quot;com.example.petstore.SCHEMA&quot; : { &quot;Dog&quot; : { &quot;ID name&quot; : &quot;&quot;, &quot;weight&quot; : 0, &quot;REQUIRED owner&quot; : &quot;&quot;, &quot;breed&quot; : &quot;&quot;, &quot;isFixed&quot; : true, } } item of type Dog: &quot;com.example.petstore.dogs.Bella&quot; : { &quot;TYPE&quot; : &quot;com.example.petstore.SCHEMA.Dog&quot;, &quot;name&quot; : &quot;Bella&quot;, &quot;weight&quot; : 9.2, &quot;owner&quot; : &quot;Vera&quot;, &quot;breed&quot; : &quot;Cavalier King Charles&quot;, &quot;isFixed&quot; : true } http://itemscript.org/ItemscriptSchema.html
  • 12. Itemscript JAM {            &quot;widget&quot; : &quot;GWT.Image&quot;,            &quot;title&quot; : &quot;Itemscript Logo&quot;,            &quot;width&quot; : &quot;100px&quot;,            &quot;height&quot; : &quot;100px&quot;,            &quot;url&quot; : &quot;./itemscript-logo.jpg&quot;          }
  • 13.  
  • 14.
  • 15.
  • 16.  
  • 17. Itemscript execution Itemscript Item Lens Item Store Schema JAM Item Store Protocol SQL MQ Cache XML
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28. Item Hash Page Nesting
  • 29. New Case Page Nesting
  • 30. Editing the Form                   {                                &quot;widget&quot; : &quot;GWT.VerticalPanel&quot;,                                    &quot;contents&quot; : [                         {                           &quot;widget&quot; : &quot;GWT.Html&quot;,                           &quot;html&quot; : &quot;<small>Priority</small>&quot;                           &quot;id&quot; : &quot;Priority&quot;                         },                         {                          &quot;widget&quot; : &quot;GWT.ListBox&quot;,                          &quot;width&quot; : &quot;200px&quot;,                          &quot;height&quot; : &quot;20px&quot;                          &quot;data&quot; : &quot;ItemHash.db/priorities&quot;                         }                      ]                   }
  • 31. Item Lens &quot;Can I set the date picker to tomorrow?&quot;
  • 32. Changing the Date Picker What would the JSON look like? {      &quot;widget&quot; : &quot;ItemLens.DatePickerTextBox&quot;      &quot;width&quot; : &quot;200px&quot;,      &quot;height&quot; : &quot;25px&quot;,    &quot;date&quot; : &quot;tomorrow&quot; }
  • 33. Changing the Date Picker When the &quot;date&quot; declaration says &quot;tomorrow&quot;, what logic do we need to add? if (params.hasOptionalString( &quot;date&quot; )) {      String dateStr = params.getString( &quot;date&quot; );      if (dateStr.equalsIgnoreCase( &quot;tomorrow&quot; )) {          Date tomorrow = new Date( new              Date().getTime()+ DAY_AS_MILLISECONDS );          box.setValue(tomorrow);      } }
  • 34. Event Handling &quot;Let's make the login box pop up.&quot;
  • 35. Event Handling What would the JSON look like? {      &quot;widget&quot; : &quot;GWT.Html&quot;        &quot;cellHorizontalAlignment&quot; : &quot;right&quot;        &quot;html&quot; : &quot;<small><b>login</b></small>&quot;        &quot;clickHandlers&quot; : {          &quot;clickHandler&quot; : &quot;ItemLens.PopupPanelShowClickHandler&quot;,          &quot;popup&quot; : &quot;loginPrompt&quot;    } }
  • 36.
  • 37. Event Handling &quot;popups&quot;: {     &quot;loginPrompt&quot; : {       &quot;widget&quot; : &quot;GWT.DialogBox&quot;,       &quot;id&quot; : &quot;Login&quot;,       &quot;title&quot; : &quot;user login&quot;,       &quot;showRelativeTo&quot; : &quot;searchbox&quot;,       &quot;width&quot; : &quot;100px&quot;,       &quot;cellHorizontalAlignment&quot; : &quot;center&quot;,       &quot;cellVerticalAlignment&quot; : &quot;bottom&quot;,       &quot;html&quot; : &quot;<strong>User Login</strong>&quot;,       &quot;autohide&quot; : false,       &quot;contents&quot; : {       &quot;widget&quot; : &quot;GWT.VerticalPanel&quot;,       &quot;cellSpacing&quot; : 5       &quot;contents&quot; : [                ...
  • 38.
  • 39.
  • 40.
  • 41. Working with Itemscript Project pages http://itemscript.org http://code.google.com/p/itemscript/ Twitter updates http://twitter.com/itemscript FAQ http://code.google.com/p/itemscript/wiki/itemscriptfaq