SlideShare ist ein Scribd-Unternehmen logo
1 von 20
Downloaden Sie, um offline zu lesen
MWLUG	
  2014	
  
AD104:	
  Build	
  a	
  Bean	
  Workshop	
  
Mike	
  McGarel,	
  Collabora/ve	
  Solu/ons	
  Developer,	
  	
  
Czarnowski	
  Display	
  Services,	
  Inc.	
  
Devin	
  Olson,	
  Collabora/ve	
  Solu/ons	
  Developer,	
  
Czarnowski	
  Display	
  Services,	
  Inc.	
  
AD104:	
  Build	
  a	
  Bean	
  Workshop	
  
Mike	
  McGarel	
  
	
  
Ø Collabora/ve	
  Solu/ons	
  Developer	
  at	
  	
  
Czarnowski	
  Display	
  Services	
  
Ø Working	
  with	
  Notes/Domino	
  since	
  version	
  4.6	
  
Ø Working	
  on	
  the	
  Web	
  for	
  over	
  14	
  years	
  
Ø OpenNTF	
  contributor	
  
Ø Maintain	
  MWLUG	
  site	
  
AD104:	
  Build	
  a	
  Bean	
  Workshop	
  
Devin	
  Olson	
  
	
  
Ø Collabora/ve	
  Solu/ons	
  Developer	
  at	
  	
  
Czarnowski	
  Display	
  Services	
  
Ø Notes	
  /	
  Domino	
  consultant	
  since	
  1995	
  	
  
(that's	
  R3	
  for	
  you	
  punks)	
  
Ø PCLP	
  SA/AD	
  R4.6,	
  R5,	
  R6,	
  R7	
  	
  
(stopped	
  taking	
  tests	
  aWer	
  that)	
  
Ø Beer	
  Snob	
  (Anheuser-­‐Busch	
  	
  
Cer/fied	
  Beer	
  Master)	
  
Ø LearningXPages.com	
  
AD104:	
  Build	
  a	
  Bean	
  Workshop	
  
Agenda	
  
	
  
Ø Dip	
  into	
  Java	
  beans	
  	
  
Ø App	
  goal	
  
Ø Time	
  to	
  build	
  
AD104:	
  Build	
  a	
  Bean	
  Workshop	
  
LotusScript	
  and	
  Java	
  SimilariDes	
  
	
  
Ø LS	
  has	
  subs	
  and	
  func/ons,	
  Java	
  has	
  methods	
  
Ø Both	
  strongly	
  typed	
  	
  
LS:	
  	
  Dim x As String
Java:	
  String x	
  
Ø Nearly	
  exact	
  syntax:	
  
LS:	
  collec/on.GetFirstDocument	
  
Java:	
  collec/on.getFirstDocument()	
  
AD104:	
  Build	
  a	
  Bean	
  Workshop	
  
LotusScript	
  and	
  Java	
  Differences	
  
	
  
Ø Case	
  ma_ers	
  in	
  Java	
  
Example:	
  getFirstDocument()	
  not	
  GetFirstDocument()	
  
Ø Beans	
  persist,	
  LS	
  objects	
  don’t	
  
Ø Java	
  is	
  modern,	
  LS	
  is	
  .	
  .	
  .	
  	
  
AD104:	
  Build	
  a	
  Bean	
  Workshop	
  
What	
  do	
  we	
  mean	
  by	
  “bean”?	
  
	
  
A	
  Java	
  object	
  defined	
  by	
  specific	
  standards	
  
Ø Public	
  Java	
  class	
  
Ø Serializable	
  	
  
Ø Private	
  proper/es	
  (op/onal)	
  
Ø Public	
  constructor	
  with	
  no	
  arguments	
  
Ø Public	
  methods	
  (not	
  required,	
  but	
  kind	
  of	
  	
  
pointless	
  without)	
  
AD104:	
  Build	
  a	
  Bean	
  Workshop	
  
What	
  does	
  a	
  bean	
  look	
  like?	
  
	
  
package com.mwlug;
import java.io.Serializable;
/* other possible libraries */
public class MyClass implements Serializable {
private static final long serialVersionUID = 1L;
private String myText;
/* Other possible variables */
public MyClass() {
}
public String getMyText() {
return myText;
}
public void setMyText (String txt) {
this.myText = txt;
}
/* Other possible methods */
}
AD104:	
  Build	
  a	
  Bean	
  Workshop	
  
Public	
  Java	
  Class	
  
	
  
package com.mwlug;
import java.io.Serializable;
public class MyClass implements Serializable {
	
  
AD104:	
  Build	
  a	
  Bean	
  Workshop	
  
Serializable	
  
	
  
package com.mwlug;
import java.io.Serializable;
public class MyClass implements Serializable {
private static final long serialVersionUID =
1L;
	
  
AD104:	
  Build	
  a	
  Bean	
  Workshop	
  
Private	
  ProperDes	
  
	
  
public class MyClass implements Serializable {
private static final long serialVersionUID =
1L;
private String myString;
private Integer myInteger;
private List myList;
	
  
AD104:	
  Build	
  a	
  Bean	
  Workshop	
  
Public	
  Constructor	
  with	
  No	
  Arguments	
  
	
  
Sample	
  1	
  –	
  no	
  methods:	
  
public MyClass() {
}
Sample	
  2	
  –	
  with	
  methods:	
  
public MyClass() {
myString = “This is my string”;
this.myInteger = new Integer(1);
}
AD104:	
  Build	
  a	
  Bean	
  Workshop	
  
Public	
  Methods	
  
	
  
public String getMyText() {
return myText;
}
public void setMyText (String txt) {
this.myText = txt;
}
	
  
AD104:	
  Build	
  a	
  Bean	
  Workshop	
  
What	
  is	
  a	
  “managed”	
  bean?	
  
	
  
A	
  bean	
  listed	
  in	
  the	
  facesconfig.xml	
  file.	
  
	
  
<managed-bean>
<managed-bean-name>mine
</managed-bean-name>
<managed-bean-class>com.mwlug.MyClass
</managed-bean-class>
<managed-bean-scope>view
</managed-bean-scope>
</managed-bean>
	
  
AD104:	
  Build	
  a	
  Bean	
  Workshop	
  
Why	
  should	
  I	
  use	
  beans?	
  
	
  
Ø Reusability	
  
Ø Persistence	
  
Ø Modern	
  replacement	
  for	
  profile	
  documents	
  
Ø Easy	
  way	
  to	
  load	
  Java	
  methods	
  
AD104:	
  Build	
  a	
  Bean	
  Workshop	
  
A	
  few	
  words	
  about	
  recycling	
  
	
  
Ø Related	
  to	
  C+,	
  not	
  Java	
  
Ø Recycling	
  releases	
  the	
  handle	
  from	
  memory	
  
Ø Needed	
  only	
  for	
  Lotus-­‐based	
  Java	
  objects,	
  e.g.,	
  
NotesDatabase,	
  NotesView,	
  NotesDocument	
  
AD104:	
  Build	
  a	
  Bean	
  Workshop	
  
Let’s	
  start	
  building!	
  
AD104:	
  Build	
  a	
  Bean	
  Workshop	
  
References	
  
Ø Notes	
  in	
  9	
  	
  (notesin9.com)	
  
Ø Head	
  First	
  Java	
  
Ø learningXPages.com	
  	
  
Ø Russell	
  Maher’s	
  Connect	
  2013	
  Master	
  Class:	
  XPages	
  &	
  
Managed	
  Beans	
  (slides	
  on	
  xpage/ps.blogspot.com)	
  
AD104:	
  Build	
  a	
  Bean	
  Workshop	
  
	
  
Thank	
  You	
  For	
  AXending	
  
The	
  authors	
  appreciate	
  any	
  feedback	
  or	
  comments	
  you	
  care	
  to	
  give.	
  
(appropriate	
  music	
  lyric	
  here)	
  
AD104:	
  Build	
  a	
  Bean	
  Workshop	
  
Contact	
  Us	
  
Mike	
  McGarel	
  
Ø  Blog:	
  h_p://www.bleedyellow.com/blogs/McGarelGramming	
  
Ø  Twi_er:	
  @mmcgarel	
  
Ø  Email:	
  mmcgarel@czarnowski.com	
  
Devin	
  Olson	
  
Ø  Blog:	
  h_p://www.learningxpages.com	
  
Ø  Twi_er:	
  @spanky762	
  
Ø  Email:	
  dolson@czarnowski.com	
  	
  
Ø  Facebook:	
  facebook.com/default.xsp	
  

Weitere ähnliche Inhalte

Was ist angesagt?

Cocoa tip for Cocoaheads Shanghai February 2016
Cocoa tip for Cocoaheads Shanghai February 2016Cocoa tip for Cocoaheads Shanghai February 2016
Cocoa tip for Cocoaheads Shanghai February 2016Antoine Cœur
 
Create your very own Development Environment with Vagrant and Packer
Create your very own Development Environment with Vagrant and PackerCreate your very own Development Environment with Vagrant and Packer
Create your very own Development Environment with Vagrant and Packerfrastel
 
Learn Puppet : Quest Guide for the Learning VM
Learn Puppet : Quest Guide for the Learning VMLearn Puppet : Quest Guide for the Learning VM
Learn Puppet : Quest Guide for the Learning VMKumaran Balachandran
 
PyParis 2017 / Writing a C Python extension in 2017, Jean-Baptiste Aviat
PyParis 2017 / Writing a C Python extension in 2017, Jean-Baptiste Aviat PyParis 2017 / Writing a C Python extension in 2017, Jean-Baptiste Aviat
PyParis 2017 / Writing a C Python extension in 2017, Jean-Baptiste Aviat Pôle Systematic Paris-Region
 
Celery: The Distributed Task Queue
Celery: The Distributed Task QueueCelery: The Distributed Task Queue
Celery: The Distributed Task QueueRichard Leland
 
Original slides from Ryan Dahl's NodeJs intro talk
Original slides from Ryan Dahl's NodeJs intro talkOriginal slides from Ryan Dahl's NodeJs intro talk
Original slides from Ryan Dahl's NodeJs intro talkAarti Parikh
 
DevOps(4) : Ansible(2) - (MOSG)
DevOps(4) : Ansible(2) - (MOSG)DevOps(4) : Ansible(2) - (MOSG)
DevOps(4) : Ansible(2) - (MOSG)Soshi Nemoto
 
Controlling multiple VMs with the power of Python
Controlling multiple VMs with the power of PythonControlling multiple VMs with the power of Python
Controlling multiple VMs with the power of PythonYurii Vasylenko
 
Ansible v2 and Beyond (Ansible Hawai'i Meetup)
Ansible v2 and Beyond (Ansible Hawai'i Meetup)Ansible v2 and Beyond (Ansible Hawai'i Meetup)
Ansible v2 and Beyond (Ansible Hawai'i Meetup)Timothy Appnel
 
Vagrant for real codemotion (moar tips! ;-))
Vagrant for real codemotion (moar tips! ;-))Vagrant for real codemotion (moar tips! ;-))
Vagrant for real codemotion (moar tips! ;-))Michele Orselli
 
Augeas, swiss knife resources for your puppet tree
Augeas, swiss knife resources for your puppet treeAugeas, swiss knife resources for your puppet tree
Augeas, swiss knife resources for your puppet treeJulien Pivotto
 
Learn flask in 90mins
Learn flask in 90minsLearn flask in 90mins
Learn flask in 90minsLarry Cai
 
PuppetCamp SEA 1 - Use of Puppet
PuppetCamp SEA 1 - Use of PuppetPuppetCamp SEA 1 - Use of Puppet
PuppetCamp SEA 1 - Use of PuppetWalter Heck
 

Was ist angesagt? (20)

Cocoa tip for Cocoaheads Shanghai February 2016
Cocoa tip for Cocoaheads Shanghai February 2016Cocoa tip for Cocoaheads Shanghai February 2016
Cocoa tip for Cocoaheads Shanghai February 2016
 
Create your very own Development Environment with Vagrant and Packer
Create your very own Development Environment with Vagrant and PackerCreate your very own Development Environment with Vagrant and Packer
Create your very own Development Environment with Vagrant and Packer
 
Apache Cassandra and Go
Apache Cassandra and GoApache Cassandra and Go
Apache Cassandra and Go
 
Learn Puppet : Quest Guide for the Learning VM
Learn Puppet : Quest Guide for the Learning VMLearn Puppet : Quest Guide for the Learning VM
Learn Puppet : Quest Guide for the Learning VM
 
Vagrant and CentOS 7
Vagrant and CentOS 7Vagrant and CentOS 7
Vagrant and CentOS 7
 
PyParis 2017 / Writing a C Python extension in 2017, Jean-Baptiste Aviat
PyParis 2017 / Writing a C Python extension in 2017, Jean-Baptiste Aviat PyParis 2017 / Writing a C Python extension in 2017, Jean-Baptiste Aviat
PyParis 2017 / Writing a C Python extension in 2017, Jean-Baptiste Aviat
 
Everything as a code
Everything as a codeEverything as a code
Everything as a code
 
Celery: The Distributed Task Queue
Celery: The Distributed Task QueueCelery: The Distributed Task Queue
Celery: The Distributed Task Queue
 
Original slides from Ryan Dahl's NodeJs intro talk
Original slides from Ryan Dahl's NodeJs intro talkOriginal slides from Ryan Dahl's NodeJs intro talk
Original slides from Ryan Dahl's NodeJs intro talk
 
DevOps(4) : Ansible(2) - (MOSG)
DevOps(4) : Ansible(2) - (MOSG)DevOps(4) : Ansible(2) - (MOSG)
DevOps(4) : Ansible(2) - (MOSG)
 
Controlling multiple VMs with the power of Python
Controlling multiple VMs with the power of PythonControlling multiple VMs with the power of Python
Controlling multiple VMs with the power of Python
 
Ansible v2 and Beyond (Ansible Hawai'i Meetup)
Ansible v2 and Beyond (Ansible Hawai'i Meetup)Ansible v2 and Beyond (Ansible Hawai'i Meetup)
Ansible v2 and Beyond (Ansible Hawai'i Meetup)
 
Cialug August 2021
Cialug August 2021Cialug August 2021
Cialug August 2021
 
Celery
CeleryCelery
Celery
 
Vagrant for real codemotion (moar tips! ;-))
Vagrant for real codemotion (moar tips! ;-))Vagrant for real codemotion (moar tips! ;-))
Vagrant for real codemotion (moar tips! ;-))
 
Celery with python
Celery with pythonCelery with python
Celery with python
 
Django Celery
Django Celery Django Celery
Django Celery
 
Augeas, swiss knife resources for your puppet tree
Augeas, swiss knife resources for your puppet treeAugeas, swiss knife resources for your puppet tree
Augeas, swiss knife resources for your puppet tree
 
Learn flask in 90mins
Learn flask in 90minsLearn flask in 90mins
Learn flask in 90mins
 
PuppetCamp SEA 1 - Use of Puppet
PuppetCamp SEA 1 - Use of PuppetPuppetCamp SEA 1 - Use of Puppet
PuppetCamp SEA 1 - Use of Puppet
 

Andere mochten auch

Module Risicos (Juli 2010) (Met Logo)
Module Risicos (Juli 2010) (Met Logo)Module Risicos (Juli 2010) (Met Logo)
Module Risicos (Juli 2010) (Met Logo)abvandepol
 
Module Cv (Juli 2010)
Module Cv (Juli 2010)Module Cv (Juli 2010)
Module Cv (Juli 2010)abvandepol
 
Community supported garden at la vista
Community supported garden at la vistaCommunity supported garden at la vista
Community supported garden at la vistaLaVistaCSA
 
Mamíferos
MamíferosMamíferos
Mamíferosjuan1500
 
Installing & Configuring IBM Domino 9 on CentOS
Installing & Configuring IBM Domino 9 on CentOSInstalling & Configuring IBM Domino 9 on CentOS
Installing & Configuring IBM Domino 9 on CentOSDevin Olson
 
MY PROFESSIONAL INTRODUCTION FOR ALL EMPLOYERS
MY PROFESSIONAL INTRODUCTION  FOR  ALL  EMPLOYERSMY PROFESSIONAL INTRODUCTION  FOR  ALL  EMPLOYERS
MY PROFESSIONAL INTRODUCTION FOR ALL EMPLOYERSsaurabh gaur
 
Extreme Development: Pair Programming
Extreme Development: Pair ProgrammingExtreme Development: Pair Programming
Extreme Development: Pair ProgrammingDevin Olson
 
Module Fiscaliteit (Juli 2010)(Met Logo)
Module Fiscaliteit (Juli 2010)(Met Logo)Module Fiscaliteit (Juli 2010)(Met Logo)
Module Fiscaliteit (Juli 2010)(Met Logo)abvandepol
 
Module Afm (Juli 2010)(Met Logo)
Module Afm (Juli 2010)(Met Logo)Module Afm (Juli 2010)(Met Logo)
Module Afm (Juli 2010)(Met Logo)abvandepol
 
Presentation on Affect Analysis and Ranking
Presentation on Affect Analysis and RankingPresentation on Affect Analysis and Ranking
Presentation on Affect Analysis and Rankinglaurensrietveld
 
JUnit Tutorial for Beginners - Learn Java Unit Testing
JUnit Tutorial for Beginners - Learn Java Unit TestingJUnit Tutorial for Beginners - Learn Java Unit Testing
JUnit Tutorial for Beginners - Learn Java Unit Testingayman diab
 
Introduction à GWT
Introduction à GWTIntroduction à GWT
Introduction à GWTArcbees
 

Andere mochten auch (20)

Module Risicos (Juli 2010) (Met Logo)
Module Risicos (Juli 2010) (Met Logo)Module Risicos (Juli 2010) (Met Logo)
Module Risicos (Juli 2010) (Met Logo)
 
Prosser career academy
Prosser career academyProsser career academy
Prosser career academy
 
Prosser career academy
Prosser career academyProsser career academy
Prosser career academy
 
Module Cv (Juli 2010)
Module Cv (Juli 2010)Module Cv (Juli 2010)
Module Cv (Juli 2010)
 
Community supported garden at la vista
Community supported garden at la vistaCommunity supported garden at la vista
Community supported garden at la vista
 
Mamíferos
MamíferosMamíferos
Mamíferos
 
Prosser career academy
Prosser career academyProsser career academy
Prosser career academy
 
Installing & Configuring IBM Domino 9 on CentOS
Installing & Configuring IBM Domino 9 on CentOSInstalling & Configuring IBM Domino 9 on CentOS
Installing & Configuring IBM Domino 9 on CentOS
 
MY PROFESSIONAL INTRODUCTION FOR ALL EMPLOYERS
MY PROFESSIONAL INTRODUCTION  FOR  ALL  EMPLOYERSMY PROFESSIONAL INTRODUCTION  FOR  ALL  EMPLOYERS
MY PROFESSIONAL INTRODUCTION FOR ALL EMPLOYERS
 
Extreme Development: Pair Programming
Extreme Development: Pair ProgrammingExtreme Development: Pair Programming
Extreme Development: Pair Programming
 
Module Fiscaliteit (Juli 2010)(Met Logo)
Module Fiscaliteit (Juli 2010)(Met Logo)Module Fiscaliteit (Juli 2010)(Met Logo)
Module Fiscaliteit (Juli 2010)(Met Logo)
 
Module Afm (Juli 2010)(Met Logo)
Module Afm (Juli 2010)(Met Logo)Module Afm (Juli 2010)(Met Logo)
Module Afm (Juli 2010)(Met Logo)
 
Instrumentos
InstrumentosInstrumentos
Instrumentos
 
Android Apps the Right Way
Android Apps the Right WayAndroid Apps the Right Way
Android Apps the Right Way
 
5 Files Io
5 Files Io5 Files Io
5 Files Io
 
Presentation on Affect Analysis and Ranking
Presentation on Affect Analysis and RankingPresentation on Affect Analysis and Ranking
Presentation on Affect Analysis and Ranking
 
JUnit Tutorial for Beginners - Learn Java Unit Testing
JUnit Tutorial for Beginners - Learn Java Unit TestingJUnit Tutorial for Beginners - Learn Java Unit Testing
JUnit Tutorial for Beginners - Learn Java Unit Testing
 
Learningbloks
LearningbloksLearningbloks
Learningbloks
 
Jsp applet
Jsp appletJsp applet
Jsp applet
 
Introduction à GWT
Introduction à GWTIntroduction à GWT
Introduction à GWT
 

Ähnlich wie Ad104 build a bean workshop

時代在變 Docker 要會:台北 Docker 一日入門篇
時代在變 Docker 要會:台北 Docker 一日入門篇時代在變 Docker 要會:台北 Docker 一日入門篇
時代在變 Docker 要會:台北 Docker 一日入門篇Philip Zheng
 
Deploying an application with Chef and Docker
Deploying an application with Chef and DockerDeploying an application with Chef and Docker
Deploying an application with Chef and DockerDaniel Ku
 
手把手帶你學 Docker 入門篇
手把手帶你學 Docker 入門篇手把手帶你學 Docker 入門篇
手把手帶你學 Docker 入門篇Philip Zheng
 
Docker workshop 0507 Taichung
Docker workshop 0507 Taichung Docker workshop 0507 Taichung
Docker workshop 0507 Taichung Paul Chao
 
手把手帶你學Docker 03042017
手把手帶你學Docker 03042017手把手帶你學Docker 03042017
手把手帶你學Docker 03042017Paul Chao
 
Ansible with oci
Ansible with ociAnsible with oci
Ansible with ociDonghuKIM2
 
Docker dev, test & production (afas)
Docker  dev, test & production (afas)Docker  dev, test & production (afas)
Docker dev, test & production (afas)Wouter Lagerweij
 
Finally, Professional Frontend Dev with ReactJS, WebPack & Symfony (Symfony C...
Finally, Professional Frontend Dev with ReactJS, WebPack & Symfony (Symfony C...Finally, Professional Frontend Dev with ReactJS, WebPack & Symfony (Symfony C...
Finally, Professional Frontend Dev with ReactJS, WebPack & Symfony (Symfony C...Ryan Weaver
 
Workshop: Know Before You Push 'Go': Using the Beaker Acceptance Test Framewo...
Workshop: Know Before You Push 'Go': Using the Beaker Acceptance Test Framewo...Workshop: Know Before You Push 'Go': Using the Beaker Acceptance Test Framewo...
Workshop: Know Before You Push 'Go': Using the Beaker Acceptance Test Framewo...Puppet
 
Testing - Selenium? Rich-Clients? Containers?
Testing - Selenium? Rich-Clients? Containers?Testing - Selenium? Rich-Clients? Containers?
Testing - Selenium? Rich-Clients? Containers?Tobias Schneck
 
Scala, docker and testing, oh my! mario camou
Scala, docker and testing, oh my! mario camouScala, docker and testing, oh my! mario camou
Scala, docker and testing, oh my! mario camouJ On The Beach
 
Scala, Functional Programming and Team Productivity
Scala, Functional Programming and Team ProductivityScala, Functional Programming and Team Productivity
Scala, Functional Programming and Team Productivity7mind
 
Docker Introduction.pdf
Docker Introduction.pdfDocker Introduction.pdf
Docker Introduction.pdfOKLABS
 
Winning the Erlang Edit•Build•Test Cycle
Winning the Erlang Edit•Build•Test CycleWinning the Erlang Edit•Build•Test Cycle
Winning the Erlang Edit•Build•Test CycleRusty Klophaus
 
From Dev to DevOps
From Dev to DevOpsFrom Dev to DevOps
From Dev to DevOpsAgile Spain
 
Baking docker using chef
Baking docker using chefBaking docker using chef
Baking docker using chefMukta Aphale
 
Baking Docker Using Chef - ChefConf 2015
Baking Docker Using Chef - ChefConf 2015Baking Docker Using Chef - ChefConf 2015
Baking Docker Using Chef - ChefConf 2015Chef
 

Ähnlich wie Ad104 build a bean workshop (20)

時代在變 Docker 要會:台北 Docker 一日入門篇
時代在變 Docker 要會:台北 Docker 一日入門篇時代在變 Docker 要會:台北 Docker 一日入門篇
時代在變 Docker 要會:台北 Docker 一日入門篇
 
Test your modules
Test your modulesTest your modules
Test your modules
 
Deploying an application with Chef and Docker
Deploying an application with Chef and DockerDeploying an application with Chef and Docker
Deploying an application with Chef and Docker
 
手把手帶你學 Docker 入門篇
手把手帶你學 Docker 入門篇手把手帶你學 Docker 入門篇
手把手帶你學 Docker 入門篇
 
Docker workshop 0507 Taichung
Docker workshop 0507 Taichung Docker workshop 0507 Taichung
Docker workshop 0507 Taichung
 
手把手帶你學Docker 03042017
手把手帶你學Docker 03042017手把手帶你學Docker 03042017
手把手帶你學Docker 03042017
 
Ansible with oci
Ansible with ociAnsible with oci
Ansible with oci
 
Docker dev, test & production (afas)
Docker  dev, test & production (afas)Docker  dev, test & production (afas)
Docker dev, test & production (afas)
 
Finally, Professional Frontend Dev with ReactJS, WebPack & Symfony (Symfony C...
Finally, Professional Frontend Dev with ReactJS, WebPack & Symfony (Symfony C...Finally, Professional Frontend Dev with ReactJS, WebPack & Symfony (Symfony C...
Finally, Professional Frontend Dev with ReactJS, WebPack & Symfony (Symfony C...
 
Workshop: Know Before You Push 'Go': Using the Beaker Acceptance Test Framewo...
Workshop: Know Before You Push 'Go': Using the Beaker Acceptance Test Framewo...Workshop: Know Before You Push 'Go': Using the Beaker Acceptance Test Framewo...
Workshop: Know Before You Push 'Go': Using the Beaker Acceptance Test Framewo...
 
Docker team training
Docker team trainingDocker team training
Docker team training
 
Testing - Selenium? Rich-Clients? Containers?
Testing - Selenium? Rich-Clients? Containers?Testing - Selenium? Rich-Clients? Containers?
Testing - Selenium? Rich-Clients? Containers?
 
Scala, docker and testing, oh my! mario camou
Scala, docker and testing, oh my! mario camouScala, docker and testing, oh my! mario camou
Scala, docker and testing, oh my! mario camou
 
Scala, Functional Programming and Team Productivity
Scala, Functional Programming and Team ProductivityScala, Functional Programming and Team Productivity
Scala, Functional Programming and Team Productivity
 
Docker Introduction.pdf
Docker Introduction.pdfDocker Introduction.pdf
Docker Introduction.pdf
 
Docker研習營
Docker研習營Docker研習營
Docker研習營
 
Winning the Erlang Edit•Build•Test Cycle
Winning the Erlang Edit•Build•Test CycleWinning the Erlang Edit•Build•Test Cycle
Winning the Erlang Edit•Build•Test Cycle
 
From Dev to DevOps
From Dev to DevOpsFrom Dev to DevOps
From Dev to DevOps
 
Baking docker using chef
Baking docker using chefBaking docker using chef
Baking docker using chef
 
Baking Docker Using Chef - ChefConf 2015
Baking Docker Using Chef - ChefConf 2015Baking Docker Using Chef - ChefConf 2015
Baking Docker Using Chef - ChefConf 2015
 

Mehr von Devin Olson

Paired with an Idiot: Things that sabotage success
Paired with an Idiot: Things that sabotage successPaired with an Idiot: Things that sabotage success
Paired with an Idiot: Things that sabotage successDevin Olson
 
Resolving Cached Design Element Corruption Issues in the IBM Notes Client
Resolving Cached Design Element Corruption Issues in the IBM Notes ClientResolving Cached Design Element Corruption Issues in the IBM Notes Client
Resolving Cached Design Element Corruption Issues in the IBM Notes ClientDevin Olson
 
Do you have a website? Do you want to get sued?
Do you have a website?  Do you want to get sued?Do you have a website?  Do you want to get sued?
Do you have a website? Do you want to get sued?Devin Olson
 
IBM Traveler and Verse: Device Security and Administration Overview
IBM Traveler and Verse: Device Security and Administration OverviewIBM Traveler and Verse: Device Security and Administration Overview
IBM Traveler and Verse: Device Security and Administration OverviewDevin Olson
 
Website Accessibility Workshop
Website Accessibility WorkshopWebsite Accessibility Workshop
Website Accessibility WorkshopDevin Olson
 
Raw Iron to Enterprise Server: Installing Domino on Linux
Raw Iron to Enterprise Server: Installing Domino on LinuxRaw Iron to Enterprise Server: Installing Domino on Linux
Raw Iron to Enterprise Server: Installing Domino on LinuxDevin Olson
 
Curing the Headaches: How to Deal with Bad Developers
Curing the Headaches: How to Deal with Bad DevelopersCuring the Headaches: How to Deal with Bad Developers
Curing the Headaches: How to Deal with Bad DevelopersDevin Olson
 
Accessibility for the Visually Impaired with IBM Lotus Domino
Accessibility for the Visually Impaired with IBM Lotus DominoAccessibility for the Visually Impaired with IBM Lotus Domino
Accessibility for the Visually Impaired with IBM Lotus DominoDevin Olson
 
Countdown to Domino 10
Countdown to Domino 10Countdown to Domino 10
Countdown to Domino 10Devin Olson
 
Pink Slip Time: Turning a Job Loss into a Career Win
Pink Slip Time: Turning a Job Loss into a Career WinPink Slip Time: Turning a Job Loss into a Career Win
Pink Slip Time: Turning a Job Loss into a Career WinDevin Olson
 
XPages Development 2
XPages Development 2XPages Development 2
XPages Development 2Devin Olson
 
XPages Development 1
XPages Development 1XPages Development 1
XPages Development 1Devin Olson
 
Countdown to Domino 2025
Countdown to Domino 2025Countdown to Domino 2025
Countdown to Domino 2025Devin Olson
 
Big Data with Graph, IBM Domino, and the OpenNTF API
Big Data with Graph, IBM Domino, and the OpenNTF APIBig Data with Graph, IBM Domino, and the OpenNTF API
Big Data with Graph, IBM Domino, and the OpenNTF APIDevin Olson
 
Customer Story: Next Level Coding
Customer Story: Next Level CodingCustomer Story: Next Level Coding
Customer Story: Next Level CodingDevin Olson
 
Countdown to Domino 2025 - Preparing for the NOW
Countdown to Domino 2025 - Preparing for the NOWCountdown to Domino 2025 - Preparing for the NOW
Countdown to Domino 2025 - Preparing for the NOWDevin Olson
 
Installing and Configuring Domino 10 on CentOS 7
Installing and Configuring Domino 10 on CentOS 7Installing and Configuring Domino 10 on CentOS 7
Installing and Configuring Domino 10 on CentOS 7Devin Olson
 

Mehr von Devin Olson (17)

Paired with an Idiot: Things that sabotage success
Paired with an Idiot: Things that sabotage successPaired with an Idiot: Things that sabotage success
Paired with an Idiot: Things that sabotage success
 
Resolving Cached Design Element Corruption Issues in the IBM Notes Client
Resolving Cached Design Element Corruption Issues in the IBM Notes ClientResolving Cached Design Element Corruption Issues in the IBM Notes Client
Resolving Cached Design Element Corruption Issues in the IBM Notes Client
 
Do you have a website? Do you want to get sued?
Do you have a website?  Do you want to get sued?Do you have a website?  Do you want to get sued?
Do you have a website? Do you want to get sued?
 
IBM Traveler and Verse: Device Security and Administration Overview
IBM Traveler and Verse: Device Security and Administration OverviewIBM Traveler and Verse: Device Security and Administration Overview
IBM Traveler and Verse: Device Security and Administration Overview
 
Website Accessibility Workshop
Website Accessibility WorkshopWebsite Accessibility Workshop
Website Accessibility Workshop
 
Raw Iron to Enterprise Server: Installing Domino on Linux
Raw Iron to Enterprise Server: Installing Domino on LinuxRaw Iron to Enterprise Server: Installing Domino on Linux
Raw Iron to Enterprise Server: Installing Domino on Linux
 
Curing the Headaches: How to Deal with Bad Developers
Curing the Headaches: How to Deal with Bad DevelopersCuring the Headaches: How to Deal with Bad Developers
Curing the Headaches: How to Deal with Bad Developers
 
Accessibility for the Visually Impaired with IBM Lotus Domino
Accessibility for the Visually Impaired with IBM Lotus DominoAccessibility for the Visually Impaired with IBM Lotus Domino
Accessibility for the Visually Impaired with IBM Lotus Domino
 
Countdown to Domino 10
Countdown to Domino 10Countdown to Domino 10
Countdown to Domino 10
 
Pink Slip Time: Turning a Job Loss into a Career Win
Pink Slip Time: Turning a Job Loss into a Career WinPink Slip Time: Turning a Job Loss into a Career Win
Pink Slip Time: Turning a Job Loss into a Career Win
 
XPages Development 2
XPages Development 2XPages Development 2
XPages Development 2
 
XPages Development 1
XPages Development 1XPages Development 1
XPages Development 1
 
Countdown to Domino 2025
Countdown to Domino 2025Countdown to Domino 2025
Countdown to Domino 2025
 
Big Data with Graph, IBM Domino, and the OpenNTF API
Big Data with Graph, IBM Domino, and the OpenNTF APIBig Data with Graph, IBM Domino, and the OpenNTF API
Big Data with Graph, IBM Domino, and the OpenNTF API
 
Customer Story: Next Level Coding
Customer Story: Next Level CodingCustomer Story: Next Level Coding
Customer Story: Next Level Coding
 
Countdown to Domino 2025 - Preparing for the NOW
Countdown to Domino 2025 - Preparing for the NOWCountdown to Domino 2025 - Preparing for the NOW
Countdown to Domino 2025 - Preparing for the NOW
 
Installing and Configuring Domino 10 on CentOS 7
Installing and Configuring Domino 10 on CentOS 7Installing and Configuring Domino 10 on CentOS 7
Installing and Configuring Domino 10 on CentOS 7
 

Kürzlich hochgeladen

APVP,apvp apvp High quality supplier safe spot transport, 98% purity
APVP,apvp apvp High quality supplier safe spot transport, 98% purityAPVP,apvp apvp High quality supplier safe spot transport, 98% purity
APVP,apvp apvp High quality supplier safe spot transport, 98% purityamy56318795
 
KLARNA - Language Models and Knowledge Graphs: A Systems Approach
KLARNA -  Language Models and Knowledge Graphs: A Systems ApproachKLARNA -  Language Models and Knowledge Graphs: A Systems Approach
KLARNA - Language Models and Knowledge Graphs: A Systems ApproachNeo4j
 
Crafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM IntegrationCrafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM IntegrationWave PLM
 
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdfMicrosoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdfQ-Advise
 
CompTIA Security+ (Study Notes) for cs.pdf
CompTIA Security+ (Study Notes) for cs.pdfCompTIA Security+ (Study Notes) for cs.pdf
CompTIA Security+ (Study Notes) for cs.pdfFurqanuddin10
 
how-to-download-files-safely-from-the-internet.pdf
how-to-download-files-safely-from-the-internet.pdfhow-to-download-files-safely-from-the-internet.pdf
how-to-download-files-safely-from-the-internet.pdfMehmet Akar
 
How to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabberHow to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabbereGrabber
 
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...Andrea Goulet
 
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1KnowledgeSeed
 
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAGAI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAGAlluxio, Inc.
 
AI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in MichelangeloAI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in MichelangeloAlluxio, Inc.
 
The Impact of PLM Software on Fashion Production
The Impact of PLM Software on Fashion ProductionThe Impact of PLM Software on Fashion Production
The Impact of PLM Software on Fashion ProductionWave PLM
 
What need to be mastered as AI-Powered Java Developers
What need to be mastered as AI-Powered Java DevelopersWhat need to be mastered as AI-Powered Java Developers
What need to be mastered as AI-Powered Java DevelopersEmilyJiang23
 
IT Software Development Resume, Vaibhav jha 2024
IT Software Development Resume, Vaibhav jha 2024IT Software Development Resume, Vaibhav jha 2024
IT Software Development Resume, Vaibhav jha 2024vaibhav130304
 
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdfMastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdfmbmh111980
 
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdfA Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdfkalichargn70th171
 
INGKA DIGITAL: Linked Metadata by Design
INGKA DIGITAL: Linked Metadata by DesignINGKA DIGITAL: Linked Metadata by Design
INGKA DIGITAL: Linked Metadata by DesignNeo4j
 
How to pick right visual testing tool.pdf
How to pick right visual testing tool.pdfHow to pick right visual testing tool.pdf
How to pick right visual testing tool.pdfTestgrid.io
 
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...naitiksharma1124
 

Kürzlich hochgeladen (20)

APVP,apvp apvp High quality supplier safe spot transport, 98% purity
APVP,apvp apvp High quality supplier safe spot transport, 98% purityAPVP,apvp apvp High quality supplier safe spot transport, 98% purity
APVP,apvp apvp High quality supplier safe spot transport, 98% purity
 
KLARNA - Language Models and Knowledge Graphs: A Systems Approach
KLARNA -  Language Models and Knowledge Graphs: A Systems ApproachKLARNA -  Language Models and Knowledge Graphs: A Systems Approach
KLARNA - Language Models and Knowledge Graphs: A Systems Approach
 
Top Mobile App Development Companies 2024
Top Mobile App Development Companies 2024Top Mobile App Development Companies 2024
Top Mobile App Development Companies 2024
 
Crafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM IntegrationCrafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM Integration
 
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdfMicrosoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
 
CompTIA Security+ (Study Notes) for cs.pdf
CompTIA Security+ (Study Notes) for cs.pdfCompTIA Security+ (Study Notes) for cs.pdf
CompTIA Security+ (Study Notes) for cs.pdf
 
how-to-download-files-safely-from-the-internet.pdf
how-to-download-files-safely-from-the-internet.pdfhow-to-download-files-safely-from-the-internet.pdf
how-to-download-files-safely-from-the-internet.pdf
 
How to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabberHow to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabber
 
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
 
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
 
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAGAI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
 
AI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in MichelangeloAI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in Michelangelo
 
The Impact of PLM Software on Fashion Production
The Impact of PLM Software on Fashion ProductionThe Impact of PLM Software on Fashion Production
The Impact of PLM Software on Fashion Production
 
What need to be mastered as AI-Powered Java Developers
What need to be mastered as AI-Powered Java DevelopersWhat need to be mastered as AI-Powered Java Developers
What need to be mastered as AI-Powered Java Developers
 
IT Software Development Resume, Vaibhav jha 2024
IT Software Development Resume, Vaibhav jha 2024IT Software Development Resume, Vaibhav jha 2024
IT Software Development Resume, Vaibhav jha 2024
 
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdfMastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
 
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdfA Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
 
INGKA DIGITAL: Linked Metadata by Design
INGKA DIGITAL: Linked Metadata by DesignINGKA DIGITAL: Linked Metadata by Design
INGKA DIGITAL: Linked Metadata by Design
 
How to pick right visual testing tool.pdf
How to pick right visual testing tool.pdfHow to pick right visual testing tool.pdf
How to pick right visual testing tool.pdf
 
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
 

Ad104 build a bean workshop

  • 1. MWLUG  2014   AD104:  Build  a  Bean  Workshop   Mike  McGarel,  Collabora/ve  Solu/ons  Developer,     Czarnowski  Display  Services,  Inc.   Devin  Olson,  Collabora/ve  Solu/ons  Developer,   Czarnowski  Display  Services,  Inc.  
  • 2. AD104:  Build  a  Bean  Workshop   Mike  McGarel     Ø Collabora/ve  Solu/ons  Developer  at     Czarnowski  Display  Services   Ø Working  with  Notes/Domino  since  version  4.6   Ø Working  on  the  Web  for  over  14  years   Ø OpenNTF  contributor   Ø Maintain  MWLUG  site  
  • 3. AD104:  Build  a  Bean  Workshop   Devin  Olson     Ø Collabora/ve  Solu/ons  Developer  at     Czarnowski  Display  Services   Ø Notes  /  Domino  consultant  since  1995     (that's  R3  for  you  punks)   Ø PCLP  SA/AD  R4.6,  R5,  R6,  R7     (stopped  taking  tests  aWer  that)   Ø Beer  Snob  (Anheuser-­‐Busch     Cer/fied  Beer  Master)   Ø LearningXPages.com  
  • 4. AD104:  Build  a  Bean  Workshop   Agenda     Ø Dip  into  Java  beans     Ø App  goal   Ø Time  to  build  
  • 5. AD104:  Build  a  Bean  Workshop   LotusScript  and  Java  SimilariDes     Ø LS  has  subs  and  func/ons,  Java  has  methods   Ø Both  strongly  typed     LS:    Dim x As String Java:  String x   Ø Nearly  exact  syntax:   LS:  collec/on.GetFirstDocument   Java:  collec/on.getFirstDocument()  
  • 6. AD104:  Build  a  Bean  Workshop   LotusScript  and  Java  Differences     Ø Case  ma_ers  in  Java   Example:  getFirstDocument()  not  GetFirstDocument()   Ø Beans  persist,  LS  objects  don’t   Ø Java  is  modern,  LS  is  .  .  .    
  • 7. AD104:  Build  a  Bean  Workshop   What  do  we  mean  by  “bean”?     A  Java  object  defined  by  specific  standards   Ø Public  Java  class   Ø Serializable     Ø Private  proper/es  (op/onal)   Ø Public  constructor  with  no  arguments   Ø Public  methods  (not  required,  but  kind  of     pointless  without)  
  • 8. AD104:  Build  a  Bean  Workshop   What  does  a  bean  look  like?     package com.mwlug; import java.io.Serializable; /* other possible libraries */ public class MyClass implements Serializable { private static final long serialVersionUID = 1L; private String myText; /* Other possible variables */ public MyClass() { } public String getMyText() { return myText; } public void setMyText (String txt) { this.myText = txt; } /* Other possible methods */ }
  • 9. AD104:  Build  a  Bean  Workshop   Public  Java  Class     package com.mwlug; import java.io.Serializable; public class MyClass implements Serializable {  
  • 10. AD104:  Build  a  Bean  Workshop   Serializable     package com.mwlug; import java.io.Serializable; public class MyClass implements Serializable { private static final long serialVersionUID = 1L;  
  • 11. AD104:  Build  a  Bean  Workshop   Private  ProperDes     public class MyClass implements Serializable { private static final long serialVersionUID = 1L; private String myString; private Integer myInteger; private List myList;  
  • 12. AD104:  Build  a  Bean  Workshop   Public  Constructor  with  No  Arguments     Sample  1  –  no  methods:   public MyClass() { } Sample  2  –  with  methods:   public MyClass() { myString = “This is my string”; this.myInteger = new Integer(1); }
  • 13. AD104:  Build  a  Bean  Workshop   Public  Methods     public String getMyText() { return myText; } public void setMyText (String txt) { this.myText = txt; }  
  • 14. AD104:  Build  a  Bean  Workshop   What  is  a  “managed”  bean?     A  bean  listed  in  the  facesconfig.xml  file.     <managed-bean> <managed-bean-name>mine </managed-bean-name> <managed-bean-class>com.mwlug.MyClass </managed-bean-class> <managed-bean-scope>view </managed-bean-scope> </managed-bean>  
  • 15. AD104:  Build  a  Bean  Workshop   Why  should  I  use  beans?     Ø Reusability   Ø Persistence   Ø Modern  replacement  for  profile  documents   Ø Easy  way  to  load  Java  methods  
  • 16. AD104:  Build  a  Bean  Workshop   A  few  words  about  recycling     Ø Related  to  C+,  not  Java   Ø Recycling  releases  the  handle  from  memory   Ø Needed  only  for  Lotus-­‐based  Java  objects,  e.g.,   NotesDatabase,  NotesView,  NotesDocument  
  • 17. AD104:  Build  a  Bean  Workshop   Let’s  start  building!  
  • 18. AD104:  Build  a  Bean  Workshop   References   Ø Notes  in  9    (notesin9.com)   Ø Head  First  Java   Ø learningXPages.com     Ø Russell  Maher’s  Connect  2013  Master  Class:  XPages  &   Managed  Beans  (slides  on  xpage/ps.blogspot.com)  
  • 19. AD104:  Build  a  Bean  Workshop     Thank  You  For  AXending   The  authors  appreciate  any  feedback  or  comments  you  care  to  give.   (appropriate  music  lyric  here)  
  • 20. AD104:  Build  a  Bean  Workshop   Contact  Us   Mike  McGarel   Ø  Blog:  h_p://www.bleedyellow.com/blogs/McGarelGramming   Ø  Twi_er:  @mmcgarel   Ø  Email:  mmcgarel@czarnowski.com   Devin  Olson   Ø  Blog:  h_p://www.learningxpages.com   Ø  Twi_er:  @spanky762   Ø  Email:  dolson@czarnowski.com     Ø  Facebook:  facebook.com/default.xsp