198
ATLUG Comes To You

MWLUG 2014: ATLUG Comes To You

Embed Size (px)

DESCRIPTION

A collection of FIVE presentations given at the recent ATLUG Day of Champions event. The Impact of Mobile on Human Perception explore the changes that mobile is driving on user expectations of software. Lotus Notes: Live Long and Prosper look at trends in technology to predict the future for Notes applications. Three short (4-minute) presentations then give ideas and best practices on a range of techniques that can be used to prepare Notes applications for that future.

Citation preview

Page 1: MWLUG 2014: ATLUG Comes To You

ATLUG Comes To

You

Page 2: MWLUG 2014: ATLUG Comes To You

Quarterly Meetings

3rd T

hursd

ay

2nd

Month

Page 3: MWLUG 2014: ATLUG Comes To You

ATLUG Day of Champions

April 7-8, 2104 - Atlanta, Georgia

Page 4: MWLUG 2014: ATLUG Comes To You

Speed-Roaring

Page 5: MWLUG 2014: ATLUG Comes To You

ChampTalks

Page 6: MWLUG 2014: ATLUG Comes To You

GURUpalooza

Page 7: MWLUG 2014: ATLUG Comes To You

The impact of mobile on human perceptionTim

Tripco

ny

Best M

eth

ods

Presented By Nathan Freeman, Red Pill Development

Page 8: MWLUG 2014: ATLUG Comes To You

8

Affordable

Page 9: MWLUG 2014: ATLUG Comes To You

9

"For 5 dollars, this better get fixed soon”

Page 10: MWLUG 2014: ATLUG Comes To You

10

"Please fix, a 5 dollar app should work flawlessly"

Page 11: MWLUG 2014: ATLUG Comes To You

11

"For 5 dollars I opulent expect this."

Page 12: MWLUG 2014: ATLUG Comes To You

12

“It was quite expensive for a short game. very

disappointed."

Page 13: MWLUG 2014: ATLUG Comes To You

13

"If it was 99 cents then I would have rated it four or five stars, because if you think

about it Angry Birds is cheap and you get days worth of play."

Page 14: MWLUG 2014: ATLUG Comes To You

14

Page 15: MWLUG 2014: ATLUG Comes To You

15

does your enterprise have an

app store?

Page 16: MWLUG 2014: ATLUG Comes To You

16

if so, are you paying attention to

reviews?

Page 17: MWLUG 2014: ATLUG Comes To You

17

the pace of modern

Page 18: MWLUG 2014: ATLUG Comes To You

18

modern release cyclemonthly = standard

quarterly = acceptable

semi-annually = apathetic

> 12 months = abandoned

Page 19: MWLUG 2014: ATLUG Comes To You

19

What % of your applications

Page 20: MWLUG 2014: ATLUG Comes To You

20

> 1 month?

Page 21: MWLUG 2014: ATLUG Comes To You

21

> 1 Year?

Page 22: MWLUG 2014: ATLUG Comes To You

22

> 1 Decade?

Page 23: MWLUG 2014: ATLUG Comes To You

23

Then

Page 24: MWLUG 2014: ATLUG Comes To You

24

Now

Page 25: MWLUG 2014: ATLUG Comes To You

25

Then

Page 26: MWLUG 2014: ATLUG Comes To You

26

Now

Page 27: MWLUG 2014: ATLUG Comes To You

27

Then

Page 28: MWLUG 2014: ATLUG Comes To You

28

Now

Page 29: MWLUG 2014: ATLUG Comes To You

29

Are you still delivering this

Page 30: MWLUG 2014: ATLUG Comes To You

30

When your customers want

Page 31: MWLUG 2014: ATLUG Comes To You

31

Convergence

Page 32: MWLUG 2014: ATLUG Comes To You

32

Page 33: MWLUG 2014: ATLUG Comes To You

33

Page 34: MWLUG 2014: ATLUG Comes To You

34

Page 35: MWLUG 2014: ATLUG Comes To You

35

Page 36: MWLUG 2014: ATLUG Comes To You

36

Page 37: MWLUG 2014: ATLUG Comes To You

37

Page 38: MWLUG 2014: ATLUG Comes To You

38

Page 39: MWLUG 2014: ATLUG Comes To You

39

Page 40: MWLUG 2014: ATLUG Comes To You

40

Page 41: MWLUG 2014: ATLUG Comes To You

41

Page 42: MWLUG 2014: ATLUG Comes To You

42

Page 43: MWLUG 2014: ATLUG Comes To You

43

Page 44: MWLUG 2014: ATLUG Comes To You

44

Page 45: MWLUG 2014: ATLUG Comes To You

45

Page 46: MWLUG 2014: ATLUG Comes To You

46

Page 47: MWLUG 2014: ATLUG Comes To You

47

Page 48: MWLUG 2014: ATLUG Comes To You

48

Page 49: MWLUG 2014: ATLUG Comes To You

49

Page 50: MWLUG 2014: ATLUG Comes To You

50

Page 51: MWLUG 2014: ATLUG Comes To You

51

Page 52: MWLUG 2014: ATLUG Comes To You

52

Page 53: MWLUG 2014: ATLUG Comes To You
Page 54: MWLUG 2014: ATLUG Comes To You

54

Page 55: MWLUG 2014: ATLUG Comes To You

55

Page 56: MWLUG 2014: ATLUG Comes To You

56

Page 57: MWLUG 2014: ATLUG Comes To You

57

Page 58: MWLUG 2014: ATLUG Comes To You

58

Page 59: MWLUG 2014: ATLUG Comes To You

59

–Alex Salkever, readwrite.com

“One Card To Smarten Up Dumb Gadgets And Connect

Them All”

Page 60: MWLUG 2014: ATLUG Comes To You

60

Page 61: MWLUG 2014: ATLUG Comes To You

61

Page 62: MWLUG 2014: ATLUG Comes To You

62

Page 63: MWLUG 2014: ATLUG Comes To You

63

simplicity

Page 64: MWLUG 2014: ATLUG Comes To You

64

Next, Next, Yes, Next, No, I Agree, Yes, Next,

Finish

Page 65: MWLUG 2014: ATLUG Comes To You

65

Page 66: MWLUG 2014: ATLUG Comes To You

66

Page 67: MWLUG 2014: ATLUG Comes To You

Lotus NotesLive Long and Prosper

Peter PresnellCEO

Page 68: MWLUG 2014: ATLUG Comes To You

Technology Trends

Page 69: MWLUG 2014: ATLUG Comes To You
Page 70: MWLUG 2014: ATLUG Comes To You

What is the market?

Page 71: MWLUG 2014: ATLUG Comes To You

Is there a reason to change?

Page 72: MWLUG 2014: ATLUG Comes To You

Are the barriers to exit high?

Page 73: MWLUG 2014: ATLUG Comes To You

Mainframe

A mainframe has one of the worst price/performance ratios of any product or technology in any industry.

Page 74: MWLUG 2014: ATLUG Comes To You

Slam dunk to replace mainframes with faster, smaller,

cheaper servers?

Page 75: MWLUG 2014: ATLUG Comes To You

COBOL (circa 1959)

55 Years

Page 76: MWLUG 2014: ATLUG Comes To You

COBOL is not modern

Page 77: MWLUG 2014: ATLUG Comes To You

80% of daily business transactions are still processed in COBOL * IT Modernization: The Changing COBOL Market Could Affect Your Decision – Gartner Group, 8 August 2008

Page 78: MWLUG 2014: ATLUG Comes To You

One in four universities teach COBOL

* Bridging the COBOL skills gap – Micro Focus, 2013

Page 79: MWLUG 2014: ATLUG Comes To You
Page 80: MWLUG 2014: ATLUG Comes To You

1980: It was the ONLY choice

Page 81: MWLUG 2014: ATLUG Comes To You

170 billion lines of code

* IT Modernization: The Changing COBOL Market Could Affect Your Decision – Gartner Group, 8 August 2008

Page 82: MWLUG 2014: ATLUG Comes To You

That’s a lot of bitcoins….

Page 83: MWLUG 2014: ATLUG Comes To You

And they just keep going

Page 84: MWLUG 2014: ATLUG Comes To You

The Risk Of Failure Is High

31% of projects are cancelled before completed53% of projects will cost 189% of their original costs* Choas Report – Standish Group

Page 85: MWLUG 2014: ATLUG Comes To You

Businesses will rely on COBOL for another

ten to twenty years*

* Bridging the COBOL skills gap – Micro Focus, 2013

Page 86: MWLUG 2014: ATLUG Comes To You

Enterprise Applications

High barriers to exit

Page 87: MWLUG 2014: ATLUG Comes To You

Blackberry

Page 88: MWLUG 2014: ATLUG Comes To You

A once thriving company

Page 89: MWLUG 2014: ATLUG Comes To You

Suddenly looked like this…..

Page 90: MWLUG 2014: ATLUG Comes To You

No longer just a business device

Page 91: MWLUG 2014: ATLUG Comes To You

Ubiquitous device

Page 92: MWLUG 2014: ATLUG Comes To You

Everybody has one

Page 93: MWLUG 2014: ATLUG Comes To You

I don’t need multiple phones!

Page 94: MWLUG 2014: ATLUG Comes To You

We replace our phones every two years

Page 95: MWLUG 2014: ATLUG Comes To You

Soon everyone was using something else

Page 96: MWLUG 2014: ATLUG Comes To You

Mobile Devices

Low barriers to exit

Page 97: MWLUG 2014: ATLUG Comes To You
Page 98: MWLUG 2014: ATLUG Comes To You

Notes will soon turn 25

1989 - 2014

Page 99: MWLUG 2014: ATLUG Comes To You

What does the future hold?

Page 100: MWLUG 2014: ATLUG Comes To You

Notes Mail

Page 101: MWLUG 2014: ATLUG Comes To You

Current messaging

Page 102: MWLUG 2014: ATLUG Comes To You

File store

Page 103: MWLUG 2014: ATLUG Comes To You

30-day transition period

Page 104: MWLUG 2014: ATLUG Comes To You

Messaging

Low barriers to exit

Page 105: MWLUG 2014: ATLUG Comes To You

Notes Applications

Page 106: MWLUG 2014: ATLUG Comes To You

Domino Designer on every desk

Page 107: MWLUG 2014: ATLUG Comes To You

Easy to learn and deploy

Page 108: MWLUG 2014: ATLUG Comes To You

Handle any problem

Page 109: MWLUG 2014: ATLUG Comes To You

The most successful SMA platform ever!

• 50,000 companies• 200 applications (avg)• 10 million applications

Page 110: MWLUG 2014: ATLUG Comes To You

Apple’s app store reached 1 million applications in October 2013

Page 111: MWLUG 2014: ATLUG Comes To You

And the code….

5,000 lines per application x10 million applications =50 billion lines of code

Page 112: MWLUG 2014: ATLUG Comes To You

Cost200 applications x$20,000 per application =$4 million investment

10 million applications x$20,000 per application =$200 billion investment

Page 113: MWLUG 2014: ATLUG Comes To You

Time

IBM XPages:200 applications x5 weeks per application = 20 years

i.e. Team of 4 developers 5 years

Page 114: MWLUG 2014: ATLUG Comes To You

Time

Platform migration:200 applications x3 months per application = 50 years

i.e. Large team of consultants forever

Page 115: MWLUG 2014: ATLUG Comes To You

SMAs

High barriers to exit

Page 116: MWLUG 2014: ATLUG Comes To You

Implications

Page 117: MWLUG 2014: ATLUG Comes To You

Notes applications are NOT going away!

Page 118: MWLUG 2014: ATLUG Comes To You

Think 10+ years

Page 119: MWLUG 2014: ATLUG Comes To You

Business needs are not frozen

Page 120: MWLUG 2014: ATLUG Comes To You

The expectation gap Is growing

Page 121: MWLUG 2014: ATLUG Comes To You

Adding modern features deliversadditional business value

Page 122: MWLUG 2014: ATLUG Comes To You

Notes is web 2.0

Page 123: MWLUG 2014: ATLUG Comes To You

Notes is mobile

Page 124: MWLUG 2014: ATLUG Comes To You

Notes Client

Page 125: MWLUG 2014: ATLUG Comes To You

Keeping your employees happy

Page 126: MWLUG 2014: ATLUG Comes To You

Keeping your business profitable

Page 127: MWLUG 2014: ATLUG Comes To You

A sustained investment in the platform

Maintenance

Latest Version of Domino Always

Training

Web Enablement: XPages

Mobile Access: XPages

Social Capabilities: SBT

Page 128: MWLUG 2014: ATLUG Comes To You

A sustained investment in the platform

Maintenance

Latest Version of Domino Always

Training

Web Enablement: XPages

Mobile Access: XPages

Social Capabilities: SBT

Page 129: MWLUG 2014: ATLUG Comes To You

You Will Take Me To Java Now

Nath

an

Freem

an

Red

Pill Develo

pm

ent

Page 130: MWLUG 2014: ATLUG Comes To You

Clone of Visual Basic (circa 1994)

Page 131: MWLUG 2014: ATLUG Comes To You
Page 132: MWLUG 2014: ATLUG Comes To You

• Netscape Navigator 1.0 was released

Page 133: MWLUG 2014: ATLUG Comes To You
Page 134: MWLUG 2014: ATLUG Comes To You

China got its first Internet connection

Page 135: MWLUG 2014: ATLUG Comes To You
Page 136: MWLUG 2014: ATLUG Comes To You
Page 137: MWLUG 2014: ATLUG Comes To You

LotusScript Advancements

• Boolean• Array…()• Fulltrim()

Page 138: MWLUG 2014: ATLUG Comes To You

VisualBasic Advancements

• Initializers and argument defaults• Optional parameters• Static methods• Detailed Accessmodifers• Enums, Generics and Abstracts• Interfaces, Modules, Operators, Events,

Delegates• Asynchronous processes• Boolean, Byte, Char, Date, Decimal• Directives• Try/Catch/Finally• …

Page 139: MWLUG 2014: ATLUG Comes To You

Features of Java• Initializers and argument defaults• Optional parameters• Static methods• Detailed Accessmodifers• Enums, Generics and Abstracts• Interfaces, Modules, Operators, Events,

Delegates• Asynchronous processes• Boolean, Byte, Char, Date, Decimal• Directives• Try/Catch/Finally

Page 140: MWLUG 2014: ATLUG Comes To You

It’s a different language!

Page 141: MWLUG 2014: ATLUG Comes To You

No, this is a different language

Público Función obtenerLafechaDelDocumento() Como Variante

Oscurecer sess Como Nuevo NotasSesiónOscurecer db Como NotasBasededatosEstablecer db = sess.ObtenerBasededatos("servidor", "registros.nsf", falso)Oscurecer doc Como NotasDocumentoEstablecer doc = db.CrearElDocumento()doc.formulario = "cuarto de baño"Convocar doc.firmar()Convocar doc.guardar(verdadero, verdadero, falso)obtenerLafechaDelDocumento = doc.modificadaPorúltimaVez

Terminar Función

Page 142: MWLUG 2014: ATLUG Comes To You

This is not a different language

Dim db as NotesDatabaseSet db = session.Getdatabase(“server”, “file”)

Database db = session.getDatabase(“server”, “file”);

Page 143: MWLUG 2014: ATLUG Comes To You

Classes: How do they work?

Page 144: MWLUG 2014: ATLUG Comes To You

You already knowSet s = New NotesSession()Set item = doc.Replaceitemvalue(“foo”, “bar”)doc.Replaceitemvalue(“Readers”, “Nathan T Freeman”).readers=true

Page 145: MWLUG 2014: ATLUG Comes To You

But I like procedures!

Page 146: MWLUG 2014: ATLUG Comes To You

Fine, stick with them‘ScriptLibrary libs.atFormulas

Public Function atRightBack(stringToSearch As String, subString As String) As String

End Function

Use “atFormulas”

//Java class libs.atFormulas

public static String rightBack(String stringToSearch, String subString ) {

}

import static libs.atFormulas;

Page 147: MWLUG 2014: ATLUG Comes To You

I tried Java before…

Page 148: MWLUG 2014: ATLUG Comes To You

Java is different now

Page 149: MWLUG 2014: ATLUG Comes To You

Why bother?• Cheaper to maintain• Fewer bugs• Runs faster• Easier to hire• Better guidance• Portable skills• Millions of open source and commercial

libraries

Page 150: MWLUG 2014: ATLUG Comes To You

Future ProofingLotusScriptTim

Tripco

ny

Best M

eth

ods

Presented By Devin Olson, Czarnowski

Page 151: MWLUG 2014: ATLUG Comes To You

LotusScript is the past

20 years old (almost to the day)Only 2 key changes to the language itself:- Booleans Convenience functionsEverything else has been API enhancements

Page 152: MWLUG 2014: ATLUG Comes To You

The future is XPages

JavaJavascript

Page 153: MWLUG 2014: ATLUG Comes To You

Subconscious preparation

Apply 4 optional changes to how you write LotusScript

Backwards compatible to R4 Training yourself for free and without even

realizing it Runtime execution and ongoing maintenance

will be either Identical or Better

Page 154: MWLUG 2014: ATLUG Comes To You

Case matters

Learn to love “camel case” The LotusScript editor is wrong

Autocompletes to proper case database.Gettitle() should be database.getTitle() document.Getitemvalue() should be document.getItemValue()

Lower camel is the convention for nearly every language in common use For method names (e.g. identifyUser() ) Class names should still be upper camel (e.g. Database,

DocumentCollection)

Page 155: MWLUG 2014: ATLUG Comes To You

Case matters

If becomes if For becomes for While becomes while ...you’re probably seeing a pattern here Because these are all one word, the lower camel is indistinguishable from lowercase

Page 156: MWLUG 2014: ATLUG Comes To You

( )

Parentheses matter

Optional in several portions of LotusScript syntax Mandatory in each equivalent in Java and JavaScript

Functions:o Somemethodnameo someMethodName()

Conditionals:o if somethingistrue theno if (somethingIsTrue) then

If it doesn’t make the code harder to read, add parentheses

In Java, you can tell Designer to remove any parentheses you don’t need

Page 157: MWLUG 2014: ATLUG Comes To You

Document fields are method parameters

Stop using:doc.SubjectStart using: doc.getItemValue(“subject”)doc.replaceItemValue(“subject”,“Hello world!”)

Page 158: MWLUG 2014: ATLUG Comes To You

Write your own classes LotusScript has always had classes (yes, since R4) Most LotusScript developers only write top-level

functions If you’ve ever written code that uses NotesSession,

NotesDatabase, etc., you’re already using classes, you just might not be writing your own

Classes simplify variable management Classes maximize code reusability Classes help our code to stop thinking in “documents”

and start thinking in business processes, and the people, places, and things that interact with and are impacted by those processes

Page 159: MWLUG 2014: ATLUG Comes To You

Write your own classes Don’t use the Property Get / Property Set pattern Define private properties, expose each via “getters” and

“setters” If it’s a Boolean, use isPropertyName() instead of

getPropertyName()

Private firstName As String Public Function getFirstName() getFirstName = firstNameEnd Function Public Function setFirstName(firstName byVal As String) Me.firstName = firstNameEnd Function

Page 160: MWLUG 2014: ATLUG Comes To You

Write your own classes

THIS IS THE SINGLE MOST IMPORTANT THING YOU CAN DO TO EASE YOUR TRANSITION TO XPAGES OR SHAREPOINT OR NATIVE MOBILE DEVELOPMENT OR PRETTY MUCH ANY DEVELOPMENT PLATFORM THAT CURRENTLY EXISTS OR IS LIKELY TO EMERGE IN THE FORESEEABLE FUTURE OH MY GOD I SIMPLY CANNOT STRESS THIS ENOUGH JUST DO IT!

Page 161: MWLUG 2014: ATLUG Comes To You

What language is this?

if (workflow.isComplete()) { doc.replaceItemValue(“status”, “Approved”); }

Page 162: MWLUG 2014: ATLUG Comes To You

Okay, fine, there’s one other difference

LotusScriptDim doc As NotesDocumentSet doc = database.getDocumentByID(“OU812”)

JavaScriptvar doc = database.getDocumentByID(“OU812”);

JavaDocument doc = database.getDocumentByID(“OU812”);

Page 163: MWLUG 2014: ATLUG Comes To You

If you adopt these habits now…

Learning JavaScript or Java is mostly about remembering two things: 1. where to use curly

braces2. where to use

semicolons

Yes, I’m serious!

Page 164: MWLUG 2014: ATLUG Comes To You

Future-proofingNotes client applications

Page 165: MWLUG 2014: ATLUG Comes To You

Nothing lasts forever

Page 166: MWLUG 2014: ATLUG Comes To You
Page 167: MWLUG 2014: ATLUG Comes To You

Make hay while the sun shines

Page 168: MWLUG 2014: ATLUG Comes To You

Before they end up here!!

Page 169: MWLUG 2014: ATLUG Comes To You

Domain Catalog

Page 170: MWLUG 2014: ATLUG Comes To You

Retirement

Page 171: MWLUG 2014: ATLUG Comes To You

Hidden design

Page 172: MWLUG 2014: ATLUG Comes To You

Assign a template

Page 173: MWLUG 2014: ATLUG Comes To You

UsersPower Users

(Admins)Developers

Segment Users

Page 174: MWLUG 2014: ATLUG Comes To You

Gestures

Page 175: MWLUG 2014: ATLUG Comes To You

Actions EventsHotspotsButtons

What are gestures?

Page 176: MWLUG 2014: ATLUG Comes To You

Client server

@FormulaLotusScrip

t

JavaScript

SSJSJava

LotusScript

(Agents)

Page 177: MWLUG 2014: ATLUG Comes To You

Back end versus front end

Page 178: MWLUG 2014: ATLUG Comes To You

Move the code

Page 179: MWLUG 2014: ATLUG Comes To You

Agents

Page 180: MWLUG 2014: ATLUG Comes To You
Page 181: MWLUG 2014: ATLUG Comes To You

Views

Page 182: MWLUG 2014: ATLUG Comes To You

Outlines made us lazy

Page 183: MWLUG 2014: ATLUG Comes To You

Organize views

Page 184: MWLUG 2014: ATLUG Comes To You

Hidden views

Division Lookup

(Division Lookup)

Page 185: MWLUG 2014: ATLUG Comes To You

Web views

$Flags +“n”

Page 186: MWLUG 2014: ATLUG Comes To You

Eliminate unwanted viewsCopy Of By Category

Another Copy Of By Category

By Category 12091989

Backup copy of By Category

By Category (Old)

Page 187: MWLUG 2014: ATLUG Comes To You

Eliminate unused views

log.nsf (Database Usage)

$Collection

Page 188: MWLUG 2014: ATLUG Comes To You

Eliminate conflicts

@IsUnavailable ($Conflict)

Page 189: MWLUG 2014: ATLUG Comes To You

Minimize response documents

Page 190: MWLUG 2014: ATLUG Comes To You

Forms

Page 191: MWLUG 2014: ATLUG Comes To You

Mobile First

Page 192: MWLUG 2014: ATLUG Comes To You

Clearly define labels

Page 193: MWLUG 2014: ATLUG Comes To You

Group fields carefully

Page 194: MWLUG 2014: ATLUG Comes To You

Adding Style Sheets

Page 195: MWLUG 2014: ATLUG Comes To You

Address Fields

StreetAddress1 + “ “ + StreetAddress2 + “ “ + City +

“ “ + State + “ “ + Zipcode

Page 196: MWLUG 2014: ATLUG Comes To You

Rich Text

Page 197: MWLUG 2014: ATLUG Comes To You

OLE

Page 198: MWLUG 2014: ATLUG Comes To You

Rich Text Lite