<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Osssmb's Weblog</title>
	<atom:link href="http://osssmb.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://osssmb.wordpress.com</link>
	<description>Open Source for Small Business</description>
	<lastBuildDate>Sun, 06 Nov 2011 22:12:38 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='osssmb.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Osssmb's Weblog</title>
		<link>http://osssmb.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://osssmb.wordpress.com/osd.xml" title="Osssmb&#039;s Weblog" />
	<atom:link rel='hub' href='http://osssmb.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Business Days / Working Days SQL for Postgres</title>
		<link>http://osssmb.wordpress.com/2009/12/02/business-days-working-days-sql-for-postgres-2/</link>
		<comments>http://osssmb.wordpress.com/2009/12/02/business-days-working-days-sql-for-postgres-2/#comments</comments>
		<pubDate>Wed, 02 Dec 2009 22:26:55 +0000</pubDate>
		<dc:creator>baxford</dc:creator>
				<category><![CDATA[Postgres]]></category>

		<guid isPermaLink="false">http://osssmb.wordpress.com/?p=64</guid>
		<description><![CDATA[We use Postgres 8.4 as our database and I’m really impressed with how it performs and the amount of features it has. Recently we’ve needed some functions for working with dates and business days, so I looked for some help on this. I found a good post here: http://archives.postgresql.org/pgsql-sql/2009-11/msg00038.php In the process, I made a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osssmb.wordpress.com&amp;blog=4961723&amp;post=64&amp;subd=osssmb&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>We use Postgres 8.4 as our database and I’m really impressed with how it performs and the amount of features it has.</p>
<p>Recently we’ve needed some functions for working with dates and business days, so I looked for some help on this.</p>
<p>I found a good post here:  <a href="http://archives.postgresql.org/pgsql-sql/2009-11/msg00038.php">http://archives.postgresql.org/pgsql-sql/2009-11/msg00038.php</a></p>
<p>In the process,  I made a few changes, including the use of Postgres 8.4 ‘with’ syntax, which I find really useful in making things understandable. Obviously, this needs Postgres 8.4 to work.</p>
<p>Here are the results, in case anyone out there is looking for similar functions (any comments / suggestions / improvements welcome):</p>
<p><strong>Holiday Table</strong><br />
First, create a table containing all the holidays that aren’t working days:</p>
<pre>CREATE TABLE holidays (
   id serial,
   description character varying (50) not null,
   holiday date not NULL
)
WITHOUT OIDS
TABLESPACE pg_default;

insert into holidays (description, holiday) values ('Christmas Day', '2009-12-25');
insert into holidays (description, holiday) values ('Boxing Day', '2009-12-28');
insert into holidays (description, holiday) values ('New Years Day', '2010-01-01');
insert into holidays (description, holiday) values ('Good Friday', '2010-04-02');
insert into holidays (description, holiday) values ('Easter Monday', '2010-04-05');
</pre>
<p><strong>Add Working Days to a Date</strong><br />
Now, create a function to add working days to a given date:<br />
<strong>NOTE: If you input a non-working day and add 0 days to it, you will get no result!</strong></p>
<pre>CREATE OR REPLACE FUNCTION addbusinessdays(date, integer)
  RETURNS date AS
$BODY$
with alldates as (
	SELECT i,
	-- Check for negatives
	$1 + (i * case when $2 &lt; 0 then -1 else 1 end) AS date
	-- NOTE we add 5 and x 2, to make sure the sequence has enough in it to cope with weekends/hols that get omitted later
	FROM generate_series(0,(abs($2) + 5)*2) i
),
days as (
	select i, date, extract('dow' from date) as dow
	from alldates
),
businessdays as (
	select i, date, d.dow from days d
	left join holidays h on d.date=h.holiday
	where h.holiday is null
	and d.dow between 1 and 5
	order by i
)
--select count(*) from businessdays where date between '2010-04-01' and '2010-04-07';
-- now to add biz days to a date
select date from businessdays where
        case when $2 &gt; 0 then date &gt;=$1 when $2 &lt; 0 then date &lt;=$1 else date =$1 end
	limit 1
	offset abs($2)
$BODY$
  LANGUAGE 'sql' VOLATILE
  COST 100;
ALTER FUNCTION addbusinessdays(date, integer) OWNER TO postgres;

select * from addbusinessdays('2009-12-24', 1)
</pre>
<p>Finally to get the number of working days between two dates:</p>
<pre>CREATE OR REPLACE FUNCTION countbusinessdays(date, date)
  RETURNS bigint AS
$BODY$
with alldates as (
	SELECT i, $1 + i AS date, extract ('dow'  from $1::date + i) AS dow
	FROM generate_series(0,$2-$1) i
),
businessdays as (
	select date, dow from alldates dt
	left join holidays h on dt.date=h.holiday
	where h.holiday is null
	and dow between 1 and 5
	order by date
)
select greatest(0,count(*)-1) from businessdays where date between $1 and $2;

$BODY$
  LANGUAGE 'sql' VOLATILE
  COST 100;
ALTER FUNCTION countbusinessdays(date, date) OWNER TO postgres;

select * from countbusinessdays('2009-12-24','2009-12-29');
</pre>
<p>That’s it! Hope it’s useful to someone.<br />
Bob</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/osssmb.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/osssmb.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/osssmb.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/osssmb.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/osssmb.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/osssmb.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/osssmb.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/osssmb.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/osssmb.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/osssmb.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/osssmb.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/osssmb.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/osssmb.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/osssmb.wordpress.com/64/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osssmb.wordpress.com&amp;blog=4961723&amp;post=64&amp;subd=osssmb&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://osssmb.wordpress.com/2009/12/02/business-days-working-days-sql-for-postgres-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/63d9959656fd3f86e43c042d41801910?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">baxford</media:title>
		</media:content>
	</item>
		<item>
		<title>Open Source Business Models</title>
		<link>http://osssmb.wordpress.com/2009/06/29/open-source-business-models/</link>
		<comments>http://osssmb.wordpress.com/2009/06/29/open-source-business-models/#comments</comments>
		<pubDate>Mon, 29 Jun 2009 00:25:57 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://osssmb.wordpress.com/?p=49</guid>
		<description><![CDATA[The vast majority of the systems we run are Open Source &#8211; for a simple reason; we are a small company and we want to produce enterprise grade solutions at a fraction of the price that a serious Enterprise would pay. We simply can&#8217;t afford to pay the amounts that the Enterprises pay. Not until [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osssmb.wordpress.com&amp;blog=4961723&amp;post=49&amp;subd=osssmb&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The vast majority of the systems we run are Open Source &#8211; for a simple reason; we are a small company and we want to produce enterprise grade solutions at a fraction of the price that a serious Enterprise would pay. We simply can&#8217;t afford to pay the amounts that the Enterprises pay. Not until we are making considerably more money than we are currently.</p>
<p>Having said that however, we are responsible citizens  and would like to contribute back where we can. Generally, that is either in code contributions or by paying for the software that we use. Code contributions are difficult, we don&#8217;t have a lot of time to spend on making changes to the software that we use. We also use far more than would be practical for us to be across. So we pick one or two systems that we really need more from and contribute to those.</p>
<p>For the rest, we would love to be able to pay reasonable amounts of money for them. The issue is that invariably the pricing structure is either free or enterprise grade (i.e. &gt;= $10k per CPU per year) style pricing. This includes support, escalations etc. The trouble is that this leaves us with no option to really pay anything.  Personally I would have thought there would be thousands more companies like us than there are major enterprises willing to pay. I would like to see products costed at $1k per year for access to the product (via RPM) and security updates. I don&#8217;t need the support (not at that price anyway).</p>
<p>The products that do provide that level of pricing, I pay for, the rest, I use for free. While I feel guilty about that, until the business models of the companies providing these systems change, there is not much else I can do.</p>
<p>Cheers,</p>
<p>David</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/osssmb.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/osssmb.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/osssmb.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/osssmb.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/osssmb.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/osssmb.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/osssmb.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/osssmb.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/osssmb.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/osssmb.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/osssmb.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/osssmb.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/osssmb.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/osssmb.wordpress.com/49/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osssmb.wordpress.com&amp;blog=4961723&amp;post=49&amp;subd=osssmb&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://osssmb.wordpress.com/2009/06/29/open-source-business-models/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f36a5d6f79b604770081ee9d947a21da?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">David</media:title>
		</media:content>
	</item>
		<item>
		<title>Backups &amp; SAN Storage</title>
		<link>http://osssmb.wordpress.com/2009/01/27/backups-san-storage/</link>
		<comments>http://osssmb.wordpress.com/2009/01/27/backups-san-storage/#comments</comments>
		<pubDate>Tue, 27 Jan 2009 05:45:04 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[System Administration]]></category>

		<guid isPermaLink="false">http://osssmb.wordpress.com/?p=40</guid>
		<description><![CDATA[Enterprises typically spend huge dollars on their storage solutions (which admittedly are excellent). But if you don&#8217;t have several hundred thousand dollars, what do you do? Run CentOS! We are putting together our backup solution &#8211; we use Bacula to manage our backups which is an excellent network aware solution that seems rock solid for [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osssmb.wordpress.com&amp;blog=4961723&amp;post=40&amp;subd=osssmb&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Enterprises typically spend huge dollars on their storage solutions (which admittedly are excellent). But if you don&#8217;t have several hundred thousand dollars, what do you do? Run CentOS!</p>
<p>We are putting together our backup solution &#8211; we use <a title="Bacula" href="http://www.bacula.org" target="_self">Bacula</a> to manage our backups which is an excellent network aware solution that seems rock solid for us. We needed to compile our own RPMs from the source, but this was a simple matter of running:</p>
<pre># rpmbuild --rebuild --define "build_centos5 1" --define "build_postgresql 1" \
                     --define 'build_gconsole 1'--define 'build_bat 1' \
                     bacula-&lt;version&gt;.src.rpm</pre>
<p>which we then imported into our yum repository. The configuration for this was pretty complicated the first time we set it up, but with the excellent HOWTOs on the site was not too much pain. We then had to decide where to store all the data. Tape drives are expensive, and slow and was not something we really wanted to do if we didn&#8217;t have to, so we built our own SAN. A SAN (Storage Attached Network) is a device which looks like a normal disk device on the computer, but in fact sends all the data across the network to a storage device.</p>
<p>Building a SAN is as simple as installing correct package and configuring it up:</p>
<pre># yum install scsi-target-utils
# chkconfig tgtd on
# service tgtd start
# /usr/sbin/tgtadm --lld iscsi --op new  --mode target --tid 1 \
                   -T iqn.2009-01.example.com.san1:storage.backup
# /usr/sbin/tgtadm --lld iscsi --op new  --mode logicalunit --tid 1 --lun 1 \
                   -b /dev/VolGroup00/Backup
# /usr/sbin/tgtadm --lld iscsi --op bind --mode target --tid 1 -I ALL
# echo &gt;&gt; /etc/rc.local &lt;&lt;EOF
/usr/sbin/tgtadm --lld iscsi --op new  --mode target --tid 1 \
                 -T iqn.2009-01.example.com.san1:storage.backup
/usr/sbin/tgtadm --lld iscsi --op new  --mode logicalunit --tid 1 --lun 1 \
                 -b /dev/VolGroup00/Backup
/usr/sbin/tgtadm --lld iscsi --op bind --mode target --tid 1 -I ALL
EOF</pre>
<p>and you are done. Then you need to bind to that storage on the server that requires access to it. This is as simple as:</p>
<pre># yum install iscsi-initiator-utils
# echo "InitiatorName=iqn.2008-11.example.com.`hostname`" \
  &gt; /etc/iscsi/initiatorname.iscsi
# iscsiadm -m discovery -t st -p &lt;san address&gt;
# iscsiadm --mode node --targetname  iqn.2009-01.example.com.san1:storage.backup \
           --portal &lt;san address&gt;:3260 --login
# mount /dev/&lt;new device&gt; /mnt</pre>
<p>You now have a working SAN hooked up to the machine that requires it. Couple this with drbd and you have a highly available storage setup which will run as fast as your network (Gig-E is obviously recommended for this). Using a distributed filesystem (such as GFS2) should allow many machines to access the same data simultaneously. However, we have not done this as yet.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/osssmb.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/osssmb.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/osssmb.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/osssmb.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/osssmb.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/osssmb.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/osssmb.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/osssmb.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/osssmb.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/osssmb.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/osssmb.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/osssmb.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/osssmb.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/osssmb.wordpress.com/40/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osssmb.wordpress.com&amp;blog=4961723&amp;post=40&amp;subd=osssmb&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://osssmb.wordpress.com/2009/01/27/backups-san-storage/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f36a5d6f79b604770081ee9d947a21da?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">David</media:title>
		</media:content>
	</item>
		<item>
		<title>High Availability with DRBD and Heartbeat (CRM)</title>
		<link>http://osssmb.wordpress.com/2008/12/16/high-availability-with-drbd-and-heartbeat-crm/</link>
		<comments>http://osssmb.wordpress.com/2008/12/16/high-availability-with-drbd-and-heartbeat-crm/#comments</comments>
		<pubDate>Tue, 16 Dec 2008 04:36:22 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[System Administration]]></category>

		<guid isPermaLink="false">http://osssmb.wordpress.com/?p=34</guid>
		<description><![CDATA[One of the huge benefits of going with Open Source solutions is the ability to get Enterprise grade solutions for decidedly non Enterprise costs. We have a fairly typical Web site set up with two load balancers, 2 Apache/Tomcat servers and 2 Postgres database boxes. We wanted to be able to ensure that in the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osssmb.wordpress.com&amp;blog=4961723&amp;post=34&amp;subd=osssmb&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>One of the huge benefits of going with Open Source solutions is the ability to get Enterprise grade solutions for decidedly non Enterprise costs. We have a fairly typical Web site set up with two load balancers, 2 Apache/Tomcat servers and 2 Postgres database boxes. We wanted to be able to ensure that in the event of a  failure of any of those machines, we would be able to automatically recover and continue providing services.</p>
<h2>Database</h2>
<p>We have two machines, both with Postgres 8.1 installed on them (the latest version provided as part of CentOS 5.2). While apparently 8.3 can work in active/active mode, we decided to stick with 8.1 to reduce dependency hell with everything else on the machines and work with DRBD. Setup is incredibly simple &#8211; we created an /etc/drbd.conf file which had:</p>
<pre>global {
  usage-count no;
}

common {
  protocol C;
}

resource r0 {
  device    /dev/drbd1;
  disk      /dev/LVMGroup/LVMVolume;
  meta-disk internal;

  on &lt;node1&gt; {
    address   &lt;ip address1&gt;:7789;
  }
  on &lt;node2&gt; {
    address   &lt;ip address2&gt;:7789;
  }
}</pre>
<p>on both nodes and ran :</p>
<pre># drbdadm create-md r0  &lt;-- on both nodes
# service drbd start    &lt;-- on both nodes
# drbdadm -- --overwrite-data-of-peer primary r0  &lt;-- on the primary node</pre>
<p>This started DRBD and allowed the primary node to sync to the secondary. For more details about this (and heartbeat configuration below), have a look at this excellent <a title="CentOS HOWTO" href="http://wiki.centos.org/HowTos/Ha-Drbd" target="_self">CentOS HOWTO</a>. Then we needed to configure heartbeat to manage the automatic failover for us. Create /etc/ha.d/ha.cf on both nodes to contain:</p>
<pre>keepalive 2
deadtime 30
warntime 10
initdead 120
bcast   eth0
node    &lt;node1 name as per uname -n&gt;
node    &lt;node2 name as per uname -n&gt;
crm yes</pre>
<p>The /etc/ha.d/authkeys on both nodes should contain:</p>
<pre>auth 1
1 sha1 &lt;passwd&gt;</pre>
<p>This will then result in a working heartbeat. Start the heartbeat service on both nodes and ywait a few minutes and the command crm_mon will show you a running cluster:</p>
<pre>[root@&lt;node1&gt; ha.d]# crm_mon
Defaulting to one-shot mode
You need to have curses available at compile time to enable console mode

============
Last updated: Tue Dec 16 14:29:03 2008
Current DC: &lt;node2&gt; (33b76ea8-7368-442f-aef3-26916c567166)
2 Nodes configured.
0 Resources configured.
============

Node: &lt;node2&gt; (33b76ea8-7368-442f-aef3-26916c567166): online
Node: &lt;node1&gt; (bbccba14-0f40-4b1c-bc5d-8c03d9435a37): online</pre>
<p>Then run hb_gui to configure the resources for heartbeat. The file that this gui configures is in /var/lib/heartbeat/crm and is defined via XML. While I would prefer to configure it manually, I haven&#8217;t worked out how to do that yet and the hb_gui tool is very easy to use.</p>
<p>Using that tool, you can create a resource group for the clustered services (click on Resources and Plus and select Group). Then within that group you need to configure 4 resources, a virtual IP address that can be used to communicate with the the primary node, a filesystem resource for the DRBD filesystem, drbddisk resource and a resource for postgres. To take each in turn:</p>
<ol>
<li>IP Address &#8211; click on plus and select Native, change the resource name to ip_&lt;groupname&gt;, select the group it should belong to, then select IPaddr from the list and click on Add Parameter. Then enter ip and a virtual ip address for the cluster. Add another parameter nic and select the interface for this to be configured against (i.e. eth0). Then click on OK.</li>
<li>drbddisk resource &#8211; Same procedure, but this time select drbddisk  instead of ipaddr and select Add Parameter. Then enter 1 and the name of the drbd resource created (r0 in our case).</li>
<li>filesystem &#8211; Same again, but select Filesystem and add the following parameters:
<ol>
<li>device, /dev/drbd1 (in this example)</li>
<li>directory, /var/lib/pgsql (for postgres)</li>
<li>type, ext3 (or the filesystem you have created on it)</li>
</ol>
</li>
<li>postgres &#8211; Lastly add a postgres resource with no parameters.</li>
</ol>
<p>Start the resource group and in a few minutes everything should be started on one of the nodes. To switch over the the other run service heartbeat stop on one and everything will migrate to the other. Good luck, you should now have an active/passive cluster for your database. This worked for us. Your mileage may vary, but any issues feel free to leave a comment and we&#8217;ll update this HOWTO.</p>
<h2>Web</h2>
<p>Creating the clustering for the Web was similarly easy. We kept the 2 web machines as they were with Apache and Tomcat running on both and instead clustered the load balancers initially in active/passive (until we can work out the active/active settings) in much the same way. The key difference was that for these machines we ran the load balancing software (HAProxy) on both all the time and the cluster just looked after the IP address. That way nothing was slowed down if the primary load balancer failed while waiting for services to start.</p>
<p>Cheers,</p>
<p>David</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/osssmb.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/osssmb.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/osssmb.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/osssmb.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/osssmb.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/osssmb.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/osssmb.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/osssmb.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/osssmb.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/osssmb.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/osssmb.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/osssmb.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/osssmb.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/osssmb.wordpress.com/34/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osssmb.wordpress.com&amp;blog=4961723&amp;post=34&amp;subd=osssmb&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://osssmb.wordpress.com/2008/12/16/high-availability-with-drbd-and-heartbeat-crm/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f36a5d6f79b604770081ee9d947a21da?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">David</media:title>
		</media:content>
	</item>
		<item>
		<title>Managing Windows Domains</title>
		<link>http://osssmb.wordpress.com/2008/10/26/managing-windows-domains/</link>
		<comments>http://osssmb.wordpress.com/2008/10/26/managing-windows-domains/#comments</comments>
		<pubDate>Sun, 26 Oct 2008 23:48:41 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[System Administration]]></category>

		<guid isPermaLink="false">http://osssmb.wordpress.com/?p=29</guid>
		<description><![CDATA[With the removal of Exchange and MS Office from the company we then wanted to look at the Domain Controllers. While a lot of Open Source systems have the ability to integrate into Active Directory, it always appeared to be a little complicated and fraught with problems. However, to get Single Sign On working, you [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osssmb.wordpress.com&amp;blog=4961723&amp;post=29&amp;subd=osssmb&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>With the removal of Exchange and MS Office from the company we then wanted to look at the Domain Controllers. While a lot of Open Source systems have the ability to integrate into Active Directory, it always appeared to be a little complicated and fraught with problems. However, to get Single Sign On working, you need a single directory master. Zimbra includes OpenLDAP as one of it&#8217;s components, so we decided to bite the bullet and migrate the Windows desktops off the Windows Domain and onto a <a title="Samba" href="http://www.samba.org">Samba</a> domain instead. This would then give us a greatly reduced cost base as well as the ability to have the same username and password within Windows, Zimbra, RT etc etc.</p>
<p>Installing Samba was a little complicated, there are any number of HOWTOs out there to follow and while initially there was a big learning curve, it got easier quickly. Zimbra contains a very explicit <a title="HOWTO" href="http://wiki.zimbra.com/index.php?title=UNIX_and_Windows_Accounts_in_Zimbra_LDAP_and_Zimbra_Admin_UI">HOWTO</a> for integration between Samba and LDAP so while that took a little thought it also worked without too much heartache. It also meant that integration with the various systems were a little easier to debug as well.</p>
<p>Once we had followed the HOWTOs it was a simple matter of migrating the workstations to the new domain. Samba v3 is modelled on the pre Active Directory technology, so the whole process is a little more manual than with the latest Windows technology. However, v4 of Samba promises to include all that functionality in which will make things a lot less manual.</p>
<p>It did mean that we now could reuse 3 Domain Controllers (and not have to purchase Client Access Licences for all the users to be able to connect to the domain controllers with) and save the subsequent licencing costs. Creation of a new user account now occurs within Zimbra, but the login scripts have to be manually set on the Samba server. Telling Samba to obey the pam restrictions on the server ensured that home directories would be created automatically however.</p>
<p>The two biggest issues we encountered:</p>
<ol>
<li>Until a recent version of Zimbra, if someone changed their password within Zimbra it would not be reflected on the Windows machines. This is now rectified, via an extension, but did require user education.</li>
<li>Samba inexplicably removed a feature by which we could filter the ldap searches on active users, without replacing it with anything similar. As a result I have not been able to find away to disable ex employees from being able to log on just by setting their account status in Zimbra. This is just plain stupid. Instead I have to write a script to check the Zimbra status and apply the same to the Samba statuses. Really, really irritating. If we weren&#8217;t saving so much money on the Windows Servers, I would seriously reconsider going to samba again. The workaround is such that if a user gets disabled inadvertently (i.e. they type their password in incorrectly and get locked out) then I need to re-enable them twice.</li>
</ol>
<p>Leaving the negatives aside, Microsoft makes you buy Windows Server and then Client Access Licences to be able to use the server. Then more licences for anyone wanting to log in to the server (and I swear you have to be a rocket scientist to understand the Terminal Services licencing documentation). It all adds up. Samba is more stable than Windows, fast and works well. Other than the inability to hook into LDAP correctly which I did create a workaround for&#8230; Lets hope v4 works better in that respect.</p>
<p>Cheers,</p>
<p>David</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/osssmb.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/osssmb.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/osssmb.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/osssmb.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/osssmb.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/osssmb.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/osssmb.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/osssmb.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/osssmb.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/osssmb.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/osssmb.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/osssmb.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/osssmb.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/osssmb.wordpress.com/29/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osssmb.wordpress.com&amp;blog=4961723&amp;post=29&amp;subd=osssmb&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://osssmb.wordpress.com/2008/10/26/managing-windows-domains/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f36a5d6f79b604770081ee9d947a21da?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">David</media:title>
		</media:content>
	</item>
		<item>
		<title>Managing Customer Communications</title>
		<link>http://osssmb.wordpress.com/2008/10/22/managing-customer-communications/</link>
		<comments>http://osssmb.wordpress.com/2008/10/22/managing-customer-communications/#comments</comments>
		<pubDate>Wed, 22 Oct 2008 23:43:57 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[System Administration]]></category>

		<guid isPermaLink="false">http://osssmb.wordpress.com/?p=25</guid>
		<description><![CDATA[We sell our products over the Internet and our customer service is likewise managed predominantly via email. When I started at the company we had a several support addresses which were sent directly to a staff member&#8217;s Inbox. These were then forwarded on to individuals within the team to answer. Obviously this was an appalling [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osssmb.wordpress.com&amp;blog=4961723&amp;post=25&amp;subd=osssmb&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>We sell our products over the Internet and our customer service is likewise managed predominantly via email. When I started at the company we had a several support addresses which were sent directly to a staff member&#8217;s Inbox. These were then forwarded on to individuals within the team to answer. Obviously this was an appalling state of affairs as there was no real way to track workload, whether the customers were happy with the responses and generally no management oversight as to what was happening. It also meant that there was very little consistency in responses as everyone basically re-wrote their responses every time. Not very efficient.</p>
<p>As a result we had a look around at ticketing systems that we could use to manage the customer correspondance. Because we were dealing with end customers, a traditional CRM system didn&#8217;t really meet our needs. We do not have a long history with most of our customers &#8211; instead dealing with product questions, returns etc. We wanted something more lightweight, but still capable of being able to track customer history if necessary and provide management reporting etc. Any solution we look for now also has to integrate with LDAP. Zimbra uses LDAP internally and provides extensions to allow for single sign on. This will allow us to manage user accounts centrally.</p>
<p>Having used Zimbra, we now had some Linux expertise in house (more on this later) and decided to trial <a title="Request Tracker" href="http://www.bestpractical.com/">Request Tracker</a>. This is a Web based tool that receives emails sent to specific addresses and delivers them to Queues set up within the system. It also has an FAQ Management system (RTFM) which integrates with Request Tracker allowing our staff to formulate standard responses to common questions. This saves time and effort. You can define arbitrary queues, and groups of users, permissions assigned to a user/group/queue combination. It is an incredibly powerful tool and because it is written in perl easily extensible (if you know perl). It supports a multitude of databases ensuring that it is likely to support a database  you are already using.</p>
<p>Of course, as with a lot of Open Source systems, this is also the major problem as well. Because *everything* is configurable, it means you have to configure everything. They options are mind numbing. Once it is set up, you should not have to play with the permissions too much more, but if you do, be ready to start scratching your head for a while. In addition to this, because the system is so easily extensible, some functionality is not easily available unless you write some perl code. For instance, it makes sense to define a single automated response, rather than trying to create 20-30 of them for each queue, but if you do that, there is no obvious way of stopping a particular queue from using the global one. Unless you write some perl code. There are also some extremely odd artifacts in the user interface &#8211; for instance, when replying to a ticket, rather than having the recipients checked and allowing you to uncheck people who shouldn&#8217;t receive the reply, instead everyone is unchecked and you have to explicitly click on the ones who should not receive the replies. A usability expert would have a field day with that one.</p>
<p>While RT integrates partially with LDAP, it will not take the group membership from LDAP, so you still have to manage every user in two places. This is painful. The other integration issue we have yet to address is to tie in customer tickets with our internally developed system to manage customer profiles etc. Ideally these would be linked. We plan on revisiting this when we look at ERP implementation.</p>
<p>So is RT a good solution? Well it is certainly very powerful and if you can live with the geekyness (and have perl expertise in house), I would recommend it. For us, I would drop it in a minute if there was a more user friendly solution out there. Any suggestions?</p>
<p>Cheers,</p>
<p>David</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/osssmb.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/osssmb.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/osssmb.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/osssmb.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/osssmb.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/osssmb.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/osssmb.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/osssmb.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/osssmb.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/osssmb.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/osssmb.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/osssmb.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/osssmb.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/osssmb.wordpress.com/25/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osssmb.wordpress.com&amp;blog=4961723&amp;post=25&amp;subd=osssmb&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://osssmb.wordpress.com/2008/10/22/managing-customer-communications/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f36a5d6f79b604770081ee9d947a21da?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">David</media:title>
		</media:content>
	</item>
		<item>
		<title>Email strategy</title>
		<link>http://osssmb.wordpress.com/2008/10/15/email-strategy/</link>
		<comments>http://osssmb.wordpress.com/2008/10/15/email-strategy/#comments</comments>
		<pubDate>Wed, 15 Oct 2008 00:58:04 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[System Administration]]></category>

		<guid isPermaLink="false">http://osssmb.wordpress.com/?p=22</guid>
		<description><![CDATA[Having decided to migrate to Open Office, we then needed to decide what we were going to do with regards our Email. Everyone had been using Outlook, connected to the Small Business edition of Exchange. This worked reasonably well except for the fact that Exchange didn&#8217;t have a built in Spam filter which resulted in [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osssmb.wordpress.com&amp;blog=4961723&amp;post=22&amp;subd=osssmb&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Having decided to migrate to Open Office, we then needed to decide what we were going to do with regards our Email. Everyone had been using Outlook, connected to the Small Business edition of Exchange. This worked reasonably well except for the fact that Exchange didn&#8217;t have a built in Spam filter which resulted in hundreds of Spam emails being delivered per day to various people within the organisation. There were also Desktop support issues with Outlook; when the pst files get larger than 2 Gig corruption is likely to occur which did factor into our thinking. The Small Business edition of Exchange had several key limitations for us including a limit on accounts and also total file storage. This meant that we could not keep our email centrally (and hence backed up) and were about to run out of users. We needed to find a replacement.</p>
<p>Our basic strategy is to migrate as much as possible into Web based applications. This reduces desktop support costs as well as hardware costs (eventually &#8211; when we have no desktop applications required any more). As such we went looking for a Web based email solution. We had a look at a variety of solutions and eventually settled on <a href="http://www.zimbra.com" target="_self">Zimbra</a>. This looked to be extremely full featured with a Web interface that was exceedingly close to that of Outlook (2003) which the users were already used to.</p>
<p>Running through our due diligence on the software we even discovered that Microsoft themselves could find little to criticise (see: <a href="http://http://news.cnet.com/8301-13505_3-9799638-16.html" target="_self">Microsoft&#8217;s curious infatuation with Zimbra</a>). With Zimbra being Open Source, we downloaded it and trialled it with some of our users to find it worked, very very well. It has built in anti-spam which immediately cut down on a huge percentage of the Spam received, while providing a usable interface for most of the users.</p>
<p>One user didn&#8217;t like the fact that messages were marked as read in the preview pane (this was subsequently fixed by Zimbra in their v5 release) and for users that had to download attachments regularly, it was slightly less well integrated with the Desktop than Outlook was. However, the increase in efficiency as a result of the Spam solution more than made up for that. With the v5 release, the cross mailbox conversation view is astonishingly good and everyone who has used it has commented on this. It is far better functionality than we have see in any Desktop app. An additional benefit is that the same interface is available when travelling as within the Office (without requiring a VPN to be set up).</p>
<p>While we started off with the Open Source version, we migrated over to the Network Edition after 6 months &#8211; mainly because we had migrated critical emails from the Desktop PST files that Outlook had used to ensure that we had backed up email on the server. This resulted in a much larger Email store than anticipated and with the Open Source edition, we only had offline backups which started taking in excess of an hour to run. Migration to the Network edition allows us to have online backups which makes life much easier. It also cost far less than upgrading to the full version of Exchange.</p>
<p>The upgrades for Zimbra are excellent &#8211; it is being actively worked upon and each new release brings us functionality that we find useful. The latest version (as of October 2008), v5.10 apparently provides automatic translations courtesy of Yahoo &#8211; which for our Customer Service team is of major interest. We shall be testing this shortly.</p>
<p>I would like to find a downside to our transition to Zimbra, but the experience has been great. We can highly recommend it. While there was some initial resistance to migrating away from a desktop email client, a year later everyone is using the Web interface smoothly.</p>
<p>Cheers,</p>
<p>David</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/osssmb.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/osssmb.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/osssmb.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/osssmb.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/osssmb.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/osssmb.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/osssmb.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/osssmb.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/osssmb.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/osssmb.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/osssmb.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/osssmb.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/osssmb.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/osssmb.wordpress.com/22/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osssmb.wordpress.com&amp;blog=4961723&amp;post=22&amp;subd=osssmb&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://osssmb.wordpress.com/2008/10/15/email-strategy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f36a5d6f79b604770081ee9d947a21da?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">David</media:title>
		</media:content>
	</item>
		<item>
		<title>Desktop Strategy, part 2</title>
		<link>http://osssmb.wordpress.com/2008/10/10/desktop-strategy-part-2/</link>
		<comments>http://osssmb.wordpress.com/2008/10/10/desktop-strategy-part-2/#comments</comments>
		<pubDate>Fri, 10 Oct 2008 05:40:10 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[System Administration]]></category>

		<guid isPermaLink="false">http://osssmb.wordpress.com/?p=17</guid>
		<description><![CDATA[Now we had made a decision on the hardware, we then needed to look at the software. One of the banes of any Administrator&#8217;s life is licence management. It is always painful and not a lot of fun. We had to audit the software in use and look at whether we could identify valid licences [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osssmb.wordpress.com&amp;blog=4961723&amp;post=17&amp;subd=osssmb&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Now we had made a decision on the hardware, we then needed to look at the software. One of the banes of any Administrator&#8217;s life is licence management. It is always painful and not a lot of fun. We had to audit the software in use and look at whether we could identify valid licences for it.</p>
<p>The primary software used in many businesses is of course, Microsoft Office. On the original machines we were mostly licenced for MS Office, but different versions with different subsets of software available. Everyone used Word and Excel, some used Powerpoint and everyone used Outlook for email. Unfortunately, whoever had purchased the licences for Office had only purchased OEM licences which meant that as we replaced hardware we would have to re-purchase software we had already bought. Ouch. In addition to this, we were on Office 2003 and would have needed to buy Office 2007.</p>
<p>As a result, we reviewed our options and decided to look into <a href="http://www.openoffice.org" target="_self">Open Office</a>. I had only previously used Microsoft Office and entered into the review with a degree of skepticism. My preconception was that it would be pretty good, but not quite as good as MS Office. I assumed we would be sticking with MS Office as a result. However, the review was most interesting; it turns out that Open Office has a different approach to document management than Word &#8211; it really pushes you into using a style based solution. Having used Framemaker back in the early 90&#8242;s this was a blast from the past.</p>
<p>The advantage of a style based solution when you are in a company with more than a roomful of people is that it makes it very easy to create document templates which enforce a specific style and merging of multiple documents (for things like a weekly report) becomes very easy to create a consistent look and feel between multiple authors. Word obviously supports styles, but I have always found with Word that it tends to splinter unless everyone is incredibly disciplined about keeping the same style. In a small company that tends not to be the case.</p>
<p>In addition to this, the look and feel for Open Office was much closer to Office 2003 than Office 2007 was. Reading reports on the Internet there was a degree of consensus that the effort involved in training would be smaller for Open Office than the new Microsoft suite.</p>
<p>So, having trialed the software with the more technically savvy of the company, we made the plunge and migrated to Open Office, saving us the cost of 50 or so licences of Microsoft Office. A saving in the thousands of dollars.</p>
<p>One month after the migration, I had a total of 12 support requests from the users asking how features worked. Most of these were already covered in our migration documentation, so we pointed them to that in the first instance. As part of the migration we didn&#8217;t mass convert any documents, but left it to the users to save in the new file format as they opened them (to minimise costs). This saved huge amounts of disk space as the ODF file format appears to be far more space efficient than the MS format.</p>
<p>We have now been excusively using Open Office for 18 months and generally we are very happy with it. It does however come with some issues that were unexpected and have required some effort:</p>
<ol>
<li>If someone else is editing a document, it does not tell you who it is. Instead it comes up read only. When you have people in multiple offices, this becomes an issue.</li>
<li>We have two sites with a wireless link between them. Every so often Open Office will lose the connection for some reason and be unable to save the document. Mostly this is worked around by saving to a local disk and copying back to the network. However, sometimes the Open Office format seems to get very broken and the only option is to save as an MS format and then re-open it and re-save the file again. Nasty.</li>
<li>There are some areas of incompatibility which don&#8217;t appear to be high on the radar to be fixed. One example: Calc does not understand the Excel A:A syntax for referring to an entire column. While these are not the biggest of issues, it is disappointing to see that the only competitor to MS Office which proclaims its compatibility is unable or unwilling to fix these problems. Luckily using Google to find solutions is pretty easy.</li>
</ol>
<p>Other than that it has been smooth sailing. We plan on fixing the first two issues by moving off file servers and migrating to a document management system, then editing will all be local and we should not see those issues again. If you are just using file servers however I would strongly recommend you test large documents on the network before jumping into Open Office. If you can live with that however it is really very good, and you can&#8217;t beat the cost.</p>
<p>The last aspect of MS Office we needed to look at then was Email. More on this later.</p>
<p>Cheers,</p>
<p>David</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/osssmb.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/osssmb.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/osssmb.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/osssmb.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/osssmb.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/osssmb.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/osssmb.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/osssmb.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/osssmb.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/osssmb.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/osssmb.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/osssmb.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/osssmb.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/osssmb.wordpress.com/17/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osssmb.wordpress.com&amp;blog=4961723&amp;post=17&amp;subd=osssmb&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://osssmb.wordpress.com/2008/10/10/desktop-strategy-part-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f36a5d6f79b604770081ee9d947a21da?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">David</media:title>
		</media:content>
	</item>
		<item>
		<title>Desktop Strategy, part 1</title>
		<link>http://osssmb.wordpress.com/2008/09/24/desktop-strategy-part-1/</link>
		<comments>http://osssmb.wordpress.com/2008/09/24/desktop-strategy-part-1/#comments</comments>
		<pubDate>Wed, 24 Sep 2008 22:00:06 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[System Administration]]></category>

		<guid isPermaLink="false">http://osssmb.wordpress.com/?p=9</guid>
		<description><![CDATA[Our sites had relied on (approx 50) cheap no name desktop PCs in the past. These appeared to be highly cobbled together and provided no consistency across the company. In addition, there was a higher failure rate in them than I had seen anywhere else before. This had the net result of us requiring an [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osssmb.wordpress.com&amp;blog=4961723&amp;post=9&amp;subd=osssmb&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Our sites had relied on (approx 50) cheap no name desktop PCs in the past. These appeared to be highly cobbled together and provided no consistency across the company. In addition, there was a higher failure rate in them than I had seen anywhere else before. This had the net result of us requiring an almost full time desktop support person to look after the machines, let alone the application support issues</p>
<p>As we were using Exchange, Outlook was the primary Mail client with users suffering from the inevitable .pst corruptions that occur when mail folders exceed 2 Gig. As all Customer Support was run via email directly to people&#8217;s personal email addresses there was a lot of email flowing around and a high likelihood of corruption.</p>
<p>The business also relied on a Visual Basic app installed on everyone&#8217;s desktop which interacted with the customer database.</p>
<p>Looking at the Visual Basic application there was no way that could be replaced in a short period of time, so we decided to replace the machines as they hit their EOL with new leased Windows Desktops with on site support. This would turn out to be pretty much cost neutral as it cut out the need for local desktop support for the hardware. The (large) percentage of the Desktop Administrator&#8217;s time could be redirected to more productive uses.</p>
<p>Given these machines would be consistent we were hoping we could achieve economies of scale with their management. In the event, we didn&#8217;t want to pay Microsoft for a second copy of Windows licences (we already received OEM copies with the desktop lease) so we did not end up, as originally planned, with a single master image which could be deployed across the network.</p>
<p>We still wanted to install the software remotely however. A search around the Internet came up with <a title="OCS Inventory" href="http://www.ocsinventory-ng.org/" target="_self">OCS Inventory</a> which looked to do what we needed. We installed this and while rather geeky, does indeed allow us to distribute software to all the Desktops remotely. It suffers from the same problem that so much Open Source software does &#8211; it has not been designed with usability in mind. Given this is an Administration tool, that wasn&#8217;t a major concern, but it is something that would be good to improve on in the future. At time of writing, we had used it to install the initial software, but no upgrades as yet. Deleting software may also be a issue with this, however we will deal with that when we come to it.</p>
<p>Are we happy with this? Well it is not a bad solution. Given a choice of running thick clients and running thin clients with Terminal Services or Citrix we chose the thick clients. The setup, licencing and maintenance of the thin solution looked to be too hard given the huge amount of other tasks we had to deal with. Given that the VB app was a key requirement it was a good decision we feel, even if the desktop hardware was substantially more expensive.</p>
<p>It does leave us with desktop support issues &#8211; application support is still somewhat of an issue, however, when the lease is up (in 2 years or so), we plan to revisit this decision. More on this later&#8230;</p>
<p>Cheers,</p>
<p>David</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/osssmb.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/osssmb.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/osssmb.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/osssmb.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/osssmb.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/osssmb.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/osssmb.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/osssmb.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/osssmb.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/osssmb.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/osssmb.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/osssmb.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/osssmb.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/osssmb.wordpress.com/9/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osssmb.wordpress.com&amp;blog=4961723&amp;post=9&amp;subd=osssmb&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://osssmb.wordpress.com/2008/09/24/desktop-strategy-part-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f36a5d6f79b604770081ee9d947a21da?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">David</media:title>
		</media:content>
	</item>
		<item>
		<title>Why Open Source?</title>
		<link>http://osssmb.wordpress.com/2008/09/24/why-open-source/</link>
		<comments>http://osssmb.wordpress.com/2008/09/24/why-open-source/#comments</comments>
		<pubDate>Wed, 24 Sep 2008 05:21:35 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[System Administration]]></category>
		<category><![CDATA[Systems Administration]]></category>

		<guid isPermaLink="false">http://osssmb.wordpress.com/?p=5</guid>
		<description><![CDATA[When I started at this company we had a bunch of disparate systems on various operating systems requiring  different skills to manage. We had Windows on the Desktop, Linux (Postgres database) and Windows (.NET IIS Web) Servers along with FreeBSD firewalls. Email was run on the Small Business edition of Exchange and customer support was [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osssmb.wordpress.com&amp;blog=4961723&amp;post=5&amp;subd=osssmb&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>When I started at this company we had a bunch of disparate systems on various operating systems requiring  different skills to manage. We had Windows on the Desktop, Linux (Postgres database) and Windows (.NET IIS Web) Servers along with FreeBSD firewalls. Email was run on the Small Business edition of Exchange and customer support was run exclusively through individual email accounts. We had no systems in place to provide metrics or support the business in their day to day work, we had a huge amount of work to do.</p>
<p>For the software we did have, we were only partially licenced and we obviously needed to resolve that situation as quickly as possible. The servers were outsourced at an outrageous cost to a third party whose service kept having issues. The firewalls were not spectacularly secure either  &#8211; there was no VPN functionality set up and the owners who travelled a lot were using Remote Desktop to access files on the network which was not at all secure.</p>
<p>We had to decide how to fix all that and not spend more money than we had to play with. At a personal level I loath dealing with Software Vendors &#8211; the licencing terms require a mammoth amount of time/brainpower to work out what you are and aren&#8217;t allowed to do and in some cases, the licencing terms feel more like a way to gouge more money out of you than a reflection of their value. Then come the audits&#8230;</p>
<p>If car manufacturers tried to sell you a &#8220;cheap&#8221; car and then charge you extra to have a passenger, I wonder how quickly they would go out of business? Why do people put up with this from Software Vendors?</p>
<p>At a professional level, compliance costs to ensure that licences that are used are legal and that we are not breaking the terms of use can get expensive and in a small business you don&#8217;t have someone to manage that for you. Having read the first 8 pages of Microsoft&#8217;s Terminal Services Licencing documentation and still being unclear as to what we were actually allowed to use was just painful.</p>
<p>Lastly, I feel these days that Vendors are actively trying to lock you into their solutions and when running a business that is a major hidden cost to consider when selecting a solution. I would prefer to spend a little more on initial implementation if that saves running costs down the track than I would to buy something more cheaply up front which ends up costing much more in the log run.</p>
<p>So we decided to look at (free) Open solutions that would meet our needs. In some instances we went with proprietary solutions where we couldn&#8217;t find a good alternative. We&#8217;ll be sharing that with you over the coming months. We&#8217;ll be focussing on two main areas &#8211; Systems Administration and Development. We will discuss the approach to both we took and the platforms we decided to work with.</p>
<p>Cheers,</p>
<p>David</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/osssmb.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/osssmb.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/osssmb.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/osssmb.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/osssmb.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/osssmb.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/osssmb.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/osssmb.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/osssmb.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/osssmb.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/osssmb.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/osssmb.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/osssmb.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/osssmb.wordpress.com/5/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osssmb.wordpress.com&amp;blog=4961723&amp;post=5&amp;subd=osssmb&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://osssmb.wordpress.com/2008/09/24/why-open-source/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f36a5d6f79b604770081ee9d947a21da?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">David</media:title>
		</media:content>
	</item>
	</channel>
</rss>
