SlideShare uma empresa Scribd logo
1 de 16
Baixar para ler offline
LJC/JCP Committee
                         Java Dating
                  By James Gough




Thursday, 14 July 2011
LJC/JCP

          •      Who am I?

          •      What is the LJC/JCP?

          •      Why get involved?




Thursday, 14 July 2011
Who am I?
          •      James Gough

                • jpgough@gmail.com
                • Twitter: goughjam
          •      Java developer for 8 years, 4 years industry experience

          •      Work at a large investment bank developing Flex and Java

          •      Run my own company in spare time developing iOS
                 applications

                                                                   3


Thursday, 14 July 2011
LJC/JCP
          •      LJC recently elected onto the JCP committee

          •      JCP (Java Community Process)

                         •   The JCP is the mechanism for developing
                             standard technical specifications for the
                             Java technology

          •      Interested? Ben Evans @kittylst on twitter, or
                 find me at the bar on Tuesday


                                                              4


Thursday, 14 July 2011
Why get involved?
          •      Chance to have a say

          •      Discover more about Java and the
                 inner workings

          •      Get involved on projects and
                 contribute to Java directly

          •      Offered to do a lightning talk
                •        Coming soon: Java memory pub

                                                        5


Thursday, 14 July 2011
Dates?
          •      The thing that's bothering me at the
                 moment is dating, there’s several things
                 to be aware of:

                •        Choosing a good restaurant

                •        What to wear

                •        ....

                                                      6


Thursday, 14 July 2011
Java Dates
          • Java Date and Calendar
          • Joda Time
          • JSR-310
                                      7


Thursday, 14 July 2011
Java Date
          •      Java Date has been in the language since January 23, 1996

          •      Many good discussions about what’s wrong with dates

          •      Mutability

          •      Date is a DateTime, but there are other classes for SQL

          •      No Timezones

          •      Not easy to use




                                                                   8


Thursday, 14 July 2011
Calendar

          • Still mutable
          • Can’t format a date directly

                                           9


Thursday, 14 July 2011
Example From It’s High Time
                              @JavaOne 2008
          •      How many bugs in this code?

                 Date date = new Date(2007, 12, 13, 16,
                 40);

                 TimeZone zone = TimeZone.getInstance
                 ("Asia/HongKong");

                 Calendar cal = new GregorianCalendar
                 (date, zone);
                 DateFormat fm = new SimpleDateFormat
                 ("HH:mm Z");
                 String str = fm.format(cal);

                                                  10


Thursday, 14 July 2011
Example From It’s High Time
                              @JavaOne 2008
          •      6 bugs in the code!

                 Date date = new Date(2007, 12, 13, 16,
                 40);

                 TimeZone zone = TimeZone.getInstance
                 ("Asia/Hong_Kong");

                 Calendar cal = new GregorianCalendar
                 (date, zone);
                 DateFormat fm = new SimpleDateFormat
                 ("HH:mm Z");
                 String str = fm.format(cal);

                                                  11


Thursday, 14 July 2011
Joda Time
          •      Instant

                •        Moment in time, represented by DateTime. DateTime
                         is immutable

          •      Interval

                •        An interval of time from one instant to another. Both
                         end points have same Chronology and TimeZone

          •      Duration

                •        Duration of time measured in milliseconds. No
                         timezone of chronology applies
                                                                       12


Thursday, 14 July 2011
Joda Time
          •      Period

                •        A period of time defined in terms of fields (e.g. +1 month)

          •      Chronology

                •        A calculation engine supporting complex calendar rules

                •        In most this can be ignored, important to the internal design, but
                         not to the standard user using ISOChronology

          •      Timezones

                •        DateTimeZone zone = DateTimeZone.forID
                         ("Europe/London");


                                                                                  13


Thursday, 14 July 2011
JSR-310
          •      Human/Machine Timelines

                •        Requirement to have a separation of concerns
                         between human and machine timelines

                •        DateTime is better thought of as a LocalDateTime and
                         a timezone

          •      Pluggable Chronology

                •        Restrict DateTime classes to a single calendar system

          •      Nulls

                •        Null means 0 in most cases, ouch!
                                                                        14


Thursday, 14 July 2011
Getting Involved
          •      ThreeTen is now on GitHub

          •      Open project that can be contributed to

          •      A few pull requests have been made since moving to
                 GitHub

          •      Accept the legal agreement

          •      Mailing List: threeten-
                 develop@lists.sourceforge.net

                                                                15


Thursday, 14 July 2011
Contact
          •      James Gough

                • jpgough@gmail.com
                • Twitter: goughjam


                                      3
                                      16


Thursday, 14 July 2011

Mais conteúdo relacionado

Destaque

Denúncia da Lava Jato contra João Santana
Denúncia da Lava Jato contra João SantanaDenúncia da Lava Jato contra João Santana
Denúncia da Lava Jato contra João SantanaMiguel Rosario
 
Логистика на аутсорс: гибкость в период нестабильности IForum2014
Логистика на аутсорс: гибкость в период нестабильности IForum2014Логистика на аутсорс: гибкость в период нестабильности IForum2014
Логистика на аутсорс: гибкость в период нестабильности IForum2014TOCHKA
 
Croatian Govt, the most communicative government in the world?
Croatian Govt, the most communicative government in the world?Croatian Govt, the most communicative government in the world?
Croatian Govt, the most communicative government in the world?Tomislav Korman
 
Questão de ordem - suspeição do relator da Comissão de Impeachment
Questão de ordem - suspeição do relator da Comissão de ImpeachmentQuestão de ordem - suspeição do relator da Comissão de Impeachment
Questão de ordem - suspeição do relator da Comissão de ImpeachmentMiguel Rosario
 
Dicintai alloh dan hamba nya
Dicintai alloh dan hamba nyaDicintai alloh dan hamba nya
Dicintai alloh dan hamba nyaYusuf Santoso
 
Kudavi 2.29.2016
Kudavi 2.29.2016Kudavi 2.29.2016
Kudavi 2.29.2016Tom Currier
 
Extensive sampling of basidiomycete genomes demonstrates inadequacy of the wh...
Extensive sampling of basidiomycete genomes demonstrates inadequacy of the wh...Extensive sampling of basidiomycete genomes demonstrates inadequacy of the wh...
Extensive sampling of basidiomycete genomes demonstrates inadequacy of the wh...Gomez García
 
Online branding for schools
Online branding for schoolsOnline branding for schools
Online branding for schoolsRather Inventive
 
Harnessing the Motivation Wave
Harnessing the Motivation WaveHarnessing the Motivation Wave
Harnessing the Motivation WaveAngad Singh
 
Insights and opportunities
Insights and opportunitiesInsights and opportunities
Insights and opportunitiesKompella Kashyap
 
Tek 2013 - Building Web Apps from a New Angle with AngularJS
Tek 2013 - Building Web Apps from a New Angle with AngularJSTek 2013 - Building Web Apps from a New Angle with AngularJS
Tek 2013 - Building Web Apps from a New Angle with AngularJSPablo Godel
 
Engagor introduction pitch
Engagor introduction pitchEngagor introduction pitch
Engagor introduction pitchDimitri Callens
 

Destaque (19)

Oap
OapOap
Oap
 
Denúncia da Lava Jato contra João Santana
Denúncia da Lava Jato contra João SantanaDenúncia da Lava Jato contra João Santana
Denúncia da Lava Jato contra João Santana
 
Логистика на аутсорс: гибкость в период нестабильности IForum2014
Логистика на аутсорс: гибкость в период нестабильности IForum2014Логистика на аутсорс: гибкость в период нестабильности IForum2014
Логистика на аутсорс: гибкость в период нестабильности IForum2014
 
Croatian Govt, the most communicative government in the world?
Croatian Govt, the most communicative government in the world?Croatian Govt, the most communicative government in the world?
Croatian Govt, the most communicative government in the world?
 
Questão de ordem - suspeição do relator da Comissão de Impeachment
Questão de ordem - suspeição do relator da Comissão de ImpeachmentQuestão de ordem - suspeição do relator da Comissão de Impeachment
Questão de ordem - suspeição do relator da Comissão de Impeachment
 
Dicintai alloh dan hamba nya
Dicintai alloh dan hamba nyaDicintai alloh dan hamba nya
Dicintai alloh dan hamba nya
 
Notam 30 07-15
Notam 30 07-15Notam 30 07-15
Notam 30 07-15
 
Assets models seminar
Assets models seminarAssets models seminar
Assets models seminar
 
Kudavi 2.29.2016
Kudavi 2.29.2016Kudavi 2.29.2016
Kudavi 2.29.2016
 
Extensive sampling of basidiomycete genomes demonstrates inadequacy of the wh...
Extensive sampling of basidiomycete genomes demonstrates inadequacy of the wh...Extensive sampling of basidiomycete genomes demonstrates inadequacy of the wh...
Extensive sampling of basidiomycete genomes demonstrates inadequacy of the wh...
 
Oap
OapOap
Oap
 
Como ler a bíblia
Como ler a bíbliaComo ler a bíblia
Como ler a bíblia
 
Online branding for schools
Online branding for schoolsOnline branding for schools
Online branding for schools
 
Harnessing the Motivation Wave
Harnessing the Motivation WaveHarnessing the Motivation Wave
Harnessing the Motivation Wave
 
Insights and opportunities
Insights and opportunitiesInsights and opportunities
Insights and opportunities
 
Tek 2013 - Building Web Apps from a New Angle with AngularJS
Tek 2013 - Building Web Apps from a New Angle with AngularJSTek 2013 - Building Web Apps from a New Angle with AngularJS
Tek 2013 - Building Web Apps from a New Angle with AngularJS
 
Homes
HomesHomes
Homes
 
Engagor introduction pitch
Engagor introduction pitchEngagor introduction pitch
Engagor introduction pitch
 
02_07_WH_ChrisWalker
02_07_WH_ChrisWalker02_07_WH_ChrisWalker
02_07_WH_ChrisWalker
 

Último

Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Zilliz
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxRemote DBA Services
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityWSO2
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 

Último (20)

Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 

Java Dating - JSR 310 Lightning Talk

  • 1. LJC/JCP Committee Java Dating By James Gough Thursday, 14 July 2011
  • 2. LJC/JCP • Who am I? • What is the LJC/JCP? • Why get involved? Thursday, 14 July 2011
  • 3. Who am I? • James Gough • jpgough@gmail.com • Twitter: goughjam • Java developer for 8 years, 4 years industry experience • Work at a large investment bank developing Flex and Java • Run my own company in spare time developing iOS applications 3 Thursday, 14 July 2011
  • 4. LJC/JCP • LJC recently elected onto the JCP committee • JCP (Java Community Process) • The JCP is the mechanism for developing standard technical specifications for the Java technology • Interested? Ben Evans @kittylst on twitter, or find me at the bar on Tuesday 4 Thursday, 14 July 2011
  • 5. Why get involved? • Chance to have a say • Discover more about Java and the inner workings • Get involved on projects and contribute to Java directly • Offered to do a lightning talk • Coming soon: Java memory pub 5 Thursday, 14 July 2011
  • 6. Dates? • The thing that's bothering me at the moment is dating, there’s several things to be aware of: • Choosing a good restaurant • What to wear • .... 6 Thursday, 14 July 2011
  • 7. Java Dates • Java Date and Calendar • Joda Time • JSR-310 7 Thursday, 14 July 2011
  • 8. Java Date • Java Date has been in the language since January 23, 1996 • Many good discussions about what’s wrong with dates • Mutability • Date is a DateTime, but there are other classes for SQL • No Timezones • Not easy to use 8 Thursday, 14 July 2011
  • 9. Calendar • Still mutable • Can’t format a date directly 9 Thursday, 14 July 2011
  • 10. Example From It’s High Time @JavaOne 2008 • How many bugs in this code? Date date = new Date(2007, 12, 13, 16, 40); TimeZone zone = TimeZone.getInstance ("Asia/HongKong"); Calendar cal = new GregorianCalendar (date, zone); DateFormat fm = new SimpleDateFormat ("HH:mm Z"); String str = fm.format(cal); 10 Thursday, 14 July 2011
  • 11. Example From It’s High Time @JavaOne 2008 • 6 bugs in the code! Date date = new Date(2007, 12, 13, 16, 40); TimeZone zone = TimeZone.getInstance ("Asia/Hong_Kong"); Calendar cal = new GregorianCalendar (date, zone); DateFormat fm = new SimpleDateFormat ("HH:mm Z"); String str = fm.format(cal); 11 Thursday, 14 July 2011
  • 12. Joda Time • Instant • Moment in time, represented by DateTime. DateTime is immutable • Interval • An interval of time from one instant to another. Both end points have same Chronology and TimeZone • Duration • Duration of time measured in milliseconds. No timezone of chronology applies 12 Thursday, 14 July 2011
  • 13. Joda Time • Period • A period of time defined in terms of fields (e.g. +1 month) • Chronology • A calculation engine supporting complex calendar rules • In most this can be ignored, important to the internal design, but not to the standard user using ISOChronology • Timezones • DateTimeZone zone = DateTimeZone.forID ("Europe/London"); 13 Thursday, 14 July 2011
  • 14. JSR-310 • Human/Machine Timelines • Requirement to have a separation of concerns between human and machine timelines • DateTime is better thought of as a LocalDateTime and a timezone • Pluggable Chronology • Restrict DateTime classes to a single calendar system • Nulls • Null means 0 in most cases, ouch! 14 Thursday, 14 July 2011
  • 15. Getting Involved • ThreeTen is now on GitHub • Open project that can be contributed to • A few pull requests have been made since moving to GitHub • Accept the legal agreement • Mailing List: threeten- develop@lists.sourceforge.net 15 Thursday, 14 July 2011
  • 16. Contact • James Gough • jpgough@gmail.com • Twitter: goughjam 3 16 Thursday, 14 July 2011