<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-27143478</id><updated>2011-12-22T15:31:08.342+01:00</updated><category term='Java calendar and Exchange server'/><category term='Teamwork JBoss'/><category term='project management webcast'/><category term='use cases'/><category term='project management 2.0'/><category term='Alfresco integration'/><category term='Java Outlook'/><category term='workflow'/><category term='teamwork review'/><category term='import'/><category term='microsoft project'/><category term='export'/><category term='Teamwork by e-mail'/><category term='ranking'/><category term='IT integration'/><category term='full text search'/><category term='Worklog and data exchange'/><category term='Java Outlook ICalendar Agenda TeamworkTalk'/><category term='teamwork installation configuration'/><category term='export import data'/><category term='ldap'/><category term='resource management'/><category term='webcast'/><category term='project management software'/><category term='web 2.0'/><category term='testing bugs'/><category term='Teamwork iPhone Safari'/><category term='scrum practical tools'/><category term='useless project management software'/><category term='business process'/><category term='real project management'/><category term='teamwork training'/><category term='hibernate full-text search'/><category term='teamworkReleases'/><category term='Project Management'/><category term='java'/><category term='authentication'/><category term='project management courses'/><category term='developers conferences'/><category term='audit software certification compliance'/><category term='ajax gantt tree'/><category term='jbpm'/><category term='project management and social tools'/><category term='Project management by e-mail'/><category term='web services'/><category term='J2EE project management'/><category term='teamwork free licenses'/><category term='TeamworkTalk'/><category term='hibernate search lucene indexing advanced'/><category term='software sales graph'/><category term='teamwork release'/><category term='ajax project tree'/><category term='agile project management'/><category term='microsoft project web based management'/><category term='hibernate clone'/><category term='software aided work management'/><category term='user interfaces for developers'/><category term='recurring meeting committee management'/><category term='teamworkUI'/><category term='project management and relational data'/><title type='text'>Teamwork - Work Management Software - The Blog</title><subtitle type='html'>Teamwork's blog. Inside news, previews, thoughts from the architects and developers of the well known work and project management software.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>98</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-27143478.post-5061606525684795726</id><published>2009-01-13T10:39:00.003+01:00</published><updated>2009-01-13T10:49:52.399+01:00</updated><title type='text'>Continuing on blog.twproject.com</title><content type='html'>This blog will be continued on &lt;a href="http://blog.twproject.com" target="_blank" title="Teamwork new blog"&gt;http://blog.twproject.com&lt;/a&gt;. This because this blog has become more and more important, as a source of news and information on Teamwork and work/project management. So we want a more powerful content manager (Wordpress), and have the blog on the main domain (twproject.com).&lt;br /&gt;&lt;br /&gt;Thank you blogger for hosting us up to now!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-5061606525684795726?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/5061606525684795726/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=5061606525684795726' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/5061606525684795726'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/5061606525684795726'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2009/01/continuing-on-blogtwprojectcom.html' title='Continuing on blog.twproject.com'/><author><name>Pietro Polsinelli</name><uri>http://www.blogger.com/profile/04722810331929686833</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-8021574621390254995</id><published>2009-01-12T16:34:00.004+01:00</published><updated>2009-01-12T18:28:07.245+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='teamworkReleases'/><title type='text'>Teamwork 4 new beta available</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_e9-aPiYWGig/SWTNOroA77I/AAAAAAAAAGE/Ob3NxHHq7pw/s1600-h/Capture_109.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 381px; height: 141px;" src="http://1.bp.blogspot.com/_e9-aPiYWGig/SWTNOroA77I/AAAAAAAAAGE/Ob3NxHHq7pw/s400/Capture_109.jpg" alt="" id="BLOGGER_PHOTO_ID_5288577514552225714" border="0" /&gt;&lt;/a&gt;You can now download and try Teamwork 4 beta. There is no user guide, but we are working on it and it will be released with the final, due this month (January 2009).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;WARNING: Do not use the beta to upgrade your current Teamwork 3 installation. The upgrade procedure is not complete and not reversible. Of course it will be complete for Teamwork 4 final.&lt;br /&gt;&lt;br /&gt;Get Teamwork 4 at the following links:&lt;br /&gt;&lt;br /&gt;Windows (94MB): &lt;a href="http://dl.open-lab.com/Teamwork_4BETA_windows.exe" target="_blank"&gt;http://dl.open-lab.com/Teamwork_4BETA_windows.exe&lt;/a&gt;&lt;br /&gt;Linux   (97MB): &lt;a href="http://dl.open-lab.com/Teamwork_4BETA_unix.sh.bin" target="_blank"&gt;http://dl.open-lab.com/Teamwork_4BETA_unix.sh.bin&lt;/a&gt;&lt;br /&gt;OSX     (83MB): &lt;a href="http://dl.open-lab.com/Teamwork_4BETA_macos.dmg" target="_blank"&gt;http://dl.open-lab.com/Teamwork_4BETA_macos.dmg&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here is an evaluation license:&lt;br /&gt;&lt;br /&gt;# BEGIN TW4 ACTIVATION KEY - COPY FROM HERE ON&lt;br /&gt;custCode=TW4BETAJAN12&lt;br /&gt;expires=31/01/2009&lt;br /&gt;licenses=20&lt;br /&gt;enterprise=no&lt;br /&gt;license=TGAP93VD211BEF2BEC79DAD1EF92WIBL059F7F0079732H5&lt;br /&gt;# END ACTIVATION KEY - END COPY&lt;br /&gt;&lt;br /&gt;What's new:&lt;br /&gt;- contains upgrade from version 3 (to be tested - do not upgrade production, only copies)&lt;br /&gt;- a beta of a German translation&lt;br /&gt;- fixed severe bug in working days "pushing" dates on tasks&lt;br /&gt;- several minor bug fixes&lt;br /&gt;&lt;br /&gt;Limitations of current beta:&lt;br /&gt;- worklog analysis and move is broken&lt;br /&gt;- resources search by login name does not work&lt;br /&gt;- db2 installation is not supported&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-8021574621390254995?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/8021574621390254995/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=8021574621390254995' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/8021574621390254995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/8021574621390254995'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2009/01/teamwork-4-beta-available.html' title='Teamwork 4 new beta available'/><author><name>Pietro Polsinelli</name><uri>http://www.blogger.com/profile/04722810331929686833</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_e9-aPiYWGig/SWTNOroA77I/AAAAAAAAAGE/Ob3NxHHq7pw/s72-c/Capture_109.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-5667005483448510024</id><published>2009-01-10T11:21:00.004+01:00</published><updated>2009-01-15T16:03:03.230+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IT integration'/><title type='text'>Filling timesheets from Twitter feeds and Subversion commits</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_e9-aPiYWGig/SWh_sbbW4QI/AAAAAAAAAGU/bWb3pYjA-vU/s1600-h/twsvn.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 330px; height: 103px;" src="http://2.bp.blogspot.com/_e9-aPiYWGig/SWh_sbbW4QI/AAAAAAAAAGU/bWb3pYjA-vU/s400/twsvn.jpg" alt="" id="BLOGGER_PHOTO_ID_5289618163600122114" border="0" /&gt;&lt;/a&gt;One of my dreams (and I believe, of many) is to somehow get time recording to be done easily from where I like to leave traces of my woring activity. Being a developer and a marketing man, my activity is recorded in Subversion commits and Twitter twits. Now from these there cannot be an automated filling of time sheets (it's not &lt;span style="font-style: italic;"&gt;that&lt;/span&gt; simple), but it would be nice when filingl time to be somehow "surrounded" by your traces; well, now teamwork 4 does exactly that. Try it yourself &lt;a href="http://twproject.blogspot.com/2009/01/teamwork-4-beta-available.html"&gt;here&lt;/a&gt;, using for example worklog day, or the worklog imports.&lt;br /&gt;&lt;br /&gt;P.S. Teamwork does much more than that: you can link projects to SVN folders, export your worlogs to Twitter, ... .&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-5667005483448510024?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/5667005483448510024/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=5667005483448510024' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/5667005483448510024'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/5667005483448510024'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2008/12/filling-timesheets-from-twitter-feeds.html' title='Filling timesheets from Twitter feeds and Subversion commits'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_e9-aPiYWGig/SWh_sbbW4QI/AAAAAAAAAGU/bWb3pYjA-vU/s72-c/twsvn.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-174097515224923447</id><published>2009-01-09T18:11:00.008+01:00</published><updated>2009-01-09T22:18:56.896+01:00</updated><title type='text'>Teamwork roadmap for 2009</title><content type='html'>&lt;div style="text-align: justify;"&gt;This is our roadmap for Teamwork for 2009, after a splendid 2008 of constant growth:&lt;br /&gt;&lt;br /&gt;1. Release teamwork 4 (really close); you can already try the beta &lt;a href="http://twproject.blogspot.com/2009/01/teamwork-4-beta-available.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;2. Build a personal productivity application that will use Teamwork as a backoffice (yes, this is a new idea - we'll blog more on this in coming weeks).&lt;br /&gt;&lt;br /&gt;3. Teamwork online service - make it better.&lt;br /&gt;&lt;br /&gt;Do you want to use your project management software online or in an internal server? We, up to a few years ago, nobody would dream of using such an intimate service online. But things have changed,&lt;br /&gt;&lt;br /&gt;99% of customers currently use Teamwork on a local installation. or on their host For the moment, Teamwork 4 beta can be used only in a local installation. A local installation gives you more control, but also more maintenance burden.&lt;br /&gt;&lt;br /&gt;In fact, we currently openly discourage to use Teamwork online service other than for testing, and we redirect customers to their hosting services to get a "closer" installation; that because we are aware that our online service is not great; its about ok to give a try to Teamwork 3, but a local installation is better, faster, richer in features, and last but not least lets you play with integration with services.&lt;br /&gt;&lt;br /&gt;We are aware that the software as a service model is getting really very popular; we'll revamp our online service after release of version 4. We are now (January 2009) totally focused in releasing version 4, mainly for your local installations.&lt;br /&gt;&lt;br /&gt;So our suggestion is for the moment is &lt;span style="font-style: italic;"&gt;try Teamwork will a local installation&lt;/span&gt;: the installation process now is really simple. But in 2009, you will also get a concrete, fast and reliable option to use it online on our servers: it is one of our targets.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We have more in mind, but already meeting these three targets won't be easy. So life keeps being interesting here!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-174097515224923447?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/174097515224923447/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=174097515224923447' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/174097515224923447'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/174097515224923447'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2009/01/teamwork-roadmap-for-2009.html' title='Teamwork roadmap for 2009'/><author><name>Pietro Polsinelli</name><uri>http://www.blogger.com/profile/04722810331929686833</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-8693489839566147265</id><published>2009-01-08T12:20:00.003+01:00</published><updated>2009-01-15T16:03:45.234+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software aided work management'/><category scheme='http://www.blogger.com/atom/ns#' term='Project Management'/><title type='text'>Work management: different ways of working</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.flickr.com/photos/mwichary/2290025812/" target="_blank"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_e9-aPiYWGig/SWXhkEfEQXI/AAAAAAAAAGM/dBDyXEyzGiw/s400/de.jpg" alt="" id="BLOGGER_PHOTO_ID_5288881347212099954" border="0" /&gt;&lt;/a&gt;Everybody is different; and everybody wants to work differently. One of the problems when trying to organize work, maybe also by introducing a management tool, is that you have to find a way to meet different needs.&lt;br /&gt;&lt;br /&gt;The low access level and absence of security checks of social tools is one of the reasons why they are easy to accept in a working team, but of course they have limitations which will emerge even after a short time.&lt;br /&gt;&lt;br /&gt;An answer may seem be to adopt an application with a minimal set of features, so that everybody will agree on using those; but actually this is a way of temporarily hiding the problem, because work management involves a lot of kinds of different actions, and different people (production director, expense manager, those that get things done, ..) find different actions the essential ones, so everybody agrees that few features are essential, only everybody points to different ones.&lt;br /&gt;&lt;br /&gt;So if you want to go towards a minimal agreed set of features, the best thing is not to use a specialized tool at all. Use just Excel and paper, you'll be fine.&lt;br /&gt;&lt;br /&gt;Our approach with Teamwork is that if the software has to be useful at all, it has to be &lt;span style="font-weight: bold;"&gt;compatible with different ways of working&lt;/span&gt;. And in this, it is uniquely powerful: you can model projects as trees, as flat lists, as just a bunch of issues, as a business process or flow, ... . You can assign the same task to many people, or pick one task one person, or associate one task to many many issues, or just use to-dos and record all worklog on a single project, or whatever crazy way of working you prefer. You can record worklog on week time sheets, or by issue, or on a counter, of from Subversion commits, or from Twitter twits...&lt;br /&gt;You can manage meetings from Teamwork's agenda, or from Outlook, or from Google calendar, or from any iCal client, and so on...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;In the picture you see the world’s first working Difference Engine; it has nothing to do with the topic, but looks nice :-)&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-8693489839566147265?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/8693489839566147265/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=8693489839566147265' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/8693489839566147265'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/8693489839566147265'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2008/11/work-management-different-ways-of.html' title='Work management: different ways of working'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_e9-aPiYWGig/SWXhkEfEQXI/AAAAAAAAAGM/dBDyXEyzGiw/s72-c/de.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-2708538850046903047</id><published>2009-01-05T15:08:00.007+01:00</published><updated>2009-01-07T18:06:10.878+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='teamwork free licenses'/><title type='text'>Free Teamwork 4 user licenses for reviewers</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_e9-aPiYWGig/SWIWlyQEtjI/AAAAAAAAAFs/kDLC-5UrszY/s1600-h/peter.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 138px; height: 189px;" src="http://4.bp.blogspot.com/_e9-aPiYWGig/SWIWlyQEtjI/AAAAAAAAAFs/kDLC-5UrszY/s400/peter.jpg" alt="" id="BLOGGER_PHOTO_ID_5287813750886544946" border="0" /&gt;&lt;/a&gt;From now on we will be giving out a free, non expiring 3-user Teamwork 4 license (worth 285 Euro) to &lt;span style="font-style: italic;"&gt;any journalist/blogger who writes a public review&lt;/span&gt; of Teamwork 4 (typically a blog entry) regardless whether it is positive or not. In fact we'll give you the license before you write the review: just &lt;a href="http://www.twproject.com/contacts.page"&gt;send us&lt;/a&gt; a short blurb and we'll send you the license.&lt;br /&gt;&lt;br /&gt;Same if you are willing to do a &lt;span style="font-style: italic;"&gt;demo of Teamwork 4&lt;/span&gt; to an audience at a public event.&lt;br /&gt;&lt;br /&gt;To get to try Teamwork 4, just see the post above.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-2708538850046903047?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/2708538850046903047/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=2708538850046903047' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/2708538850046903047'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/2708538850046903047'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2009/01/free-teamwork-4-user-licenses-for.html' title='Free Teamwork 4 user licenses for reviewers'/><author><name>Pietro Polsinelli</name><uri>http://www.blogger.com/profile/04722810331929686833</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_e9-aPiYWGig/SWIWlyQEtjI/AAAAAAAAAFs/kDLC-5UrszY/s72-c/peter.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-4262291352620431941</id><published>2008-12-29T17:40:00.044+01:00</published><updated>2009-01-15T16:10:33.522+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='project management webcast'/><category scheme='http://www.blogger.com/atom/ns#' term='webcast'/><category scheme='http://www.blogger.com/atom/ns#' term='jbpm'/><title type='text'>Teamwork Webcast #1 - Business processes integration</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_e9-aPiYWGig/SVj_OTTePSI/AAAAAAAAAFc/fcCnEagbP8s/s1600-h/webcast_01.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 250px; height: 200px;" src="http://2.bp.blogspot.com/_e9-aPiYWGig/SVj_OTTePSI/AAAAAAAAAFc/fcCnEagbP8s/s400/webcast_01.png" alt="" id="BLOGGER_PHOTO_ID_5285254783884475682" border="0" /&gt;&lt;/a&gt;This is the first of a series of webcasts in which Silvia Chelazzi and &lt;a href="http://ppolsinelli.blogspot.com/" target="_blank"&gt;Pietro Polsinelli&lt;/a&gt; (two Teamwork developers) will talk about Teamwork, work and project management, and related tools and technologies. We plan to release a webcast about every two weeks.&lt;br /&gt;&lt;br /&gt;In this one after a brief table-tennis exchange (trying the latest addition to our office) we take a first look at Teamwork 4 integration with business processes, so this webcast is quite dense with technical references.&lt;br /&gt;&lt;br /&gt;P.S. Pietro in the video says that he is assigning task in hours, bot of course it is in working days... .&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;See &lt;/span&gt;&lt;span&gt;the webcast on &lt;a href="http://www.vimeo.com/2770817"&gt;Vimeo&lt;/a&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;. Download&lt;/span&gt; the webcast: &lt;a href="http://dl.open-lab.com/teamworkWebcast01.mov"&gt;mov file&lt;/a&gt; (63MB), &lt;a href="http://dl.open-lab.com/teamworkWebcast01.mov.zip"&gt;zipped mov&lt;/a&gt; (44MB), &lt;a href="http://dl.open-lab.com/teamworkWebcast01.flv.zip"&gt;zipped flv&lt;/a&gt; (29MB). We promise to have smaller and friendlier files for next webcasts :-). You can also see it in our player &lt;a href="http://www.twproject.com/teamworkWebcast.page" target="_blank"&gt;here&lt;/a&gt;. The mov files can be watched with &lt;a href="http://www.apple.com/quicktime/download/" target="_blank"&gt;Quicktime&lt;/a&gt; or &lt;a href="http://www.videolan.org/vlc/" target="_blank"&gt;VLC&lt;/a&gt;, the flv with VLC and others.&lt;br /&gt;&lt;br /&gt;Suggestions for topics that the webcasts should cover are welcome: use the &lt;a href="http://teamwork.uservoice.com/" target="_blank"&gt;UserVoice&lt;/a&gt; service, with requests as &lt;a href="http://teamwork.uservoice.com/pages/general/suggestions/95713-webcast-talk-about-subversion-integration" target="_blank"&gt;this&lt;/a&gt; one.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;References &lt;/span&gt;in and around the webcast:&lt;br /&gt;&lt;br /&gt;JBPM: &lt;a href="http://www.jboss.com/products/jbpm"&gt;http://www.jboss.com/products/jbpm&lt;/a&gt;  &lt;a href="http://www.jboss.org/jbossjbpm"&gt;http://www.jboss.org/jbossjbpm&lt;/a&gt;&lt;br /&gt;JPDL: &lt;a href="http://www.jboss.org/jbossjbpm/jpdl"&gt;http://www.jboss.org/jbossjbpm/jpdl&lt;/a&gt;&lt;br /&gt;The creator of JBPM: Tom Baeyens, &lt;a href="http://processdevelopments.blogspot.com/"&gt;http://processdevelopments.blogspot.com&lt;/a&gt;&lt;span style="font-size:85%;"&gt; (Teamwork and Open Lab are in no sense associated with JBoss.)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A previous blog post on these themes: &lt;a href="http://twproject.blogspot.com/2008/10/teamwork-development-version-now.html"&gt;http://twproject.blogspot.com/2008/10/teamwork-development-version-now.html&lt;/a&gt;&lt;br /&gt;On worklow patterns in general: &lt;a href="http://www.workflowpatterns.com/"&gt;http://www.workflowpatterns.com&lt;/a&gt;&lt;br /&gt;Interesting article on Infoq: &lt;a href="http://www.infoq.com/articles/seven-fallacies-of-bpm"&gt;http://www.infoq.com/articles/seven-fallacies-of-bpm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;P.S. To be sure you understand what a flow is (from &lt;a href="http://xkcd.com/518/"&gt;http://xkcd.com/518&lt;/a&gt;) :-)&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://imgs.xkcd.com/comics/flow_charts.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 740px; height: 534px;" src="http://imgs.xkcd.com/comics/flow_charts.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-4262291352620431941?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/4262291352620431941/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=4262291352620431941' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/4262291352620431941'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/4262291352620431941'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2008/12/teamwork-webcast-1-business-processes.html' title='Teamwork Webcast #1 - Business processes integration'/><author><name>Pietro Polsinelli</name><uri>http://www.blogger.com/profile/04722810331929686833</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_e9-aPiYWGig/SVj_OTTePSI/AAAAAAAAAFc/fcCnEagbP8s/s72-c/webcast_01.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-4222049335856800667</id><published>2008-12-29T13:34:00.010+01:00</published><updated>2009-01-15T16:11:30.496+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='project management and social tools'/><category scheme='http://www.blogger.com/atom/ns#' term='IT integration'/><title type='text'>Using social tools for managing projects</title><content type='html'>&lt;div style="text-align: justify;"&gt;A friend who works as project manager professional, a consultant at several public and private organizations in Rome, proposed me to use blogs as tools helping managing a project; this because it happens to him that introducing structured tools meets adoption resistance.  Introducing work management from a community based platform is a quite novel approach, and could be quite in harmony with modern methodologies. We intend to progressively integrate this perspective too, and we did something already. Consider that with Teamwork's custom dashboards, you can integrate practically anything in your home page, in particular today that many online services are available as simple JavaScript calls.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_e9-aPiYWGig/SVi8buggkTI/AAAAAAAAAFM/5q2lgGlz1bo/s1600-h/Capture_104.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 210px; height: 52px;" src="http://1.bp.blogspot.com/_e9-aPiYWGig/SVi8buggkTI/AAAAAAAAAFM/5q2lgGlz1bo/s400/Capture_104.jpg" alt="" id="BLOGGER_PHOTO_ID_5285181347246149938" border="0" /&gt;&lt;/a&gt;You may have noticed that we are now using the User Voice service to collect users' feedback on Teamwork. &lt;a href="http://uservoice.com/" target="_blank"&gt;User Voice&lt;/a&gt; is a refined and simple way to get feedback from your customers and contacts, even when you have only online contacts; it is an example of open access, where all users have equal rights of expression.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_e9-aPiYWGig/SVi0Rcuf9AI/AAAAAAAAAFE/yK1o0j6aUvk/s1600-h/Capture_103.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 292px;" src="http://3.bp.blogspot.com/_e9-aPiYWGig/SVi0Rcuf9AI/AAAAAAAAAFE/yK1o0j6aUvk/s400/Capture_103.jpg" alt="" id="BLOGGER_PHOTO_ID_5285172374581277698" border="0" /&gt;&lt;/a&gt;As an example of integration, we now provide a  User Voice portlet, which you can set to point to your &lt;a href="http://teamwork.uservoice.com/" target="_blank"&gt;User Voice&lt;/a&gt; service; you will then select the requests which you want to deal with, creating corresponding issues in Teamwork.&lt;br /&gt;&lt;br /&gt;In the image we have the portlet set in the home page.&lt;br /&gt;&lt;br /&gt;More and more work management tools will need to transform into “linking” applications, places where different kinds of logging get linearized into a project. We’re working on this!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Pietro Polsinelli&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;P.S. If you are wondering about Teamwork's look in the screenshot, that is version 4.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-4222049335856800667?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/4222049335856800667/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=4222049335856800667' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/4222049335856800667'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/4222049335856800667'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2008/11/using-social-tools-for-managing.html' title='Using social tools for managing projects'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_e9-aPiYWGig/SVi8buggkTI/AAAAAAAAAFM/5q2lgGlz1bo/s72-c/Capture_104.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-1231759459963492068</id><published>2008-12-18T18:06:00.008+01:00</published><updated>2009-01-15T16:12:55.436+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='teamwork release'/><title type='text'>Teamwork 3 final released</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_e9-aPiYWGig/SUqEiaH5pGI/AAAAAAAAAEg/Ox4NWSJVUIQ/s1600-h/tw_helpTeam.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 225px; height: 207px;" src="http://3.bp.blogspot.com/_e9-aPiYWGig/SUqEiaH5pGI/AAAAAAAAAEg/Ox4NWSJVUIQ/s400/tw_helpTeam.png" alt="" id="BLOGGER_PHOTO_ID_5281179239708206178" border="0" /&gt;&lt;/a&gt;Today (December 18, 2008) we released Teamwork 3 final (release 3.2.9 build 7187). It contains an extension of the internationalization coverage, in which we were helped by a German customer company (thanks!).&lt;br /&gt;&lt;br /&gt;You can download the release here: &lt;a href="http://www.twproject.com/download.page"&gt;http://www.twproject.com/download.page&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Teamwork 4 is now in beta; we will post extended coverage of the new features in the forthcoming weeks; we will also begin a series of &lt;span style="font-style: italic;"&gt;webcasts&lt;/span&gt;, in the first one we'll take a look at some 4 beta features. Version 4 will be released for production at the end of next month (January); of course anybody who buys Teamwork 3 now will get a free upgrade to version 4.&lt;br /&gt;&lt;br /&gt;You can post as usual feature requests on our &lt;a href="http://teamwork.uservoice.com/"&gt;uservoice&lt;/a&gt; service, and also themes to be discussed in the webcasts; if you want to get access to the beta version, just &lt;a href="http://www.twproject.com/contacts.page"&gt;contact us&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-1231759459963492068?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/1231759459963492068/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=1231759459963492068' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/1231759459963492068'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/1231759459963492068'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2008/12/teamwork-3-final-released.html' title='Teamwork 3 final released'/><author><name>Pietro Polsinelli</name><uri>http://www.blogger.com/profile/04722810331929686833</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_e9-aPiYWGig/SUqEiaH5pGI/AAAAAAAAAEg/Ox4NWSJVUIQ/s72-c/tw_helpTeam.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-5659498401720700482</id><published>2008-11-14T15:18:00.005+01:00</published><updated>2008-11-14T16:17:25.284+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='project management 2.0'/><title type='text'>New Teamwork introductory pages</title><content type='html'>&lt;span style="" lang="EN-US"&gt;&lt;/span&gt;&lt;p class="MsoNormal"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_HWvV3Dgm1p0/SR2M5_T5rOI/AAAAAAAAAAs/mRsgl74D5uI/s1600-h/img2.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 184px;" src="http://4.bp.blogspot.com/_HWvV3Dgm1p0/SR2M5_T5rOI/AAAAAAAAAAs/mRsgl74D5uI/s400/img2.jpg" alt="" id="BLOGGER_PHOTO_ID_5268522066968685794" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="" lang="EN-US"&gt;Forthcoming release of Teamwork will have brand new &lt;span style="font-style: italic;"&gt;introductory pages&lt;/span&gt;, rich of links; this because we often find that in the evaluation phase users don't get to find some of the most useful features.&lt;br /&gt;&lt;br /&gt;Following this idea, the entire interface has been rebuilt along "don't make me think" lines, while at the same time enriching the set of features.&lt;br /&gt;&lt;br /&gt;In place edit in lists, more flexible dashboards components, more flexible project modeling and issue editing, a friendly search and ranking function: all this is coming together in a unique web based project management application which is likely more powerful that any competitor, and usable as the new social tools.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This will make it also easier to start simple, and add more along the way, lowering the initial adoption barrier which is one of the main reasons for pm software adoption failure.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-5659498401720700482?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/5659498401720700482/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=5659498401720700482' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/5659498401720700482'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/5659498401720700482'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2008/11/new-teamworks-introductory-pages.html' title='New Teamwork introductory pages'/><author><name>Silvia Chelazzi</name><uri>http://www.blogger.com/profile/01981612254379366382</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_HWvV3Dgm1p0/SR2M5_T5rOI/AAAAAAAAAAs/mRsgl74D5uI/s72-c/img2.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-3128534703141315277</id><published>2008-11-04T20:12:00.001+01:00</published><updated>2009-01-15T16:13:25.976+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='teamwork training'/><category scheme='http://www.blogger.com/atom/ns#' term='use cases'/><title type='text'>Boot camp experiences: Vocabase</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_5i3h1CugZXo/SRGyUn1wDdI/AAAAAAAAAPw/i8mt23m9p5s/s1600-h/Capture_072.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 186px; height: 101px;" src="http://2.bp.blogspot.com/_5i3h1CugZXo/SRGyUn1wDdI/AAAAAAAAAPw/i8mt23m9p5s/s400/Capture_072.jpg" alt="" id="BLOGGER_PHOTO_ID_5265185506734378450" border="0" /&gt;&lt;/a&gt;One of the most recent and successful Teamwork boot camps has been at &lt;a href="http://www.vocabase.com/" target="_blank"&gt;Vocabase&lt;/a&gt;, a Belgian software house. They develop &lt;span style="font-style: italic;"&gt;voice portals&lt;/span&gt;, application servers operating telephone interactions between customers and support, and more. The boot camp lasted two days, and was in &lt;a href="http://en.wikipedia.org/wiki/Battle_of_Waterloo" target="_blank"&gt;Waterloo&lt;/a&gt; (our hotel was in the "middle" of the battlefield).&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;Vocabase leading team is composed of Alain Rondenbosch, Robert Hopp and Jean-Michel Polfliet; after their gracious reception, we started by installing Teamwork in their intranet, and then proceeded presenting and discussing features and modeling of their processes.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_5i3h1CugZXo/SRGycDhnUNI/AAAAAAAAAP4/nuHvI_QTb0I/s1600-h/1.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 131px;" src="http://3.bp.blogspot.com/_5i3h1CugZXo/SRGycDhnUNI/AAAAAAAAAP4/nuHvI_QTb0I/s400/1.JPG" alt="" id="BLOGGER_PHOTO_ID_5265185634425196754" border="0" /&gt;&lt;/a&gt;As always happens in these cases, the customer points out to needs that lead to future improvements of Teamwork; in this case, in the resource planning section, and the relationship between worklogs and costs.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Usually our boot camps consist of a first (long) meeting with the (potential) project managers, finding the appropriate Teamwork models and procedures &lt;span style="font-weight: bold;"&gt;matching their work process&lt;/span&gt;; then a second meeting involving the entire team, demoing Teamwork usage and asking for feedback.&lt;br /&gt;&lt;br /&gt;Teamwork is so flexible that modeling your projects and work with slim or large trees, using issues or not, using a single or multiple areas, are all open options, and a boot camp can speed up enormously adoption time.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_5i3h1CugZXo/SRGytTGAYUI/AAAAAAAAAQA/UXpzj6B6mHU/s1600-h/2.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 383px; height: 293px;" src="http://1.bp.blogspot.com/_5i3h1CugZXo/SRGytTGAYUI/AAAAAAAAAQA/UXpzj6B6mHU/s400/2.JPG" alt="" id="BLOGGER_PHOTO_ID_5265185930662142274" border="0" /&gt;&lt;/a&gt;Teamwork's adoption is generally a symptom of a developing culture for improving production  through quality of work, and our impression of Vocabase is that this is the direction in which they are progressing.&lt;br /&gt;&lt;br /&gt;Meeting and working with them has been a real pleasure, we wish them an even more successful future!&lt;br /&gt;&lt;br /&gt;If you want to get a Teamwork boot camp, go &lt;a href="http://www.twproject.com/bootCamp.page"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-3128534703141315277?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/3128534703141315277/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=3128534703141315277' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/3128534703141315277'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/3128534703141315277'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2008/11/boot-camp-experiences-vocabase.html' title='Boot camp experiences: Vocabase'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_5i3h1CugZXo/SRGyUn1wDdI/AAAAAAAAAPw/i8mt23m9p5s/s72-c/Capture_072.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-6057871528539876932</id><published>2008-10-23T16:36:00.020+02:00</published><updated>2008-11-05T14:51:09.726+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='project management software'/><category scheme='http://www.blogger.com/atom/ns#' term='business process'/><title type='text'>The complex relationship between projects and business processes</title><content type='html'>&lt;div style="text-align: justify;"&gt;Teamwork development version now includes Business Process integration. This is a really cool feature, as it gives a new dimension to projects, making it possible to model naturally complex processes, while maintaining the basic project based organization. The underlying technology is our implementation of Hibernate + &lt;a href="http://www.jboss.org/jbossjbpm/" target="_blank"&gt;JBPM&lt;/a&gt;, which gives the full generality and power of a proven business process framework.&lt;br /&gt;&lt;br /&gt;In our meetings with customers we often presented two way of modeling their business processes: with projects, aimed at giving a minimal structure to work and collecting a maximal amount of feedback, work logs etc., or using business process models, which are workflows. Workflows are more rigid but more accurate. They are more complex to plan but often easier for the final user, who has jus to say "proceed" on her/his tasks when it is the case. So how could we give the opportunity to project managers to use business processes inside Teamwork without making the interface horribly clumsy? After much discussion, we made some choices:&lt;br /&gt;&lt;br /&gt;- use JBPM, which holds data relationally and hence transparently, just like the rest of Teamwork&lt;br /&gt;&lt;br /&gt;- process steps would be sedimented in tasks, so that say search in projects would keep on working on the same data, be it process driven projects or classical simply tree based projects&lt;br /&gt;&lt;br /&gt;- non circular steps in processes (which of course are supported) would be modeled by tasks dependencies&lt;br /&gt;&lt;br /&gt;- steps to be done will be presented to users in the same locations where she usually finds her assignments and tasks&lt;br /&gt;&lt;br /&gt;So basically we have a wizard which given a process, lets you pick the assignments on the nodes of the process, and will generate a process instance which will guide project advancement, notifying and recording step progress. This is more flexible than the classical swimlane based business process assignment. Processes are defined in &lt;a href="http://www.jboss.org/jbossjbpm/jpdl/" target="_blank"&gt;JPDL&lt;/a&gt;, a powerful business process which covers all the usual fork/join/milestone etc. needed in process management.&lt;br /&gt;&lt;br /&gt;One could use Teamwork’s available custom forms to be associated particular steps of the process, hence having also a document process overlapping the business one.  Other customization could be done in the action handlers, which handle the token entering or leaving a node.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Screenshots&lt;br /&gt;&lt;/span&gt;In the first three screenshots you see three ways of looking at the same project: as a &lt;span style="font-style: italic;"&gt;graph&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;swimlane based&lt;/span&gt;, and as a &lt;span style="font-style: italic;"&gt;Gantt&lt;/span&gt;. It is the same project, and all the features that you have in these are enabled, like subscriptions, document management, issue tracking, and so on. Below also some of the ususal interface request "improved" with the process driven questions.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;table style="border:1px solid black"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_5i3h1CugZXo/SQWq0GvmLCI/AAAAAAAAAPQ/m6cWi9MCdY0/s1600-h/Capture_046.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 217px; height: 400px;" src="http://2.bp.blogspot.com/_5i3h1CugZXo/SQWq0GvmLCI/AAAAAAAAAPQ/m6cWi9MCdY0/s400/Capture_046.jpg" alt="" id="BLOGGER_PHOTO_ID_5261799551792458786" border="0" /&gt;&lt;/a&gt;&lt;/td&gt; &lt;td valign="top"&gt; As graph.&lt;/td&gt; &lt;/tr&gt;    &lt;tr&gt; &lt;td valign="top"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_5i3h1CugZXo/SQWqvnU_IrI/AAAAAAAAAPI/kcK7n_SGJHM/s1600-h/Capture_045.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 311px;" src="http://1.bp.blogspot.com/_5i3h1CugZXo/SQWqvnU_IrI/AAAAAAAAAPI/kcK7n_SGJHM/s400/Capture_045.jpg" alt="" id="BLOGGER_PHOTO_ID_5261799474639872690" border="0" /&gt;&lt;/a&gt;&lt;/td&gt; &lt;td valign="top"&gt; By swimlanes.&lt;/td&gt; &lt;/tr&gt;  &lt;tr&gt; &lt;td valign="top"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_5i3h1CugZXo/SQWq_55NIwI/AAAAAAAAAPY/zhB3-uEwC2U/s1600-h/Capture_047.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 191px;" src="http://4.bp.blogspot.com/_5i3h1CugZXo/SQWq_55NIwI/AAAAAAAAAPY/zhB3-uEwC2U/s400/Capture_047.jpg" alt="" id="BLOGGER_PHOTO_ID_5261799754501530370" border="0" /&gt;&lt;/a&gt;&lt;/td&gt; &lt;td valign="top"&gt; As Gantt.&lt;/td&gt; &lt;/tr&gt;    &lt;tr&gt;      &lt;td valign="top"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_5i3h1CugZXo/SQWrI0b78EI/AAAAAAAAAPo/zUjaCGDpQyw/s1600-h/Capture_049.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 378px; height: 192px;" src="http://2.bp.blogspot.com/_5i3h1CugZXo/SQWrI0b78EI/AAAAAAAAAPo/zUjaCGDpQyw/s400/Capture_049.jpg" alt="" id="BLOGGER_PHOTO_ID_5261799907655413826" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;          &lt;td valign="top"&gt;          Task editor action.      &lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;      &lt;td valign="top"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_5i3h1CugZXo/SQWrE2zPRhI/AAAAAAAAAPg/2CsSMrlRbRk/s1600-h/Capture_048.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 346px; height: 96px;" src="http://2.bp.blogspot.com/_5i3h1CugZXo/SQWrE2zPRhI/AAAAAAAAAPg/2CsSMrlRbRk/s400/Capture_048.jpg" alt="" id="BLOGGER_PHOTO_ID_5261799839570544146" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;      &lt;td valign="top"&gt;     In my assignments.  &lt;/td&gt;    &lt;/tr&gt;  &lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-6057871528539876932?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/6057871528539876932/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=6057871528539876932' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/6057871528539876932'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/6057871528539876932'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2008/10/teamwork-development-version-now.html' title='The complex relationship between projects and business processes'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_5i3h1CugZXo/SQWq0GvmLCI/AAAAAAAAAPQ/m6cWi9MCdY0/s72-c/Capture_046.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-802390960537867301</id><published>2008-10-23T15:30:00.000+02:00</published><updated>2008-10-23T15:31:58.052+02:00</updated><title type='text'>Teamwork’s new installer</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_5i3h1CugZXo/SQB8obARn-I/AAAAAAAAAOw/_DW9n-QUDC8/s1600-h/Capture_013.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 216px;" src="http://1.bp.blogspot.com/_5i3h1CugZXo/SQB8obARn-I/AAAAAAAAAOw/_DW9n-QUDC8/s400/Capture_013.jpg" alt="" id="BLOGGER_PHOTO_ID_5260341398654263266" border="0" /&gt;&lt;/a&gt;In the wave of release of new features, we also deployed a new installer. We tried to create the first really user friendly multi-platform installer for a multi-database web application, and as you can guess by the length of the description, it wasn’t trivial.&lt;br /&gt;Working on the Install4J’s platform, we added the creation of services on Windows and OSX platforms, and, in case launching services is not possible, automated launch from a console of the web server. We are thinking about whether it would be useful to install it as a “service” on say Debian/Ubuntu or RedHat distributions.&lt;br /&gt;We improved the database test connection part, with improved Oracle-db interface and clearer error feedback.&lt;br /&gt;But what we worked mostly on is making the installation really very, very easy for a first evaluation, so that it does not ask any technical question: it just installs Teamwork as a service on a default test db, and then opens the browser there. Then it will be quite easy to move to production. Just try it here so see how it has been done.&lt;br /&gt;&lt;br /&gt;Most of the work has been done by our Roberto Baldi, who unfortunately for him presented it in a very bugged form in our weekly developer meeting, and had hence been confronted by a jeering crowd :-D&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-802390960537867301?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/802390960537867301/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=802390960537867301' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/802390960537867301'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/802390960537867301'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2008/10/teamworks-new-installer.html' title='Teamwork’s new installer'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_5i3h1CugZXo/SQB8obARn-I/AAAAAAAAAOw/_DW9n-QUDC8/s72-c/Capture_013.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-3878615236660254741</id><published>2008-10-14T22:17:00.000+02:00</published><updated>2008-10-14T22:19:26.319+02:00</updated><title type='text'>Disasters of data hostage</title><content type='html'>Sorry, but I really can resist linking to &lt;a href="http://discuss.joelonsoftware.com/default.asp?biz.5.687451"&gt;this&lt;/a&gt;. Use your own database for critical data!!!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Pietro&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-3878615236660254741?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/3878615236660254741/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=3878615236660254741' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/3878615236660254741'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/3878615236660254741'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2008/10/disasters-of-data-hostage.html' title='Disasters of data hostage'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-682963906783960135</id><published>2008-09-29T12:28:00.002+02:00</published><updated>2008-09-29T12:36:06.110+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='resource management'/><title type='text'>Resource plan</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_5i3h1CugZXo/SOCu54K62aI/AAAAAAAAAOA/hFlMkbKPGUA/s1600-h/screen_0015.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_5i3h1CugZXo/SOCu54K62aI/AAAAAAAAAOA/hFlMkbKPGUA/s400/screen_0015.jpg" alt="" id="BLOGGER_PHOTO_ID_5251389474867960226" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;A preview of the "excel like" editing of the resource plan in the forthcoming "resource management" module.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_5i3h1CugZXo/SOCtxznKuDI/AAAAAAAAAN4/3GEBmbWN0Sc/s1600-h/screen_0014.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_5i3h1CugZXo/SOCtxznKuDI/AAAAAAAAAN4/3GEBmbWN0Sc/s400/screen_0014.jpg" alt="" id="BLOGGER_PHOTO_ID_5251388236693682226" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-682963906783960135?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/682963906783960135/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=682963906783960135' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/682963906783960135'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/682963906783960135'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2008/09/preview-of-excel-like-editing-of.html' title='Resource plan'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_5i3h1CugZXo/SOCu54K62aI/AAAAAAAAAOA/hFlMkbKPGUA/s72-c/screen_0015.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-3806044083593058441</id><published>2008-09-28T13:11:00.001+02:00</published><updated>2008-09-29T12:38:06.771+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='resource management'/><title type='text'>Project management: simple, complex?</title><content type='html'>&lt;table style="width: 681px; height: 344px;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;br /&gt;&lt;td valign="top"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_5i3h1CugZXo/SNd9j8K1WXI/AAAAAAAAANY/pJgCVZsn04w/s1600-h/screen_0001.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_5i3h1CugZXo/SNd9j8K1WXI/AAAAAAAAANY/pJgCVZsn04w/s400/screen_0001.jpg" alt="" id="BLOGGER_PHOTO_ID_5248801947124062578" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_5i3h1CugZXo/SNeJbp0s-QI/AAAAAAAAANg/hJt50QNT4EM/s1600-h/screen_0002.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_5i3h1CugZXo/SNeJbp0s-QI/AAAAAAAAANg/hJt50QNT4EM/s400/screen_0002.jpg" alt="" id="BLOGGER_PHOTO_ID_5248814998899980546" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;br /&gt;&lt;td  style="text-align: justify;font-family:arial;" valign="top"&gt;&lt;span style="font-size:85%;"&gt;Yet another university adopted Teamwork. Why so many&lt;br /&gt;universities pick us?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Well, they need a flexible modeling tool, and Teamwork gives them this, not only because of modeling trees, but also because of the refined assignment model; definable node level role, and hence security, and so on.&lt;br /&gt;&lt;br /&gt;Complex model must not imply a complex user interface, and this is where a lot of recent work on our part is being done, studying the extensive literature on the matter, doing user testing and new developments. A sample of the new results is the possibility of moduling load on an assignment through a resource plan and/or by issue break-down.&lt;br /&gt;&lt;/span&gt; &lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td valign="top"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_5i3h1CugZXo/SOCqy-HS17I/AAAAAAAAANw/AdPIlRBmA1k/s1600-h/screen_0014.jpg"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-3806044083593058441?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/3806044083593058441/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=3806044083593058441' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/3806044083593058441'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/3806044083593058441'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2008/09/project-management-simple-complex.html' title='Project management: simple, complex?'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_5i3h1CugZXo/SNd9j8K1WXI/AAAAAAAAANY/pJgCVZsn04w/s72-c/screen_0001.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-7953980997464635409</id><published>2008-09-25T12:21:00.000+02:00</published><updated>2008-09-25T18:20:07.740+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TeamworkTalk'/><category scheme='http://www.blogger.com/atom/ns#' term='ldap'/><category scheme='http://www.blogger.com/atom/ns#' term='authentication'/><title type='text'>Authentication: standard, http, LDAP</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.flickr.com/photos/philhawksworth/2290037093/"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_5i3h1CugZXo/SK6TP-E3geI/AAAAAAAAAMw/EkxVTnvIlVs/s400/cat.jpg" alt="cat does not login" id="BLOGGER_PHOTO_ID_5237285319249199586" border="0" /&gt;&lt;/a&gt;Teamwork currently (3.2.8) supports a built-in, we’ll call it “&lt;span style="font-weight: bold;"&gt;standard&lt;/span&gt;”, authentication (notice that Teamwork works fine also under &lt;a href="http://en.wikipedia.org/wiki/Https" target="_blank"&gt;https&lt;/a&gt;) , which is the usual login, and authentication provided by the container, we’ll call it “&lt;span style="font-weight: bold;"&gt;http authentication&lt;/span&gt;”. This allows both single-sign-on support and also LDAP authentication through say the Tomcat container, as detailed in the &lt;a href="http://www.twproject.com/forum/applications/forum/thread.jsp?CM=ED&amp;amp;_VP_OBJ_ID=1702" target="_blank"&gt;forum&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;We are empowering authentication with a third modality, by having Teamwork contact directly the &lt;span style="font-weight: bold;"&gt;LDAP&lt;/span&gt; server, and also importing and updating users from LDAP via a scheduled job if needed. All this includes Active Directory; in this way, your LDAP will be the source of users and authentication. This third modality we’ll call it “LDAP”. It will make integration very easy, feasible completely just through the web interface. :-)&lt;br /&gt;&lt;br /&gt;If users will require it, it will be quite easy to integrate also &lt;a href="http://openid.net/" target="_blank"&gt;OpenId&lt;/a&gt; authentication.&lt;br /&gt;&lt;br /&gt;UPDATE: Teamwork 3.2.9 includes direct LDAP import and authentication: see&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://www.twproject.com/ldap.page"&gt;http://www.twproject.com/ldap.page&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-7953980997464635409?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/7953980997464635409/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=7953980997464635409' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/7953980997464635409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/7953980997464635409'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2008/08/authentication-standard-http-ldap.html' title='Authentication: standard, http, LDAP'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_5i3h1CugZXo/SK6TP-E3geI/AAAAAAAAAMw/EkxVTnvIlVs/s72-c/cat.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-4681220219101042594</id><published>2008-09-02T22:19:00.002+02:00</published><updated>2008-09-03T11:00:44.551+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='teamworkUI'/><title type='text'>Using Teamwork 3 with Chrome Beta</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_5i3h1CugZXo/SL5R5-jGU9I/AAAAAAAAANI/cmgsbGlOpVs/s1600-h/screen_0003.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_5i3h1CugZXo/SL5R5-jGU9I/AAAAAAAAANI/cmgsbGlOpVs/s400/screen_0003.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5241717072790442962" /&gt;&lt;/a&gt;&lt;div style="text-align: justify;"&gt;After a few tests it seems to be fully compatible with Teamwork 3 - and with no effort on our part :-D&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Chrome has a really smart way of navigating your recent links and using search results at the same time - we are preparing something on an analogous line and quite revolutionary for the forthcoming Teamwork releases - stay tuned..&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-4681220219101042594?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/4681220219101042594/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=4681220219101042594' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/4681220219101042594'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/4681220219101042594'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2008/09/using-teamwork-3-with-chrome-beta.html' title='Using Teamwork 3 with Chrome Beta'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_5i3h1CugZXo/SL5R5-jGU9I/AAAAAAAAANI/cmgsbGlOpVs/s72-c/screen_0003.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-5221032479251655245</id><published>2008-08-29T16:16:00.001+02:00</published><updated>2008-08-29T16:22:41.034+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TeamworkTalk'/><title type='text'>Supporting Ical</title><content type='html'>Today we completed integration between Teamwork agenda and Google calendar.&lt;br /&gt;In the original project we just dispatched events created in Teamwork to Google calendar, but now we let users export a complete Teamwork agenda in Ical format in order to see all appointments on another calendar server (just like Google calendar but also in another Teamwork!).&lt;br /&gt;&lt;br /&gt;Another added feature lets you import one or more external calendars in Ical format and see the events contained in it inside Teamwork’s agenda.&lt;br /&gt;&lt;br /&gt;While building the integration, I’ve had all sorts of troubles with date format and time zone settings. In fact we couldn’t assume that calendars working together have the same time settings, so it was necessary to convert dates in the correct time zone every time we tried to do an export or an import.&lt;br /&gt;&lt;br /&gt;Now everything works fine and it’s great! You can send every new event created in Teamwork to your Google calendar, you can see all your Google calendar events simply copying the given calendar’s address in Teamwork, and you can also do the opposite!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-5221032479251655245?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/5221032479251655245/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=5221032479251655245' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/5221032479251655245'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/5221032479251655245'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2008/08/supporting-ical.html' title='Supporting Ical'/><author><name>Silvia Chelazzi</name><uri>http://www.blogger.com/profile/01981612254379366382</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-4045055286920962742</id><published>2008-08-29T11:18:00.001+02:00</published><updated>2008-08-29T11:24:07.857+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TeamworkTalk'/><category scheme='http://www.blogger.com/atom/ns#' term='Alfresco integration'/><title type='text'>Teamwork and Alfresco integration</title><content type='html'>Among the rich set of integrations possible with Teamwork, one which we are considering is integrating &lt;a href="http://www.alfresco.com/" target="_blank"&gt;Alfresco&lt;/a&gt; document management with Teamwork's. We were discussing this at a customer (a bank), when they showed us that Alfresco provides file system network access to its document engine, so you can access the document tree throuh the network just by tipying a network address of the form \\alfrescoServer\... . Well then we immediately created a file storage pointing to the root of the alfresco server, so that the area manager can set on tasks roots the document root corresponding to it, and operate! So the inner flexibility of Teamwork gave us immediately a first, rough "integration" with Alfresco, which the customer loved, and makes them immediately operative.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-4045055286920962742?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/4045055286920962742/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=4045055286920962742' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/4045055286920962742'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/4045055286920962742'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2008/08/teamwork-and-alfresco-integration.html' title='Teamwork and Alfresco integration'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-6691049472525738192</id><published>2008-08-29T09:42:00.005+02:00</published><updated>2008-08-29T10:54:06.091+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ajax gantt tree'/><category scheme='http://www.blogger.com/atom/ns#' term='ajax project tree'/><title type='text'>Task/issue tree with (Ajax) edit in place - preview</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_5i3h1CugZXo/SLe2czsYPwI/AAAAAAAAAM4/xvoAw8z3m6g/s1600-h/screen_0001.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_5i3h1CugZXo/SLe2czsYPwI/AAAAAAAAAM4/xvoAw8z3m6g/s400/screen_0001.jpg" alt="" id="BLOGGER_PHOTO_ID_5239857297497800450" border="0" /&gt;&lt;/a&gt;We have ready a new project tree in-place editor; it is really nice, as you can edit in-place any task, including scheduling, assignments and issues. It is also way faster for projects with a lot of nodes.&lt;br /&gt;&lt;br /&gt;It is a non trivial feature because tasks in a project have the "annoying" feature that the changes in dates of one task can trigger the change of dates along the entire tree, so local editing becomes global editing all the time.&lt;br /&gt;&lt;br /&gt;Technically, it is built with Ajax and a lot of help from &lt;a href="http://jquery.com/"&gt;jQuery&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;In the second screenshot you see the project editor in the tree context:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_5i3h1CugZXo/SLe3l8GpzwI/AAAAAAAAANA/HSTFFp_is5w/s1600-h/screen_0002.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_5i3h1CugZXo/SLe3l8GpzwI/AAAAAAAAANA/HSTFFp_is5w/s400/screen_0002.jpg" alt="" id="BLOGGER_PHOTO_ID_5239858553885937410" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-6691049472525738192?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/6691049472525738192/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=6691049472525738192' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/6691049472525738192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/6691049472525738192'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2008/08/taskissue-tree-with-ajax-edit-in-place.html' title='Task/issue tree with (Ajax) edit in place - preview'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_5i3h1CugZXo/SLe2czsYPwI/AAAAAAAAAM4/xvoAw8z3m6g/s72-c/screen_0001.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-5191274029343959098</id><published>2008-08-27T09:31:00.001+02:00</published><updated>2008-08-29T10:59:13.183+02:00</updated><title type='text'>Teamwork and your company's worth</title><content type='html'>One of Teamwork's customers got acquired:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://www.milanofinanza.it/news/dettaglio_news.asp?id=200808061628001301&amp;amp;chkAgenzie=PMFNW"&gt;milano finanza news&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Interestingly, they use Teamwork along the entire production line, and somehow the order with which they operate, using projects starting with the commercial contact, along to design, production and even logistics, was one of the positive factors led to the acquisition.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-5191274029343959098?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/5191274029343959098/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=5191274029343959098' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/5191274029343959098'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/5191274029343959098'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2008/08/teamwork-and-your-companys-worth.html' title='Teamwork and your company&apos;s worth'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-3241114920013774390</id><published>2008-08-22T09:27:00.000+02:00</published><updated>2008-08-22T09:28:23.529+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TeamworkTalk'/><title type='text'>Teamwork Ical with Gmail and Google calendar</title><content type='html'>Yesterday we tested Teamwork’s automatic Ical calendar export, by having a user with a Gmail e-mail, so that instead of downloading the Teamwork generated Ical message, it was Gmail getting it: it works perfectly. So this kind of synchronization of Teamwork and Google calendars works right now, with the current release (3.2.8), and without any effort from the user: she just writes her Gmail e-mail on her Teamwork user, creates appointments in Teamwork, and gets them almost immediately in her Google calendar.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-3241114920013774390?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/3241114920013774390/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=3241114920013774390' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/3241114920013774390'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/3241114920013774390'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2008/08/teamwork-ical-with-gmail-and-google.html' title='Teamwork Ical with Gmail and Google calendar'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-5241508752521136452</id><published>2008-07-15T15:45:00.005+02:00</published><updated>2008-12-13T01:09:36.080+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TeamworkTalk'/><title type='text'>Integrating Google calendar</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_5i3h1CugZXo/SHyqjjrlUaI/AAAAAAAAAMo/GBIhpgPzZtM/s1600-h/screen_0003.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_5i3h1CugZXo/SHyqjjrlUaI/AAAAAAAAAMo/GBIhpgPzZtM/s400/screen_0003.jpg" alt="" id="BLOGGER_PHOTO_ID_5223237195693117858" border="0" /&gt;&lt;/a&gt;In the path of becoming the most open, integrated and widely compatible project management application there is, we are integrating &lt;a href="http://www.google.com/intl/en/googlecalendar/tour.html" target="_blank"&gt;Google calendar&lt;/a&gt; with Teamwork's shared agenda, adding this to &lt;a href="http://twproject.blogspot.com/2007/04/teamwork-and-icalendaroutlook.html" target="_blank"&gt;ICal/Outlook&lt;/a&gt; integration. Our Silvia is following this; see her on &lt;a href="http://twitter.com/schelazzi" target="_blank"&gt;Twitter&lt;/a&gt;. Stay tuned for this and other additional integrations!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-5241508752521136452?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/5241508752521136452/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=5241508752521136452' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/5241508752521136452'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/5241508752521136452'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2008/07/integrating-google-calendar.html' title='Integrating Google calendar'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_5i3h1CugZXo/SHyqjjrlUaI/AAAAAAAAAMo/GBIhpgPzZtM/s72-c/screen_0003.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-7577989999651045110</id><published>2008-06-06T15:45:00.010+02:00</published><updated>2008-07-02T09:01:21.702+02:00</updated><title type='text'>Teamwork on YouTube</title><content type='html'>&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/xBxkpqkM5aA&amp;amp;hl=en"&gt;&lt;embed src="http://www.youtube.com/v/xBxkpqkM5aA&amp;amp;hl=en" type="application/x-shockwave-flash" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Teamwork launches its own YouTube channel: &lt;a href="http://www.youtube.com/teamworksoftware"&gt;http://www.youtube.com/teamworksoftware&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;We're working on a complete video series about &lt;a href="http://www.twproject.com/overview.page"&gt;Teamwork's features&lt;/a&gt;.&lt;br /&gt;Please watch our first video chapter and stay tuned for the next one.&lt;br /&gt;&lt;br /&gt;The quality of the YouTube post is low because we are producing FLV videos, which cannot be published as such on YouTube; and the conversion FLV -&gt; video -&gt; FLV does not give good results. The final videos will be published on Teamwork site, so quality will be good there.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-7577989999651045110?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/7577989999651045110/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=7577989999651045110' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/7577989999651045110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/7577989999651045110'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2008/06/teamwork-on-youtube.html' title='Teamwork on YouTube'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-7238699080028715021</id><published>2008-05-28T10:31:00.010+02:00</published><updated>2008-12-13T01:09:36.227+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TeamworkTalk'/><category scheme='http://www.blogger.com/atom/ns#' term='Worklog and data exchange'/><title type='text'>Teamwork listens and talks</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_5i3h1CugZXo/SD0Yg-eadgI/AAAAAAAAAMI/sq6g4XLu2Uc/s1600-h/talk.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5205343699115603458" style="margin: 0px 10px 10px 0px; float: left;" alt="" src="http://1.bp.blogspot.com/_5i3h1CugZXo/SD0Yg-eadgI/AAAAAAAAAMI/sq6g4XLu2Uc/s400/talk.jpg" border="0" /&gt;&lt;/a&gt;We are currently working on expanding and improving Teamwork’s capacities in “&lt;em&gt;listening&lt;/em&gt;” to other applications, and “&lt;em&gt;talking&lt;/em&gt;” to them. The improvements will be progressively released. In particular:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Project clients&lt;br /&gt;&lt;/em&gt;&lt;a href="http://mpxj.sourceforge.net/" target="_blank"&gt;MPX&lt;/a&gt; support has been improved, so that imports and exports can be done from and to localized versions of MPX’s. This is compatible with GanttProject (&lt;a href="http://ganttproject.biz/" target="_blank"&gt;http://ganttproject.biz&lt;/a&gt;) and Microsoft Project formats and behavior (this improvement is included in release 3.2.7).&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Data export&lt;/em&gt;&lt;br /&gt;You already have the export to PDF functionality; we’ll add that all your filter/lists will be exportable in CSV format.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Listening to work logging&lt;/em&gt;&lt;br /&gt;We are developing a functionality to import work log from different sources: one is Twitter (&lt;a href="http://twitter.com/"&gt;http://twitter.com&lt;/a&gt;), another one is Subversion commits (&lt;a href="http://subversion.tigris.org/"&gt;http://subversion.tigris.org&lt;/a&gt;), a third one is CVS commits (&lt;a href="http://www.nongnu.org/cvs"&gt;http://www.nongnu.org/cvs&lt;/a&gt;). The Twitter module will also let export Teamwork work logs to Twitter. The Subversion and CVS modules will also integrate in the file storage, allowing web access to repositories.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Synch of agendas&lt;br /&gt;&lt;/em&gt;&lt;a href="http://ical4j.sourceforge.net/"&gt;Ical&lt;/a&gt; (and hence Outlook) synchronization has been a will be further improved. We are also working on synchs with &lt;a href="http://www.google.com/calendar/render"&gt;Google’s calendar&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;A bit of mystery&lt;br /&gt;&lt;/em&gt;There are other directions in which we are working, but are still in early alpha stage: let’s just say that we intend to facilitate migration from “data hostage” environments to our open structure.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;Above image &lt;/span&gt;&lt;a href="http://www.flickr.com/photos/wrestlingentropy/352378173/"&gt;&lt;span style="font-size:78%;"&gt;link&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:78%;"&gt;.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-7238699080028715021?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/7238699080028715021/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=7238699080028715021' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/7238699080028715021'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/7238699080028715021'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2008/05/teamwork-listens-and-talks.html' title='Teamwork listens and talks'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_5i3h1CugZXo/SD0Yg-eadgI/AAAAAAAAAMI/sq6g4XLu2Uc/s72-c/talk.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-7316913536613611119</id><published>2008-05-10T12:34:00.003+02:00</published><updated>2008-12-13T01:09:36.236+01:00</updated><title type='text'>Teamwork in Rome  12-15 May 2008</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_5i3h1CugZXo/SCV6uE6BD_I/AAAAAAAAAMA/8Ga2Vs3V_dU/s1600-h/Banner1_720x90%281%29.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_5i3h1CugZXo/SCV6uE6BD_I/AAAAAAAAAMA/8Ga2Vs3V_dU/s400/Banner1_720x90%281%29.jpg" alt="" id="BLOGGER_PHOTO_ID_5198696276878757874" border="0" /&gt;&lt;/a&gt;After having been to expo's everywhere but in Italy, we decided to take part to ForumPA in Rome, in the project management cluster, organized by &lt;a href="http://www.isipm.org" target="_blank"&gt;ISPM&lt;/a&gt;. Come see us!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-7316913536613611119?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/7316913536613611119/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=7316913536613611119' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/7316913536613611119'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/7316913536613611119'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2008/05/teamwork-in-rome-12-15-may-2008.html' title='Teamwork in Rome  12-15 May 2008'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_5i3h1CugZXo/SCV6uE6BD_I/AAAAAAAAAMA/8Ga2Vs3V_dU/s72-c/Banner1_720x90%281%29.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-6377893608942442068</id><published>2008-04-17T09:50:00.004+02:00</published><updated>2008-12-13T01:09:36.446+01:00</updated><title type='text'>Voice experiments for a new Project Management tutorial</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_5i3h1CugZXo/SAcHQaxTq1I/AAAAAAAAALk/7RIyJrV6yko/s1600-h/twSpotIco.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5190125074213219154" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_5i3h1CugZXo/SAcHQaxTq1I/AAAAAAAAALk/7RIyJrV6yko/s400/twSpotIco.jpg" border="0" /&gt;&lt;/a&gt; Yet more &lt;a href="http://www.twproject.com/applications/webwork/site_twproject_com/media/tw_audio.mp3"&gt;serious stuff &lt;/a&gt;from Teamwork's developers :-D&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-6377893608942442068?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/6377893608942442068/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=6377893608942442068' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/6377893608942442068'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/6377893608942442068'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2008/04/voice-experiments-for-new-project.html' title='Voice experiments for a new Project Management tutorial'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_5i3h1CugZXo/SAcHQaxTq1I/AAAAAAAAALk/7RIyJrV6yko/s72-c/twSpotIco.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-5380273972183312038</id><published>2008-04-09T18:48:00.004+02:00</published><updated>2008-12-13T01:09:36.603+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Teamwork by e-mail'/><category scheme='http://www.blogger.com/atom/ns#' term='TeamworkTalk'/><category scheme='http://www.blogger.com/atom/ns#' term='Project management by e-mail'/><category scheme='http://www.blogger.com/atom/ns#' term='Java Outlook ICalendar Agenda TeamworkTalk'/><title type='text'>Project management by e-mail</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_5i3h1CugZXo/R_28_-NURzI/AAAAAAAAALc/CXvv1vnNHw8/s1600-h/sendToTW_adv.gif"&gt;&lt;img id="BLOGGER_PHOTO_ID_5187510153017313074" style="margin: 0px 10px 10px 0px; float: left;" alt="" src="http://3.bp.blogspot.com/_5i3h1CugZXo/R_28_-NURzI/AAAAAAAAALc/CXvv1vnNHw8/s400/sendToTW_adv.gif" border="0" /&gt;&lt;/a&gt; Project management and e-mail communication have a love-hate relationship; on the one side, e-mail is a bad idea for handling projects: &lt;a href="http://www.mindthis.net/mindthis/2006/08/a_10to1_rule_of.html" target="_blank"&gt;A 10-to-1 rule of email based project management&lt;/a&gt;, and on the other side, it is the most comfortable mean of remote communication and information transmittal, sometimes even better then the browser, as it given less remote access problems.&lt;br /&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="justify"&gt;Given the contemporary wave of "make it simple" software drafts hitting software aided project management, which easily gets &lt;a href="http://twproject.blogspot.com/2008/03/keep-projects-simple-but-not-software.html" target="_blank"&gt;too simplistic&lt;/a&gt;, tens of web based todo list softwares appeared, some of which try to handle matters through e-mail. Now if you try to use such things you'll end up in troubles fast, if only because you simply can't create and manage a project from an e-mail: projects, even very simple ones, need some structured data beyond name and the single person that has to do it, and you can't do this with an e-mail, unless you introduce a new syntax, and then you are deep into troubles.&lt;/div&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="justify"&gt;So what we did is to let e-mail be a mean for handling additional information on a project already existing, like creating documents, issues, and todos: all this is explained at&lt;/div&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;a href="http://www.twproject.com/manageByEmail.page"&gt;http://www.twproject.com/manageByEmail.page&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="justify"&gt;and released since version 3.2.5.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-5380273972183312038?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/5380273972183312038/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=5380273972183312038' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/5380273972183312038'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/5380273972183312038'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2008/04/project-management-by-e-mail.html' title='Project management by e-mail'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_5i3h1CugZXo/R_28_-NURzI/AAAAAAAAALc/CXvv1vnNHw8/s72-c/sendToTW_adv.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-3888051727950570492</id><published>2008-04-07T18:27:00.001+02:00</published><updated>2008-12-13T01:09:36.949+01:00</updated><title type='text'>We use Teamwork's technology for all our services</title><content type='html'>&lt;a href="http://www.flickr.com/photos/swanksalot/2173602818/"&gt;&lt;img id="BLOGGER_PHOTO_ID_5184277597486824018" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://1.bp.blogspot.com/_5i3h1CugZXo/R_JBAec3ulI/AAAAAAAAAKY/xyJqxoVl5hU/s400/dogFood.jpg" border="0" /&gt;&lt;/a&gt;I think that one of the reason why people could &lt;em&gt;sort&lt;/em&gt; of trust us, is that we use Teamwork's technology for &lt;em&gt;all our services&lt;/em&gt;: Teamwor's website runs on &lt;strong&gt;Webwork&lt;/strong&gt;, which is the content management system built over the same platform as Teamwork (Teamwork's custom dashboards are actually a part of Webwork); &lt;strong&gt;Teamwork's forum&lt;/strong&gt; is powered by the same application that runs Teamwork's project forums.&lt;br /&gt;In some custome development, we integrated our worklflow engine, &lt;strong&gt;Flowork&lt;/strong&gt; (based on JBPM) with Teamwork to manage complex flows; we have on line courses running on &lt;strong&gt;Learnwork&lt;/strong&gt;, again the same technology. For our intranet we are empowering Teamwork's dashboard with Webwork in &lt;strong&gt;wiki mode&lt;/strong&gt;. And there are many many many more.&lt;br /&gt;&lt;br /&gt;Its funny to see development companies claiming to be technology leaders and &lt;a href="http://en.wikipedia.org/wiki/Eat_your_own_dog_food" target="_blank"&gt;not using&lt;/a&gt; their own technology for their own services..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-3888051727950570492?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/3888051727950570492/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=3888051727950570492' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/3888051727950570492'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/3888051727950570492'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2008/03/we-use-teamworks-technology-for-all-our.html' title='We use Teamwork&apos;s technology for all our services'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_5i3h1CugZXo/R_JBAec3ulI/AAAAAAAAAKY/xyJqxoVl5hU/s72-c/dogFood.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-403111463503352436</id><published>2008-04-03T10:25:00.003+02:00</published><updated>2008-12-13T01:09:38.256+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='teamwork review'/><title type='text'>Teamwork review on Serbian PC World!</title><content type='html'>&lt;a href="http://www.mikro.co.yu/ser/casopis/tekst.php?id=7631"&gt;&lt;img id="BLOGGER_PHOTO_ID_5184935225699318418" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://3.bp.blogspot.com/_5i3h1CugZXo/R_SXHec3upI/AAAAAAAAAK4/qt_fWp1MUOo/s400/screen_0003.jpg" border="0" /&gt;&lt;/a&gt; Well, we fortunately had a friend that translated it to us...&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Here is the link:&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.mikro.co.yu/ser/casopis/tekst.php?id=7631"&gt;http://www.mikro.co.yu/ser/casopis/tekst.php?id=7631&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-403111463503352436?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/403111463503352436/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=403111463503352436' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/403111463503352436'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/403111463503352436'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2008/04/teamwork-review-on-serbian-pc-world.html' title='Teamwork review on Serbian PC World!'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_5i3h1CugZXo/R_SXHec3upI/AAAAAAAAAK4/qt_fWp1MUOo/s72-c/screen_0003.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-2146697823518990896</id><published>2008-03-31T21:54:00.020+02:00</published><updated>2008-12-13T01:09:38.428+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='agile project management'/><category scheme='http://www.blogger.com/atom/ns#' term='project management 2.0'/><title type='text'>"Project management 2.0": keep projects simple, but NOT the software</title><content type='html'>&lt;span lang="EN-US"&gt;Here are some reflections that came to my mind reading various posts on "project management 2.0", somehow inspired by the "web 2.0" hype, for example:&lt;/span&gt;&lt;br /&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://flickr.com/photos/stabilo-boss/sets/72057594060779001/"&gt;&lt;img id="BLOGGER_PHOTO_ID_5184193227149261378" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://4.bp.blogspot.com/_5i3h1CugZXo/R_H0Rec3ukI/AAAAAAAAAKQ/-aFDOHBa3Pk/s400/88953806_8d0697926f_b.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;div id="__ss_67080" style="WIDTH: 425px; TEXT-ALIGN: left"&gt;&lt;object style="MARGIN: 0px" height="355" width="425"&gt;&lt;param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=social-project-management4952"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=social-project-management4952" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="FONT-SIZE: 11px; PADDING-TOP: 2px; FONT-FAMILY: tahoma,arial; HEIGHT: 26px"&gt;&lt;a href="http://www.slideshare.net/?src=embed"&gt;&lt;img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; MARGIN-BOTTOM: -5px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" alt="SlideShare" src="http://static.slideshare.net/swf/logo_embd.png" /&gt;&lt;/a&gt; &lt;a title="View 'Social Project Management' on SlideShare" href="http://www.slideshare.net/leisa/social-project-management?src=embed"&gt;View&lt;/a&gt; &lt;a href="http://www.slideshare.net/upload?src=embed"&gt;Upload your own&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;And some other links:&lt;br /&gt;&lt;a href="http://pm-blog.com/"&gt;http://pm-blog.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://pm-blog.com/2008/03/16/basecamp-projektmanagement-20/"&gt;http://pm-blog.com/2008/03/16/basecamp-projektmanagement-20/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;Some reflections&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;span lang="EN-US"&gt;Just imagine the dictatorial project manager, lone with his ugly and hugely complex MS project file, that is imposing work to all his slaves; he has a huge salary, and his employees/slaves are kept in the most economical working conditions, with strictly the most limited information access compatible with their doing their assigned job. &lt;span style="font-size:0;"&gt;&lt;/span&gt;The &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Gantt&lt;/span&gt; chart gets printed, with hundreds of tiny unreadable lanes, all sort of dependencies, attached somewhere on the wall, and totally ignored.&lt;?xml:namespace prefix = o /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span lang="EN-US"&gt;It is a diffused knowledge in software development, and by now not only there, that this kind of &lt;i&gt;a-&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;priori&lt;/span&gt; top-down centralized management&lt;/i&gt; most of the times leads to great failures.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;There have been all kinds of reaction to this situation: agile methodologies, good working conditions, unlimited access to information, distributed planning and work logging application, dynamic “&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;runtime&lt;/span&gt;” work reporting tools that allow real time planning evaluation and reaction.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;There is one conclusion to be drawn: software-aided work management &lt;span style="font-size:0;"&gt;&lt;/span&gt;owes its occasional success mostly due to team continuous adoption of the software tools, instead of the a-&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;priori&lt;/span&gt; drawing of a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;Gantt&lt;/span&gt; chart.&lt;/span&gt; &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;Adoption is possible if all is done to facilitate it: it should allow very simple data insertion, it should not force data duplication, it should be all done “in one place” whenever possible, it should present the most relevant information without making the user “chase” it.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;Now anyone who has even little real experience in software-aided project management, is aware that work management is &lt;i&gt;never&lt;/i&gt; simple, and things most of the time turn out to be more complex than planned.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;The same happens when you start to use a software: if you remember the wonder sensation when you first started using Excel (I do), how naturally it did make data fit in its simple model. And would you ever have imagined that all the export, import, calculation, graphs and all those other functionalities would have been so useful? That you, not just an imaginary user, would have used them so many times? The fact is that good software must be provided in advance of cover for many, many, many &lt;strong&gt;limit case uses&lt;/strong&gt;; this is something that the current Web 2.0 discussion is ignoring. And should provide also some easy way to expand functionality. "Keeping project trees simple" does not at all imply that you need a powerless software to manage work. Even small groups’ work quickly gets &lt;strong&gt;complex&lt;/strong&gt;, and involves issues, documents, a shared agenda, meetings, and you won’t be able to make sense of this by using a hundred different, separate, immature social web based solutions.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;Let’s consider security problems for even a medium-small company, say with a hundred employees. I bet that no one can find a single example of such a company where everyone can see all the information floating in the company in the IT structure. But more: there will always be local exceptions to a simple role-based security model, because there will always turn up a particular project that has its own security: its limit cases are the killers, and you need powerful software to cover those.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;Another typically ignored fact that makes the discussion about Web 2.0 a bit ethereal is that today software does not get adopted in a void, in particular if we are considering business oriented software. So a “deeply intimate” software choice like that of a project management application must consider how will such software interact &lt;strong&gt;with existing one&lt;/strong&gt;, like the old AS-400 accounting application, how will it comply with data privacy and so on. Using a closed box online &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;webapp&lt;/span&gt; is simply not a solution for most cases.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;Microsoft Project, but also "web 2.0 project managent", are deeply incompatible with all the above considerations. Project management 2.0 concerns the methodology, and also the software, but nothing of the sort of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;"web 2.0 project managent" &lt;/span&gt;can be the answer.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;Our Teamwork is structurally compatible with the above, though certainly not perfect from the point of view of fast access of information: but this improving this is the target of coming releases. Maybe it will not be the killer app, but at least we start from realistic considerations.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;Traditionally large companies got their work and project management software as a custom solution. What hasn't been realized by both developers and reviewers is that there is no difference in needs that a custom and not custom solution must satisfy. And the difference in IT needs between large and small companies is getting thinner; but the solution is to bring the qualities of a custom solution of a &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_9"&gt;shrink&lt;/span&gt;-wrapped one, and not the other way round!&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;Some of the things one can do with a locally installable version and not with a “Web 2.0 online service”: install it on https, integrate it with a single sign-on service, integrate it with application server authentication, connect it with custom file server services (like FTP), integrate it with &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;versioning&lt;/span&gt; servers (like &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;SVN&lt;/span&gt;), integrate it with &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;LDAP&lt;/span&gt;, various synchronization services at database level, integrate with job scheduling services, … &lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-2146697823518990896?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/2146697823518990896/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=2146697823518990896' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/2146697823518990896'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/2146697823518990896'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2008/03/keep-projects-simple-but-not-software.html' title='&quot;Project management 2.0&quot;: keep projects simple, but NOT the software'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_5i3h1CugZXo/R_H0Rec3ukI/AAAAAAAAAKQ/-aFDOHBa3Pk/s72-c/88953806_8d0697926f_b.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-5199426563711454201</id><published>2008-03-19T12:16:00.008+01:00</published><updated>2008-12-13T01:09:38.585+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='useless project management software'/><title type='text'>Paper is better than superficial software solutions</title><content type='html'>&lt;a href="http://flickr.com/photos/teo/66712296/"&gt;&lt;img id="BLOGGER_PHOTO_ID_5179412553386925570" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://4.bp.blogspot.com/_5i3h1CugZXo/R-D4Ro3TngI/AAAAAAAAAKA/lhugD-6SQaE/s400/clips.jpg" border="0" /&gt;&lt;/a&gt;In this very nice post, &lt;a href="http://www.43folders.com/2004/09/03/introducing-the-hipster-pda"&gt;Introducing the Hipster &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;PDA&lt;/span&gt;&lt;/a&gt;, a good point is made about how practical software-free, paper management can be.&lt;br /&gt;&lt;br /&gt;In case you want extend beyond the reach of personal management, you may start using cards in full glory:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://flickr.com/photos/jazzmasterson/sets/48077/"&gt;Getting Things Done with Index Cards&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/jazzmasterson/sets/873461/"&gt;Getting Things Done With Index Cards 2.0&lt;/a&gt;&lt;br /&gt;&lt;p&gt;I think that the pictures actually start seeding some doubt that all this paper will end up in a great mess. It's not in serious doubt the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;usefulness&lt;/span&gt; of software for project management in the case of work of more than two people, &lt;strong&gt;&lt;span style="font-size:180%;"&gt;if&lt;/span&gt;&lt;/strong&gt; the software can deal with the matter at hand, and in particular with &lt;strong&gt;&lt;a href="http://twproject.blogspot.com/2006/09/teamwork-feedback-and-competitors.html"&gt;limit cases&lt;/a&gt;&lt;/strong&gt;. &lt;/p&gt;&lt;p&gt;My "laws for the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;usefulness&lt;/span&gt; of project management software" are:&lt;br /&gt;- work management software is useful only in a complex work management situation&lt;br /&gt;- work gets complex much faster than any prediction you make (this last is clearly inspired by Murphy's laws)&lt;/p&gt;And my (ad ad ad - beware) is that Teamwork is one of the few that can deal with the complexity of the matter at hand...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-5199426563711454201?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/5199426563711454201/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=5199426563711454201' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/5199426563711454201'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/5199426563711454201'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2008/03/paper-is-better-than-superficial.html' title='Paper is better than superficial software solutions'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_5i3h1CugZXo/R-D4Ro3TngI/AAAAAAAAAKA/lhugD-6SQaE/s72-c/clips.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-1480230034935553914</id><published>2008-03-13T18:28:00.011+01:00</published><updated>2008-12-13T01:09:39.037+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='scrum practical tools'/><title type='text'>Scrum and re-scheduling</title><content type='html'>&lt;div align="justify"&gt;&lt;a href="http://2.bp.blogspot.com/_5i3h1CugZXo/R9qsho3TnbI/AAAAAAAAAJA/U1EfsZ7rhFs/s1600-h/screen_0019.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5177640415520857522" style="margin: 0px 10px 10px 0px; float: left;" alt="" src="http://2.bp.blogspot.com/_5i3h1CugZXo/R9qsho3TnbI/AAAAAAAAAJA/U1EfsZ7rhFs/s400/screen_0019.jpg" border="0" /&gt;&lt;/a&gt; A smart &lt;span style="font-weight: bold;"&gt;Scrum team leader&lt;/span&gt; that is using Teamwork (yes - there is such a thing - smart and using Teamwork) pointed us a practical point: suppose that you are a developer and are assigned a set of issues, on which you do your development and record development time spent. You did with the team the initial evaluation of needed development time, and suppose for a particular issue you decided to put 10 hours.&lt;br /&gt;Now you recorded time elapsed, but as happens all the time in life, you have to reschedule some of the issues. Now the users remarked that it is quite cumbersome to reason on the base of estimated duration - &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;worklog&lt;/span&gt; done, because all you are actually focused on is &lt;em&gt;&lt;span style="font-weight: bold;"&gt;time remaining&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_5i3h1CugZXo/R9quKI3TneI/AAAAAAAAAJY/g5Okt7VCoxg/s1600-h/screen_0021.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5177642210817187298" style="margin: 0px 10px 10px 0px; float: left;" alt="" src="http://4.bp.blogspot.com/_5i3h1CugZXo/R9quKI3TneI/AAAAAAAAAJY/g5Okt7VCoxg/s400/screen_0021.jpg" border="0" /&gt;&lt;/a&gt;So.. here is the change: by clicking on &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;worklog&lt;/span&gt; done, a time remaining panel appears, and its editable right there.&lt;br /&gt;&lt;br /&gt;This little practical change, can make a difference; think when you have planned 34 hours, and have done 27:30, how many to go, will it suffice.. I don't want spend time on &lt;em&gt;that&lt;/em&gt;.&lt;br /&gt;This improvement will be included in forthcoming 3.2.4 release.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;We are happy that more and more people integrate their software development management with Teamwork, its a sign that a too-narrow view of software management (only issue-track, with hundreds of floating numeric fields.. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;aaargh&lt;/span&gt;) is not the right way, and at the same time, that a too simplistic view of work management software can't work; so you need Teamwork, which is darn hard, but gets it done in the end, the way you want it. Love your feedback!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-1480230034935553914?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/1480230034935553914/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=1480230034935553914' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/1480230034935553914'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/1480230034935553914'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2008/03/scrum-and-re-scheduling.html' title='Scrum and re-scheduling'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_5i3h1CugZXo/R9qsho3TnbI/AAAAAAAAAJA/U1EfsZ7rhFs/s72-c/screen_0019.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-3545629731610028691</id><published>2008-03-04T14:21:00.000+01:00</published><updated>2008-12-13T01:09:39.253+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software sales graph'/><title type='text'>Teamwork sales cartogram</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_5i3h1CugZXo/R81NScDzQnI/AAAAAAAAAIU/ELaUEWBC_Ao/s1600-h/000276.carto.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_5i3h1CugZXo/R81NScDzQnI/AAAAAAAAAIU/ELaUEWBC_Ao/s400/000276.carto.jpg" alt="" id="BLOGGER_PHOTO_ID_5173876526083687026" border="0" /&gt;&lt;/a&gt;To celebrate our all-time best sales month, February 2008, we created a cartogram of our sales-by-month.&lt;br /&gt;&lt;br /&gt;Above the sales are just by darker greens, below also the surface is proportional to sales: it's a &lt;b&gt;cartogram&lt;/b&gt;, i.e. a map &lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;in which area is not preserved.&lt;br /&gt;&lt;br /&gt;The algorithm used is by Gastner and Newman's, and the software to generate it is (an adaptation of)  &lt;a href="http://people.cas.sc.edu/hardistf/cartograms/"&gt;cartogram generator&lt;/a&gt; output.&lt;br /&gt;&lt;br /&gt;We hope to get a lot of transformations from here on!&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-3545629731610028691?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/3545629731610028691/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=3545629731610028691' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/3545629731610028691'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/3545629731610028691'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2008/03/teamwork-sales-cartogram.html' title='Teamwork sales cartogram'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_5i3h1CugZXo/R81NScDzQnI/AAAAAAAAAIU/ELaUEWBC_Ao/s72-c/000276.carto.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-1129593819454386684</id><published>2008-02-18T15:14:00.000+01:00</published><updated>2008-02-18T15:19:59.648+01:00</updated><title type='text'>Monitoring project costs</title><content type='html'>Open Lab has been using Teamwork since 2002. Today our production manager comes to us (the Teamwork's development group) and she tells us "with the accounting guys we verified the 2007 budgets and project costs with Teamwork, and it worked like a charm". Now there was a distinctive &lt;em&gt;surprised &lt;/em&gt;tone in her voice, which we surely didn't appreciate. We just grunted some noise, and went back to coding.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-1129593819454386684?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/1129593819454386684/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=1129593819454386684' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/1129593819454386684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/1129593819454386684'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2008/02/monitoring-project-costs.html' title='Monitoring project costs'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-426360879682573293</id><published>2008-02-10T14:09:00.000+01:00</published><updated>2008-02-16T14:02:08.646+01:00</updated><title type='text'>Teamwork as a Java web development platform</title><content type='html'>&lt;div align="justify"&gt;Teamwork's development platform is gradually widening its adoption. Built over Hibernate, we always believed that what a platform must provide is tools for the user interface, instead of focusing on the business logic. For the latter, we have the relational model, which enriched with the object model provides simple tools to get a good solution.&lt;br /&gt;&lt;br /&gt;This is in contrast with the Java "server-side" tradition, where the focus is on the business logic; then for the interface the most wildly un-maintenable and rigid frameworks have been proposed. Over-use of local &lt;a href="http://en.wikipedia.org/wiki/Model-view-controller"&gt;MVC&lt;/a&gt; has made code unmaintanable: in such frameworks a button's behaviour cannot be determined from the code "local to the button", which is a smart way for torturing the developer. So then developers over-react, leaving Java and going to over-simplified languages-plus-frameworks, like Ruby-on-rails.&lt;br /&gt;&lt;br /&gt;Teamwork's framework minimizes complexity and configuration, greatly increasing productivity, still remaining compatible with complex object-relational requirements and enterprise needs. We've seen teams develop complete CRM applications in a couple of months.&lt;br /&gt;&lt;span style="font-size:78%;"&gt;Pietro Polsinelli&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-426360879682573293?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/426360879682573293/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=426360879682573293' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/426360879682573293'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/426360879682573293'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2008/02/teamwork-as-java-web-development.html' title='Teamwork as a Java web development platform'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-2936650091474480886</id><published>2008-02-07T11:31:00.000+01:00</published><updated>2008-02-16T14:01:42.250+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='real project management'/><title type='text'>You can’t be serious, man</title><content type='html'>&lt;div style="float: left; padding-right: 20px;"&gt;&lt;object height="373" width="325"&gt;&lt;param name="movie" value="http://www.youtube.com/v/YxAPKtOe0fQ&amp;amp;rel=0&amp;amp;color1=0x5d1719&amp;amp;color2=0xcd311b&amp;amp;border=1"&gt;&lt;param name="wmode" value="transparent"&gt;&lt;embed src="http://www.youtube.com/v/YxAPKtOe0fQ&amp;amp;rel=0&amp;amp;color1=0x5d1719&amp;amp;color2=0xcd311b&amp;amp;border=1" type="application/x-shockwave-flash" wmode="transparent" height="373" width="325"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;/div&gt;I remember summers when I was a child in England, watching McEnroe on TV. So when I see the project management solutions people consider, it just comes to my mind; “You can’t be serious, man!”. I mean, it’s incredible what commercials get to sell to customers. Some companies really believe that they can have projects and work data &lt;em&gt;on a third party on-line service&lt;/em&gt;? I mean, a company with more than two people can take that? And you can accept not to have such data on &lt;em&gt;your database&lt;/em&gt;? I mean, no access but through that closed-source web based software? Online services and software houses come and go. You also should have some familiar way to talk and question such data. Add pages, reports, whatever to the application. I mean, we are not talking about an mp3 player, which just has to play mp3s (and even there, you may want more); its your company's data!&lt;br /&gt;&lt;br /&gt;You really believe that issue-tracking is all you need for managing software development? Nowhere today software is made only by developers.&lt;br /&gt;&lt;br /&gt;I understand that our competitors have stronger marketing means. But believing such stuff.. you can’t be serious, man!&lt;br /&gt;&lt;span style="font-size:78%;"&gt;Pietro Polsinelli&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;P.S. &lt;/span&gt;A friend remarked: "In your line, to be serious you'd need a custom solution!". Well, yes: what we try to supply with Teamwork is as close as possible to a custom solution, at the price of a schrink-wrapped one...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-2936650091474480886?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/2936650091474480886/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=2936650091474480886' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/2936650091474480886'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/2936650091474480886'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2008/02/you-cant-be-serious-man.html' title='You can’t be serious, man'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-5211472925683238637</id><published>2008-02-04T14:23:00.000+01:00</published><updated>2008-02-06T11:30:13.850+01:00</updated><title type='text'>Teamwork in Sweden</title><content type='html'>&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;iframe marginwidth="0" marginheight="0" src="http://maps.google.com/maps?f=q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=malmo&amp;amp;ie=UTF8&amp;amp;t=h&amp;amp;om=0&amp;amp;s=AARTsJqjy7bNXCiXN470whcQviZmplL8uA&amp;amp;ll=57.088515,14.084473&amp;amp;spn=7.169652,13.183594&amp;amp;z=5&amp;amp;output=embed" frameborder="0" width="300" scrolling="no" height="400"&gt;&lt;/iframe&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;p align="justify"&gt;Teamwork is popular in Sweden. Roberto and myself also just been there to do some integration development, and it was a very nice experience: we worked with a team 50% Swedish, 50% Pakistan and Indian, and they seem to make a nice group. &lt;/p&gt;&lt;p align="justify"&gt;We mapped the default task structure and their ISO certification roles in Teamwork, seeing how this can be used in Scrum sprints. We created an additional web part "your responsibilities", to evidence the ISO roles, and improved the "my issues" one, for issue-based developers.&lt;/p&gt;&lt;p align="justify"&gt;Many friendly features forthcoming in 3.2.3 release!&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p align="justify"&gt;&lt;br /&gt;Pietro Polsinelli &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-5211472925683238637?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/5211472925683238637/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=5211472925683238637' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/5211472925683238637'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/5211472925683238637'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2008/02/teamwork-in-sweden.html' title='Teamwork in Sweden'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-1972820068318842775</id><published>2008-02-02T11:03:00.000+01:00</published><updated>2008-12-13T01:09:39.334+01:00</updated><title type='text'>Several Java developer positions open in Florence, Italy</title><content type='html'>&lt;img id="BLOGGER_PHOTO_ID_5163127415206902210" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://1.bp.blogspot.com/_5i3h1CugZXo/R6cdB1l8-cI/AAAAAAAAAIM/7QYrtVXUr4c/s400/000394_hiring.jpg" border="0" /&gt;Due to our expanding market, in Open Lab there are the following open positions:&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;- Two Java web developers. Proficiency in Java, knowledge of web protocols, HTML, JavaScript required.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;- One Natural Language Parsing (NLP) developer; required proficiency in Java.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;- One Project Manager position, supervising several customization projects; proficiency in Java and some seniority required.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;More detailed information can be obtained by writing or calling us; please send résumés and info requests to &lt;a href="mailto:info@open-lab.com"&gt;info@open-lab.com&lt;/a&gt; .&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-1972820068318842775?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/1972820068318842775/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=1972820068318842775' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/1972820068318842775'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/1972820068318842775'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2008/01/two-java-web-developer-positions-open.html' title='Several Java developer positions open in Florence, Italy'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_5i3h1CugZXo/R6cdB1l8-cI/AAAAAAAAAIM/7QYrtVXUr4c/s72-c/000394_hiring.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-4876084006415312488</id><published>2008-01-17T21:13:00.000+01:00</published><updated>2008-12-13T01:09:39.756+01:00</updated><title type='text'>Recurring rumours about the identity of mobbed and mobber</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_5i3h1CugZXo/R4-38x7HZWI/AAAAAAAAAHY/eRm8MxlHBsM/s1600-h/Cattura.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_5i3h1CugZXo/R4-38x7HZWI/AAAAAAAAAHY/eRm8MxlHBsM/s400/Cattura.JPG" alt="" id="BLOGGER_PHOTO_ID_5156542353183827298" border="0" /&gt;&lt;/a&gt;There are recurring rumours about the authors of &lt;a href="http://mostmobbed.blogspot.com/"&gt;this blog&lt;/a&gt; to be Teamwork's staff members.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-4876084006415312488?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/4876084006415312488/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=4876084006415312488' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/4876084006415312488'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/4876084006415312488'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2008/01/recurring-voices-about-identity-of.html' title='Recurring rumours about the identity of mobbed and mobber'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_5i3h1CugZXo/R4-38x7HZWI/AAAAAAAAAHY/eRm8MxlHBsM/s72-c/Cattura.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-8946064244235750024</id><published>2008-01-15T13:11:00.001+01:00</published><updated>2008-12-13T01:09:40.011+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hibernate full-text search'/><title type='text'>Our article on Mokabyte: Hibernate full-text searches</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_5i3h1CugZXo/R4yj4h7HZVI/AAAAAAAAAHQ/XACeBvyxz8w/s1600-h/screen_0002.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_5i3h1CugZXo/R4yj4h7HZVI/AAAAAAAAAHQ/XACeBvyxz8w/s400/screen_0002.jpg" alt="" id="BLOGGER_PHOTO_ID_5155675865006695762" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;We just published an article in Italian on &lt;a href="http://www2.mokabyte.it/cms/article.run?articleId=J6Q-LN4-GBJ-8O7_7f000001_14191084_77ca6712"&gt;Mokabyte&lt;/a&gt; on full-text searches with Hibernate Search. Thanks as usual to our  friend  &lt;a href="http://albertobrandolini.wikidot.com/"&gt;Alberto Brandolini &lt;/a&gt; for help and encouragement.&lt;br /&gt;&lt;span style="font-size:78%;"&gt;Roberto Bicchierai and Pietro Polsinelli&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-8946064244235750024?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/8946064244235750024/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=8946064244235750024' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/8946064244235750024'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/8946064244235750024'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2008/01/our-article-on-mokabyte.html' title='Our article on Mokabyte: Hibernate full-text searches'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_5i3h1CugZXo/R4yj4h7HZVI/AAAAAAAAAHQ/XACeBvyxz8w/s72-c/screen_0002.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-6085601932706020038</id><published>2008-01-03T11:59:00.000+01:00</published><updated>2008-12-13T01:09:40.168+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='export import data'/><category scheme='http://www.blogger.com/atom/ns#' term='hibernate clone'/><title type='text'>Relocating Teamwork data</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_5i3h1CugZXo/R3zAXh7HZUI/AAAAAAAAAHI/pBmc7NFiUIY/s1600-h/relocBig.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_5i3h1CugZXo/R3zAXh7HZUI/AAAAAAAAAHI/pBmc7NFiUIY/s400/relocBig.jpg" alt="" id="BLOGGER_PHOTO_ID_5151203584280847682" border="0" /&gt;&lt;/a&gt;We are buiding a new powerful functionality: in Teamwork it will be possible to export all or some area's data to a zipped archive, and to import it in another Teamwork instance, just through the web interface. For example, this will allow to move data from online to a local installation; to move data from one database to another, to have a backup etc. .&lt;br /&gt;&lt;br /&gt;Technically, we'll do it as follows: you need a Hibernate Factory clone, on its own dialect/connection, but with the same persistent entities, which will loop through the persisted instances, saving them in a temporary Hsqldb instance, and ten zip the resulting script. Vice-versa for the import.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-6085601932706020038?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/6085601932706020038/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=6085601932706020038' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/6085601932706020038'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/6085601932706020038'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2008/01/relocating-teamwork-data.html' title='Relocating Teamwork data'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_5i3h1CugZXo/R3zAXh7HZUI/AAAAAAAAAHI/pBmc7NFiUIY/s72-c/relocBig.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-1780484015695947787</id><published>2007-12-27T19:53:00.000+01:00</published><updated>2007-12-27T20:09:07.122+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='user interfaces for developers'/><title type='text'>Christmas greetings</title><content type='html'>&lt;table&gt;&lt;tr&gt;&lt;td style="border:1px solid #E5E5E5"&gt;&lt;embed src="http://www.open-lab.com/applications/webwork/site_ol/media/email/snowflake.swf" scale="noborder" bgcolor="#ffffff" name="insideMovie" play="true" loop="false" wmode="transparent" quality="high" allowscriptaccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" align="left" height="274" width="414"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;/td&gt;&lt;td valign="top"&gt;Our graphical department realized this Christmas greetings animation.&lt;br /&gt;&lt;br /&gt;At the same time they launched a new graphical and design service and website: &lt;a href="http://www.morethanicons.com/"&gt;MoreThanIcons&lt;/a&gt;. Good luck to them!&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-1780484015695947787?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/1780484015695947787/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=1780484015695947787' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/1780484015695947787'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/1780484015695947787'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2007/12/christmas-greetings.html' title='Christmas greetings'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-8199084110657238750</id><published>2007-12-19T14:28:00.000+01:00</published><updated>2008-12-13T01:09:40.311+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='full text search'/><category scheme='http://www.blogger.com/atom/ns#' term='web services'/><category scheme='http://www.blogger.com/atom/ns#' term='ldap'/><category scheme='http://www.blogger.com/atom/ns#' term='ranking'/><title type='text'>The evolution of Teamwork 3 - 4</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_5i3h1CugZXo/R2k--h7HZTI/AAAAAAAAAHA/sYFIK8bf84I/s1600-h/robot.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5145713293226632498" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://1.bp.blogspot.com/_5i3h1CugZXo/R2k--h7HZTI/AAAAAAAAAHA/sYFIK8bf84I/s400/robot.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;What will be produced for the next releases? We are currently developing several features to enrich further 3 and eventually 4 releases of capabilities which will extend Teamwork user friendliness and integrability.&lt;br /&gt;&lt;br /&gt;Some examples of user friendliness:&lt;br /&gt;&lt;br /&gt;- full text searches, and a fast search unified interface&lt;br /&gt;&lt;br /&gt;- ranking of all actions done, hence availability of new web parts for "popular" objects &lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;All this goes in the direction of making the application smarter about what you want to see and do first. In this perspective, we are also doing first experiments for building a new client, which will have limited but extremely intuitive functionality - more on this in future posts.&lt;br /&gt;&lt;br /&gt;Integrability:&lt;br /&gt;&lt;br /&gt;- all objects available as web services, allowing data &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;mashups&lt;/span&gt;, custom clients etc.&lt;br /&gt;&lt;br /&gt;- &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;LDAP&lt;/span&gt; import/export&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-8199084110657238750?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/8199084110657238750/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=8199084110657238750' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/8199084110657238750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/8199084110657238750'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2007/12/evolution-of-teamwork-3-4.html' title='The evolution of Teamwork 3 - 4'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_5i3h1CugZXo/R2k--h7HZTI/AAAAAAAAAHA/sYFIK8bf84I/s72-c/robot.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-7032846062945036420</id><published>2007-11-14T12:50:00.001+01:00</published><updated>2007-11-17T11:44:21.281+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hibernate search lucene indexing advanced'/><title type='text'>Using Hibernate Search with complex requirements</title><content type='html'>&lt;span style="font-style: italic;"&gt;Authors:&lt;/span&gt;&lt;br /&gt;Roberto Bicchierai (e-mail: rbicchierai@open-lab.com)&lt;br /&gt;Pietro Polsinelli (e-mail: ppolsinelli@open-lab.com)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Introduction&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;We’ll suppose here that you have your Java web application, persisted on Hibernate, and you want to enable full-text searches.&lt;br /&gt;&lt;br /&gt;Your main aim is to have a single search page which will find stuff wherever it is in your application, whether it is on persisted objects fields, "long" text fields (clobs), attached documents (blobs), uploaded files (say on the file system).&lt;br /&gt;&lt;br /&gt;Adding Hibernate Search to your toolset will probably directly meet most of your requirements, but for more refined requirements and flexibility, you may need to add some functionality; here you will find some inspiration and tricks to build your solution.&lt;br /&gt;&lt;br /&gt;In the following we assume some familiarity with basic indexing and Lucene concepts, such as can be gained from the excellent “Lucene in Action” book (see References).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Problem set&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You start with (hopefully, a subset) of this problem set:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1.    Simplicity.&lt;/span&gt; Want to keep maintainable code: hence you want to keep persistence and indexing configuration "in the same place"&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2.    Lob fields.&lt;/span&gt; Have fields on objects which may be clob/blob type, or link to files on the file system&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3.    Multi documents. &lt;/span&gt;Have objects of type "document", which themselves may have attachments, which have a lifecycle contained in main objects, and you want to search on them, but find the main objects as referrals: e.g. task/documents.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;4.    Languages.&lt;/span&gt; You have to index data in different languages. This is not a remote case; for example, in all countries of the European Union (excluding UK and Eire), you will have at least data and documents in the country’s own language and in English.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;5.    Document formats.&lt;/span&gt; You have documents in various formats:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;6.    Paging.&lt;/span&gt; You want to present paginated results&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;7.    Security.&lt;/span&gt; As in all cases of full-text search, you may have problems concerning security&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Solutions&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In considering these solutions, keep in mind that Hibernate Search is a very flexible framework: so the solutions we propose here are just one way to do it among many.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;1. Simplicity.&lt;/span&gt; Wanting to keep maintainable code, hence keeping persistence and indexing configuration "in the same place" is a way of describing Hibernate Search.&lt;br /&gt;&lt;br /&gt;One of the nice effects of using Hibernate Search, is that when you delete a persistent object, the Lucene index is also updated and all documents referring to the entity are removed too.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;2. Lob fields. &lt;/span&gt;A solution perfectly in line with Hibernate Search is provided by our wiki contribution here:&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://www.hibernate.org/432.html"&gt;http://www.hibernate.org/432.html&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;3. Multi documents. &lt;/span&gt;Here we introduce an original solution: a very simple scheduled job which handles a queue of documents, modeled by the class DataForLucene, to be indexed asynchronously. This approach gives you more flexibility, allowing to freely manage the number of Lucene documents associated to the same entity, and how and what gets in the index.&lt;br /&gt;&lt;br /&gt;Here is the DataForLucene class:&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);font-size:78%;" &gt;&lt;br /&gt;/**&lt;br /&gt;* Written by&lt;br /&gt;* Roberto Bicchierai rbicchierai@open-lab.com&lt;br /&gt;* Pietro Polsinelli ppolsinelli@open-lab.com&lt;br /&gt;* for the Teamwork Project Management application - http://www.twproject.com&lt;br /&gt;*/&lt;br /&gt;public class DataForLucene {&lt;br /&gt;&lt;br /&gt;public Serializable id;&lt;br /&gt;public Class clazz;&lt;br /&gt;public Serializable areaid;&lt;br /&gt;public PersistentFile pf;&lt;br /&gt;public long expiry;&lt;br /&gt;&lt;br /&gt;public void indexMe() {&lt;br /&gt;&lt;br /&gt; PersistenceContext pc = null;&lt;br /&gt; IndexWriter w = null;&lt;br /&gt; try {&lt;br /&gt;&lt;br /&gt;   pc = HibernateFactory.newFreeSession();&lt;br /&gt;&lt;br /&gt;   FullTextSession fullTextSession = Search.createFullTextSession(pc.session);&lt;br /&gt;   SearchFactory searchFactory = fullTextSession.getSearchFactory();&lt;br /&gt;&lt;br /&gt;   clazz = (Class) Class.forName(PersistenceHome.deProxy(clazz.getName()));&lt;br /&gt;   DirectoryProvider[] provider = searchFactory.getDirectoryProviders(clazz);&lt;br /&gt;   org.apache.lucene.store.Directory directory = provider[0].getDirectory();&lt;br /&gt;   String content = TextExtractor.getContent(pf, pc);&lt;br /&gt;   String guessedLanguage = IndexingBricks.guess(content);&lt;br /&gt;&lt;br /&gt;   w = new IndexWriter(directory, true, new SnowballAnalyzer(IndexingBricks.stemmerFromLanguage(guessedLanguage)));&lt;br /&gt;&lt;br /&gt;   String abstractOfContent = JSP.limWr(content, 5000);&lt;br /&gt;&lt;br /&gt;   Document doc = new Document();&lt;br /&gt;&lt;br /&gt;   Field classField =&lt;br /&gt;           new Field(&lt;br /&gt;                   DocumentBuilder.CLASS_FIELDNAME,&lt;br /&gt;                   clazz.getName(),&lt;br /&gt;                   Field.Store.YES,&lt;br /&gt;                   Field.Index.UN_TOKENIZED);&lt;br /&gt;   doc.add(classField);&lt;br /&gt;&lt;br /&gt;   Field docidField =&lt;br /&gt;           new Field(&lt;br /&gt;                   "id",&lt;br /&gt;                   id.toString(),&lt;br /&gt;                   Field.Store.YES,&lt;br /&gt;                   Field.Index.UN_TOKENIZED);&lt;br /&gt;   doc.add(docidField);&lt;br /&gt;&lt;br /&gt;   Field contentField =&lt;br /&gt;           new Field(&lt;br /&gt;                   "content",&lt;br /&gt;                   content,&lt;br /&gt;                   Field.Store.NO,&lt;br /&gt;                   Field.Index.TOKENIZED);&lt;br /&gt;   doc.add(contentField);&lt;br /&gt;&lt;br /&gt;   Field absField =&lt;br /&gt;           new Field(&lt;br /&gt;                   "abstract",&lt;br /&gt;                   abstractOfContent,&lt;br /&gt;                   Field.Store.COMPRESS,&lt;br /&gt;                   Field.Index.UN_TOKENIZED);&lt;br /&gt;   doc.add(absField);&lt;br /&gt;&lt;br /&gt;   Field fullcontentField =&lt;br /&gt;           new Field(&lt;br /&gt;                   "fullcontent",&lt;br /&gt;                   content,&lt;br /&gt;                   Field.Store.NO,&lt;br /&gt;                   Field.Index.TOKENIZED);&lt;br /&gt;   doc.add(fullcontentField);&lt;br /&gt;&lt;br /&gt;   Field pfField =&lt;br /&gt;           new Field(&lt;br /&gt;                   "persistentFile",&lt;br /&gt;                   pf.serialize(),&lt;br /&gt;                   Field.Store.YES,&lt;br /&gt;                   Field.Index.UN_TOKENIZED);&lt;br /&gt;   doc.add(pfField);&lt;br /&gt;&lt;br /&gt;   Field areaId =&lt;br /&gt;           new Field(&lt;br /&gt;                   "area.id",&lt;br /&gt;                   "" + areaid,&lt;br /&gt;                   Field.Store.YES,&lt;br /&gt;                   Field.Index.UN_TOKENIZED);&lt;br /&gt;   doc.add(areaId);&lt;br /&gt;&lt;br /&gt;   Field language =&lt;br /&gt;           new Field(&lt;br /&gt;                   "language",&lt;br /&gt;                   guessedLanguage,&lt;br /&gt;                   Field.Store.YES,&lt;br /&gt;                   Field.Index.UN_TOKENIZED);&lt;br /&gt;   doc.add(language);&lt;br /&gt;&lt;br /&gt;   w.addDocument(doc);&lt;br /&gt;&lt;br /&gt; } catch (Throwable throwable) {&lt;br /&gt;   Tracer.platformLogger.error(throwable);&lt;br /&gt; } finally {&lt;br /&gt;   if (w != null)&lt;br /&gt;     try {&lt;br /&gt;       w.close();&lt;br /&gt;     } catch (IOException e) {&lt;br /&gt;       Tracer.platformLogger.error(e);&lt;br /&gt;     }&lt;br /&gt;   if (pc != null)&lt;br /&gt;     try {&lt;br /&gt;       pc.commitAndClose();&lt;br /&gt;     } catch (PersistenceException e) {&lt;br /&gt;       Tracer.platformLogger.error(e);&lt;br /&gt;     }&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public boolean equals(Object o) {&lt;br /&gt; return this.compareTo(o) == 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public int hashCode() {&lt;br /&gt; return (clazz.getName() + id).hashCode();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public int compareTo(Object o) {&lt;br /&gt; DataForLucene forLucene = ((DataForLucene) o);&lt;br /&gt; return (clazz.getName() + id + pf.serialize()).compareTo(forLucene.clazz.getName() + forLucene.id + forLucene.pf.serialize());&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Here is the simplest possible indexing machine implementation:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);font-size:78%;" &gt;/**&lt;br /&gt;* Written by&lt;br /&gt;* Roberto Bicchierai rbicchierai@open-lab.com&lt;br /&gt;* Pietro Polsinelli ppolsinelli@open-lab.com&lt;br /&gt;* for the Teamwork Project Management application - http://www.twproject.com&lt;br /&gt;*/&lt;br /&gt;public class IndexingMachine extends TimerTask {&lt;br /&gt;&lt;br /&gt;public static IndexingMachine machine = new IndexingMachine();&lt;br /&gt;public long tick = 10000;&lt;br /&gt;private boolean stopped = true;&lt;br /&gt;private boolean indexing = false;&lt;br /&gt;&lt;br /&gt;private static List&lt;dataforlucene&gt; toBeExecuteds = new ArrayList();&lt;br /&gt;&lt;br /&gt;private IndexingMachine() {&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public static void start() {&lt;br /&gt;&lt;br /&gt; machine.stopped = false;&lt;br /&gt;&lt;br /&gt; if (!machine.indexing) {&lt;br /&gt;   machine.run();&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public static void stop() {&lt;br /&gt; machine.stopped = true;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public void run() {&lt;br /&gt;&lt;br /&gt; if (toBeExecuteds.size() &gt; 0) {&lt;br /&gt;   DataForLucene ij = toBeExecuteds.get(0);&lt;br /&gt;   synchronized (toBeExecuteds) {&lt;br /&gt;     toBeExecuteds.remove(0);&lt;br /&gt;   }&lt;br /&gt;   indexing = true;&lt;br /&gt;   ij.indexMe();&lt;br /&gt;   indexing = false;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; if (toBeExecuteds.size() &gt; 0)&lt;br /&gt;   tick = 20;&lt;br /&gt; else&lt;br /&gt;   tick = 10000;&lt;br /&gt;&lt;br /&gt; if (!machine.stopped &amp;amp;&amp;amp; !machine.indexing) {&lt;br /&gt;   Timer t = new Timer(false);&lt;br /&gt;   machine = new IndexingMachine();&lt;br /&gt;   machine.stopped = false;&lt;br /&gt;   t.schedule(machine, tick);&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public static void addToBeIndexed(Identifiable i, Serializable areaId, PersistentFile pf) {&lt;br /&gt; DataForLucene ij = new DataForLucene();&lt;br /&gt; ij.clazz = i.getClass();&lt;br /&gt; ij.id = i.getId();&lt;br /&gt; ij.areaid = areaId;&lt;br /&gt; ij.pf = pf;&lt;br /&gt; if (!toBeExecuteds.contains(ij))&lt;br /&gt;   synchronized (toBeExecuteds) {&lt;br /&gt;     toBeExecuteds.add(ij);&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public static int getQueueSize() {&lt;br /&gt; return toBeExecuteds.size();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public static boolean isRunning() {&lt;br /&gt; return !machine.stopped;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public static boolean isIndexing() {&lt;br /&gt; return machine.indexing;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/dataforlucene&gt;&lt;/span&gt;&lt;br /&gt;&lt;dataforlucene&gt;Notice that in DataForLucene we must put references to the persistent entity in a way compatible with Hibernate Search indexing, so that for example on entity deletion you will get removal also of these documents. More generally, you need to have a uniform index structure to be able to query it.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;4. Languages.&lt;/span&gt; You need to know the language in which a document is written, in order to correctly index it; once you know the language, you can instantiate say the Snowball analyzer with the correct language stemmer.  To make a practical system, you will need to guess the documents language from its content.  We have found a very simple and effective solution, based on TCatNG, which is released under BSD, and. You actually need 10 classes (instead of 117 in the sources), only a subset of those directly in the package pt.tumba.ngram.&lt;br /&gt;In order to make a content “findable” also when searching from a language (say, German) a document in another language (say, English), we actually double indexed the content field, once with the nowball analyzer and once with the simple StopAnalyzer; so that if you are searching from German and you search “Telefunken”, which stemmed would be searched as “Telefunk”, will find also “Telefunken” in English documents ? .&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;5. Document formats.&lt;/span&gt; We provide a simple implementation of text extraction, inspired as always by a “keep it simple” philosophy, for which the Luis sources gave us some help. For a more mature (and complex) approach, check out the Nutch project.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);font-size:78%;" &gt;  private static String extractFromStream(String fileName, InputStream inputStream) throws Exception {&lt;br /&gt;&lt;br /&gt; StringWriter sw = new StringWriter();&lt;br /&gt; String content ="";&lt;br /&gt;&lt;br /&gt; if (fileName.endsWith(".pdf")) {&lt;br /&gt;   PDFTextStripper stripper = new PDFTextStripper();&lt;br /&gt;   PDDocument document = PDDocument.load(inputStream);&lt;br /&gt;   stripper.writeText(document, sw);&lt;br /&gt;   content = content + sw.getBuffer().toString();&lt;br /&gt;   document.close();&lt;br /&gt;&lt;br /&gt; } else if (fileName.endsWith(".doc")) {&lt;br /&gt;   WordExtractor we = new WordExtractor();&lt;br /&gt;   content = we.extractText(inputStream);&lt;br /&gt;&lt;br /&gt; } else if (fileName.endsWith(".htm") || fileName.endsWith(".html")) {&lt;br /&gt;   Node root = getDOMRoot(inputStream);&lt;br /&gt;   content = getTextContentOfDOM(root);&lt;br /&gt;&lt;br /&gt; } else if (fileName.endsWith(".ppt")) {&lt;br /&gt;   PPTIndexer reader = new PPTIndexer();&lt;br /&gt;   content = reader.getContent(inputStream);&lt;br /&gt;&lt;br /&gt; } else if (fileName.endsWith(".xls")) {&lt;br /&gt;   ExcelIndexer reader = new ExcelIndexer();&lt;br /&gt;   content = reader.getContent(inputStream);&lt;br /&gt;&lt;br /&gt; } else if (fileName.endsWith(".rtf")) {&lt;br /&gt;   DefaultStyledDocument sd = new DefaultStyledDocument();&lt;br /&gt;   RTFEditorKit kit = new RTFEditorKit();&lt;br /&gt;   kit.read(inputStream, sd, 0);&lt;br /&gt;   content = sd.getText(0, sd.getLength());&lt;br /&gt;&lt;br /&gt; } else if (fileName.endsWith(".zip") || fileName.endsWith(".war") || fileName.endsWith(".jar")) {&lt;br /&gt;   Set&lt;file&gt; files = Zipping.getZipContents(inputStream);&lt;br /&gt;   for (File file : files) {&lt;br /&gt;     FileInputStream fis = new FileInputStream(file);&lt;br /&gt;     content = content + extractFromStream(file.getName(),fis);&lt;br /&gt;     fis.close();&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt; } else if (fileName.endsWith(".txt") || fileName.endsWith(".log")) {&lt;br /&gt;   StringBuffer sb = new StringBuffer();&lt;br /&gt;   BufferedReader br = new BufferedReader(new InputStreamReader(inputStream));&lt;br /&gt;   String line;&lt;br /&gt;   while ((line = br.readLine()) != null) {&lt;br /&gt;     sb.append(line);&lt;br /&gt;     sb.append(" ");&lt;br /&gt;   }&lt;br /&gt;   content = sb.toString();&lt;br /&gt; }&lt;br /&gt; return content;&lt;br /&gt;}&lt;br /&gt;&lt;/file&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;/span&gt;&lt;file&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;6. Paging. &lt;/span&gt;For this, you can use out of the box our paging solution, as Hibernate Search results are usual Hibernate Pages: see&lt;br /&gt;&lt;br /&gt;&lt;/file&gt;&lt;/dataforlucene&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://www.hibernate.org/314.html"&gt;&lt;dataforlucene&gt;&lt;file&gt;http://www.hibernate.org/314.html&lt;/file&gt;&lt;/dataforlucene&gt;&lt;/a&gt;&lt;br /&gt;&lt;dataforlucene&gt;&lt;file&gt;&lt;/file&gt;&lt;/dataforlucene&gt;&lt;/div&gt;&lt;dataforlucene&gt;&lt;file&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;7 Security.&lt;/span&gt; For this, you may need to add data to the index: suppose you have am ASP based service, like our Teamwork. As a first rough approximation, you could save the ASP account to which the document belong: we did this by having the account (which we call area) as an  @IndexedEmbedded class, and doing the same on our DataForLucene.&lt;br /&gt;Hibernate Search supports the filter notion, but this seems a bit limited as it acts at a Lucene document level.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;References&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Lucene:&lt;br /&gt;&lt;a href="http://lucene.apache.org/"&gt;http://lucene.apache.org&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;Hibernate Search:&lt;br /&gt;&lt;a href="http://www.hibernate.org/410.html"&gt;http://www.hibernate.org/410.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Language guessing API, TCatNG :&lt;br /&gt;&lt;a href="http://tcatng.sourceforge.net/"&gt;http://tcatng.sourceforge.net&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Offline text extraction with Hibernate Search: our contribution on Hibernate’s Wiki:&lt;br /&gt;&lt;a href="http://www.hibernate.org/432.html"&gt;http://www.hibernate.org/432.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Paging with Hibernate: our contribution on Hibernate’s Wiki&lt;br /&gt;&lt;a href="http://www.hibernate.org/314.html"&gt;http://www.hibernate.org/314.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Luis search engine:&lt;br /&gt;&lt;a href="http://www.hibernate.org/314.html"&gt;http://sourceforge.net/projects/lius&lt;br /&gt;&lt;br /&gt;&lt;/a&gt;The Nutch project:&lt;br /&gt;&lt;a href="http://lucene.apache.org/nutch"&gt;http://lucene.apache.org/nutch&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;“Lucene in Action”, ,Otis Gospodnetic and Erik Hatcher, Manning, 2004&lt;br /&gt;&lt;a href="http://www.manning.com/hatcher2"&gt;http://www.manning.com/hatcher2&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Sample classes are taken from Teamwork:&lt;br /&gt;&lt;a href="http://www.twproject.com/"&gt;http://www.twproject.com&lt;/a&gt;&lt;/file&gt;&lt;/dataforlucene&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-7032846062945036420?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/7032846062945036420/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=7032846062945036420' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/7032846062945036420'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/7032846062945036420'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2007/11/using-hibernate-search-with-complex.html' title='Using Hibernate Search with complex requirements'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-2487436550027202979</id><published>2007-11-06T14:03:00.000+01:00</published><updated>2007-11-13T08:50:46.856+01:00</updated><title type='text'>Our contribution to Hibernate Search project:</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Hibernate Search: Offline text extraction&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Suppose that using Hibernate Search you want to index not only the standard persistent content of your objects, like string contents such as name, description etc., but also external references to files, such as PDF documents, HTML contents and so on.&lt;br /&gt;&lt;br /&gt;We are going to address the following problem: if you use Hibernate Search in the simplest way to index such properties of your indexed objects, text extraction will happen at the same time as the storing of the objects, and hence in a transactional scope, hanging thread completion until text extraction is completed, even if indexing is done asynchronously, which is an option in Hibernate Search.&lt;br /&gt;&lt;div style="text-align: right;"&gt;&lt;a href="http://www.hibernate.org/432.html"&gt;full article...&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;Full text search is among lots of exciting new features that we will be releasing in the next few months.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-2487436550027202979?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/2487436550027202979/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=2487436550027202979' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/2487436550027202979'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/2487436550027202979'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2007/11/our-contribution-to-hibernate-search.html' title='Our contribution to Hibernate Search project:'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-7383758177921919006</id><published>2007-10-29T13:59:00.000+01:00</published><updated>2008-12-13T01:09:40.508+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Teamwork JBoss'/><title type='text'>Running Teamwork on JBoss (4.2.2)</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_5i3h1CugZXo/RyXZ3rEaYtI/AAAAAAAAAG4/mKL_G5MCU_c/s1600-h/000190_RHReadyCJ.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_5i3h1CugZXo/RyXZ3rEaYtI/AAAAAAAAAG4/mKL_G5MCU_c/s400/000190_RHReadyCJ.jpg" alt="" id="BLOGGER_PHOTO_ID_5126743301308441298" border="0" /&gt;&lt;/a&gt;Today we deployed Teamwork as a war on JBoss 4.4.2, and it works fine; only take care about the Hibernate release, as it should be compatible (for Teamwork 3.2.1, its Hibernate 3.2.4 with Annotations  3.3.0 and Search 3.0). Given our minimal requirements, it's no surprise that it runs fine, but its good to be sure.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-7383758177921919006?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/7383758177921919006/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=7383758177921919006' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/7383758177921919006'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/7383758177921919006'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2007/10/running-teamwork-on-jboss-422.html' title='Running Teamwork on JBoss (4.2.2)'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_5i3h1CugZXo/RyXZ3rEaYtI/AAAAAAAAAG4/mKL_G5MCU_c/s72-c/000190_RHReadyCJ.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-2765936111313947790</id><published>2007-10-24T16:52:00.001+02:00</published><updated>2008-12-13T01:09:40.673+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='microsoft project web based management'/><title type='text'>Moving from Microsoft Project to web based management</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.flickr.com/photos/pgoyette/130739506/"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_5i3h1CugZXo/RyIkvLEaYsI/AAAAAAAAAGw/i5INWDzFOdg/s400/spaghetti.jpg" alt="" id="BLOGGER_PHOTO_ID_5125699718744793794" border="0" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;Spaghetti Project Management&lt;/span&gt;&lt;br /&gt;Thanks to several examples provided by our customers (for debugging purposes, or because of mehodological questions), I've started to acquire a certain experience in how Microsoft Project is really used, and what one should do when moving to web based project management.&lt;br /&gt;&lt;br /&gt;Some users were setting in Microsoft Project everything as a task: micro management issues, meetings in the agenda, points to discuss; this seems practical, as everything is in one file, as long as one does not have to share such information.&lt;br /&gt;This habit brings about also other problems: it shows an unrealistic assumption about work, as every little detail, like a quick meeting, has to be planned &lt;span style="font-style: italic;"&gt;in advance&lt;/span&gt;, and by a single person; but this is not how work (and life) goes.&lt;br /&gt;Such unreadable and excessively detailed plan is bound to be at best ignored by the rest of the team, if explicit refusal is impossible due to authority.&lt;br /&gt;So, users search for more "acceptable" solutions, and start by... importing the original project tree! So the initial situation is even worse, because a web based application can't compete with a client in managing complex trees.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Agile, practical management &lt;/span&gt;&lt;br /&gt;The way to agile, practical management is to have simple trees and few assignments;  you have to distribute the original tree information in the appropriate, confortable places you find in Teamwork, which does a lot of work to help you. Getting users to insert their worklog is always a hard-won victory, and a great result for the company, which will gain more and more value in time . We on the software side are working really hard to release ever lmore friendly software, &lt;span style="font-style: italic;"&gt;without &lt;/span&gt;loosing power available to project managers and the system integrators. I recently realized that the simplest "worklog" software of all is &lt;a href="http://twitter.com/"&gt;Twitter&lt;/a&gt;; the only problem is.. that it does nothing.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;Pietro Polsinelli&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-2765936111313947790?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/2765936111313947790/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=2765936111313947790' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/2765936111313947790'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/2765936111313947790'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2007/10/moving-from-microsoft-project-to-web.html' title='Moving from Microsoft Project to web based management'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_5i3h1CugZXo/RyIkvLEaYsI/AAAAAAAAAGw/i5INWDzFOdg/s72-c/spaghetti.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-8107096907052703081</id><published>2007-10-12T12:13:00.000+02:00</published><updated>2007-12-10T13:12:21.481+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='teamwork installation configuration'/><title type='text'>.. and they lived happily ever after</title><content type='html'>&lt;span style="font-size:100%;"&gt;Having seen and helped thousand of users installing and trying Teamwork, I have began noticing recurring patterns, leading to happiness or ruin in the Teamwork experience. I can now often predict which path the user will take, right after her/his preliminary steps.&lt;br /&gt;So here I hope to give some hints to avoid the path to ruin. I think that it can be of help even if you don't understand all technical details.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;Choosing the online service&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;I have become a fan of the online service, at least for an evaluation (in which you should discard speed considerations, as you can always end up with a local installation): it works well and there are no systemic worries for the customers. Sometimes users underestimate the complexity of installing, exposing and protecting a server database application accessible via http; by using the online service, you are free of all that.&lt;br /&gt;There are of course good reasons for choosing instead to install Teamwork locally, among which there are &lt;span style="font-style: italic;"&gt;speed&lt;/span&gt; and &lt;span style="font-style: italic;"&gt;power&lt;/span&gt;; but among them there aren't concerns for privacy. It may sound rude, but we are not at all interested in customer's data, and actually the European Union laws protecting privacy are terribly serious (actually, too restrictive IMHO), so we don't want to know anything about your data.&lt;br /&gt;The paths to ruin in case of the online service are few:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;font-size:100%;" &gt;(ruin) Real production data gets inserted online with the idea of "transferring" it in some uncertain future to a local database.&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;Not in all cases this can be done, and in all cases, it is a non trivial task: Teamwork’s data is structured, databases have with referential integrity.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;font-size:100%;" &gt;(ruin) First things the main user does is fiddling with security settings.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;font-size:100%;" &gt;By main user we mean the one who created the account, which is by default the area manager, i.e. the admin of the account, e.g. creates the other users. &lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;This attitude actually is a sure path to ruin also in case of a local installation. Default security settings are fine for the vast majority of situations; while little Teamwork-specific competence is needed to start using it, in depth confidence with the application is needed to set up a different security model; it is best done in a later stage.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;font-size:100%;" &gt;(happiness) Leave security as it is found after installation, work on projects, resources and assignments, security will be eventually handled once familiar with the basic work management features.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;Installing Teamwork &lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;If this is the choice, there are several ways that lead to ruin:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;font-size:100%;" &gt;(ruin) Launch the installer not as root while not logged as root.&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;The installer must rename files, create others, and launch Tomcat, and there operations normally require administrative rights.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;font-size:100%;" &gt;(ruin) Not using the installer.&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;While it is true that Teamwork is just a web-application, the installation process is not entirely trivial: the graphical installer does some job for you, which is not always easy to do “by hand”, for example, testing the JDBC-connection to the database, or that the HTTP port is free.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;font-size:100%;" &gt;(happiness) Install as root in a graphical environment on the real, final database, and when happy move the web app on the "text only - only for experts" linux server.&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;Updating Teamwork&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;The fastest path to ruin is&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;font-size:100%;" &gt;(ruin) Not having done a complete backup of the web application and database before upgrade.&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;Another sure way to ruin is:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;font-size:100%;" &gt;(ruin) Tomcat is not really down while doing the upgrade.&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;Tomcat notoriously has problems in shutting down, so check in the services (via ps -ax or Task Manager or whatever your OS uses) that it is really down before upgrading.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;Using Teamwork&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;font-size:100%;" &gt;(ruin) Start with the ambitious plan of inserting in Teamwork all projects modeled with very fine grained tree structures.&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;This is a path to ruin because it will be hard to keep up to such standards. Users will feel the interface as cumbersome, and teamwork will be slowly abandoned.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;font-size:100%;" &gt;(happiness) Start with a very simple set of tasks, mostly just roots, and few assignments per each user. Use massively stickys, boards, subscriptions to give a feel of the advantages of the software.&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;If the entire workgroup gets quickly a feel for the application, it will be more likely that they will keep using it in time.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-8107096907052703081?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/8107096907052703081/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=8107096907052703081' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/8107096907052703081'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/8107096907052703081'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2007/10/having-seen-and-helped-thousand-of.html' title='.. and they lived happily ever after'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-877160282269063870</id><published>2007-09-28T13:29:00.000+02:00</published><updated>2007-10-05T15:45:24.189+02:00</updated><title type='text'>Teamwork 3.2.1 is out: what's next?</title><content type='html'>This latest release contains an expanded agenda management, which now includes meeting management, and a lot of fine tunings; in particular, we worked on  improving character encoding compatibility both in input data and in document names. Much help came from feedback of users of the online version.&lt;br /&gt;&lt;br /&gt;So, what's next? Well, we are architecting and doing first draft development of Teamwork 4. Actually, more than a "4" version, we will create a new front end application, of which what is now Teamwork will be a sort of "backoffice". I can't reveal what the front end idea is, but we are aiming at &lt;span style="font-style: italic;"&gt;drastically&lt;/span&gt; lowering the adoption barrier, which in our opinion is still the stumbling block of this kind of software.&lt;br /&gt;&lt;br /&gt;Teamwork currently has an advantage over competitors in the refined model and in the "IT-biocompatibility" side; but we want it to become much friendlier on the interface side.&lt;br /&gt;&lt;br /&gt;For the first time, Teamwork development may not be entirely self founded; we are having first contacts with investors (actually, being contacted by VCs after the Jolt Award gave us the idea of searching external founding), and if you want more information, write me (ppolsinelli at open - lab [dot] com) and we'll get back to you.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Pietro Polsinelli&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-877160282269063870?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/877160282269063870/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=877160282269063870' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/877160282269063870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/877160282269063870'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2007/09/teamwork-321-is-out-whats-next.html' title='Teamwork 3.2.1 is out: what&apos;s next?'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-2723095887114449067</id><published>2007-09-28T08:49:00.000+02:00</published><updated>2007-11-19T13:19:53.895+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='project management courses'/><title type='text'>Teamwork as tool for Project Management courses</title><content type='html'>Given its refined modeling capacities, Teamwork is often chosen by universities as supporting application for project management courses.&lt;br /&gt;&lt;br /&gt;It is currently used in universities located in &lt;span style="color: rgb(51, 102, 255);"&gt;Germany, Austria, Spain, Portugal, Denmark&lt;/span&gt;, &lt;span style="color: rgb(255, 204, 0);"&gt;&lt;span style="color: rgb(102, 51, 102);"&gt;USA,&lt;/span&gt; Africa (Monash University)&lt;/span&gt;, &lt;span style="color: rgb(255, 102, 0);"&gt;Chile&lt;/span&gt;, &lt;span style="color: rgb(0, 153, 0);"&gt;Saudi Arabia&lt;/span&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-2723095887114449067?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/2723095887114449067/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=2723095887114449067' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/2723095887114449067'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/2723095887114449067'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2007/09/teamwork-as-tool-for-project-management.html' title='Teamwork as tool for Project Management courses'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-1534659284159618267</id><published>2007-09-26T10:07:00.000+02:00</published><updated>2007-09-26T10:08:45.176+02:00</updated><title type='text'>Teamwork video</title><content type='html'>&lt;a href="http://www.youtube.com/watch?v=pD-V7sEQzpk&amp;amp;mode=related&amp;amp;search="&gt;http://www.youtube.com/watch?v=pD-V7sEQzpk&amp;amp;mode=related&amp;amp;search=&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;:-D&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-1534659284159618267?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/1534659284159618267/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=1534659284159618267' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/1534659284159618267'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/1534659284159618267'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2007/09/teamwork-video.html' title='Teamwork video'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-156919685664147303</id><published>2007-09-14T10:08:00.000+02:00</published><updated>2007-09-14T10:25:58.036+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='audit software certification compliance'/><title type='text'>Audit trail</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://blog.twproject.com/uploaded_images/screen_0009-721382.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://blog.twproject.com/uploaded_images/screen_0009-721379.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;We updated the audit trail module for 3.2 releases; it gives a complete and readable audit of all the "auditable" objects. It doesn't seem to impact performance too much, and results are optimized for inspection.&lt;br /&gt;&lt;br /&gt;We used Hibernate's &lt;a href="http://www.hibernate.org/hib_docs/v3/api/org/hibernate/Interceptor.html"&gt;interceptors&lt;/a&gt; at session level, so the module has garanteed completeness: there is no "hand-maintenance" to be done on persistent objects, which is a further guarantee for certification purposes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-156919685664147303?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/156919685664147303/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=156919685664147303' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/156919685664147303'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/156919685664147303'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2007/09/audit-trail.html' title='Audit trail'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-5714614468499348589</id><published>2007-08-09T10:16:00.001+02:00</published><updated>2008-12-13T01:09:41.155+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='recurring meeting committee management'/><title type='text'>Meeting management</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_5i3h1CugZXo/RrrNYJujL6I/AAAAAAAAAGg/yRU0ZbN9iME/s1600-h/meeting.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_5i3h1CugZXo/RrrNYJujL6I/AAAAAAAAAGg/yRU0ZbN9iME/s400/meeting.jpg" alt="" id="BLOGGER_PHOTO_ID_5096611743134855074" border="0" /&gt;&lt;/a&gt;We are preparing release 3.2.1, which includes a new module: committee and meeting management.     &lt;p class="MsoNormal"&gt;When we started modeling this new section, we realized that Teamwork has already the notion of committee, i.e. the set of assignees on the task, and a (recurrent) meeting notion, on the agenda events. So we created a new object bringing the two together, created the notion of “discussion point”, and started building the business logic and views.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-5714614468499348589?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/5714614468499348589/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=5714614468499348589' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/5714614468499348589'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/5714614468499348589'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2007/08/we-are-preparing-release-3.html' title='Meeting management'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_5i3h1CugZXo/RrrNYJujL6I/AAAAAAAAAGg/yRU0ZbN9iME/s72-c/meeting.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-1343563735339071654</id><published>2007-08-06T11:11:00.001+02:00</published><updated>2008-12-13T01:09:41.300+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Teamwork iPhone Safari'/><title type='text'>Teamwork on the iPhone</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_5i3h1CugZXo/Rrbl65ujL5I/AAAAAAAAAGY/aNPGmK6bFKw/s1600-h/000229_iPhone.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_5i3h1CugZXo/Rrbl65ujL5I/AAAAAAAAAGY/aNPGmK6bFKw/s320/000229_iPhone.jpg" alt="" id="BLOGGER_PHOTO_ID_5095512828507533202" border="0" /&gt;&lt;/a&gt;Almost everything works :-)&lt;br /&gt;&lt;br /&gt;Actiually, it is a while that we are testing Teamwork on Safari, and we are approaching full compatibility. Forthcoming release 3.2.1 should be compatible.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-1343563735339071654?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/1343563735339071654/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=1343563735339071654' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/1343563735339071654'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/1343563735339071654'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2007/08/teamwork-on-iphone.html' title='Teamwork on the iPhone'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_5i3h1CugZXo/Rrbl65ujL5I/AAAAAAAAAGY/aNPGmK6bFKw/s72-c/000229_iPhone.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-3701738137009778102</id><published>2007-07-06T14:05:00.000+02:00</published><updated>2008-12-13T01:09:41.428+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java calendar and Exchange server'/><title type='text'>Importing (I)calendar appointments: Outlook stand-alone and integrated with Exchange server</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.flickr.com/photos/sachmanns/214104907/"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_5i3h1CugZXo/Ro4xr72F88I/AAAAAAAAAGQ/SjXiSTf11H4/s400/diffrences.jpg" alt="" id="BLOGGER_PHOTO_ID_5084055660216579010" border="0" /&gt;&lt;/a&gt;Thanks to some smart customers, we extended calendar event import in Teamwork to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Outolooks&lt;/span&gt; integrated with Exchange Server &lt;span style=""&gt;(® Microsoft Corporation)&lt;/span&gt;.  Exchange server calendar events are sent in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;multipart&lt;/span&gt; form, differently from stand-alone Outlooks, so we had to extend parsing.&lt;br /&gt;&lt;br /&gt;The extended procedure is released in &lt;a href="http://www.twproject.com/download.page"&gt;3.2.0 build 347&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-3701738137009778102?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/3701738137009778102/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=3701738137009778102' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/3701738137009778102'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/3701738137009778102'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2007/07/importing-icalendar-appointments.html' title='Importing (I)calendar appointments: Outlook stand-alone and integrated with Exchange server'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_5i3h1CugZXo/Ro4xr72F88I/AAAAAAAAAGQ/SjXiSTf11H4/s72-c/diffrences.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-717731419105269304</id><published>2007-07-05T16:31:00.000+02:00</published><updated>2008-12-13T01:09:41.597+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='project management and relational data'/><title type='text'>The future of web applications over Java and ORM</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.flickr.com/photos/radder86/389289238/"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_5i3h1CugZXo/Ro08fb2F87I/AAAAAAAAAGI/6lebWNnV98g/s400/389289238_f309d3eabf.jpg" alt="" id="BLOGGER_PHOTO_ID_5083786065119409074" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Well, a really nice post from Mr. King, "&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;oneofthafew&lt;/span&gt;":&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blog.hibernate.org/cgi-bin/blosxom.cgi/2007/05/23#in-defence"&gt;In defence of the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;RDBMS&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;funny how rare contact with reality is in the development community. Fortunately, the Hibernate group always kept a solid sense of what a practical solution has to be, ignoring hype, and we tried to follow suit. Anyway, web interfaces, Java and &lt;a href="http://en.wikipedia.org/wiki/Object-relational_mapping"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;ORM&lt;/span&gt;&lt;/a&gt; seem more and more here to stay.&lt;br /&gt;&lt;br /&gt;The so called "&lt;span style="font-style: italic;"&gt;impedance mismatch&lt;/span&gt; between the architectural approach of the object oriented application such as built in Java and where the data is stored in a relational database management" actually resolves in an &lt;span style="font-style: italic;"&gt;advantage &lt;/span&gt;due to separation of concerns and richness of applicable models. For the latter, it is very confortable to be free to drill, group and move through data both in its object and its relational form. In fact this spectrum of options is among Teamwork's competitive advantages.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;Pietro Polsinelli&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-717731419105269304?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/717731419105269304/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=717731419105269304' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/717731419105269304'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/717731419105269304'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2007/07/future-of-web-applications-over-java.html' title='The future of web applications over Java and ORM'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_5i3h1CugZXo/Ro08fb2F87I/AAAAAAAAAGI/6lebWNnV98g/s72-c/389289238_f309d3eabf.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-8869634963261151594</id><published>2007-05-09T09:41:00.000+02:00</published><updated>2008-12-13T01:09:42.537+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java Outlook'/><title type='text'>Integrate your Java agenda and ICalendar clients (Outlook) with iCal4j</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_5i3h1CugZXo/RkSbC_1qEQI/AAAAAAAAAGA/mdacYBa3zRw/s1600-h/agenda.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_5i3h1CugZXo/RkSbC_1qEQI/AAAAAAAAAGA/mdacYBa3zRw/s400/agenda.jpg" alt="" id="BLOGGER_PHOTO_ID_5063342356869812482" border="0" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;Introduction&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;This post concerns integrating a calendar/agenda you created in your Java application with external clients. It is a relevant feature, because applications are not released in a void, but in a world where people already use several applications, among which often there is a calendar client, typically Microsoft Outlook, sometimes also integrated with Exchange Server. Then there are all the non-Microsoft people, with several different clients and tools (see &lt;a href="http://en.wikipedia.org/wiki/ICalendar"&gt;here&lt;/a&gt; for a list). So if you build a group calendar management, by making it interact with the agenda clients you will be lowering considerably the adoption barrier.&lt;br /&gt;&lt;br /&gt;What's nice of the presented solution is that&lt;br /&gt;&lt;ul&gt;&lt;li&gt;it works with most clients, through the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;&lt;a href="http://en.wikipedia.org/wiki/ICalendar"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;ICalendar&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt; &lt;/span&gt;standard, &lt;/li&gt;&lt;li&gt;is compatible with the presence of a calendar group server,&lt;/li&gt;&lt;li&gt;its very light: we just use mail headers and a simple textual standard (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;ICalendar&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;).&lt;/li&gt;&lt;/ul&gt;In particular it requires just development effort, but no investment in expensive components.&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;Your &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;Ja&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;va&lt;/span&gt;&lt;/span&gt; application&lt;/span&gt;&lt;br /&gt;We use Teamwork as example application which has to be integrated. We assume that you have built a solution to keep track in Java of your team's calendar, managing also recurrent events of the different kinds, which is the hardest part: you have to manage daily, weekly, monthly and yearly recurrences, answering fast to questions like "when will the two appointments 'all 4&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;th&lt;/span&gt; of month' and 'every &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_5"&gt;Tuesday&lt;/span&gt; every two weeks' next intersect? Outlook does all of this, so you need to provide a formalization in your app to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;synch&lt;/span&gt; with it. People (or "resources") involved will be identified by their e-mail in he &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;synch&lt;/span&gt; process, and actually this is what Outlook does when you "invite" resources to join meetings.&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;iC&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;al&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;4j&lt;/span&gt;&lt;br /&gt;A basic free tool which you should use is the &lt;a href="http://ical4j.sourceforge.net/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;iCal&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;4j&lt;/a&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;API&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;, through which you will get Java objects modeling &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;ICalendar&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; messages. In our implementation, we had to add a "fake" property to the set provided by &lt;a href="http://ical4j.sourceforge.net/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;iCal&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;4j&lt;/a&gt; because of problems with the "&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;CN&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;=..." format, but this is a side detail.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Action&lt;/strong&gt;&lt;br /&gt;The flow of group meetings creation, editing and approval can go in several directions, and you have to handle all of them.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Create event in Teamwork and send copy to clients&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;updates&gt;For &lt;/updates&gt;&lt;updates&gt;this, after saving its internal event, your application must send an e-mail to every participant, containing the V-event generated with &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;iCal&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;4J.&lt;br /&gt;&lt;/updates&gt;&lt;/p&gt;&lt;p&gt;&lt;updates&gt;You will put the organizer of the event, and the attendees. Set as "&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;UID&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;" of the V-event your event id.&lt;/updates&gt;&lt;/p&gt;&lt;p&gt;&lt;updates&gt;To make Outlook recognize it as an calendar event, put in the mail header&lt;/updates&gt;&lt;/p&gt;&lt;p style="text-align: center;"&gt;&lt;updates&gt;"text/calendar;method=REQUEST;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;charset&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;="&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;UTF&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;-8"&lt;/updates&gt;&lt;/p&gt;    &lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_5i3h1CugZXo/RkLRrv1qEMI/AAAAAAAAAFg/x3UNE5dP0Ec/s1600-h/OutlookGotApp.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_5i3h1CugZXo/RkLRrv1qEMI/AAAAAAAAAFg/x3UNE5dP0Ec/s200/OutlookGotApp.jpg" alt="" id="BLOGGER_PHOTO_ID_5062839480623960258" border="0" /&gt;&lt;/a&gt;&lt;updates&gt;&lt;br /&gt;and Outlook will recognize it, presenting the mail received as in the picture.&lt;/updates&gt;&lt;/p&gt;&lt;p&gt;&lt;updates&gt;&lt;/updates&gt;&lt;updates&gt;&lt;/updates&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_5i3h1CugZXo/RkLR9_1qENI/AAAAAAAAAFo/GPou881bS6I/s1600-h/OutlookAccept.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_5i3h1CugZXo/RkLR9_1qENI/AAAAAAAAAFo/GPou881bS6I/s200/OutlookAccept.jpg" alt="" id="BLOGGER_PHOTO_ID_5062839794156572882" border="0" /&gt;&lt;/a&gt;The appointment will be put in Outlook's calendar when received, and it will be possible to accept them or not.&lt;br /&gt;&lt;updates&gt;&lt;/updates&gt;&lt;/p&gt;&lt;updates&gt;Notice that if you update an event in your app, and resend it, Outlook will recognize it as an instance of the preceding event, and automatically update the event - (very nice!); this you get by setting the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;UID&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; field.&lt;br /&gt;&lt;br /&gt;&lt;/updates&gt;&lt;em&gt;Create event in Outlook and make your app aware of this&lt;br /&gt;&lt;br /&gt;&lt;/em&gt;We did this simply by making our application capable of downloading e-mail. Then when you create your appointment in Outlook, you just "send" it to your app, by having among the attendees the e-mail of your app. You need a scheduled mail download (and hence a job handler), and to parse the received relevant string body part in a V-event, which too is provided by the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;Ical&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;4j &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;API&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;: in particular, you have to consider the cases&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;Method.REQUEST.equals(iCalendar.getMethod()) ...&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;and by working on the V-event &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;UID&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; you can decide whether to create or update an event in your web-app, which will be the final step. To recognize the e-mail received as one relative to calendar, look at the content type which will be "text/calendar". Notice that you will also receive "DECLINED" events, in which case you must remove that attendee from your event.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;/em&gt;&lt;span style="font-weight: bold;"&gt;Conclusion&lt;/span&gt;&lt;br /&gt;The outline above can proceed further by handling people who want to remove themselves from event. Then it is natural to proceed in the integration by exporting contacts from the mail client to your application; this is exactly how we proceeded in Teamwork's case, but this is another matter.&lt;br /&gt;&lt;br /&gt;More can be found at&lt;span style=""&gt;&lt;a href="http://www.twproject.com/icalendar.page"&gt; http://www.twproject.com/icalendar.page&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;  .&lt;br /&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;Microsoft Outlook and Exchange Server are (c) Microsoft Corporation. Mozilla &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;Thunderbird&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; is (c) the Mozilla Corporation. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;iCal&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;4J is Copyright (c) 2006, Ben &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_25"&gt;Fortuna&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;. See &lt;a href="http://ical4j.sourceforge.net/"&gt;http://ical4j.sourceforge.net&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-8869634963261151594?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/8869634963261151594/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=8869634963261151594' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/8869634963261151594'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/8869634963261151594'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2007/04/integrate-your-java-agenda-and-ical.html' title='Integrate your Java agenda and ICalendar clients (Outlook) with iCal4j'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_5i3h1CugZXo/RkSbC_1qEQI/AAAAAAAAAGA/mdacYBa3zRw/s72-c/agenda.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-7552314652231146563</id><published>2007-04-30T18:47:00.001+02:00</published><updated>2008-12-13T01:09:42.980+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java Outlook ICalendar Agenda TeamworkTalk'/><title type='text'>Teamwork and ICalendar/Outlook integration</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_5i3h1CugZXo/RjZMZXZqpeI/AAAAAAAAAEY/hnGZchHvR2g/s1600-h/288449689_7c0fa5c721_m.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_5i3h1CugZXo/RjZMZXZqpeI/AAAAAAAAAEY/hnGZchHvR2g/s400/288449689_7c0fa5c721_m.jpg" alt="" id="BLOGGER_PHOTO_ID_5059315230059439586" border="0" /&gt;&lt;/a&gt;We completed Teamwork and &lt;a href="http://en.wikipedia.org/wiki/ICalendar"&gt;ICalendar&lt;/a&gt;/&lt;a href="http://office.microsoft.com/en-us/outlook/default.aspx"&gt;Outlook&lt;/a&gt; integration, just by using e-mail headers and ICalendar's contents. In this way, Teamwork can serve as an "exchange" server, for groups of people using Outlook as client; you can create meetings interchangeably either in Teamwork or in Outlook, and find them in both cases in both agendas. We are preparing a detailed blog post on  how this was done technically.&lt;br /&gt;&lt;br /&gt;You could have people involved in Teamwork only through their email/calendar client.&lt;br /&gt;&lt;br /&gt;ICalendar integration opens a host of exchange possibilities, given the wide spectrum of ICalendar adoption: from the Wikipedia link above:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;"It is implemented/supported by a large number of products, including &lt;/span&gt;&lt;a style="font-style: italic;" href="http://en.wikipedia.org/wiki/30_Boxes" title="30 Boxes"&gt;30 Boxes&lt;/a&gt;&lt;span style="font-style: italic;"&gt;, &lt;/span&gt;&lt;a style="font-style: italic;" href="http://en.wikipedia.org/wiki/Apple_Computer" title="Apple Computer"&gt;Apple&lt;/a&gt;&lt;span style="font-style: italic;"&gt;'s &lt;/span&gt;&lt;a style="font-style: italic;" href="http://en.wikipedia.org/wiki/ICal" title="ICal"&gt;iCal&lt;/a&gt; application, &lt;a style="font-style: italic;" href="http://en.wikipedia.org/wiki/Darwin_Calendar_Server" title="Darwin Calendar Server"&gt;Darwin Calendar Server&lt;/a&gt;&lt;span style="font-style: italic;"&gt;, &lt;/span&gt;&lt;a style="font-style: italic;" href="http://en.wikipedia.org/wiki/Contactizer" title="Contactizer"&gt;Contactizer&lt;/a&gt;&lt;span style="font-style: italic;"&gt; and &lt;/span&gt;&lt;a style="font-style: italic;" href="http://en.wikipedia.org/wiki/IPod" title="IPod"&gt;iPod&lt;/a&gt;&lt;span style="font-style: italic;"&gt;, &lt;/span&gt;&lt;a style="font-style: italic;" href="http://en.wikipedia.org/wiki/Chandler_%28PIM%29" title="Chandler (PIM)"&gt;Chandler&lt;/a&gt;&lt;span style="font-style: italic;"&gt;, &lt;/span&gt;&lt;a style="font-style: italic;" href="http://en.wikipedia.org/wiki/Drupal" title="Drupal"&gt;Drupal&lt;/a&gt;&lt;span style="font-style: italic;"&gt; with its event module, &lt;/span&gt;&lt;a style="font-style: italic;" href="http://en.wikipedia.org/wiki/Citadel/UX" title="Citadel/UX"&gt;Citadel&lt;/a&gt;&lt;span style="font-style: italic;"&gt;, &lt;/span&gt;&lt;a style="font-style: italic;" href="http://en.wikipedia.org/wiki/Facebook" title="Facebook"&gt;Facebook&lt;/a&gt;&lt;span style="font-style: italic;"&gt;, &lt;/span&gt;&lt;a style="font-style: italic;" href="http://en.wikipedia.org/wiki/FirstClass" title="FirstClass"&gt;FirstClass&lt;/a&gt;&lt;span style="font-style: italic;"&gt;, &lt;/span&gt;&lt;a style="font-style: italic;" href="http://en.wikipedia.org/wiki/Google_Calendar" title="Google Calendar"&gt;Google Calendar&lt;/a&gt;&lt;span style="font-style: italic;"&gt;, &lt;/span&gt;&lt;a style="font-style: italic;" href="http://en.wikipedia.org/wiki/Jalios_JCMS" title="Jalios JCMS"&gt;Jalios JCMS&lt;/a&gt;&lt;span style="font-style: italic;"&gt;, &lt;/span&gt;&lt;a style="font-style: italic;" href="http://en.wikipedia.org/wiki/KOrganizer" title="KOrganizer"&gt;KOrganizer&lt;/a&gt;&lt;span style="font-style: italic;"&gt;, &lt;/span&gt;&lt;a style="font-style: italic;" href="http://en.wikipedia.org/wiki/Lotus_Notes" title="Lotus Notes"&gt;Lotus Notes&lt;/a&gt;&lt;span style="font-style: italic;"&gt;, &lt;/span&gt;&lt;a style="font-style: italic;" href="http://en.wikipedia.org/wiki/Microsoft_Entourage" title="Microsoft Entourage"&gt;Microsoft Entourage&lt;/a&gt;&lt;span style="font-style: italic;"&gt;, &lt;/span&gt;&lt;a style="font-style: italic;" href="http://en.wikipedia.org/wiki/Mozilla_Calendar" title="Mozilla Calendar"&gt;Mozilla Calendar&lt;/a&gt;&lt;span style="font-style: italic;"&gt; (including &lt;/span&gt;&lt;a style="font-style: italic;" href="http://en.wikipedia.org/wiki/Mozilla_Sunbird" title="Mozilla Sunbird"&gt;Mozilla Sunbird&lt;/a&gt;&lt;span style="font-style: italic;"&gt;), &lt;/span&gt;&lt;a style="font-style: italic;" href="http://en.wikipedia.org/wiki/Mulberry_%28email_client%29" title="Mulberry (email client)"&gt;Mulberry&lt;/a&gt;&lt;span style="font-style: italic;"&gt;, &lt;/span&gt;&lt;a style="font-style: italic;" href="http://en.wikipedia.org/wiki/Novell_Evolution" title="Novell Evolution"&gt;Novell Evolution&lt;/a&gt;&lt;span style="font-style: italic;"&gt;, &lt;/span&gt;&lt;a style="font-style: italic;" href="http://en.wikipedia.org/wiki/Novell_GroupWise" title="Novell GroupWise"&gt;Novell GroupWise&lt;/a&gt;&lt;span style="font-style: italic;"&gt;, &lt;/span&gt;&lt;a style="font-style: italic;" href="http://en.wikipedia.org/wiki/Nuvvo" title="Nuvvo"&gt;Nuvvo&lt;/a&gt;&lt;span style="font-style: italic;"&gt;, &lt;/span&gt;&lt;a style="font-style: italic;" href="http://en.wikipedia.org/wiki/Simple_Groupware" title="Simple Groupware"&gt;Simple Groupware&lt;/a&gt;&lt;span style="font-style: italic;"&gt;, &lt;/span&gt;&lt;a style="font-style: italic;" href="http://en.wikipedia.org/wiki/Upcoming.org" title="Upcoming.org"&gt;Upcoming.org&lt;/a&gt;&lt;span style="font-style: italic;"&gt;, &lt;/span&gt;&lt;a style="font-style: italic;" href="http://en.wikipedia.org/wiki/Windows_Calendar" title="Windows Calendar"&gt;Windows Calendar&lt;/a&gt;&lt;span style="font-style: italic;"&gt;, &lt;/span&gt;&lt;a style="font-style: italic;" href="http://en.wikipedia.org/wiki/Webical" title="Webical"&gt;Webical&lt;/a&gt;&lt;span style="font-style: italic;"&gt;, &lt;/span&gt;&lt;a style="font-style: italic;" href="http://en.wikipedia.org/wiki/Zimbra" title="Zimbra"&gt;Zimbra Collaboration Suite&lt;/a&gt;&lt;span style="font-style: italic;"&gt;, and &lt;/span&gt;&lt;a style="font-style: italic;" href="http://en.wikipedia.org/wiki/Microsoft_Outlook" title="Microsoft Outlook"&gt;Microsoft Outlook&lt;/a&gt;&lt;span style="font-style: italic;"&gt; (&lt;/span&gt;&lt;a style="font-style: italic;" href="http://en.wikipedia.org/wiki/Icalendar#Microsoft_Outlook" title=""&gt;see below&lt;/a&gt;&lt;span style="font-style: italic;"&gt;). ..."&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Actually, Teamwork now can download e-mails in general; we have already made it possible to create resources in Teamwork simply by sending a VCard by e-mail, and to add documents to a project sending them as attachments by e-mail.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: right;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_5i3h1CugZXo/RjZRWHZqpgI/AAAAAAAAAEo/eDj7EItDFc8/s1600-h/pink.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://3.bp.blogspot.com/_5i3h1CugZXo/RjZRWHZqpgI/AAAAAAAAAEo/eDj7EItDFc8/s200/pink.jpg" alt="" id="BLOGGER_PHOTO_ID_5059320671783003650" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Last but not least, Outlook and Thunderbird contacts (generally, from CSV files) can now be interactively imported as Teamwork's resources!&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;All this will be out in 3.2.0, and will be free for all current customers.&lt;br /&gt;&lt;br /&gt;P.S. June 22, 2007: Video documentation is now available: see &lt;a href="http://www.twproject.com/Agenda.page"&gt;http://www.twproject.com/Agenda.page&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;The Aztec calendar picture is from &lt;a href="http://www.flickr.com/photos/jamoker/288449689/"&gt;Flickr&lt;/a&gt;, as the &lt;a href="http://www.flickr.com/photos/23901/296499245/"&gt;pink&lt;/a&gt; one.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-7552314652231146563?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/7552314652231146563/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=7552314652231146563' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/7552314652231146563'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/7552314652231146563'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2007/04/teamwork-and-icalendaroutlook.html' title='Teamwork and ICalendar/Outlook integration'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_5i3h1CugZXo/RjZMZXZqpeI/AAAAAAAAAEY/hnGZchHvR2g/s72-c/288449689_7c0fa5c721_m.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-6243987928971676484</id><published>2007-04-10T10:36:00.001+02:00</published><updated>2008-12-13T01:09:43.128+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='J2EE project management'/><title type='text'>Digg into Teamwork to find gold</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_5i3h1CugZXo/RjILvXZqpdI/AAAAAAAAAEQ/DelS2AihmRc/s1600-h/screen_0001.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_5i3h1CugZXo/RjILvXZqpdI/AAAAAAAAAEQ/DelS2AihmRc/s400/screen_0001.jpg" alt="" id="BLOGGER_PHOTO_ID_5058118239853913554" border="0" /&gt;&lt;/a&gt;There are many levels of Teamwork' usage. One may just start using the introductory pages, maybe directly online, hence sparing also setup, and be quite happy. But the application can give considerable satisfaction also to users who want to &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;dig&lt;/span&gt; technology; we have "hidden" inside Teamwork's interface and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;API&lt;/span&gt;&lt;/span&gt; several enterprise aspects, which may turn useful any time, and which are normally available only in enterprise custom solutions. Several of the features below are not available out of the box: but everything needed to proceed with integration is provided, as it has been done for some customisation; years of corporate integration development have not passed in vain.&lt;br /&gt;&lt;br /&gt;We hope that the new wide "friendly administrator settings" screen (a part of it in the picture) will help giving an idea of the power of the application.&lt;br /&gt;&lt;br /&gt;Some examples:&lt;br /&gt;&lt;br /&gt;- built-in audit engine&lt;br /&gt;- clustering of job engines&lt;br /&gt;- single sign on via http authentication support&lt;br /&gt;- injection of custom reports&lt;br /&gt;- &lt;a href="http://www.jboss.com/products/jbpm"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;JBPM&lt;/span&gt; &lt;/a&gt;built-in integration&lt;br /&gt;- &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;EJB&lt;/span&gt;3 annotation supported&lt;br /&gt;- authenticated e-mail support&lt;br /&gt;- automated web-based schema evolution&lt;br /&gt;- web based web server administration&lt;br /&gt;- &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;UTF&lt;/span&gt;-8 supporting web-editable labels&lt;br /&gt;- complex &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;QBE&lt;/span&gt; querying possible from all fields&lt;br /&gt;- computed numerical fields&lt;br /&gt;- &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;injectable&lt;/span&gt; schema naming strategy&lt;br /&gt;- &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;injectable&lt;/span&gt; settings&lt;br /&gt;- &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;LDAP&lt;/span&gt; and Active Directory role read functionality&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-6243987928971676484?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/6243987928971676484/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=6243987928971676484' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/6243987928971676484'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/6243987928971676484'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2007/04/digg-into-teamwork-to-find-gold.html' title='Digg into Teamwork to find gold'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_5i3h1CugZXo/RjILvXZqpdI/AAAAAAAAAEQ/DelS2AihmRc/s72-c/screen_0001.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-2214841413603568559</id><published>2007-04-05T21:07:00.000+02:00</published><updated>2008-12-13T01:09:44.379+01:00</updated><title type='text'>Inside Teamwork's commercial policy: Easter promotion</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_5i3h1CugZXo/RhVUzeaVvcI/AAAAAAAAAD4/kWTovtt0u-I/s1600-h/eggPapaver.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_5i3h1CugZXo/RhVUzeaVvcI/AAAAAAAAAD4/kWTovtt0u-I/s400/eggPapaver.jpg" alt="" id="BLOGGER_PHOTO_ID_5050035800479481282" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;We just launched a considerable Easter promotion: see &lt;a href="http://www.twproject.com/survey.page" target="_blank"&gt;survey&lt;/a&gt;. Why? Well, because sales of Teamwork are often done together with a work reorganization, and hence tend to be done either during summer break, or at year's end or start. But this is quite uncomfortable in terms of cash flow, so a little push in an earlier buy, with the guarantee of getting free updates for several months, can help cash flowing more uniformly. At least, we hope!&lt;br /&gt;&lt;br /&gt;P.S. It worked: we acquired interesting customers: several Europeans companies (Germany, Italy and Sweden always in the lead), including public utilities, an African university (finally Africa among the customers!), a group of U.S. "architects"...;  a German university is now using it for its PM courses, and a group of developers from Vietnam is building some external additional modules... .&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-2214841413603568559?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/2214841413603568559/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=2214841413603568559' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/2214841413603568559'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/2214841413603568559'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2007/04/inside-teamworks-commercial-policy.html' title='Inside Teamwork&apos;s commercial policy: Easter promotion'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_5i3h1CugZXo/RhVUzeaVvcI/AAAAAAAAAD4/kWTovtt0u-I/s72-c/eggPapaver.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-2394185977463459408</id><published>2007-03-31T13:20:00.000+02:00</published><updated>2008-12-13T01:09:44.878+01:00</updated><title type='text'>"Old" Europe software production</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.siliconvalleymap.com/classic.htm"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_5i3h1CugZXo/Rg5G6FxjVQI/AAAAAAAAADo/a9K-CtaYYC0/s400/2007_classic2_pop.jpg" alt="" id="BLOGGER_PHOTO_ID_5048050196125275394" border="0" /&gt;&lt;/a&gt;Our recent trip to Silicon Valley was quite impressive, for the quality and number of companies located there, and for the enthusiasm and open-mindedness of the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;developers&lt;/span&gt; we met in SD West (in sharp contrast to a surrounding paranoid society affected by overruling, but that is another matter). Clearly it is easier to work and grow in IT there. I now reviewed our competitors locations, both from the Jolt finalist list, and as market leaders: they are all U.S.A. based, from North Carolina to California.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_5i3h1CugZXo/Rg6OUFxjVRI/AAAAAAAAADw/WJAh_GaWlFE/s1600-h/-451_200.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://4.bp.blogspot.com/_5i3h1CugZXo/Rg6OUFxjVRI/AAAAAAAAADw/WJAh_GaWlFE/s400/-451_200.jpg" alt="" id="BLOGGER_PHOTO_ID_5048128708127446290" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;We are the only example in our category that shows that you can do it in Europe too, and get recognized in the U.S.; so Europeans, go and choose us!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;Pietro &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Polsinelli&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-2394185977463459408?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/2394185977463459408/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=2394185977463459408' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/2394185977463459408'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/2394185977463459408'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2007/03/old-europe-software-production.html' title='&quot;Old&quot; Europe software production'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_5i3h1CugZXo/Rg5G6FxjVQI/AAAAAAAAADo/a9K-CtaYYC0/s72-c/2007_classic2_pop.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-1453251247985761729</id><published>2007-03-27T16:30:00.000+02:00</published><updated>2008-12-13T01:09:45.044+01:00</updated><title type='text'>Teamwork wins the 2007 Jolt Productivity Award</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_5i3h1CugZXo/RgktIyAd02I/AAAAAAAAADc/54jKZQsYQyA/s1600-h/P1010090b.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_5i3h1CugZXo/RgktIyAd02I/AAAAAAAAADc/54jKZQsYQyA/s400/P1010090b.jpg" alt="" id="BLOGGER_PHOTO_ID_5046614486331282274" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;We got the 2007 Jolt Productivity Award for the Project Management category!!!&lt;br /&gt;&lt;br /&gt;The Jolt winners were announced at &lt;a href="http://www.sdexpo.com/"&gt;SD West&lt;/a&gt;, in Santa Clara (CA), and we were there: it was a nice evening,  the prizes were presented by  Craig Newmark of &lt;a href="http://sfbay.craigslist.org/"&gt;Craigslist&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;It  is the first time that an Italian software product gets a Jolt. For Teamwork, it  is a recognition of the quality of the work done, which will stimulate us in  producing still better releases.&lt;br /&gt;&lt;br /&gt;See all the winners:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.joltawards.com/2007/" target="_blank" mce_href="http://www.joltawards.com/2007/"&gt;http://www.joltawards.com/2007&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-1453251247985761729?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/1453251247985761729/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=1453251247985761729' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/1453251247985761729'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/1453251247985761729'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2007/03/teamwork-wins-2007-jolt-productivity.html' title='Teamwork wins the 2007 Jolt Productivity Award'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_5i3h1CugZXo/RgktIyAd02I/AAAAAAAAADc/54jKZQsYQyA/s72-c/P1010090b.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-7240659474223535549</id><published>2007-03-15T16:02:00.000+01:00</published><updated>2008-12-13T01:09:45.307+01:00</updated><title type='text'>Creating an ASP service</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_5i3h1CugZXo/RflgJYnatjI/AAAAAAAAADM/B_XeuORVbOw/s1600-h/screen_0001.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://3.bp.blogspot.com/_5i3h1CugZXo/RflgJYnatjI/AAAAAAAAADM/B_XeuORVbOw/s400/screen_0001.jpg" alt="" id="BLOGGER_PHOTO_ID_5042166972160849458" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;A few weeks ago we decided to offer Teamwork as a free-to-start and pay-to-have-more online service.&lt;br /&gt;&lt;br /&gt;In order to do this, we had to meet three requirements:&lt;br /&gt;&lt;br /&gt;1. make Teamwork's areas completely self sufficient, as every account would be an area on a unique, shared Teamwork instance&lt;br /&gt;&lt;br /&gt;2. automate the free account limits verification -&gt; "buy on PayPal" suggestion -&gt; return to online service from &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;PayPal&lt;/span&gt; with account activation&lt;br /&gt;&lt;br /&gt;3. make Teamwork easier to begin with&lt;br /&gt;&lt;br /&gt;We completed all three, set up a couple of fast servers, and are now on line. In 24 hours we had 145 new accounts, so the idea at least has some glamor to it. The dedicated servers for the moment answer really fast, so we keep finger crossed.&lt;br /&gt;&lt;br /&gt;Point 3 is actually the hardest one; we introduced a new page, which will be included in next release, which &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;should&lt;/span&gt; make it easier to start using Teamwork here's a screenshot:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_5i3h1CugZXo/RfljhInatkI/AAAAAAAAADU/3ZWxuWp54QA/s1600-h/screen_0003.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_5i3h1CugZXo/RfljhInatkI/AAAAAAAAADU/3ZWxuWp54QA/s400/screen_0003.jpg" alt="" id="BLOGGER_PHOTO_ID_5042170678717625922" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;You can see it yourself at &lt;a href="http://online.twproject.com/applications/teamwork/createUserEnvironment.jsp"&gt;http://online.twproject.com/applications/teamwork/createUserEnvironment.jsp&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-7240659474223535549?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/7240659474223535549/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=7240659474223535549' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/7240659474223535549'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/7240659474223535549'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2007/03/creating-asp-service.html' title='Creating an ASP service'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_5i3h1CugZXo/RflgJYnatjI/AAAAAAAAADM/B_XeuORVbOw/s72-c/screen_0001.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-572485784577911206</id><published>2007-02-16T19:27:00.000+01:00</published><updated>2008-12-13T01:09:45.588+01:00</updated><title type='text'>Does software development work management need specific tools?</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_5i3h1CugZXo/RdX46KXC9gI/AAAAAAAAADA/d6amAELkyvA/s1600-h/denial.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_5i3h1CugZXo/RdX46KXC9gI/AAAAAAAAADA/d6amAELkyvA/s400/denial.jpg" alt="" id="BLOGGER_PHOTO_ID_5032201836753516034" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;We've been producing software for several years, and since 2001, we've also supplied solutions for work management for teams (that is, a particular mixture of project management and groupware) to hundreds of companies. We've built a unified model for meeting this kind of problems, and though we always used Teamwork internally, we kept our application generic, so it could be applied to all office environments.&lt;br /&gt;&lt;br /&gt;Now, does software development work management need specific tools? The question became more evident when I looked at our Jolt awards competitors in the project management category; I checked what they are doing, and they are all quite different from Teamwork (apart from being clearly inferior in usability, technology, and style ;-) ) in being focused in managing work for software development. There is nothing in Teamwork's core specifically done for developers; you can really fine tune your usage and environment, and given its wide scope, even select which modules to adopt; but how and what you manage depends on your organisational philosophy, more then on your productive activity. This is not by chance, but because &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;IMEO&lt;/span&gt; (In My Experienced Opinion) the answer to the above question is no, software development work management does &lt;span style="font-style: italic;"&gt;not &lt;/span&gt;need specific tools; it needs powerful and flexible tools, identical to those &lt;span style="font-style: italic;"&gt;any &lt;/span&gt;computer aided production activity needs, such as accounting, financial analysis, document production, laboratories, or even spacecraft production, to cite a few of Teamwork 's customer activities. Developers have a tendency to consider their work a very special one, but actually any of the above activities needs structured projects, issue tracking, customers support (in a wide spectrum of "customer" notion), and so on.&lt;br /&gt;&lt;br /&gt;A couple of examples:&lt;br /&gt;&lt;br /&gt;"non specific software does not have the notion of release"&lt;br /&gt;Any activity has tasks and milestones.&lt;br /&gt;&lt;br /&gt;"a specific software can automatically record time spent on a project by watching what software the developer is using"&lt;br /&gt;Well, if you really believe this stuff, and you are a project manager, your company is definitively in danger.&lt;br /&gt;&lt;br /&gt;Actually, non being specific is a &lt;span style="font-style: italic;"&gt;virtue &lt;/span&gt;of Teamwork, as considering the software development team just as a bunch of guys who should get productive like everybody else, can be a quite healthy consideration.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Pietro &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Polsinelli&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-572485784577911206?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/572485784577911206/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=572485784577911206' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/572485784577911206'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/572485784577911206'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2007/02/does-software-development-work.html' title='Does software development work management need specific tools?'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_5i3h1CugZXo/RdX46KXC9gI/AAAAAAAAADA/d6amAELkyvA/s72-c/denial.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-5483262605921873112</id><published>2007-02-15T09:36:00.000+01:00</published><updated>2008-12-13T01:09:45.770+01:00</updated><title type='text'>Interview on Mokabyte</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_5i3h1CugZXo/RdQe8KXC9fI/AAAAAAAAAC0/tvZ57Se9m_Q/s1600-h/screen_0004.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5031680702601688562" style="margin: 0px 10px 10px 0px; float: left;" alt="" src="http://1.bp.blogspot.com/_5i3h1CugZXo/RdQe8KXC9fI/AAAAAAAAAC0/tvZ57Se9m_Q/s400/screen_0004.jpg" border="0" /&gt;&lt;/a&gt; &lt;a href="http://www.mokabyte.it/"&gt;Mokabyte&lt;/a&gt;, "the" monthly on Java in Italian, has published an &lt;a href="http://www2.mokabyte.it/cms/article.run?articleId=54I-YSL-RHC-DLC_7f000001_30480431_b728a151"&gt;interview&lt;/a&gt; to Roberto and myself, concerning &lt;a href="http://www.twproject.com/"&gt;Teamwork&lt;/a&gt; and the &lt;a href="http://www.joltawards.com/2007"&gt;Jolt candidature&lt;/a&gt;. The interview is due to meeting &lt;a href="http://ziobrando.blogspot.com/"&gt;Alberto Brandolini&lt;/a&gt; at JAOO, where we were the only Italians, and we found a shared interest for all that comes out in methodology and programming in Java. Then came the Jolt nomination, so he interviewed us.&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Actually he is a really funny guy, and has a nice &lt;a href="http://ziobrando.blogspot.com/"&gt;blog&lt;/a&gt;. Thank you Alberto!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Pietro Polsinelli&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-5483262605921873112?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/5483262605921873112/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=5483262605921873112' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/5483262605921873112'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/5483262605921873112'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2007/02/interview-on-mokabyte.html' title='Interview on Mokabyte'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_5i3h1CugZXo/RdQe8KXC9fI/AAAAAAAAAC0/tvZ57Se9m_Q/s72-c/screen_0004.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-4912131008074460788</id><published>2007-01-29T17:01:00.000+01:00</published><updated>2008-12-13T01:09:46.001+01:00</updated><title type='text'>Teamwork and RSS</title><content type='html'>&lt;span style="font-family:trebuchet ms;"&gt;The latest addition in Teamwork's list of features is the use of RSS feeds. Your news can now be deployed via a RSS feed to all team members who subscribe to the service, with all the advantages of RSS, such as using your chosen external news aggregator.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;Moreover, besides setting up as many feeds as you want, you have one "implicit" channel where all the events you subscribed to and the messages sent to you are published.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a style="font-family: trebuchet ms;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_5i3h1CugZXo/Rb4fSyJ9XbI/AAAAAAAAACo/v2TzE0KqvtA/s1600-h/rss.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_5i3h1CugZXo/Rb4fSyJ9XbI/AAAAAAAAACo/v2TzE0KqvtA/s400/rss.jpg" alt="" id="BLOGGER_PHOTO_ID_5025488641753701810" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;In the picture you can see a Teamwork page displaying RSS news items, on the left, and Internet Explorer 7's internal aggregator  showing the same RSS.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;Massimiliano Ferroni&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-4912131008074460788?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/4912131008074460788/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=4912131008074460788' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/4912131008074460788'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/4912131008074460788'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2007/01/teamwork-and-rss.html' title='Teamwork and RSS'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_5i3h1CugZXo/Rb4fSyJ9XbI/AAAAAAAAACo/v2TzE0KqvtA/s72-c/rss.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-5480798802864423811</id><published>2007-01-27T15:14:00.000+01:00</published><updated>2008-12-13T01:09:46.345+01:00</updated><title type='text'>Back from OOP 2007 in Munich</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_5i3h1CugZXo/RbtecyJ9XaI/AAAAAAAAACc/9G-ED6EjaYg/s1600-h/oop.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_5i3h1CugZXo/RbtecyJ9XaI/AAAAAAAAACc/9G-ED6EjaYg/s400/oop.jpg" alt="" id="BLOGGER_PHOTO_ID_5024713657854811554" border="0" /&gt;&lt;/a&gt; Roberto and myself just got back from &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;OOP&lt;/span&gt; in Munich. We had a fair show, and managed to find really good German cooking :-)&lt;br /&gt;&lt;br /&gt;While exposing as usual we did a lot of new developments and bug fixing, and got some nice ideas from the visitors; we had competent opinions, met a really nice guy from IBM (yes, really :-D), several bright developers (also girls!), and a bizarre but stimulating fellow from Siemens; a total of about 50 demos.  A 3.1.3 version will be out soon!&lt;br /&gt;&lt;br /&gt;It was an occasion for Roberto and me to reflect and discuss where to find our point of balance, between "groupware" (&lt;span style="font-style: italic;"&gt;i.e.&lt;/span&gt; shared to-&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;do's&lt;/span&gt;, boards, agenda, forum, portal features), project management, issue/bug track, document management and customer support; all who came to us reported the need, and we pointed out how limiting management to a specialised bug track leads to general unhappiness in the wider team, to which all agreed. Teamwork collects the different needs in one application, I believe quite maturely for what concerns the object model, and a little still to go for the interface, but we are almost there (I hope!).&lt;br /&gt;&lt;br /&gt;All Germans we met spoke English very well, fortunately, as my scholastic German is by now almost useless for explaining (while I understand quite a bit). The size of the &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;Messe&lt;/span&gt; expo area is amazing (you see only a bit in the picture); we went round it with our van, and it seemed never ending.&lt;br /&gt;&lt;br /&gt;There were a lot of expositors, many selling really bizarre stuff, from Smalltalk development (never heard the news?) to "fast" &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;UML&lt;/span&gt; (so what?), to &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;miraculous&lt;/span&gt; testing tools (ever tried with a web application?). Anyway, I guess that diversity is a good thing in itself, as my father (a geneticist) always tells me.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Pietro Polsinelli&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-5480798802864423811?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/5480798802864423811/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=5480798802864423811' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/5480798802864423811'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/5480798802864423811'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2007/01/back-from-oop-2007-in-munich.html' title='Back from OOP 2007 in Munich'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_5i3h1CugZXo/RbtecyJ9XaI/AAAAAAAAACc/9G-ED6EjaYg/s72-c/oop.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-3405313856236691702</id><published>2007-01-17T22:14:00.000+01:00</published><updated>2008-12-13T01:09:46.562+01:00</updated><title type='text'>Jolt 2007 Excellence Awards finalist</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_5i3h1CugZXo/Ra6T6mpt00I/AAAAAAAAACE/7GCLbDu9ApI/s1600-h/j01.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5021113269581894466" style="FLOAT: left; MARGIN: 0pt 10px 10px 0pt; CURSOR: pointer" alt="" src="http://4.bp.blogspot.com/_5i3h1CugZXo/Ra6T6mpt00I/AAAAAAAAACE/7GCLbDu9ApI/s400/j01.jpg" border="0" /&gt;&lt;/a&gt;Astonished and confused, today we got the notification that Teamwork is a Jolt 2007 Excellence Awards finalist: &lt;a href="http://www.joltawards.com/2007"&gt;http://www.joltawards.com/2007&lt;/a&gt; .&lt;br /&gt;&lt;br /&gt;The selection is quite &lt;a href="http://binstock.blogspot.com/2007/01/want-to-be-jolt-award-finalist-three.html"&gt;serious&lt;/a&gt;, the few finalists (6 in our category) are chosen among hundreds of candidates, so we are really happy about this nomination.&lt;br /&gt;&lt;br /&gt;The winners will be announced at &lt;a href="http://www.sdexpo.com/2007/west/"&gt;SD West 2007&lt;/a&gt;, on &lt;strong style="FONT-WEIGHT: normal"&gt;March 21, Wednesday, 6:30 PM – 7:30 PM&lt;/strong&gt;. Flying to Santa Clara in March!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-3405313856236691702?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/3405313856236691702/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=3405313856236691702' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/3405313856236691702'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/3405313856236691702'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2007/01/jolt-2007-excellence-awards-finalist.html' title='Jolt 2007 Excellence Awards finalist'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_5i3h1CugZXo/Ra6T6mpt00I/AAAAAAAAACE/7GCLbDu9ApI/s72-c/j01.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-8144658861086077533</id><published>2007-01-15T11:32:00.000+01:00</published><updated>2008-12-13T01:09:46.684+01:00</updated><title type='text'>Review on Java Black Belt</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_5i3h1CugZXo/RatYc2pt0zI/AAAAAAAAAB4/Y3v32sszyDE/s1600-h/screen_0002.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5020203462364615474" style="margin: 0px 10px 10px 0px; float: left; width: 254px; height: 399px;" alt="" src="http://2.bp.blogspot.com/_5i3h1CugZXo/RatYc2pt0zI/AAAAAAAAAB4/Y3v32sszyDE/s400/screen_0002.jpg" border="0" height="399" width="422" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Java Black Belt (with several dans) John Rizzo has published a short history of their adoption of Teamwork:&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;a href="http://www.javablackbelt.com/NewsDisplay.wwa"&gt;http://www.javablackbelt.com/NewsDisplay.wwa&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;He associates only myself (Pietro) to Teamwork development, as I'm the person he's discussing with, but of course Teamwork is the result of a collective development effort, coordinated by Roberto and myself.&lt;br /&gt;&lt;br /&gt;Discussing with John, we focused the need of a one-page editable task-tree page; Matteo Bicocchi already developed the Javascript and Ajax component, when back from Germany we'll integrate it in Teamwork.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-8144658861086077533?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/8144658861086077533/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=8144658861086077533' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/8144658861086077533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/8144658861086077533'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2007/01/review-on-java-black-belt.html' title='Review on Java Black Belt'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_5i3h1CugZXo/RatYc2pt0zI/AAAAAAAAAB4/Y3v32sszyDE/s72-c/screen_0002.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-273779579857637377</id><published>2007-01-07T12:12:00.000+01:00</published><updated>2008-12-13T01:09:47.391+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='testing bugs'/><title type='text'>Testing new Teamwork releases</title><content type='html'>There are several popular/hype theories and beliefs spread in the JEE world which we don't subscribe to in our web development: notably MVC and the tags/xml world in interface constructions. A further diffused superstition is the belief in &lt;span style="font-style: italic;"&gt;code-based testing&lt;/span&gt;, or building application tests by writing further code (many share this skepticism, for example see &lt;a href="http://webtest.canoo.com/webtest/manual/whitepaper.html"&gt;webtest.canoo.com&lt;/a&gt;).&lt;br /&gt;&lt;p class="MsoNormal"&gt;But this does not mean we do not believe in testing, on the contrary, testing is crucial in releasing reliable applications. And as Teamwork is getting wider adoption, not breaking adopted versions with new releases is becoming crucial for the survival of our product.&lt;/p&gt;&lt;p class="MsoNormal"&gt;We have used extensively &lt;a href="http://en.wikipedia.org/wiki/Hallway_testing"&gt;hallway testing&lt;/a&gt;; for us, a test makes sense if it is &lt;span style="font-weight: bold;"&gt;not&lt;/span&gt; done by the developers, and is performed on the user interface, not on the code. This is particularly true in the case of a web application, where the interface support changes in time and is not uniquely determined. Moreover the application behavior can be quite different depending on the browser, operating system and database used. To test an application like Teamwork, can mean testing several combinations for each page, hence resulting in several thousand tests, multiplied to the number of platform/db combinations. So we needed to somehow persist the tests done, and to make it possible to run thousands of them by one-click. We first checked&lt;br /&gt;&lt;br /&gt;1. &lt;a href="http://httpunit.sourceforge.net/"&gt;httpunit&lt;/a&gt;, but it’s based on the idea of writing tests in code, discarded,&lt;br /&gt;&lt;br /&gt;and&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;2. &lt;a href="http://htmlunit.sourceforge.net/"&gt;htmlunit&lt;/a&gt; and&lt;span style="font-size:0;"&gt; &lt;/span&gt;&lt;a href="http://watij.com/"&gt;watij.com&lt;/a&gt; , which rely on the assumption that you can automate finding links on a page, but this was partly true several years ago, though incredibly hard, and is impossible in a contemporary application like Teamwork which may any time alter the DOM by creating a link, so this too was discarded.&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-weight: bold;"&gt;Going our way. &lt;/span&gt;&lt;br /&gt;&lt;/p&gt;There are many many other tools, but the problem is how to ease the pain of recording structured information over Http request, and our framework knows &lt;span style="font-style: italic;"&gt;how&lt;/span&gt; to do this for its own applications. So we extended our in-house practical-in-the-extreme development platform with a web based test recording and playing framework.&lt;br /&gt;&lt;p class="MsoNormal"&gt;Our tests have a web based management interface, support composition, and are stored through Hibernate persistence on a separate database.&lt;/p&gt;You can create and refer to variables, you can write assertions using the &lt;a href="http://www.beanshell.org/"&gt;beanshell&lt;/a&gt; scripting language - we used bsh instead of JDK 6' inner &lt;a href="https://scripting.dev.java.net/"&gt;scripting framework&lt;/a&gt; as the latter does not yes support Java-like syntax and is a bit unstable.&lt;br /&gt;You may even get more reliable releases now :-D&lt;br /&gt;&lt;br /&gt;Here are a few screenshots of our tool:&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_5i3h1CugZXo/RaPWMF7qLSI/AAAAAAAAABI/Ml8Z2Y0H8hI/s1600-h/screen_0002.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5018089913060044066" style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" alt="" src="http://4.bp.blogspot.com/_5i3h1CugZXo/RaPWMF7qLSI/AAAAAAAAABI/Ml8Z2Y0H8hI/s200/screen_0002.jpg" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_5i3h1CugZXo/RaPWk17qLUI/AAAAAAAAABY/HV6-eY4R-PU/s1600-h/screen_0004.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5018090338261806402" style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" alt="" src="http://3.bp.blogspot.com/_5i3h1CugZXo/RaPWk17qLUI/AAAAAAAAABY/HV6-eY4R-PU/s320/screen_0004.jpg" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_5i3h1CugZXo/RaPWaF7qLTI/AAAAAAAAABQ/rmJbZs33UBk/s1600-h/screen_0003.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5018090153578212658" style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" alt="" src="http://4.bp.blogspot.com/_5i3h1CugZXo/RaPWaF7qLTI/AAAAAAAAABQ/rmJbZs33UBk/s320/screen_0003.jpg" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-weight: bold;"&gt;&lt;a href="http://4.bp.blogspot.com/_5i3h1CugZXo/RatN0Wpt0yI/AAAAAAAAABs/mDZ73sQSdsA/s1600-h/screen_0001.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5020191771463635746" style="margin: 0px 10px 10px 0px; float: left;" alt="" src="http://4.bp.blogspot.com/_5i3h1CugZXo/RatN0Wpt0yI/AAAAAAAAABs/mDZ73sQSdsA/s400/screen_0001.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-273779579857637377?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/273779579857637377/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=273779579857637377' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/273779579857637377'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/273779579857637377'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2007/01/testing-new-teamwork-releases.html' title='Testing new Teamwork releases'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_5i3h1CugZXo/RaPWMF7qLSI/AAAAAAAAABI/Ml8Z2Y0H8hI/s72-c/screen_0002.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-48429833091942407</id><published>2006-12-29T14:28:00.000+01:00</published><updated>2008-12-13T01:09:48.414+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>Teamwork and technological updates</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_5i3h1CugZXo/RZUaQdGNFOI/AAAAAAAAAAk/dSWT7BMDaec/s1600-h/jdk6.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5013942630137795810" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_5i3h1CugZXo/RZUaQdGNFOI/AAAAAAAAAAk/dSWT7BMDaec/s320/jdk6.jpg" border="0" /&gt;&lt;/a&gt; Teamwork's best year so far is ending; we finally had a little time to breathe, so in this days we have been refining Teamwork interface and updating the underlying technology: now Teamwork runs fine on &lt;a href="http://java.sun.com"&gt;JDK 6&lt;/a&gt;, and on &lt;a href="http://www.hibernate.org"&gt;Hibernate 3.2&lt;/a&gt;. We also switched to &lt;a href="http://sourceforge.net/projects/c3p0"&gt;c3p0&lt;/a&gt; connection pool technology, and updated the &lt;a href="http://www.ej-technologies.com/products/install4j/overview.html"&gt;Install4j&lt;/a&gt; to version 4.  In a following post we will share our ideas concerning web interfaces and the novelties introduced by Ajax. &lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_5i3h1CugZXo/RZUb-dGNFQI/AAAAAAAAAA4/RhCW9jhFTgM/s1600-h/DSC_0021-thumb.jpg"&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;We have also first alphas of next release, with the Outlook synch module, which will surely be part of it, and a new testing framework; we will soon launch a "vote for features", as done for version 3, to fix the priorities.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_5i3h1CugZXo/RZUZsdGNFNI/AAAAAAAAAAY/lJOVa-gWYJ0/s1600-h/jbb.gif"&gt;&lt;img id="BLOGGER_PHOTO_ID_5013942011662505170" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_5i3h1CugZXo/RZUZsdGNFNI/AAAAAAAAAAY/lJOVa-gWYJ0/s200/jbb.gif" border="0" /&gt;&lt;/a&gt; In the meantime, Teamwork's customers are growing at good pace. Interesting is that the &lt;a href="http://www.javablackbelt.com/"&gt;JavaBlackBelt&lt;/a&gt; community too is using Teamwork for their management. &lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-48429833091942407?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/48429833091942407/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=48429833091942407' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/48429833091942407'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/48429833091942407'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2006/12/teamwork-and-technological-updates.html' title='Teamwork and technological updates'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_5i3h1CugZXo/RZUaQdGNFOI/AAAAAAAAAAk/dSWT7BMDaec/s72-c/jdk6.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-2686326093048724925</id><published>2006-12-07T15:57:00.000+01:00</published><updated>2008-12-13T01:09:48.687+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web services'/><category scheme='http://www.blogger.com/atom/ns#' term='workflow'/><title type='text'>Teamwork and web services</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_5i3h1CugZXo/RXguNWa13QI/AAAAAAAAAAM/3d2z6Z-r2sM/s1600-h/axis3.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5005801792713645314" style="margin: 0px 10px 10px 0px; float: left;" alt="" src="http://1.bp.blogspot.com/_5i3h1CugZXo/RXguNWa13QI/AAAAAAAAAAM/3d2z6Z-r2sM/s200/axis3.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;We can now supply any Teamwork API through web services, by using &lt;a href="http://ws.apache.org/axis/"&gt;Apache's Axis.&lt;/a&gt; Axis is surprisingly simple to use; we tested stubs from Java and Word's VBA, and works like a charm.  You can satisfy wild needs, like having in Word the list of Teamwork's open tasks.&lt;br /&gt;&lt;br /&gt;This can be particularly useful for Teamwork with workflow, and using web services to push and pull info on external services. We plan to give more visibility to the workflow suite in the next months, and how nicely it can work bundled with Teamwork.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-2686326093048724925?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/2686326093048724925/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=2686326093048724925' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/2686326093048724925'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/2686326093048724925'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2006/12/teamwork-and-web-services.html' title='Teamwork and web services'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_5i3h1CugZXo/RXguNWa13QI/AAAAAAAAAAM/3d2z6Z-r2sM/s72-c/axis3.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-8178058452358829501</id><published>2006-11-24T22:48:00.000+01:00</published><updated>2006-11-24T23:14:44.948+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='developers conferences'/><title type='text'>JAOO's video - Teamwork included</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/x/blogger2/3382/3313/1600/632758/picture.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/x/blogger2/3382/3313/320/396952/picture.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The JAOO 2006 video is on line at&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blog.jaoo.dk/2006/11/jaoo_video.html"&gt;http://blog.jaoo.dk/2006/11/jaoo_video.html&lt;br /&gt;&lt;br /&gt;&lt;/a&gt;These guys do a  really good job -  and  its not trivial. 1000 bizarre  guys for three long days...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-8178058452358829501?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/8178058452358829501/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=8178058452358829501' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/8178058452358829501'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/8178058452358829501'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2006/11/jaoos-video-teamwork-included.html' title='JAOO&apos;s video - Teamwork included'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-116343950602227834</id><published>2006-11-13T18:35:00.000+01:00</published><updated>2006-11-24T12:59:18.971+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='microsoft project'/><category scheme='http://www.blogger.com/atom/ns#' term='export'/><category scheme='http://www.blogger.com/atom/ns#' term='import'/><title type='text'>Microsoft Project import/export in Teamwork 3.1.0</title><content type='html'>As you can see below, we are almost done with MS Project import/export. Now, this will satisfy those that use MS Project basically as a Gantt-drawing tool. MS Project power users (supposing there is such a used-to-pain being :-) ), will never be satisfied, as the two application have a deeply different model; same for Teamwork power users (there are many).  This functionality can be of use also for those who are forced to have a MS Project output for corporate and/or certification purposes (I know people that use Teamwork and export to MS Project only to send the project structure to review staff).&lt;br /&gt;&lt;br /&gt;In the course of this development, we introduced the &lt;em&gt;duration&lt;/em&gt; concept, which empowers tasks scheduling with a new dimension; a huge task tree can be set using durations, and the entire tree dates will depend only on a single entry point, which can be shifted in time.&lt;br /&gt;&lt;br /&gt;We use the nice API of &lt;a href="http://mpxj.sourceforge.net"&gt;http://mpxj.sourceforge.net&lt;/a&gt; .&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/3797/2851/1600/twGantt.jpg"&gt;&lt;img style="margin: 0px 10px 10px 0px; float: left;" alt="" src="http://photos1.blogger.com/blogger/3797/2851/400/twGantt.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;One of Teamwork's Gantt views.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/3797/2851/1600/export.jpg"&gt;&lt;img style="margin: 0px 10px 10px 0px; float: left;" alt="" src="http://photos1.blogger.com/blogger/3797/2851/400/export.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;small&gt;&lt;/small&gt;&lt;br /&gt;&lt;small&gt;&lt;span style="font-size:78%;"&gt;&lt;/span&gt;&lt;/small&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Select the export function.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/3797/2851/1600/msProjData.0.jpg"&gt;&lt;img style="margin: 0px 10px 10px 0px; float: left;" alt="" src="http://photos1.blogger.com/blogger/3797/2851/400/msProjData.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here you find Teamwork's resources and assignments in MS Project.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/3797/2851/1600/msProjGantt.jpg"&gt;&lt;img style="margin: 0px 10px 10px 0px; float: left;" alt="" src="http://photos1.blogger.com/blogger/3797/2851/400/msProjGantt.jpg" border="0" /&gt;&lt;/a&gt;Scheduling done in Teamwork, gets exported exactly as it was.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;Microsoft Project is a registered trademark of Microsoft Corporation.&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-116343950602227834?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/116343950602227834/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=116343950602227834' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/116343950602227834'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/116343950602227834'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2006/11/microsoft-project-importexport-in.html' title='Microsoft Project import/export in Teamwork 3.1.0'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-116241400245440884</id><published>2006-11-01T21:43:00.000+01:00</published><updated>2006-11-13T18:44:15.885+01:00</updated><title type='text'>SQL Injection Bug</title><content type='html'>If you've seen "&lt;a href="http://www.joelonsoftware.com/items/2006/11/01.html"&gt;What's a SQL Injection Bug?&lt;/a&gt;": well, we were aware of the bug, and we found several sites in which we could enter the "reserved" page using it. &lt;span style="font-style: italic;"&gt;Our&lt;/span&gt; software is safe, of course: we use only parameterized statements.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-116241400245440884?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/116241400245440884/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=116241400245440884' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/116241400245440884'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/116241400245440884'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2006/11/sql-injection-bug.html' title='SQL Injection Bug'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-116197674996561278</id><published>2006-10-27T21:13:00.000+02:00</published><updated>2006-11-13T18:44:15.774+01:00</updated><title type='text'>3.1: systemic improvements</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/3797/2851/1600/tomcat.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/3797/2851/200/tomcat.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Among the almost a hundred improvements  done for the forthcoming version 3.1 of Teamwork, there are several "systemic" ones.&lt;br /&gt;Like we found that many users never set Tomcat memory settings after trial; as Teamwork by default ran into Tomcat's minimal memory space (64MB), this led many to problems. So now it uses by default a 128MB space, and its documented in the install PDF how to set and modify this.&lt;br /&gt;Teamwork now supports schema evolution, and a bug concerning Oracle schema update has been fixed.&lt;br /&gt;We also found that under Linux there were cases when Teamwork was launched by a JDK 4 Java instance, which led to problems; this too is already fixed.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/3797/2851/1600/screen_0001.0.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/3797/2851/400/screen_0001.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;/span&gt;There is also a new page in Teamwork, "system check", that reports the system license, database, memory, version and scheduling state, giving the administrator the overall situation at a glance.  There is a "check for updates function".&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We mean to release 3.1 as a very stable version; hence we are being really very very careful in releasing an application highly compatible with the most diverse environments and situations.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Many of these improvements come from (invaluable) user feedback; thanks for that, and keep posting errors (maybe with your email, so we can notify you of the fix), observations, suggestions and sending e-mails.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-116197674996561278?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/116197674996561278/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=116197674996561278' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/116197674996561278'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/116197674996561278'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2006/10/31-systemic-improvements.html' title='3.1: systemic improvements'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-116065649570940794</id><published>2006-10-12T14:22:00.001+02:00</published><updated>2006-11-13T18:44:15.682+01:00</updated><title type='text'>Teamwork at JAOO 2006</title><content type='html'>&lt;a href="http://photos1.blogger.com/blogger/3797/2851/1600/standJAOO2006.0.jpg"&gt;&lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px" alt="" src="http://photos1.blogger.com/blogger/3797/2851/320/standJAOO2006.0.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Here is Teamwork stand at JAOO 2006. Among IBM, SUN, Google... it gave a funny feeling.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;A powerpoint of our "solution presentation" is downloadable from JAOO's site for those who have a JAOO login. The presentation expands &lt;a href="http://www.jaoo.dk/speakers/show_speaker.jsp?oid=96"&gt;this&lt;/a&gt; theme.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;JAOO is a very well organized developer's conference, and Aarhus a nice place to visit.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/3797/2851/1600/boy.jpg"&gt;&lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px" alt="" src="http://photos1.blogger.com/blogger/3797/2851/320/boy.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This is the beautiful boy's statue at Aarhus contemporary art museum, which is just in front of the Expo. Actually if had seen it already at the Venice Biennale two years ago, in a completely different context, where the statue fit exactly with the room where it was placed.&lt;br /&gt;&lt;br /&gt;I also bought a Peter Rabbit book in Danish for my daughter. Fortunately she can't read yet :-)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We did 44 demos at our booth; we asked every single person whether they were a Java developer using Hibernate: 98% of positive answers; in this sense it is likely true that Teamwork is the easiest application out there for integration with an existing IT infrastructure: everybody is using Hibernate, so it will be easy to link to Teamwork.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-116065649570940794?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/116065649570940794/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=116065649570940794' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/116065649570940794'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/116065649570940794'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2006/10/teamwork-at-jaoo-2006_12.html' title='Teamwork at JAOO 2006'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-115945080124911299</id><published>2006-09-28T15:30:00.000+02:00</published><updated>2006-11-13T18:44:15.464+01:00</updated><title type='text'>Teamwork ready for scrumming</title><content type='html'>Teamwork 3.1 (which we are using internally and will demo at JAOO) will come our ready for SCRUM:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/3797/2851/1600/homeScrum.jpg"&gt;&lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/3797/2851/320/homeScrum.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The custom SCRUM home&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/3797/2851/1600/sprintWiz.jpg"&gt;&lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/3797/2851/320/sprintWiz.jpg" border="0" /&gt;&lt;/a&gt; The SCRUM sprint wizard&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/3797/2851/1600/byRes.jpg"&gt;&lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/3797/2851/320/byRes.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The SCRUM team&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/3797/2851/1600/burnDown.jpg"&gt;&lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/3797/2851/320/burnDown.jpg" border="0" /&gt;&lt;/a&gt; A burn-down chart&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;To see the chart, on any task editor go to Edit -&gt; Issue Charts.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-115945080124911299?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/115945080124911299/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=115945080124911299' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/115945080124911299'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/115945080124911299'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2006/09/teamwork-ready-for-scrumming.html' title='Teamwork ready for scrumming'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-115934186306918092</id><published>2006-09-27T09:18:00.001+02:00</published><updated>2006-11-13T18:44:15.369+01:00</updated><title type='text'>Our first expo: in London</title><content type='html'>&lt;a href="http://photos1.blogger.com/blogger/3797/2851/1600/IMGP2511.jpg"&gt;&lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/3797/2851/320/IMGP2511.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Here we are at "Project Challenge 2006" in Olympia (London). We had 300 contacts and made over 50 demos in two days, more then we had done in a year!&lt;br /&gt;&lt;br /&gt;People liked our stand, "paperwork" (our graphical material) and in particular our orange shoes; we'll see whether they liked the app...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-115934186306918092?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/115934186306918092/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=115934186306918092' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/115934186306918092'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/115934186306918092'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2006/09/our-first-expo-in-london.html' title='Our first expo: in London'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-115781432293459417</id><published>2006-09-09T16:59:00.000+02:00</published><updated>2006-11-13T18:44:15.088+01:00</updated><title type='text'>Teamwork feedback and competitors: thanks!</title><content type='html'>When a few weeks ago I requested on Teamwork's mailing list and on the &lt;a href="http://www.twproject.net/applications/forum/thread.jsp?_VP_OBJ_ID=1472"&gt;forum&lt;/a&gt; for some feedback, I had no idea whether I would get any answer. Actually, the first day I got only one answer, which ran more or less “We don’t use it and we are happy about it”. So I wondered whether it was a good idea. But after a few days, feedback started coming in, ranging between fans saying that it is perfect as it is, to constructive criticism. And it keeps coming and coming. Thanks!&lt;br /&gt;You know why it took a few days to start? Because the feedback we get is highly structured: people are sending us detailed excel charts with features, issues, and comparisons, discussed in group meetings. Users of structured software have refined interactions :-)&lt;br /&gt;&lt;br /&gt;Among all this feedback, my dear friend Massimo Iacolare, a new born micro-ISV entrepreneur (when is your website coming up Massimo?), pointed to me to these links:&lt;br /&gt;&lt;br /&gt;http://www.shmula.com/158/focus-on-the-customer&lt;br /&gt;http://37signals.com/svn/archives2/instore_good_or_athome_good.php&lt;br /&gt;&lt;br /&gt;where it is briefly stated the need of "simple" and very specialized software, and that features look good in stores but not when using the apps.&lt;br /&gt;&lt;br /&gt;Well, what I can say is that Teamwork is surely good at home; for the good at the store, we’re working on it: we’re &lt;a href="http://www.amazon.com/Crossing-Chasm-High-Tech-Mainstream-Customers/dp/0066620023"&gt;"Crossing the chasm"&lt;/a&gt;" (&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/3797/2851/1600/sink.jpg"&gt;&lt;img style="FLOAT: left; MARGIN: 0pt 10px 10px 0pt; CURSOR: pointer" alt="" src="http://photos1.blogger.com/blogger/3797/2851/320/sink.jpg" border="0" /&gt;&lt;/a&gt;for a contextual perspective see the beautiful &lt;a href="http://www.amazon.com/gp/explorer/1590596234/2/ref=pd_lpo_ase/104-0088182-5415151?ie=UTF8"&gt;"Eric Sink on the Business of Software"&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Its good at home because first of all the model is good. Differences in interface reflect also differences in articulation of the underlying model; and my claim is that our competitors (in particular those reviewed in the previous posts) have simplistic models. On the 37signals post I found this brutal comment:&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-STYLE: italic"&gt;Sebhelyesfarku 06 Sep 06&lt;br /&gt;I like feature packed products. I’m not retarded like average consumers.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Well, this is sort of funny, but I am &lt;span style="FONT-WEIGHT: bold"&gt;not&lt;/span&gt; saying this. A user evaluating work management software can easily confuse the fact that we have to render a complex model, with feature bloating. The fact that Teamwork’s interface is more complex then that of some of its supposed competitors is not due to feature bloat, but to the articulation of the concepts involved. Actually, our powerful interfaces are a sign of health.&lt;br /&gt;&lt;br /&gt;Let’s consider security problems for even a medium-small company, say with a hundred employees. I bet that no one can find a single example of such a company where everyone can see all the information floating in the company in the IT structure. But more: there will always be local exceptions to a simple role-based security model, because there will always turn up a particular project that has its own security&lt;br /&gt;&lt;br /&gt;Teamwork 2 had a role based security model, further refined by “areas”, which were a way of completely separating say departments, in which the roles could be distributed. There could be users having different roles in different areas. But, as in all fundamentally role-based models, once you had a role, you would have it in the entire area; so once you could read a task in say production, you cold read all tasks in production. So users complained again and again that they wanted a more fine grained security, as fine grained as a single task. And notice that this has to scale with respect to the numbers of projects, users and roles, for example when you do a search, so you have to express this in &lt;a href="http://www.hibernate.org"&gt;HQL&lt;/a&gt; (or equivalently, in SQL) in order to performant instead of navigating the objects, and you have to comply to the security model, which is non trivial. But for version 3, by leveraging Roberto’s intuition of giving a role weight to assignments, we got all we had with version 2, plus fine grained security; and teams and structured work for free, too.&lt;br /&gt;&lt;br /&gt;All competitors I’ve seen so far don’t even reach Teamwork 2’s security model. And any (Team) work management application that doesn’t solve the case of exceptions, simply cannot work. Full stop.&lt;br /&gt;&lt;br /&gt;So you must have a complex model, covering 100% of cases. What distinguishes a good model from a bad one is how it covers &lt;span style="FONT-STYLE: italic"&gt;limit cases.&lt;/span&gt; Assuming that your model covers all above, and more, then we can talk about the interface ergonomics; but applications with a wrong model, will not fit the real world, however pretty their interface may be.&lt;br /&gt;&lt;br /&gt;Also the reasoning of some competitors for separating applications is leaky. How could you have distinct applications for security and work management? And users are supposed to jump from one application to the other? Not very user friendly.&lt;br /&gt;&lt;br /&gt;Interfaces for such applications cannot be simple; but they can be comfortable. And in Teamwork we have and are working hard on this (a page dedicated to “comfort” features of Teamwork 3 will appear soon on the web site). From release 3.0.0 to 3.0.6 the interface has been improved in hundreds of places, but the model in unchanged.&lt;br /&gt;We are working today on showing how to use Teamwork to support &lt;a href="http://www.controlchaos.com/"&gt;SCRUM&lt;/a&gt; methodology; even if we studied SCRUM last week, we are almost done implementing it and the model is fully compatible with it.&lt;br /&gt;&lt;br /&gt;Sorry for the long post, but I hope our ideas are clearer now. Pietro&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-115781432293459417?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/115781432293459417/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=115781432293459417' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/115781432293459417'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/115781432293459417'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2006/09/teamwork-feedback-and-competitors.html' title='Teamwork feedback and competitors: thanks!'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-115713803261759213</id><published>2006-09-07T21:10:00.000+02:00</published><updated>2006-11-13T18:44:14.614+01:00</updated><title type='text'>Beyond Teamwork 3.0.X series</title><content type='html'>What are we preparing for Teamwork future?&lt;br /&gt;&lt;br /&gt;First of all we have collected about 200 feature request and bugs since the release of 3.0.0, of which with the 3.0.1-3.0.6 releases we fixed almost all bugs (more then 50) and added several features.&lt;br /&gt;&lt;br /&gt;There should be another 3.0.X release with more fixes and a SCRUM module coming soon, together with a documentation video.&lt;br /&gt;&lt;br /&gt;For the next major release, considering also users feedback, for the moment we plan:&lt;br /&gt;&lt;br /&gt;- MS Exchange server integration&lt;br /&gt;- file server native security integration&lt;br /&gt;- MS project import/export&lt;br /&gt;- services (like rooms) allocation in time with graphical interface&lt;br /&gt;- PDF versions of all print pages&lt;br /&gt;- expansion of the CMS part, with also RSS feeds of news&lt;br /&gt;- text file contacts import&lt;br /&gt;- more paper documentation&lt;br /&gt;&lt;br /&gt;Hopes for release are in first quarter, 2007.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-115713803261759213?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/115713803261759213/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=115713803261759213' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/115713803261759213'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/115713803261759213'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2006/09/beyond-teamwork-30x-series.html' title='Beyond Teamwork 3.0.X series'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-115755678311930946</id><published>2006-09-06T17:32:00.000+02:00</published><updated>2006-11-13T18:44:14.793+01:00</updated><title type='text'>Another one: Teamworklive, and fashion in web applications</title><content type='html'>&lt;a href="http://photos1.blogger.com/blogger/3797/2851/1600/feed.gif"&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/3797/2851/1600/fashion.jpg"&gt;&lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/3797/2851/320/fashion.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I've taken a look at www.teamworklive. com. Little to say here: seems more a tool to set up a community, than anything related to managing work. Its crammed with Ajax, everything moves, reloads… JUST KEEP STILL for a second!&lt;br /&gt;And the object model below? Seems rough, un-engineered stuff: no trees…&lt;br /&gt;&lt;br /&gt;Developing like this is a bit like following fashion; but ergonomics has nothing to do with fashion. Like now so many new web applications, they feature big fonts; a few years ago fashion was small fonts. Fonts used in forms should be monospaced, and in display they should be small enough to be readable and transmit as much information as possible on the page. Web applications should be useful in work, not paged like a fashion magazine.&lt;br /&gt;&lt;br /&gt;For a dive into nonsense, such applications have RSS subscriptions everywhere: how can a secured, profiled application supply data as RSS, with no authentication? Teamwork will provide company news as RSS; but to provide a task content as RSS seems bizarre.&lt;br /&gt;&lt;br /&gt;Pietro&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-115755678311930946?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/115755678311930946/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=115755678311930946' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/115755678311930946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/115755678311930946'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2006/09/another-one-teamworklive-and-fashion.html' title='Another one: Teamworklive, and fashion in web applications'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-115753310811051538</id><published>2006-09-06T10:54:00.000+02:00</published><updated>2006-11-13T18:44:14.699+01:00</updated><title type='text'>Some impressions on Basecamp</title><content type='html'>&lt;strong&gt;Teamwork’s competitors&lt;/strong&gt;&lt;br /&gt;By reviewing Teamwork’s competitors, the only one that seems currently relevant is Basecamp (BC), www.basecamphq. com. It seems relevant to me because it starts with a seemingly similar philosophy:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;“Projects don't fail from a lack of charts, graphs, or reports, they fail from a lack of communication and collaboration. Basecamp makes it simple to communicate and collaborate on projects”&lt;br /&gt;&lt;/em&gt;(from BC’s home page)&lt;br /&gt;&lt;br /&gt;We see that we target the same market; we cover a distinct segmentation (BC is for personal – or at most 2,3 people use, Teamwork is for companies), but we will compete anyway. Teamwork covers a much wider set of features; but let’s forget this and compare the two on what they seemingly share.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Testing&lt;/strong&gt;&lt;br /&gt;After login (“enter” does not move you in the password field, as you would expect), you get in and you see that the interface is inspired by paper layouts. The object model is a simple (simplistic?) view of projects, where there are no subprojects.&lt;br /&gt;&lt;br /&gt;The notion of subtask is absent, because it is meant to be dealt with by the "milestone" notion. But milestones are related only linearly, in time; no parallel tasks are possible; how can this model reality?&lt;br /&gt;&lt;br /&gt;Don’t even think of doing a filter on search; actually, we couldn’t find almost anything by searching.&lt;br /&gt;&lt;br /&gt;Your to-do list can be multiple; it’s funny, because the environment is de-structured, so the simplest features are over-structured.&lt;br /&gt;&lt;br /&gt;A typical layout is this:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/3797/2851/1600/ScreenShot004.jpg"&gt;&lt;/a&gt;&lt;p&gt;&lt;a href="http://photos1.blogger.com/blogger/3797/2851/1600/ScreenShot004.0.jpg"&gt;&lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/3797/2851/400/ScreenShot004.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;How could this layout scale? There don't seem to be a search for persons. Companies cannot be organized; there are no departments. Its like moving across a book, where all information is always all printed. But it becomes quickly an A2-sized book, and hence cumbersome to use.&lt;br /&gt;&lt;br /&gt;Everything is built having in mind a limited set of data. Well, even a microscopic company like Open Lab has in few years created over a thousand tasks and subtasks, 3000 issues and so on. It is unthinkable to manage this kind of data in the BC interface. Generally I feel like there is a dimension missing. Like Lewis Carroll's flatland, moving around in BC is a problem; in Teamwork there are always the tools to get everywhere else fast.&lt;br /&gt;&lt;br /&gt;The subscriptions tab is right in the middle of your management links; but it refers to BC subscriptions! Actually, advertising is everywhere, and is a bother.&lt;br /&gt;&lt;br /&gt;In BC, ease of use is got by having software that does little, not by trying to make a powerful program easy to learn. Let’s put something clear: there is nothing wrong in having to learn how to use an application. Do you recall the first time you tried to use Excel? Well, it took some time. Things should be simplified, but not beyond the nature of the problem at hand. By over simplifying the matter at hand, you get an over simplified interface, but that’s not exactly a bright solution. This reminds me the evolution of TV media, where its target gets lower and lower, actively reducing the intelligence of users (I got rid of my TV long ago).&lt;br /&gt;&lt;br /&gt;Actually, the fact that it runs in ASP is presented as a feature, but it is a necessity, given the current poor integration capacities of Ruby. We, on Java and Hibernate, have maximized our IT integration capacity.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Minor things&lt;/strong&gt;&lt;br /&gt;- graphs are not clickable&lt;br /&gt;- accented characters are not sent properly by mail (lack Unicode or UTF-8 support).&lt;br /&gt;- like Teamwork, but even if it is a much simplified environment, and runs on the supplier server, is not exempt from exceptions:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/3797/2851/1600/ScreenShot005.jpg"&gt;&lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/3797/2851/200/ScreenShot005.jpg" border="0" /&gt;&lt;/a&gt; &lt;a href="http://photos1.blogger.com/blogger/3797/2851/1600/ScreenShot006.jpg"&gt;&lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/3797/2851/200/ScreenShot006.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;- It is natural for several users to post different posts on a board at the same time; here it is impossible&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p align="center"&gt;&lt;a href="http://photos1.blogger.com/blogger/3797/2851/1600/ScreenShot007.jpg"&gt;&lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/3797/2851/200/ScreenShot007.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;(and take care as usual to not get into an advertisement page).&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;/strong&gt; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;/strong&gt; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br /&gt;They have buzz on their side, which pushes them on even without quality; we have only quality to help us. We’ll see who wins.&lt;/p&gt;&lt;p&gt;Pietro&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-115753310811051538?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/115753310811051538/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=115753310811051538' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/115753310811051538'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/115753310811051538'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2006/09/some-impressions-on-basecamp.html' title='Some impressions on Basecamp'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-115713758160042353</id><published>2006-09-01T21:04:00.000+02:00</published><updated>2006-11-13T18:44:14.474+01:00</updated><title type='text'>Teamwork at Project Challenge 2006</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/3797/2851/1600/03.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/3797/2851/320/03.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;We are working intensely in these days to get ready for the London Expo for September 19. &lt;br /&gt;&lt;br /&gt;This is one of the plans for the stand. We even have a Maya 3D structure for it! Info on the expo at &lt;a href="http://www.projchallenge.com"&gt;http://www.projchallenge.com&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-115713758160042353?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/115713758160042353/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=115713758160042353' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/115713758160042353'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/115713758160042353'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2006/09/teamwork-at-project-challenge-2006.html' title='Teamwork at Project Challenge 2006'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-115713447134426444</id><published>2006-09-01T20:14:00.000+02:00</published><updated>2006-11-13T18:44:14.342+01:00</updated><title type='text'>Teamwork at JAOO 2006</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/3797/2851/1600/top_eos_logo.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/3797/2851/320/top_eos_logo.gif" alt="" border="0" /&gt;&lt;/a&gt; Among the attempts to set up a "expo" promotion campaign, I contacted in August the EOS team, which organizes&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/3797/2851/1600/02_jaoo2006_250_60.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/3797/2851/320/02_jaoo2006_250_60.jpg" alt="" border="0" /&gt;&lt;/a&gt;JAOO, one of the world's most important developers conferences.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The guys of EOS have been incredibly helpful, in particular Mai, and they've become.. Teamwork's users!&lt;br /&gt;&lt;br /&gt;We will participate to JAOO as exhibitors. See the details of JAOO at &lt;a href="http://www.jaoo.dk"&gt;http://www.jaoo.dk&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-115713447134426444?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/115713447134426444/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=115713447134426444' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/115713447134426444'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/115713447134426444'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2006/09/teamwork-at-jaoo-2006.html' title='Teamwork at JAOO 2006'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-115453492525381643</id><published>2006-08-02T18:07:00.000+02:00</published><updated>2006-11-13T18:44:14.247+01:00</updated><title type='text'>Teamwork videos behind the scenes</title><content type='html'>We've published a little behind the scenes video:&lt;br /&gt;&lt;a href="http://dl.open-lab.com/videos/behind.htm"&gt;http://dl.open-lab.com/videos/behind.htm&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;I guess that it's fun only for us :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-115453492525381643?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/115453492525381643/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=115453492525381643' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/115453492525381643'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/115453492525381643'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2006/08/teamwork-videos-behind-scenes.html' title='Teamwork videos behind the scenes'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-115159222784096762</id><published>2006-06-29T16:38:00.000+02:00</published><updated>2006-11-13T18:44:14.148+01:00</updated><title type='text'>Teamwork interface translations</title><content type='html'>&lt;a href="http://photos1.blogger.com/blogger/3797/2851/1600/french.0.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/3797/2851/320/french.0.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/3797/2851/1600/german.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/3797/2851/320/german.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We are very happy to have the German and French translations of the interface (release 3.0.2). Of course any user can further customize it simply through the web interface!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-115159222784096762?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/115159222784096762/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=115159222784096762' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/115159222784096762'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/115159222784096762'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2006/06/teamwork-interface-translations.html' title='Teamwork interface translations'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-114985592349450747</id><published>2006-06-09T14:21:00.000+02:00</published><updated>2006-11-13T18:44:14.027+01:00</updated><title type='text'>Teamwork 3 on TheServerSide</title><content type='html'>&lt;a href="http://photos1.blogger.com/blogger/3797/2851/1600/twOnTSS_small.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/3797/2851/320/twOnTSS_small.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Strangely for an industry news, Teamwork release made it to TSS'home. This caused a huge amount of visits to our sites. Thanks TSS!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-114985592349450747?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/114985592349450747/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=114985592349450747' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/114985592349450747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/114985592349450747'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2006/06/teamwork-3-on-theserverside.html' title='Teamwork 3 on TheServerSide'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-114957759902165917</id><published>2006-06-06T09:00:00.000+02:00</published><updated>2006-11-13T18:44:13.912+01:00</updated><title type='text'>Teamwork 3.0 is ready: thanks</title><content type='html'>I am totally happy (and the glass from the Spumante bottle that we've just opened helps) that we released Teamwork 3 in time, and with a gorgeous set of features.&lt;br /&gt;&lt;br /&gt;I believe that we have followed all the ideals to which we agreed in preparing release; some of these are:&lt;br /&gt;&lt;br /&gt;- to make it easy to start using it&lt;br /&gt;- to make the interface easy to use&lt;br /&gt;- to give a more powerful model&lt;br /&gt;- to document it through videos&lt;br /&gt;- to listen to users feedback&lt;br /&gt;- to simplify the use of security&lt;br /&gt;- to produce interactive reports&lt;br /&gt;- to keep teamwork compatible with all server and databases&lt;br /&gt;- to simplify installation&lt;br /&gt;&lt;br /&gt;Crucial in this achievement has been the contribution of Roberto Bicchierai, whose legendarily wide expertise made us build a strong backbone as model (and also some beautiful tattoos). In detail, the formidable Open Lab team: Afra Balletta, Roberto Bicchierai, Matteo Bicocchi, Irina Branovic, Ilaria Di Gaeta, Caterina Feroci, Massimiliano Ferroni, Amélie Ngantcha, Laura Mirri, Giuseppe Panzarella, Matteo Rossi, Carlo Zoli, and myself, Pietro Polsinelli.&lt;br /&gt;&lt;br /&gt;Some people who have helped us in the past: Allegra Bicocchi, Andrea Costantinis, Ezio Manetti, Giorgio Medina, Nicola Ponzeveroni, Teresa Di Viesti. Some users that gave most valuable feedback: Stefano Besseghini, William Ho, Brendan Boyle, Federico Rapi, Keith Page, Mauro Manetti, Tommaso Pecchioli, Massimo Iacolare, Alessandro Veracchi.&lt;br /&gt;&lt;br /&gt;Technically, we owe mostly to Gavin King's creation, Hibernate, and to Joel Spolsky's writings and links on user interfaces, among many, many others.&lt;br /&gt;&lt;br /&gt;To all of you my deepest thanks for making my fixed obsession come true and maybe become something useful.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-114957759902165917?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/114957759902165917/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=114957759902165917' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/114957759902165917'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/114957759902165917'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2006/06/teamwork-30-is-ready-thanks.html' title='Teamwork 3.0 is ready: thanks'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-114906763154982885</id><published>2006-05-31T11:22:00.000+02:00</published><updated>2006-11-13T18:44:13.816+01:00</updated><title type='text'>Looking at competitors: @Task</title><content type='html'>&lt;small&gt;Note: this post expresses the personal opinion of Pietro Polsinelli. The opinions expressed may be highly biased, but told with no hypocrisy, as is customary in blogs.&lt;/small&gt;&lt;br /&gt;&lt;br /&gt;Solicited by an evaluator, I took a look at one of our competitors: the @Task application. (call it @T from now on). &lt;br /&gt;&lt;br /&gt;The first unconfortable thing is that on the site there is no hand on demo. So I had to enrol just to look at the flash “presentation” (strange), which gives little information, apart from many big words.  So I also read all the PDF on the site, and looked the screenshots. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Differences of power&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Looking at the screenshots, their task model seems simple minded; in lists, the search filters seem poor, considering those in Teamwork, which allow QBE and its combinations.&lt;br /&gt;&lt;br /&gt;The sentence (from the site) "Create Access level, Company, Project, User" seems symptomatic of @T not being really role-based, but again with "hard-coded" security. Permissions are set directly on the task, and not through assignments: Teamwork is far more flexible on this.&lt;br /&gt;&lt;br /&gt;There does not seem to be any period events management. The agenda interface seems less user friendly than that of Teamwork; again it seems to have only a fraction of the power of Teamwork schedule model. Teamwork’s skins are also prettier.&lt;br /&gt;&lt;br /&gt;Document management doesn’t seem to integrate with the file system as Teamwork's file storages.&lt;br /&gt;&lt;br /&gt;There is an underlying difference of approach: take the notion of “approval”: can this be met by introducing simply a field with a user who approves? This is an incredibly simplistic approach: approval can be as complex as a task; what if more then ONE signature is necessary? It is much better to have a dependency from an approval task, or even more, to connect the task to a workflow definition which captures also approval.&lt;br /&gt;&lt;br /&gt;Another example: to customize pages, we included a complete content-management system in Teamwork 3: I strongly doubt that @T has this power; our portal features are hard to beat.&lt;br /&gt;&lt;br /&gt;More generally @T "feels" a "hard-coded" application. It is not clear from the documentation if it supports arbitrarily deep task and resource trees (Teamwork does indeed).&lt;br /&gt;&lt;br /&gt;A difference in modelling power can have big consequences in time; what can be trivial in a general model, can be impossible in a restricted one.&lt;br /&gt;&lt;br /&gt;Some ideas seem plainly wrong like having "Profitability reports": profitability is so subject to variations between companies and even between projects that it can be only evaluated by having the task give you the plain costs; only a human with the costs in hand can evaluate the real profitability.&lt;br /&gt;&lt;br /&gt;It is probably a difference of basic philosophy: @T is focused on standards, Teamwork on modelling power.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Application integration&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;1) For application integration, the fact that Teamwork is Hibernate based, an open and by now dominant technology, is surely a plus. @T seems to support natively only&lt;br /&gt;&lt;br /&gt;&lt;small&gt;&lt;small&gt;* Oracle, &lt;br /&gt;* Microsoft SQL Server 2000 &lt;br /&gt;* MySQL&lt;/small&gt;&lt;/small&gt;&lt;br /&gt;&lt;br /&gt;while Teamwork supports     &lt;br /&gt;&lt;small&gt;&lt;br /&gt;* Oracle 8i, 9i, 10g&lt;br /&gt;* DB2 7.1, 7.2, 8.1&lt;br /&gt;* Microsoft SQL Server 2000&lt;br /&gt;* Sybase 12.5 (JConnect 5.5)&lt;br /&gt;* MySQL 3.23, 4.0, 4.1, 5.0&lt;br /&gt;* PostgreSQL 7.1.2, 7.2, 7.3, 7.4, 8.0, 8.1&lt;br /&gt;* TimesTen 5.1&lt;br /&gt;* HypersonicSQL 1.61, 1.7.0, 1.7.2, 1.7.3, 1.8&lt;br /&gt;* SAP DB 7.3&lt;br /&gt;* Apache Derby&lt;br /&gt;* HP NonStop SQL/MX 2.0 (requires Dialect from HP)&lt;br /&gt;* Firebird (1.5 with JayBird 1.01 tested)&lt;br /&gt;* FrontBase&lt;br /&gt;* Informix&lt;br /&gt;* Ingres&lt;br /&gt;* Interbase (6.0.1 tested)&lt;br /&gt;* Mckoi SQL&lt;br /&gt;* Pointbase Embedded (4.3 tested)&lt;br /&gt;* Progress 9&lt;br /&gt;* Microsoft Access version from 95, 97, 2000, XP, 2002, to 2003 (requires Dialect from HXTT)&lt;br /&gt;* Corel Paradox version from 3.0, 3.5, 4.x, 5.x, 7.x to 11.x (requires Dialect from HXTT)&lt;br /&gt;* flat text , CSV file, TSV file, fixed-length, and variable-length binary file (requires Dialect from HXTT)&lt;br /&gt;* Xbase database (dbase, Visual DBASE, SIx Driver, SoftC, Codebase, Clipper, Foxbase, Foxpro, VFP(3.0,5.0,7.0,8.0,9.0, 10), xHarbour, Halcyon, Apollo, Goldmine, and BDE) (requires Dialect from HXTT)&lt;br /&gt;&lt;/small&gt;&lt;br /&gt;:-D&lt;br /&gt;&lt;br /&gt;2) Teamwork can be integrated with a real workflow engine (JBPM)&lt;br /&gt;&lt;br /&gt;3) No trace of sources of @T to be found; Teamwork’s persistent model is on Sourceforge.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Finally&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The impression from the website is that @T is a quite poor application, but its few points are presented and stressed again and again (again lack of live demo suggests this), so it has a strong commercial support.&lt;br /&gt;&lt;br /&gt;We could make a deal with our customers: we'll reproduce any report that @T does in Teamwork for free, if it is compatible with the data model.&lt;br /&gt;&lt;br /&gt;Last but not least, we are &lt;span style="font-weight:bold;"&gt;very&lt;/span&gt; competitive on price: &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;@T: $395/User plus a 20 percent annual maintenance and upgrade fee &lt;br /&gt;vs.&lt;br /&gt;&amp;nbsp;&amp;nbsp;Teamwork: 10Euro/User with no expiry&lt;br /&gt;&lt;br /&gt;Hence, imho, we cost less, and give more.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-114906763154982885?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/114906763154982885/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=114906763154982885' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/114906763154982885'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/114906763154982885'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2006/05/looking-at-competitors-task.html' title='Looking at competitors: @Task'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-114900929130242249</id><published>2006-05-30T18:54:00.000+02:00</published><updated>2006-11-13T18:44:13.702+01:00</updated><title type='text'>Video support material</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/3797/2851/1600/cover.0.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/3797/2851/400/cover.0.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In our videos we create a sample publishing company, "International Geographic". Here you see the graphical material created for it.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/3797/2851/1600/task.0.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/3797/2851/200/task.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/3797/2851/1600/structure.0.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/3797/2851/320/structure.0.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/3797/2851/1600/logo.2.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/3797/2851/200/logo.1.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-114900929130242249?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/114900929130242249/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=114900929130242249' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/114900929130242249'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/114900929130242249'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2006/05/video-support-material.html' title='Video support material'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-114897748052479233</id><published>2006-05-30T10:23:00.000+02:00</published><updated>2006-11-13T18:44:13.612+01:00</updated><title type='text'>Some Teamwork 3 numbers</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/3797/2851/1600/numbers.gif"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/3797/2851/320/numbers.gif" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;4 graphic designers&lt;br /&gt;7 beta testers&lt;br /&gt;10 developers&lt;br /&gt;11 companies bought it before it was out&lt;br /&gt;100 subscribers from Freshmeat&lt;br /&gt;318 issues closed&lt;br /&gt;366 early access members&lt;br /&gt;969 evaluation requests&lt;br /&gt;1.091 enrolled on forum&lt;br /&gt;1.229 posts on the forum&lt;br /&gt;4.000 worklog hours&lt;br /&gt;10.000 builds&lt;br /&gt;28.000 downloads of version 2&lt;br /&gt;99.751 sessions on the forum&lt;br /&gt;Uncountably many discussions of Pietro and Roberto ..&lt;br /&gt;&lt;br /&gt;Now the only number missing is.. how many will we sell ??&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-114897748052479233?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/114897748052479233/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=114897748052479233' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/114897748052479233'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/114897748052479233'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2006/05/some-teamwork-3-numbers.html' title='Some Teamwork 3 numbers'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-114668169519551848</id><published>2006-05-15T20:38:00.000+02:00</published><updated>2006-11-13T18:44:13.233+01:00</updated><title type='text'>Teamwork dashboard</title><content type='html'>Dashboard functionalities made it for the final: one can customize the home through simple drag and drop on the browser, choosing among several powerful active parts.&lt;br /&gt;&lt;br /&gt;We just deployed this feature to the Open lab team, and it's being an immediate success. I've never seen so many different Teamworks!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/3797/2851/1600/pietro.0.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/3797/2851/320/pietro.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/3797/2851/1600/roberto.0.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/3797/2851/320/roberto.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/3797/2851/1600/cate.0.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/3797/2851/320/cate.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/3797/2851/1600/admin.0.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/3797/2851/320/admin.0.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-114668169519551848?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/114668169519551848/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=114668169519551848' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/114668169519551848'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/114668169519551848'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2006/05/teamwork-dashboard.html' title='Teamwork dashboard'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-114725380966205843</id><published>2006-05-10T11:30:00.000+02:00</published><updated>2006-11-13T18:44:13.342+01:00</updated><title type='text'>Meeting in Florence</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/3797/2851/1600/h_05.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/3797/2851/320/h_05.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;We've had an interesting reunion on how to promote Teamwork in the eve of version 3 release. Among other things, we will host a Teamwork' seminar in Florence in September (2006),  where we plan to speak about:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Advanced security settings&lt;br /&gt;&lt;br /&gt;Creating custum forms and reports&lt;br /&gt;&lt;br /&gt;Creating a custom enterprise dashboard&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The place will be San Gallo Palace, a beautiful hotel at walk distance from center town.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-114725380966205843?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/114725380966205843/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=114725380966205843' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/114725380966205843'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/114725380966205843'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2006/05/meeting-in-florence.html' title='Meeting in Florence'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-114640535305560479</id><published>2006-04-30T15:52:00.000+02:00</published><updated>2006-11-13T18:44:13.014+01:00</updated><title type='text'>Teamwork 3 sections and features are done</title><content type='html'>We made it: teamwork 3 as an application is finished. It took about 4000 hours of development, including programming, design, promoting and supporting it (thanks to Teamwork, we can track this wery well).&lt;br /&gt;&lt;br /&gt;In this two years we tried to develop as much as culturally as well as from the development point of view. We studied interface design, web application architecture, project management culture, workgroup software, calendar tools, and many other stuff.&lt;br /&gt;&lt;br /&gt;Some readings and links that were important:&lt;br /&gt;  &lt;br /&gt;JBlooming framework www.jblooming.org .&lt;br /&gt;Jbpm http://www.jbpm.org/  &lt;br /&gt;Hibernate www.hibernate.org&lt;br /&gt;Gavin King, Christian Bauer, Hibernate in Action: Practical Object/Relational Mapping, Manning, 2004&lt;br /&gt;JetBrain’s Intellij www.intellij.com&lt;br /&gt;Microsoft Project interoperability http://mpxj.sourceforge.net&lt;br /&gt;Erik Hatcher and Otis Gospodnetić, Lucene in Action, Mannings 2004&lt;br /&gt;Joel Spolsky, User Interface Design for Programmers, Apress,  2001&lt;br /&gt;Joel on software: www.joelonsoftware.com&lt;br /&gt;Bruce A. Tate, Beyond Java, OReilly, 2005  &lt;br /&gt;Eliyahu M. Goldratt, Jeff Cox, The Goal: A Process of Ongoing Improvement, Gower Publishing Limited, 2004&lt;br /&gt;Edward M. Reingold, Nachum Dershowitz, Calendrical Calculations,Cambridge University Press, 2001&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-114640535305560479?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/114640535305560479/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=114640535305560479' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/114640535305560479'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/114640535305560479'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2006/04/teamwork-3-sections-and-features-are.html' title='Teamwork 3 sections and features are done'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27143478.post-114616622993377131</id><published>2006-04-27T21:27:00.000+02:00</published><updated>2006-11-13T18:44:12.865+01:00</updated><title type='text'>Teawork's blog</title><content type='html'>I've been posting on teamwork for quite a while on my blog, at &lt;a href="http://ppolsinelli.blogspot.com"&gt;ppolsinelli.blogspot.com&lt;/a&gt;.  But Teamwork deserves a blog for itself.&lt;br /&gt;&lt;br /&gt;We are on the eve of the most important release of Teamwork, 3.0. We will blog about what we are doing and how we progress in this crucial phase, about our choices, and the market and community response.&lt;br /&gt;&lt;br /&gt;Have fun,&lt;br /&gt;&lt;br /&gt;Pietro Polsinelli&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27143478-114616622993377131?l=twproject.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://twproject.blogspot.com/feeds/114616622993377131/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27143478&amp;postID=114616622993377131' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/114616622993377131'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27143478/posts/default/114616622993377131'/><link rel='alternate' type='text/html' href='http://twproject.blogspot.com/2006/04/teaworks-blog.html' title='Teawork&apos;s blog'/><author><name>Teamwork's Blog</name><uri>http://www.blogger.com/profile/08359182302556772566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
