Jobb smartere med Notes 8 – view collaboration history !


Det er mye nytt med Lotus Notes 8, men en av de godt skjulte med dog nyttige feature’ne, er “View Collaboration History”. Du kan nå se hvilken kommunikasjon du har hatt med kontakter. Dette inkluderer

  • IM/Chat (hvis du lagrer samtalene)
  • Epost
  • Delte (shared) dokumenter

Det du skal være klar over, er at du ikke får tilgang til all kommunikasjon av disse typene, men kun siste 2 ukers aktivitet (*1) . Dette er en feature fullstendig uavhengig av “Activitities” for de av dere som er kjent med dette produktet (del av Lotus Connections). Det som er litt ekstra kult med dette verktøyet, er at det ikke er “Notes-spesifikt”, i den forstand at det kun funker for kommunikasjon med Notes-brukere. Neida, har du mailet med eksterne, så funker det like godt.
View Collaboration History, finner du på 2 måter:

  1. Fra adresseboka di
  2. Hva et view

Dersom du står i adresseboka di, kan du høyreklikke på den personen du ønsker å se informasjonen om:

eller du kan klikke på den lille pilen ved “chat-ikonet”, og velge samme menyvalg som over:

Etter å ha valgt et av disse valgene, blir du presentert siste 2 ukers “aktivitet” for valgte person:

Et meget nyttig og ikke minst effektivt verktøy dersom du vil finne aktivitet på tvers av chats/mail og delte dokumenter.

*1) Jeg har testet dette en del, og dette med at det kun er siste 2 ukers aktivitet som tas med, har jeg ikke helt track på. Jeg ser at det hender den tar med mere, men det kan være at dette har med “threads” å gjøre.

Dot or Not?



La oss se litt på LotusScript, og hvordan vi kan aksessere felter i et NotesDocumet objekt. Og det er her “Dot or Not” kommer inn. La oss se litt grunnleggende på dette først.

DOT
For å hente ut en verdi fra et NotesDocument, brukes følgende metode, vha “dot-notation”:

Set-metode:

Dim doc as NotesDocument
doc.Subject = “Dette er en tittel i feltet Subject”

Get-metode:

Dim doc as NotesDocument
Dim sTmp as String
sTmp = doc.Subject(0)

Dette ser sikkert kjent ut, og en metode som mange bruker. Man henter og setter verdier vha å bruke “dot-notation”, altså “.” – et punktum. Man henter og setter verdier på så og si samme måte.

NOT
Det finnes et alternativ til “dot-notation”, kall det gjerne “not-notation”, men som bruker objektmetoder for å gjøre så og si det samme.

Set-metode:

Dim doc as NotesDocument
doc.ReplaceItemvalue(“Subject”, “Dette er en tittel i feltet Subject”)

Get-metode:

Dim doc as NotesDocument
Dim sTmp as String

sTmp = doc.GetItemValue(“Subject”)

Ja, man bruker jo “dot’en” her også, men istedet for å referere til et feltnavn etter “dot’en”, så refererer man til objektmetoder istedet. Her bruker vi metodene “ReplaceItemValue” og “GetItemValue” for helholdsvis å sette/erstatte og hente verdier i et NotesDocument.

DOT or NOT?
Så, hvis vi oppnår det samme, hva skal vi bruke? DOT or NOT? Her er det ingen fasit, man kan faktisk bruke det man føler for, men, det er helt klart en del punkter vi må være klar over.

Vurderinger

“ReplaceItemValue/GetItemValue er kjappere enn DOT”
For å avlive myten om at den ene metoden er kjappere enn den andre, reint ytelsesmessig, så er dette fullstendig feil. Ja, det er kjappere, men det er ikke nevneverdig. Forskjellen er ikke merkbar, nei knapt målbar. Så dette argumentet holder ikke, uansett hvilken versjon du velger å bruke.

“DOT er enkelt, og intuitivt”
For noen er det å bruke DOT veldig intuitivt og enkelt å bruke for å aksessere felter. Men det betyr ikke at ReplaceItemValue/GetItemValue ikke er det. For andre er det faktisk enda mer intuitivt å bruke disse metodene. Hvorfor skal du aksessere felter, på en helt annen måte, når du bruker objektmetoder til alt annet?

“DOT kan gi koflikterende felt- og metodenavn”
Lotus kan komme med metoder med samme navn som dine felter. Denne koden vil slå feil:

doc.iHateMicrosoft = “True”

Dersom Lotus kommer med en metode på NotesDocument objektet som nettopp heter akkurat “iHateMicrosoft” (lite sansynlig?!), så vil koden ikke fungere lengere. Ihvertfall ikke hvis metoden tar argumenter osv. Dette har skjedd tidligere, f.eks når Lotus implementerte “Replace” funksjonen for en stund siden, og sin lock-funksjonalitet. Da gikk veldig mange applikasjoner i stå, nettopp fordi metodene/kallene plutselig ble feil.

“DOT er lite Java-vennlig”
I en objektorientert verden (eks Java), henger ikke dette helt på greip. Når man har et objekt, påfølger man dette med metoder/property etter en “dot”. I dette tilfellet setter man inn et felt. Det blir “feil”. Her må man da ta en vurdering, er dette et felt, eller er det en property/metode? ReplaceItemValue/GetItemValue løser dette.

“DOT kan gi feltnavn I STORE BOKSTAVER”
Hvorvidt dette er avgjørende for ditt valg, er vel kanskje mer tvilsomt, men personlig er det forferdelig irriterende. Det å se på listen over feltnavn i propertyboxen, og se at enkelte feltnavn er i STORE BOKSTAVER er forferdelig irriterende. Dette skjer ikke dersom man bruker ReplaceItemValue.

Så hva skal vi bruke?
På en måte kan man si, – bruk hva du vil! Men på en annen side, bør man kanskje tenke over punktene over. Personlig bruker jeg både og, men samtidig synes jeg lesbarheten og vedlikeholdet ved å bruke metodene (ReplaceItemValue osv) er mye bedre. Men, jo mer du begynner å programmere i en OO-verden (eks Java) så vil du bruke metodene i større grad. Hvorfor ikke bare venne deg til praksisen som brukes i andre språk allerede nå?

Notes 8: Fortsatt problemer med å se HTML images? Neida…


De aller fleste av oss, har nok sett denne et par ganger når vi mottar HTML mails:

Red Cross” eller “Red X” om du vil.

I både R5, ND6 og i ND7 var det utallige forklaringer på hvordan man skulle fikse dette, slik at man fikk sett HTML images osv. Disse forklaringene kunne være;

  1. Sjekk om du har internet tilkobling
  2. Sjekk lokasjonsdokumentet og om browsertype var sett korrekt.
  3. Sjekke LAN settings på PC
  4. Slette perweb.nsf
  5. Slett tmp filer på pc
  6. Sjekk proxy settings i lokasjonsdokument

Ja listen kunne vært uendelig.. Fikk vi egentlig noen gang en løsning på dette problemet?

Så, nå er da Notes 8 lansert. Og hva er det første som møter meg? Jo denne:

Må vi fortsatt knote med de siste års frustrasjoner?

Neida, ta en nøyere titt på bildet. Ja, det berømte “red cross” eller “red X” er der fortsatt, men jammen ser det ikke ut til at dette faktisk er en sikkerhetssak.

“Security: Some images were prevented from loading. Show images”

Noe skjer sikkert om vi klikker på den linken…..

WOW !

Det må kalles en forbedring ! – Og ikke nok med det, du kan faktisk velge dette som standard, ved å ta bort denne haken i dine innstillinger:

Bort med det krysset, og du slipper å se denne lengere:

På tide? Ja, men bedre sent enn aldri 🙂

Til informasjon, ser Lotus nå også på løsninger som vil gjøre denne innstillingen noe mer “romslig”, i form av whitelists osv. Slik ta du kan akseptere “remote images” fra dine “trusted friends”, mens du slår den av for “fremmede”. Dette ligger på wishlisten til 8.0x, så får vi se om og når dette kommer.

Rock’n Roll med LS2J


Hva er LS2J?

Enkelt og greit står det for Lotusscript 2 Java, og er en måte å aksessere Java klasser og metoder på, direkte fra gode gamle og kjente Lotusscript. Dette gjør du ved å programmere med kjent teknologi – Lotusscript – og får tilgang til Java via et sett av predefinerte Lotusscript klasser. Dette er ikke noe som kom i ND8, men noe som har vært her siden lanseringen av ND6.

LS2J vil med andre ord kunne la data fra en Java datatype overføres til en Lotusscript datatype, som igjen da lar Lotusscript utføre metoder på et Java objekt. I tillegg kan du fra Lotusscript lage Java objekter, som blir native for Lotusscriptet ditt. Alt dette får du til ved hjelp av en liten Lotusscript extension. Denne LSX’en heter “*javacon”, noe vi skal komme tilbake til. Alternativet til dette, ville selvsagt kunne være å skrive en Java agent, i rein Java, som gjorde mye av det samme. Her forholder du deg til Lotusscript, det du kan og har kunnet kanskje veldig lenge.

Hvordan kalle java metoder fra Lotusscript?

Før vi i det hele tatt begynner å kalle metoder, la meg minne på at dette er en Lotusscript Extension, så den må du inkludere i scriptet ditt. Dette gjør du som ved hvilken som helst annen include, nemlig ved å angi

Uselsx “*javacon”

Dette laster LS2J bibliotekene og registrere alle datatypene.

Så hvordan fungerer dette med å Java objekter og deres metoder fra Lotusscript egentlig? I utgangspunktet er det to metoder å gjøre dette på;

1. Dot Notation
2. ADT

1. Dot Notation

La oss starte enkelt, og se på et eksempel som kanskje bruker den enkleste metoden – dot notation.

Dim js As JavaSession
Dim jc As JavaClass
Dim jo As JavaObject

Set js = new JavaSession
Set jc = js.getClass(“myJavaApp”)
Set jo = jc.CreateObject()

For en som kan Lotusscript, så burde ikke dette være veldig vanskelig å få med seg essensen av. Man lager en JavaSession (js), en JavaClass (jc) og et JavaObject (jo). Klassen setter vi til å være “myJavaApp”, som vi igjen lager et objekt av, ved å kalle metoden “CreateObject()” på javaklassen (jc). Dette kalles “dot notation”, og er veldig kjent, både for Lotusscript programmerere og Java programmerere. Som Lotusscript programmerer, burde følgende kodesnutt være kjent:

Dim s as New NotesSession
Dim db as NotesDatabase
Dim doc as NotesDatabase

Set db = s.CurrentDatabase
set doc = db.CreateDocument()

Her bruker vi “dot notation” både når vi lager db-objektet og doc-objektet.

Fordelene med dot notation i LS2J sammenheng er kanskje innlysende, men kort fortalt er de veldig enkle og intuitive. Ulempen er derimot at det også har sine begrensninger, og kan rett og slett oppføre seg noe tvetydig ved ulike tilfeller. F.eks, Lotusscript er ikke case-sensitiv, noe derimot Java er. Med andre ord kan vi i Java ha 2 metoder, – “myMethod” og “mymethod”, og de vil være forskjellige. Bruker vi LS2J og “dot notation”, får vi da et problem. Faktisk kan man ikke med sikkerhet si hvilken metode som kalles, da det igjen avhenger av JVM’et som kaller metoden. Et annet problem med “dot notation” er at Lotusscript har en intern grense på 40 karakterer på navn, – dette har ikke Java. Så hvis det er metoder som har lengere navn enn 40 karakterer, så kan vi komme opp i et problem. Kanskje mindre sansynlig, men dog. En siste ulempe med “dot notation” er utvilsomt det man kaller “overloading” i Java. Mens Java støtter klasser som kan ha metoder med samme navn (f.eks myMethod), så er ikke dette tilfellet i Lotusscript. I Java har man det som kalles “overloading”, som betyr at hver metode kan ha ulik signatur, noe som ikke er mulig i Lotusscript.

Så, avhengig av javaklassen og metodene du skal bruke, kan du være nødt til å se på en annen måte å kalle metoder, – ved bruk av ADT.

2. ADT

Så for å unngå problemene over, kan vi ta i bruk ADT (Application Data Types) istedet. Dette kan med første øyekast virke noe vanskeligere, men er desto bedre for generell bruk av LS2J. La oss se på et eksempel:

Dim js As JavaSession
Dim jc As JavaClass
Dim jo As JavaObject
Dim jm as JavaMethod

Set js = new JavaSession
Set jc = js.getClass(“myJavaApp”)
Set jm = jc.getMethod(“MyMethod”, “()V”)
Set jo = jc.CreateObject()

jm.Invoke(jo);

Her sikrer du deg å hente korrekt metode fra korrekt klasse, og kan således utføre korrekt metode på korrekt objekt.

Et klassisk eksempel (bruk av dot notation)
Så hva med et mer klassisk eksempel, på hvordan dette henger sammen. Lag den en Lotusscript agent i en Domino database. Legg inn følgende kode:

Option Public
uselsx”*javacon”
Sub Initialize
Dim js As JavaSession
Dim jc As JavaClass
Dim localHost As JavaObject
Set js = New JavaSession
Set jc = js.GetClass(“java/net/InetAddress”)
Set localHost = jc.getLocalHost()
Msgbox “Name: ” & localHost.getHostName() & chr(13) & “Address: ” & localHost.getHostAddress()
End Sub

Koble denne koden enten til en knapp eller ved å kjøre den direkte fra agentlist, og du vil oppnå noe alla dette:

Et ikke alt for avansert eksempel, men det viser hvordan vi kan koble Java og Lotusscript sammen, på en meget enkel og sømløs måte. Ja, faktisk hadde du ikke fått til akkurat dette, kun vha Lotusscript, uten extensions.

For de som ikke hang helt med, kan du laste ned en demo database på LS2J her.

"Open in Designer" – huh?


Ikke nødvendigvis bare teknisk
Arne annonserte meg som en teknisk skribent, men det er ikke alltid det er det geniale tekniske som alltid er av mest interesse. Kanskje er det de små tingene, de små tipsene, de skjulte og hendige grepene som kan være like interessante. La oss starte med det enkle og kanskje noe ubetydelige. Du har installert Lotus Notes 8, og ikke minst Domino Designer 8. Men, hvor ble det av “Open in Designer”, som du pleide å bruke når du åpnet databaser fra workspace-flikene? Mange av oss brukte å høyreklikke på workspace-fliken til en åpen database, og velge “Open in Designer”. Som vi nå ser, får du ikke dette valget på workspace-fliken for en åpen applikasjon i Notes 8:

Workaround?

  1. Do it the hard way – åpne Designer og åpne applikasjonen (doh)
  2. Ta frem den gode vennen din – Workspace – og bruk “Open in Designer”. Du finner den under “Open – Workspace”

Lenge leve Lotus og dens Workspace, som vi allerede så konturene av i v1.0. Så får vi håpe at dette bare var en glipp fra Lotus, for de fjerner jo aldri funksjonalitet 🙂

Rune Carlsen ny teknisk skribent


Rune Carlsen er en kjent mann i Lotus-miljøet. Fagområdet hans er utvikling og integrasjon. Han har lang erfaring med webutvikling, programmering i Visual Basic, @Formulas, Lotusscript, Java, HTML/CSS/DHTML, Javascript, Webservices

Rune har over 10 års erfaring med Lotus Notes og Domino. Han har jobbet mye med bla webutvikling og har lang erfaring med programmering i vb, lotusscript, java, html, javascript, webservices med mer.

Rune vært med i forfatterkollegiet til en Redbook: “Domino 6: A Developer’s Handbook” og har en lang rekke tekniske sertifiseringer.

Nå vil leserne av http://www.mynotesblog.com kunne nyte godt av Rune’s mangesidige kunnskaper når han nå trer inn i redaksjonen som teknisk skribent. Dere vil finne ham under vignetten “Rune’s ND8-tips” med jevne mellomrom! Og vi vil tagge hans artikler med “Runes Tips” sånn at dere lett finner dem igjen.

IDG beskyldt for annonsekobling – sjef gikk av



En dag etter at PC-World‘s redaktør (ikke den norske) gikk av i protest, går ledelsen i IDG, som eier magasinet, ut og benekter at de er mer velvillig innstilt på redaksjonell plass overfor IT-selskaper som annonserer bredt i magasinet.

Onsdag 2. mai skrev CNET News.com at redaktør Harry McCracken hadde informert sine ansatte om at han valgte å gå av fordi hans sjef, Colin Crawford som er CEO (Chief Executive Officer) for PC World Communications og Mac Publishing, hadde pålagt ham å være mer redaksjonelt vennlig innstilt overfor annonsører.

Det har vakt en del oppstyr internt i IDG også blant de ansatte at deres daglige sjef har valgt å ta sin hatt og gå. Mange av dem uttrykker stolthet over at han satte seg opp mot presset fra toppledelsen om å behandle annonsører bedre enn andre IT-leverandører.

Fra et etisk synspunkt er det helt utilgivelig å la annonsører “kjøpe” seg spalteplass og positiv omtale. Dette strider klart mot pressens etiske regelverk og vil over tid kunne svekke et presseorgans troverdighet. Også i Norge har slike diskusjoner dukket opp med jevne mellomrom både i dags-, uke- og fagpresse.