mwlug 2014: atlug comes to you

Post on 25-May-2015

264 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

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.

TRANSCRIPT

ATLUG Comes To

You

Quarterly Meetings

3rd T

hursd

ay

2nd

Month

ATLUG Day of Champions

April 7-8, 2104 - Atlanta, Georgia

Speed-Roaring

ChampTalks

GURUpalooza

The impact of mobile on human perceptionTim

Tripco

ny

Best M

eth

ods

Presented By Nathan Freeman, Red Pill Development

8

Affordable

9

"For 5 dollars, this better get fixed soon”

10

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

11

"For 5 dollars I opulent expect this."

12

“It was quite expensive for a short game. very

disappointed."

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."

14

15

does your enterprise have an

app store?

16

if so, are you paying attention to

reviews?

17

the pace of modern

18

modern release cyclemonthly = standard

quarterly = acceptable

semi-annually = apathetic

> 12 months = abandoned

19

What % of your applications

20

> 1 month?

21

> 1 Year?

22

> 1 Decade?

23

Then

24

Now

25

Then

26

Now

27

Then

28

Now

29

Are you still delivering this

30

When your customers want

31

Convergence

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

54

55

56

57

58

59

–Alex Salkever, readwrite.com

“One Card To Smarten Up Dumb Gadgets And Connect

Them All”

60

61

62

63

simplicity

64

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

Finish

65

66

Lotus NotesLive Long and Prosper

Peter PresnellCEO

Technology Trends

What is the market?

Is there a reason to change?

Are the barriers to exit high?

Mainframe

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

Slam dunk to replace mainframes with faster, smaller,

cheaper servers?

COBOL (circa 1959)

55 Years

COBOL is not modern

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

One in four universities teach COBOL

* Bridging the COBOL skills gap – Micro Focus, 2013

1980: It was the ONLY choice

170 billion lines of code

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

That’s a lot of bitcoins….

And they just keep going

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

Businesses will rely on COBOL for another

ten to twenty years*

* Bridging the COBOL skills gap – Micro Focus, 2013

Enterprise Applications

High barriers to exit

Blackberry

A once thriving company

Suddenly looked like this…..

No longer just a business device

Ubiquitous device

Everybody has one

I don’t need multiple phones!

We replace our phones every two years

Soon everyone was using something else

Mobile Devices

Low barriers to exit

Notes will soon turn 25

1989 - 2014

What does the future hold?

Notes Mail

Current messaging

File store

30-day transition period

Messaging

Low barriers to exit

Notes Applications

Domino Designer on every desk

Easy to learn and deploy

Handle any problem

The most successful SMA platform ever!

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

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

And the code….

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

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

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

Time

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

i.e. Team of 4 developers 5 years

Time

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

i.e. Large team of consultants forever

SMAs

High barriers to exit

Implications

Notes applications are NOT going away!

Think 10+ years

Business needs are not frozen

The expectation gap Is growing

Adding modern features deliversadditional business value

Notes is web 2.0

Notes is mobile

Notes Client

Keeping your employees happy

Keeping your business profitable

A sustained investment in the platform

Maintenance

Latest Version of Domino Always

Training

Web Enablement: XPages

Mobile Access: XPages

Social Capabilities: SBT

A sustained investment in the platform

Maintenance

Latest Version of Domino Always

Training

Web Enablement: XPages

Mobile Access: XPages

Social Capabilities: SBT

You Will Take Me To Java Now

Nath

an

Freem

an

Red

Pill Develo

pm

ent

Clone of Visual Basic (circa 1994)

• Netscape Navigator 1.0 was released

China got its first Internet connection

LotusScript Advancements

• Boolean• Array…()• Fulltrim()

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• …

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

It’s a different language!

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

This is not a different language

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

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

Classes: How do they work?

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

But I like procedures!

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;

I tried Java before…

Java is different now

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

libraries

Future ProofingLotusScriptTim

Tripco

ny

Best M

eth

ods

Presented By Devin Olson, Czarnowski

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

The future is XPages

JavaJavascript

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

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)

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

( )

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

Document fields are method parameters

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

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

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

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!

What language is this?

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

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”);

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!

Future-proofingNotes client applications

Nothing lasts forever

Make hay while the sun shines

Before they end up here!!

Domain Catalog

Retirement

Hidden design

Assign a template

UsersPower Users

(Admins)Developers

Segment Users

Gestures

Actions EventsHotspotsButtons

What are gestures?

Client server

@FormulaLotusScrip

t

JavaScript

SSJSJava

LotusScript

(Agents)

Back end versus front end

Move the code

Agents

Views

Outlines made us lazy

Organize views

Hidden views

Division Lookup

(Division Lookup)

Web views

$Flags +“n”

Eliminate unwanted viewsCopy Of By Category

Another Copy Of By Category

By Category 12091989

Backup copy of By Category

By Category (Old)

Eliminate unused views

log.nsf (Database Usage)

$Collection

Eliminate conflicts

@IsUnavailable ($Conflict)

Minimize response documents

Forms

Mobile First

Clearly define labels

Group fields carefully

Adding Style Sheets

Address Fields

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

“ “ + State + “ “ + Zipcode

Rich Text

OLE

Rich Text Lite

top related