<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;DEQNRH06cCp7ImA9WhdWEEk.&quot;"><id>tag:blogger.com,1999:blog-7758114000990713523</id><updated>2011-09-03T06:39:55.318-04:00</updated><category term="lotus" /><category term="apache" /><category term="logging" /><category term="java" /><category term="dxl" /><category term="development" /><category term="vm" /><category term="portlet factory" /><category term="general" /><category term="domiclipse" /><category term="fundraising" /><category term="rcp" /><category term="firefox" /><category term="ui" /><category term="LS2J" /><category term="excel" /><category term="ibm" /><category term="lotusscript" /><category term="domino" /><category term="tips" /><category term="joomla php" /><category term="poi" /><category term="lotusphere2009" /><category term="formula" /><category term="eclipse" /><category term="cloud-computing" /><category term="php eclipse pdt" /><category term="ideajam" /><category term="dragonboat" /><category term="xpages" /><category term="utilities" /><category term="notes" /><title>Coding Thoughts</title><subtitle type="html">This blog's focus is mainly on Lotus Notes/Domino development and WebSphere Portal development, but will also cover things about java in general, VB.NET, etc., really anything interesting that has to do with technology.</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://www.criverapr.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://www.criverapr.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/7758114000990713523/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Carlos</name><uri>http://www.blogger.com/profile/09961478284332496098</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="27" height="32" src="http://3.bp.blogspot.com/_0Pk4yRiLYn4/SO0Qop-x5LI/AAAAAAAAAA4/s_ndDus4f0k/S220/Carlos-Sept2008.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>28</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/criverapr" /><feedburner:info uri="criverapr" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;AkYERHkyeSp7ImA9Wx5aFEQ.&quot;"><id>tag:blogger.com,1999:blog-7758114000990713523.post-4050733575751683049</id><published>2010-10-22T15:05:00.003-04:00</published><updated>2010-11-11T12:55:05.791-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-11-11T12:55:05.791-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="notes" /><category scheme="http://www.blogger.com/atom/ns#" term="lotusscript" /><category scheme="http://www.blogger.com/atom/ns#" term="domino" /><category scheme="http://www.blogger.com/atom/ns#" term="dxl" /><title>DXL To The Rescue</title><content type="html">&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;div align='left'&gt;&lt;a href='http://www.flickr.com/photos/criverapr/5105661430/' target='_blank'&gt;&lt;img src='http://farm2.static.flickr.com/1109/5105661430_feb7ce043a.jpg'/&gt;&lt;/a&gt;&lt;i&gt;&lt;br/&gt;&lt;/i&gt;&lt;br/&gt;The other day I came across an issue in a lotus notes application that was kind of weird.  The user was getting the ***** error when trying to edit a group in the ACL.  &lt;br/&gt;&lt;br/&gt;The first thing that came to mind was to check the users access, but they had Manager access to the application.  They just wanted to remove a \ that was put in the name of a group by mistake, so I tried to make the change myself, but I also got the same error.  I also tried to remove the entry from the ACL, but also got the same error.  The next thing that came to mind was to code an agent to remove the entry by using the back-end lotusscript objects.  &lt;br/&gt;&lt;br/&gt;So this is what I came up with:&lt;br/&gt;&lt;br/&gt;    &lt;small&gt;Dim targetDB As NotesDatabase&lt;br/&gt;    Dim targetACL As NotesACL&lt;br/&gt;    Dim targetEntry As NotesACLEntry&lt;br/&gt;    &lt;br/&gt;    Set targetDB = New NotesDatabase("", "")&lt;br/&gt;    &lt;br/&gt;    If(targetDB.Open("Server", "db.nsf"))Then&lt;br/&gt;        Set targetACL = targetDB.Acl&lt;br/&gt;        Set targetEntry = targetACL.Getentry("Group With / in its name")&lt;br/&gt;        If(Not(targetEntry Is Nothing))Then&lt;br/&gt;            'targetEntry.Name = "TestEntry"&lt;br/&gt;            Call targetEntry.Remove()&lt;br/&gt;            Call targetACL.Save()&lt;br/&gt;        Else&lt;br/&gt;            Print "Entry not found in ACL"&lt;br/&gt;        End If&lt;br/&gt;    Else&lt;br/&gt;        Print "Not able to open db"&lt;br/&gt;    End If&lt;/small&gt;&lt;br/&gt;&lt;br/&gt;But when I tried running the agent I got the same error when trying to execute the line Call targetACL.Save().  I then did some searching on the web and found a few people with the same error, but most of them suggested the ACL was corrupt and that the way they solved the issue was to create a new application and copy the data over, but this would only be an option for me as a last resort.  Since it seemed like the cause was the ACL had become corrupt I thought I'd export the ACL to DXL and verify if there was anything strange in the XML.  &lt;br/&gt;&lt;br/&gt;I created the following agent to export the ACL:&lt;br/&gt;&lt;br/&gt;    &lt;small&gt;Dim s As New NotesSession&lt;br/&gt;    Dim targetDB As NotesDatabase&lt;br/&gt;    Dim fileName As String&lt;br/&gt;    &lt;br/&gt;    Set targetDB = New NotesDatabase("", "")&lt;br/&gt;    &lt;br/&gt;    If(targetDB.Open("Server", "db.nsf"))Then&lt;br/&gt;        REM Open xml file named after target database &lt;br/&gt;        Dim stream As NotesStream &lt;br/&gt;        Set stream = s.CreateStream()&lt;br/&gt;        fileName = "c:\temp\" &amp;amp; Left(targetDB.FileName, Len(targetDB.FileName) - 3) &amp;amp; "xml" &lt;br/&gt;        If Not stream.Open(fileName) Then &lt;br/&gt;            Print "Cannot open " &amp;amp; fileName&lt;br/&gt;            Exit Sub &lt;br/&gt;        End If &lt;br/&gt;        Call stream.Truncate &lt;br/&gt;         &lt;br/&gt;        Dim exporter As NotesDXLExporter &lt;br/&gt;        Set exporter = s.CreateDXLExporter &lt;br/&gt;        &lt;br/&gt;        REM Create note collection of actions &lt;br/&gt;        Dim nc As NotesNoteCollection &lt;br/&gt;        Set nc = targetDB.CreateNoteCollection(False) &lt;br/&gt;        nc.Selectacl = true &lt;br/&gt;        Call nc.BuildCollection &lt;br/&gt;        &lt;br/&gt;        Set exporter = s.CreateDXLExporter(nc) &lt;br/&gt;        &lt;br/&gt;        Call exporter.SetInput(nc) &lt;br/&gt;        Call exporter.SetOutput(stream)&lt;br/&gt;&lt;br/&gt;        ' Stops the  from being added to output. &lt;br/&gt;        exporter.OutputDOCTYPE = False&lt;br/&gt;&lt;br/&gt;        Call exporter.Process&lt;br/&gt;    Else&lt;br/&gt;        Print "Could not open db"&lt;br/&gt;    End If&lt;/small&gt;&lt;br/&gt;&lt;br/&gt;After running this agent the following content was generated in the Test.xml:&lt;br/&gt;&lt;br/&gt;&lt;small&gt;&lt;br/&gt;&lt;database xmlns='http://www.lotus.com/dxl' maintenanceversion='1.0' version='8.5'&gt;&lt;br/&gt; replicaid='852574830021CC9F' path='CN=Test/OU=Test/OU=Server/O=Test!!db.nsf'&lt;br/&gt; title='Test DB' usejavascriptinpages='false'&amp;gt;&lt;br/&gt;&lt;databaseinfo diskspace='783024128' odsversion='43' dbid='852574830021CC9F'&gt;&lt;br/&gt; percentused='97.7727051598594' numberofdocuments='39'&amp;gt;&lt;datamodified&gt;&lt;datetime&gt;&lt;br/&gt; dst='true'&amp;gt;20101006T162213,08-04&lt;/datetime&gt;&lt;/datamodified&gt;&lt;designmodified&gt;&lt;br/&gt;&amp;gt;&lt;datetime dst='true'&gt;20101007T094423,47-04&lt;/datetime&gt;&lt;/designmodified&gt;&lt;/databaseinfo&gt;&lt;br/&gt;&lt;acl maxinternetaccess='editor' adminserver='CN=Test/OU=Test/OU=Server/O=Test'&gt;&lt;br/&gt;&lt;aclentry readpublicdocs='false' level='noaccess' default='true' name='-Default-'&gt;&lt;br/&gt; writepublicdocs='false'/&amp;gt;&lt;br/&gt;&lt;aclentry deletedocs='true' level='manager' type='persongroup' name='Test Admins'&gt;&lt;br/&gt;&lt;aclentry level='manager' type='persongroup' name='Test Database Managers'&gt;&lt;br/&gt; deletedocs='true'/&amp;gt;&lt;br/&gt;&lt;aclentry deletedocs='true' level='manager' type='servergroup' name='LocalDomainServers'&gt;&lt;br/&gt;&lt;aclentry type='persongroup' name='Group With / in its name'&gt;&lt;br/&gt; level='editor' deletedocs='true' createpersonalagents='false' createpersonalviews='false'&lt;br/&gt; createsharedviews='false' createlsjavaagents='false'/&amp;gt;&lt;br/&gt;&lt;logentry&gt;10/06/2010 04:20:38 PM Test User/Test/Test updated Test Admins&lt;/logentry&gt;&lt;br/&gt;&lt;logentry&gt;10/06/2010 04:20:31 PM Test User/Test/Test added Test Admins&lt;/logentry&gt;&lt;br/&gt;&lt;launchsettings&gt;&lt;noteslaunch showaboutdocument='never' navigator='Main' whenopened='opennavigator'/&gt;&lt;/launchsettings&gt;&lt;/aclentry&gt;&lt;/aclentry&gt;&lt;/aclentry&gt;&lt;/aclentry&gt;&lt;/aclentry&gt;&lt;/acl&gt;&lt;/database&gt;&lt;/small&gt;&lt;br/&gt;&lt;br/&gt;Since I did not see anything strange in the ACL DXL I decided to create an agent that would import the ACL DXL after removing the group with the / in it's name from the DXL.  This is what the agent looked like:&lt;br/&gt;&lt;br/&gt;&lt;small&gt;    Dim s As New NotesSession&lt;br/&gt;    Dim targetDB As NotesDatabase&lt;br/&gt;    Dim fileName As String&lt;br/&gt;    &lt;br/&gt;    Set targetDB = New NotesDatabase("", "")&lt;br/&gt;&lt;br/&gt;    If(targetDB.Open("Server", "db.nsf"))Then&lt;br/&gt;        REM Open xml file named after target database &lt;br/&gt;        Dim stream As NotesStream &lt;br/&gt;        Set stream = s.CreateStream()&lt;br/&gt;        fileName = "c:\temp\" &amp;amp; Left(targetDB.FileName, Len(targetDB.FileName) - 3) &amp;amp; "xml" &lt;br/&gt;        If Not stream.Open(fileName) Then &lt;br/&gt;            Print "Cannot open " &amp;amp; fileName&lt;br/&gt;            Exit Sub &lt;br/&gt;        End If&lt;br/&gt;&lt;br/&gt;        If stream.Bytes = 0 Then&lt;br/&gt;            Print "File did not exist or was empty"&lt;br/&gt;            Exit Sub&lt;br/&gt;        End If&lt;br/&gt;        &lt;br/&gt;        'Import DXL into new database&lt;br/&gt;        Dim importer As NotesDXLImporter&lt;br/&gt;        Set importer = s.CreateDXLImporter(stream, targetDB)&lt;br/&gt;        importer.ReplicaRequiredForReplaceOrUpdate = False&lt;br/&gt;        importer.ACLImportOption = DXLIMPORTOPTION_REPLACE_ELSE_IGNORE&lt;br/&gt;&lt;br/&gt;        Call importer.Process&lt;br/&gt;    Else&lt;br/&gt;        Print "Could not open db"&lt;br/&gt;    End If&lt;/small&gt; &lt;br/&gt;&lt;br/&gt;&lt;br/&gt;After running this agent I verified the ACL of the application and the group was no longer there.  I also tested that new entries could be added and modified without issues.&lt;br/&gt;&lt;br/&gt;Has anybody run into similar issues before, where you had to resort to DXL for a fix?&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7758114000990713523-4050733575751683049?l=www.criverapr.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/criverapr/~4/uUXh4UNHitE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.criverapr.com/feeds/4050733575751683049/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7758114000990713523&amp;postID=4050733575751683049&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7758114000990713523/posts/default/4050733575751683049?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7758114000990713523/posts/default/4050733575751683049?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/criverapr/~3/uUXh4UNHitE/dxl-to-rescue.html" title="DXL To The Rescue" /><author><name>Carlos</name><uri>http://www.blogger.com/profile/09961478284332496098</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="27" height="32" src="http://3.bp.blogspot.com/_0Pk4yRiLYn4/SO0Qop-x5LI/AAAAAAAAAA4/s_ndDus4f0k/S220/Carlos-Sept2008.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://farm2.static.flickr.com/1109/5105661430_feb7ce043a_t.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.criverapr.com/2010/10/dxl-to-rescue.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU8DQn8-cSp7ImA9WxFRE0U.&quot;"><id>tag:blogger.com,1999:blog-7758114000990713523.post-5085843319912702883</id><published>2010-04-27T07:45:00.001-04:00</published><updated>2010-04-27T13:04:33.159-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-27T13:04:33.159-04:00</app:edited><title>Donate For A Good Cause</title><content type="html">&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;div align='left'&gt;&lt;a href='http://www.flickr.com/photos/michaelwm25/2560532467/' target='_blank'&gt;&lt;img src='http://farm4.static.flickr.com/3154/2560532467_285b92e86a_d.jpg'/&gt;&lt;/a&gt; &lt;i&gt;Photo By &lt;a href='http://www.flickr.com/photos/michaelwm25/' target='_blank'&gt;michaelwm25&lt;/a&gt;&lt;br/&gt;&lt;/i&gt;&lt;br/&gt;It's that time of the year again and this Saturday, May 1st, 2010 I will be competing at the &lt;a href='http://www.tampabaydragonboats.com/Events/Events/AnnualEvent/tabid/87/Default.aspx' target='_blank'&gt;Tampa Bay Dragonboat Races&lt;/a&gt; as part of the Tampa Blade Runners Red Team.  Participating in this event gives us the opportunity to help with fund raising for two great  organizations: &lt;span style='font-size: 12pt;'&gt;&lt;b&gt;FACTors Breast Cancer Patient Support Program at Moffitt Cancer Center&lt;/b&gt; and the &lt;b&gt;Florida Aquarium&lt;/b&gt;&lt;/span&gt;.  &lt;br/&gt;&lt;br/&gt;So please help with any amount you can &lt;big&gt;&lt;big&gt;&lt;big&gt;&lt;a target='_blank' href='http://www.firstgiving.com/criverapr'&gt;Make a  Donation&lt;/a&gt;&lt;/big&gt;&lt;/big&gt;&lt;/big&gt;&lt;br/&gt;&lt;big&gt;&lt;big&gt;&lt;big&gt;&lt;br/&gt;&lt;/big&gt;&lt;/big&gt;&lt;/big&gt;&lt;br/&gt;If you live in the Tampa Bay area come watch the races behind the St Pete  Times Forum --&amp;gt; &lt;a target='_blank' href='http://maps.google.com/maps/ms?ie=UTF8&amp;amp;hl=en&amp;amp;msa=0&amp;amp;ll=27.941697,-82.451245&amp;amp;spn=0.004616,0.009645&amp;amp;t=h&amp;amp;z=17&amp;amp;msid=108424242663570901272.0004853aafdac2d287851'&gt;Map&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7758114000990713523-5085843319912702883?l=www.criverapr.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/criverapr/~4/WpltUyP4AtQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.criverapr.com/feeds/5085843319912702883/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7758114000990713523&amp;postID=5085843319912702883&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7758114000990713523/posts/default/5085843319912702883?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7758114000990713523/posts/default/5085843319912702883?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/criverapr/~3/WpltUyP4AtQ/donate-for-good-cause.html" title="Donate For A Good Cause" /><author><name>Carlos</name><uri>http://www.blogger.com/profile/09961478284332496098</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="27" height="32" src="http://3.bp.blogspot.com/_0Pk4yRiLYn4/SO0Qop-x5LI/AAAAAAAAAA4/s_ndDus4f0k/S220/Carlos-Sept2008.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.criverapr.com/2010/04/donate-for-good-cause.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0QERHszfyp7ImA9WxBbGUs.&quot;"><id>tag:blogger.com,1999:blog-7758114000990713523.post-1908283273266810589</id><published>2010-03-15T15:57:00.001-04:00</published><updated>2010-03-18T22:21:45.587-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-03-18T22:21:45.587-04:00</app:edited><title>My First iPhone App - pSimon</title><content type="html">&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;div align='left'&gt;&lt;a target='_blank' href='http://www.tech-innovapr.com/products.html'&gt;&lt;img src='http://www.tech-innovapr.com/images/stories/iphone/psimon/pSimon-2.png'/&gt;&lt;/a&gt; &lt;i&gt;Photo By &lt;a target='_blank' href='http://www.tech-innovapr.com'&gt;Tech-Innova Solutions, LLC&lt;/a&gt;&lt;br/&gt;&lt;/i&gt;&lt;br/&gt;Well I've been busy since my last blog post working on my final project(more on this coming in separate posts) and other personal projects.  Anyways it's been a while since I started learning iPhone development and last December I released my first app &lt;a href='http://www.tech-innovapr.com/products.html' target='_blank'&gt;pSimon&lt;/a&gt; for sale on the iTunes Store.  &lt;a target='_blank' href='http://www.tech-innovapr.com/products.html'&gt;pSimon&lt;/a&gt; is a modern implementation of the classic “Simon Says” game that was popular in  the 80s.  On March 4, 2010 I released a Lite version of &lt;a target='_blank' href='http://www.tech-innovapr.com/products.html'&gt;pSimon Lite&lt;/a&gt; which only included the easiest level of the game and some ads.  I released the Lite version to see if I could make extra income with the ads.  While I've made more income from the paid app up to this point, I have to say that I saw an explosion of downloads for the Lite version the first week that I would have not imagined.  I will keep this in mind for the release of the other two apps I'm working on right now.  It seems like a good marketing strategy is to release a Lite and Full version at the same time and the Lite version will drive sales for the Full version.&lt;br/&gt;&lt;br/&gt;If you enjoyed playing the "Simon Says" game back in the day, try &lt;a target='_blank' href='http://www.tech-innovapr.com/products.html'&gt;pSimon Lite&lt;/a&gt; and leave feedback as I'm constantly trying to find ways to make the game more challenging.&lt;br/&gt;&lt;/div&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img class='zemanta-pixie-img' alt='' src='http://img.zemanta.com/pixy.gif?x-id=f7c98ac1-b2da-8938-9fcc-c796fc339cad'/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7758114000990713523-1908283273266810589?l=www.criverapr.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/criverapr/~4/US2xNT5K4hE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.criverapr.com/feeds/1908283273266810589/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7758114000990713523&amp;postID=1908283273266810589&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7758114000990713523/posts/default/1908283273266810589?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7758114000990713523/posts/default/1908283273266810589?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/criverapr/~3/US2xNT5K4hE/my-first-iphone-app-psimon.html" title="My First iPhone App - pSimon" /><author><name>Carlos</name><uri>http://www.blogger.com/profile/09961478284332496098</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="27" height="32" src="http://3.bp.blogspot.com/_0Pk4yRiLYn4/SO0Qop-x5LI/AAAAAAAAAA4/s_ndDus4f0k/S220/Carlos-Sept2008.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.criverapr.com/2010/03/my-first-iphone-app-psimon.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkUCQ3Y4eCp7ImA9WxNSE0U.&quot;"><id>tag:blogger.com,1999:blog-7758114000990713523.post-2494956850035434118</id><published>2009-08-27T10:25:00.001-04:00</published><updated>2009-08-27T10:44:22.830-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-27T10:44:22.830-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="rcp" /><category scheme="http://www.blogger.com/atom/ns#" term="eclipse" /><category scheme="http://www.blogger.com/atom/ns#" term="general" /><title>Masters Degree Final Project</title><content type="html">&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;div align='left'&gt;&lt;a target='_blank' href='http://www.flickr.com/photos/thewolf/411352328/'&gt;&lt;img src='http://farm1.static.flickr.com/168/411352328_02ef3060e4_m_d.jpg'/&gt;&lt;/a&gt; &lt;i&gt;Photo By &lt;a target='_blank' href='http://www.flickr.com/photos/thewolf/'&gt;The Wolf&lt;/a&gt;&lt;br/&gt;&lt;/i&gt;&lt;br/&gt;As part of my Masters degree in Computer Science I have to do a final project.  I have decided to use the &lt;a target='_blank' href='http://www.eclipse.org/home/categories/rcp.php'&gt;eclipse Rich Client Platform&lt;/a&gt; as the environment to develop/implement my project.  The idea is to polish my skills on the Rich Client Platform while doing something useful :-), so for the next 3 to 6 months I will be posting my progress and the tips/tricks I find useful when working with RCP.&lt;br/&gt;&lt;br/&gt;Stay tuned.&lt;br/&gt;&lt;/div&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=37247df2-1215-806d-b7b6-32894d49661b' alt='' class='zemanta-pixie-img'/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7758114000990713523-2494956850035434118?l=www.criverapr.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/criverapr/~4/zbgsxzQDNu0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.criverapr.com/feeds/2494956850035434118/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7758114000990713523&amp;postID=2494956850035434118&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7758114000990713523/posts/default/2494956850035434118?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7758114000990713523/posts/default/2494956850035434118?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/criverapr/~3/zbgsxzQDNu0/masters-degree-final-project.html" title="Masters Degree Final Project" /><author><name>Carlos</name><uri>http://www.blogger.com/profile/09961478284332496098</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="27" height="32" src="http://3.bp.blogspot.com/_0Pk4yRiLYn4/SO0Qop-x5LI/AAAAAAAAAA4/s_ndDus4f0k/S220/Carlos-Sept2008.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.criverapr.com/2009/08/masters-degree-final-project.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A04GRHk6fSp7ImA9WxJaF0g.&quot;"><id>tag:blogger.com,1999:blog-7758114000990713523.post-1012719754827680763</id><published>2009-08-08T15:30:00.001-04:00</published><updated>2009-08-08T15:32:05.715-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-08T15:32:05.715-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="cloud-computing" /><category scheme="http://www.blogger.com/atom/ns#" term="general" /><title>Risks of Cloud Computing</title><content type="html">&lt;div align="left"&gt;&lt;a target="_blank" href="http://www.flickr.com/photos/schoschie/6879549/"&gt;&lt;img src="http://farm1.static.flickr.com/7/6879549_2c03202523_m_d.jpg" /&gt;&lt;/a&gt; &lt;i&gt;Photo By &lt;a target="_blank" href="http://www.flickr.com/photos/schoschie/"&gt;schoschie&lt;/a&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;This is an interesting read, specially for those contemplating migrating to the cloud.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;a href="http://lifehacker.com/5325169/the-hidden-risks-of-cloud-computing" class="top"&gt;The Hidden Risks of Cloud Computing&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7758114000990713523-1012719754827680763?l=www.criverapr.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/criverapr/~4/ovNpCJ36WC4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.criverapr.com/feeds/1012719754827680763/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7758114000990713523&amp;postID=1012719754827680763&amp;isPopup=true" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7758114000990713523/posts/default/1012719754827680763?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7758114000990713523/posts/default/1012719754827680763?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/criverapr/~3/ovNpCJ36WC4/risks-of-cloud-computing.html" title="Risks of Cloud Computing" /><author><name>Carlos</name><uri>http://www.blogger.com/profile/09961478284332496098</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="27" height="32" src="http://3.bp.blogspot.com/_0Pk4yRiLYn4/SO0Qop-x5LI/AAAAAAAAAA4/s_ndDus4f0k/S220/Carlos-Sept2008.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://www.criverapr.com/2009/08/risks-of-cloud-computing.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0UFRHYyfCp7ImA9WxJVEE4.&quot;"><id>tag:blogger.com,1999:blog-7758114000990713523.post-7174937590028486153</id><published>2009-06-26T11:31:00.003-04:00</published><updated>2009-06-26T12:53:35.894-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-26T12:53:35.894-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="joomla php" /><title>Creating Image Maps in Joomla</title><content type="html">&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;div align="left"&gt;&lt;a target="_blank" href="http://www.flickr.com/photos/hagengraf/1948203944/"&gt;&lt;img src="http://farm3.static.flickr.com/2053/1948203944_ec64a88b79_m_d.jpg" /&gt;&lt;/a&gt; &lt;i&gt;Photo By &lt;a target="_blank" href="http://www.flickr.com/photos/hagengraf/"&gt;cocoate.com&lt;/a&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;Lately I've been working on some joomla sites for some friends and in one of the sites my friend wanted to add an imagemap.  So I started researching what was the best way to go about doing this in a joomla site.  I even posted a question in &lt;a target="_blank" href="http://stackoverflow.com/questions/970945/image-map-in-joomla"&gt;Stackoverflow&lt;/a&gt;.  Well my search lead me &lt;a target="_blank" href="http://code.google.com/p/imgmap/wiki/Joomla_setup"&gt;here&lt;/a&gt;, it is a plugin for the default editor(TinyMCE) included in joomla that adds the ability to create and modify image maps in articles.  After following the instructions on that page I still couldn't see the image map button on the TinyMCE toolbar.  I found some installation instructions within the downloaded package and they didn't match the ones on the page, so I decided to give those a try, but there were some problems. &lt;br /&gt;&lt;br /&gt;These are the instructions from the page referenced above:&lt;br /&gt;&lt;blockquote&gt;&lt;ol&gt;&lt;li&gt;copy files from plugin_tinymce{x}.zip to {yourjoomlainstance}/plugins/editors/tinymce/jscripts/tiny_mce/plugins/imgmap/ &lt;/li&gt;&lt;li&gt;edit {yourjoomlainstance}/plugins/editors/tinymce.xml, after 'directionality' add lines: &lt;/li&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;param name="imgmap" type="radio" default="1" label="Imagemap" description="Imagemap"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;option value="0"&amp;gt;Hide&amp;lt;/option&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;option value="1"&amp;gt;Show&amp;lt;/option&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/param&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;li&gt;edit {yourjoomlainstance}/plugins/editors/tinymce.php, after 'XHTMLxtras' add lines: &lt;/li&gt;&lt;code&gt;&lt;br /&gt;if ( $imgmap ) {&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;$plugins[]&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;= 'imgmap';&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;$buttons3[]&amp;#160;&amp;#160;&amp;#160;&amp;#160; = 'imgmap';&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;$elements[]&amp;#160;&amp;#160;&amp;#160;&amp;#160; = 'img[usemap|class|src|border=0|alt|title|hspace|vspace|width|height|align|onmouseover|onmouseout|name],map[id|name],area[shape|alt|coords|href|target]';&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;go to Joomla admin/Plugin manager/Editor - TinyMCE 2.0/Advanced Parameters, and make sure Imagemap is set to Show. &lt;/li&gt;&lt;li&gt;go to article editor, click on any image, and notice the button highlighted on the toolbar, you are done:) &lt;/li&gt;&lt;/ol&gt;&lt;/blockquote&gt;&lt;br /&gt;These are the instructions found within the downloaded package:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;ol&gt;&lt;li&gt;copy files to plugins/imgmap/&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;set up your instance in the tinyMCE.init method to use the plugin, like:&lt;br /&gt;plugins : "table,save,advhr,advimage,imgmap,...",&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;set up your instance to use the imgmap button, for example:&lt;br /&gt;theme_advanced_buttons3_add : "emotions,iespell,...,imgmap",&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;you might need to add:&lt;br /&gt;extended_valid_elements : "img[usemap|class|src|border=0|alt|title|hspace|vspace|width|height|align|onmouseover|onmouseout|name],map[id|name],area[shape|alt|coords|href|target]",&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Ok so I had done the first step since I had already done the five ste.s.  I never found the tinyMCE.init mentioned in the second step so I decided to skip the step.  I didn't understand where I was supposed to make the change mentioned in the third step so I decided to skip it as well.  The parameter mentioned in the fourth step took a while to figure out, but I finally found it by going to Plugin Manager--&amp;gt;Editor - TinyMCE and it is in the Plugin Parameters(below is a screenshot). &lt;br /&gt;&lt;a target="_blank" href="http://www.flickr.com/photos/criverapr/3662969288/"&gt;&lt;img src="http://farm4.static.flickr.com/3131/3662969288_6d3cfa0ebd_d.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;After doing this last step I finally got the image map button to show on my TinyMCE toolbar.&lt;br /&gt;&lt;a target="_blank" href="http://www.flickr.com/photos/criverapr/3663019036/"&gt;&lt;img src="http://farm3.static.flickr.com/2448/3663019036_a1f69dc9c8_d.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In conclusion, to get this to work I had to use a combination of both instructions.  The actual instructions should be:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Copy files to plugins/imgmap/&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Edit {yourjoomlainstance}/plugins/editors/tinymce.xml, after 'directionality' add lines:&lt;br /&gt;&lt;/li&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;param name="imgmap" type="radio" default="1" label="Imagemap" description="Imagemap"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;option value="0"&amp;gt;Hide&amp;lt;/option&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;option value="1"&amp;gt;Show&amp;lt;/option&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/param&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;li&gt;Edit {yourjoomlainstance}/plugins/editors/tinymce.php, after 'XHTMLxtras' add lines:&lt;/li&gt;&lt;code&gt;&lt;br /&gt;if ( $imgmap ) {&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;$plugins[]&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;= 'imgmap';&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;$buttons3[]&amp;#160;&amp;#160;&amp;#160;&amp;#160; = 'imgmap';&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;$elements[]&amp;#160;&amp;#160;&amp;#160;&amp;#160; = 'img[usemap|class|src|border=0|alt|title|hspace|vspace|width|height|align|onmouseover|onmouseout|name],map[id|name],area[shape|alt|coords|href|target]';&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;li&gt;Add the following to the "Extended Valid Elements" parameter:&lt;br /&gt;img[usemap|class|src|border=0|alt|title|hspace|vspace|width|height|align|onmouseover|onmouseout|name],map[id|name],area[shape|alt|coords|href|target]&lt;/li&gt;&lt;/ol&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7758114000990713523-7174937590028486153?l=www.criverapr.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/criverapr/~4/qMFHdPafXEM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.criverapr.com/feeds/7174937590028486153/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7758114000990713523&amp;postID=7174937590028486153&amp;isPopup=true" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7758114000990713523/posts/default/7174937590028486153?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7758114000990713523/posts/default/7174937590028486153?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/criverapr/~3/qMFHdPafXEM/creating-image-maps-in-joomla.html" title="Creating Image Maps in Joomla" /><author><name>Carlos</name><uri>http://www.blogger.com/profile/09961478284332496098</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="27" height="32" src="http://3.bp.blogspot.com/_0Pk4yRiLYn4/SO0Qop-x5LI/AAAAAAAAAA4/s_ndDus4f0k/S220/Carlos-Sept2008.jpg" /></author><thr:total>4</thr:total><feedburner:origLink>http://www.criverapr.com/2009/06/creating-image-maps-in-joomla.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0ANRnk8eSp7ImA9WxJQFE4.&quot;"><id>tag:blogger.com,1999:blog-7758114000990713523.post-5267044565794164374</id><published>2009-05-15T10:44:00.002-04:00</published><updated>2009-05-27T10:49:57.771-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-05-27T10:49:57.771-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="notes" /><category scheme="http://www.blogger.com/atom/ns#" term="domino" /><category scheme="http://www.blogger.com/atom/ns#" term="xpages" /><category scheme="http://www.blogger.com/atom/ns#" term="ideajam" /><category scheme="http://www.blogger.com/atom/ns#" term="ibm" /><category scheme="http://www.blogger.com/atom/ns#" term="lotus" /><title>Notes Net Forums xPages Design Update</title><content type="html">&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;div align='left'&gt;&lt;a href='http://www.flickr.com/photos/qisur/3558878173/' target='_blank'&gt;&lt;img src='http://farm4.static.flickr.com/3379/3558878173_900ff05a78_m_d.jpg'/&gt;&lt;/a&gt; &lt;i&gt;Photo By &lt;a href='http://www.flickr.com/photos/qisur/' target='_blank'&gt;qisur&lt;/a&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;I was looking through the &lt;a href='http://www.ibm.com/developerworks/lotus' target='_blank'&gt;notes.net&lt;/a&gt; forums last night and it occurred to me that they badly need a design update.  So I went to &lt;a href='http://www.ideajam.net/' target='_blank'&gt;ideajam&lt;/a&gt; and searched to make sure that nobody had already created an idea about this, it turns out someone had, so I promoted the idea and I urge everyone that uses the forums to do the same.  I'm a bit surprised as to why IBM hasn't already updated the design of the forums to the new xPages design, I mean it seems like the logical thing to do since it shows off the cool stuff you can do with the new version of domino.  I mean what better way is there to show off xPages?  The forums are used daily by hundreds of users yellowbleeders, newbies, and most importantly people that don't like notes/domino but are forced to work with it where they work.  Who knows maybe these last people will start to like notes/domino a bit more once they see the new cool stuff that can be done with xPages.&lt;br /&gt;&lt;br /&gt;Head over to ideajam and promote the idea if you haven't already--&amp;gt; &lt;a target='_blank' href='http://www.ideajam.net/IdeaJam/P/ij.nsf/0/03DF231FFD5E29798625738C007A1EBF?OpenDocument'&gt;Improve notes.net forums&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7758114000990713523-5267044565794164374?l=www.criverapr.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/criverapr/~4/NFwWhsx1syg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.criverapr.com/feeds/5267044565794164374/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7758114000990713523&amp;postID=5267044565794164374&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7758114000990713523/posts/default/5267044565794164374?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7758114000990713523/posts/default/5267044565794164374?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/criverapr/~3/NFwWhsx1syg/notes-net-forums-xpages-design-update.html" title="Notes Net Forums xPages Design Update" /><author><name>Carlos</name><uri>http://www.blogger.com/profile/09961478284332496098</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="27" height="32" src="http://3.bp.blogspot.com/_0Pk4yRiLYn4/SO0Qop-x5LI/AAAAAAAAAA4/s_ndDus4f0k/S220/Carlos-Sept2008.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.criverapr.com/2009/05/notes-net-forums-xpages-design-update.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkUARns8eip7ImA9WxJSFk4.&quot;"><id>tag:blogger.com,1999:blog-7758114000990713523.post-6405977405749258215</id><published>2009-05-06T14:24:00.001-04:00</published><updated>2009-05-06T14:24:07.572-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-05-06T14:24:07.572-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="notes" /><category scheme="http://www.blogger.com/atom/ns#" term="lotusscript" /><category scheme="http://www.blogger.com/atom/ns#" term="development" /><category scheme="http://www.blogger.com/atom/ns#" term="domino" /><category scheme="http://www.blogger.com/atom/ns#" term="formula" /><category scheme="http://www.blogger.com/atom/ns#" term="lotus" /><title>Code That Makes You Say... Huh? #1</title><content type="html">&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;div align='left'&gt;&lt;a target='_blank' href='http://www.flickr.com/photos/aroberts/3311629522/'&gt;&lt;img src='http://farm4.static.flickr.com/3452/3311629522_b4faf8ae54_m_d.jpg'/&gt;&lt;/a&gt; &lt;i&gt;Photo By &lt;a target='_blank' href='http://www.flickr.com/photos/aroberts/'&gt;Andyrob&lt;/a&gt;&lt;br/&gt;&lt;/i&gt;&lt;br/&gt;&lt;br/&gt;Most of the work I do at my current job is maintenance to existing applications within my team.  A while ago I found an interesting line of code within a lotusscript library.&lt;br/&gt;&lt;br/&gt;&lt;small&gt;&lt;small&gt;TStamp = Evaluate("@Text(@Now)")&lt;/small&gt;&lt;/small&gt;&lt;br/&gt;&lt;br/&gt;It seems the developer that did this doesn't know that there is a Now function in lotusscript.  &lt;br/&gt;&lt;br/&gt;I have found this same line in most of the applications that I maintain and I've also seen it in applications that I don't maintain.  Worst of all most of these applications are used globally and this line is used to capture the date and write it to an audit trail.  What's wrong with this you ask?  Well you don't have a consistent audit trail, for example the date format in the UK is not the same as in the US.  &lt;br/&gt;&lt;br/&gt;Two solutions to fix this would be:&lt;br/&gt;&lt;ol&gt;&lt;li&gt;Make the audit trail date field a multi value date field and use the Now function to append the date value to the field.  With this approach you can use the field properties to adjust the format for displaying the dates.  This allows you to display the dates in the users local format or choose a specific format.&lt;br/&gt;&lt;/li&gt;&lt;li&gt;Use the Format function in combination with the Now function to get the same date format everytime.  With this approach you ensure a consistent date format within the audit trail, but you loose the ability to display the dates in the users local format.&lt;br/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br/&gt;Have you found code that makes you say Huh in applications you maintain?&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;P.S. I've tried telling the developer that maintains the other applications to modify the code, but that's another story...  &lt;br/&gt;&lt;/div&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=9b6d6f2f-4712-8910-a881-313f75fd88ca' class='zemanta-pixie-img'/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7758114000990713523-6405977405749258215?l=www.criverapr.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/criverapr/~4/tKxZjVHH3Rs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.criverapr.com/feeds/6405977405749258215/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7758114000990713523&amp;postID=6405977405749258215&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7758114000990713523/posts/default/6405977405749258215?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7758114000990713523/posts/default/6405977405749258215?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/criverapr/~3/tKxZjVHH3Rs/code-that-makes-you-say-huh-1.html" title="Code That Makes You Say... Huh? #1" /><author><name>Carlos</name><uri>http://www.blogger.com/profile/09961478284332496098</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="27" height="32" src="http://3.bp.blogspot.com/_0Pk4yRiLYn4/SO0Qop-x5LI/AAAAAAAAAA4/s_ndDus4f0k/S220/Carlos-Sept2008.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.criverapr.com/2009/05/code-that-makes-you-say-huh-1.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkAHQHw7fSp7ImA9WxJTGUg.&quot;"><id>tag:blogger.com,1999:blog-7758114000990713523.post-7780902722808314992</id><published>2009-04-28T15:31:00.001-04:00</published><updated>2009-04-28T17:38:51.205-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-28T17:38:51.205-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="general" /><category scheme="http://www.blogger.com/atom/ns#" term="fundraising" /><category scheme="http://www.blogger.com/atom/ns#" term="dragonboat" /><title>You Can Help!!!</title><content type="html">&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;div align='left'&gt;&lt;a href='http://www.flickr.com/photos/scoregasm/220025896/' target='_blank'&gt;&lt;img src='http://farm1.static.flickr.com/96/220025896_98ff1ba90c_m_d.jpg'/&gt;&lt;/a&gt; &lt;i&gt;Photo By &lt;a href='http://www.flickr.com/photos/scoregasm/' target='_blank'&gt;ViNull&lt;/a&gt;&lt;br/&gt;&lt;/i&gt;&lt;br/&gt;This Saturday I'm going to be competing at the &lt;a target='_blank' href='http://www.tampabaydragonboats.com/'&gt;Tampa Bay Dragonboat Races&lt;/a&gt; as part of the Big Blue Dragons Team.  As part of the event we are asked to help with fund raising with the proceeds going to two great organizations: &lt;span style='font-size: 12pt;'&gt;&lt;u&gt;FACTors&lt;/u&gt; Breast Cancer Patient Support Program at Moffitt Cancer Center and &lt;u&gt;the Florida Aquarium&lt;/u&gt;&lt;/span&gt;.  &lt;br/&gt;&lt;br/&gt;So if you can please &lt;big&gt;&lt;big&gt;&lt;big&gt;&lt;a href='http://www.tampabaydragonboats.com/' target='_blank'&gt;Make a Donation&lt;/a&gt;&lt;br/&gt;&lt;/big&gt;&lt;/big&gt;&lt;/big&gt;&lt;br/&gt;If you make a donation remember to fill out our team name as &lt;b&gt;Big Blue Dragons&lt;/b&gt; and my name as individual paddler &lt;b&gt;Carlos Rivera&lt;/b&gt;.&lt;br/&gt;&lt;big&gt;&lt;big&gt;&lt;big&gt;&lt;br/&gt;&lt;/big&gt;&lt;/big&gt;&lt;/big&gt;&lt;br/&gt;If you live in the Tampa Bay area come watch the races behind the St Pete Times Forum --&amp;gt; &lt;a href='http://maps.google.com/maps?f=q&amp;amp;source=s_q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=Ice+Palace+Dr+Tampa,+FL+33602&amp;amp;sll=37.0625,-95.677068&amp;amp;sspn=34.122306,79.101563&amp;amp;ie=UTF8&amp;amp;ll=27.942815,-82.451642&amp;amp;spn=0.009288,0.019312&amp;amp;z=16&amp;amp;iwloc=A' target='_blank'&gt;Map&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=c3f5576a-a808-8fe8-8c56-88bb9bc10377' class='zemanta-pixie-img'/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7758114000990713523-7780902722808314992?l=www.criverapr.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/criverapr/~4/P4OjDrknX_8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.criverapr.com/feeds/7780902722808314992/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7758114000990713523&amp;postID=7780902722808314992&amp;isPopup=true" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7758114000990713523/posts/default/7780902722808314992?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7758114000990713523/posts/default/7780902722808314992?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/criverapr/~3/P4OjDrknX_8/you-can-help.html" title="You Can Help!!!" /><author><name>Carlos</name><uri>http://www.blogger.com/profile/09961478284332496098</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="27" height="32" src="http://3.bp.blogspot.com/_0Pk4yRiLYn4/SO0Qop-x5LI/AAAAAAAAAA4/s_ndDus4f0k/S220/Carlos-Sept2008.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://www.criverapr.com/2009/04/you-can-help.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEQHRX0yeip7ImA9WxVaEk0.&quot;"><id>tag:blogger.com,1999:blog-7758114000990713523.post-987698732082809288</id><published>2009-04-08T10:50:00.001-04:00</published><updated>2009-04-08T10:52:14.392-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-08T10:52:14.392-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="domino" /><category scheme="http://www.blogger.com/atom/ns#" term="ui" /><category scheme="http://www.blogger.com/atom/ns#" term="ideajam" /><category scheme="http://www.blogger.com/atom/ns#" term="lotus" /><title>Better Lotus Notes DB Icons</title><content type="html">&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;div align='left'&gt;&lt;a href='http://www.flickr.com/photos/theresasthompson/2999130055/' target='_blank'&gt;&lt;img src='http://farm4.static.flickr.com/3034/2999130055_8697986e51_m_d.jpg'/&gt;&lt;/a&gt; &lt;i&gt;Photo By &lt;a href='http://www.flickr.com/photos/theresasthompson/' target='_blank'&gt;Theresa Thompson&lt;/a&gt;&lt;br/&gt;&lt;/i&gt;&lt;br/&gt;If you haven't done so, please head over to the &lt;a target='_blank' href='http://www.notesdesignblog.com/notesdesignblog/ndblog.nsf/dx/so-just-how-badly-do-you-want-image-resources-as-databse-application-icons.htm'&gt;Notes Design&lt;/a&gt; blog and &lt;a target='_blank' href='http://www.ideajam.net/IdeaJam/P/ij.nsf/0/136357EEA0B19EE886257386005D86F8?OpenDocument'&gt;ideajam&lt;/a&gt; and give your input.  We have been asking for application icons to allow more colors for as long as I can remember.  The application icon is the first thing the user sees and let's face it, 16 color icons does make the application look like legacy software.  So anyways just head over to ideajam and promote the ideas the more votes it has the more likely it will be done.&lt;br/&gt;&lt;br/&gt;&lt;a href='http://www.ideajam.net/IdeaJam/P/ij.nsf/0/8412783B0AD729C38625737E0058B263?OpenDocument' target='_blank'&gt;Allow Notes Database icon to have 24-bit (=16.7 million) colors&lt;/a&gt;&lt;br/&gt;&lt;a href='http://www.ideajam.net/IdeaJam/P/ij.nsf/0/136357EEA0B19EE886257386005D86F8?OpenDocument' target='_blank'&gt;Allow .png and .svg image resources&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=7a136462-7558-8592-b405-f5e425e829a6' class='zemanta-pixie-img'/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7758114000990713523-987698732082809288?l=www.criverapr.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/criverapr/~4/w6HHRYmH4Ps" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.criverapr.com/feeds/987698732082809288/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7758114000990713523&amp;postID=987698732082809288&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7758114000990713523/posts/default/987698732082809288?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7758114000990713523/posts/default/987698732082809288?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/criverapr/~3/w6HHRYmH4Ps/better-lotus-notes-db-icons.html" title="Better Lotus Notes DB Icons" /><author><name>Carlos</name><uri>http://www.blogger.com/profile/09961478284332496098</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="27" height="32" src="http://3.bp.blogspot.com/_0Pk4yRiLYn4/SO0Qop-x5LI/AAAAAAAAAA4/s_ndDus4f0k/S220/Carlos-Sept2008.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.criverapr.com/2009/04/better-lotus-notes-db-icons.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkEDRXk6eip7ImA9WxVaEk0.&quot;"><id>tag:blogger.com,1999:blog-7758114000990713523.post-276366811090157515</id><published>2009-04-06T15:25:00.001-04:00</published><updated>2009-04-08T10:24:34.712-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-08T10:24:34.712-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="notes" /><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="domiclipse" /><category scheme="http://www.blogger.com/atom/ns#" term="development" /><category scheme="http://www.blogger.com/atom/ns#" term="domino" /><title>Better Java Development with Domiclipse</title><content type="html">&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;I have been using &lt;a target='_blank' href='http://www.domiclipse.com/domiclipse/web.nsf'&gt;Domiclipse&lt;/a&gt; for over 2 years now and it is a great tool when doing java development within Notes.  It's basically a set of plugins that allow you to import a notes application as a java project into eclipse and do development using all the great tools included in eclipse.  Then it lets you sync your changes back into your notes application with a click of a button.  Anyway, I decided to post a step-by-step tutorial of how to install Domiclipse into your existing copy of eclipse. &lt;br/&gt;&lt;br/&gt;First we open up the eclipse environment and we click on the &lt;b&gt;Help--&amp;gt;Software Updates...&lt;/b&gt; menu item.&lt;br/&gt;&lt;a target='_blank' href='http://www.flickr.com/photos/criverapr/3419020510/'&gt;&lt;img style='max-width: 800px;' src='http://farm4.static.flickr.com/3612/3419020510_b6edc6f4b5_d.jpg'/&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Next we have to add the update site url for Domiclipse.  On the Software Update and Add-ons window click on the &lt;b&gt;Available Software&lt;/b&gt; tab and then click on the &lt;b&gt;Add Site...&lt;/b&gt; button on the right.&lt;br/&gt;&lt;a target='_blank' href='http://www.flickr.com/photos/criverapr/3419020532/'&gt;&lt;img style='max-width: 800px;' src='http://farm4.static.flickr.com/3642/3419020532_e36366dbf8_d.jpg'/&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Next we add &lt;b&gt;http://www.domiclipse.com/domiclipse/update.nsf&lt;/b&gt; as the location in the &lt;b&gt;Add Site&lt;/b&gt; window and click on OK.&lt;br/&gt;&lt;a target='_blank' href='http://www.flickr.com/photos/criverapr/3418211037/'&gt;&lt;img style='max-width: 800px;' src='http://farm4.static.flickr.com/3018/3418211037_9f6863d13c_d.jpg'/&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Once we have added the site to the &lt;b&gt;Available Software&lt;/b&gt;, expand the site by clicking on the + on the left of the new site and this will fetch the available plugins from the Domiclipse site.  Next we want to expand the eclipse category and check the box next to the Domiclipse Java Feature.  The next thing to do is click the &lt;b&gt;Install...&lt;/b&gt; button on the right and this will start the installation.&lt;br/&gt;&lt;a target='_blank' href='http://www.flickr.com/photos/criverapr/3418211055/'&gt;&lt;img style='max-width: 800px;' src='http://farm4.static.flickr.com/3590/3418211055_089f7ab442_d.jpg'/&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;The next screen will ask you to confirm your choice, just click on the &lt;b&gt;Next &amp;gt;&lt;/b&gt;&lt;br/&gt;&lt;a target='_blank' href='http://www.flickr.com/photos/criverapr/3418211083/'&gt;&lt;img style='max-width: 800px;' src='http://farm4.static.flickr.com/3364/3418211083_c955573f04_d.jpg'/&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Next you will be asked to accept the license, here you will have to click on the &lt;b&gt;I accept the terms of the license agreement&lt;/b&gt; radio button and then click on the &lt;b&gt;Finish&lt;/b&gt; button.&lt;br/&gt;&lt;a target='_blank' href='http://www.flickr.com/photos/criverapr/3418211099/'&gt;&lt;img style='max-width: 800px;' src='http://farm4.static.flickr.com/3305/3418211099_d99c0ff7b4_d.jpg'/&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;After the installation finishes you will need to shutdown eclipse and open the properties for your eclipse shortcut.  Here you will have to edit the &lt;b&gt;Start in:&lt;/b&gt; property to match your Notes program directory in my case it is C:\Notes&lt;br/&gt;&lt;a target='_blank' href='http://www.flickr.com/photos/criverapr/3419020608/'&gt;&lt;img style='max-width: 800px;' src='http://farm4.static.flickr.com/3580/3419020608_04179f6acd_d.jpg'/&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;The final step would be to start up eclipse and verify that you have the Domiclipse icons on your toolbar.&lt;br/&gt;&lt;a target='_blank' href='http://www.flickr.com/photos/criverapr/3418211113/'&gt;&lt;img style='max-width: 800px;' src='http://farm4.static.flickr.com/3380/3418211113_f1b6e23c1b_d.jpg'/&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Congratulations you have just installed Domiclipse into your eclipse environment.  Hope this helps some of you new that are new to java and eclipse.  Domino designer 8.5.1 is supposed to have most of the eclipse features, but Domiclipse will still be a great asset to those that don't upgrade right away, which I'm guessing is most of us.&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=f118d050-5f6d-855b-bad8-c37b41cc95c4' class='zemanta-pixie-img'/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7758114000990713523-276366811090157515?l=www.criverapr.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/criverapr/~4/AK9nB1fDObs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.criverapr.com/feeds/276366811090157515/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7758114000990713523&amp;postID=276366811090157515&amp;isPopup=true" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7758114000990713523/posts/default/276366811090157515?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7758114000990713523/posts/default/276366811090157515?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/criverapr/~3/AK9nB1fDObs/better-java-development-with-domiclipse.html" title="Better Java Development with Domiclipse" /><author><name>Carlos</name><uri>http://www.blogger.com/profile/09961478284332496098</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="27" height="32" src="http://3.bp.blogspot.com/_0Pk4yRiLYn4/SO0Qop-x5LI/AAAAAAAAAA4/s_ndDus4f0k/S220/Carlos-Sept2008.jpg" /></author><thr:total>3</thr:total><feedburner:origLink>http://www.criverapr.com/2009/04/better-java-development-with-domiclipse.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0UBQ3szfCp7ImA9WxJVEE4.&quot;"><id>tag:blogger.com,1999:blog-7758114000990713523.post-2774210214630033397</id><published>2009-03-18T12:03:00.002-04:00</published><updated>2009-06-26T12:54:12.584-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-26T12:54:12.584-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="php eclipse pdt" /><title>Learning some PHP</title><content type="html">&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;div align='left'&gt;&lt;a href='http://www.flickr.com/photos/calevans/2265863104/' target='_blank'&gt;&lt;img src='http://farm3.static.flickr.com/2193/2265863104_0b7d4f49e5_m_d.jpg'/&gt;&lt;/a&gt; &lt;i&gt;Photo By &lt;a href='http://www.flickr.com/photos/calevans/' target='_blank'&gt;CalEvans&lt;/a&gt;&lt;br/&gt;&lt;/i&gt;&lt;br/&gt;During the last few weeks I decided to learn some PHP since I've had some requests to work with &lt;a href='http://www.joomla.org/' target='_blank'&gt;joomla&lt;/a&gt;.  For those that don't know joomla is a opensource CMS built on PHP.  Also PHP seems to be a big deal now a days, most of the jobs on freelance sites require you to know PHP and it doesn't hurt to know a bit about another technology.  So first thing I did was setup my dev environment.  I downloaded &lt;a href='http://www.apachefriends.org/en/xampp.html' target='_blank'&gt;XAMPP&lt;/a&gt; which is an all in one Apache distribution containing MySQL, PHP and Perl.  Next since I'm a fan of eclipse I downloaded the &lt;a href='http://www.eclipse.org/pdt/' target='_blank'&gt;eclipse PDT (PHP Development Tools Project)&lt;/a&gt;.  After that I found &lt;a href='http://www.latenightpc.com/blog/archives/2008/05/24/a-complete-lamp-development-environment-xampp-eclipse-pdt-and-xdebug' target='_blank'&gt;this&lt;/a&gt; very helpful article of how to configure the eclipse PDT and XAMPP as to have a working development environment on my PC.  After having the development environment setup I searched for some PHP tutorials to go through and found &lt;a href='http://www.w3schools.com/' target='_blank'&gt;w3schools.com&lt;/a&gt; had a very simple walkthrough of examples for PHP (&lt;a href='http://www.w3schools.com/PHP/DEfaULT.asP' target='_blank'&gt;PHP Tutorial&lt;/a&gt;).  In the end I got a very good feel of what can be done with PHP and I feel comfortable digging into some more advanced code.&lt;br/&gt;&lt;/div&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=27cfae6e-7cff-431a-800d-1b9ed562991a' class='zemanta-pixie-img'/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7758114000990713523-2774210214630033397?l=www.criverapr.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/criverapr/~4/KL4vH1Cn_qU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.criverapr.com/feeds/2774210214630033397/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7758114000990713523&amp;postID=2774210214630033397&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7758114000990713523/posts/default/2774210214630033397?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7758114000990713523/posts/default/2774210214630033397?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/criverapr/~3/KL4vH1Cn_qU/learning-some-php.html" title="Learning some PHP" /><author><name>Carlos</name><uri>http://www.blogger.com/profile/09961478284332496098</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="27" height="32" src="http://3.bp.blogspot.com/_0Pk4yRiLYn4/SO0Qop-x5LI/AAAAAAAAAA4/s_ndDus4f0k/S220/Carlos-Sept2008.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.criverapr.com/2009/03/learning-some-php.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0AERHg_cSp7ImA9WxVWFE0.&quot;"><id>tag:blogger.com,1999:blog-7758114000990713523.post-2999869221754934619</id><published>2009-02-23T09:56:00.001-05:00</published><updated>2009-02-23T10:08:25.649-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-23T10:08:25.649-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="portlet factory" /><title>WASCE Datasource in Portlet Factory</title><content type="html">&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;div align='left'&gt;&lt;a target='_blank' href='http://www.flickr.com/photos/bcnbits/2198525378/'&gt;&lt;img src='http://farm3.static.flickr.com/2205/2198525378_c3d4e23ecb_m_d.jpg'/&gt;&lt;/a&gt; &lt;i&gt;Photo By &lt;a target='_blank' href='http://www.flickr.com/photos/bcnbits/'&gt;MorBCN&lt;/a&gt;&lt;br/&gt;&lt;/i&gt;&lt;br/&gt;This weekend I was messing around with Websphere portlet factory 6.1.2 and trying to set up a datasource to the included &lt;a target='_blank' href='http://www-01.ibm.com/software/webservers/appserv/community/'&gt;WebSphere Application Server Community Edition&lt;/a&gt; proved to be more of a challenge than I had anticipated.  I found &lt;a href='http://www-10.lotus.com/ldd/pfwiki.nsf/dx/development-was-ce-deployment-scenario' target='_blank'&gt;Development WAS CE Deployment Scenario&lt;/a&gt; in the Portlet Factory wiki which helped, but it seems to need a fix for the new version of Portlet Factory.  In the datasource creation section it describes changes to two files, one is within your Portlet Factory project (WEB-INF\bin\deployment\wasce.web.xml) and the other is supposed to be within one of the folders of the Portlet Factory designer installation (&lt;designer-install-root&gt;WPFDesigner\FeatureSets\Web-App_6.0.2\Deployment\antscripts\templates\WEB-INF\geronimo-web.xml).  It seems this was the case for Portlet Factory 6.0.2, but for 6.1.2 I couldn't find the second file in the specified location.  After searching all over the Portlet factory designer installation files I decided to search the workspace since it was the only other logical place to search, and BINGO!  The geronimo-web.xml is now included in the same directory as the wasce.web.xml.&lt;/designer-install-root&gt;&lt;/div&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=2d2ee8a8-f0df-4dec-8c08-a56c40516131' class='zemanta-pixie-img'/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7758114000990713523-2999869221754934619?l=www.criverapr.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/criverapr/~4/pjXcwGK1_gE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.criverapr.com/feeds/2999869221754934619/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7758114000990713523&amp;postID=2999869221754934619&amp;isPopup=true" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7758114000990713523/posts/default/2999869221754934619?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7758114000990713523/posts/default/2999869221754934619?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/criverapr/~3/pjXcwGK1_gE/wasce-datasource-in-portlet-factory.html" title="WASCE Datasource in Portlet Factory" /><author><name>Carlos</name><uri>http://www.blogger.com/profile/09961478284332496098</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="27" height="32" src="http://3.bp.blogspot.com/_0Pk4yRiLYn4/SO0Qop-x5LI/AAAAAAAAAA4/s_ndDus4f0k/S220/Carlos-Sept2008.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://www.criverapr.com/2009/02/wasce-datasource-in-portlet-factory.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0ADRXYzeSp7ImA9WxVQGEg.&quot;"><id>tag:blogger.com,1999:blog-7758114000990713523.post-389692724969450224</id><published>2009-02-05T13:07:00.001-05:00</published><updated>2009-02-05T13:49:34.881-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-05T13:49:34.881-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="general" /><category scheme="http://www.blogger.com/atom/ns#" term="ibm" /><title>IBM Offering to Move People to India</title><content type="html">&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;div align='left'&gt;&lt;a target='_blank' href='http://www.flickr.com/photos/21376829@N05/3254573408'&gt;&lt;img height='185' width='251' src='http://farm4.static.flickr.com/3514/3254573408_d24cb281ba.jpg'/&gt;&lt;/a&gt; &lt;i&gt;Photo By &lt;a target='_blank' href='http://www.flickr.com/photos/atterhorn/'&gt;atterhorn&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;/i&gt;I read an interesting article on the &lt;a target='_blank' href='http://www.informationweek.com/news/management/outsourcing/showArticle.jhtml?articleID=213000389'&gt;InformationWeek&lt;/a&gt; site today, where IBM explains that it has a new program called "Project Match" that consists of helping laid off workers move to new jobs in developing markets like India, China, and Brazil.&lt;br/&gt;&lt;br/&gt;So let me get this straight, they not only offshore jobs, but now they want to offshore people too?  Isn't the off shoring one of the mayor reasons the economy is the way it is?  Sorry but I'm just against the off shoring.  The experiences some of my clients have gone through with off shoring have proved that it is not all that it is made out to be.  Anyway read the &lt;a target='_blank' href='http://www.informationweek.com/news/management/outsourcing/showArticle.jhtml?articleID=213000389'&gt;article&lt;/a&gt; to get all the details on IBM's "Project Match".  &lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7758114000990713523-389692724969450224?l=www.criverapr.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/criverapr/~4/sAL4rSLY6bE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.criverapr.com/feeds/389692724969450224/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7758114000990713523&amp;postID=389692724969450224&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7758114000990713523/posts/default/389692724969450224?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7758114000990713523/posts/default/389692724969450224?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/criverapr/~3/sAL4rSLY6bE/ibm-offering-to-move-people-to-india.html" title="IBM Offering to Move People to India" /><author><name>Carlos</name><uri>http://www.blogger.com/profile/09961478284332496098</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="27" height="32" src="http://3.bp.blogspot.com/_0Pk4yRiLYn4/SO0Qop-x5LI/AAAAAAAAAA4/s_ndDus4f0k/S220/Carlos-Sept2008.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://farm4.static.flickr.com/3514/3254573408_d24cb281ba_t.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.criverapr.com/2009/02/ibm-offering-to-move-people-to-india.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU8ARnk7fSp7ImA9WxVRGUQ.&quot;"><id>tag:blogger.com,1999:blog-7758114000990713523.post-2887505706523764313</id><published>2009-01-26T13:17:00.001-05:00</published><updated>2009-01-26T13:17:27.705-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-26T13:17:27.705-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="firefox" /><category scheme="http://www.blogger.com/atom/ns#" term="lotusphere2009" /><title>Download All Lotusphere 2009 Slides at Once</title><content type="html">&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Nice blog post that explains how to download all lotusphere slides by &lt;a href='http://blog.mindplan.com/mindplan/blog.nsf/' target='_blank'&gt;&lt;span class='name'&gt;Karsten Lehmann&lt;/span&gt;&lt;/a&gt; --&amp;gt;  &lt;a href='http://blog.mindplan.com/mindplan/blog.nsf/dx/24.01.2009185410KLENZE.htm' target='_blank'&gt;How to automatically download all the Lotusphere slides&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7758114000990713523-2887505706523764313?l=www.criverapr.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/criverapr/~4/Q1ZpGiq7_WU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.criverapr.com/feeds/2887505706523764313/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7758114000990713523&amp;postID=2887505706523764313&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7758114000990713523/posts/default/2887505706523764313?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7758114000990713523/posts/default/2887505706523764313?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/criverapr/~3/Q1ZpGiq7_WU/download-all-lotusphere-2009-slides-at.html" title="Download All Lotusphere 2009 Slides at Once" /><author><name>Carlos</name><uri>http://www.blogger.com/profile/09961478284332496098</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="27" height="32" src="http://3.bp.blogspot.com/_0Pk4yRiLYn4/SO0Qop-x5LI/AAAAAAAAAA4/s_ndDus4f0k/S220/Carlos-Sept2008.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.criverapr.com/2009/01/download-all-lotusphere-2009-slides-at.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUQBRHg-fip7ImA9WxVQFkw.&quot;"><id>tag:blogger.com,1999:blog-7758114000990713523.post-3186676390006494673</id><published>2009-01-23T16:36:00.001-05:00</published><updated>2009-02-02T17:22:35.656-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-02T17:22:35.656-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="lotusphere2009" /><title>Lotusphere 2009</title><content type="html">&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;a href='http://www.flickr.com/photos/74146337@N00/3210112619'&gt;&lt;img src='http://farm4.static.flickr.com/3089/3210112619_c5bedf782f.jpg'/&gt;&lt;/a&gt; &lt;i&gt;Photo By&lt;/i&gt; &lt;a href='http://www.flickr.com/photos/thomas-lang/' target='_blank'&gt;thomas-lang&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Wow!  I had five great days of sessions and fun at Lotusphere 2009.  The &lt;a href='http://www.blueman.com/' target='_blank'&gt;Blue Man Group&lt;/a&gt; was the entertainment for the opening general session and the guess speaker was &lt;a target='_blank' href='http://en.wikipedia.org/wiki/Dan_Aykroyd'&gt;Dan Aykroyd&lt;/a&gt;.  Like all other years I had a hard time selecting the sessions to go to since there were so many great sessions to choose from.  For the closing session we got to listen to a great speech by &lt;a target='_blank' href='http://en.wikipedia.org/wiki/Benjamin_Zander'&gt;Bejamin Zander&lt;/a&gt;.  He even got all the lotus geeks in the closing session to sing "Ode to Joy" in German.  This was the best closing session I've been to so far at Lotusphere.  &lt;br/&gt;&lt;br/&gt;After the closing session I went to the &lt;a target='_blank' href='http://bloggeropen.com/'&gt;Blogger Open&lt;/a&gt; for some mini golf fun.  Thanks &lt;a target='_blank' href='http://www.curiousmitch.com/curiousmitch/mitch2.nsf'&gt;CuriousMitch&lt;/a&gt; for organizing this event, it was fun and a great way to meet others from the community.&lt;br/&gt;&lt;br/&gt;I will definitely be back for Lotusphere 2010.  &lt;br/&gt;&lt;br/&gt;See you all there!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7758114000990713523-3186676390006494673?l=www.criverapr.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/criverapr/~4/bR8sDssb7TI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.criverapr.com/feeds/3186676390006494673/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7758114000990713523&amp;postID=3186676390006494673&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7758114000990713523/posts/default/3186676390006494673?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7758114000990713523/posts/default/3186676390006494673?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/criverapr/~3/bR8sDssb7TI/lotusphere-2009.html" title="Lotusphere 2009" /><author><name>Carlos</name><uri>http://www.blogger.com/profile/09961478284332496098</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="27" height="32" src="http://3.bp.blogspot.com/_0Pk4yRiLYn4/SO0Qop-x5LI/AAAAAAAAAA4/s_ndDus4f0k/S220/Carlos-Sept2008.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://farm4.static.flickr.com/3089/3210112619_c5bedf782f_t.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.criverapr.com/2009/01/lotusphere-2009.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUMGSX0ycCp7ImA9WxVQFkw.&quot;"><id>tag:blogger.com,1999:blog-7758114000990713523.post-3461932272103405446</id><published>2009-01-18T01:03:00.000-05:00</published><updated>2009-02-02T17:23:48.398-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-02T17:23:48.398-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="lotusphere2009" /><title>Lotusphere 2009 A Bit Late But Made It</title><content type="html">&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;div align='left'&gt;&lt;a target='_blank' href='http://www.flickr.com/photos/34683945@N00/2322771906'&gt;&lt;img height='185' width='251' src='http://farm3.static.flickr.com/2043/2322771906_56a2010eca.jpg'/&gt;&lt;/a&gt; &lt;i&gt;Photo By&lt;/i&gt; &lt;a href='http://www.flickr.com/photos/kbuilder/' target='_blank'&gt;kbuilder&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Well I made it to the Dolphin 20 minutes before registration closed.  I wanted to make it to B.A.L.D. but didn't make it on time.  I have a very busy schedule with all the sessions I plan to attend, but I'm looking forward to meeting some of the other bloggers in person.  I will also be blogging all the cool stuff I see this week so stay tuned.&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7758114000990713523-3461932272103405446?l=www.criverapr.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/criverapr/~4/K4Jg6BA4N84" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.criverapr.com/feeds/3461932272103405446/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7758114000990713523&amp;postID=3461932272103405446&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7758114000990713523/posts/default/3461932272103405446?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7758114000990713523/posts/default/3461932272103405446?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/criverapr/~3/K4Jg6BA4N84/lotusphere-2009-bit-late-but-made-it.html" title="Lotusphere 2009 A Bit Late But Made It" /><author><name>Carlos</name><uri>http://www.blogger.com/profile/09961478284332496098</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="27" height="32" src="http://3.bp.blogspot.com/_0Pk4yRiLYn4/SO0Qop-x5LI/AAAAAAAAAA4/s_ndDus4f0k/S220/Carlos-Sept2008.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://farm3.static.flickr.com/2043/2322771906_56a2010eca_t.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.criverapr.com/2009/01/lotusphere-2009-bit-late-but-made-it.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUIEQnk6cCp7ImA9WxVQFkw.&quot;"><id>tag:blogger.com,1999:blog-7758114000990713523.post-4926871959386329542</id><published>2009-01-11T13:57:00.000-05:00</published><updated>2009-02-02T17:25:03.718-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-02T17:25:03.718-05:00</app:edited><title>Lotus Notes 8.5 First Impressions</title><content type="html">&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;div align='left'&gt;&lt;a target='_blank' href='http://www.flickr.com/photos/9009028@N06/3188551442'&gt;&lt;img height='185' width='251' src='http://farm4.static.flickr.com/3125/3188551442_4329b3f856.jpg'/&gt;&lt;/a&gt; &lt;i&gt;Photo By &lt;a href='http://www.flickr.com/photos/ineal/' target='_blank'&gt;ineal&lt;/a&gt;&lt;/i&gt;&lt;br/&gt;&lt;br/&gt;Well I finally got around to upgrading my Lotus Notes 8.5 Beta installations on my iMac and on my Thinkpad at home yesterday.  I'm happy to say that performance is way better than that of the beta and also of the 8.0.2 client, specially loading time.  I also noticed that memory usage is also less on 8.5.  I plan on upgrading my development server later today so I will post a follow up on my impressions on that.  &lt;br/&gt;&lt;br/&gt;Great job &lt;a href='http://www.ibm.com' target='_blank'&gt;IBM&lt;/a&gt;!&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7758114000990713523-4926871959386329542?l=www.criverapr.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/criverapr/~4/bv4VkR00LCE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.criverapr.com/feeds/4926871959386329542/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7758114000990713523&amp;postID=4926871959386329542&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7758114000990713523/posts/default/4926871959386329542?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7758114000990713523/posts/default/4926871959386329542?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/criverapr/~3/bv4VkR00LCE/lotus-notes-85-first-impressions.html" title="Lotus Notes 8.5 First Impressions" /><author><name>Carlos</name><uri>http://www.blogger.com/profile/09961478284332496098</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="27" height="32" src="http://3.bp.blogspot.com/_0Pk4yRiLYn4/SO0Qop-x5LI/AAAAAAAAAA4/s_ndDus4f0k/S220/Carlos-Sept2008.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://farm4.static.flickr.com/3125/3188551442_4329b3f856_t.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.criverapr.com/2009/01/lotus-notes-85-first-impressions.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUEGQnc7eip7ImA9WxVQFkw.&quot;"><id>tag:blogger.com,1999:blog-7758114000990713523.post-4555443006797817957</id><published>2009-01-05T11:05:00.001-05:00</published><updated>2009-02-02T17:27:03.902-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-02T17:27:03.902-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="notes" /><category scheme="http://www.blogger.com/atom/ns#" term="lotusscript" /><category scheme="http://www.blogger.com/atom/ns#" term="development" /><category scheme="http://www.blogger.com/atom/ns#" term="logging" /><category scheme="http://www.blogger.com/atom/ns#" term="lotus" /><title>Lotus Notes DB User Activity</title><content type="html">&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;div align='left'&gt;&lt;a href='http://www.flickr.com/photos/29385160@N02/3144236127' target='_blank'&gt;&lt;img height='185' width='251' src='http://farm4.static.flickr.com/3222/3144236127_34720826d1.jpg'/&gt;&lt;/a&gt; &lt;i&gt;Photo By &lt;a href='http://www.flickr.com/photos/bluelakefreepress/' target='_blank'&gt;bluelakefreepress&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;/i&gt;Last week I was asked to provide some stats from an existing application which didn't have logging built into it.  After extensively searching on google and other search engines the only method I found was to use the NotesUserActivity class from the &lt;a target='_blank' href='http://www-10.lotus.com/ldd/sandbox.nsf/ecc552f1ab6e46e4852568a90055c4cd/c12a2fd2142758b68525688d00708397?OpenDocument'&gt;Lotus Sandbox&lt;/a&gt;.  This class uses the C api to get at the user activity data of a lotus notes database.&lt;br/&gt;&lt;br/&gt;I know the user activity is in no way a replacement for building logging into the application, but this is an existing application which didn't have logging.  The issue I ran into was that the user activity in a notes database only holds 1400 records, so this means that if the database is used heavily you might only get a few hours of usage data.  Luckily the application I'm reporting on isn't used that heavily so I got about a month worth of usage data, but I was asked to provide stats since the release of the application.  So I was just wondering if there another way to get usage data from a lotus notes application that doesn't have logging built into it?&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7758114000990713523-4555443006797817957?l=www.criverapr.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/criverapr/~4/ERa0WaaMBkk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.criverapr.com/feeds/4555443006797817957/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7758114000990713523&amp;postID=4555443006797817957&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7758114000990713523/posts/default/4555443006797817957?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7758114000990713523/posts/default/4555443006797817957?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/criverapr/~3/ERa0WaaMBkk/lotus-notes-db-user-activity.html" title="Lotus Notes DB User Activity" /><author><name>Carlos</name><uri>http://www.blogger.com/profile/09961478284332496098</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="27" height="32" src="http://3.bp.blogspot.com/_0Pk4yRiLYn4/SO0Qop-x5LI/AAAAAAAAAA4/s_ndDus4f0k/S220/Carlos-Sept2008.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://farm4.static.flickr.com/3222/3144236127_34720826d1_t.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.criverapr.com/2009/01/lotus-notes-db-user-activity.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUEDRHwycCp7ImA9WxVQFkw.&quot;"><id>tag:blogger.com,1999:blog-7758114000990713523.post-7603788959972702042</id><published>2008-12-15T11:20:00.001-05:00</published><updated>2009-02-02T17:27:55.298-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-02T17:27:55.298-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="vm" /><category scheme="http://www.blogger.com/atom/ns#" term="tips" /><category scheme="http://www.blogger.com/atom/ns#" term="utilities" /><title>Trim Down Windows XP for Your Virtual Machines</title><content type="html">&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;div align='left'&gt;&lt;a target='_blank' href='http://www.flickr.com/photos/27122145@N04/3100431645'&gt;&lt;img height='185' width='251' style='float: none;' src='http://farm4.static.flickr.com/3174/3100431645_96a0e193a9.jpg'/&gt;&lt;/a&gt; &lt;i&gt;Photo By&lt;/i&gt; &lt;a href='http://www.flickr.com/photos/nebelcarrillo/' target='_blank'&gt;nebelcarrillo&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;This article from &lt;a target='_blank' href='http://lifehacker.com/374376/trim-down-windows-to-the-bare-essentials'&gt;lifehacker&lt;/a&gt; explains how to remove unnecessary components of your WinXP installation cd.  This allows you to install WinXP on older hardware or virtual machines where resources are sometimes lacking.  They also mention an application to trim down existing installations of WinXP.  I'm trying it out on one of my existing virtual machines and will blog later on my findings.&lt;br/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7758114000990713523-7603788959972702042?l=www.criverapr.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/criverapr/~4/pNYrtK_yCU4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.criverapr.com/feeds/7603788959972702042/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7758114000990713523&amp;postID=7603788959972702042&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7758114000990713523/posts/default/7603788959972702042?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7758114000990713523/posts/default/7603788959972702042?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/criverapr/~3/pNYrtK_yCU4/trim-down-windows-xp-for-your-virtual.html" title="Trim Down Windows XP for Your Virtual Machines" /><author><name>Carlos</name><uri>http://www.blogger.com/profile/09961478284332496098</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="27" height="32" src="http://3.bp.blogspot.com/_0Pk4yRiLYn4/SO0Qop-x5LI/AAAAAAAAAA4/s_ndDus4f0k/S220/Carlos-Sept2008.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://farm4.static.flickr.com/3174/3100431645_96a0e193a9_t.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.criverapr.com/2008/12/trim-down-windows-xp-for-your-virtual.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkQMQX8-fCp7ImA9WxRbFE4.&quot;"><id>tag:blogger.com,1999:blog-7758114000990713523.post-4123305054131655291</id><published>2008-12-04T19:53:00.000-05:00</published><updated>2008-12-04T19:53:00.154-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-12-04T19:53:00.154-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="notes" /><category scheme="http://www.blogger.com/atom/ns#" term="development" /><category scheme="http://www.blogger.com/atom/ns#" term="domino" /><category scheme="http://www.blogger.com/atom/ns#" term="dxl" /><category scheme="http://www.blogger.com/atom/ns#" term="lotus" /><title>Embbeded Docs in Form</title><content type="html">&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;I ran into a strange situation the other day in a lotus notes application I have to maintain at work.  When I edited the main form the first time and saved it, it took over 5 minutes to save!!  When I looked at the size of the template is was over 90MB, it didn't have any data in it, and the % utilized was 99%.  So first thing I tried was to delete all design elements except for the form and compacted the template, that didn't help.  Next I decided to export the form using DXL, since opening it in the designer didn't show anything out of the ordenary.&lt;br/&gt;&lt;br/&gt;What I found was very interesting, at the end of the form element there seemed to be over 5 MS word documents "attached".  I also found some weird fields that seem to be stuff attached to the form also.  Using the technique described in &lt;a target='_blank' href='http://www-10.lotus.com/ldd/ddwiki.nsf/dx/view-of-design-elements.htm'&gt;Make a Notes view list design elements&lt;/a&gt; I created an agent to create a view to show the form element, then I created an action to delete the weird fields from the form.  As soon as I ran that action and compacted the template it went down to 30MB.&lt;br/&gt;&lt;br/&gt;I for one have never seen this situation before, have any of you ran into something similar?  What was the cause?&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7758114000990713523-4123305054131655291?l=www.criverapr.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/criverapr/~4/sK9rnDnw93E" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.criverapr.com/feeds/4123305054131655291/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7758114000990713523&amp;postID=4123305054131655291&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7758114000990713523/posts/default/4123305054131655291?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7758114000990713523/posts/default/4123305054131655291?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/criverapr/~3/sK9rnDnw93E/embbeded-docs-in-form.html" title="Embbeded Docs in Form" /><author><name>Carlos</name><uri>http://www.blogger.com/profile/09961478284332496098</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="27" height="32" src="http://3.bp.blogspot.com/_0Pk4yRiLYn4/SO0Qop-x5LI/AAAAAAAAAA4/s_ndDus4f0k/S220/Carlos-Sept2008.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.criverapr.com/2008/12/embbeded-docs-in-form.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEcCRX06cSp7ImA9WxRUFkk.&quot;"><id>tag:blogger.com,1999:blog-7758114000990713523.post-4173627090227285742</id><published>2008-11-25T09:38:00.001-05:00</published><updated>2008-11-25T15:47:44.319-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-11-25T15:47:44.319-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="lotusscript" /><category scheme="http://www.blogger.com/atom/ns#" term="development" /><category scheme="http://www.blogger.com/atom/ns#" term="domino" /><category scheme="http://www.blogger.com/atom/ns#" term="ui" /><title>Notes Views with Colors</title><content type="html">&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;After reading Jake Howlett's blog entry &lt;a target='_blank' href='http://www.codestore.net/store.nsf/unid/BLOG-20081120'&gt;How-To: Shade Your Views Based on Document's Age&lt;/a&gt;, I wanted to try the technique out on an application that runs on the lotus notes client and I would use the built in feature in Notes for assigning colors to rows.&lt;br /&gt;&lt;br /&gt;To use this feature you check the "Use value as color" property of the column&lt;br /&gt;&lt;a target='_blank' href='http://www.flickr.com/photos/criverapr/3058295695/' title='color-col-props by criverapr, on Flickr'&gt;&lt;img width='307' height='311' src='http://farm4.static.flickr.com/3004/3058295695_2e0335e23e.jpg' alt='color-col-props'/&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Then, assign the column a formula that will evaluate to either a list of three numbers between 0 to 255 or a list of six numbers also between 0 to 255.  If you send only three values that will become the RGB color for the text and if you send six values the first three will become the RGB for the background and the other three will be for the text.  It is also good to mention that these colors will take effect on all columns right of the color column, so it is not a good idea to create this column at the end of the view.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Example of values for column:&lt;/b&gt;&lt;br /&gt;&lt;i&gt;255:0:0  -  Red Text&lt;br /&gt;143:255:87:0:0:0  -  Green background with black text&lt;br /&gt;255:0:0:0:0:0  -  Red background with black text&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Here is a screenshot of the resulting view.  By adding these visual indicators I could even remove the creation date column and users would be able to tell the age of the documents.&lt;br /&gt;&lt;a target='_blank' href='http://www.flickr.com/photos/criverapr/3059132146/' title='colored-view by criverapr, on Flickr'&gt;&lt;img width='554' height='138' src='http://farm4.static.flickr.com/3153/3059132146_5269df142a_o.png' alt='colored-view'/&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The documents in the application I'm planning to use this technique on are measured in minutes and not on days, so I would schedule the agent to update the view column formula every 5 minutes instead of nightly.&lt;br /&gt;&lt;br /&gt;So now I ask, what kind of performance impact would this have on the database if any?&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7758114000990713523-4173627090227285742?l=www.criverapr.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/criverapr/~4/pXceOYrgvYQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.criverapr.com/feeds/4173627090227285742/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7758114000990713523&amp;postID=4173627090227285742&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7758114000990713523/posts/default/4173627090227285742?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7758114000990713523/posts/default/4173627090227285742?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/criverapr/~3/pXceOYrgvYQ/notes-views-with-colors.html" title="Notes Views with Colors" /><author><name>Carlos</name><uri>http://www.blogger.com/profile/09961478284332496098</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="27" height="32" src="http://3.bp.blogspot.com/_0Pk4yRiLYn4/SO0Qop-x5LI/AAAAAAAAAA4/s_ndDus4f0k/S220/Carlos-Sept2008.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://farm4.static.flickr.com/3004/3058295695_2e0335e23e_t.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.criverapr.com/2008/11/notes-views-with-colors.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE8EQX07eip7ImA9WxRVEEo.&quot;"><id>tag:blogger.com,1999:blog-7758114000990713523.post-2035842479982633951</id><published>2008-11-07T10:36:00.001-05:00</published><updated>2008-11-07T10:46:40.302-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-11-07T10:46:40.302-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="lotusscript" /><category scheme="http://www.blogger.com/atom/ns#" term="development" /><category scheme="http://www.blogger.com/atom/ns#" term="domino" /><title>Lotusscript Dir Function Causes Domino Crash</title><content type="html">&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;After many debugging and troubleshooting efforts &lt;a href='http://www.ibm.com' target='_blank'&gt;IBM&lt;/a&gt; has provided a hotfix for the issue I discussed in &lt;a href='http://criverapr.blogspot.com/2008/10/attachment-extractfile-limitation.html'&gt;Attachment ExtractFile Limitation&lt;/a&gt; post.  It seems that the lotusscript Dir function causes a server crash in version 7.0.2 and it seems that it may also be the case for version 8 and probably pre 7 versions.  When a path longer than 255 characters is passed to the Dir function it causes a crash instead of throwing an error.  This can easily be fixed by checking the path length before sending it to the Dir function, but it was a bit troublesome to track down because you don't expect the server to crash when calling a simple function so most of the time attention is focused on other more complex functions and third-party functions.&lt;br/&gt;&lt;br/&gt;Hope this helps anybody that runs into the same situation.&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7758114000990713523-2035842479982633951?l=www.criverapr.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/criverapr/~4/6GyZ8eTDW-Q" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.criverapr.com/feeds/2035842479982633951/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7758114000990713523&amp;postID=2035842479982633951&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7758114000990713523/posts/default/2035842479982633951?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7758114000990713523/posts/default/2035842479982633951?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/criverapr/~3/6GyZ8eTDW-Q/lotusscript-dir-function-crash.html" title="Lotusscript Dir Function Causes Domino Crash" /><author><name>Carlos</name><uri>http://www.blogger.com/profile/09961478284332496098</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="27" height="32" src="http://3.bp.blogspot.com/_0Pk4yRiLYn4/SO0Qop-x5LI/AAAAAAAAAA4/s_ndDus4f0k/S220/Carlos-Sept2008.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.criverapr.com/2008/11/lotusscript-dir-function-crash.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEQHRnY4eip7ImA9WxRWGEw.&quot;"><id>tag:blogger.com,1999:blog-7758114000990713523.post-7091223973193237834</id><published>2008-11-04T10:25:00.001-05:00</published><updated>2008-11-04T10:25:37.832-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-11-04T10:25:37.832-05:00</app:edited><title>Gmail Less Downtime Than Exchange &amp; Lotus</title><content type="html">&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Found this blog entry interesting.&lt;br/&gt;&lt;br/&gt;&lt;a href='http://googleblog.blogspot.com/2008/10/what-we-learned-from-1-million.html' target='_blank'&gt;Gmail Downtime Less Than Exchange &amp;amp; Lotus&lt;/a&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7758114000990713523-7091223973193237834?l=www.criverapr.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/criverapr/~4/HH12WvWswXU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.criverapr.com/feeds/7091223973193237834/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7758114000990713523&amp;postID=7091223973193237834&amp;isPopup=true" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7758114000990713523/posts/default/7091223973193237834?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7758114000990713523/posts/default/7091223973193237834?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/criverapr/~3/HH12WvWswXU/gmail-less-downtime-than-exchange-lotus.html" title="Gmail Less Downtime Than Exchange &amp;amp; Lotus" /><author><name>Carlos</name><uri>http://www.blogger.com/profile/09961478284332496098</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="27" height="32" src="http://3.bp.blogspot.com/_0Pk4yRiLYn4/SO0Qop-x5LI/AAAAAAAAAA4/s_ndDus4f0k/S220/Carlos-Sept2008.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://www.criverapr.com/2008/11/gmail-less-downtime-than-exchange-lotus.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU8NRHw6fCp7ImA9WxVUEkk.&quot;"><id>tag:blogger.com,1999:blog-7758114000990713523.post-4849986123342666930</id><published>2008-10-20T22:00:00.001-04:00</published><updated>2009-03-16T19:58:15.214-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-03-16T19:58:15.214-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="lotusscript" /><category scheme="http://www.blogger.com/atom/ns#" term="development" /><category scheme="http://www.blogger.com/atom/ns#" term="LS2J" /><category scheme="http://www.blogger.com/atom/ns#" term="excel" /><category scheme="http://www.blogger.com/atom/ns#" term="poi" /><category scheme="http://www.blogger.com/atom/ns#" term="apache" /><title>Using POI to Export Lotus Notes Data to Excel</title><content type="html">&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;As those who have been reading my previous posts have seen, I have been working on a project that involves exporting meta data from Lotus Notes documents to an excel sheet.  I'm using the CreateObject("Excel.Application") function to do this.  The problem is that the agents that do this export are scheduled and run on a server.  This means that excel has to be installed on that server for the process to work and most of the admins that I had to work with did not like the idea of having excel on a server they have to support.  &lt;br/&gt;&lt;br/&gt;For this reason I started messing around with the &lt;a href='http://poi.apache.org/' target='_blank'&gt;apache project POI&lt;/a&gt;.  This project has pure java ports of file formats based on Microsoft's OLE 2 Compound&lt;br/&gt;        Document Format.  So it has classes for creating excel spreadsheets without having excel installed on the server, which would make the admins happy.  So I created this simple class to create and write rows to an excel file.&lt;br/&gt;&lt;br/&gt;&lt;font color='#000000'&gt;&lt;small&gt;&lt;small&gt;package com.clr.excel;&lt;br/&gt;&lt;br/&gt;import java.io.FileOutputStream;&lt;br/&gt;import org.apache.poi.hssf.usermodel.HSSFRichTextString;&lt;br/&gt;import org.apache.poi.hssf.usermodel.HSSFRow;&lt;br/&gt;import org.apache.poi.hssf.usermodel.HSSFSheet;&lt;br/&gt;import org.apache.poi.hssf.usermodel.HSSFWorkbook;&lt;br/&gt;&lt;br/&gt;public class ExcelWriter {&lt;br/&gt;    private int curRow;&lt;br/&gt;    private HSSFWorkbook curWB;&lt;br/&gt;    private HSSFSheet curSheet;&lt;br/&gt;&lt;br/&gt;    public boolean writeExcelHeader(String[] rowValues) {&lt;br/&gt;        try {&lt;br/&gt;            this.curRow = 0;&lt;br/&gt;            this.curWB = new HSSFWorkbook();&lt;br/&gt;            this.curSheet = this.curWB.createSheet("Sheet1");&lt;br/&gt;&lt;br/&gt;            //This will write the header row&lt;br/&gt;            return(this.writeToExcel(rowValues));&lt;br/&gt;        } catch(Exception ex) {&lt;br/&gt;            ex.printStackTrace();&lt;br/&gt;            return(false);    &lt;br/&gt;        }&lt;br/&gt;        &lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    public boolean writeToExcel(String[] rowValues) {&lt;br/&gt;&lt;br/&gt;        try {&lt;br/&gt;&lt;br/&gt;            HSSFRow row = this.curSheet.createRow(this.curRow);&lt;br/&gt;&lt;br/&gt;            for(int i = 0; i &amp;lt; rowValues.length; i++) {&lt;br/&gt;                row.createCell(i).setCellValue(new HSSFRichTextString(rowValues[i]));&lt;br/&gt;            }&lt;br/&gt;&lt;br/&gt;            this.curRow++;&lt;br/&gt;&lt;br/&gt;        } catch(Exception ex) {&lt;br/&gt;            ex.printStackTrace();&lt;br/&gt;            return(false);&lt;br/&gt;        }&lt;br/&gt;&lt;br/&gt;        return(true);&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    public boolean writeExcelFile(String fileName) {&lt;br/&gt;        try {&lt;br/&gt;            //Auto fit content&lt;br/&gt;            for(int i = 0; i &amp;lt; 20; i++) {&lt;br/&gt;                this.curSheet.autoSizeColumn((short)i);&lt;br/&gt;            }&lt;br/&gt;&lt;br/&gt;            // Write the output to a file&lt;br/&gt;            FileOutputStream fileOut = new FileOutputStream(fileName);&lt;br/&gt;            this.curWB.write(fileOut);&lt;br/&gt;            fileOut.close();&lt;br/&gt;        } catch(Exception ex) {&lt;br/&gt;            ex.printStackTrace();&lt;br/&gt;            return(false);&lt;br/&gt;        }&lt;br/&gt;        &lt;br/&gt;        return(true);&lt;br/&gt;&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;}&lt;/small&gt;&lt;/small&gt;&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;Again I used LS2J to use this class from my lotusScript agent.&lt;br/&gt;&lt;br/&gt;These declarations are needed to use LS2J&lt;br/&gt;&lt;small&gt;&lt;small&gt;&lt;br/&gt;Uselsx "*javacon"&lt;br/&gt;Use "ExcelWriter"&lt;/small&gt;&lt;/small&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Agent to create excel sheet.&lt;br/&gt;&lt;br/&gt;&lt;small&gt;&lt;small&gt;Sub Initialize&lt;br/&gt;    On Error Goto ErrorHandler&lt;br/&gt;    Dim session As New NotesSession&lt;br/&gt;    Dim db As NotesDatabase&lt;br/&gt;    Dim view As NotesView&lt;br/&gt;    Dim doc As NotesDocument&lt;br/&gt;    Dim js As JAVASESSION&lt;br/&gt;    Dim xlWriterClass As JAVACLASS&lt;br/&gt;    Dim xlWriterObject As JavaObject&lt;br/&gt;    Dim rowValues(1 To 3) As String&lt;br/&gt;    Dim folderName As String&lt;br/&gt;    &lt;br/&gt;    Print "Started Running CreateExcel"&lt;br/&gt;    &lt;br/&gt;    folderName = "C:\Temp\"&lt;br/&gt;    &lt;br/&gt;    'Initialize column headers&lt;br/&gt;    rowValues(1) = "Title"&lt;br/&gt;    rowValues(2) = "Date"&lt;br/&gt;    rowValues(3) = "Name"&lt;br/&gt;    &lt;br/&gt;    'Initialize Excel Writer class&lt;br/&gt;    Set js = New JAVASESSION&lt;br/&gt;    Set xlWriterClass = js.GetClass("com.clr.excel.ExcelWriter")&lt;br/&gt;    Set xlWriterObject = xlWriterClass.CreateObject&lt;br/&gt;    If(Not(xlWriterObject.writeExcelHeader(rowValues)))Then&lt;br/&gt;        Print "Error creating excel sheet!"&lt;br/&gt;        Exit Sub        &lt;br/&gt;    End If&lt;br/&gt;    &lt;br/&gt;    Set db = session.CurrentDatabase&lt;br/&gt;    Set view = db.GetView("MainView")&lt;br/&gt;    &lt;br/&gt;    Set doc = view.GetFirstDocument&lt;br/&gt;    Do While(Not(doc Is Nothing))&lt;br/&gt;        &lt;br/&gt;        rowValues(1) = doc.Title(0)&lt;br/&gt;        rowValues(2) = doc.selectedDate(0)&lt;br/&gt;        rowValues(3) = doc.Name(0)&lt;br/&gt;        &lt;br/&gt;        'Write metadata&lt;br/&gt;        If(Not(xlWriterObject.writeToExcel(rowValues)))Then&lt;br/&gt;            Print "Could not write to excel!"&lt;br/&gt;        End If&lt;br/&gt;        &lt;br/&gt;        Set doc = view.GetNextDocument(doc)&lt;br/&gt;    Loop&lt;br/&gt;    &lt;br/&gt;Finished:&lt;br/&gt;    xlWriterObject.writeExcelFile(folderName &amp;amp; "workbook.xls")&lt;br/&gt;    &lt;br/&gt;    Exit Sub&lt;br/&gt;    &lt;br/&gt;ErrorHandler:&lt;br/&gt;    Print "Error " &amp;amp; Error &amp;amp; " on line: " &amp;amp; Erl&lt;br/&gt;    &lt;br/&gt;    Resume Finished&lt;br/&gt;    &lt;br/&gt;End Sub&lt;/small&gt;&lt;/small&gt;&lt;br/&gt;&lt;br/&gt;Enjoy the code &lt;a href='http://dl.getdropbox.com/u/567115/MyExamples/LS2J-ExcelWriter.zip' target='_blank'&gt;here&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=1a27cad1-acc3-4b89-9a3a-dd0cef8523a7' class='zemanta-pixie-img'/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7758114000990713523-4849986123342666930?l=www.criverapr.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/criverapr/~4/BI12lRPOXGc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.criverapr.com/feeds/4849986123342666930/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7758114000990713523&amp;postID=4849986123342666930&amp;isPopup=true" title="5 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7758114000990713523/posts/default/4849986123342666930?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7758114000990713523/posts/default/4849986123342666930?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/criverapr/~3/BI12lRPOXGc/using-poi-to-export-lotus-notes-data-to.html" title="Using POI to Export Lotus Notes Data to Excel" /><author><name>Carlos</name><uri>http://www.blogger.com/profile/09961478284332496098</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="27" height="32" src="http://3.bp.blogspot.com/_0Pk4yRiLYn4/SO0Qop-x5LI/AAAAAAAAAA4/s_ndDus4f0k/S220/Carlos-Sept2008.jpg" /></author><thr:total>5</thr:total><feedburner:origLink>http://www.criverapr.com/2008/10/using-poi-to-export-lotus-notes-data-to.html</feedburner:origLink></entry></feed>

