tag:blogger.com,1999:blog-41705478063922461202024-02-08T02:14:36.045-08:00Unrestricted Content ManagementI have been working with WCM & ECM for over 7 years. Designing and developing solutions for my customers.
I have worked with customer of all sizes from large corporate and fortune 100 companies, to Federal Agencies, and smaller companies.
This blog will be dedicated to helping others in the CMS industry find solutions that are sometimes outside the box. Having worked for a large ECM vendor for several years it has been nice to not be as restricted in the solutions that I provide.David Musserhttp://www.blogger.com/profile/00470603885336671512noreply@blogger.comBlogger8125tag:blogger.com,1999:blog-4170547806392246120.post-40808355853469509582007-06-30T21:20:00.000-07:002007-07-01T06:48:14.309-07:00 <div style="text-align: center;"><h1>Alfresco 2.1 (Community 10 minute review)</h1><div style="text-align: left;">I would like to think that I am so good that 10 minutes is all I need to tell if something is good or not, but to be honest this 10 minute review will take a little longer. I'm starting with a fairly clean Fedora 7 Install. <br>The download of the Alfresco-Community Linux install version is still going, so another 5 minutes and I will be able to get started. I will not deduct this from my 10 minutes.<br><br>While the download is finishing let me say that I have been looking forward to this release for a while. I believe this will be a release that will either set Alfresco ahead of the competition, or it will be one that just misses the mark. It's bad to think that it could be one or the other, but to be honest think it could. I have liked where Alfresco is, and appears to be going, but coming from a software vendor before I realize that it's often difficult to please everyone.<br><br>Some of the newer features of Alfresco that I'm looking forward to are:<br><ul><li>Web Scripts</li><li>Search for WCM</li><li>Content Launch and Expiration</li></ul>I should state that I primarily work on the WCM side, so there are lots of other features that you should check out for both WCM, and ECM: <a title="http://wiki.alfresco.com/wiki/Release_2.1" href="http://wiki.alfresco.com/wiki/Release_2.1">http://wiki.alfresco.com/wiki/Release_2.1</a><br><br>Ok the download has finished... It is now 10:56 pm let's see what happens, ok my boss IM'ed me for something. Ok I am back. It's now 11:15 pm... so restarting the clock.<br><br>I will include some screen shots of the install:<br><br><div style="padding: 1em 0pt; text-align: left;"><img src="http://docs.google.com/File?id=dcbj7wmw_115hrn5gdf5"><br><br><div style="padding: 1em 0pt; text-align: left;"><img src="http://docs.google.com/File?id=dcbj7wmw_116hp4xnncb"><img src="http://docs.google.com/File?id=dcbj7wmw_117fs9t25cm"><br><br><div style="padding: 1em 0pt; text-align: left;"><div style="padding: 1em 0pt; text-align: left;"><img src="http://docs.google.com/File?id=dcbj7wmw_118hjwbvxd5"><img src="http://docs.google.com/File?id=dcbj7wmw_119g6jcv5cq"><br><div style="padding: 1em 0pt; text-align: left;"><div style="padding: 1em 0pt; text-align: left;"><div style="padding: 1em 0pt; text-align: left;"><img src="http://docs.google.com/File?id=dcbj7wmw_122d8wf7f8m"><img src="http://docs.google.com/File?id=dcbj7wmw_123gqxcbjm6"><br><br><div style="padding: 1em 0pt; text-align: left;"><div style="padding: 1em 0pt; text-align: left;"><img src="http://docs.google.com/File?id=dcbj7wmw_124fhzf4fc7"><img src="http://docs.google.com/File?id=dcbj7wmw_125cptmwxms"><br><br></div><div style="padding: 1em 0pt; text-align: left;"><div style="padding: 1em 0pt; text-align: left;"><div style="padding: 1em 0pt; text-align: left;"><img src="http://docs.google.com/File?id=dcbj7wmw_128gr4z7fgg"><img src="http://docs.google.com/File?id=dcbj7wmw_131p76cfzgm"><br></div></div>Now let's do the WCM Install...<br><div style="padding: 1em 0pt; text-align: left;"><img src="http://docs.google.com/File?id=dcbj7wmw_132cdh9kjfs" height="383" width="551"><img src="http://docs.google.com/File?id=dcbj7wmw_133jmmnjsg5" height="379" width="491"><br><br>Ok, now to read the Readme for mysql... I dislike reading and would rather just turn it on, but sometimes you need to read the instructions. There is a configuration for changing the Database to mysql.<br><br>- custom-repository.properties<br><div style="padding: 1em 0pt; text-align: left;"><img src="http://docs.google.com/File?id=dcbj7wmw_134frdcq7dw"> <br><br>I did not have to touch this file, but it's in the readme so check on yours:<br>- custom-hibernate-dialect.properties<br><br><div style="padding: 1em 0pt; text-align: left;"><img src="http://docs.google.com/File?id=dcbj7wmw_135hf2dh7hp"><br><br>Let's start it up:<br><br><div style="padding: 1em 0pt; text-align: left;"><img src="http://docs.google.com/File?id=dcbj7wmw_136cs9q8mhq"><br><br><div style="padding: 1em 0pt; text-align: left;"><img src="http://docs.google.com/File?id=dcbj7wmw_137c9twpnd8"><br><br>Let's try it out now... it's been more than 10 min... i can blame it on the snapshots, so let's assume the above would have taken 5 min, without the screen shots... In reality it's 11:30 now.<br><br>So far so good, now issues with the startup:<br><br><div style="padding: 1em 0pt; text-align: left;"><img src="http://docs.google.com/File?id=dcbj7wmw_1383jjkfwdc" height="832" width="912"><br><br>Creating a test project:<br><br><div style="padding: 1em 0pt; text-align: left;"><img src="http://docs.google.com/File?id=dcbj7wmw_139d325w7dz" height="794" width="920"><br><br>The rest of the wizard looks like normal. Doing a bulk upload to get me started...<br><br></div>My Alfresco with the WebForm Web Script. I do like this. It shows you the forms (if I had any) and the modified files.<br><br><div style="padding: 1em 0pt; text-align: left;"><div style="padding: 1em 0pt; text-align: left;"><img src="http://docs.google.com/File?id=dcbj7wmw_141c9zq2whp" height="756" width="939"><br><br>Preview opens the code view... I don't like that. Would be nice to see the world icon and do a real preview, but perhaps this is something I will try to do later on...<br><br><div style="padding: 1em 0pt; text-align: left;"><img src="http://docs.google.com/File?id=dcbj7wmw_142hk8sjrff" height="663" width="822"><br><br>File submission, and notice the content launch and expiration. These features will be very nice.<br><br><div style="padding: 1em 0pt; text-align: left;"><img src="http://docs.google.com/File?id=dcbj7wmw_143gvksvcfx" height="814" width="1009"><br><br>Web Script of Tasks. I like this one, but again it needs the preview link. If you click preview here it shows the source code. It would be nice to show a real preview. You can click manage task<br>and see the preview which is nice. <br><div style="padding: 1em 0pt; text-align: left;"><img src="http://docs.google.com/File?id=dcbj7wmw_144grxqmfd3" height="811" width="1007"><br><br>The manage task window also displays the launch date.<br><br><div style="padding: 1em 0pt; text-align: left;"><img src="http://docs.google.com/File?id=dcbj7wmw_145ncc9tkgt" height="813" width="1008"></div><br>Displays as pending submission. Which is nice as well.<br><br><div style="padding: 1em 0pt; text-align: left;"><div style="padding: 1em 0pt; text-align: left;"><img src="http://docs.google.com/File?id=dcbj7wmw_147xn98svf4" height="797" width="988"><br><br>In conclusion... I like what I see so far and like the direction. On search I am a little confused. It says "Search: Provides asynchronous indexing of the latest Staging snapshot to support search in web apps being built and managed in Alfresco. Designed for easy use within web scripts so that deployed web pages can quickly generate lists of items published via Alfresco." in the release notes. I was under the impression that Open Search would also be able to search the content in a Web Project. This is something that is critical to general users. Most of my users if they have a search box in the U.I. they are going to wonder why their content does not show up, and then you have to say oh it will, just not yet. So hopefully I am wrong and this is something that can be turned on or a simple web script developed. Either way I'll have to look into it.<br><br>More later... <br><br>David<br><br>P.S. My 10 minute review turned into an hour...<br><br></div></div><br></div></div><br></div><br></div><br><br><br></div><br></div></div><br></div><br></div><br><br> </div></div><br><div style="padding: 1em 0pt; text-align: left;"><div style="padding: 1em 0pt; text-align: left;"><div style="padding: 1em 0pt; text-align: left;"><br><br><br></div></div></div></div></div><br></div></div><br><br><div style="padding: 1em 0pt; text-align: left;"><br></div><br></div><br></div><br></div><br></div><br></div><br></div></div><div style="text-align: center;"> </div>David Musserhttp://www.blogger.com/profile/00470603885336671512noreply@blogger.com1tag:blogger.com,1999:blog-4170547806392246120.post-7504015969198700552007-04-02T11:37:00.000-07:002007-04-02T12:16:56.693-07:00My Junk Linux Box or A little FunI could not decide on a title for this entry... so I apologize. What I would like to mention is why the difficulty with deciding on the title.<br /><br />The First Title: I have a Junk Linux Box... that said with the warmest endearment of the word junk, in other words it's a spare box that I beat the heck out of, and do rely on a lot, but all in all it's a junker. It is setup on an old pc with as much ram as it can handle, and I rebuild it about once ever 4 or 5 months. So this box does exactly what I need it to do and I do care for it a lot, but all in all if it dies I'll simply replace whatever fries on it and bring it back to life, but this article is not about my development environment. It is more about:<br /><br />The Second Title: I wanted to have a little fun this weekend, and while checking out another CMS product called OpenCMS (part of another project) I decided to see if I could have a little fun.<br /><br /><span style="font-weight: bold;">Can Alfresco WCM & OpenCMS Live Together in Alfresco's Tomcat Instance<br /><br /></span>Taking the life of my "Junk Linux Box" in hand I started reading more and more about Alfresco and OpenCMS's requirements and architecture. I could not see anything that said "DO NOT DO THIS!" "DUMB IDEA" so I continued on.<br /><br />Before I forget I should also mention that this box is running CentOS, and has MySql, Apache, MediaWiki, and Alfresco 2.0 on it already.<br /><br />Following the OpenCMS <a href="http://www.opencms.org/opencms/en/development/installation/server.html">(instructions)</a> I saw that for the most part having Alfresco WCM gave me most of what I needed: Java, Tomcat, and MySql.<br /><br />So I kept going... still no signs of warnings saying "Dave stop now!".<br /><br />For those of you who've never installed OpenCMS it is a very straightforward install. You simply deploy the opencms.war file into your Tomcat Instance. Tomcat then expands the war file (unless configured not to) when it is started.<br /><br />I then started up Alfresco, and checked out the tomcat logs and also the webapps directory and sure enough Alfresco's tomcat instance was expanding the war file nicely. There we still no notes in the logs saying "Stop now" so I moved onto the next step.<br /><br />After tomcat finished starting I went to the browser and typed in: http://localhost:8080/opencms/setup/ and sure enough the OpenCMS Setup-Wizard was waiting to go.<br /><br />I checked the logs and Alfresco 2.0 with WCM was not complaining. So I went through the wizard, and after setting up the DataBase I was able to get OpenCMS and Alfresco 2.0 with WCM running together with out any apparent issues.<br /><br />So while having a little fun I have proved to myself that Alfresco and OpenCMS can run on Alfresco's Tomcat instance. I am going to keep working with this and as I go forward if I see any OpenCMS or Alfresco Issues I will let everyone know, but so far it looks good.<br /><span style="font-weight: bold;"><br /></span>David Musserhttp://www.blogger.com/profile/00470603885336671512noreply@blogger.com0tag:blogger.com,1999:blog-4170547806392246120.post-3020186132343159972007-03-10T16:46:00.000-08:002007-03-10T16:54:57.449-08:00<div style="text-align: center;"> <span style="font-style: italic; font-weight: bold;">Alfresco and...<br /><br /></span><div style="text-align: left;">I am very lucky in the position I have right now. I am able to work with Alfresco's WCM and Interwoven's TeamSite. In fact I finished upgrading a customer to the new version of TeamSite over the weekend. Working with both products the way I have been for a while now has given me cause to pause for a second and say Alfresco and who else? Who will be the top CMS vendors in the future.<br /><br />I have evaluated and been in competition with several CMS vendors both open and closed source in the past, and I believe that Alfresco will become the MySql of the CMS industry. So out of the closed source products which one will win.<br /><br />I can not say maybe someone out there can let me know their thoughts. <br /><br />In my opinion in order for any of the remaining CMS/ECM vendors to rise to the top they will need to do the following.<br /><br />- Provide better licensing. The current license model for most of the ECM/CMS vendors is often difficult to navigate, and even more difficult to expand on. I have had customers in the past want to add more users or more content only to get lost in the license acquisition nightmare that sometimes happens. <br /><br />- Stop trying to sell, and actually do some customer management. A lot of the issues that come up with CMS implementations and post implementation could be avoided if the sales force did not only come around when they had something "brand new" to sell the client. Come by when you want to show me a new "Included" CMS feature that will encourage me to upgrade, and not one the client has been asking for a long time only to find out in the new version it's there, but for a small 20K fee.<br /><br />- Start spending time and resources to make your existing product base better. Get rid of bugs that have been around for years, and issues that you have known about. Start spending engineering dollars on development, and new ideas. How much of ever dollar that a customer spends with a traditional vendor actually goes to new development. I bet the number is very low.<br /><br />- Stop trying to get all your customers to come to some place for a nice event only to be shown a message that does not make sense, and if you pay attention from year to year it is only on very few occasions that the message actually works and is just not more marketing. For the most part these events end up being a feeding frenzy when you try to go from one session to the other with the Account Executives (Sales guys) coming at you from all directions.<br /><br />- Start having fun, relax, stop living your life from QTR to QTR. Taking this short sided view is what has put the ECM/CMS industry as far behind as it is. When I first started with WCM it was exciting. The people were happy, and everyone tried their best to make the product work. The customers felt the excitement. Now it's just not there from a lot of the vendors.<br /><br />Anyway these are my thoughts on what another vendor needs to do to compete in what will one day become a 2 or 3 player industry.<br /><br /><span style="font-style: italic; font-weight: bold;"></span></div></div>David Musserhttp://www.blogger.com/profile/00470603885336671512noreply@blogger.com0tag:blogger.com,1999:blog-4170547806392246120.post-72725165563527852662007-02-21T18:25:00.000-08:002007-02-21T19:10:25.015-08:00Backups and Cross Platform Data?<span style="font-style: italic;"><span style="font-weight: bold;">Backups<br /><br /><span style="font-style: italic;"><span style="font-weight: bold;"></span></span></span></span>In looking at<span style="font-weight: bold;"><span style="font-weight: bold;"></span></span> possible backup solutions for Alfresco with MySql I found a post on the forum that mentioned the basics: <span style="font-style: italic;"><span style="font-weight: bold;"><span style="font-weight: bold;"><span style="font-style: italic;"><span style="font-style: italic;"><span style="font-style: italic;"><span style="font-style: italic;"></span></span></span></span></span></span><span style="font-style: italic;"></span></span><span style="font-style: italic;"><span style="font-style: italic;"></span>http://forums.alfresco.com/viewtopic.php?t=2761&highlight=backup<br /><br /><span style="font-style: italic;"></span></span>I decided to take this post and carry things a little bit further. I wanted something that could not only backup Alfresco but do the restore.<br /><br />The script below is executed with one of two commands:<br /><br /><span style="font-style: italic;">alfresco_backup.sh -backup</span> - This archives the alf_data directory; as well as, does an export from Mysql of the Alfresco database.<br /><br /><span style="font-style: italic;">alfresco_backup.sh -restore </span>- This restores the information by first moving the existing alf_data directory, and then replacing it with the archive contents. It also imports the Mysql Alfresco database.<br /><br />Note: At this time the script does not drop, or create the alfresco database. It also does not set the permissions on the database. I wanted to wait until GA to finalize the script in case there were any changes.<br /><br />Does anyone know on the restore is dropping the database is absolutely necessary? or is there a better way? Also is it possible to import only one webproject?<br /><br /><span style="font-style: italic;">Importing into another Instance</span><br /><br />The script is also able to backup Alfresco and restore it to another Alfresco instance. I copied the backup files to another server and ran the script with the restore options. This did import the content, and the alf_data into the other system. The active workflows were all in tact and things appeared to be good.<br /><br /><span style="font-style: italic;">Cross Platform</span><br /><br />I wanted to take this to the next level so manually I followed what the script did and was able to zip up the alf_data directory, and import the alfresco database into Mysql running on a Windows 2000 Server. All of the workflows and content appeared to be unharmed by the move in Operating systems.<br /><br />I remember back to my days at Interwoven and when I was there it was possible to port the backing store between machines, but only if they were on the same operating system flavor and early on that was even difficult.<br /><br />So very nice Alfresco!<br /><br />My question now is will this porting from OS to OS be supported or are there issues that I could/should expect.<br /><br />Script:<br /><pre><br /><span style="color: rgb(153, 153, 0); font-style: italic;">#!/bin/sh</span><br /><span style="color: rgb(153, 153, 0); font-style: italic;"># Start or stop Alfresco server</span><br /><span style="color: rgb(153, 153, 0); font-style: italic;"># Set the following to where Tomcat is installed</span><br /><span style="color: rgb(153, 153, 0); font-style: italic;"># Old Directory is moved with the time in miliseconds as the value</span><br /><br /><span style="color: rgb(153, 153, 0); font-style: italic;"># Run this script with either "backup" or "restore" as the option.</span><br /><br /><span style="color: rgb(153, 153, 0); font-style: italic;"># Script assumes that Alfresco Database exists and that the user alfresco</span><br /><span style="color: rgb(153, 153, 0); font-style: italic;"># has been granted appropriate permissions</span><br /><span style="color: rgb(153, 153, 0); font-style: italic;"># i.e.</span><br /><span style="color: rgb(153, 153, 0); font-style: italic;"># from mysql prompt: create database alfresco;</span><br /><span style="color: rgb(153, 153, 0); font-style: italic;"># grant all on alfresco.* to 'alfresco'@'localhost' identified by 'alfresco' with grant option;</span><br /><span style="color: rgb(153, 153, 0); font-style: italic;"># grant all on alfresco.* to 'alfresco'@'localhost.localdomain' identified by 'alfresco' with grant option;</span><br /><span style="color: rgb(153, 153, 0); font-style: italic;">#</span><br /><span style="color: rgb(153, 153, 0); font-style: italic;"># Thanks to the alfresco forum:http://forums.alfresco.com/viewtopic.php?t=2761&highlight=backup</span><br /><span style="color: rgb(153, 153, 0); font-style: italic;"># Questions: David Musser - dmusser@eyestreet.com</span><br /><span style="color: rgb(153, 153, 0); font-style: italic;">#</span><br /><span style="color: rgb(153, 153, 0); font-style: italic;"># NOTE: The script also assumes that alfresco is NOT running during the backup.</span><br /><span style="color: rgb(153, 153, 0); font-style: italic;">#</span><br /><span style="color: rgb(153, 153, 0); font-style: italic;">export ALF_DATA_BASE=/etc/opt/alfresco</span><br /><span style="color: rgb(153, 153, 0); font-style: italic;">export ALF_DATA_DIRNAME=alf_data</span><br /><span style="color: rgb(153, 153, 0); font-style: italic;">export BACKUP_DIR=/backup</span><br /><span style="color: rgb(153, 153, 0); font-style: italic;">export DB_USERNAME=alfresco</span><br /><span style="color: rgb(153, 153, 0); font-style: italic;">export DB_PWD=alfresco</span><br /><span style="color: rgb(153, 153, 0); font-style: italic;">export DB_NAME=alfresco</span><br /><br /><span style="color: rgb(153, 153, 0); font-style: italic;">if [ "$1" = "backup" ]; then</span><br /><span style="color: rgb(153, 153, 0); font-style: italic;">cd $ALF_DATA_BASE/$ALF_DATA_DIRNAME</span><br /><span style="color: rgb(153, 153, 0); font-style: italic;">mysqldump -u$DB_USERNAME -p$DB_PWD $DB_NAME > $DB_NAME.sql</span><br /><span style="color: rgb(153, 153, 0); font-style: italic;">cd $ALF_DATA_BASE</span><br /><span style="color: rgb(153, 153, 0); font-style: italic;">tar cvfz $BACKUP_DIR/$ALF_DATA_DIRNAME.tgz $ALF_DATA_DIRNAME</span><br /><br /><span style="color: rgb(153, 153, 0); font-style: italic;">elif [ "$1" = "restore" ]; then</span><br /><span style="color: rgb(153, 153, 0); font-style: italic;">cd $BACKUP_DIR</span><br /><span style="color: rgb(153, 153, 0); font-style: italic;">gzip -d alf_data.tgz</span><br /><span style="color: rgb(153, 153, 0); font-style: italic;">tar -xvf alf_data.tar</span><br /><br /><span style="color: rgb(153, 153, 0); font-style: italic;">mv $ALF_DATA_BASE/$ALF_DATA_DIRNAME $ALF_DATA_BASE/$(date +%N)_$ALF_DATA_DIRNAME</span><br /><span style="color: rgb(153, 153, 0); font-style: italic;">mv $ALF_DATA_DIRNAME $ALF_DATA_BASE</span><br /><span style="color: rgb(153, 153, 0); font-style: italic;">cd $ALF_DATA_BASE/$ALF_DATA_DIRNAME</span><br /><br /><span style="color: rgb(153, 153, 0); font-style: italic;">mysql -u$DB_USERNAME -p$DB_PWD $DB_NAME < $DB_NAME.sql</span><br /><br /><span style="color: rgb(153, 153, 0); font-style: italic;">fi</span><br /><br /></pre>Please test this on a server you do not care about! Do not get mad at me if the server explodes, and the sky falls etc... As I mentioned above comments are welcome!David Musserhttp://www.blogger.com/profile/00470603885336671512noreply@blogger.com0tag:blogger.com,1999:blog-4170547806392246120.post-30030980163267706842007-01-27T08:33:00.000-08:002007-01-27T08:54:41.088-08:00So Who Does Testing Anymore?In the last few years I have noticed that less and less web developers do enough testing on their content. Since a lot of us are responsible for the content management why should we care.<br /><br />The answer is simple. It is very easy for them and others to mistake what a <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_0">CMS</span> system does in the form or an <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_1">xform</span>, or <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_2">templated</span> content instead of something with their page. If you add that to the fact that we are all responsible for the sites under our control what can we do to help.<br /><br />We have all seen the issues, and reported them to the developer only to be told any one of the following:<br /><br />"It looked good in <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_3">Firefox</span>"<br />"I tested it in I.E. 7"<br />"You know <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_4">XP</span> displays things differently"<br />"Who uses a MAC?"<br /><br />So to start off : I really like <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_5">Firefox</span> as well, and use it all the time, but the reality is for most of the sites that I manage <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_6">Firefox</span> is still not used as much as I.E, so looking at something mainly in <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_7">Firefox</span> is a bad idea, and I do try to point that out to the developers when this happens.<br /><br />I.E. 7... <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_8">ok</span> this is new, and a lot of people are using it. Some by choice, some with just how Microsoft does the updates. With this said both browser handle certain things differently and again you need to make sure your developers who give you the base pages for you to create templates or <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_9">xforms</span> from have tested in both.<br /><br /><span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_10">XP</span> handles things differently? I've heard this and ones like it, and I know that on different operating systems there can be differences but again if they know something does not work in an OS or has been known to fail then I have a great idea "Don't do that!"<br /><br />Who uses a Mac... Well I agree! Who does... well the problem with this is that usually the companies that have settled on a Mac try to only work with other companies and sites that look good with what they have. It only makes sense. So when possible if there is a chance someone with a Mac is going to hit your site then again have the developers test in it.<br /><br />With all of the above said as we manage sites we are going to have to deal with this as best we can. So what I have found that may help you are to find out from the site owner(s) what their target audience is, and then try to have a testing environment that can test in all of the different browser versions, and operating systems. Tools like <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_11">VMWare</span> and others can help with this, or even the old dual boot on a test machine to give you multiple <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_12">OS's</span> could help.<br /><br />For <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_13">xforms</span> and template development what I advise doing is to verify before you get into building the presentations that what you are working with has been tested. It does not take long to know.<br /><br />I realize that changing a presentation and re-generating a page/site, or a <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_14">css</span> change is not that complex but it will help you when you hear from <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_15">someone</span> who is not the web developer that a page created with your <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_16">xform</span> looked bad.<br /><br />With the above said I use <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_17">linux</span> so my blog looks good to me, and who out there does not use <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_18">linux</span>! So no complaints on the format of the blog ;-)David Musserhttp://www.blogger.com/profile/00470603885336671512noreply@blogger.com0tag:blogger.com,1999:blog-4170547806392246120.post-31319775291486421132007-01-24T18:13:00.000-08:002007-01-27T08:54:06.572-08:00What is the best way to do headers and footers in a CMS system?<span style="font-style: italic;">What is the best header and footer method? </span>I have had this question put to me in various ways in my <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_0">CMS</span> career, and have answered in as many ways that supported the <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_1">CMS</span> vendor I was working for at the time, but I never though of it from the purely non vendor related <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_2">CMS</span> solution. Other customers would already have a method in place and simply want to make sure that the <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_3">CMS</span> system that they had just purchased would support their current method. I am proud to say that we were able to satisfy the clients requirements when this did come up, but still what is the answer?<br /><br />What is the best header and footer method? Perl! That's the answer...<br /><br /><span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_4">Ok</span> a little humor there, and by no means do I believe that this post will solve this question, but rather give us all something to think about the next time the question comes to us so that we can better analyze the requirements.<br /><br /><span style="font-weight: bold;">Size Does Matter<span style="font-weight: bold;"><span style="font-weight: bold;"><span style="font-weight: bold;"><span style="font-style: italic;"><span style="font-weight: bold;"><span style="font-style: italic;"><br /><span style="font-weight: bold;"><span style="font-style: italic;"><span style="font-weight: bold;"><span style="font-weight: bold;"></span></span></span></span></span></span></span></span></span></span></span><span style="font-style: italic;"><span style="font-style: italic;"><span style="font-style: italic;"><span style="font-weight: bold;"></span></span></span></span><br /><span style="font-style: italic;">Small<br /><br /></span>If you have a small site, in my opinion you do not need to <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_5">separate</span> the header and footers. This is assuming that your site is small, and will not change or grow very much or often. Believe it or not I have seen customers use Enterprise level <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_6">CMS</span> systems for 20 pages, granted that was way back when, but I'm still sure some of them are around. So if you have something with less that 10 pages and it will not change very often simply creating a static html page that you use as a template will suffice.<br /><br /><span style="font-style: italic;">Medium & Beyond</span><br /><br />Once you get beyond the 20 or so pages it often becomes a pain to update a phone number change, the header graphic or what have you. So you should look at the other factors.<br /><br /><span style="font-style: italic;">Bandwidth</span><br /><br />How many customers do you have visiting your site, and what happens when there is a surge. I have seen advertisements on TV and heard the next day that people went to the site after and it was down. If you ever have anything like this happen to you, check out <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_7">akamai</span>.com for one, and also look at how your site is configured.<br /><br /><span style="font-style: italic;">Frequency of Updates</span><br /><br />When thinking about headers and footers we also have to think about how often do they change, and who has the rights to change them. We also need to make sure that there is a process involved in this as well.<br /><br /><span style="font-style: italic;">Now back to <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_8">CMS</span></span><br /><br /><span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_9">Ok</span> the above are by no means the only factors, but in my mind they are some of the big ones. I almost mentioned technology available, but if you think of it if you do not have the right tools available and you base your decision on what's available vs what's the best <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_10">solution</span> you really have not served yourself or your client well. I do understand that a lot of times that is what we have to do, but for now let's assume your client say "Hey buy what works!"<br /><br />So what is the best method...<br /><br />I really still don't know from the above list. Let me point out some that I don't think work for most situation.<br /><br />- Database driven : I have never liked purely database driven site. Having a web site that has to make a request from a database each time, and especially for header and footer do not work when you try to expand. If you get 10 million hits in the next hour will your database be able to handle it?<br /><br />- Static Pages: I covered this earlier, but it is worth saying. If you have any size to your content at all static pages do not work.<br /><br />- Header/Footer driven by template or forms engine: I have seen sites that use <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_11">templating</span> or forms to capture the content, and then they generate the static page with the header and footer included. I have never been a fan of this. The main reason is that if the header and footer change you have to re-generate the entire site. So add that to what if some of these are in a <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_12">CMS</span> system where the files are locked or otherwise in a <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_13">workflow</span> and you can have nothing but trouble.<br /><br /><span style="font-style: italic;">So what works? If you won't say the best method.<br /><span style="font-style: italic;"></span></span><span style="font-weight: bold;"><span style="font-weight: bold;"><span style="font-weight: bold;"><span style="font-weight: bold;"><span style="font-style: italic;"><span style="font-weight: bold;"><span style="font-style: italic;"></span></span></span></span></span></span></span><span style="font-style: italic;"></span><span style="font-weight: bold;"><span style="font-weight: bold;"><span style="font-weight: bold;"><span style="font-weight: bold;"></span></span></span></span><br /><br />- Server Side Includes: I have seen server side includes using <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_14">shtm</span>, and <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_15">jsp</span> includes. Depending on the content type you have there are other include methods that work on the server and these function very well. The main benefit of these that I see is that they allow you to <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_16">separate</span> the content contributors from your site designers. You can <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_17">separate</span> them by <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_18">workarea</span>/sandbox etc, and even have that content go through a <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_19">separate</span> <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_20">workflow</span>.<br /><br />- Edge Side Include: Like server side includes these are includes that work with <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_21">Akamai</span>, and these allow you similar functionality.<br /><br /><span style="font-weight: bold;">Conclusion<br /><br /></span>If you have a method that works for you that I do not mention here please do shoot me an email or post a comment to the blog.<br /><br />In another post I will try to show some examples of the above methods with Alfresco as I go further with their Beta!<br /><br /><span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_22">Whoops</span> I did forget we could do the headers and footers in frames :-)David Musserhttp://www.blogger.com/profile/00470603885336671512noreply@blogger.com0tag:blogger.com,1999:blog-4170547806392246120.post-40393978341256670502007-01-18T19:25:00.000-08:002007-01-18T19:46:45.118-08:00<div style="text-align: center;"><span style="font-weight: bold;"> Alfresco Content Load</span><br /></div><br /><span style="font-weight: bold;">Introduction</span><br /><br />This article continues my demonstrations of the user interfaces for Alfresco at their current build state. This demonstration is with revision 344 using the command line SVN client. This post will demonstrate the following:<br />- Bulk import of web site<br />- Individual file import<br /><br />This demonstration assumes that a test web project already exists, you have logged in and navigated to the project space.<br /><br /><br /><span style="font-weight: bold;">Bulk Import</span><br /><br />1) Select the appropriate user sandbox. For this I selected the admin sandbox by clicking the browser link.<br /><br /><img style="width: 900px;" src="http://docs.google.com/File?id=dcbj7wmw_49f8f3nn" /><br /><br />2) From the admin sandbox: Select the create: bulk import in the upper right hand side of the screen.<br /><br /><img style="width: 900px;" src="http://docs.google.com/File?id=dcbj7wmw_51gx3tbk" /><br /><br />3) From the Bulk Import: Click Browse to navigate to a zip file containing your web site.<br /><br /><img style="width: 900px;" src="http://docs.google.com/File?id=dcbj7wmw_52f857hm" /><br /><br />4) From the file browser: Navigate to the zip file containing the web site and click open.<br /><br /><img style="width: 300x;" src="http://docs.google.com/File?id=dcbj7wmw_53g3z3rd" /><br /><br />5) From the Bulk Import screen: Click upload to upload the zip file to Alfresco<br /><br /><img style="width: 900px;" src="http://docs.google.com/File?id=dcbj7wmw_55g2s77g" /><br /><br />6) From the Bulk Import: Click OK to have Alfresco crack open the zip file and insert the content in the sandbox.<br /><br /><img style="width: 900px;" src="http://docs.google.com/File?id=dcbj7wmw_56djfgq8" /><br /><br />7) From the Bulk Import: Notice the status lights.<br /><br /><img style="width: 900px;" src="http://docs.google.com/File?id=dcbj7wmw_57cfdj5m" /><br /><br />8) It may be necessary to stop and start the virtual server using /alfrescohome/virtual_stop.sh, and virtual_start.sh to enable the new area to preview properly. This could just be an issue with the build I have, but it may be necessary when first creating a space.<br /><br />9) Content from import is displayed<br /><br /><img style="width: 900px;" src="http://docs.google.com/File?id=dcbj7wmw_59hkj77g" /><br /><br /><span style="font-weight: bold;">Individual File Import<br /></span><br />1) Navigate within a sandbox to the directory you would like to import content into. For this demonstration we will assume we need to add a new page under company.<br /><br />2) From the sandbox in teh company directory: Select create, and add content.<br /><br /><img style="width: 900px;" src="http://docs.google.com/File?id=dcbj7wmw_60hndxqd" /><br /><br />3) From the add content screen; Browse for content, and click upload to upload the file to Alfresco.<br /><br /><img style="width: 900px;" src="http://docs.google.com/File?id=dcbj7wmw_61drdmwt" /><br /><span style="font-weight: bold;"><span style="font-weight: bold;"><span style="font-weight: bold;"><span style="font-weight: bold;"></span></span><br /><span style="font-weight: bold;"></span></span></span>4) From the Add Content Screen: Verify the file uploaded successfully, and that the correct content type is selected, and click OK.<br /><br /><img style="width: 900px;" src="http://docs.google.com/File?id=dcbj7wmw_62c99r4c" /><br /><br />5) The system returns you to the sandbox where you can see the file imported.<br /><br /><img style="width: 900px;" src="http://docs.google.com/File?id=dcbj7wmw_63fksx6b" /><span style="font-weight: bold;"><span style="font-weight: bold;"><span style="font-weight: bold;"></span><br /></span></span><span style="font-weight: bold;"><br /></span>6) To preview content from the sandbox click the eye icon across from the content you would like to preview. This will open a new browser window to display the content in context.<br /><span style="font-weight: bold;"><br />Conclusion<span style="font-weight: bold;"><span style="font-weight: bold;"><br /></span></span></span>This should help you see how to do a bulk import of content. This could be for the first initial load of content or for a load of a large content set. I know from my work with some other CMS systems that often the import of content beyond the sales person's speak of "Oh it's drag and drop" a utility like this can come in handy.<br /><br />My next article will deal with the question of what is the best method to do include files. This will not be something focused solely on Alfresco, but I will take the time while demonstrating a method we are using with Alfresco to show that interface as well.<br /><br />For further information or questions please email me: dmusser@eyestreet.com<br /><span style="font-weight: bold;"><span style="font-weight: bold;"><span style="font-weight: bold;"></span></span></span>David Musserhttp://www.blogger.com/profile/00470603885336671512noreply@blogger.com0tag:blogger.com,1999:blog-4170547806392246120.post-12171308745274174802007-01-11T10:51:00.000-08:002007-01-12T13:29:10.650-08:00<div style="text-align: center;"><span style="font-weight: bold;">Create an Alfresco Web Content Management (WCM) Project<br /></span><div style="text-align: left; font-weight: bold;">Introduction</div></div><div style="text-align: center;"> </div> Alfresco is the leading open source alternative for enterprise content management. This open source alternative will allow companies to take advantage of Alfresco's engineering expertise while utilizing an open source product.<br /><br />At Eye Street we have been working closely with Alfresco on training, alfresco.com, and on other initiatives. Part of our work with them has let us to becoming involved in the development of a content deploy application. Part of this development has required that we move past the preview release and utilize the repository Alfresco has set up to allow us to do frequent builds.<br /><br /><span style="font-weight: bold;">Create Web Project </span><br />This post is based on Build 291:<br /><div style="text-align: left;"><br /></div> 1) Login to alfresco: http://servername:8080/alfresco<br /><br /><img src="http://docs.google.com/File?id=dcbj7wmw_26cgws2h" style="width: 900px;" title="Login" /><br /><br /><br />2) From the My Alfresco Screen click: My Home (located at the top left)<br /><br /><img src="http://docs.google.com/File?id=dcbj7wmw_33g6bzch" style="width: 900px;" /><br /><br />3) From My Home click: Web Projects<br /><br /><img src="http://docs.google.com/File?id=dcbj7wmw_34sk72kh" style="width: 900px;" /><br /><br />4) From Web Projects click: Create Web Project<br /><br /><img src="http://docs.google.com/File?id=dcbj7wmw_36g36wkc" style="width: 900px;" /><br /><br />5) From Step One - Web Project Details enter the following information then click next to continue:<br /><ul> <li> Name: </li> <li> DNS name: </li> <li> Default Webapp: </li> <li> Title </li> <li> Description </li> </ul> <img src="http://docs.google.com/File?id=dcbj7wmw_37g3mstk" style="width: 900px;" /><br /><br />6) From Step Two - Configure Web Content Forms click add to list, to add existing web forms to the web project, or click create web form to create a new form. For this example I will click add to list for Body Content and Job Listing.<br /><br /><img src="http://docs.google.com/File?id=dcbj7wmw_39cd5nv5" style="width: 900px;" /><br /><br />7) From Step Two - Configure Web Content Forms click next<br /><br /><img src="http://docs.google.com/File?id=dcbj7wmw_40f4zb3g" style="width: 900px;" /><br /><br />8) From Step Three - Configure Workflows click add to list to add existing workflows to the project, and click next.<br /><br /><img src="http://docs.google.com/File?id=dcbj7wmw_41cntsxr" style="width: 900px;" /><br /><br />9) From Step Four - Add users search on the user name you wish to add, highlight that user, and their role, and click add to list.<br /><br /><img src="http://docs.google.com/File?id=dcbj7wmw_42cjrkqr" style="width: 900px;" /><br /><br />10) From Step Four - Add Users after adding all users and setting their roles click next.<br /><br /><img src="http://docs.google.com/File?id=dcbj7wmw_43c5259b" style="width: 900px;" /><br /><br />11) From Step Five - Email Users, fill in required information, change the radio button to yes (if smtp server configured) and click next, otherwise leave no selected and click next.<br /><br /><img src="http://docs.google.com/File?id=dcbj7wmw_44d5vhmb" style="width: 900px;" /><br /><br />12) Review Summary and click finish.<br /><br /><img src="http://docs.google.com/File?id=dcbj7wmw_45f3ffp7" style="width: 900px;" /><br /><br />13) From Web Project Page see your click on your new project's name or world icon to navigate into your project.<br /><br /><img src="http://docs.google.com/File?id=dcbj7wmw_46q8rkhv" style="width: 900px;" /><br /><br />14) From project page notice the staging sand box, user sandboxes and all the other options available.<br /><br /><img src="http://docs.google.com/File?id=dcbj7wmw_47dpsj95" style="width: 900px;" /><br /><br /><span style="font-weight: bold;">Conclusion</span><br /><br />This should help you get started with Alfresco WCM. My next post will continue along this lines and demonstrate loading of content, preview of content, and basic xforms and workflows.<br /><br />For further information or with questions or comments please email me: dmusser@eyestreet.com.David Musserhttp://www.blogger.com/profile/00470603885336671512noreply@blogger.com0