SlideShare a Scribd company logo
1 of 95
Download to read offline
Portability in Seaside
   NYC Smalltalk
 December 10, 2009
Julian Fitzell


Co-creator of Seaside
Independent consultant
694 classes
6844 methods
Platforms
External Interface Support
                  XML Support enables XML–Smalltalk object
                  mapping, includes a server interface via XML
                  request handlers and reading of remote resources
 B disk           via TCP sockets using HTTP requests
                  OLE Support enables an application to use OLE
                  clients and custom control services.
                  Domino Connection allows an application to
                  retrieve and work with Domino documents as well
                  as access Notes mail system.




                    Download a risk-free trial copy:
                www.instantiations.com/VAST/download




m/VAST
                                                   Build Quality Software

 l other trademarks mentioned are the property of their respective owners.
Portability



Photo: Alexia´s, flickr.com
Goals

Create consistent experience
Minimize platform changes
Isolate platform changes
Ease code updates (in both directions!)
Namespacing:

  WAObject
 #seasideUrl
Syntax



Photo: pipp, sxc.hu
n o
  Underscore
  Assignments

      a_1
      b←2
n o
  Brace Arrays

      { 1. 2. 1 + 2 }
n o
Array Constructors

 #[ ‘string’, 123, Object new ]
n o
  Byte Arrays

      #[ 1 2 3 ]
n o
 Variable Bindings

   {Smalltalk.Object}
n o
 Selection Blocks

   {:i | i.is.permanent}
o k   Pragma

  <javascript: 1.5>
ANSI



       Photo: njd89, sxc.hu
ANSI Protocols
Object, Character, Boolean, nil, etc.
Block
Exception
Numeric
Collection
Date and Time
Stream
Exceptions



Photo: ingythewingy, flickr.com
Exception Protocols

 #signal, #signal:, ...
 #on:do:, #ensure:, #ifCurtailed:
 #defaultAction, #isResumable
 #pass, #outer, #retry, #resume
 Warning, Error, Notification, ZeroDivide, ...
n o
[ ... ]
 on: Error
 do: [ ... ]
y e s
[ ... ]
 on: Error
 do: [ |err| ... ]
n o
 #defaultAction
       +
 non-resumable
   exceptions
“The exact behavior and
  result of this method is
implementation defined.”
Unless the exception is resumable,
“the action taken upon completion
  of the #defaultAction method is
      implementation defined”
n o
MyException signal
Collections




Photo: ijsendoorn,sxc.hu
Collection Protocols

 Array, Set, OrderedCollection, Interval, ...
 #do:, #collect:, #select:, #reject:, #detect:, ...
 #includes:, #isEmpty, anySatisfy:, ...
 #asSet, #asOrderedCollection, ...
 #at:put:, #at:ifAbsent:, #removeKey:, ...
n o
 Collection>>#=
n o
 #withIndexDo:
y e s
 #keysAndValuesDo:
n o
  #pairsDo:
y e s
1
    to: aCollection size
    by: 2 do: [ :i | ... ]
Strings




Photo: Lynne Lancaster, sxc.hu
n o
 Symbol is a String
n o
      #match:
n o
 Object>>#asString
n o
 #displayString
n o
 Non-ASCII Strings
Streams




Photo: Lynne Lancaster, sxc.hu
Stream Protocols

ReadStream, WriteStream,
ReadWriteStream
#close, #isEmpty, #position, #reset, ...
#do:, #next, #peek, #upTo:, ...
#cr, #nextPut:, #nextPutAll:, ...
n o
 #next, at the end
   of a stream
y e s
 Check #atEnd first
n o
  #position
  #position:
Times
                        and
                      Dates




Photo: inya, sxc.hu
y e s
  DateAndTime
       +
    Duration
n o
  TimeStamp
k in d a

           Time
s o r ta

           Date
Cross-Platform Behaviour


        Consistent
        Conflicting
         Missing
Unit
               Slime       Grease
 Tests


Consistent    Conflicting   Missing

  Use it!      Avoid it!   Add it!
 (Test it!)
Unit Tests




Photo: shadowkill, sxc.hu
Done?
Unit Tests



150
                                                   131




                        44            44

          20

  0
      Seaside 2.5   Seaside 2.6   Seaside 2.7   Seaside 2.8   Seaside 3.0
Unit Tests
1,200




                     1,115




1,050
Slime
  Lint Tests
for Seaside




               Photo: A Syed, sxc.hu
Rules to detect
Portability Issues
a _ 1.

b := { a + 2. 3 }.

c pairsDo: [ :a :b | a raisedTo: b ]
a _ 1.

b := { a + 2. 3 }.

c pairsDo: [ :a :b | a raisedTo: b ]
a _ 1.

b := { a + 2. 3 }.

c pairsDo: [ :a :b | a raisedTo: b ]
a _ 1.

b := { a + 2. 3 }.

c pairsDo: [ :a :b | a raisedTo: b ]
Rules to detect
 Seaside Bugs
html div
  with: ‘Hello World’;
  id: ‘message’.

html updater
  id: ‘message’;
  callback: [ :r | html text: ‘Bye’ ]
html div
  with: ‘Hello World’;
  id: ‘message’.

html updater
  id: ‘message’;
  callback: [ :r | html text: ‘Bye’ ]
html div
  with: ‘Hello World’;
  id: ‘message’.

html updater
  id: ‘message’;
  callback: [ :r | html text: ‘Bye’ ]
Grease
   Platform
Compatibility
      Layer




                Photo: DarkSide, sxc.hu
Pragmatic
Minimal
Unit Tested
ANSI++
Grease Features

Consistent object initialization
Consistent exception signalling
Common convenience methods
Platform-dependent behaviour
Unit tests
y e s
GRObject class>>#new
	 ^ self basicNew initialize
y e s
GRError class>>#signal

 “VW implementation”
	 ^ self raiseSignal
y e s
Object>>#greaseString

 “Squeak implementation”
	 ^ self asString
y e s#trimLeft
    #upToLast:
       #ifNil:
   #isCollection
y e s
GRPlatform current
	 base64Decode: 'aGk='.
GRPlatform current
	 addToStartupList: SomeClass.
GRPlatform current
	 openDebuggerOn: anException.
Packaging

                                ↑

                                SUnit




Photo: Tory Byrne, www.sxc.hu
73 Packages
Common

Seaside-Core
Platform-Specific

Seaside-Pharo-Core
Test

   Seaside-Tests-Core
Seaside-Tests-Pharo-Core
BON US!



  Find incorrect layer
     dependencies
Monticello
Monticello

Declarative modeling
Distributed repositories
Optimistic code merging
Vendor round-tripping
Monticello

☹   Slow with large repositories
☹   Inconvenient with many packages
☹   Awkward when renaming and moving
    between packages
Future?
Metacello

Declare and load package configurations
Express dependencies on other projects
Easily upgrade to newest versions
Mason


Automate build process
Run tests for each package + dependencies
Monticello2

Faster
Per-method version history
Better interface for projects with many
packages
Easier to port? (uses Grease)
book.seaside.st
Summary
Write tests!
Avoid extended syntax
Use ANSI where possible
Package out platform-specific code
Slime/Lint for what you can’t use, Grease for
what you can
www.seaside.st
  blog.fitzell.ca
jfitzell@gmail.com

More Related Content

What's hot

Distributed Consensus A.K.A. "What do we eat for lunch?"
Distributed Consensus A.K.A. "What do we eat for lunch?"Distributed Consensus A.K.A. "What do we eat for lunch?"
Distributed Consensus A.K.A. "What do we eat for lunch?"Konrad Malawski
 
Automatic Sound Signals Quality Estimation Integration
Automatic Sound Signals Quality Estimation IntegrationAutomatic Sound Signals Quality Estimation Integration
Automatic Sound Signals Quality Estimation Integrationwillemvandrunen
 
An introduction to Rust: the modern programming language to develop safe and ...
An introduction to Rust: the modern programming language to develop safe and ...An introduction to Rust: the modern programming language to develop safe and ...
An introduction to Rust: the modern programming language to develop safe and ...Claudio Capobianco
 
不深不淺,帶你認識 LLVM (Found LLVM in your life)
不深不淺,帶你認識 LLVM (Found LLVM in your life)不深不淺,帶你認識 LLVM (Found LLVM in your life)
不深不淺,帶你認識 LLVM (Found LLVM in your life)Douglas Chen
 
securing_syslog_onFreeBSD
securing_syslog_onFreeBSDsecuring_syslog_onFreeBSD
securing_syslog_onFreeBSDwebuploader
 
From Zero to Application Delivery with NixOS
From Zero to Application Delivery with NixOSFrom Zero to Application Delivery with NixOS
From Zero to Application Delivery with NixOSSusan Potter
 
Kubernetes Scheduler deep dive
Kubernetes Scheduler deep diveKubernetes Scheduler deep dive
Kubernetes Scheduler deep diveDONGJIN KIM
 
Embedded Rust – Rust on IoT devices
Embedded Rust – Rust on IoT devicesEmbedded Rust – Rust on IoT devices
Embedded Rust – Rust on IoT devicesLars Gregori
 
Natural Language Toolkit (NLTK), Basics
Natural Language Toolkit (NLTK), Basics Natural Language Toolkit (NLTK), Basics
Natural Language Toolkit (NLTK), Basics Prakash Pimpale
 
[COSCUP 2021] A trip about how I contribute to LLVM
[COSCUP 2021] A trip about how I contribute to LLVM[COSCUP 2021] A trip about how I contribute to LLVM
[COSCUP 2021] A trip about how I contribute to LLVMDouglas Chen
 
Java Hates Linux. Deal With It.
Java Hates Linux.  Deal With It.Java Hates Linux.  Deal With It.
Java Hates Linux. Deal With It.Greg Banks
 
Programming The Arduino Due in Rust
Programming The Arduino Due in RustProgramming The Arduino Due in Rust
Programming The Arduino Due in Rustkellogh
 
Functional Operations (Functional Programming at Comcast Labs Connect)
Functional Operations (Functional Programming at Comcast Labs Connect)Functional Operations (Functional Programming at Comcast Labs Connect)
Functional Operations (Functional Programming at Comcast Labs Connect)Susan Potter
 
Drone CI/CD 自動化測試及部署
Drone CI/CD 自動化測試及部署Drone CI/CD 自動化測試及部署
Drone CI/CD 自動化測試及部署Bo-Yi Wu
 
Intro to Rust from Applicative / NY Meetup
Intro to Rust from Applicative / NY MeetupIntro to Rust from Applicative / NY Meetup
Intro to Rust from Applicative / NY Meetupnikomatsakis
 

What's hot (18)

Distributed Consensus A.K.A. "What do we eat for lunch?"
Distributed Consensus A.K.A. "What do we eat for lunch?"Distributed Consensus A.K.A. "What do we eat for lunch?"
Distributed Consensus A.K.A. "What do we eat for lunch?"
 
Automatic Sound Signals Quality Estimation Integration
Automatic Sound Signals Quality Estimation IntegrationAutomatic Sound Signals Quality Estimation Integration
Automatic Sound Signals Quality Estimation Integration
 
An introduction to Rust: the modern programming language to develop safe and ...
An introduction to Rust: the modern programming language to develop safe and ...An introduction to Rust: the modern programming language to develop safe and ...
An introduction to Rust: the modern programming language to develop safe and ...
 
不深不淺,帶你認識 LLVM (Found LLVM in your life)
不深不淺,帶你認識 LLVM (Found LLVM in your life)不深不淺,帶你認識 LLVM (Found LLVM in your life)
不深不淺,帶你認識 LLVM (Found LLVM in your life)
 
securing_syslog_onFreeBSD
securing_syslog_onFreeBSDsecuring_syslog_onFreeBSD
securing_syslog_onFreeBSD
 
From Zero to Application Delivery with NixOS
From Zero to Application Delivery with NixOSFrom Zero to Application Delivery with NixOS
From Zero to Application Delivery with NixOS
 
Kubernetes
KubernetesKubernetes
Kubernetes
 
Kubernetes Scheduler deep dive
Kubernetes Scheduler deep diveKubernetes Scheduler deep dive
Kubernetes Scheduler deep dive
 
Embedded Rust – Rust on IoT devices
Embedded Rust – Rust on IoT devicesEmbedded Rust – Rust on IoT devices
Embedded Rust – Rust on IoT devices
 
Natural Language Toolkit (NLTK), Basics
Natural Language Toolkit (NLTK), Basics Natural Language Toolkit (NLTK), Basics
Natural Language Toolkit (NLTK), Basics
 
[COSCUP 2021] A trip about how I contribute to LLVM
[COSCUP 2021] A trip about how I contribute to LLVM[COSCUP 2021] A trip about how I contribute to LLVM
[COSCUP 2021] A trip about how I contribute to LLVM
 
Java Hates Linux. Deal With It.
Java Hates Linux.  Deal With It.Java Hates Linux.  Deal With It.
Java Hates Linux. Deal With It.
 
Bleeding secrets
Bleeding secretsBleeding secrets
Bleeding secrets
 
Programming The Arduino Due in Rust
Programming The Arduino Due in RustProgramming The Arduino Due in Rust
Programming The Arduino Due in Rust
 
Functional Operations (Functional Programming at Comcast Labs Connect)
Functional Operations (Functional Programming at Comcast Labs Connect)Functional Operations (Functional Programming at Comcast Labs Connect)
Functional Operations (Functional Programming at Comcast Labs Connect)
 
Drone CI/CD 自動化測試及部署
Drone CI/CD 自動化測試及部署Drone CI/CD 自動化測試及部署
Drone CI/CD 自動化測試及部署
 
NLTK in 20 minutes
NLTK in 20 minutesNLTK in 20 minutes
NLTK in 20 minutes
 
Intro to Rust from Applicative / NY Meetup
Intro to Rust from Applicative / NY MeetupIntro to Rust from Applicative / NY Meetup
Intro to Rust from Applicative / NY Meetup
 

Viewers also liked

Seaside - Why should you care? (Dynamic Stockholm 2010)
Seaside - Why should you care? (Dynamic Stockholm 2010)Seaside - Why should you care? (Dynamic Stockholm 2010)
Seaside - Why should you care? (Dynamic Stockholm 2010)jfitzell
 
Oração do arcanjo miguel para limpeza espiritual em 21 dias
Oração do arcanjo miguel para limpeza espiritual em 21 diasOração do arcanjo miguel para limpeza espiritual em 21 dias
Oração do arcanjo miguel para limpeza espiritual em 21 diasCarla Martins
 
ChannelStream: The challenges of continuously delivering
ChannelStream: The challenges of continuously deliveringChannelStream: The challenges of continuously delivering
ChannelStream: The challenges of continuously deliveringjfitzell
 
Real-time Collaborative Development (Jazoon 2011)
Real-time Collaborative Development (Jazoon 2011)Real-time Collaborative Development (Jazoon 2011)
Real-time Collaborative Development (Jazoon 2011)jfitzell
 
Hunt Iinternational Training & Speaking Catalog --- January 2013
Hunt Iinternational Training & Speaking Catalog --- January 2013Hunt Iinternational Training & Speaking Catalog --- January 2013
Hunt Iinternational Training & Speaking Catalog --- January 2013Milton Hunt
 
Ignorance is not Bliss
Ignorance is not BlissIgnorance is not Bliss
Ignorance is not Blissjfitzell
 
At the Extremities of Extreme (SPA 2011)
At the Extremities of Extreme (SPA 2011)At the Extremities of Extreme (SPA 2011)
At the Extremities of Extreme (SPA 2011)jfitzell
 
Appl Phys Lett 96 211103
Appl Phys Lett 96 211103Appl Phys Lett 96 211103
Appl Phys Lett 96 211103Vaibhav Mathur
 
At the Extremities of Extreme (Agile North 2011)
At the Extremities of Extreme (Agile North 2011)At the Extremities of Extreme (Agile North 2011)
At the Extremities of Extreme (Agile North 2011)jfitzell
 
Hunt International Training & Speaking Overview --- January 2013
Hunt International Training & Speaking Overview --- January 2013Hunt International Training & Speaking Overview --- January 2013
Hunt International Training & Speaking Overview --- January 2013Milton Hunt
 
Seaside - Why should you care? (OSDC.fr 2010)
Seaside - Why should you care? (OSDC.fr 2010)Seaside - Why should you care? (OSDC.fr 2010)
Seaside - Why should you care? (OSDC.fr 2010)jfitzell
 
Permenkumham 28 2014 orta kanwil kemenkumham sorted
Permenkumham 28 2014 orta kanwil kemenkumham sortedPermenkumham 28 2014 orta kanwil kemenkumham sorted
Permenkumham 28 2014 orta kanwil kemenkumham sortedOelil Simbolon
 
The Literary Works Of Alice Walker
The Literary Works Of Alice WalkerThe Literary Works Of Alice Walker
The Literary Works Of Alice WalkerLachica James
 
IEEE LEOS Optical MEMS
IEEE LEOS Optical MEMSIEEE LEOS Optical MEMS
IEEE LEOS Optical MEMSVaibhav Mathur
 
Slide presentasi pmk 249 2011
Slide presentasi pmk 249 2011Slide presentasi pmk 249 2011
Slide presentasi pmk 249 2011Oelil Simbolon
 

Viewers also liked (17)

Seaside - Why should you care? (Dynamic Stockholm 2010)
Seaside - Why should you care? (Dynamic Stockholm 2010)Seaside - Why should you care? (Dynamic Stockholm 2010)
Seaside - Why should you care? (Dynamic Stockholm 2010)
 
Oração do arcanjo miguel para limpeza espiritual em 21 dias
Oração do arcanjo miguel para limpeza espiritual em 21 diasOração do arcanjo miguel para limpeza espiritual em 21 dias
Oração do arcanjo miguel para limpeza espiritual em 21 dias
 
ChannelStream: The challenges of continuously delivering
ChannelStream: The challenges of continuously deliveringChannelStream: The challenges of continuously delivering
ChannelStream: The challenges of continuously delivering
 
Real-time Collaborative Development (Jazoon 2011)
Real-time Collaborative Development (Jazoon 2011)Real-time Collaborative Development (Jazoon 2011)
Real-time Collaborative Development (Jazoon 2011)
 
Hunt Iinternational Training & Speaking Catalog --- January 2013
Hunt Iinternational Training & Speaking Catalog --- January 2013Hunt Iinternational Training & Speaking Catalog --- January 2013
Hunt Iinternational Training & Speaking Catalog --- January 2013
 
Ignorance is not Bliss
Ignorance is not BlissIgnorance is not Bliss
Ignorance is not Bliss
 
At the Extremities of Extreme (SPA 2011)
At the Extremities of Extreme (SPA 2011)At the Extremities of Extreme (SPA 2011)
At the Extremities of Extreme (SPA 2011)
 
Appl Phys Lett 96 211103
Appl Phys Lett 96 211103Appl Phys Lett 96 211103
Appl Phys Lett 96 211103
 
Orações poderosas
Orações poderosasOrações poderosas
Orações poderosas
 
At the Extremities of Extreme (Agile North 2011)
At the Extremities of Extreme (Agile North 2011)At the Extremities of Extreme (Agile North 2011)
At the Extremities of Extreme (Agile North 2011)
 
Hunt International Training & Speaking Overview --- January 2013
Hunt International Training & Speaking Overview --- January 2013Hunt International Training & Speaking Overview --- January 2013
Hunt International Training & Speaking Overview --- January 2013
 
Seaside - Why should you care? (OSDC.fr 2010)
Seaside - Why should you care? (OSDC.fr 2010)Seaside - Why should you care? (OSDC.fr 2010)
Seaside - Why should you care? (OSDC.fr 2010)
 
Permenkumham 28 2014 orta kanwil kemenkumham sorted
Permenkumham 28 2014 orta kanwil kemenkumham sortedPermenkumham 28 2014 orta kanwil kemenkumham sorted
Permenkumham 28 2014 orta kanwil kemenkumham sorted
 
The Literary Works Of Alice Walker
The Literary Works Of Alice WalkerThe Literary Works Of Alice Walker
The Literary Works Of Alice Walker
 
IEEE LEOS Optical MEMS
IEEE LEOS Optical MEMSIEEE LEOS Optical MEMS
IEEE LEOS Optical MEMS
 
Comsol2009 Paper
Comsol2009 PaperComsol2009 Paper
Comsol2009 Paper
 
Slide presentasi pmk 249 2011
Slide presentasi pmk 249 2011Slide presentasi pmk 249 2011
Slide presentasi pmk 249 2011
 

Similar to Seaside Portability

Swift Install Workshop - OpenStack Conference Spring 2012
Swift Install Workshop - OpenStack Conference Spring 2012Swift Install Workshop - OpenStack Conference Spring 2012
Swift Install Workshop - OpenStack Conference Spring 2012Joe Arnold
 
introduction-infra-as-a-code using terraform
introduction-infra-as-a-code using terraformintroduction-infra-as-a-code using terraform
introduction-infra-as-a-code using terraformniyof97
 
Node.js - Advanced Basics
Node.js - Advanced BasicsNode.js - Advanced Basics
Node.js - Advanced BasicsDoug Jones
 
Fosdem10
Fosdem10Fosdem10
Fosdem10wremes
 
Collabnix Online Webinar - Demystifying Docker & Kubernetes Networking by Bal...
Collabnix Online Webinar - Demystifying Docker & Kubernetes Networking by Bal...Collabnix Online Webinar - Demystifying Docker & Kubernetes Networking by Bal...
Collabnix Online Webinar - Demystifying Docker & Kubernetes Networking by Bal...Ajeet Singh Raina
 
OSCON 2011 - Node.js Tutorial
OSCON 2011 - Node.js TutorialOSCON 2011 - Node.js Tutorial
OSCON 2011 - Node.js TutorialTom Croucher
 
Infrastructureascode slideshare-160331143725
Infrastructureascode slideshare-160331143725Infrastructureascode slideshare-160331143725
Infrastructureascode slideshare-160331143725miguel dominguez
 
Infrastructureascode slideshare-160331143725
Infrastructureascode slideshare-160331143725Infrastructureascode slideshare-160331143725
Infrastructureascode slideshare-160331143725MortazaJohari
 
Infrastructure as code: running microservices on AWS using Docker, Terraform,...
Infrastructure as code: running microservices on AWS using Docker, Terraform,...Infrastructure as code: running microservices on AWS using Docker, Terraform,...
Infrastructure as code: running microservices on AWS using Docker, Terraform,...Yevgeniy Brikman
 
Genomic Computation at Scale with Serverless, StackStorm and Docker Swarm
Genomic Computation at Scale with Serverless, StackStorm and Docker SwarmGenomic Computation at Scale with Serverless, StackStorm and Docker Swarm
Genomic Computation at Scale with Serverless, StackStorm and Docker SwarmDmitri Zimine
 
Real World Lessons on the Pain Points of Node.JS Application
Real World Lessons on the Pain Points of Node.JS ApplicationReal World Lessons on the Pain Points of Node.JS Application
Real World Lessons on the Pain Points of Node.JS ApplicationBen Hall
 
Online Meetup: Why should container system / platform builders care about con...
Online Meetup: Why should container system / platform builders care about con...Online Meetup: Why should container system / platform builders care about con...
Online Meetup: Why should container system / platform builders care about con...Docker, Inc.
 
Security Tips to run Docker in Production
Security Tips to run Docker in ProductionSecurity Tips to run Docker in Production
Security Tips to run Docker in ProductionGianluca Arbezzano
 
IVS CTO Night And Day 2018 Winter - [re:Cap] Serverless & Mobile
IVS CTO Night And Day 2018 Winter - [re:Cap] Serverless & MobileIVS CTO Night And Day 2018 Winter - [re:Cap] Serverless & Mobile
IVS CTO Night And Day 2018 Winter - [re:Cap] Serverless & MobileAmazon Web Services Japan
 
Getting started with developing Nodejs
Getting started with developing NodejsGetting started with developing Nodejs
Getting started with developing NodejsPhil Hawksworth
 
Production sec ops with kubernetes in docker
Production sec ops with kubernetes in dockerProduction sec ops with kubernetes in docker
Production sec ops with kubernetes in dockerDocker, Inc.
 
Node Interactive: Node.js Performance and Highly Scalable Micro-Services
Node Interactive: Node.js Performance and Highly Scalable Micro-ServicesNode Interactive: Node.js Performance and Highly Scalable Micro-Services
Node Interactive: Node.js Performance and Highly Scalable Micro-ServicesChris Bailey
 

Similar to Seaside Portability (20)

Swift Install Workshop - OpenStack Conference Spring 2012
Swift Install Workshop - OpenStack Conference Spring 2012Swift Install Workshop - OpenStack Conference Spring 2012
Swift Install Workshop - OpenStack Conference Spring 2012
 
introduction-infra-as-a-code using terraform
introduction-infra-as-a-code using terraformintroduction-infra-as-a-code using terraform
introduction-infra-as-a-code using terraform
 
Node.js - Advanced Basics
Node.js - Advanced BasicsNode.js - Advanced Basics
Node.js - Advanced Basics
 
Fosdem10
Fosdem10Fosdem10
Fosdem10
 
Collabnix Online Webinar - Demystifying Docker & Kubernetes Networking by Bal...
Collabnix Online Webinar - Demystifying Docker & Kubernetes Networking by Bal...Collabnix Online Webinar - Demystifying Docker & Kubernetes Networking by Bal...
Collabnix Online Webinar - Demystifying Docker & Kubernetes Networking by Bal...
 
OSCON 2011 - Node.js Tutorial
OSCON 2011 - Node.js TutorialOSCON 2011 - Node.js Tutorial
OSCON 2011 - Node.js Tutorial
 
Infrastructureascode slideshare-160331143725
Infrastructureascode slideshare-160331143725Infrastructureascode slideshare-160331143725
Infrastructureascode slideshare-160331143725
 
Infrastructureascode slideshare-160331143725
Infrastructureascode slideshare-160331143725Infrastructureascode slideshare-160331143725
Infrastructureascode slideshare-160331143725
 
Infrastructure as code: running microservices on AWS using Docker, Terraform,...
Infrastructure as code: running microservices on AWS using Docker, Terraform,...Infrastructure as code: running microservices on AWS using Docker, Terraform,...
Infrastructure as code: running microservices on AWS using Docker, Terraform,...
 
Demystfying container-networking
Demystfying container-networkingDemystfying container-networking
Demystfying container-networking
 
Genomic Computation at Scale with Serverless, StackStorm and Docker Swarm
Genomic Computation at Scale with Serverless, StackStorm and Docker SwarmGenomic Computation at Scale with Serverless, StackStorm and Docker Swarm
Genomic Computation at Scale with Serverless, StackStorm and Docker Swarm
 
Real World Lessons on the Pain Points of Node.JS Application
Real World Lessons on the Pain Points of Node.JS ApplicationReal World Lessons on the Pain Points of Node.JS Application
Real World Lessons on the Pain Points of Node.JS Application
 
Online Meetup: Why should container system / platform builders care about con...
Online Meetup: Why should container system / platform builders care about con...Online Meetup: Why should container system / platform builders care about con...
Online Meetup: Why should container system / platform builders care about con...
 
Node azure
Node azureNode azure
Node azure
 
Security Tips to run Docker in Production
Security Tips to run Docker in ProductionSecurity Tips to run Docker in Production
Security Tips to run Docker in Production
 
Nodejs - A quick tour (v6)
Nodejs - A quick tour (v6)Nodejs - A quick tour (v6)
Nodejs - A quick tour (v6)
 
IVS CTO Night And Day 2018 Winter - [re:Cap] Serverless & Mobile
IVS CTO Night And Day 2018 Winter - [re:Cap] Serverless & MobileIVS CTO Night And Day 2018 Winter - [re:Cap] Serverless & Mobile
IVS CTO Night And Day 2018 Winter - [re:Cap] Serverless & Mobile
 
Getting started with developing Nodejs
Getting started with developing NodejsGetting started with developing Nodejs
Getting started with developing Nodejs
 
Production sec ops with kubernetes in docker
Production sec ops with kubernetes in dockerProduction sec ops with kubernetes in docker
Production sec ops with kubernetes in docker
 
Node Interactive: Node.js Performance and Highly Scalable Micro-Services
Node Interactive: Node.js Performance and Highly Scalable Micro-ServicesNode Interactive: Node.js Performance and Highly Scalable Micro-Services
Node Interactive: Node.js Performance and Highly Scalable Micro-Services
 

Recently uploaded

Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
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
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
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
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
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
 

Recently uploaded (20)

Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
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?
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
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
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
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
 

Seaside Portability