<?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>Function1 &#187; F1 Product</title>
	<atom:link href="http://www.function1.com/category/f1-product/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.function1.com</link>
	<description>Discussing all things portal, WebCenter Interaction, WebCenter Suite, Sharepoint, and related technologies.</description>
	<lastBuildDate>Fri, 25 Jun 2010 15:20:23 +0000</lastBuildDate>
	
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Everything Maven Part 1 &#8211; Is it Worth the Effort?</title>
		<link>http://www.function1.com/2010/02/everything-maven-part-1-is-it-worth-the-effort/</link>
		<comments>http://www.function1.com/2010/02/everything-maven-part-1-is-it-worth-the-effort/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 21:09:06 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Cool Tools]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[F1 Product]]></category>
		<category><![CDATA[Products]]></category>

		<guid isPermaLink="false">http://www.function1.com/?p=673</guid>
		<description><![CDATA[Each time you write a new Java portlet you may have noticed that there is definitely a set of common steps that need to be completed. For example, even though the functionality of portlets may be completely different, you can always be sure that you&#8217;ll have to do things like setting up a classpath, configuring [...]]]></description>
			<content:encoded><![CDATA[<p>Each time you write a new Java portlet you may have noticed that there is definitely a set of common steps that need to be completed. For example, even though the functionality of portlets may be completely different, you can always be sure that you&#8217;ll have to do things like setting up a classpath, configuring an IDE, hunting around for third party dependencies, testing and debugging, deploying your code to a server, etc. As you may know, there are several software development tools available that claim to help reduce the amount of these tedious &#8220;housekeeping&#8221; tasks. These types of tools are generally referred to as &#8220;Build Systems&#8221;. And the number one Google result for &#8220;Build System&#8221; at the time of this writing is a solution called <a href="http://maven.apache.org/what-is-maven.html">&#8220;Maven&#8221;</a>.</p>
<p>If you peruse maven articles out in the blog-o-sphere, this is the message you&#8217;ll hear: </p>
<blockquote><p>Using Maven will make you a better developer. Using Maven will make your organization more productive. Maven will solve your integration issues. Maven encourages unit testing. Maven will enforce <a href="http://en.wikipedia.org/wiki/Don't_repeat_yourself">DRY</a> best practices and <a href="http://en.wikipedia.org/wiki/Convention_over_configuration">Convention over Configuration</a>. Maven will save the rainforest and will give you thick, shiny, lustrous hair. Marcia, Marcia, Marcia! &#8230; Maven, Maven, Maven!</p></blockquote>
<p><span id="more-673"></span></p>
<p>You (or your software dev team) might have already written quite a bit of java web apps and have managed to get by pretty well without Maven. You may have even written some killer java portal apps which your organization can&#8217;t live without.  </p>
<p>If you&#8217;re like me, you&#8217;re also probably a bit tired of learning scripting languages (ant, perl, make, bash, dos, ruby, on and on, and on). You&#8217;re probably hesitant to make the investment in learning another. Well, I hear you. I feel your pain. So, in this article, I&#8217;d like to give you some idea about what types of tedious tasks that Maven can help you eliminate (and by doing so, possibly save significant development cost). I also want to try to convince you that Maven is worth the effort. Stay tuned for later articles where I will dive deeper into the actual implementation details of how to best use Maven to manage your java projects. </p>
<p>So, to prove it to you that Maven is well worth the investment, I&#8217;ll walk you through a recent experience. As a new employee at Function1, I am very excited about the product suite currently in development. In particular, I wanted to help add some functionality to one of our new products named Formbuilder.</p>
<p>Remember Studio Server? You know, the one with the <a href="http://www.function1.com/2007/03/tetris-anyone/">Tetris Easter Egg</a>? Well, Formbuilder is everything Studio Server was, plus an easier to use interface and updated with the latest and greatest technologies. Formbuilder really makes it a no-brainer to create and administer surveys and polls. Formbuilder can be run as a standalone webapp inside any of the standard java web containers. It can also be installed to run as a portlet with tight integration with Web Center Interaction.</p>
<p>Here are the steps it took me (as a brand new F1 employee, totally unfamiliar with Formbuilder source code) to get to the point where I could compile and run Formbuilder in a development environment without Maven. Afterwards, I&#8217;ll compare how each step might have been accomplished using Maven. And you can be the judge ;-)</p>
<p>Formbuilder is a standard java web application. On the back end, it uses servlets to manage requests. The servlets talk to a service layer powered by hibernate that manages persisting and retrieving data to database. On the front end, it uses GWT and Ext-JS to provide the views. Administrators can create surveys (using a very slick and easy-to-use user interface, imo):</p>
<div><a href="http://www.function1.com/wp-content/uploads/2010/02/admin32.jpg"><img class="aligncenter size-full wp-image-683" src="http://www.function1.com/wp-content/uploads/2010/02/admin32.jpg" alt="Formbuilder Admin Page" width="645" height="357" /></a></div>
<p>And, of course, Formbuilder also provides a page where you can complete and submit surveys:</p>
<div><a href="http://www.function1.com/wp-content/uploads/2010/02/formbuilder1.jpg"><img class="aligncenter size-full wp-image-684" src="http://www.function1.com/wp-content/uploads/2010/02/formbuilder1.jpg" alt="Formbuilder Example Survey" width="534" height="459" /></a></div>
<p>When I first got a hold of the source code, I was really impressed how well everything was organized. The folder structure followed the normal java development best practices and coding conventions. There were no surprises from a software development point of view.  Even so, getting to the point where I could actually write code, was pretty slow going. If you&#8217;ve ever inherited a non-trivial java application to maintain, I&#8217;m sure you can relate. And in my experience, this &#8220;ramp up&#8221; time is generally accepted by most development teams as something that you &#8220;just have to roll up your sleeves and get done&#8221;. Here are the steps that were necessary for me to get from having zero knowlege of source code to where I was able to compile and run the Formbuilder application:</p>
<h3>Check Out Source Code</h3>
<p>The first step was to get the source code. A few emails and I had access to subversion and I was able to check out the latest and greatest using the svn command line tool.</p>
<h3>Create Eclipse Project</h3>
<p>Eclipse stores info about what it thinks are java projects under a file called &#8220;.project&#8221; and a folder named &#8220;.settings&#8221;. Since these had been checked into subversion, I was able to import the code directly into eclipse as an eclipse java project. Unfortunately, this only kinda-sorta worked. Since the eclipse project had been build on another machine, the Eclipse files contained hard coded paths. There were red X&#8217;s everywhere and Eclipse was not happy.</p>
<h3>Resolved Dependencies</h3>
<p>One of the biggest hassles working with Java is managing the thirdparty jars that each web app depends on. In this case, it was easy to see that all required jars were inside the war/WEB-INF/lib directory. However, I also noticed that all these jars had been checked into source control. For small to medium sized projects, checking jars into source control works ok. But, in my experience, as the source code grows so does the jar dependencies and pretty soon the number of jars becomes unmanageable. Checkouts from svn can quickly become excruciatingly slow. In this case, it wasn&#8217;t a big problem (but something to keep in mind for future maven articles :). I manually added each jar to the eclipse project&#8217;s build path and that made Eclipse a little happier, making a lot of the existing red X&#8217;s go away.</p>
<h3>Compiling the UI Code</h3>
<p>Google Web Toolkit (GWT) is a technology that allows you to write java and have it compiled into javascript. Formbuilder uses GWT to create some really slick web user interfaces. So, the next step was to download and install the Eclipse GWT plugin. This plugin handles all the configuration necessary to be able to &#8220;compile&#8221; gwt java code. After setting up the plugin, eclipse was 100% happy, all the compile errors (Red X&#8217;s) in eclipse were satisfied!</p>
<h3>Build Database</h3>
<p>So now it&#8217;s time to fire this bad boy up and try it out?! Oh right, I probably need to install a database. Some hunting and I found the hibernate.cfg.xml which contained the database credentials. I noticed there were 3 database flavor&#8217;s configured inside of the xml file. Two of the configurations were commented out. I learned that Formbuilder is compatible with serveral database vendors including MySql, Oracle, and Microsoft SQL Server. I chose to use MySql since it lends itself well for development. A few google searches later and I was able to use the mysql command line tool to create a new mysql database (and new mysql user) to match the credentials found in the hibernate config file. I then used the hibernate hbm2ddl tool to automatically generate the datbase schema based on annotations inside the source code. Very cool. Life was good.</p>
<h3>Package</h3>
<p>Okie-Dokie. Things are compiling. The database is created and is online. The next step is to build a war and then test. I found a helpful shell script (named deploy.sh) that bundled up all the compiled class files created by eclipse along with the WEB-INF directory (including all the jars) into a war file. I copied the war file into tomcat/webapps and pointed my browser to browse to http://localhost:8080/formbuilder and voila? Oh, Dag nabbit!</p>
<h3>Runtime Error #1</h3>
<p>From the stack trace, it looked like the servlet was not able to connect to the database. After some more hunting I found that there were several application properties files. One property file was used to build a war to run on a local development environment. Another properties file was used to build a war to run on a production server. The production properties file was &#8220;active&#8221; so I switched back to the local properties file. Ok, run deploy.sh again. Then copy the war over to tomcat/webapps again. Browse to the formbuilder page, and &#8230;. DOH!</p>
<h3>Runtime Error #2</h3>
<p>I was seeing the same database connection error. After some troubleshooting, this time it turned out to be that some of the values inside the properties files were overwriting some of the<br />
values inside hibernate.cfg.xml. I could see that this was intentional. This way, the deploy.sh script could easily switch back and forth between building war for development vs a war for production. Run deploy.sh again, then copy the war over (&#8230;<em>again</em>!).</p>
<h3>Runtime Errors #3-15</h3>
<p>I was now able to connect to the database. But the next errors were several runtime ClassNotFound errors. Even though I had copied all jars over from WEB-INF/libs, it turned out that I needed to find and download a few extra from various web sites. It turned out that I was using a different version of Tomcat than other developers. So I ran the bash script to create the war (&#8230;<em>again</em>!). Then, I manually copied and pasted the war into tomcat/webapps (&#8230;<em>again</em>!).</p>
<h3>Run!</h3>
<p>Finally! Formbuilder was running inside tomcat. I was able to create and save a new survey successfully. All in all, it took probably close to 20 hrs to get to the point where I could start being productive and writing code. </p>
<h3>Maven</h3>
<p>Now, I&#8217;d like to describe the steps it took me to get up and running after I &#8220;mavenized&#8221; the formbuilder project. You ready for this?</p>
<p><strong>c:\&gt; mvn install</strong></p>
<p>That&#8217;s it! No lie. That single command (1) resolves and downloads required thirdparty jars (2) compiles java to class files (3) compiles gwt java to javascript (4) generates the database schema (5) runs junit tests (6) creates a war (7) and actually starts an embedded tomcat server which runs the Formbuilder web app.</p>
<h3>I&#8217;m convinced. So What Next?</h3>
<p>None of the steps described above will come to a surprise to anyone who&#8217;s ever written a Java web application. It can be frustrating (and costly) to manually repeat the same housekeeping tasks over and over. Maven solves this problem by forcing you to organize all your Java projects exactly the same. It gives you a common set of commands for building Java applications. Think how great it would be to be able to run &#8220;<strong>mvn install</strong>&#8221; against any piece of source code that can be found in your organization and have it handle all the tediousness for you?! Automation is a beautiful thing. </p>
<p>Stay tuned for Part II where I&#8217;ll cover more on exactly which common development problems that Maven solves and specifics of how to configure Maven to do so. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.function1.com/2010/02/everything-maven-part-1-is-it-worth-the-effort/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Have you seen Watcher?</title>
		<link>http://www.function1.com/2009/06/have-you-seen-watcher/</link>
		<comments>http://www.function1.com/2009/06/have-you-seen-watcher/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 21:30:28 +0000</pubDate>
		<dc:creator>Hani Atalla</dc:creator>
				<category><![CDATA[F1 Product]]></category>

		<guid isPermaLink="false">http://wp.function1.com/index.php/265/uncategorized/have-you-seen-watcher</guid>
		<description><![CDATA[
So you, the Plumtree / AquaLogic / WebCenter admin, get a call from a user indicating that Collab email notifications are not being sent (a plausible symptom that the Collab Notification service is in &#8220;stopped&#8221; status), or that Publisher is not responding (an indication that the Publisher service might also be down), alternatively Portal searches [...]]]></description>
			<content:encoded><![CDATA[<p><font face="Times New Roman" color="#000000" size="3"><font style="FONT-SIZE: 0.64em"><span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Verdana"></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Helvetica">So you, the Plumtree / AquaLogic / WebCenter admin, get a call from a user indicating that Collab email notifications are not being sent (a plausible symptom that the Collab Notification service is in &#8220;stopped&#8221; status), or that Publisher is not responding (an indication that the Publisher service might also be down), alternatively Portal searches yielding no results (a sign that the search server is down) &#8230; the issues that a Portal admin can encounter are just myriad.</span><span style="FONT-SIZE: 10pt; COLOR: #333333; FONT-FAMILY: Helvetica"><o:p></o:p></span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><o:p><span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Helvetica">&nbsp;</span></o:p><span style="FONT-SIZE: 10pt; COLOR: #333333; FONT-FAMILY: Helvetica"><o:p></o:p></span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Helvetica">Ideally, we shouldn&#8217;t be notified from our users that an issue has occurred.<span style="mso-spacerun: yes">&nbsp; </span>Granted there are a number of monitoring software in the market; e.g. Microsoft Operations Manager that&nbsp;monitors disk space, memory and CPU utilization, among other tasks, presenting the results in console like dashboards, yet we haven&#8217;t seen a monitoring software dedicated to guarding a Portal deployment alerting its admin staff of potential issues.<span style="mso-spacerun: yes">&nbsp; </span>Hence, the impetus for </span><span style="FONT-SIZE: 10pt; COLOR: #333333; FONT-FAMILY: Helvetica"><a href="http://www.function1.com/site/products/watcher.html"><span style="COLOR: purple">Watcher</span></a></span><span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Helvetica">, a software monitoring tool dedicated to watch a Portal installation.</span><span style="FONT-SIZE: 10pt; COLOR: #333333; FONT-FAMILY: Helvetica"><o:p></o:p></span></p>
<p><span id="more-265"></span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><o:p><span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Helvetica">&nbsp;</span></o:p><span style="FONT-SIZE: 10pt; COLOR: #333333; FONT-FAMILY: Helvetica"><o:p></o:p></span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Helvetica">Watcher is created to run different types of monitors (currently 10 different rules) for a typical Portal install; these include:</span><span style="FONT-SIZE: 10pt; COLOR: #333333; FONT-FAMILY: Helvetica"><o:p></o:p></span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><o:p><span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Helvetica">&nbsp;</span></o:p><span style="FONT-SIZE: 10pt; COLOR: #333333; FONT-FAMILY: Helvetica"><o:p></o:p></span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.25in; TEXT-INDENT: -0.25in; tab-stops: list .25in"><span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Helvetica">1.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8220;<b style="mso-bidi-font-weight: normal">Service</b>&#8221; monitor to check if a particular daemon service has stopped and it attempts to restart it.</span><span style="FONT-SIZE: 10pt; COLOR: #333333; FONT-FAMILY: Helvetica"><o:p></o:p></span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.25in; TEXT-INDENT: -0.25in; tab-stops: list .25in"><span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Helvetica">2.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8220;<b style="mso-bidi-font-weight: normal">File Size</b>&#8221; monitor to check if log files have reached a particular threshold size and ensure that the Portal admin is alerted if the size is within a predefined threshold.</span><span style="FONT-SIZE: 10pt; COLOR: #333333; FONT-FAMILY: Helvetica"><o:p></o:p></span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.25in; TEXT-INDENT: -0.25in; tab-stops: list .25in"><span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Helvetica">3.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8220;<b style="mso-bidi-font-weight: normal">Disk Size</b>&#8221; monitor to check if a hard drive has reached a certain threshold size.</span><span style="FONT-SIZE: 10pt; COLOR: #333333; FONT-FAMILY: Helvetica"><o:p></o:p></span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.25in; TEXT-INDENT: -0.25in; tab-stops: list .25in"><span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Helvetica">4.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8220;<b style="mso-bidi-font-weight: normal">Directory Size</b>&#8221; monitor to check the size of a folder.</span><span style="FONT-SIZE: 10pt; COLOR: #333333; FONT-FAMILY: Helvetica"><o:p></o:p></span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.25in; TEXT-INDENT: -0.25in; tab-stops: list .25in"><span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Helvetica">5.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8220;<b style="mso-bidi-font-weight: normal">File Text</b>&#8221; monitor to check if a specific text string has occurred within a log file.<span style="mso-spacerun: yes">&nbsp; </span>That can be useful to skim through a log file and search for a particular error string.</span><span style="FONT-SIZE: 10pt; COLOR: #333333; FONT-FAMILY: Helvetica"><o:p></o:p></span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.25in; TEXT-INDENT: -0.25in; tab-stops: list .25in"><span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Helvetica">6.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8220;<b style="mso-bidi-font-weight: normal">HTTP</b>&#8221; monitor to check that the Portal URL is responsive and is returning a response within a given time threshold and that the HTTP request status code is 200 (OK).</span><span style="FONT-SIZE: 10pt; COLOR: #333333; FONT-FAMILY: Helvetica"><o:p></o:p></span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.25in; TEXT-INDENT: -0.25in; tab-stops: list .25in"><span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Helvetica">7.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8220;</span><st1:place><b style="mso-bidi-font-weight: normal"><span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Helvetica"><st1:place>Ping</span></b></st1:place><span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Helvetica"></st1:place>&#8221; monitor to ping a given host and ensure that the host is reachable within a given time threshold.</span><span style="FONT-SIZE: 10pt; COLOR: #333333; FONT-FAMILY: Helvetica"><o:p></o:p></span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.25in; TEXT-INDENT: -0.25in; tab-stops: list .25in"><span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Helvetica">8.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8220;<b style="mso-bidi-font-weight: normal">TCP</b>&#8221; monitor to telnet a given host and send a command and parse the response.</span><span style="FONT-SIZE: 10pt; COLOR: #333333; FONT-FAMILY: Helvetica"><o:p></o:p></span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.25in; TEXT-INDENT: -0.25in; tab-stops: list .25in"><span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Helvetica">9.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8220;<b style="mso-bidi-font-weight: normal">Database</b>&#8221; monitor to send different SQL statements and validate the result again specific thresholds; e.g. number of records in the ptUsers table should not be less than an &#8220;x&#8221; number thus indicating that the Active Directory Web Service has successfully executed.</span><span style="FONT-SIZE: 10pt; COLOR: #333333; FONT-FAMILY: Helvetica"><o:p></o:p></span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.25in; TEXT-INDENT: -0.25in; tab-stops: list .25in"><span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Helvetica">10.&nbsp; &#8220;<b style="mso-bidi-font-weight: normal">Search Server</b>&#8221; ensuring that all search nodes are in &#8220;Run&#8221; state.</span><span style="FONT-SIZE: 10pt; COLOR: #333333; FONT-FAMILY: Helvetica"><o:p></o:p></span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><o:p><span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Helvetica">&nbsp;</span></o:p><span style="FONT-SIZE: 10pt; COLOR: #333333; FONT-FAMILY: Helvetica"><o:p></o:p></span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Helvetica">The Watcher architecture is comprised of three components: </span><span style="FONT-SIZE: 10pt; COLOR: #333333; FONT-FAMILY: Helvetica"><o:p></o:p></span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><o:p><span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Helvetica">&nbsp;</span></o:p><span style="FONT-SIZE: 10pt; COLOR: #333333; FONT-FAMILY: Helvetica"><o:p></o:p></span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.75in; TEXT-INDENT: -0.25in; tab-stops: list .75in"><span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Helvetica">1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A lightweight agent deployed as a service with a low footprint in terms of CPU and memory utilization running different monitors that can are configured as needed; i.e. different types of rules.</span><span style="FONT-SIZE: 10pt; COLOR: #333333; FONT-FAMILY: Helvetica"><o:p></o:p></span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.75in; TEXT-INDENT: -0.25in; tab-stops: list .75in"><span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Helvetica">2)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A server console that receives the monitoring results from the different agents via HTTP requests.</span><span style="FONT-SIZE: 10pt; COLOR: #333333; FONT-FAMILY: Helvetica"><o:p></o:p></span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.75in; TEXT-INDENT: -0.25in; tab-stops: list .75in"><span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Helvetica">3)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A notification service that alerts the admin of issues if a particular issue or threshold is encountered.</span><span style="FONT-SIZE: 10pt; COLOR: #333333; FONT-FAMILY: Helvetica"><o:p></o:p></span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.5in"><o:p><span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Helvetica">&nbsp;</span></o:p><span style="FONT-SIZE: 10pt; COLOR: #333333; FONT-FAMILY: Helvetica"><o:p></o:p></span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Helvetica">Watcher is shipped with preconfigured rules that can be further tailored as needed.<span style="mso-spacerun: yes">&nbsp; </span>It can also be configured to monitor non Portal related services, database instances, hosts, URLs, etc.</span><span style="FONT-SIZE: 10pt; COLOR: #333333; FONT-FAMILY: Helvetica"><o:p></o:p></span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><o:p><span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Helvetica">&nbsp;</span></o:p><span style="FONT-SIZE: 10pt; COLOR: #333333; FONT-FAMILY: Helvetica"><o:p></o:p></span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Helvetica">To receive further information or schedule a demo, please contact us at </span><span style="FONT-SIZE: 10pt; COLOR: #333333; FONT-FAMILY: Helvetica"><a href="mailto:info@function1.com">info@function1.com</a><o:p></o:p></span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><o:p><span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Helvetica">&nbsp;</span></o:p><span style="FONT-SIZE: 10pt; COLOR: #333333; FONT-FAMILY: Helvetica"><o:p></o:p></span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><o:p><span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Helvetica">&nbsp;</span></o:p><span style="FONT-SIZE: 10pt; COLOR: #333333; FONT-FAMILY: Helvetica"><o:p></o:p></span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Helvetica">Thanks.</span><span style="FONT-SIZE: 10pt; COLOR: #333333; FONT-FAMILY: Helvetica"><o:p></o:p></span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><o:p><span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Helvetica">&nbsp;</span></o:p><span style="FONT-SIZE: 10pt; COLOR: #333333; FONT-FAMILY: Helvetica"><o:p></o:p></span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Helvetica">Hani</span><span style="FONT-SIZE: 10pt; COLOR: #333333; FONT-FAMILY: Helvetica"><o:p></o:p></span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Helvetica"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"></span></font></font></p>
]]></content:encoded>
			<wfw:commentRss>http://www.function1.com/2009/06/have-you-seen-watcher/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Product Showcase: Reader</title>
		<link>http://www.function1.com/2008/06/product-showcase-reader/</link>
		<comments>http://www.function1.com/2008/06/product-showcase-reader/#comments</comments>
		<pubDate>Thu, 26 Jun 2008 03:47:04 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[F1 Product]]></category>

		<guid isPermaLink="false">http://wp.function1.com/index.php/224/uncategorized/product-showcase-reader</guid>
		<description><![CDATA[In case you haven&#8217;t heard, we&#8217;ve got a developing product line at Function1.
Next in our showcase is Reader, our RSS reader portlet.&#160; Unlike the out of the box RSS functionality in the Oracle/ALI/ALUI/Plumtree portal, which restricts the number of feeds available, has a very &#8220;Web 1.0 feel&#8221;, and doesn&#8217;t flag articles as read for individuals, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.function1.com/site/2008/06/f1-product-part-i-ali-lockdown.html">In case you haven&#8217;t heard,</a> we&#8217;ve got a developing product line at Function1.</p>
<p>Next in our showcase is <a href="http://www.function1.com/site/products/reader.html">Reader</a>, our RSS reader portlet.&nbsp; Unlike the out of the box RSS functionality in the Oracle/ALI/ALUI/Plumtree portal, which restricts the number of feeds available, has a very &#8220;Web 1.0 feel&#8221;, and doesn&#8217;t flag articles as read for individuals, Function1&#8217;s RSS Reader provides rich functionality to Community Managers and End Users alike, in a rich, adaptive layout that users will find intuitive and easy to use.</p>
<p>Articles are captured on a regular basis, so your end users don&#8217;t just see the articles that are currently available on the feed (which can be problematic for not-so-frequent users), and feeds are shared portal-wide to reduce bandwidth consumption.</p>
<p>Check out the <a href="http://www.function1.com/site/products/reader.html">product page</a> for more information, and contact <a href="mailto:sales@function1.com">sales@function1.com</a> for a demo!</p>
<p><span id="more-224"></span></p>
<p>
<span class="mt-enclosure mt-enclosure-image" style="DISPLAY: inline"><img class="mt-image-none" height="419" alt="reader1.jpg" src="http://www.function1.com/site/2008/06/25/reader1.jpg" width="1003" /></span></p>
<p>&nbsp;</p>
<p>
<span class="mt-enclosure mt-enclosure-image" style="DISPLAY: inline"><img class="mt-image-none" height="420" alt="reader2.jpg" src="http://www.function1.com/site/2008/06/25/reader2.jpg" width="1006" /></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.function1.com/2008/06/product-showcase-reader/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Product Showcase: ALI LockDown</title>
		<link>http://www.function1.com/2008/06/product-showcase-ali-lockdown/</link>
		<comments>http://www.function1.com/2008/06/product-showcase-ali-lockdown/#comments</comments>
		<pubDate>Wed, 11 Jun 2008 16:28:00 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[F1 Product]]></category>

		<guid isPermaLink="false">http://wp.function1.com/index.php/219/uncategorized/product-showcase-ali-lockdown</guid>
		<description><![CDATA[We&#8217;ve got a handful of recurring themes on this blog, but here&#8217;s another one for you:&#160; a showcase of our product line.
As you may know, Function1 offers consulting services to ALI, ALBPM, and Enterprise Social Networking services.&#160; But we also write best-in-class products:&#160; tools you may have desperately needed, maybe without even knowing it&#160;(trust me, [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve got a handful of recurring themes on this blog, but here&#8217;s another one for you:&nbsp; a showcase of our product line.</p>
<p>As you may know, Function1 offers consulting services to ALI, ALBPM, and Enterprise Social Networking services.&nbsp; But we also write best-in-class products:&nbsp; tools you may have desperately needed, maybe without even knowing it&nbsp;(trust me, we&#8217;ve been in this market segment long enough to understand the product and business challenges you face today and tomorrow!).</p>
<p>Our feature today is &#8220;<a href="http://www.function1.com/site/products/lockdown.html">LockDown</a>&#8220;, an ALUI Security Management product.&nbsp; In a nutshell, this product makes portal security management and administration MUCH easier, providing you more control over your administrative and KD taxonomies than the portal itself offers.&nbsp; </p>
<p>For example, I was at a site a couple months back where the customer had hundreds of communities with individual ACEs (Access Control Entries) created over many years in an administrative folder.&nbsp; At the parent folder, there was a user who had ADMIN access to everything, and she wanted to remove that particular user, who had moved on to other things.&nbsp; Deleting the ACE, she was prompted with the question &#8220;You have changed the security of this folder. Would you like to apply the new security settings to all child objects and subfolders?&#8221;, and clicked &#8220;Yes&#8221;.&nbsp; BOOM!&nbsp; Years of work setting ACLs (Access Control Lists) gone, because the portal COPIES those security settings to all child objects, rather than just CHANGES to them. See <a href="http://www.function1.com/site/2007/10/the-joys-of-security-propagati.html">this article</a> for another description of the problem.</p>
<p><span id="more-219"></span></p>
<p>Enter &#8220;Lockdown&#8221;:&nbsp; Giving you a better way to view your security and administrative taxonomy, it also provides a much richer set of options to propagate your security settings down the administrative taxonomy:</p>
</p>
<p><span class="mt-enclosure mt-enclosure-image" style="DISPLAY: inline"><img class="mt-image-none" height="389" alt="add_acl.jpg" src="http://www.function1.com/site/2008/06/02/add_acl.jpg" width="637" /></span></p>
<p>&nbsp;</p>
<p>Check out our <a href="http://www.function1.com/site/products/">Products Page </a>for other products (that we&#8217;ll feature in upcoming posts), and the <a href="http://www.function1.com/site/products/lockdown.html">LockDown page </a>for more details on this ALI Security Management game-changer.</p>
<p>Interested in a demo?&nbsp; Contact us at <a href="mailto:sales@function1.com">info@function1.com</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.function1.com/2008/06/product-showcase-ali-lockdown/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
