Friday 6 December 2013

New book from Packt - Alfresco 4 Enterprise Content Management Implementation Review Part One

I am a community Alfresco user, but the difference in the products is minor and this is a book for both Community and Enterprise users.
The first chapter is about the structure and working of Alfresco. It gives a good overview of the product, what it is and how it works. I feel that a sign of a reasonable book if I am earning something in the first chapter and can honestly say what  I did. There are some look diagrams that clearly and concisely show the structure and workings of Alfresco - the sort of things that should have been in the Alfresco documentation.
Yet  found comments like "Alfresco now integrates with applications such as Facebook, ViewOne Pro,
and iGoogle, and gadgets such as iPhone." less than helpful since it gave little idea of what the integration was and how it benefits me..
The first chapter is certainly not for the faint hearted with the use of acronyms and general computer speak and lots of lists to read. Although I didn't really read them when reading the book, they are useful later when looking something up.
The second chapter is about installing Alfresco. Now I like many Alfresco users have managed to install the thing loads of times and are almost getting to stage of doing it in my sleep. I liked where the authors talked og Linux as the operating system of choice and then spent most of the chapter installing the product on windows. Having done both I think the installation under windows is easier but I still use a Linux system to run my Alfresco's on.The Linux installations does get a couple of pages on the installation but much is missed out.
The third chapter is about getting started and this is where the book got really interesting. The first part I noted was logging in as "http://localhost:8080/alfresco." rather than using share. I was really surprised that the authors decided to go back in time and use the old interface rather than using the new share interface to set things up. I understand that much still has to be done in the old environment, but I believe that they are selling Alfresco short.
In this chapter there are a lot of good things and some I learnt from rather than doing things the way I had always done them.

I have still much to read and comment on and this will be in the next part of the Blog.

Monday 23 September 2013

Westernacher Outlook E-Mail Manager Trial

We are trying out the Westernacher Outlook E-Mail Manager.

We have installed the outlook client and are linked to their cloud site.
The initial installation went wrong as we have 64 bit windows, but have 32bit Office as that's what office told us to install.  The Westernacher Outlook E-Mail Manager auto install assumed that 64 bit windows = 64 bit Office which is why it failed to install.
Having got the product installed and set up for a couple of users to play with we shall see what happens. First impressions are good and this product is for a small number of users and works on the Community Version. We have still to try this.

Full Review after the trial.

Sunday 11 August 2013

The Linux Alfresco Restore Script

For a few who wanted the equivalent restore script to the backup script Here it is. Tried and tested.

#!/bin/bash
e cho "=== Set up the environment ==="

Alfresco_root="/opt/alfresco-4.2.c";
Alfresco_repository="$Alfresco_root/alf_data/";
Alfresco_backup_dir="/home/philip/backup/";
DB_USER="postgres";
alfresco_db="alfresco";

echo "=== Stopping Alfresco ==="

sh $Alfresco_root/alfresco.sh stop
sleep 240

cd $Alfresco_root/tomcat/shared/classes

echo "=== copying the global properties file ==="
cp alfresco-global.properties.noindex alfresco-global.properties


echo "===  Alfresco stopped... ==="
echo "=== Starting Alfresco in Postgres only mode ==="

sh $Alfresco_root/alfresco.sh start postgresql


echo "=== Starting to restore the database ==="


dropdb -U $DB_USER  $alfresco_db -h localhost
createdb -U $DB_USER -T template0 $alfresco_db -h localhost


psql -h localhost -U $DB_USER  $alfresco_db < $Alfresco_backup_dir/alfrescodbdump*


sh $Alfresco_root/alfresco.sh stop postgresql

echo "=== Postgres is stopped Ready to copy over the database ==="

cd $Alfresco_root/alf_data
rm -rf contentstore
rm-rf contentstore.deleted
cp -r $Alfresco_backup_dir/alfresco-4.2.c.backup*/alf_data/contentstore  $Alfresco_root/alf_data/contentstore
cp -r $Alfresco_backup_dir/alfresco-4.2.c.backup*/alf_data/contentstore.deleted $Alfresco_root/alf_data/contentstore.deleted

echo "=== Put the global properties file back ==="

cd $Alfresco_root/tomcat/shared/classes
cp alfresco-global.properties.solr alfresco-global.properties

echo "=== Set up indexing ==="
rm -rf $Alfresco_root/alf_data/solr/workspace/SpacesStore
rm -rf $Alfresco_root/alf_data/solr/archive/SpacesStore
rm -rf $Alfresco_root/alf_data/solr/workspace-SpacesStore/alfrescoModels
rm -rf $Alfresco_root/alf_data/solr/archive-SpacesStore/alfrescoModels

echo "=== Restart Alfresco Building indices ==="

cd $Alfresco_root

sh $Alfresco_root/alfresco.sh start

Friday 9 August 2013

Interesting restore problem with Alfresco

I am running Alfresco 4.2.c Community Edition on two servers. The main server and a development server. Occasionally I take the image from the main machine and restore it to the development machine.
This time when I did it my restore script remade the postgres database then copied the new contentstore over the old one. I remade the index and promptly received an internal server error once I had successfully logged in.
I stopped Alfresco.
I manually copied the files over from the backup contentstore to the live one in Alfresco and then deleted the index files as before and remade the index. It worked perfectly.
So what was the difference between using command line and manually using Dolphin?
I may try to delete the directory before copying over.
I suppose it is another mystery to solve.

Wednesday 7 August 2013

Weird Problems with Moodle 2.5.1

I have a client using Moodle. We have just upgraded to the latest version 2.5.1 and a puzzling problem has appeared.

The upgrade went fine and on the console everything works as it should.

Now this tells me that everything is really OK and this is not a Moodle problem. When we access the Moodle from any other machine we are unable to upload a file because we don't get the upload screen. ( as in the image) It just sits there with a timer sitting there on the screen. On slow servers (when the machine is loaded) we see this for a few seconds before the screens load, but in this case that's as far as it gets. Its not the browser as we have looked at several and we have tried accessing the server in different ways on different networks.

The problem is more interesting that a previous version of Moodle 2.4.3 also runs on the same virtual machine (Windows 2008R2) and network and surprisingly that works fine. No errors. But three different implementations of Moodle 2.5.1 on three different virtual servers all fail in the same way. When they had the previous version of Moodle (2.4.3) they too worked OK.

So it appears that the network is ok and the firewall antivirus etc, otherwise the Moodle 2.4.3 using the same mechanism would fail, but the latest version of Moodle on three different machines have the same symptoms and that points to a network issue. So far I have have no response on the Moodle forums and I have had no luck trying to reproduce this problem on my home server network using largely the same software.
No else seems to have the same problem.

I guess that the daily build on Moodle might help to upgrade again.

So it must be Moodle, but its a puzzle that yet has to be solved.

Monday 29 July 2013

Linux machine running hot

I run several servers  for a company. Over the past couple of weeks I have noticed that one of the linux boxes was running much noisier and hotter than it normally does. I wondered initially whether this was due to the hot spell we have been having.
An inspection of the machine showed the culprit to be dust and fluff.
Switching off the machine and giving it a good vacuum removed the accumulated dust and stuff from the CPU heat sink and fan, from the graphics cards fan and from the power supply fan.
The intakes were also full of stuff. The worst machine was the highest up on the stack were the air flow is probably the greatest.
Before cleaning 20% energy usage Noisy Temp 67C
After cleaning 12% energy usage Quiet Temp 25C
It was about 3 months ago that I had cleaned the machines, so perhaps cleaning them more often will reduce the amount of electricity used and improve the performance.

Saturday 20 July 2013

Removing the crap from browsing

I have just spent an hour sorting out my fathers browser. Over the past couples of months he has noticed some extras added to his computer and today I spent about am hour uninstalling various programs that he seemed to have added. He had no idea where he had picked these up.
The managed to get the Babylon toolbar and search engine, rather than Google and several other tool bars that I didn't recognise. He had games galore interesting because he doesn't like games. He had a couple of different video players and well as some general rubbish. and some add-ons to Chrome.
He had lost his home page by adding a browser defender which of course didn't. He received adverts that told him his machine was running very slow, I suppose thus was true sine it was this causing the machine to slow down. Most of the programs were removed using the Control Panel program uninstaller. I sorted all the programs by date and in this way it was very easy to see what programs he had managed to install on the same date.
Some needed their own uninstall program but after an hour or so they were all gone.
The moral of this seems to be not to let my father play with the computer.

Friday 31 May 2013

Alfresco Automated Backup Script Linux

Backups are a pain and as our system is used more and more the need for more regular and controlled backups has been demanding. Doing the system manually for a while has given an idea of where the problems are. We do an automated backup every night of the whole machine, but this does not include an Alfresco database schema and when we have tried to recover the database the solar indexing has made the backups useless.
The basic backup mechanism I have given before, so here is a simple I have been using which works.

I run the script as root and have made a .pgpass file in the root directory with the database password in it.
*:*:*:postgres:topsecret
This file is chmoded at 600

The backup Script for Linux is run by a cron. Each time it is run a new dated backup is made. These are periodically removed as they get to old.

#!/bin/bash
echo "=== Set up the environment ==="

Days=`date +%Y%m%d-%H%M%S`;
Alfresco_root="/opt/alfresco-4.2.c";
Alfresco_repository="$Alfresco_root/alf_data/";
Alfresco_backup_dir="/home/philip/backup";
DB_USER="postgres";
alfresco_db="alfresco";

echo "=== Stopping Alfresco ==="

sh $Alfresco_root/alfresco.sh stop
sleep 240

cd $Alfresco_root/tomcat/shared/classes

echo "=== copying the global properties file ==="
cp alfresco-global.properties.noindex alfresco-global.properties
echo "=== Now restarting and stopping Alfresco to stop indexing ==="

sh $Alfresco_root/alfresco.sh start
sleep 300

echo "=== Alfresco up indexed stopped. Now shutting down ==="
sh $Alfresco_root/alfresco.sh stop

echo "===  Alfresco stopped... ==="
echo "=== Starting Alfresco in Postgres only mode ==="

sh $Alfresco_root/alfresco.sh start postgresql

echo "=== Make Postgres Backup ==="

pg_dump -h localhost -U $DB_USER  $alfresco_db > $Alfresco_backup_dir/alfrescodbdump$Days

sh $Alfresco_root/alfresco.sh stop postgresql
echo "=== Postgres backed up and Alfresco stopped ==="


echo "=== Creating Aflresco Repository Backup ==="


cp $Alfresco_root $Alfresco_backup_dir/alfresco-4.2.c.backup$Days -R
echo "=== copy back the properties file ==="

cp alfresco-global.properties.solr alfresco-global.properties
echo "=== Restarting Alfresco ... All done ==="

cd $Alfresco_root


sh $Alfresco_root/alfresco.sh start 

Wednesday 15 May 2013

Alfresco Global Properties Configuration

A Basic Global Properties file is not very useful. It needs some basic changes before you can use it.
Here is a proposed basic global properties file to start with.

The sites name is myalfresco.dyndns.info





This is what the basic file should look like



###############################
## Common Alfresco Properties #
###############################

dir.root=/opt/alfresco-4.2.c/alf_data

alfresco.context=alfresco
alfresco.host=myalfesco.dyndns.info
alfresco.port=8080
alfresco.protocol=http

share.context=share
share.host=myalfesco.dyndns.info
share.port=8080
share.protocol=http

### database connection properties ###
db.driver=org.postgresql.Driver
db.username=alfresco
db.password=abc1def1
db.name=alfresco
db.url=jdbc:postgresql://localhost:5432/${db.name}

### FTP Server Configuration ###
ftp.enabled=true
ftp.port=2121

### RMI service ports ###
alfresco.rmi.services.port=50500
avm.rmi.service.port=0
avmsync.rmi.service.port=0
attribute.rmi.service.port=0
authentication.rmi.service.port=0
repo.rmi.service.port=0
action.rmi.service.port=0
deployment.rmi.service.port=0

### External executable locations ###
ooo.exe=/opt/alfresco-4.2.c/libreoffice/program/soffice.bin
ooo.enabled=true
ooo.port=8100
img.root=/opt/alfresco-4.2.c/common
img.dyn=${img.root}/lib
img.exe=${img.root}/bin/convert
swf.exe=/opt/alfresco-4.2.c/common/bin/pdf2swf
swf.languagedir=/opt/alfresco-4.2.c/common/japanese

jodconverter.enabled=false
jodconverter.officeHome=/opt/alfresco-4.2.c/libreoffice
jodconverter.portNumbers=8100

### Initial admin password ###
alfresco_user_store.adminpassword=c501f31eae9109c46b0b27f1eb28d15a

### E-mail site invitation setting ###
notification.email.siteinvite=true

### E-mail properties ###
mail.host=smtp.gmail.com
mail.port=465
mail.username=myalfesco@gmail.com
mail.password=topsecret
mail.encoding=UTF-8
mail.from.default=alfresco@myalfesco.dyndns.info
mail.protocol=smtps
mail.smtp.auth=false
mail.smtp.starttls.enable=false

#use these properties to send test message during start of subsystem
mail.testmessage.send=true
mail.testmessage.to=philipmrussell@gmail.com my email address
mail.testmessage.subject=Outbound SMTP System OK
mail.testmessage.text=The Outbound SMTP email subsystem on Alfresco is working.

# Additional Java Mail properties for SMTPS protocol
mail.smtps.auth=true
mail.smtps.starttls.enable=true


#
# Alfresco Email Service and Email Server
#-------------

# Enable/Disable the inbound email service.  The service could be used by processes other than
# the Email Server (e.g. direct RMI access) so this flag is independent of the Email Service.
#-------------
email.inbound.enabled=true

# Email Server properties
#-------------
email.server.enabled=true
email.server.port=25
email.server.domain=myalfesco.dyndns.info
email.inbound.unknownUser=anonymous
email.server.connections.max=3


# A comma separated list of email REGEX patterns of allowed senders.
# If there are any values in the list then all sender email addresses
# must match.
# Allow anyone:
email.server.allowed.senders=.*\@yahoo\.com, .*\@btinternet\.com, .*\@gmail\.com,  .*\@netlab\.co\.uk, .*\@tiscali\.co\.uk.


email.server.allowed.senders=.*

email,server.hideTLS=true
email,server.enableTLS=false
email,server.requireTLS=false

imap.server.enabled=false
imap.server.port=143
imap.server.host=localhost


### License location ###
dir.license.external=/opt/alfresco-4.2.c

### Solr indexing ###
index.subsystem.name=solr
dir.keystore=${dir.root}/keystore
solr.port.ssl=8443

### BPM Engine ###
system.workflow.engine.jbpm.enabled=false

Monday 15 April 2013

Alfresco not starting failed to get IP address Solved


A new installation of Alfresco and I got

Caused by: org.alfresco.error.AlfrescoRuntimeException: 03140000 Failed to get server IP address

Now the IP address was fine.
Obtained via DHCP

The system originally worked as the router supplied the IP address. The machine could surf the web, download Alfresco, but it would load

I added the name of the machine to /etc/hostnames

And it worked.

Restoring a Backup in Alfresco

Taking backups in Alfresco is essential. But restoring this backup is equally important. Here is how I go about it.

I will assume you have taken a good backup. If not have a look at an earlier blog. Alfresco Backup



Install an Alfresco server from scratch and get it working
Stop Alfresco server:
sh /opt/alfresco-4.2.c/alfresco.sh stop

:
In /opt/alfresco-4.2.c/tomcat/shared/classes/alfresco-global.properties turn
### Solr indexing ###
index.subsystem.name=solr
dir.keystore=${dir.root}/keystore
solr.port.ssl=8443
into
### Solr indexing ###
index.subsystem.name=noindex
dir.keystore=${dir.root}/keystore
#solr.port.ssl=8443

:Make the essential configurations inside the new installation (e.g. server’s hostname, etc) AND turn indexing off as in the corresponding step above.

Change the alfresco global properties file. Cut and paste the changed lines into this config. I add the mail part

### E-mail site invitation setting ###
notification.email.siteinvite=true

### E-mail properties ###
mail.host=smtp.gmail.com
mail.port=465
mail.username=myemail@gmail.com
mail.password=abc123
mail.encoding=UTF-8
mail.from.default=alfresco@mymachine.name
mail.protocol=smtps
mail.smtp.auth=false
mail.smtp.starttls.enable=false

#use these properties to send test message during start of subsystem
mail.testmessage.send=true
mail.testmessage.to=philipmrussell@gmail.com
mail.testmessage.subject=Outbound SMTP Alfresco Server OK
mail.testmessage.text=The Outbound SMTP email subsystem on Alfresco Server is working.

# Additional Java Mail properties for SMTPS protocol
mail.smtps.auth=true
mail.smtps.starttls.enable=true


#
# Alfresco Email Service and Email Server
#-------------

# Enable/Disable the inbound email service.  The service could be used by processes other than
# the Email Server (e.g. direct RMI access) so this flag is independent of the Email Service.
#-------------
email.inbound.enabled=true

# Email Server properties
#-------------
email.server.enabled=true
email.server.port=25
email.server.domain=my.server.url
email.inbound.unknownUser=anonymous
email.server.connections.max=3


# A comma separated list of email REGEX patterns of allowed senders.
# If there are any values in the list then all sender email addresses
# must match. For example:
#   .*\@alfresco\.com, .*\@alfresco\.org, .*\@yahoo\.com, .*\@btinternet\.com,
# .*\@gmail\.com,  .*\@tiscali\.co\.uk
# Allow anyone:
#email.server.allowed.senders=.*\@yahoo\.com, .*\@btinternet\.com, .*\@gmail\.com,.*\@tiscali\.co\.uk


email.server.allowed.senders=.*

email,server.hideTLS=true
email,server.enableTLS=false
email,server.requireTLS=false

imap.server.enabled=false
imap.server.port=143
imap.server.host=localhost

Save the file


I have 3 files to copy into /opt/alf*/tomcat/shared/lib

Red theme
Share import/export
unzip share

- Start and stop alfresco server (throw a delay of 5 minutes between the two commands in order for the server to start properly)
# sh /opt/alfresco-4.2.c/alfresco.sh start && sleep 300 && sh /opt/alfresco-4.2.c/alfresco.sh stop
- Start new installation’s postgresql:
# sh /opt/alfresco-4.2.c/alfresco.sh start postgresql
- Drop new installation’s database, create the new one and restore the above backed up:
# su postgres
$ dropdb alfresco -h localhost -i
Database "alfresco" will be permanently removed.
Are you sure? (y/n) y
Password:
$ createdb -T template0 alfresco -h localhost
Password:
$ psql alfresco -h localhost < /temp/alfrescodbdump
Password:
(...)
ALTER TABLE
ALTER TABLE
REVOKE
REVOKE
GRANT
GRANT
$ exit
- Stop new Alfresco postgresql:
sh /opt/alfresco-4.2.c/alfresco.sh stop postgresql

in Dolphin go to backup location Typically /backup
 mv contentstore contentstore.deleted /opt/alfresco-4.2.b/alf_data/

or use Dolphin to copy 

contentstore

contentstore.deleted
- Start and stop the new alfresco server (again wait for 5 minutes between the two commands for the server to start properly):
sh /opt/alfresco-4.2.c/alfresco.sh start && sleep 300 && sh /opt/alfresco-4.2.c/alfresco.sh stop

- Revert the indexing back to on (Solr):
In /opt/alfresco-4.2.c/tomcat/shared/classes/alfresco-global.properties 

turn

### Solr indexing ###
index.subsystem.name=noindex
dir.keystore=${dir.root}/keystore
#solr.port.ssl=8443
into
### Solr indexing ###
index.subsystem.name=solr
dir.keystore=${dir.root}/keystore
solr.port.ssl=8443


Reindex
stop alfresco
sh /opt/alfresco-4.2.c/alfresco.sh stop

Delete

/opt/alfresco/alf_data/solr/workspace/SpacesStore
/opt/alfresco/alf_data/solr/archive/SpacesStore
/opt/alfresco/alf_data/solr/workspace-SpacesStore/alfrescoModels
/opt/alfresco/alf_data/solr/archive-SpacesStore/alfrescoModels

Restart Alfesco
sh /opt/alfresco-4.2.c/alfresco.sh start

And it should work

Monday 25 March 2013

Moodle 2.4 Blocks Changes in Code

I was looking for a module block for Moodle  My client wanted a scrolling Testimonials block. Ideally they wanted to have a set of several testimonials that could easily be edited and would display in a random order and maybe scroll across the block. I had a look for such a thing, but couldn't find anything, so I decided to write one myself.
There was a good looking tutorial to get started so I did. The only problem was that it didn't work. If I took their code and put it up it just broke Moodle telling me that the block had errors in it.
I initially decided that it was me and making silly typos. Having got rid of my only mistake the thing still didn't work. so I went back to basics.
This is a very simple block just to display some text. It works with Moodle 2.4.

block_testimonials.php


<?php

// This file is part of Moodle - http://moodle.org/

/**
 * Form for editing banners block instances.
 *
 * @package   testimonials Philip M Russell Ltd
 * @copyright 1999 onwards Martin Dougiamas (http://dougiamas.com)
 * @license   http://www.gnu.org/copyleft/gpl.banners GNU GPL v3 or later
 */

class block_testimonials extends block_base {

    public function init() {
        $this->title = get_string('pluginname', 'block_testimonials');        
    }
public function get_content() {
    if ($this->content !== null) {
      return $this->content;
    }

    $this->content         =  new stdClass;
    $this->content->text   = 'BRE Training is a great place to learn how to do things properly.';
    $this->content->footer = 'BRE Training';

    return $this->content;
  }
}   // Here's the closing bracket for the class definition


Version.php


<?php
// This file is part of Moodle - http://moodle.org/

/**
 * Version details
 *
 * @package    testimonials
 * @subpackage html
 * @copyright  1999 onwards Martin Dougiamas (http://dougiamas.com)
 * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
 */

defined('MOODLE_INTERNAL') || die();

$plugin->version   = 2012112901;        // The current plugin version (Date: YYYYMMDDXX)
$plugin->requires  = 2012062500;        // Requires this Moodle version
$plugin->component = 'block_testimonials';      // Full name of the plugin (used for diagnostics)
$plugin->cron      = 0;
$plugin->maturity  = MATURITY_BETA;
$plugin->release   = '2.3 (Build: 2012112900)'; 

db/access.php


<?php

// This file is part of Moodle - http://moodle.org/
/*
* @copyright 2013 Philip M Russell Ltd
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/

defined('MOODLE_INTERNAL') || die();

$capabilities = array(

'block/testimonials:myaddinstance' => array(
'riskbitmask' => RISK_SPAM,
'captype' => 'write',
'contextlevel' => CONTEXT_BLOCK,
'archetypes' => array(
'editingteacher' => CAP_ALLOW,
'manager' => CAP_ALLOW
)
)

);

lang/en/block_testimonials.php


<?php

// This file is part of Moodle - http://moodle.org/
/**
 * @package   testimonials
 * @copyright 1999 onwards Martin Dougiamas  {@link http://moodle.com}
 * @license   http://www.gnu.org/copyleft/gpl.banners GNU GPL v3 or later
 */


$string['pluginname'] = 'Testimonials block';
$string['testimonials'] = 'Simple HTML';
$string['testimonials:addinstance'] = 'Add a new simple HTML block';
$string['testimonials:myaddinstance'] = 'Add a new simple HTML block to the My Moodle page';

edit_form.php


<?php

class block_testimonials_edit_form extends block_edit_form {

    protected function specific_definition($mform) {

        // Section header title according to language file.
        $mform->addElement('header', 'configheader', get_string('blocksettings', 'block'));

        // A sample string variable with a default value.
        $mform->addElement('text', 'config_text', get_string('blockstring', 'block_testimonials'));
        $mform->setDefault('config_text', 'default value');
        $mform->setType('config_text', PARAM_MULTILANG);        

    }
}

Each of these php programs is saved into a directory called testimonials and was copped by into moodle/blocks.

On loading Moodle the block was detected and I was asked to update the Moodle database. If there are any errors then this shows up straight away. Then it is necessary to remove the block and recode.



Thursday 14 March 2013

10 questions to ask about a new website

Many people have a web site because it seems the right thing to do. But often you need to ask some questions of yourself before you get started.


10 Questions to ask about why you need a website.


  1. Why do you want a website?
  2. Why do you need a website?
  3. What is the mission or purpose of the company / organisation?
  4. What are your short and long-term goals for your website?
  5. Who are the intended audiences for your website?
  6. Why will people come to your site the very first time?
  7. What will make them want to come back?
  8. What content will make up your website?
  9. What content do you have?
  10. Why shouldn't I build this myself?
Why do you want a website? 
This is often a killer question that many cannot answer. Web sites are not really for fun, they are there for business and primarily to make money. If a business is doing things just for fun then just how is it making money?

Why do you need a website?
This is the better question. You need a website to market. your company, as an alternative sales place, to get information about what you do to your customers, to add items to your company that cannot easily be obtained in any other way.

What is the mission or purpose of the company / organisation?
Once you have identified this, this can be accentuated in your web site. If your purpose is to make money then an eCommerce website rather than a bricks and mortar shop my be the solution. If is amazing what can be bought over the web. Many things that are often thought cannot be sold over the web are being successfully done by other - possible your rivals.

What are your short and long-term goals for your website?
Having a web site without a goal gives you no idea whether this a bottomless pit you have opened up or whether the site is in fact making money for you. Once the web site is going, set short term targets and see if you are achieving them. If not change the target or change the web site, or change your strategy.
Short term goals are only part of long term goals. Long term goals are about profit and success. Theses need to be carefully monitored and tested.

Who are the intended audiences for your website?
Website are bought by companies, but the users don't work for the company. Many sites are written by the company with little regard for the person who is actually going to use them. Some of my clients say that they want this or that. What they should be saying is that my clients want this or that to help them ......
Very few companies seem to have a really good idea who their audience is. For some it is obvious, but for others your perceived audience is often not your intended audience. If you know who your audience is then the website can be used to target them and increase your sales.

Why will people come to your site the very first time?
There are probably a hundred or so web sites like yours. Why should some one choose yours over anyone else's.  I am told by many of my customers that their product is better than others. But how to put this over. Products are one thing but websites are something else. Some people only go to the top website on the list in Google because it must be the best. Gimmicks work - have something on your website that someone wants. Sometimes you need some thing to attract the customer and perhaps something to make them come back. Some type of work is essential to get you to the top of the search engine list.

What will make them want to come back?
Getting the customer to your web site for the first time is hard enough, but now you need to keep them coming back. Some use a new calendar every month. Some have email lists and special offers every month or day. Some use gift tokens and money off. Change is a must. A website that stays the same gives on one a reason to come back. A site that changes or a dynamic site can make all the difference.

What content will make up your website?
Some of my clients really do say to me build me a website - I do such and such. They give me no content or details and expect me to know all about their company, what they do and how they do it. You know your business better than anyone else. You know what you do and how you do it and this is what sets you apart from the rest. 

What content do you have?
As a web developer I need pictures of work done, the property, the product, how its done and this is often very lacking. I usually have to do this myself or employ a professional photographer to get first class images of the business. I then need special graphical images made up to simplify and explain the processes. A company is about doing its thing. A website is about promoting and selling this idea or product. The two often don't go together.

Why shouldn't I build this myself?
I'm a Garage owner - why shouldn't I build a web site - surely there are lots of good tools out there. Probably because for the same reason that I can buy great spanners and a car manual, but it doesn't mean that I can fix the car properly. My mechanic charges me £50 for mending my car, £5 for hitting it and £45 for knowing where and how hard. The same is true for websites. Millions of new websites appear on the internet everyday. You want yours to be number one.

Wednesday 13 March 2013

Ie8 emulator isn't the same as the real thing

I have been doing a fair bit of work recently for a company do Moodle design.. Many of their staff still use IE8 and XP. Gradually their staff are moving over to IE9 and 10 and Chrome. I have been creating Moodle sites for them and we need to look at the site in all the Browsers including IE8
Now the easiest way of doing this is to fire up a load of browsers on a PC and have a look at the web site on the different browsers. Because of the difficulty in having IE8 and IE9 on the same machine, I have been putting IE10 into emulator mode and running it as IE8. (press F12 to call up the  Code popup) Selecting the Browse Mode as IE8 and the Document Mode as IE8 is supposed to make this browser behave as IE8. Now for most pages this seems to work. Some of Moodle behaves as I would expect it to, but some doesn't. Therefore I have had to either use an old XP machine or to load up the Microsoft emulator and run a copy of XP with IE8. This is a pain, but at least it works.

So when is IE8 not IE8 when IE10 is pretending to be IE8

Thursday 21 February 2013

New Products - Europe and UK last again

Every now and again some great new technology comes along. The new concept Google glasses for instance. If you would like to be a beta tester then please be lucky enough to win the opportunity to buy a part of the development process ($1500) and of course live in America. The glasses look like a product without a market, or at least that is the way that I see Google looking at it. They have taken this existing technology and put it into a pair of glasses. There have been the cameras like the GO Pro doing this for years in the sports arena and mobile phones doing this for everyone else like you and me. I will admit that now cameras are available all the time with me I take more photos.

I have an Novus View-i-Pro Ruby twin camera fitted in my car.It goes everywhere I go in the car recording where I go, what I do and how I drive. Two cameras one on the road and one on me and GPS and acceleration data collection. I am conscious of this and drive better because of it - keeping strictly to the speed limits. It records all those incidents that happen all the time and I suppose that some people would enjoy watching them on You Tube if I had the time to scan through the footage and put it up. How is this different from the Google glasses - I am not really sure apart from the fact you would get an image of what I was looking at rather than being a useful product. This is really a great product - simply install and forget and in the care of an accident - there is the evidence.

It is similar with the announcement new PS4. I have now seen the new controller and like most people I have yet to see what the console looks like. The launch is set for Holiday 2013 and the place - you guessed it USA. I sometimes wonder how big the US market really is - or is it that if they don't get this first they refuse to buy the goods. Why is Europe and the UK sidelined in this way. How about some of the rest of the world.
I sometimes get the feeling, especially when I talk to a few American friends of mine that they don't really know about the rest of the world, which I suppose is rather sad.
I suppose it also relates that although we the Brits and our friends next door will get the goods later than the Americans we will probably do more with it, as we have done with so many other toys that have come and gone.

Monday 18 February 2013

Artisteer Moodle header image problems with IE8 Solved

The new template creator with Artisteer works really well created custom templates for Moodle . These work really well with IE9 and 10, Chrome and Firefox. Unfortunately my client still uses Windows XP and IE8.  The header doesn't work in IE8 so, I am greeted with a whole host of problems. in the way that the image is displayed. In some cases since this moodle template has a left and a right column  the centre one with all the information disappears. So the problem is no header, and sometimes no content. The template of course works ok in IE9 an Chrome etc.


This is the same website in the same browser but in IE9 mode.
I switch from on ie version to another using F12 an then in the code window clicking on the Browser Mode. This gives a fairly faithful representation of IE8.
It is necessary to change the Standards as well.


So the problem is that in IE 8  The headers display for a second and then disappear,

Solving the problem.

After playing around with this a a few hours the solution is quite simple..

In Artisteer create the template as normal.
Here there is a simple header and a plain background. IE 8 can only cope with plain backgrounds. It cannot render gradients. These need to be done with images.
Using a screen capture program such as snagit, capture the header graphic from Artisteer and then put it back into the background as a centred background. Add a file image to the background. This background image disappears under the current header, but after it is exported it now looks the same in IE8 and IE9



Wednesday 30 January 2013

Removing the Moodle icon in the footer

This was a problem given to me this week. Looking on the Fora there are a few ideas.

1) Look in:
Moodle\lib\weblib.php
Search the code for “moodlelogo” But this doesn't exist in Moodle 2.4
Many of the other ideas seem to want to change footer.html

2) Use Artisteer.
I create my style using Artisteer and guess what - no moodle logo at the bottom.



The Artisteer makes the coding of these style sheets very quick and this works well with Version 2.4 Moodle

Friday 11 January 2013

Backing up Alfresco


A fairly fool prof way of backup up the Alfresco server.

stop alfresco
sh /opt/alfresco-4.2.b/alfresco.sh stop

Change the global properties file

In /opt/alfresco-4.2.b/tomcat/shared/classes/alfresco-global.properties turn
### Solr indexing ###
index.subsystem.name=solr
dir.keystore=${dir.root}/keystore
solr.port.ssl=8443
into
### Solr indexing ###
index.subsystem.name=noindex
dir.keystore=${dir.root}/keystore
#solr.port.ssl=8443

Start and Stop the system


sh /opt/alfresco-4.2.b/alfresco.sh start && sleep 300 && sh /opt/alfresco-4.2.b/alfresco.sh stop

Dump the database structure
Start Alfresco postgresql:
 sh /opt/alfresco-4.2.b/alfresco.sh start postgresql
Dump (backup) the entire alfresco postgresql database to a script file (the postgres user password will be asked, use the one that you gave during the Alfresco installation):

 su postgres
$ pg_dump -h localhost alfresco > /home/philip/backup/alfrescodbdump
Password:
$ exit
Stop Alfresco postgresql:
sh /opt/alfresco-4.0.e/alfresco.sh stop postgresql

Backup the datastructure

cp /opt/alfresco-4.2.b /home/philip/backup/alfresco-4.2.b.backup -R

Revert the indexing back to on (Solr):

In /opt/alfresco-4.2.b/tomcat/shared/classes/alfresco-global.properties turn
### Solr indexing ###
index.subsystem.name=noindex
dir.keystore=${dir.root}/keystore
#solr.port.ssl=8443
into
### Solr indexing ###
index.subsystem.name=solr
dir.keystore=${dir.root}/keystore
solr.port.ssl=8443

Start  the system


sh /opt/alfresco-4.2.b/alfresco.sh start 

Tuesday 8 January 2013

Upgrading Alfresco - solr not updating - solved

On upgrading solr did not index any new files

I managed easily to upgrade Alfresco in another post. All went well except for the solr system although enabled would not index any new files. All the old files we indexed and worked, but the new ones would not.

I checked the permissions - they were ok, I checked the indicies - they were ok
I checked all the references to solr they were ok.

I did a new install an everything worked fine.
I added files and they indexed immediately.
I deleted the database schema, copied in mine and then the data into alf-data.
Immediately solr didn't index.

It had to be the solr indexes which I deleted.
solr recreated these as alfesco boot and now all is ok.

This works on 4.2.b and 4.2.c
stop alfresco
sh /opt/alfresco-4.2.b/alfresco.sh stop

Delete

/opt/alfresco/alf_data/solr/workspace/SpacesStore
/opt/alfresco/alf_data/solr/archive/SpacesStore
/opt/alfresco/alf_data/solr/workspace-SpacesStore/alfrescoModels
/opt/alfresco/alf_data/solr/archive-SpacesStore/alfrescoModels

Restart Alfesco
sh /opt/alfresco-4.2.b/alfresco.sh start