Thursday, October 21, 2010

Am I 1 in a million? 1 in 500,000? How many Lotus Notes Admins and Developers are in Houston?

Just curious about this, I only know of two others here in the Houston area, John Turnbow, and Paul T. Calhoun.  Anyone work in this area?  Any desire for a community meeting?  I had lunch with Paul last month and it was great to meet someone local that understood what i was talking about.

Wednesday, September 15, 2010

I need some Beta Testers for ITANA v4, anyone interested?

I am having a few issues with my new version of ITANA and i need some beta testers who would be willing to help me debug some of the issues. If you are interested and have Domino 8.5.2,  please let me know, thanks

markthughes@gmail.com

Tuesday, September 14, 2010

Do you want to take your Xpage applications offline? Please help me get Xpage support in DOLS

Would you like to take your xpages offline, easily, while keeping the domino security model intact?  And when the user connects back online it would replicate back to the server?

I know you can do this with the notes client today, but why should you have to install a Notes client and have all the GUI options available to users if you are trying to only deploy a single application?  ISV's and some other companies need this option so that they can deploy applications to partners or customers as needed without having to setup and support a notes client install.

 If you would like to see feature implemented, please contact Peter undescore Janzen at us.ibm.com.  ALso post your business case in the comments as well.


Also vote on the idea jam below.




Thanks for your help!!

Monday, September 13, 2010

I need help Sametime Experts, 8.5.1 questions inside

1st question is can you install Sametime 8.5.1 on an 8.5.2 server?

If you can what is the correct download from passport advantage for the simple 1 server version of sametime, not the 3 server + websphere version?

Saturday, August 28, 2010

Warning 8.5.2 SMTP spike psossible, 100% cpu usage and no mail routing

Hotfix will be available Monday.  It may have something to do with your spam gateway device.  We use Ironmail.  This cant be good.....

Wednesday, August 25, 2010

Xpages: Validation for a field, hopes this helps someone

Today i needed to do some validation on an Xpages form.

The scenario
I had a field, it had typeahead enabled on an Xpage.  This view has 6000 documents so a combo box was out of the question.  I didnt really want to do a pick list either since most people know the number they want in the first place.  But i needed a way to figure out  if the value in the field existed in the view.

So i looked at adding a custom validator, couldn't seem to make that work.  So i looked on the wiki and a few other places and discovered this.  Create a validateExpression validator.




In the expression field you need to add your code to calculate to true or false.  Syntax should be something like

return var1 == var2

Mine looked like

account1 = @Trim(@Text(document3.getItemValueString('job')));
chargetype = document3.getItemValueString('jobaccount');
db1 = new Array("notes1", "Applications\\viewpoint.nsf")
var iffound = ""
if(chargetype == 'Job')


{  iffound = @Trim(@Text(@DbLookup(db1,"Project Import",account1,1)));
return account1 == iffound
}
else
{return (@IsMember(account1, @DbColumn(db1,"Accounts7",1))!= 0)
}


Then here is the part i didn't get from the wiki post,  You need to add a DisplayError control next to the field you are validating.  Then set that displayerror to show error messages for that field you are validating.  It will not pop up like the simple can not be 0 or can not be empty messages you get from the default validators.
















Anyways I hope this helps someone else.

Monday, August 23, 2010

Video: My Tasks (ITANA) V4.0 for iPhone and Android delivers offline read/write via HTML5 and IBM Lotus Domino 8.5.2 XPages



ITANA V4.0 has been completely rewritten to work offline for editing and adding tasks.  As a great side benefit, ITANA opens quickly(sub 2 seconds) and moving between tasks is very very fast(sub second).   Since this update requires Domino 8.5.2(for the cache manifest), it will be released shortly after it is available later this month. Please let me know what you think


Thursday, August 12, 2010

My Tasks (ITANA) V4.0 for iPhone and Android delivers offline read/write via HTML5 and IBM Lotus Domino 8.5.2 XPages

ITANA V4.0 has been completely rewritten to work offline for editing and adding tasks.  As a great side benefit, ITANA opens quickly(sub 2 seconds) and moving between tasks is very very fast(sub second).  Here are a few screen shots, notice that they were taken from airplane mode(offline for you non iPhone users).   Since this update requires Domino 8.5.2(for the cache manifest), it will be released shortly after it is available later this month. Video will be posted in the next few days.  Please let me know what you think



Thursday, July 22, 2010

xpages: In an effort to make mass emails from IBM less sucky looking

Since i complained about how bad the IBM emails from supoort looked, i decided to make an easy way for people to create html emails.

I created a simple xpages application where you paste in your html(may i suggest something based on OneUI) into a field, preview it, and then send it to yourself as an html email( so you can then forward it to whoever), It took 30 minutes.

Here is the form, i copied the source html from planet lotus and pasted into the html field. Of course not all images are full paths, so they are broken, but could be fixed easily.



The Xpage source Code :
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" style="padding-left:20px;padding-right:20px;padding-top:10px">

<xp:this.data>
<xp:dominoDocument var="document1" formName="main"></xp:dominoDocument>
</xp:this.data>
<xp:table style="width:100.0%">
<xp:tr>
<xp:td>
<xp:button value="Close" id="button4"><xp:eventHandler event="onclick" submit="true" refreshMode="complete">
<xp:this.action>
<xp:openPage name="/view.xsp"></xp:openPage>
</xp:this.action></xp:eventHandler></xp:button>
<xp:button id="button2">
<xp:this.value><![CDATA[Save & Close]]></xp:this.value>
<xp:eventHandler event="onclick" submit="true" refreshMode="complete">
<xp:this.action>

<xp:actionGroup>
<xp:saveDocument></xp:saveDocument>
<xp:openPage name="/view.xsp"></xp:openPage>
</xp:actionGroup>
</xp:this.action></xp:eventHandler></xp:button>
<xp:button id="button3" value="Send"><xp:eventHandler event="onclick" submit="true" refreshMode="complete">
<xp:this.action>
<xp:executeScript>
<xp:this.script><![CDATA[#{javascript:
doc1 = database.createDocument()
doc1.appendItemValue("Form","Memo")
var3 = document1.getItemValueString('html')
body = doc1.createMIMEEntity()
subject = body.createHeader("Subject")
subject.setHeaderVal(document1.getItemValueString('subject'))

stream = session.createStream()
stream.writeText(var3)


body.setContentFromText(stream, "text/html; charset=iso-8859-1", 0)

doc1.appendItemValue("SendTo", document1.getItemValueString('creator'))
doc1.send()
}]]></xp:this.script>
</xp:executeScript>
</xp:this.action></xp:eventHandler></xp:button>
</xp:td>
</xp:tr>
</xp:table>
<xp:br></xp:br>
<xp:label value="Mail To:" id="label3" style="font-weight:bold"></xp:label>
<xp:br></xp:br>
<xp:inputText id="inputText1" value="#{document1.creator}" disabled="true"><xp:this.defaultValue><![CDATA[#{javascript:@Name('[CN]', session.getEffectiveUserName())}]]></xp:this.defaultValue></xp:inputText>
<xp:br></xp:br>
<xp:br></xp:br>
<xp:label value="Subject" id="label2" style="font-weight:bold"></xp:label>
<xp:br></xp:br>
<xp:inputText id="inputText2" style="width:400px" value="#{document1.subject}"></xp:inputText>
<xp:br></xp:br>
<xp:br></xp:br>
<xp:label value="Paste in HTML" id="label1" style="font-weight:bold"></xp:label>
<xp:br></xp:br>
<xp:inputTextarea id="inputTextarea1"
style="width:610.0px;height:326.0px" value="#{document1.html}">
</xp:inputTextarea>
<xp:br></xp:br>
<xp:br></xp:br>
<xp:button value="Refresh Preview" id="button1">
<xp:eventHandler event="onclick" submit="true"
refreshMode="complete">
</xp:eventHandler></xp:button>
<xp:br></xp:br>
<xp:br></xp:br>
<xp:label value="Preview" id="label4" style="font-weight:bold"></xp:label><xp:br></xp:br>__________________________________________________________________________________________________
<xp:br></xp:br>
<xp:br></xp:br>
<xp:text escape="false" id="computedField1"><xp:this.value><![CDATA[#{javascript:'<div id = "test me">' + document1.getItemValueString('html')+ '</div>'}]]></xp:this.value></xp:text></xp:view>

Tuesday, July 20, 2010

Why customers think Lotus is Legacy Software!

because they get emails like this from IBM about there products

Notice the 1995 era html table


Now here is an example from cdw, not the greatest but not bad either


Tuesday, July 6, 2010

New Blog Series - Taking Notes data offline(Add, Delete, Change) - HTML5

I am starting this new blog series with the intent of showing how to take Lotus Notes data offline on mobile devices, and have them "Replicate" back to the server sending and receiving any changes that have been made.

For this example i will use the Lotus Notes Journal/Notebook or whatever we are calling it these days, but we will not modify that template. Instead we will create a new database that will act as a proxy on the users behalf of locating and "Replicating" the journal file for the user who is logged in. It will store the data locally on the mobile device in a SQLite database.

When i am finished with this project my intent is to post the resulting code on OpenNTF.

So one caveat to begin with, and it really sucks, You must have Domino 8.5.2 beta to make this work. We need to use the cache manifest file which is an upcoming feature in 8.5.2.

Here is a link to the default database, there is way too much formatting, and that is not what this blog series is about.


This database contains an xpage, that is formatted really for any device. It will size to whatever size you need it. The xpage name is MyJournal.xsp. BTW use Google Chrome or Safari for correct rendering.



In the next post i will show how we will get our data from the journal file.





Wednesday, June 30, 2010

Lazy Admins and Notes Apps -' feed them to the wood chipper'

I am frustrated. I get emails like this all the time.

Hi

Mark,

Our Lotus Notes administrators block access to posting a new database on email server, such as the ITANA DB mentioned in your product write up....

I am using eProductivity template v2... and trying to get To Dos onto my iPhone.

Is there some way to run this locally or change mail template to include ITANA so I can update my iPhone?

Any other suggestions?

It reminds me of a video I watched yesterday. I did not create the video and have no idea who did.

Warning Language alert!



Friday, June 18, 2010

XPages Challenges with multiple data sources on one page, a UI example

I have a new project to write an expense report application. The requirements are a little different than normal, the users do not want dialog boxes for entries and they dont want to leave the page.

So i created an Xpage that is the expense form, it has the usual header information that this company likes. Then it has a data table to show the entries for each expense item. And it also has a form to enter new items in. Inside the data table is another form to edit that line item. This approach might look better in a grid format(excel style), but i have too little horizontal space for all my info. And of you course you could set edit mode to onclick of the row. This vertical style formatting of this app is because it will also be viewed for approval on iPhones.



Since the main expense form is open and in edit mode(document1 datasource) i leave all the settings for it alone.

For the form(document3 datasource) that actually enters new data in, i have to make some changes. In the properties of the panel that holds the data source for document3, i need to change the scope for the data to "request". That way after i save that document it sets that data source to a new document ready to be saved.




For the inside the data table edit form, i have to change some things as well. This datasource(document2), has to have the property "ignore request parameter", in the all properties panel under the datasource, set to true.



Why, i am not too sure, this data source is set to a document computed to edit document, with a computed docid, which is set by the button to edit that line item in the datatable. It all works now, it was just a little tedious finding out how to make it that way.

Tuesday, June 1, 2010

SQL Lite replication engine for HTML5(iPhone & Domino Data)

I have been working on ITANA to give it the ability to edit and add and delete records while offline. To do this i am using SQL lite as the data store for the iPhone or HTML5 enabled device. Then i "Replicate" it to the notes server via xhr requests.

Please help me with my logic, does this outline work? Am i missing something? What might be better?

Sql lite Replication engine


1. Get all documents from notes db and unids

2. For each notes doc check if local record exist

3. If local record exists check the last updated time of local record
and notes doc, if server doc is newer update local record, if the
local record is newer update the server record.

Check the delete status on the local record, if set to delete, delete
the server record and remove the local record.

4. If local record does not exist create one

5. Get all local records and unids.

6. Check if they exist on server, if local record has unid = new doc,
create doc on server and update the local record with real unid, else
delete the local record because it has been deleted on the server.

Monday, May 31, 2010

Thankful for freedom

I am truly blessed, on this day i remember all who have served our great Country in the cause of liberty and freedom. From their sacrifices we are given freedom here on Earth, so that we might have life, liberty and the pursuit of happiness.

My Lord and Savior shed his blood and gave His life, so that who ever believes in Him shall not perish but have eternal life, and that we may be free from the bondage of sin forever.

So it is up to us as free men and women, to honor these sacrifices with our lives- how we choose to live each day is our testament to what we have been given.

Let us make them proud.

Tuesday, May 18, 2010

HTML 5 Cache Manifest and dynamic data (Xpages)

So cache manifest files are a very useful tool. With dynamic data though they are a little tough to work with.

For example:

You want to cache some images and script libraries local, as well as css, and some other files. It does this great, but it will also cache the html generated by the xpage the first time it was opened.

The problem: the view information changes, and every time you open the xpage you get the initial html and wrong view information.

The first thing you need to do is set a partial refresh on the view info after load. But that is only half the battle, as maybe you have preferences for a theme, and the preference comes from a profile document. So the theme will not change.

The solution: Update the cache-manifest file which will make the page re-cache itself.

So how do you do this for every time a page is refreshed?

Well Notes makes it easy - you make a notes page. On the page properties tell it content type = text/cache-manifest. Name it something like my.manifest. Then on the version line of the manifest you enter in computed text set to @now. You will always have a new manifest that you can use to update your local cache with.


Tuesday, May 4, 2010

Domino 8.5.2 & Cache Manifest, not just for offline use

Over on Niklas Heidlhoff's blog is an example of how to use a cache-manifest file and how to make an offline app with X-Pages. This is great news for mobile developers.

But what if you don't want or need the app to be offline? What advantages do you get with a cache manifest?

Speed!

Lets say you have a mobile app(or any Xpages app), it has some rather large style sheets, script libraries, and images. This is all static content, simply cache this content locally then the application is local and only connects to the server when it gets or posts information to the Notes database.

I have added many images and features to ITANA for an upcoming release. Knowing that the cache manifest would be supported in version 8.5.2, i use allot more images and css than i had previously.

Before I added the cache manifest file, it would take about 20 seconds to open this Xpages app from my iPhone, now it takes less than 5, and part of that is the iPhone opening a new Safari instance!

And here is an example cache manifest to show how to leave network connectivity in place for everything but your resources that you keep local.

CACHE MANIFEST

#version: 0.0.15

tasks4.css
tasks4.js
trashcan.png
uinext.js
ajax-loader.gif
runbuild2.png
attach.png
spinningwheel.js
spinningwheel.css
sw-alpha.png
sw-button-cancel.png
sw-button-done.png
sw-header.png
sw-slot-border.png
tasks.js
iscroll.js
home.png
wood.png
zengarden.jpg
checkbox.png
newwindow.png
cal.png
category.png

#local dojo resources
/domjs/dojo-1.4.1/dojo/dojo.js
/domjava/xsp/theme/webstandard/xsp.css
/domjava/xsp/theme/webstandard/xspLTR.css
/domjava/xsp/theme/webstandard/xspSF.css
/xsp/.ibmxspres/domino/ckeditor/contents.css
/xsp/.ibmxspres/domino/ckeditor/skins/lotus/icons.png
/xsp/.ibmxspres/domino/ckeditor/skins/lotus/images/arrowdown.gif
/xsp/.ibmxspres/domino/ckeditor/skins/lotus/images/toolbar_start.gif
/xsp/.ibmxspres/domino/ckeditor/skins/lotus/images/toolbarSprite3.png
/xsp/.ibmxspres/domino/ckeditor/skins/lotus/images/toolbarSprite.png
/domjs/dojo-1.4.1/dijit/themes/dijit.css
/domjs/dojo-1.4.1/dijit/themes/tundra/Common.css
/domjs/dojo-1.4.1/dijit/themes/tundra/layout/ContentPane.css
/domjs/dojo-1.4.1/dijit/themes/tundra/layout/TabContainer.css
/domjs/dojo-1.4.1/dijit/themes/tundra/layout/AccordionContainer.css
/domjs/dojo-1.4.1/dijit/themes/tundra/layout/SplitContainer.css
/domjs/dojo-1.4.1/dijit/themes/tundra/layout/BorderContainer.css
/domjs/dojo-1.4.1/dijit/themes/tundra/form/Common.css
/domjs/dojo-1.4.1/dijit/themes/tundra/form/Button.css
/domjs/dojo-1.4.1/dijit/themes/tundra/form/CheckBox.css
/domjs/dojo-1.4.1/dijit/themes/tundra/form/RadioButton.css
/domjs/dojo-1.4.1/dijit/themes/tundra/form/Slider.css
/domjs/dojo-1.4.1/dijit/themes/tundra/Tree.css
/domjs/dojo-1.4.1/dijit/themes/tundra/ProgressBar.css
/domjs/dojo-1.4.1/dijit/themes/tundra/TitlePane.css
/domjs/dojo-1.4.1/dijit/themes/tundra/Calendar.css
/domjs/dojo-1.4.1/dijit/themes/tundra/TimePicker.css
/domjs/dojo-1.4.1/dijit/themes/tundra/Editor.css
/domjs/dojo-1.4.1/dijit/themes/tundra/Dialog.css
/domjs/dojo-1.4.1/dijit/themes/tundra/images/titleBar.png
/domjs/dojo-1.4.1/dijit/themes/tundra/images/spriteArrows.png
/domjava/xsp/theme/webstandard/xspFF.css
/domjava/xsp/theme/webstandard/xsp.css
/domjs/dojo-1.4.1/dijit/themes/tundra/tundra.css
/domjs/dojo-1.4.1/dijit/themes/tundra/images/accordionItemHover.gif
/domjs/dojo-1.4.1/dojo/io/iframe.js
/domjs/dojo-1.4.1/ibm/domino/widget/layout/DominoRichText.js
/domjs/dojo-1.4.1/ibm/xsp/widget/layout/RichText.js
/domjs/dojo-1.4.1/ibm/xsp/widget/layout/nls/RichText_en-us.js
/domjs/dojo-1.4.1/ibm/domino/widget/layout/nls/DominoRichText_en-us.js
/domjs/dojo-1.4.1/ibm/xsp/widget/layout/xspClientDojo.js
/domjs/dojo-1.4.1/ibm/domino/widget/layout/css/domino-default.css
/domjs/dojo-1.4.1/ibm/xsp/widget/layout/nls/xspClientDojo_en-us.js

NETWORK:
#a whitelist of paths request can be made to for more dojo and other resources not listed above
/xsp/.ibmxspres/
/domjs/dojo-1.4.1/
/domjava/xsp/


Tuesday, April 27, 2010

Make Lotus Notes a killer app in your company!

Most of us know, Lotus Notes is more than just email, contacts, and calendaring. It is the added value of custom applications and third party solutions that really make Lotus Notes a very powerful and effective tool.

A very easy way to add a great deal of value to Lotus Notes is eProductivity. Everyone wants to be more productive, everyone wants there employees to be more productive. So when David Allen, one of the world's leading authorities on personal and organizational productivity is giving a free seminar, and showing how you can use his methods in Lotus Notes, it is something you can not pass up. Learn how you can make Lotus Notes an indispensable application in your company.


Here is more information about this event



On April 28th, GTD® creator, David Allen, and eProductivity™ creator, Eric Mack, will present a highly-anticipated Webinar:

"Getting Things Done with IBM Lotus Notes"

Do you want to go home at the end of the day with an empty inbox? Would you like to tackle your week with the confidence of knowing you’re being as productive as you can possibly be?

On April 28th, David and Eric will show you how. Register Now

David's book, “Getting Things Done - The Art of Stress-Free Productivity,” and his GTD methodology have revolutionized the way millions of working men and women tackle their work. His system turns achieving control over commitments into a daily reality.

Many people don't know that for the past 17 years, David has used Lotus Notes as his personal organization system. In that time, he and Eric have identified best practices for using Lotus Notes to get things done.

Sign up for this special event and let David and Eric share with you the secrets of "Getting Things Done with Lotus Notes". If you use Lotus Notes - with or without eProductivity - this is the event for you.

The cost is free but space is limited, so don't wait to sign up!

Webinar attendees will receive an eProductivity Reference application bundled with many great GTD resources from David's library.

Webinar Details
Date: April 28, 2010
Time: 10:00AM - 11:30AM PST
Cost: Free



Please share the webinar information with any Lotus Notes users who would appreciate having more time & less stress!

P.S. The Twitter hashtag for this event is #GTDLN. Happy tweeting!



This webinar is sponsored by ICA.Com, Inc., creators of eProductivity, the ultimate productivity software for IBM Lotus Notes.

eProductivity™ is a trademark of ICA.COM, Inc. "GTD®" and "Getting Things Done®" are trademarks or registered
trademarks of The David Allen Company. All other trademarks or registered trademarks are the property of their owners.

Thursday, April 8, 2010

iPad & X-Pages, a very early preview of ITANA on an iPad

Here is a very early preview of ITANA on an iPad, and yes i know i don't yet have the dimensions perfect yet. If i actually owned an iPad it would be easier ;-), but for now the simulator will have to work.

Once i am finished, i will publish an iPad template like i did for the iPhone, that should allow you to just add you data sources and go.

I need to finish ui touch ups and get some better transitions, and tweek a few things. Please feel free to leave your comments on what would make it better, thanks




New transitions!(for those who did not like the fade in fade out)


Tuesday, March 30, 2010

Manage eProductivity Projects & Actions on your iPhone and Android

I've been working with Eric Mack at eProductivity to develop a version of ITANA that will allow you to see all of your eProductivity Tasks and Reference database entries from your iPhone or Android device. This is just preliminary work for basic functionality like creating, viewing, and deleting Tasks and Reference entries. You can also view attachments as well.



What will you need to try this on your iPhone or Android device?

First, you will need to be an existing eProductivity customer and you will need to sign up for the beta program so that you can download the latest beta version 2.0.1.3 of eProductivity. ( Contact eProductivity for details). Once you have eProductivity Professional 2.0.1.3 or higher installed and running, you can add ITANA to the mix. You will need the latest version of ITANA, if you have an older version and you would like to upgrade, just drop me an email and i will send it to you right away. When you have both applications configured have will you be able to see the new functionality.

I am very excited to see where this goes. I welcome your feedback and suggestions.







Friday, March 5, 2010

Announcing mAddressBook for Android devices and iPhones

mAddressBook is a mobile web application that allows users to get contact information out of the Domino Directory or a Notes CRM database.


It is great for users who have an iPhone or Android phone to have the ability to touch an icon beside a users name and have the phone dial that number. It also gives a touch to email link. On the iPhone you can map directions to the office location using the Google Maps application. It is simple to connect to your Notes CRM database to get that information mobile as well.

You can find out more at http://hughesconnect.com


Monday, February 15, 2010

ITANA 2.0 is now released, Video in Link!

ITANA 2.0 is now shipping, here is a video of the new interface and features. For further information please vist http://hughesconnect.com

Friday, February 12, 2010

ITANA being demoed at MacWorld

ITANA is being demoed by IBM at at Macworld Booth 1284.

Thursday, February 11, 2010

Coming Soon...ITANA 2.0


ITANA has been out for a little while now and it was time for some features to be added and face lift.

Face Lift
Here is the new "Your Task" page

There is now a header and background that stay visible when the panels are faded in and out.

The pager has now been improved for touch functionality as well as navigation information.

The "view" style has been updated for a cleaner look and feel. It now shows the title,the first 25 characters of the body, the due date, and an attachment indicator.












New Features

1. Sorting has been fixed to not require an FT index on the mail database for Tasks.

2. The journal can now be accessed from your mail file if you use iNotes, before only a roaming version of your journal could be used. ( Would love it if they synced like contacts!!!)

3. You now have a choice when you open an attachment, if you open it in the application itself it will open in an iframe. You can not zoom in or out with this option. Now you have the option to open it in a new window. This will leave the app(close it) and open the attachment in Safari, but this will give you the ability to zoom in and out with ease.

4. You can now do a FT search in the journal.

5. Decreased load time of the application.












Other Screen Shots

Wednesday, January 6, 2010

X-Pages on Android Video

Just a short video, sorry about the quality, still trying to figure out the best way to get it on youtube.



Xpages on an Android Device?

I was answering some email recently and was asked if ITANA was compatible for Android devices.

I knew Android used a webkit based browser just like the iPhone so i downloaded the sdk, which has a nice emulator and loaded up the website with my ITANA X-Page application. It seems to work very well, even the date scroll wheel.

Seems like this is a write once run on just about any mobile device type architecture, if only RIM would come out with a webkit based browser!!!!

Here are some pictures