<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>teamwork's blog &#187; technical</title>
	<atom:link href="http://blog.twproject.com/category/technical/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.twproject.com</link>
	<description>work management software</description>
	<lastBuildDate>Mon, 02 Jan 2012 14:11:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='blog.twproject.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://1.gravatar.com/blavatar/d824b2d313d7e5077f7b0ce1bc4fbc29?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>teamwork's blog &#187; technical</title>
		<link>http://blog.twproject.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://blog.twproject.com/osd.xml" title="teamwork&#039;s blog" />
	<atom:link rel='hub' href='http://blog.twproject.com/?pushpress=hub'/>
		<item>
		<title>Get Teamwork on the cloud</title>
		<link>http://blog.twproject.com/2011/11/07/get-teamwork-on-the-cloud/</link>
		<comments>http://blog.twproject.com/2011/11/07/get-teamwork-on-the-cloud/#comments</comments>
		<pubDate>Mon, 07 Nov 2011 15:21:33 +0000</pubDate>
		<dc:creator>Pietro Polsinelli</dc:creator>
				<category><![CDATA[news]]></category>
		<category><![CDATA[technical]]></category>
		<category><![CDATA[teamwork]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[amazon]]></category>
		<category><![CDATA[ec2]]></category>
		<category><![CDATA[hosting]]></category>

		<guid isPermaLink="false">https://twproject.wordpress.com/2011/11/07/get-teamwork-on-the-cloud/</guid>
		<description><![CDATA[You can now get your own Teamwork server hosted on Amazon cloud: this will be a dedicated server, so you will have all the advantages of having an internal server without having to do any maintenance. E.g. in case of upgrades these will be performed by Teamwork’s staff. For groups of up to 15 users, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.twproject.com&amp;blog=6113901&amp;post=1355&amp;subd=twproject&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://twproject.files.wordpress.com/2011/11/image2.png"><img style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:inline;border-top:0;border-right:0;padding-top:0;margin:0 5px;" title="image" border="0" alt="image" src="http://twproject.files.wordpress.com/2011/11/image_thumb2.png?w=600&#038;h=41" width="600" height="41" /></a></p>
<p>You can now <a title="Teamwork hosted service" href="http://www.twproject.com/onlineservice.page" target="_blank">get your own Teamwork</a> server hosted on Amazon cloud: this will be a dedicated server, so you will have all the advantages of having an internal server without having to do any maintenance. E.g. in case of upgrades these will be performed by Teamwork’s staff.</p>
<p><a href="http://twproject.files.wordpress.com/2011/11/image3.png"><img style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:inline;float:left;border-top:0;border-right:0;padding-top:0;margin:0 5px;" title="image" border="0" alt="image" align="left" src="http://twproject.files.wordpress.com/2011/11/image_thumb3.png?w=183&#038;h=439" width="183" height="439" /></a>For groups of up to 15 users, you will pay only 83 Euro /month if you buy a year hosting, getting a server<strong> completely dedicated</strong> to your group.</p>
<h2>A dedicated server</h2>
<p>Having a dedicated server means for example choosing the DNS name to attribute your server; means having your own time/zone settings and agenda synching options.</p>
<p>On request we can give independent access to the server and to all database backups. You can anytime upgrade your server to more powerful instances, actually the full scalability of <a title="Amazon Elastic Compute Cloud" href="http://aws.amazon.com/ec2/" target="_blank">Amazon Elastic Compute Cloud</a> is available. So you can start small and upgrade when needed.</p>
<p>So… get your Teamwork online:&#160; <a title="Teamwork hosting" href="http://www.twproject.com/onlineservice.page" target="_blank">here</a> are all the details.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/twproject.wordpress.com/1355/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/twproject.wordpress.com/1355/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/twproject.wordpress.com/1355/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/twproject.wordpress.com/1355/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/twproject.wordpress.com/1355/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/twproject.wordpress.com/1355/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/twproject.wordpress.com/1355/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/twproject.wordpress.com/1355/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/twproject.wordpress.com/1355/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/twproject.wordpress.com/1355/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/twproject.wordpress.com/1355/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/twproject.wordpress.com/1355/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/twproject.wordpress.com/1355/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/twproject.wordpress.com/1355/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.twproject.com&amp;blog=6113901&amp;post=1355&amp;subd=twproject&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.twproject.com/2011/11/07/get-teamwork-on-the-cloud/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5198744cd329b6dfdb9e39b4f9794cd1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">polsinelli</media:title>
		</media:content>

		<media:content url="http://twproject.files.wordpress.com/2011/11/image_thumb2.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://twproject.files.wordpress.com/2011/11/image_thumb3.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Teamwork relational structure</title>
		<link>http://blog.twproject.com/2010/07/16/teamwork-relational-structure/</link>
		<comments>http://blog.twproject.com/2010/07/16/teamwork-relational-structure/#comments</comments>
		<pubDate>Fri, 16 Jul 2010 08:44:21 +0000</pubDate>
		<dc:creator>Pietro Polsinelli</dc:creator>
				<category><![CDATA[IT integration]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[technical]]></category>
		<category><![CDATA[Teamwork relational structure]]></category>

		<guid isPermaLink="false">https://twproject.wordpress.com/?p=1195</guid>
		<description><![CDATA[Following some user requests, we’ve put together a first documentation of Teamwork’s relational structure, that will be a part of next release of Teamwork user guide. Here is the PDF. Hope it helps! P.S. Published an update expansion on July 19 (2010).<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.twproject.com&amp;blog=6113901&amp;post=1195&amp;subd=twproject&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://twproject.files.wordpress.com/2010/07/image.png"><img style="display:inline;border:0;margin:0 5px 0 0;" title="image" src="http://twproject.files.wordpress.com/2010/07/image_thumb.png?w=454&#038;h=270" border="0" alt="image" width="454" height="270" align="left" /></a> Following some user requests, we’ve put together a first documentation of Teamwork’s relational structure, that will be a part of next release of Teamwork user guide. <a href="http://twproject.files.wordpress.com/2010/07/teamworkrelationalstructure1.pdf">Here</a> is the PDF. Hope it helps!</p>
<p>P.S. Published an update expansion on July 19 (2010).</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/twproject.wordpress.com/1195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/twproject.wordpress.com/1195/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/twproject.wordpress.com/1195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/twproject.wordpress.com/1195/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/twproject.wordpress.com/1195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/twproject.wordpress.com/1195/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/twproject.wordpress.com/1195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/twproject.wordpress.com/1195/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/twproject.wordpress.com/1195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/twproject.wordpress.com/1195/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/twproject.wordpress.com/1195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/twproject.wordpress.com/1195/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/twproject.wordpress.com/1195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/twproject.wordpress.com/1195/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.twproject.com&amp;blog=6113901&amp;post=1195&amp;subd=twproject&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.twproject.com/2010/07/16/teamwork-relational-structure/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5198744cd329b6dfdb9e39b4f9794cd1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">polsinelli</media:title>
		</media:content>

		<media:content url="http://twproject.files.wordpress.com/2010/07/image_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Teamwork 4.5 patch release (4.5.17900)</title>
		<link>http://blog.twproject.com/2010/06/25/teamwork-4-5-patch-release-4-5-17900/</link>
		<comments>http://blog.twproject.com/2010/06/25/teamwork-4-5-patch-release-4-5-17900/#comments</comments>
		<pubDate>Fri, 25 Jun 2010 09:14:09 +0000</pubDate>
		<dc:creator>Pietro Polsinelli</dc:creator>
				<category><![CDATA[news]]></category>
		<category><![CDATA[releases]]></category>
		<category><![CDATA[technical]]></category>

		<guid isPermaLink="false">https://twproject.wordpress.com/?p=1183</guid>
		<description><![CDATA[As always after a major upgrade, thanks to your detailed feedback we can already do a patch release with a few bug fixes. This is a free upgrade for all users of version 4. Get the installer / upgrader here: http://www.twproject.com/download.page Bug fixes: - IMPORTANT BUG FIX FOR ORACLE INSTALLATIONS: Release 4.5.17800 had a schema [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.twproject.com&amp;blog=6113901&amp;post=1183&amp;subd=twproject&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>As always after a major upgrade, thanks to your detailed feedback we can already do a patch release with a few bug fixes. This is a free upgrade for all users of version 4. Get the installer / upgrader here: <a href="http://www.twproject.com/download.page"><span style="color:#0066cc;">http://www.twproject.com/download.page</span></a></p>
<p><strong>Bug fixes:</strong></p>
<p>- IMPORTANT BUG FIX FOR ORACLE INSTALLATIONS: Release 4.5.17800 had a schema name bug which made it impossible to install it on Oracle – a problem in our Oracle test due to an existing table made us fail to detect the problem. This release works fine on Oracle.</p>
<p>- issue editor is now compatible also with lower screen resolutions</p>
<p>- issue statuses can now de deleted</p>
<p>- the “worklog day” portlet now saves also descriptions</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/twproject.wordpress.com/1183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/twproject.wordpress.com/1183/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/twproject.wordpress.com/1183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/twproject.wordpress.com/1183/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/twproject.wordpress.com/1183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/twproject.wordpress.com/1183/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/twproject.wordpress.com/1183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/twproject.wordpress.com/1183/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/twproject.wordpress.com/1183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/twproject.wordpress.com/1183/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/twproject.wordpress.com/1183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/twproject.wordpress.com/1183/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/twproject.wordpress.com/1183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/twproject.wordpress.com/1183/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.twproject.com&amp;blog=6113901&amp;post=1183&amp;subd=twproject&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.twproject.com/2010/06/25/teamwork-4-5-patch-release-4-5-17900/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5198744cd329b6dfdb9e39b4f9794cd1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">polsinelli</media:title>
		</media:content>
	</item>
		<item>
		<title>Teamwork, MySQL and UTF-8</title>
		<link>http://blog.twproject.com/2009/04/29/teamwork-mysql-and-utf-8/</link>
		<comments>http://blog.twproject.com/2009/04/29/teamwork-mysql-and-utf-8/#comments</comments>
		<pubDate>Wed, 29 Apr 2009 10:30:34 +0000</pubDate>
		<dc:creator>Pietro Polsinelli</dc:creator>
				<category><![CDATA[IT integration]]></category>
		<category><![CDATA[technical]]></category>
		<category><![CDATA[mysql utf-8]]></category>

		<guid isPermaLink="false">http://blog.twproject.com/?p=547</guid>
		<description><![CDATA[This is a technical post about Teamwork and its databases. Many Teamwork customers use MySQL as database for their data; Teamwork as web application supports UTF-8, which means that you can insert data in practically any language; but of course to save such data you need support along the &#8220;entire trip&#8221;, so your database must [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.twproject.com&amp;blog=6113901&amp;post=547&amp;subd=twproject&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;"><em></em></p>
<div id="attachment_548" class="wp-caption alignleft" style="width: 170px"><em><em><img class="size-full wp-image-548" title="mySQL partner" src="http://twproject.files.wordpress.com/2009/04/capture_240.gif?w=800" alt="Teamwork is MySQL partner."   /></em></em><p class="wp-caption-text">Teamwork is MySQL partner.</p></div>
<p><em>This is a technical post about Teamwork and its databases.<br />
</em></p>
<p style="text-align:justify;">Many Teamwork customers use MySQL as database for their data; Teamwork as web application supports <a href="http://en.wikipedia.org/wiki/UTF-8" target="_blank">UTF-8</a>, which means that you can insert data in practically any language; but of course to save such data you need support along the &#8220;entire trip&#8221;, so your database must support UTF-8 data too. Now unfortunately MySQL default encoding is <strong>not</strong> UTF-8, but we found a way to work around that, which will be released with version 4.2: the Hibernate schema script generator will create UTF-8 encoding tables, as UTF-8 is supported also at table level (supported by MySQL 5),  so it will work in all cases.</p>
<p style="text-align:justify;">This is done by simply extending the Hibernate MySQL5InnoDBDialect with</p>
<p style="text-align:justify;">@Override<br />
public String getTableTypeString() {<br />
return &#8221; ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_general_ci&#8221;;<br />
}</p>
<p style="text-align:justify;">as suggested <a href="http://fisheye.jboss.com/browse/Seam/branches/community/Seam_2_1/examples/wiki/src/main/org/jboss/seam/wiki/util/WikiMySQL5HibernateDialect.java?r=trunk" target="_blank">here</a>.</p>
<p style="text-align:justify;">Remember to use MySQL 5 with referential integrity on and to end you <a href="http://en.wikipedia.org/wiki/Java_Database_Connectivity" target="_blank">JDBC</a> url with &#8220;?useUnicode=true&amp;characterEncoding=UTF-8&#8243;!</p>
<p style="text-align:justify;">This is particularly important for our future Chinese customers, now that a Chinese translation is forthcoming.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/twproject.wordpress.com/547/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/twproject.wordpress.com/547/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/twproject.wordpress.com/547/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/twproject.wordpress.com/547/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/twproject.wordpress.com/547/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/twproject.wordpress.com/547/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/twproject.wordpress.com/547/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/twproject.wordpress.com/547/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/twproject.wordpress.com/547/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/twproject.wordpress.com/547/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/twproject.wordpress.com/547/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/twproject.wordpress.com/547/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/twproject.wordpress.com/547/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/twproject.wordpress.com/547/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.twproject.com&amp;blog=6113901&amp;post=547&amp;subd=twproject&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.twproject.com/2009/04/29/teamwork-mysql-and-utf-8/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5198744cd329b6dfdb9e39b4f9794cd1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">polsinelli</media:title>
		</media:content>

		<media:content url="http://twproject.files.wordpress.com/2009/04/capture_240.gif" medium="image">
			<media:title type="html">mySQL partner</media:title>
		</media:content>
	</item>
		<item>
		<title>Smarter search and recent object functionality</title>
		<link>http://blog.twproject.com/2009/02/20/smarter-search-and-recent-object-functionality/</link>
		<comments>http://blog.twproject.com/2009/02/20/smarter-search-and-recent-object-functionality/#comments</comments>
		<pubDate>Fri, 20 Feb 2009 11:40:05 +0000</pubDate>
		<dc:creator>Pietro Polsinelli</dc:creator>
				<category><![CDATA[project management]]></category>
		<category><![CDATA[technical]]></category>
		<category><![CDATA[work management]]></category>

		<guid isPermaLink="false">http://blog.twproject.com/?p=58</guid>
		<description><![CDATA[Here we examine a technique to improve usability in complex applications by introducing smarter search and &#8220;recent objects&#8221; functionalities. As usability becomes more and more a crucial feature of applications, helping users with full-text search and recent object lists may still prove insufficient. You may need to go beyond these features, by having a way [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.twproject.com&amp;blog=6113901&amp;post=58&amp;subd=twproject&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;">Here we examine a technique to improve usability in complex applications by introducing smarter search and &#8220;recent objects&#8221; functionalities. As usability becomes more and more a crucial feature of applications, helping users with full-text search and recent object lists may still prove insufficient. You may need to go beyond these features, by having a way to keep track of &#8220;most used&#8221; objects, which will help to:</p>
<p style="text-align:justify;"><em>- guess what you are looking for</em></p>
<p style="text-align:justify;"><em>- find what you are searching for</em></p>
<h2 style="text-align:justify;">The problem</h2>
<p style="text-align:justify;">Lets see an example.</p>
<p style="text-align:justify;padding-left:30px;">In these weeks you are working on items A, B and C of your favorite web application. Friday, you actually briefly worked on X, Y and Z before going home, as you had these for quite a while in the bottom of your to-do list. Now, you get back to work on Monday, and what you have in your &#8220;recent objects&#8221; list? Well, X, Y,Z. Useless. But you have full-text search. You search for the name of A, which actually hundreds of other objects share, and which maybe there are far more occurrences than in A, even if nobody has been using them for quite a while, so they fill results on top of your A. Useless. There is no easy way to get back to A: <em>something here is not working.</em></p>
<p style="text-align:justify;">This is a usability problem; in order to make your application more helpful, you should somehow <em>keep track of what is being used most often by the users</em>. How to do that? A complete answer is not trivial: as often happens in usability problems, what looks simple from the point of view of the user, is actually complex to solve and render. In the end, all complexity should be hidden, but the solution is not trivial.</p>
<div class="mceTemp mceIEcenter" style="text-align:justify;">
<dl class="wp-caption aligncenter">
<dt class="wp-caption-dt"><img class="size-full wp-image-299" title="WindowOfInterest" src="http://twproject.files.wordpress.com/2009/02/diagram1.gif?w=800" alt="Area of focused interest"   /></dt>
<dd class="wp-caption-dd">Area of focused interest in time.</dd>
</dl>
</div>
<p style="text-align:justify;">What is relevant to you is not just stuff that you occasionally visited, but say projects or documents to which you recently returned to again and again: you need to keep in focus a <em>window of attention</em>. See it in this way:  you want the projects or documents to which you are frequently <em>linking to</em>.  You need a sort of <strong>personal page rank</strong>.</p>
<h2 style="text-align:justify;">Recording hits</h2>
<p style="text-align:justify;">Well, the way to go is record what are doing; you have to record it somehow as a parallel, probably de-normalized table of &#8220;hits&#8221;, keeping it very simple, as you will probably get quickly really <em>a lot</em> of records there.</p>
<table border="0">
<tbody>
<tr>
<td>
<div class="mceTemp" style="text-align:justify;">
<dl class="wp-caption alignleft">
<dt class="wp-caption-dt"><img class="size-full wp-image-330" title="HitClass" src="http://twproject.files.wordpress.com/2009/02/capture_156.gif?w=800" alt="A sample hit collector class in Java/Hibernate"   /></dt>
<dd class="wp-caption-dd">A sample hit collector class in Java/Hibernate</dd>
</dl>
</div>
</td>
<td valign="top">
<p style="text-align:justify;">In the picture you see an example &#8220;hit&#8221;, when a user looks and/or works on something. Notice that as you will collect a lot of data, you will need to filter out in function also of your security model: that is why we have the &#8220;areaId&#8221; field there.</p>
</td>
</tr>
</tbody>
</table>
<p style="text-align:justify;">Now however you decide to collect hits, you will have to meet the problem of how to <em>weigh</em> them, that is, have a <em>hit rank function</em> defined on users, objects and time.</p>
<p style="text-align:justify;">In our implementation, we created a function that for every Teamwork user and every entity (be it task, issue, diary entry, document, worklog action) computes the user hit rank for the entity; if the entity is relevant for the user, the hit rank will be high. Rank gets high by “hitting” i.e. visiting an entity.</p>
<p style="text-align:justify;">As we said before, interest is assumed to fade in time, otherwise you’d end to have too many entities with high rank: so you have to define a sort of window of attention, with a degradation of relevance.</p>
<p style="text-align:justify;">
<table border="0">
<tbody>
<tr>
<td valign="top"><img class="size-full wp-image-301 aligncenter" style="margin-top:10px;margin-bottom:10px;" title="gaussian" src="http://twproject.files.wordpress.com/2009/02/capture_149.gif?w=800" alt="gaussian"   /></td>
<td valign="top"><img class="size-full wp-image-332 alignleft" style="margin:15px;" title="GaussianParameters" src="http://twproject.files.wordpress.com/2009/02/capture_157.gif?w=800" alt="GaussianParameters"   /></td>
</tr>
</tbody>
</table>
<p style="text-align:justify;">You need a way to compute degradation of relevance; we defined degradation with the rigth side of a <a title="Gaussian curve" href="http://en.wikipedia.org/wiki/Gaussian_function" target="_blank">Gaussian curve</a> with the constants in the code.</p>
<p style="text-align:justify;">Hit rank  can be refined to <strong>group rank </strong>notion, if your application has a notion of workgroup, so that you could define the activity of the group. Another benefit of hit rank is that you can efficiently monitor your application usage, or “activity”, and could lead to introducing badges <em>et cetera</em>.</p>
<h2 style="text-align:justify;">Example implementation</h2>
<p style="text-align:justify;">An example implementation is in <a title="Teamwork web site" href="http://www.twproject.com" target="_blank">Teamwork</a>: as it includes project management, business processes and groupware, there are many objects around. Hit rank has proven useful in a number of ways to improve usability, <strong>without impoverishing</strong> the model.</p>
<p style="text-align:justify;">&#8220;You mostly visited&#8221; is a portlet which you may have on your dashboards, and you also see search results ranked:</p>
<table style="text-align:justify;" border="0">
<tbody>
<tr>
<td valign="top">
<p><div id="attachment_309" class="wp-caption alignleft" style="width: 246px"><img class="size-full wp-image-309" title="highestRanked" src="http://twproject.files.wordpress.com/2009/02/capture_150.gif?w=800" alt="Your highest ranked entities."   /><p class="wp-caption-text">Your highest ranked entities.</p></div></td>
<td valign="top">
<p><div id="attachment_323" class="wp-caption alignleft" style="width: 251px"><img class="size-full wp-image-323" title="portletRankConfig" src="http://twproject.files.wordpress.com/2009/02/capture_154.gif?w=800" alt="Configuration of rank portlet."   /><p class="wp-caption-text">Configuration of rank portlet.</p></div></td>
<td valign="top">
<p><div id="attachment_324" class="wp-caption alignleft" style="width: 398px"><img class="size-full wp-image-324" title="search" src="http://twproject.files.wordpress.com/2009/02/capture_155.gif?w=800" alt="Search results ranked."   /><p class="wp-caption-text">Search results ranked.</p></div></td>
</tr>
</tbody>
</table>
<p style="text-align:justify;">In this way you should always have &#8220;at hand&#8221; what you&#8217;re really working on: you should be able to <em>access your most relevant objects with one click</em>.</p>
<p style="text-align:justify;">
<h2 style="text-align:justify;">References</h2>
<p style="text-align:justify;">Google&#8217; page rank paper: <a href="http://infolab.stanford.edu/~backrub/google.html" target="_blank">The Anatomy of a Large-Scale Hypertextual Web Search Engine</a></p>
<p style="text-align:justify;">A discussion on badges: <a href="http://stackoverflow.com/questions/135647/how-do-badges-work-in-stackoverflow" target="_blank">http://stackoverflow.com/questions/135647/how-do-badges-work-in-stackoverflow</a></p>
<p style="text-align:justify;">An introduction to full text search: <a href="http://www.javaworld.com/javaworld/jw-09-2006/jw-0925-lucene.html" target="_blank">http://www.javaworld.com/javaworld/jw-09-2006/jw-0925-lucene.html</a></p>
<p style="text-align:justify;">Hibernate full-text search: <a href="http://www.hibernate.org/410.html" target="_blank">http://www.hibernate.org/410.html</a></p>
<p style="text-align:justify;">Our contribution to Hibernate full-text search: <a href="http://www.hibernate.org/432.html" target="_blank">http://www.hibernate.org/432.html</a></p>
<p style="text-align:justify;">See hit rank in action in the <a title="Teamwork demo" href="http://demo.twproject.com/applications/teamwork/createUserEnvironment.jsp" target="_blank">demo</a> or by <a title="Teamwork downloads" href="http://www.twproject.com/download.page" target="_blank">installing the web app</a>.</p>
<p style="text-align:justify;">
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/twproject.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/twproject.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/twproject.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/twproject.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/twproject.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/twproject.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/twproject.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/twproject.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/twproject.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/twproject.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/twproject.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/twproject.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/twproject.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/twproject.wordpress.com/58/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.twproject.com&amp;blog=6113901&amp;post=58&amp;subd=twproject&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.twproject.com/2009/02/20/smarter-search-and-recent-object-functionality/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5198744cd329b6dfdb9e39b4f9794cd1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">polsinelli</media:title>
		</media:content>

		<media:content url="http://twproject.files.wordpress.com/2009/02/diagram1.gif" medium="image">
			<media:title type="html">WindowOfInterest</media:title>
		</media:content>

		<media:content url="http://twproject.files.wordpress.com/2009/02/capture_156.gif" medium="image">
			<media:title type="html">HitClass</media:title>
		</media:content>

		<media:content url="http://twproject.files.wordpress.com/2009/02/capture_149.gif" medium="image">
			<media:title type="html">gaussian</media:title>
		</media:content>

		<media:content url="http://twproject.files.wordpress.com/2009/02/capture_157.gif" medium="image">
			<media:title type="html">GaussianParameters</media:title>
		</media:content>

		<media:content url="http://twproject.files.wordpress.com/2009/02/capture_150.gif" medium="image">
			<media:title type="html">highestRanked</media:title>
		</media:content>

		<media:content url="http://twproject.files.wordpress.com/2009/02/capture_154.gif" medium="image">
			<media:title type="html">portletRankConfig</media:title>
		</media:content>

		<media:content url="http://twproject.files.wordpress.com/2009/02/capture_155.gif" medium="image">
			<media:title type="html">search</media:title>
		</media:content>
	</item>
		<item>
		<title>Upgrading from Teamwork 3 to 4: why and how</title>
		<link>http://blog.twproject.com/2009/02/02/upgrading-from-teamwork-3-to-4-why-and-how/</link>
		<comments>http://blog.twproject.com/2009/02/02/upgrading-from-teamwork-3-to-4-why-and-how/#comments</comments>
		<pubDate>Mon, 02 Feb 2009 12:17:42 +0000</pubDate>
		<dc:creator>Pietro Polsinelli</dc:creator>
				<category><![CDATA[news]]></category>
		<category><![CDATA[releases]]></category>
		<category><![CDATA[technical]]></category>

		<guid isPermaLink="false">http://blog.twproject.com/?p=251</guid>
		<description><![CDATA[If you are a user of Teamwork 3, you may now consider upgrading from 3 to 4. Why? Well, simply version 4 is Nicer &#8211; Faster &#8211; Friendlier &#8211; Wider.. This does remind of the Daft hands video . To get more in detail, probably the best way is to have a look at the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.twproject.com&amp;blog=6113901&amp;post=251&amp;subd=twproject&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;">If you are a user of Teamwork 3, you may now consider upgrading from 3 to 4.</p>
<h2 style="text-align:justify;">Why?</h2>
<p style="text-align:justify;">Well, simply version 4 is Nicer &#8211; Faster &#8211; Friendlier &#8211; Wider..</p>
<p style="text-align:justify;">This does remind of the <a title="Daft hands" href="http://www.youtube.com/watch?v=K2cYWfq--Nw" target="_blank">Daft hands</a> video <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  . To get more in detail, probably the best way is to have a look at the <a title="Teamwork 4 user guide" href="http://www.twproject.com/documentation.page" target="_blank">user guide</a>.</p>
<p style="text-align:justify;">P.S.: Faster? Yes, it is graphically richer, but still it is faster: given the extended Ajax usage, many pages no longer need &#8220;global reloading&#8221;; and there is also caching for all the graphical pages parts.</p>
<h2 style="text-align:justify;">How?</h2>
<p style="text-align:justify;">First, you must buy the upgrade license <a title="Teamwork upgrade prices" href="http://www.twproject.com/licensing.page" target="_blank">here</a>. The cost is 35 Euro per user (the buy page will show you also the price in dollars).</p>
<p style="text-align:justify;">The installer of version 4 contains an upgrade procedure from version 3 to 4. Upgrading means evolving the database schema, updating and inserting some data, and updating the web application. This is a complex process, which we tested extensively on different database, but it is not entirely fail-safe; there may be permissions lacking, differences of encoding, particular settings of your installation etc. .<br />
So before any upgrade attempt we STRONGLY advise doing a complete backup: these are the required operations to preserve all your data and your configurations settings:</p>
<p style="text-align:justify;">B1. Backup your database<br />
B2. Backup the entire web application: e.g. TEAMWORK_HOME/webapps/ROOT<br />
B3. Backup your repository, where files get uploaded: if you have not customized this folder you can find it in TEAMWORK_HOME/teamworkRepository.</p>
<p style="text-align:justify;">Consider that if you have Teamwork running in a non graphical environment, you cannot directly use the installer for upgrading, and this may be a problem, as several files must get updated.</p>
<p style="text-align:justify;">So the recommended procedure for upgrading is the following:</p>
<p style="text-align:justify;">1.    Backup as above B1, B2, B3<br />
2.    Create a copy of your database, accessible from a graphical environment<br />
3.    Install version 4 on such database with the graphical installer<br />
4.    If everything is fine, use the obtained web app as the new Teamwork</p>
<p style="text-align:justify;">This way there should be no danger of “ruining” your current version 3 installation.</p>
<p style="text-align:justify;">You can delegate us to do the upgrade procedure for you, if you are willing to give a temporary remote access to your web application. Before giving us access, you <em>must</em> have done backups B1, B2, B3, as our upgrade comes with no guarantees of data preservation in case of failure, and it is to you restoring the database and the web app in the previous state.  Buy the “remote setup” here:</p>
<p style="text-align:justify;"><a title="Get remote setup" href="http://www.twproject.com/licensing.page" target="_blank">http://www.twproject.com/licensing.page</a></p>
<p style="text-align:justify;">In case the upgrade procedure fails, you will get a full refund of the remote setup.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/twproject.wordpress.com/251/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/twproject.wordpress.com/251/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/twproject.wordpress.com/251/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/twproject.wordpress.com/251/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/twproject.wordpress.com/251/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/twproject.wordpress.com/251/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/twproject.wordpress.com/251/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/twproject.wordpress.com/251/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/twproject.wordpress.com/251/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/twproject.wordpress.com/251/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/twproject.wordpress.com/251/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/twproject.wordpress.com/251/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/twproject.wordpress.com/251/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/twproject.wordpress.com/251/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.twproject.com&amp;blog=6113901&amp;post=251&amp;subd=twproject&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.twproject.com/2009/02/02/upgrading-from-teamwork-3-to-4-why-and-how/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5198744cd329b6dfdb9e39b4f9794cd1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">polsinelli</media:title>
		</media:content>
	</item>
	</channel>
</rss>
