<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Software Production Management &#187; Tools</title>
	<atom:link href="http://www.simpleprojectz.com/category/tools/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.simpleprojectz.com</link>
	<description>project management &#38; software development &#38; personal stuff</description>
	<lastBuildDate>Wed, 05 Oct 2011 01:46:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Simple Project Management</title>
		<link>http://www.simpleprojectz.com/2011/10/project-management-simple/</link>
		<comments>http://www.simpleprojectz.com/2011/10/project-management-simple/#comments</comments>
		<pubDate>Wed, 05 Oct 2011 01:46:12 +0000</pubDate>
		<dc:creator>Alberto Dominguez, PMP</dc:creator>
				<category><![CDATA[SW Development]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.simpleprojectz.com/?p=539</guid>
		<description><![CDATA[I&#8217;ve been thinking and working on a simple idea, that probably will sound bad for some old school project managers. I&#8217;ve been living, working, and teaching about the PMI standard for almost 3 years, and I&#8217;ve been working on agile software development since forever &#8211; because in software development, scope is a moving target so [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been thinking and working on a simple idea, that probably will sound bad for some old school project managers. I&#8217;ve been living, working, and teaching about the PMI standard for almost 3 years, and I&#8217;ve been working on agile software development since forever &#8211; because in software development, scope is a moving target so you cannot count on your &#8220;printed gantt chart&#8221;.</p>
<p><strong>The Idea</strong></p>
<p>To build a simple, extremely simple an online tool (webapp) to handle projects, but no only software projects -which is, I believe, the common approach. Build a set of easy-to-use tools to breakdown work (using drag-and-drop automagic for WBS or even to create Product Backlogs as you will probably build the WBS graphically. I&#8217;m not sure about how it will result, but I&#8217;m sure you get the point behind the idea. My mind is thinking about a built-in worksheet (like in a spreadsheets tool) to dynamically generate reports that works also as input forms &#8211; so you don&#8217;t have the Import/Export pain (if you use any online tool every day you know what I&#8217;m talking about).</p>
<p>I love little colored pieces of paper, boards (aka information radiators), eDocs with names and tasks and colors (I do love eDocs) &#8211; I&#8217;m not sure why Google does not have a Project Tool in its office suite.</p>
<p>I&#8217;m not sure when, while performing as PM, Professor, Speaker, and VP of Special Projects for PMI Colombia Chapter, I will get the time to work on this personal project.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.simpleprojectz.com/2011/10/project-management-simple/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Search Portlet</title>
		<link>http://www.simpleprojectz.com/2009/11/search-portlet/</link>
		<comments>http://www.simpleprojectz.com/2009/11/search-portlet/#comments</comments>
		<pubDate>Fri, 13 Nov 2009 03:02:59 +0000</pubDate>
		<dc:creator>Alberto Dominguez, PMP</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[SW Development]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[jboss]]></category>
		<category><![CDATA[jboss portal]]></category>
		<category><![CDATA[portal]]></category>
		<category><![CDATA[portlet]]></category>
		<category><![CDATA[search]]></category>
		<category><![CDATA[search portlet]]></category>

		<guid isPermaLink="false">http://www.simpleprojectz.com/?p=493</guid>
		<description><![CDATA[Few months ago I was developing a project on top of JBoss Portal. Unfortunately, JBoss Portal 2.7.x is a nice Portlet Container but a crappy CMS/Search engine -even when it is supported on Apache&#8217;s JackRabbit. However, I was forced to develop a search portlet. It wasn&#8217;t easy, and you will probably find that it is [...]]]></description>
			<content:encoded><![CDATA[<p>Few months ago I was developing a project on top of JBoss Portal. Unfortunately, JBoss Portal 2.7.x is a nice Portlet Container but a crappy CMS/Search engine -even when it is supported on Apache&#8217;s JackRabbit. However, I was forced to develop a search portlet. It wasn&#8217;t easy, and you will probably find that it is not a perfect solution. However I really hope you find this Search Portlet really useful.</p>
<p><strong>SearchPortlet.java</strong></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
</pre></td><td class="code"><pre class="java5" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">portal.portlets</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.io.IOException</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.ArrayList</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.Iterator</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.List</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javax.portlet.ActionRequest</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javax.portlet.ActionResponse</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javax.portlet.GenericPortlet</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javax.portlet.PortletConfig</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javax.portlet.PortletException</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javax.portlet.PortletRequestDispatcher</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javax.portlet.PortletSecurityException</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javax.portlet.RenderRequest</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javax.portlet.RenderResponse</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javax.portlet.UnavailableException</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javax.portlet.WindowState</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.log4j.Logger</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.jboss.portal.cms.CMS</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.jboss.portal.cms.CMSException</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.jboss.portal.cms.Command</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.jboss.portal.cms.model.File</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.jboss.portal.core.cms.ui.CMSPortlet</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.jboss.portal.search.FederatedQuery</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.jboss.portal.search.QueryConversionException</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.jboss.portal.search.federation.SearchFederation</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.jboss.portal.search.impl.jcr.JCRQuery</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.jboss.portal.search.impl.jcr.JCRQueryConverter</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> SearchPortlet <span style="color: #000000; font-weight: bold;">extends</span> CMSPortlet <span style="color: #009900;">&#123;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #003399; font-weight: bold;">Logger</span> log = <span style="color: #003399; font-weight: bold;">Logger</span>.<span style="color: #006633;">getLogger</span><span style="color: #009900;">&#40;</span>SearchPortlet.<span style="color: #000000; font-weight: bold;">class</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #000000; font-weight: bold;">private</span> SearchFederation SearchService<span style="color: #339933;">;</span>
  <span style="color: #000000; font-weight: bold;">private</span> CMS CMSService<span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #006600; font-weight: bold;">void</span> init<span style="color: #009900;">&#40;</span>PortletConfig config<span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">throws</span> PortletException <span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">super</span>.<span style="color: #006633;">init</span><span style="color: #009900;">&#40;</span>config<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #006600; font-weight: bold;">void</span> destroy<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">super</span>.<span style="color: #006633;">destroy</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #666666; font-style: italic;">/*
   * (non-Javadoc)
   *
   * @see javax.portlet.Portlet#init()
   */</span>
  @<span style="color: #003399; font-weight: bold;">Override</span>
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #006600; font-weight: bold;">void</span> init<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">throws</span> PortletException <span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">SearchService</span> = <span style="color: #009900;">&#40;</span>SearchFederation<span style="color: #009900;">&#41;</span> getPortletContext<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">getAttribute</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;SearchFederationService&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">CMSService</span> = <span style="color: #009900;">&#40;</span>CMS<span style="color: #009900;">&#41;</span> getPortletContext<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">getAttribute</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;CMS&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000000;  font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">SearchService</span> == <span style="color: #006600; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #000000; font-weight: bold;">throw</span> <span style="color: #000000; font-weight: bold;">new</span> PortletException<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Unable to start search service&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000;  font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">CMSService</span> == <span style="color: #006600; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #000000; font-weight: bold;">throw</span> <span style="color: #000000; font-weight: bold;">new</span> PortletException<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;CMS services not available&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">super</span>.<span style="color: #006633;">init</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #666666; font-style: italic;">/*
   * (non-Javadoc)
   *
   * @see javax.portlet.GenericPortlet#doView(javax.portlet.RenderRequest,
   * javax.portlet.RenderResponse)
   */</span>
  @<span style="color: #003399; font-weight: bold;">Override</span>
  <span style="color: #000000; font-weight: bold;">protected</span> <span style="color: #006600; font-weight: bold;">void</span> doView<span style="color: #009900;">&#40;</span>RenderRequest request, RenderResponse response<span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">throws</span> PortletException, <span style="color: #003399; font-weight: bold;">IOException</span>, UnavailableException <span style="color: #009900;">&#123;</span>
&nbsp;
    <span style="color: #003399; font-weight: bold;">String</span> portalInstance = request.<span style="color: #006633;">getWindowID</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">substring</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span>, request.<span style="color: #006633;">getWindowID</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">indexOf</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'/'</span>, <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    PortletRequestDispatcher prd = <span style="color: #006600; font-weight: bold;">null</span><span style="color: #339933;">;</span>
    <span style="color: #003399; font-weight: bold;">String</span> operation = <span style="color: #009900;">&#40;</span><span style="color: #003399; font-weight: bold;">String</span><span style="color: #009900;">&#41;</span> request.<span style="color: #006633;">getParameter</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;op&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000000;  font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>operation <span style="color: #339933;">!</span>= <span style="color: #006600; font-weight: bold;">null</span> <span style="color: #339933;">&amp;&amp;</span> operation.<span style="color: #006633;">equals</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;search&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #003399; font-weight: bold;">String</span> queryString = <span style="color: #009900;">&#40;</span><span style="color: #003399; font-weight: bold;">String</span><span style="color: #009900;">&#41;</span> request.<span style="color: #006633;">getParameter</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;query&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #000000;  font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>queryString <span style="color: #339933;">!</span>= <span style="color: #006600; font-weight: bold;">null</span> <span style="color: #339933;">&amp;&amp;</span> queryString.<span style="color: #006633;">length</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        request.<span style="color: #006633;">setAttribute</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;files&quot;</span>, <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">getFiles</span><span style="color: #009900;">&#40;</span>queryString, portalInstance<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        prd = <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">getPortletContext</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">getRequestDispatcher</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;/WEB-INF/jsp/results.jsp&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #009900;">&#125;</span> <span style="color: #000000;  font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
        prd = getPortletContext<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">getRequestDispatcher</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;/WEB-INF/jsp/search.jsp&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #009900;">&#125;</span>
      prd.<span style="color: #006633;">include</span><span style="color: #009900;">&#40;</span>request, response<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #000000;  font-weight: bold;">else</span> <span style="color: #000000;  font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>operation <span style="color: #339933;">!</span>= <span style="color: #006600; font-weight: bold;">null</span> <span style="color: #339933;">&amp;&amp;</span> operation.<span style="color: #006633;">equals</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;display&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #000000; font-weight: bold;">super</span>.<span style="color: #006633;">doView</span><span style="color: #009900;">&#40;</span>request, response<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #000000;  font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
      prd = getPortletContext<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">getRequestDispatcher</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;/WEB-INF/jsp/search.jsp&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      prd.<span style="color: #006633;">include</span><span style="color: #009900;">&#40;</span>request, response<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #666666; font-style: italic;">/*
   * (non-Javadoc)
   *
   * @see javax.portlet.Portlet#processAction(javax.portlet.ActionRequest,
   * javax.portlet.ActionResponse)
   */</span>
  @<span style="color: #003399; font-weight: bold;">Override</span>
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #006600; font-weight: bold;">void</span> processAction<span style="color: #009900;">&#40;</span>ActionRequest request, ActionResponse response<span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">throws</span> PortletException, PortletSecurityException, <span style="color: #003399; font-weight: bold;">IOException</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #003399; font-weight: bold;">String</span> profile<span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #003399; font-weight: bold;">String</span> operation = <span style="color: #009900;">&#40;</span><span style="color: #003399; font-weight: bold;">String</span><span style="color: #009900;">&#41;</span> request.<span style="color: #006633;">getParameter</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;op&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000000;  font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>operation <span style="color: #339933;">!</span>= <span style="color: #006600; font-weight: bold;">null</span> <span style="color: #339933;">&amp;&amp;</span> operation.<span style="color: #006633;">length</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #000000;  font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>operation.<span style="color: #006633;">equals</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;ask&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        response.<span style="color: #006633;">setWindowState</span><span style="color: #009900;">&#40;</span>WindowState.<span style="color: #006633;">NORMAL</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #009900;">&#125;</span> <span style="color: #000000;  font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
        response.<span style="color: #006633;">setWindowState</span><span style="color: #009900;">&#40;</span>WindowState.<span style="color: #006633;">MAXIMIZED</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #009900;">&#125;</span>
      response.<span style="color: #006633;">setRenderParameter</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;op&quot;</span>, operation<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #000000;  font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
      response.<span style="color: #006633;">setRenderParameter</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;op&quot;</span>, <span style="color: #0000ff;">&quot;ask&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      response.<span style="color: #006633;">setWindowState</span><span style="color: #009900;">&#40;</span>WindowState.<span style="color: #006633;">NORMAL</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000;  font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>operation.<span style="color: #006633;">equals</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;search&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #003399; font-weight: bold;">String</span> queryString = <span style="color: #009900;">&#40;</span><span style="color: #003399; font-weight: bold;">String</span><span style="color: #009900;">&#41;</span> request.<span style="color: #006633;">getParameter</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;query&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #000000;  font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>queryString <span style="color: #339933;">!</span>= <span style="color: #006600; font-weight: bold;">null</span> <span style="color: #339933;">&amp;&amp;</span> queryString.<span style="color: #006633;">length</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        response.<span style="color: #006633;">setRenderParameter</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;query&quot;</span>, queryString<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #003399; font-weight: bold;">List</span> getFiles<span style="color: #009900;">&#40;</span><span style="color: #003399; font-weight: bold;">String</span> queryString, <span style="color: #003399; font-weight: bold;">String</span> portal<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #003399; font-weight: bold;">List</span> files = <span style="color: #006600; font-weight: bold;">null</span><span style="color: #339933;">;</span>
    <span style="color: #003399; font-weight: bold;">List</span> filteredFiles = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399; font-weight: bold;">ArrayList</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000000;  font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>queryString <span style="color: #339933;">!</span>= <span style="color: #006600; font-weight: bold;">null</span> <span style="color: #339933;">&amp;&amp;</span> queryString.<span style="color: #006633;">length</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      FederatedQuery query = <span style="color: #000000; font-weight: bold;">new</span> FederatedQuery<span style="color: #009900;">&#40;</span>queryString<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      JCRQueryConverter converter = <span style="color: #000000; font-weight: bold;">new</span> JCRQueryConverter<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
      <span style="color: #000000; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
        Command searchCommand = CMSService.<span style="color: #006633;">getCommandFactory</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">createSearchCommand</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>JCRQuery<span style="color: #009900;">&#41;</span> converter.<span style="color: #006633;">convert</span><span style="color: #009900;">&#40;</span>query<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        files = <span style="color: #009900;">&#40;</span><span style="color: #003399; font-weight: bold;">List</span><span style="color: #009900;">&#41;</span> CMSService.<span style="color: #006633;">execute</span><span style="color: #009900;">&#40;</span>searchCommand<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #666666; font-style: italic;">// You can filter files if needed by reviewing its path under the CMS</span>
        <span style="color: #666666; font-style: italic;">// structure, by name, or any other criteria that fits your needs.</span>
&nbsp;
      <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span>CMSException e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        log.<span style="color: #006633;">error</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;CMS Error&quot;</span>, e<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span>QueryConversionException e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        log.<span style="color: #006633;">warn</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Conversion Error&quot;</span>, e<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">return</span> files<span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>I used two JSP pages to support this portlet.</p>
<ul>
<li>search.jsp &#8211; Search form &#8211; the standard portlet view</li>
<li>results.jsp &#8211; Results list page &#8211; appears with the portlet MAXIMIZED and displays CMS files that matches the criteria</li>
</ul>
<p><strong>search.jsp</strong> &#8211; (<a href="http://wordpress.org/extend/plugins/wp-syntax/" target="_blank">WP-Syntax</a> does not support JSP)</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code"><pre class="groovy" style="font-family:monospace;"><span style="color: #66cc66;">&lt;</span>h2<span style="color: #66cc66;">&gt;</span>Search<span style="color: #66cc66;">&lt;</span>/h2<span style="color: #66cc66;">&gt;</span>
<span style="color: #66cc66;">&lt;</span>form action<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;&lt;%=contactActionURL%&gt;&quot;</span> method<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;POST&quot;</span><span style="color: #66cc66;">&gt;</span>
  <span style="color: #66cc66;">&lt;</span>fieldset style<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;border: none;&quot;</span><span style="color: #66cc66;">&gt;</span>
    <span style="color: #66cc66;">&lt;</span>input name<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;op&quot;</span> type<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;hidden&quot;</span> value<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;search&quot;</span> /<span style="color: #66cc66;">&gt;</span>
    <span style="color: #66cc66;">&lt;</span>input name<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;query&quot;</span> type<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text&quot;</span> /<span style="color: #66cc66;">&gt;</span>
    <span style="color: #66cc66;">&lt;</span>input type<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;submit&quot;</span> value<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;Search&quot;</span> /<span style="color: #66cc66;">&gt;</span>
  <span style="color: #66cc66;">&lt;</span>/fieldset<span style="color: #66cc66;">&gt;</span>
<span style="color: #66cc66;">&lt;</span>/form<span style="color: #66cc66;">&gt;</span></pre></td></tr></table></div>

<p><strong>results.jsp</strong> &#8211; (<a href="http://wordpress.org/extend/plugins/wp-syntax/" target="_blank">WP-Syntax</a> does not support JSP)</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
</pre></td><td class="code"><pre class="groovy" style="font-family:monospace;"><span style="color: #66cc66;">&lt;%</span>@ page <span style="color: #000000; font-weight: bold;">import</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;org.jboss.portal.cms.model.File&quot;</span><span style="color: #66cc66;">%&gt;</span>
<span style="color: #66cc66;">&lt;%</span>@ page <span style="color: #000000; font-weight: bold;">import</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;java.util.List&quot;</span><span style="color: #66cc66;">%&gt;</span>
<span style="color: #66cc66;">&lt;%</span>@ page language<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;java&quot;</span> <span style="color: #000000; font-weight: bold;">extends</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;org.jboss.portal.core.servlet.jsp.PortalJsp&quot;</span><span style="color: #66cc66;">%&gt;</span>
<span style="color: #66cc66;">&lt;%</span>@ taglib uri<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://java.sun.com/portlet_2_0&quot;</span> prefix<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;portlet&quot;</span><span style="color: #66cc66;">%&gt;</span>
<span style="color: #66cc66;">&lt;%</span>
  List<span style="color: #66cc66;">&lt;</span>File<span style="color: #66cc66;">&gt;</span> files <span style="color: #66cc66;">=</span> <span style="color: #66cc66;">&#40;</span>List<span style="color: #66cc66;">&lt;</span>File<span style="color: #66cc66;">&gt;</span><span style="color: #66cc66;">&#41;</span> request.<span style="color: #006600;">getAttribute</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;files&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
  <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>files <span style="color: #66cc66;">!=</span> <span style="color: #000000; font-weight: bold;">null</span> <span style="color: #66cc66;">&amp;&amp;</span> files.<span style="color: #663399;">size</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&gt;</span> <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span> <span style="color: #66cc66;">%&gt;</span>
<span style="color: #66cc66;">&lt;</span>h1<span style="color: #66cc66;">&gt;</span>RESULTADOS DE B<span style="color: #66cc66;">&amp;</span>Uacute<span style="color: #66cc66;">;</span>QUEDA<span style="color: #66cc66;">&lt;</span>/h1<span style="color: #66cc66;">&gt;</span>
  <span style="color: #66cc66;">&lt;%</span>
    <span style="color: #b1b100;">for</span> <span style="color: #66cc66;">&#40;</span><span style="color: #993333;">int</span> i <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">;</span> i <span style="color: #66cc66;">&lt;</span> files.<span style="color: #663399;">size</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span> i<span style="color: #66cc66;">++</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
        <span style="color: #aaaadd; font-weight: bold;">File</span> file <span style="color: #66cc66;">=</span> files.<span style="color: #663399;">get</span><span style="color: #66cc66;">&#40;</span>i<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
  <span style="color: #66cc66;">%&gt;</span>
  <span style="color: #66cc66;">&lt;</span>h2<span style="color: #66cc66;">&gt;&lt;%=</span> file.<span style="color: #006600;">getName</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">%&gt;&lt;</span>/h2<span style="color: #66cc66;">&gt;</span>
  <span style="color: #66cc66;">&lt;</span>p<span style="color: #66cc66;">&gt;&lt;%</span> <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>file.<span style="color: #006600;">getDescription</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">!=</span> <span style="color: #000000; font-weight: bold;">null</span> <span style="color: #66cc66;">&amp;&amp;</span> file.<span style="color: #006600;">getDescription</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">length</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&gt;</span> <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span> <span style="color: #66cc66;">%&gt;&lt;%=</span> file.<span style="color: #006600;">getDescription</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">%&gt;&lt;%</span> <span style="color: #66cc66;">&#125;</span> <span style="color: #66cc66;">%&gt;&lt;</span>a href<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;&lt;portlet:actionURL&gt;&lt;portlet:param name=&quot;</span>op<span style="color: #ff0000;">&quot; value=&quot;</span>display<span style="color: #ff0000;">&quot; /&gt;&lt;portlet:param name=&quot;</span>file<span style="color: #ff0000;">&quot; value=&quot;</span><span style="color: #66cc66;">&lt;%=</span> file.<span style="color: #006600;">getBasePath</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">%&gt;</span><span style="color: #ff0000;">&quot; /&gt;&lt;/portlet:actionURL&gt;&quot;</span><span style="color: #66cc66;">&gt;</span>Ver m<span style="color: #66cc66;">&amp;</span>aacute<span style="color: #66cc66;">;</span>s...<span style="color: #66cc66;">&lt;</span>/a<span style="color: #66cc66;">&gt;&lt;</span>/p<span style="color: #66cc66;">&gt;</span>
  <span style="color: #66cc66;">&lt;</span>hr /<span style="color: #66cc66;">&gt;</span>
  <span style="color: #66cc66;">&lt;%</span>
    <span style="color: #66cc66;">&#125;</span>
  <span style="color: #66cc66;">%&gt;</span>
<span style="color: #66cc66;">&lt;%</span> <span style="color: #66cc66;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #66cc66;">&#123;</span> <span style="color: #66cc66;">%&gt;</span>
<span style="color: #66cc66;">&lt;</span>h1<span style="color: #66cc66;">&gt;</span>NO HAY RESULTADOS<span style="color: #66cc66;">&lt;</span>/h1<span style="color: #66cc66;">&gt;</span>
<span style="color: #66cc66;">&lt;%</span> <span style="color: #66cc66;">&#125;</span> <span style="color: #66cc66;">%&gt;</span>
<span style="color: #66cc66;">&lt;</span>p align<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;center&quot;</span><span style="color: #66cc66;">&gt;&lt;</span>a href<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;&lt;portlet:actionURL&gt;&lt;portlet:param name=&quot;</span>op<span style="color: #ff0000;">&quot; value=&quot;</span>ask<span style="color: #ff0000;">&quot; /&gt;&lt;/portlet:actionURL&gt;&quot;</span><span style="color: #66cc66;">&gt;</span>Volver<span style="color: #66cc66;">&lt;</span>/a<span style="color: #66cc66;">&gt;&lt;</span>/p<span style="color: #66cc66;">&gt;</span></pre></td></tr></table></div>

<p>Include the following lines on your <code>jboss-portlet.xml</code> file.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
</pre></td><td class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;service<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;service-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>CMS<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/service-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;service-class<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>org.jboss.portal.cms.CMS<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/service-class<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;service-ref<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>:service=CMS<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/service-ref<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/service<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;service<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;service-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>SearchFederationService<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/service-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;service-class<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>org.jboss.portal.search.federation.SearchFederation<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/service-class<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;service-ref<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>:service=SearchFederationService<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/service-ref<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/service<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<p>And finally add the following lines on your <code>portlet.xml</code> file.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
</pre></td><td class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;portlet<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;description<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>DESC<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/description<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;portlet-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>SearchPortlet<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/portlet-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;display-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>NAME<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/display-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;portlet-class<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>portal.portlets.SearchPortlet<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/portlet-class<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;supports<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mime-type<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>text/html<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/mime-type<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;portlet-mode<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>VIEW<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/portlet-mode<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/supports<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;resource-bundle<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Resource<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/resource-bundle<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;portlet-info<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>SEARCH<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/portlet-info<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;portlet-preferences<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;preference<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>indexpage<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;value<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>/default/index.html<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/value<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/preference<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;preference<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>setBrowserTitle<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;value<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>false<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/value<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/preference<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/portlet-preferences<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/portlet<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;filter<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;filter-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>JBoss Portlet Filter<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/filter-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;filter-class<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>org.jboss.portlet.filter.JBossPortletFilter<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/filter-class<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;lifecycle<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>ACTION_PHASE<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/lifecycle<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;lifecycle<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>RENDER_PHASE<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/lifecycle<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/filter<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;filter-mapping<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;filter-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>JBoss Portlet Filter<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/filter-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;portlet-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>SearchPortlet<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/portlet-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/filter-mapping<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://www.simpleprojectz.com/2009/11/search-portlet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I Ditched Windows&#8230;and, So Can You</title>
		<link>http://www.simpleprojectz.com/2009/08/i-ditched-windows-and-so-can-you/</link>
		<comments>http://www.simpleprojectz.com/2009/08/i-ditched-windows-and-so-can-you/#comments</comments>
		<pubDate>Thu, 13 Aug 2009 01:33:30 +0000</pubDate>
		<dc:creator>Alberto Dominguez, PMP</dc:creator>
				<category><![CDATA[Digital Life]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[linux migration]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[windows 7]]></category>
		<category><![CDATA[windows vista]]></category>

		<guid isPermaLink="false">http://www.simpleprojectz.com/?p=452</guid>
		<description><![CDATA[I bought a new desktop computer like a week ago, a nice desktop PC with a beautiful 22&#8243; screen. The truth is that I was looking for an iMac 24&#8243;, but unfortunately here in Colombia it could be have an overprice of USD$500 ~ USD$1000. So as you can tell it could be a trip [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-458" title="etiqueta_ubuntu4" src="http://www.simpleprojectz.com/wp-content/uploads/2009/08/etiqueta_ubuntu4.png" alt="etiqueta_ubuntu4" width="200" height="300" />I bought a new desktop computer like a week ago, a nice desktop PC with a beautiful 22&#8243; screen. The truth is that I was looking for an iMac 24&#8243;, but unfortunately here in Colombia it could be have an overprice of USD$500 ~ USD$1000. So as you can tell it could be a trip to U.S. with an iMac on your baggage. I talked to some of my friends and coworkers asking for somebody to bring it, but it wasn&#8217;t possible this time -at least shortly.</p>
<p>So I bought a nice computer with <strong>Windows Vista Home Premium</strong> -as usual and some useless stuff like a remote and <strong>MediaCenter</strong>. I tried it few days and Vista did its magic -slowing down the newest computer even faster than I thought- so I moved to <strong>Windows 7</strong> (64 bits version) -Oh Yeah it is like <em>Windows Vista but better</em> (like G.M. TV commercials with their cars).</p>
<p>A week ago, and after doing a realistic evaluation of my computing needs I decided to switch to Ubuntu 9.04 (64 bits version) and mount a VM with <strong>Windows XP Home </strong>to<strong> </strong>keep testing on <strong>Internet Explorer</strong> 6.0. It was a HUGE improvement in performance &#8211; I just remembered D.O.S. days when programs run immediately after being called. Ubuntu offers a lot of advantages in compare to Windows, but obviously we are so attached to Microsoft pseudo-world that just thinking on the switch could be a nightmare. I will not debate on architecture, security or speed. I&#8217;ll say this as clear as possible. If you do not have to use MS products like Exchange, or you do not have to use speciallized software that runs on Windows -like AutoCAD or Adobe CS4- you can just switch without fair, it will be the reinvention of the computer processing performance.</p>
<p>There are a lot of Linux Distributions in the market -like Ubuntu- but I have to say that Ubuntu is for soft-users and not hard-crazy linux fans. Ubuntu is nice, is really REALLY <strong>REALLY</strong> easy to install and if you aren&#8217;t sure about replacing your desktop with it, you can try <strong>Wubi</strong> -it installs Ubuntu as a Windows application -WOW!</p>
<p>Just to clarify, I had been using Ubuntu and other linux distributions for a long time (Fedora is another one) but it is the first time I decided to switch to Linux WITHOUT a Windows partition. My wife -who is a dentist- hates its portable due to its response time, and I did all the normal-not-so-risky tasks to speed up its XPS 1210 (that used to be mine) with <strong>Windows XP Home Edition</strong>, today we had our first class about linux and she is so happy about the speed and performance, and also the virus/crappy-sw situation that isn&#8217;t a critical issue on Ubuntu (Linux) so she is thinking seriously about moving to Ubuntu her portable too.</p>
<blockquote><p><strong>&#8220;So, if you’re using Windows and want to ditch it, <a href="http://www.ubuntu.com/">click here to begin a less stressful life&#8221;</a></strong></p></blockquote>
<p><strong>IMPORTANT NOTE</strong>: I decided to write this post when a friend of mine sent me a link to a post who has the same title of this one. Thanks to <a href="http://www.fastcompany.com/blog/gregory-ferenstein/fastminds/i-ditched-windowshellipand-so-can-you" target="_blank">Gregory Ferenstein</a> for such inspiring post -I did&#8217;t move to Linux because of his post, but I makes me feel like &#8220;<em>I&#8217;m not alone, I&#8217;m not just a crazy guy that hates Microsoft, I&#8217;m not a linux fanboy&#8230; we are just right about Windows: it sucks!</em>&#8220;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.simpleprojectz.com/2009/08/i-ditched-windows-and-so-can-you/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>How to choose the right project management software?</title>
		<link>http://www.simpleprojectz.com/2009/03/choose-right-project-management-software/</link>
		<comments>http://www.simpleprojectz.com/2009/03/choose-right-project-management-software/#comments</comments>
		<pubDate>Fri, 20 Mar 2009 15:32:55 +0000</pubDate>
		<dc:creator>Alberto Dominguez, PMP</dc:creator>
				<category><![CDATA[Framework]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[project management]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[tool]]></category>

		<guid isPermaLink="false">http://www.simpleprojectz.com/?p=379</guid>
		<description><![CDATA[To choose the right software is not a simple process, and to choose the right project management software is then an even more complicated process and decision. Below you will find few tips and proposed procedure to reduce the risk inherit to this decision. Tip #1 To choose and implement a PM software tool is [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/29873327@N04/3332179406/"><img class="alignright size-full wp-image-423" title="Choose Right" src="http://www.simpleprojectz.com/wp-content/uploads/2009/03/choose.jpg" alt="Choose Right" width="160" height="240" /></a>To choose the right software is not a simple process, and to choose the right project management software is then an even more complicated process and decision. Below you will find few tips and proposed procedure to reduce the risk inherit to this decision.</p>
<h4>Tip #1</h4>
<p>To choose and implement a PM software tool is not the same of implementing a PM process. Many organizations try to implement a software tool expecting a nonexistent-unnatural process improvement. If you do not have a formal process, or even if your process is not working you have to stop thinking that automation will fix/improve/solve your problems. Automation should be used to reinforce a process and minimize the weaknesses.</p>
<h4>Tip #2</h4>
<p>Every software implementation process includes at least the following steps -of course every company has its own natural process. Public companies have also additional restriction and evaluation/validation processes that will extend the suggested process:</p>
<ul>
<li><strong>Identify needs</strong></li>
<li><strong>Define selection criteria</strong></li>
<li><strong>Create a list of options</strong></li>
<li><strong>Create the request for information</strong></li>
<li><strong>Evaluate responses</strong></li>
<li><strong>Reduce the list of options</strong></li>
<li><strong>Ask for demonstrations or pilot programs</strong></li>
<li><strong>Choose one</strong></li>
</ul>
<h4>Tip #3</h4>
<p>Try to isolate your needs by using the following dimensions to measure the products you are considering:</p>
<ul>
<li><strong>Scale</strong> &#8211; how big the change will be?
<ul>
<li>Simple: are you going to organize your projects?</li>
<li>Personal: are you going to automate estimation and planning on you projects</li>
<li>Collaborative: are you going to support a team? are you going to share information? do you need to centralize team communications?</li>
<li>Enterprise: are you affecting the whole company? are you going to bill to your clients using your projects&#8217; data? do you have virtual teams all around the globe?</li>
</ul>
</li>
<li><strong>Management Paradigm</strong> &#8211; do you and your team follow a traditional or agile approach to project management?</li>
<li><strong>Process Maturity</strong> &#8211; how formal/strong is your process?
<ul>
<li>Chaotic: No evidence of documented processes or best practices</li>
<li>Active: Documented processes carried out, but not formalized</li>
<li>Efficient: Consistent discipline started</li>
<li>Responsive: Ubiquitous and measured</li>
<li>Business driven: Provides data and information to drive business decisions</li>
</ul>
</li>
<li><strong>Implementation model</strong> &#8211; are you going to buy the product and support it by yourself? are you going to adopt the SaaS model?</li>
<li><strong>Budget -<br />
</strong></li>
</ul>
<h4>Tip #4</h4>
<p>Set your goals &#8211; do not expect to do everything better and to include any improvement during the first phase (or the initial implementation cycle). Prioritize to get faster results. Below you will find a list of possible goals that you could address with a PM software tool</p>
<ul>
<li><strong>Improve project reporting and tracking</strong></li>
<li><strong>Improve estimating and scheduling</strong></li>
<li><strong>Reduce cost or speed process up by automating workflows</strong></li>
<li><strong>Improve resource assignments</strong></li>
<li><strong>Improve project communication</strong></li>
<li><strong>Improve project team collaboration</strong></li>
<li><strong>Improve overall project process</strong></li>
</ul>
<p>Every goal will impact different functional areas within an organization. You should plan your implementation to impact those areas and improve those process that will add the most value.</p>
<h4>References:</h4>
<ul>
<li><a href="http://www.softwareprojects.org/goals-project-management-software.htm" target="_blank">7 Goals of PM Software @ Software Projects.org<br />
</a></li>
<li><a href="http://www.softwareprojects.org/software-selection-intro1.htm" target="_blank">Software Selection @ SoftwareProjects.org</a></li>
<li><a href="http://www.ca.com/files/WhitePapers/evolving_maturity_level_pmo_wp2_0308.pdf" target="_blank">Evolving the Maturity Level of Your Project Management Office @ CA</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.simpleprojectz.com/2009/03/choose-right-project-management-software/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Officially Updated to WordPress 2.7</title>
		<link>http://www.simpleprojectz.com/2008/12/officialy-updated-to-wordpress-27/</link>
		<comments>http://www.simpleprojectz.com/2008/12/officialy-updated-to-wordpress-27/#comments</comments>
		<pubDate>Thu, 11 Dec 2008 14:44:53 +0000</pubDate>
		<dc:creator>Alberto Dominguez, PMP</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[user experience]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.simpleprojectz.com/2008/12/officialy-updated-to-wordpress-27/</guid>
		<description><![CDATA[Amazing transformation for WordPress. Huge UX improvement. Congratulations to the WP Team, you did an amazing job!]]></description>
			<content:encoded><![CDATA[<p>Amazing transformation for WordPress. Huge UX improvement. Congratulations to the WP Team, you did an amazing job!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.simpleprojectz.com/2008/12/officialy-updated-to-wordpress-27/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Facebook &amp; CodeIgniter &#8211; Definitive Guide</title>
		<link>http://www.simpleprojectz.com/2008/10/facebook-codeigniter/</link>
		<comments>http://www.simpleprojectz.com/2008/10/facebook-codeigniter/#comments</comments>
		<pubDate>Wed, 22 Oct 2008 03:29:29 +0000</pubDate>
		<dc:creator>Alberto Dominguez, PMP</dc:creator>
				<category><![CDATA[SW Development]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[codeigniter]]></category>
		<category><![CDATA[facebook]]></category>

		<guid isPermaLink="false">http://www.simpleprojectz.com/?p=185</guid>
		<description><![CDATA[I spent more hours than the expected starting a simple development for a new Facebook application that runs on top of CodeIgniter. First I read A LOT, then I checked for solutions and, of course, I read a little bit more. After several hours reading and coding I knew it wasn&#8217;t good at all so [...]]]></description>
			<content:encoded><![CDATA[<p>I spent more hours than the expected starting a simple development for a new Facebook application that runs on top of CodeIgniter. First I read A LOT, then I checked for solutions and, of course, I read a little bit more. After several hours reading and coding I knew it wasn&#8217;t good at all so I decided to start a new integration method from the scratch using only the code I found as guide. Here&#8217;s the result:</p>
<p><strong>0. Environment</strong></p>
<p>Before you get excited just review a few things before spent time reading another useless post <img src='http://www.simpleprojectz.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<ul>
<li>PHP Version 5.2.6</li>
<li>MySQL 5 (It doesn&#8217;t affect Facebook integration at all but it is good to know)</li>
<li>HostMonster is my hosting provider (it is not a marketing initiative, just they have a nice environment set up for PHP)</li>
<li>Facebook platform 5 &#8211; I upload a copy of it to ensure you get the same copy I used.</li>
<li>CodeIgniter 1.6.3 &#8211; latest version available at the time of this post.</li>
</ul>
<p><strong>1. Do not hack CodeIgniter</strong></p>
<p>I found a lot of solutions about hacking CodeIgniter by overriding functions or classes. NO, YOU DO NOT HAVE TO DO IT.</p>
<p><strong>2. Install facebook library as plugin</strong></p>
<ul>
<li>Download the facebook platform ZIP</li>
<li>Unzip the files wherever you want -outside your Code Igniter application</li>
<li>Copy the WHOLE content under <em>/php</em> folder (under means files inside the folder and not with the container folder) to yout <em>./system/plugins</em> folder inside Code Igniter application -<strong>Note:</strong> Yes, you have to include the <em>jsonwrapper</em> folder.</li>
<li>Rename the <em>facebook.php</em> file to <em>facebook_pi.php</em></li>
</ul>
<p>It is done! You already have installed facebook framework as plugin.</p>
<p><strong>3. Autoload facebook plugin </strong>[optional]</p>
<p>To avoid the need of including the &#8220;load plugin&#8221; sentence inside every controller/class you can modify the <em>./system/config/autoload.php</em> to include facebook plugin as required. It is almost a requirement for Facebook applications. Add to your <em>$autoload['plugin']</em> array the facebook plugin. It could look like this:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$autoload</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'plugin'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'facebook'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p><strong>Note: </strong>If you skip this step you will have to include the following line every time you need facebook functionality available.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>load<span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>plugin<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'facebook'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p><strong>4. Setup your application </strong>[updated]</p>
<p>Update your configuration file and set the .<em>/system/application/config/config.php</em> and change it as follows:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$config</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'uri_protocol'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;PATH_INFO&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$config</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'base_url'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;APPLICATION_URL&quot;</span><span style="color: #339933;">;</span></pre></div></div>

<p><strong>Note:</strong> If you want to test your application locally, you can set <em>base_url</em> to <em>http://127.0.0.1/path_to_your_app/</em></p>
<p><strong>5. Extend your Controller class</strong></p>
<p>Because I&#8217;m building a 100% facebook application, all my controllers require facebook API available. So I decided to extend my main Controller class as follows &#8211; BTW: By the date of this post the CodeIgniter documentation <strong>WAS WRONG</strong> about how to extend the core classes (<a href="http://codeigniter.com/user_guide/general/core_classes.html" target="_blank">CodeIgniter User Guide Version 1.6.3 &#8211; Creating Core System Classes</a>). It is not true -i.e. it is false- that you have to extend the <em>CI_ClassName</em>. At least it didn&#8217;t work for me at all. Extend the <em>ClassName</em> directly.</p>
<p>Facebook Controller class should be placed under <em>./system/application/libraries</em> folder.</p>
<p><strong>Filename:</strong> XX_Controller.php (where &#8220;XX_&#8221; is the prefix you set on your<em> ./system/application/config/config.php</em> file &#8211; subclass_prefix parameter)</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">class</span> FB_Controller <span style="color: #000000; font-weight: bold;">extends</span> Controller <span style="color: #009900;">&#123;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// Facebook application key</span>
	<span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$API_KEY</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'YOUR_API_KEY'</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$facebook</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$uid</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">/*
	 * Custom Controller constructor.
	 * Adds Facebook support.
	 *
	 */</span>
	<span style="color: #000000; font-weight: bold;">function</span> FB_Controller<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
		parent<span style="color: #339933;">::</span><span style="color: #004000;">Controller</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// Authentication key</span>
		<span style="color: #000088;">$secret</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'YOUR_SECRET_KEY'</span><span style="color: #339933;">;</span> 
&nbsp;
		<span style="color: #666666; font-style: italic;">// Prevent the 'Undefined index: facebook_config' notice from being thrown.</span>
		<span style="color: #000088;">$GLOBALS</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'facebook_config'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'debug'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">NULL</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// Create a Facebook client API object.</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>facebook <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Facebook<span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>API_KEY<span style="color: #339933;">,</span> <span style="color: #000088;">$secret</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>uid <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>facebook<span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>require_login<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p><strong>Note:</strong> Inside the facebook application I built I always require an authenticated users, so that&#8217;s why I do have the <em>require_login() </em>call. However you can also validate if the user already have the application added. You should do this manually inside controller classes because there are a few exceptions where it is needed that user is authenticated but without adding the application.</p>
<p><strong>6. Create your own controllers</strong></p>
<p>Now you can extend your controllers from your Custom Controller. <strong>Note:</strong> You do not have to add any include or require sentence in your other classes, CodeIgniter will load directly your <em>XX_Controller.php</em> file -if it doesn&#8217;t load please check the <em>config.php</em> file and validate the <em>subclass_prefix</em> parameter.</p>
<p>Below you will find an example of a Controller that will validate if the user has the application added in his/her profile.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">class</span> Welcome <span style="color: #000000; font-weight: bold;">extends</span> XX_Controller <span style="color: #009900;">&#123;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">function</span> Welcome<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
		parent<span style="color: #339933;">::</span><span style="color: #004000;">XX_Controller</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// Check if the application has been added by the user</span>
		try <span style="color: #009900;">&#123;</span>
			<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>facebook<span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>api_client<span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>users_isAppAdded<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>facebook<span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>redirect<span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>facebook<span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>get_add_url<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #b1b100;">return</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
		catch <span style="color: #009900;">&#40;</span>Exception <span style="color: #000088;">$x</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #666666; font-style: italic;">// Clear cookies for your application and redirect them to a login prompt</span>
			<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>facebook<span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>expire_session<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$facebook</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>redirect<span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>facebook<span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>get_login_url<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// You should place your Controller's methods below.</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></div></div>

<p><strong>7. Get out and celebrate</strong></p>
<p>CodeIgniter is running as cleaner as you expected and Facebook API was included nicely!</p>
<p>I hope you find this post useful as I said at the beginning.</p>
Note: There is a file embedded within this post, please visit this post to download the file.
]]></content:encoded>
			<wfw:commentRss>http://www.simpleprojectz.com/2008/10/facebook-codeigniter/feed/</wfw:commentRss>
		<slash:comments>49</slash:comments>
		</item>
		<item>
		<title>Web based project management tool</title>
		<link>http://www.simpleprojectz.com/2008/04/web-based-project-management-tool/</link>
		<comments>http://www.simpleprojectz.com/2008/04/web-based-project-management-tool/#comments</comments>
		<pubDate>Tue, 15 Apr 2008 22:10:48 +0000</pubDate>
		<dc:creator>Alberto Dominguez, PMP</dc:creator>
				<category><![CDATA[Framework]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[pm software tool]]></category>
		<category><![CDATA[project management]]></category>
		<category><![CDATA[software tool]]></category>

		<guid isPermaLink="false">http://www.simpleprojectz.com/?p=25</guid>
		<description><![CDATA[More than ten years I was forced to wait to see a real web based project management tool -by real I mean a decent software product that seems to address the PM needs and it is not a poor desktop application pushed to the web -like Microsoft Problem Server -oops I mean Project Server. Browsing [...]]]></description>
			<content:encoded><![CDATA[<p>More than ten years I was forced to wait to see a real web based project management tool -by real I mean a decent software product that seems to address the PM needs and it is not a poor desktop application pushed to the web -like Microsoft Problem Server -oops I mean Project Server. Browsing the web I found the <a href="http://www.gantthead.com/sharedComponents/offsite.cfm?link=http%3A%2F%2Fevents1%2Eunisfair%2Ecom%2Findex%2Ejsp%3Feid%3D223%26seid%3D28" target="_blank">PMXPO 2008</a> and the <a href="http://www.siia.net/codies/2008/" target="_blank">SIIA CODiE Awards 2008</a> pages. Looking at the CODiE Awards 2008 finalists&#8217; list I found <strong><a href="http://www.attask.com" target="_blank">@task</a></strong>, a company dedicated to deliver real software that uses the web.</p>
<p>I will try to get a demo or at least a try to that software product. As developer I know a lot of things about web development but also as PM I feel frustrated about the poor quality of the products delivered -that is one my personal reasons because I decided to start the SpZ Framework project. However, there are hope on new products that are jumping in and doing a great work.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.simpleprojectz.com/2008/04/web-based-project-management-tool/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Open UP project management &#8211; the discipline</title>
		<link>http://www.simpleprojectz.com/2008/04/open-up-project-management-the-discipline/</link>
		<comments>http://www.simpleprojectz.com/2008/04/open-up-project-management-the-discipline/#comments</comments>
		<pubDate>Mon, 14 Apr 2008 22:01:07 +0000</pubDate>
		<dc:creator>Alberto Dominguez, PMP</dc:creator>
				<category><![CDATA[Methods]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[open unified process]]></category>
		<category><![CDATA[openup]]></category>
		<category><![CDATA[project management]]></category>

		<guid isPermaLink="false">http://www.simpleprojectz.com/?p=24</guid>
		<description><![CDATA[According to the official OpenUP website the PM for a software development project that follow the OpenUP methodology is supposed to Encourage stakeholder consensus on prioritizing the sequence of work Stimulate team collaboration on creating long term and short term plans for the project Focus the team on continually delivering tested software for stakeholder evaluation [...]]]></description>
			<content:encoded><![CDATA[<p>According to the official <a href="http://epf.eclipse.org/wikis/openup/index.htm" target="_blank">OpenUP website</a> the PM for a software development project that follow the OpenUP methodology is  supposed to</p>
<ol>
<li>Encourage stakeholder consensus on prioritizing the sequence of work</li>
<li>Stimulate team collaboration on creating long term and short term plans for the project</li>
<li>Focus the team on continually delivering tested software for stakeholder evaluation</li>
<li>Help create an effective working environment to maximize team productivity</li>
<li>Keep stakeholders and the team informed on project progress</li>
<li>Provide a framework to manage project risk and continually adapt to change</li>
</ol>
<p>Points 1, 2, 5 are common to all PM in the universe, stakeholder management, expectation management and motivation management are part of the communication ability required as part of the role.  However there are some other points that make me feel not so good:</p>
<h3>Focus the team on continually delivering tested software for stakeholder evaluation</h3>
<p><em>Stakeholder evaluation</em> expression seems to be wrong. Stakeholder could be anyone with special interest in the project but not necessarily with decision power. Therefore, stakeholder is not the target of the deliverables for testing. More than one time you will be asked for &#8220;<em>What if&#8230;</em>&#8221; items, &#8220;<em>Now that we already do this why&#8230;</em>&#8221; items that everybody hate. Deliver &amp; Deploy should be done only to the focus group -the right persons that will manage the results in an effective manner and following the software specs, probably an offshore QA team, a client QA or internal QA.</p>
<h3>Help create an effective working environment to maximize team productivity</h3>
<p>The <em>working environment</em> could be a lot of things, but probably means all external factors related for example to company environment, place/location and contractual stuff. However as IT and software developer I recommend to improve also the software environment -i.e. improve the  software tools that the team use to do their work. I will recommend <em>free/open source software</em> <img src='http://www.simpleprojectz.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  but obviously is not necessarily the situation for every project. Something that is common in the companies is to have tools but most of the m out of date, not legally acquired -at least in Colombia is a common practice- not working. As PM you should validate the work effort to build the software but also additional effort imposed by the use of the tools -even the time logger tool that I hope you use. If you will ask the team for additional tasks like time logging, change control documentation and other tasks related to software development and project management, be sure that they can do it fast and easy.</p>
<h3>Provide a framework to manage project risk and continually adapt to change</h3>
<p>A framework is a set of tools, for a person that is handling a project in progress in quite unfair to ask her/him for also the PM framework. In the most of the cases PM should ask the PM Office or the historical records of the company projects to get templates or at least examples. In the case there is no information available you will have to take a look to the templates available in the Internet <img src='http://www.simpleprojectz.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  &#8211; I hope I can finish my templates soon so I can post them.</p>
<p>OpenUP site provides a lot of useful information but please validates it before use.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.simpleprojectz.com/2008/04/open-up-project-management-the-discipline/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Integrated open source tools</title>
		<link>http://www.simpleprojectz.com/2008/04/integrated-open-source-tools/</link>
		<comments>http://www.simpleprojectz.com/2008/04/integrated-open-source-tools/#comments</comments>
		<pubDate>Thu, 10 Apr 2008 18:55:04 +0000</pubDate>
		<dc:creator>Alberto Dominguez, PMP</dc:creator>
				<category><![CDATA[Framework]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[bug tracking]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[project control]]></category>
		<category><![CDATA[project management]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[wiki]]></category>

		<guid isPermaLink="false">http://www.simpleprojectz.com/?p=23</guid>
		<description><![CDATA[PM should not have to deal with IT project strategy however almost all the time PM are &#8220;abandoned&#8221; in the middle of nowhere with a simple request: build a software tool that probably the client do not understand at 100% and it for sure is not documented. The first steps are to (re)build the project [...]]]></description>
			<content:encoded><![CDATA[<p>PM should not have to deal with IT project strategy however almost all the time PM are &#8220;abandoned&#8221; in the middle of nowhere with a simple request: build a software tool that probably the client do not understand at 100% and it for sure is not documented.</p>
<p>The first steps are to (re)build the project scope and have a plan, but in the meanwhile your new team will need to have the tools to start their work. As PM you probably will have your own tools and templates  but the team will have an IDE and that&#8217;s it. You should not deal with technical issues, but the reality is that as PM team will depend on you to get the right/optimal resources to simplify the developers work.</p>
<p>If you are those lucky guys that receive a software project since the beginning and not sometime after then you will have a better chance to get the right resources. My recommendation: Keep it simple but useful -even notepad is a useful tool if you use it correctly.</p>
<p>Your team needs:</p>
<ol>
<li> Deal with versions. Even before start your coding phase you MUST have a concurrent version system. In the market you will find a lot, but probably the common ones -and open source are: <a href="http://ximbiot.com/cvs/wiki/" target="_blank">CVS </a>and Subversion (a.k.a. <a href="http://subversion.tigris.org" target="_blank">SVN</a>). Versions will force the team to work closer and with the same structure. If your IT team do it well, you will appreciate it a lot.</li>
<li>Common IDE. Developers have their own affairs with specific IDEs. But you are the PM, ask your IT lead and force them all to use the same. I don&#8217;t like democracy, PM rules! However, as developer, I love <a href="http://www.eclipse.org" target="_blank">Eclipse IDE</a>.</li>
<li>Documentation System. Most of the developers around the world will hate to document their code or applications. At least here in Colombia, when you ask developers to document their code or provide formal documentation they will give you the bad-eye look (in Spanish the <strong>malde&#8217;ojo</strong>) and you will understand that not the greatest documentation will be available at the end of the project. So provide the team with the tools to make this pain softer. I recommend only WYSIWYG tools like a Wiki, <a href="http://docs.google.com">Google Docs</a>, or any other fancy tool.</li>
<li>Track their progress/work. Development tracking tools are suspiciously linked to Bug Tracking but it is not necessarily the truth. I&#8217;ve been using bug tracking tools like <a href="http://www.mantisbt.org" target="_blank">Mantis BT </a>and <a href="http://www.atlassian.com/software/jira/" target="_blank">Jira </a>as Tasks Assignation tools. Keep in mind that a Bug is a request to do (fix) something. So why you cannot split your work packages in work items and assign them to the team -as you do with bugs.</li>
<li>Provide test environments. I have to say this, why non-developer centric companies like Creative Agencies building Web applications do not understand that a Test Environment IS NOT the developer&#8217;s computer. What is this all about? What is the mystery? Test environments are needed, mandatory needed. Release building is a complex task that will have a lot of manually interactions -team pushing changes and enhancements- and it is NEEDED to have a place where to put all together and validate it before release it to a client -even to a client test environment. Please do not cut costs here. I will start a facebook group named &#8220;<strong>Why we do not have a test environment?</strong>&#8221; -BTW I do not like facebook, I do not even use it.</li>
<li><strong>Put it all together and working</strong>. This is the real thing about IT support. Install software is a piece of cake, is not a complex task, put all together and make it work smoothly is the key. So ask you IT team to do it, or do it yourself, like I did for some of my dev projects. There are many ways to integrate everything but I&#8217;m giving you some useful links to found the way to do it:</li>
</ol>
<ul>
<ul>
<li><a href="http://www.mantisbt.org/wiki/doku.php/mantisbt:dokuwiki_integration" target="_blank">SVN,  MediaWiki and BugZilla working together</a></li>
<li><a href="http://www.mantisbt.org/wiki/doku.php/mantisbt:dokuwiki_integration" target="_blank">MantisBT &amp; DokuWiki</a></li>
<li><a href="http://alt-tag.com/blog/archives/2006/11/integrating-mantis-and-subversion/" target="_blank">MantisBT &amp; Subversion</a></li>
</ul>
</ul>
<p>SpZ Team is currently designing an All-in-One integrated solution. For latest updates check the <a href="http://www.simpleprojectz.com/?page_id=22" target="_self">Framework </a>page.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.simpleprojectz.com/2008/04/integrated-open-source-tools/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Open UP project management &#8211; Set your information system</title>
		<link>http://www.simpleprojectz.com/2008/04/open-up-project-management-set-your-information-system/</link>
		<comments>http://www.simpleprojectz.com/2008/04/open-up-project-management-set-your-information-system/#comments</comments>
		<pubDate>Tue, 08 Apr 2008 03:49:50 +0000</pubDate>
		<dc:creator>Alberto Dominguez, PMP</dc:creator>
				<category><![CDATA[Framework]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[open unified process]]></category>
		<category><![CDATA[open up]]></category>
		<category><![CDATA[pm methodology]]></category>
		<category><![CDATA[project management]]></category>
		<category><![CDATA[unified process]]></category>

		<guid isPermaLink="false">http://www.simpleprojectz.com/?p=20</guid>
		<description><![CDATA[Project managers who work in software development projects could be those who know about the software development process, probably because they were developers in the past, or those who do not have or do not want to have any technical knowledge and decide to delegate it to a third person -also know as Technical Director, [...]]]></description>
			<content:encoded><![CDATA[<p>Project managers who work in software development projects could be those who know about the software development process, probably because they were developers in the past, or those who do not have or do not want to have any technical knowledge and decide to delegate it to a third person -also know as Technical Director, Technical Lead, Team Lead, and other nice names for the man who really manage the software development process.</p>
<p>However this is an article for those who put their hands on projects, probably not coding but are PMs really involved in the software development process. I will explain how to set a project information system based on <a href="http://epf.eclipse.org/wikis/openup/index.htm" target="_blank">Open Unified Process </a>and open source software.</p>
<p>The idea is simple, set a information repository accessible by anyone in the project, since the beginning of the development cycle to avoid miscommunication errors. The strategy, use a formal set of templates to document the business needs and the software design and publish them in a project site, but allowing the full access to the development team.</p>
<p>Before begin: <strong>you are the PM</strong>, if you do not want to go into the details ask IT team to handle the process, it is not so complicated but it takes time. It is not that easy</p>
<ul>
<li>Share the information since the beginning</li>
<p>Software projects have this quality, share the information is good, all the information related to the software design and software implementation is good. There is no restriction, developers will understand better their work and BTW you will be reducing drastically the &#8220;developer&#8221; dependency -does this line sounds familiar to you? &#8220;<em>I didn&#8217;t do it, I do not understand the code so it will take a time to do/fix/solve it</em>&#8220;The easiest way to share documents is to have an open system that allows you to publish information in a public site -public means only to those person you want to have access. There are many ways to do -share a folder through the network <img src='http://www.simpleprojectz.com/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' /> , share a folder through versions management system <img src='http://www.simpleprojectz.com/wp-includes/images/smilies/icon_neutral.gif' alt=':-|' class='wp-smiley' /> , or to have groupware like Microsoft SharePoint. My case is to publish them since the beginning by setting a Wiki software that will have an ACL, a version management incorporated and all directly online -my team members do not have to install anything else than any web browser.Do not trust the model? Check the proved model by browsing <a href="http://www.wikipedia.com" target="_blank">Wikipedia</a>. There is no bigger documentation team in the whole world.</p>
<p>I will recommend for this experiment <a href="http://www.splitbrain.org/projects/dokuwiki" target="_blank">DokuWiki</a>. It could be not the best, but is good enough. If you don&#8217;t like it there are hundreds so you can pick one. However I will recommend those with WYSIWYG editors to avoid the need of WikiSyntax.</p>
<li>Define what to share and how to share</li>
<p>At this point you know how to share whatever you will share. But, what is supposed to be shared? Many organizations already have their own set of standard documents, most of them because where certified in something. Like the ISO certifications. So, use them, do not worry, during the project evolution you will see how the documents grow and mature supplying with the appropriated information.Do not have template document? I see, you are on a small company or in a non-small-messy one. Don&#8217;t worry there are tons of templates available for free. <a href="http://readyset.tigris.org/" target="_blank">ReadySET</a> and <a href="http://www.method123.com/free-risk-management.php" target="_blank">Method123</a> will give you a hand but hey, you have to do your homework and build your own ones to fit your process and specific needs.
</ul>
<p>Know you are ready to start sharing your documentation. Give your team the freedom to work with the documents but track their changes, software design is not a democracy -brainstorming is a democracy where votes do not count. Software design is a Dictatorship where those who has the experience and knowledge will prevail.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.simpleprojectz.com/2008/04/open-up-project-management-set-your-information-system/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

